Private AI platform for agents, assistants and enterprise search. Built-in Agent Builder, Deep research, Document analysis, Multi-model support, and API connectivity for agents.
7824 matches across 18 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | setup.sh | 174 | # ======================== |
| MEDIUM | setup.sh | 176 | # ======================== |
| MEDIUM | tests/test_events_substrate.py | 281 | # ── Topic ─────────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_events_substrate.py | 31 | # ── keys ──────────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_events_substrate.py | 46 | # ── stream_id_compare ─────────────────────────────────────────────────── |
| MEDIUM | tests/test_events_substrate.py | 82 | # ── _format_sse ───────────────────────────────────────────────────────── |
| MEDIUM | tests/test_events_substrate.py | 117 | # ── _normalize_last_event_id ──────────────────────────────────────────── |
| MEDIUM | tests/test_events_substrate.py | 148 | # ── publisher ─────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_client_tools.py | 15 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 17 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 112 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 114 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 194 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 196 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 242 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 244 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 295 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_client_tools.py | 297 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/conftest.py | 50 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/conftest.py | 52 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/conftest.py | 113 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/conftest.py | 115 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_namespaces.py | 16 | # ── SystemNamespace ──────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_namespaces.py | 70 | # ── PassthroughNamespace ─────────────────────────────────────────────────────── |
| MEDIUM | tests/test_namespaces.py | 153 | # ── ToolsNamespace ───────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_namespaces.py | 191 | # ── NamespaceBuilder ABC ────────────────────────────────────────────────────── |
| MEDIUM | tests/test_namespaces.py | 221 | # ── NamespaceManager ────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_namespaces.py | 112 | # ── SourceNamespace ──────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_target_coverage.py | 16 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 19 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 110 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 113 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 142 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 149 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 303 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 307 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 53 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_target_coverage.py | 60 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 65 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 67 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 112 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 114 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 193 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 195 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 283 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 285 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 338 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_extra_coverage.py | 340 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_usage.py | 476 | # ── _count_tokens ─────────────────────────────────────────────────────────── |
| MEDIUM | tests/test_usage.py | 389 | # ── _serialize_for_token_count ────────────────────────────────────────────── |
| MEDIUM | tests/test_usage.py | 504 | # ── _count_prompt_tokens ──────────────────────────────────────────────────── |
| MEDIUM | tests/test_v1_translator.py | 23 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 25 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 114 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 116 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 152 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 154 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 194 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 196 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/test_v1_translator.py | 315 | # --------------------------------------------------------------------------- |
| 1404 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | md-gen.py | 3 | def create_markdown_from_directory(directory=".", output_file="combined.md"): |
| LOW | frontend/src/agents/schedules/TimezoneCombobox.tsx | 64 | function computeTimezoneOffsetLabel(tz: string): string { |
| LOW | frontend/src/agents/schedules/cronBuilder.ts | 169 | export function parseScheduleToFormValues( |
| LOW | frontend/src/agents/workflow/workflowPreviewSlice.ts | 47 | export function handleWorkflowPreviewAbort() { |
| LOW | frontend/src/conversation/conversationHandlers.ts | 243 | export function handleFetchAnswerSteaming( |
| LOW | frontend/src/conversation/conversationHandlers.ts | 890 | export function handleFetchSharedAnswerStreaming( |
| LOW | tests/test_events_substrate.py | 62 | def test_digit_count_does_not_break_int_compare(self): |
| LOW | tests/test_events_substrate.py | 67 | def test_missing_seq_treated_as_zero(self): |
| LOW | tests/test_events_substrate.py | 70 | def test_malformed_input_raises(self): |
| LOW | tests/test_events_substrate.py | 166 | def test_returns_none_on_missing_user_id(self): |
| LOW | tests/test_events_substrate.py | 169 | def test_returns_none_on_missing_event_type(self): |
| LOW | tests/test_events_substrate.py | 174 | def test_returns_none_when_push_disabled(self, mock_settings, mock_redis): |
| LOW | tests/test_events_substrate.py | 184 | def test_returns_none_when_redis_unavailable(self, mock_settings, mock_redis): |
| LOW | tests/test_events_substrate.py | 192 | def test_returns_none_on_unserializable_payload( |
| LOW | tests/test_events_substrate.py | 287 | def test_publish_returns_zero_when_redis_unavailable(self, mock_redis): |
| LOW | tests/test_events_substrate.py | 292 | def test_publish_calls_redis_publish(self, mock_redis): |
| LOW | tests/test_events_substrate.py | 301 | def test_publish_swallows_exceptions(self, mock_redis): |
| LOW | tests/test_events_substrate.py | 309 | def test_subscribe_returns_immediately_when_redis_unavailable( |
| LOW | tests/test_events_substrate.py | 317 | def test_subscribe_yields_none_on_poll_timeout(self, mock_redis): |
| LOW | tests/test_events_substrate.py | 42 | def test_connection_counter_key(self): |
| LOW | tests/test_events_substrate.py | 112 | def test_terminator_regex_compiles(self): |
| LOW | tests/test_events_substrate.py | 208 | def test_xadd_and_publish_both_invoked_on_happy_path( |
| LOW | tests/test_events_substrate.py | 255 | def test_xadd_failure_skips_live_publish( |
| LOW | tests/test_events_substrate.py | 335 | def test_subscribe_fires_on_subscribe_after_ack(self, mock_redis): |
| LOW | tests/test_events_substrate.py | 359 | def test_subscribe_cleans_up_on_generator_close(self, mock_redis): |
| LOW | tests/test_events_substrate.py | 377 | def test_subscribe_skips_unsubscribe_if_subscribe_never_acked( |
| LOW | tests/test_todo_tool.py | 74 | def update_title_by_tool_and_todo_id(self, user_id, tool_id, todo_id, title): |
| LOW | tests/test_todo_tool.py | 88 | def delete_by_tool_and_todo_id(self, user_id, tool_id, todo_id): |
| LOW | tests/test_todo_tool.py | 177 | def test_isolation_per_tool_id(monkeypatch): |
| LOW | tests/test_todo_tool.py | 205 | def test_sentinel_tool_id_short_circuits(): |
| LOW | tests/test_todo_tool.py | 215 | def test_no_user_id_returns_error(): |
| LOW | tests/test_client_tools.py | 54 | def test_merge_multiple_tools(self): |
| LOW | tests/test_client_tools.py | 85 | def test_merge_preserves_existing_tools(self): |
| LOW | tests/test_client_tools.py | 120 | def test_client_tools_included_in_llm_schema(self): |
| LOW | tests/test_client_tools.py | 151 | def test_mixed_server_and_client_tools(self): |
| LOW | tests/test_client_tools.py | 203 | def test_get_tools_merges_client_tools(self, monkeypatch): |
| LOW | tests/test_client_tools.py | 225 | def test_get_tools_no_client_tools(self, monkeypatch): |
| LOW | tests/test_client_tools.py | 258 | def test_client_tool_triggers_pause(self): |
| LOW | tests/test_client_tools.py | 278 | def test_server_tool_no_pause(self): |
| LOW | tests/test_client_tools.py | 320 | def test_client_tool_pauses_stream(self): |
| LOW | tests/test_client_tools.py | 377 | def test_mixed_server_and_client_tools_in_batch(self): |
| LOW | tests/test_utils.py | 36 | def test_returns_same_instance(self): |
| LOW | tests/test_utils.py | 45 | def test_returns_llm_name_when_set(self): |
| LOW | tests/test_utils.py | 52 | def test_falls_back_to_provider_map(self): |
| LOW | tests/test_utils.py | 59 | def test_unknown_provider_returns_empty(self): |
| LOW | tests/test_utils.py | 171 | def test_check_required_fields_pass(self): |
| LOW | tests/test_utils.py | 179 | def test_check_required_fields_fail(self): |
| LOW | tests/test_utils.py | 188 | def test_get_field_validation_errors_none_when_valid(self): |
| LOW | tests/test_utils.py | 192 | def test_get_field_validation_errors_missing(self): |
| LOW | tests/test_utils.py | 197 | def test_get_field_validation_errors_empty(self): |
| LOW | tests/test_utils.py | 202 | def test_validate_required_fields_pass(self): |
| LOW | tests/test_utils.py | 210 | def test_validate_required_fields_missing(self): |
| LOW | tests/test_utils.py | 219 | def test_validate_required_fields_empty(self): |
| LOW | tests/test_utils.py | 227 | def test_validate_required_fields_both_missing_and_empty(self): |
| LOW | tests/test_utils.py | 507 | def test_removes_horizontal_rules(self): |
| LOW | tests/test_utils.py | 512 | def test_removes_list_markers(self): |
| LOW | tests/test_utils.py | 519 | def test_normalizes_whitespace(self): |
| LOW | tests/test_utils.py | 548 | def test_removes_underscore_bold(self): |
| LOW | tests/test_utils.py | 554 | def test_removes_underscore_italic(self): |
| LOW | tests/test_utils.py | 562 | def test_max_token_limit_caps_at_model_limit(self): |
| 4881 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | md-gen.py | 41 | except Exception as e: |
| MEDIUM | md-gen.py | 42 | print(f"Error processing file {filepath}: {e}") |
| LOW | tests/test_target_coverage.py | 296 | except Exception: |
| LOW | tests/test_target_coverage.py | 207 | except Exception as e: |
| LOW | tests/test_target_coverage.py | 239 | except Exception as e: |
| LOW | tests/test_target_coverage.py | 260 | except Exception as e: |
| LOW | tests/test_integration.py | 806 | except Exception: |
| LOW | tests/test_integration.py | 815 | except Exception as e: |
| LOW | tests/test_integration.py | 68 | except Exception as exc: |
| LOW | tests/test_integration.py | 183 | except Exception as e: |
| LOW | tests/test_integration.py | 247 | except Exception as e: |
| LOW | tests/test_integration.py | 404 | except Exception: |
| LOW | tests/test_integration.py | 413 | except Exception as e: |
| LOW | tests/test_integration.py | 449 | except Exception as e: |
| LOW | tests/test_integration.py | 559 | except Exception: |
| LOW | tests/test_integration.py | 568 | except Exception as e: |
| LOW | tests/test_integration.py | 662 | except Exception as e: |
| LOW | tests/test_integration.py | 736 | except Exception as e: |
| LOW | tests/test_integration.py | 914 | except Exception as e: |
| LOW | tests/test_integration.py | 976 | except Exception as e: |
| LOW | tests/test_integration.py | 1001 | except Exception as e: |
| LOW | tests/test_integration.py | 1030 | except Exception as e: |
| LOW | tests/test_integration.py | 1065 | except Exception as e: |
| LOW | tests/test_integration.py | 1202 | except Exception as e: |
| LOW | tests/test_integration.py | 337 | except Exception: |
| LOW | tests/test_integration.py | 346 | except Exception as e: |
| LOW | tests/test_integration.py | 1276 | except Exception as e: |
| LOW | tests/test_coverage_gaps.py | 2656 | except Exception as e: |
| LOW | tests/test_coverage_gaps.py | 2726 | except Exception as e: |
| LOW | tests/integration/test_workflows.py | 69 | except Exception: |
| LOW | tests/integration/test_misc.py | 108 | except Exception as e: |
| LOW | tests/integration/test_misc.py | 169 | except Exception as e: |
| LOW | tests/integration/test_misc.py | 211 | except Exception as e: |
| LOW | tests/integration/test_misc.py | 248 | except Exception as e: |
| LOW | tests/integration/test_misc.py | 276 | except Exception as e: |
| LOW | tests/integration/test_misc.py | 77 | except Exception as e: |
| LOW | tests/integration/test_misc.py | 140 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 77 | except Exception: |
| LOW | tests/integration/test_prompts.py | 157 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 299 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 342 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 386 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 66 | except Exception: |
| LOW | tests/integration/test_prompts.py | 119 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 193 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 227 | except Exception as e: |
| LOW | tests/integration/test_prompts.py | 270 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 91 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 154 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 217 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 281 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 61 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 124 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 187 | except Exception as e: |
| LOW | tests/integration/test_analytics.py | 250 | except Exception as e: |
| LOW | tests/integration/test_chat.py | 354 | except Exception as e: |
| LOW | tests/integration/test_chat.py | 490 | except Exception as e: |
| LOW | tests/integration/test_chat.py | 757 | except Exception as e: |
| LOW | tests/integration/test_chat.py | 970 | except Exception as e: |
| LOW | tests/integration/test_chat.py | 1033 | except Exception as e: |
| 651 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_events_substrate.py | 9 | |
| LOW | tests/test_todo_tool.py | 15 | |
| LOW | tests/conftest.py | 23 | |
| LOW | tests/test_memory_tool.py | 8 | |
| LOW | tests/test_notes_tool.py | 8 | |
| LOW | tests/test_version_check.py | 9 | |
| LOW | tests/test_event_replay.py | 19 | |
| LOW | tests/test_message_journal.py | 8 | |
| LOW | tests/core/test_models_config_dir.py | 10 | |
| LOW | tests/core/test_model_registry_yaml.py | 13 | |
| LOW | tests/core/test_log_context.py | 3 | |
| LOW | tests/core/test_byom_user_aware_helpers.py | 13 | |
| LOW | tests/core/test_db_uri.py | 16 | |
| LOW | tests/core/test_registry_user_layer.py | 9 | |
| LOW | tests/core/test_openai_compatible.py | 9 | |
| LOW | tests/core/test_logging_config.py | 10 | |
| LOW | tests/security/test_safe_url.py | 9 | |
| LOW | tests/integration/conftest.py | 28 | |
| LOW | tests/integration/test_users_repository.py | 22 | |
| LOW | tests/integration/__init__.py | 35 | |
| LOW | tests/integration/__init__.py | 35 | |
| LOW | tests/integration/__init__.py | 35 | |
| LOW | tests/integration/__init__.py | 35 | |
| LOW | tests/integration/__init__.py | 36 | |
| LOW | tests/integration/__init__.py | 37 | |
| LOW | tests/integration/__init__.py | 38 | |
| LOW | tests/integration/__init__.py | 39 | |
| LOW | tests/integration/__init__.py | 40 | |
| LOW | tests/integration/__init__.py | 41 | |
| LOW | tests/integration/__init__.py | 42 | |
| LOW | tests/integration/__init__.py | 43 | |
| LOW | tests/integration/__init__.py | 44 | |
| LOW | tests/integration/__init__.py | 45 | |
| LOW | tests/agents/test_workflow_agent_pg_write.py | 13 | |
| LOW | tests/agents/test_default_tools.py | 3 | |
| LOW | tests/agents/test_scheduler_agent_builtin.py | 4 | |
| LOW | tests/agents/test_scheduler_agent_builtin.py | 15 | |
| LOW | tests/agents/test_scheduler_utils.py | 3 | |
| LOW | tests/agents/test_tool_executor_headless.py | 3 | |
| LOW | tests/agents/tools/test_scheduler.py | 3 | |
| LOW | tests/agents/tools/test_scheduler.py | 16 | |
| LOW | tests/agents/tools/test_memory.py | 12 | |
| LOW | tests/parser/connectors/test_auth_token_leakage.py | 11 | |
| LOW | tests/storage/db/conftest.py | 13 | |
| LOW | tests/storage/db/test_backfill_helpers.py | 6 | |
| LOW | tests/storage/db/test_migration_0009.py | 3 | |
| LOW | tests/storage/db/test_session_guardrails.py | 16 | |
| LOW | tests/storage/db/test_migration_0010.py | 3 | |
| LOW | tests/storage/db/test_migration_0011.py | 3 | |
| LOW | tests/storage/db/repositories/test_workflows.py | 3 | |
| LOW | tests/storage/db/repositories/test_idempotency.py | 11 | |
| LOW | …s/storage/db/repositories/test_shared_conversations.py | 3 | |
| LOW | …sts/storage/db/repositories/test_pending_tool_state.py | 3 | |
| LOW | tests/storage/db/repositories/test_user_tools.py | 3 | |
| LOW | tests/storage/db/repositories/test_schedules.py | 3 | |
| LOW | tests/storage/db/repositories/test_user_logs.py | 3 | |
| LOW | tests/storage/db/repositories/test_prompts.py | 3 | |
| LOW | tests/storage/db/repositories/test_workflow_nodes.py | 3 | |
| LOW | tests/storage/db/repositories/test_workflow_runs.py | 3 | |
| LOW | …sts/storage/db/repositories/test_connector_sessions.py | 3 | |
| 190 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | md-gen.py | 3 | |
| LOW | tests/test_zip_extraction_security.py | 170 | |
| LOW | tests/test_target_coverage.py | 245 | |
| LOW | tests/test_integration.py | 105 | |
| LOW | tests/test_integration.py | 418 | |
| LOW | tests/test_integration.py | 453 | |
| LOW | tests/test_integration.py | 573 | |
| LOW | tests/test_integration.py | 667 | |
| LOW | tests/test_integration.py | 741 | |
| LOW | tests/test_integration.py | 1089 | |
| LOW | tests/test_coverage_gaps.py | 2272 | |
| LOW | tests/test_remaining_coverage.py | 538 | |
| LOW | tests/llm/handlers/test_llm_handlers.py | 1656 | |
| LOW | tests/llm/handlers/test_llm_handlers.py | 1701 | |
| LOW | tests/integration/test_misc.py | 36 | |
| LOW | tests/integration/test_prompts.py | 124 | |
| LOW | tests/integration/test_chat.py | 122 | |
| LOW | tests/integration/test_chat.py | 160 | |
| LOW | tests/integration/test_chat.py | 233 | |
| LOW | tests/integration/test_chat.py | 294 | |
| LOW | tests/integration/test_chat.py | 527 | |
| LOW | tests/integration/test_chat.py | 635 | |
| LOW | tests/integration/test_chat.py | 849 | |
| LOW | tests/integration/test_chat.py | 979 | |
| LOW | tests/integration/test_v1_api.py | 249 | |
| LOW | tests/integration/test_v1_api.py | 402 | |
| LOW | tests/integration/test_v1_api.py | 494 | |
| LOW | tests/integration/test_v1_tool_calls.py | 99 | |
| LOW | tests/integration/test_sources.py | 49 | |
| LOW | tests/integration/test_sources.py | 108 | |
| LOW | tests/integration/test_sources.py | 121 | |
| LOW | tests/integration/test_tools.py | 191 | |
| LOW | tests/integration/test_tools.py | 232 | |
| LOW | tests/integration/test_mcp.py | 195 | |
| LOW | tests/integration/base.py | 223 | |
| LOW | tests/integration/test_agents.py | 50 | |
| LOW | tests/parser/remote/test_s3_loader.py | 660 | |
| LOW | tests/parser/remote/test_s3_loader.py | 687 | |
| LOW | tests/parser/remote/test_s3_loader.py | 709 | |
| LOW | tests/parser/remote/test_s3_loader.py | 831 | |
| LOW | tests/api/test_message_stream_routes.py | 116 | |
| LOW | tests/api/answer/test_snapshot_tail_integration.py | 150 | |
| LOW | tests/api/user/attachments/test_routes.py | 1656 | |
| LOW | tests/api/user/attachments/test_routes.py | 1696 | |
| LOW | tests/api/user/attachments/test_routes.py | 1764 | |
| LOW | tests/api/user/attachments/test_routes.py | 1869 | |
| LOW | tests/api/user/attachments/test_routes.py | 1903 | |
| LOW | tests/api/user/attachments/test_routes.py | 1970 | |
| LOW | tests/devices/conftest.py | 63 | |
| LOW | scripts/migrate_conversation_id_dbref_to_objectid.py | 26 | |
| LOW | scripts/qa/durability_e2e.py | 1692 | |
| LOW | scripts/db/backfill.py | 208 | |
| LOW | scripts/db/backfill.py | 284 | |
| LOW | scripts/db/backfill.py | 325 | |
| LOW | scripts/db/backfill.py | 393 | |
| LOW | scripts/db/backfill.py | 438 | |
| LOW | scripts/db/backfill.py | 479 | |
| LOW | scripts/db/backfill.py | 545 | |
| LOW | scripts/db/backfill.py | 674 | |
| LOW | scripts/db/backfill.py | 841 | |
| 175 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/test_agent_token_tracking.py | 163 | # Create a concrete handler for testing |
| MEDIUM | tests/test_zip_extraction_security.py | 56 | # Create a small valid zip |
| MEDIUM | tests/test_zip_extraction_security.py | 70 | # Create a zip with many files (just over limit) |
| MEDIUM | tests/test_zip_extraction_security.py | 86 | # Create a zip with path traversal |
| MEDIUM | tests/test_zip_extraction_security.py | 246 | # Create a file with highly compressible content (all zeros) |
| MEDIUM | tests/test_zip_extraction_security.py | 249 | # Create a large file with repetitive content - compresses extremely well |
| MEDIUM | tests/test_zip_extraction_security.py | 265 | # Create a zip with random-ish content that doesn't compress well |
| MEDIUM | tests/test_zip_extraction_security.py | 104 | # Create a corrupted "zip" file |
| MEDIUM | tests/test_zip_extraction_security.py | 123 | # Create a valid zip |
| MEDIUM | tests/test_zip_extraction_security.py | 176 | # Create a chain of nested zips |
| MEDIUM | tests/test_zip_extraction_security.py | 207 | # Create a malicious zip |
| MEDIUM | tests/test_zip_extraction_security.py | 226 | # Create a corrupted file |
| MEDIUM | tests/test_zip_extraction_security.py | 287 | # Create a zip with a reasonable size (no compression to avoid ratio issues) |
| MEDIUM | tests/test_compression_service.py | 881 | # Create a long conversation with important info buried in the middle |
| MEDIUM | tests/test_integration.py | 268 | # Create a simple text file for upload |
| MEDIUM | tests/test_integration.py | 299 | # Create a file-like object |
| MEDIUM | tests/test_coverage_gaps.py | 2304 | # Create the BulkIndexError mock |
| MEDIUM | tests/test_remaining_coverage.py | 886 | # Create an object where accessing certain attrs raises AttributeError |
| MEDIUM | tests/llm/test_openai.py | 1285 | # Create a schema with a problematic object that raises during iteration |
| MEDIUM | tests/integration/test_misc.py | 186 | # Create a small test file content |
| MEDIUM | tests/integration/test_misc.py | 224 | # Create a larger test file (1KB) |
| MEDIUM | tests/integration/test_prompts.py | 359 | # Create a prompt specifically for deletion |
| MEDIUM | tests/integration/test_conversations.py | 281 | # Create a conversation specifically for deletion |
| MEDIUM | tests/integration/test_tools.py | 441 | # Create a tool specifically for deletion - must use available tool name |
| MEDIUM | tests/integration/test_agents.py | 316 | # Create an agent first |
| MEDIUM | tests/integration/test_agents.py | 521 | # Create a fresh agent for deletion |
| MEDIUM | tests/integration/test_agents.py | 74 | # Create a minimal test source |
| MEDIUM | tests/agents/test_tool_executor.py | 1181 | # Create a fake call object matching what ToolActionParser expects |
| MEDIUM | tests/agents/test_workflow_engine_coverage.py | 105 | # Create a cycle: start -> state -> state (loop) |
| MEDIUM | …sts/storage/db/repositories/test_pending_tool_state.py | 90 | # Create a state with TTL of 0 seconds (already expired) |
| MEDIUM | tests/storage/db/repositories/test_users.py | 247 | # Create an agent with a known legacy_mongo_id |
| MEDIUM | tests/storage/db/repositories/test_users.py | 251 | # Create a user whose pinned list has the ObjectId, an already-UUID, |
| MEDIUM | tests/stt/test_faster_whisper.py | 217 | # Create a segment that uses getattr fallbacks |
| MEDIUM | scripts/e2e/env.sh | 5 | # This file is intentionally passive: it exports variables and nothing else. |
| MEDIUM | application/worker.py | 133 | # Define a function to extract metadata from a given filename. |
| MEDIUM | application/worker.py | 175 | # Define a function to generate a random string of a given length. |
| MEDIUM | application/worker.py | 390 | # Define the main function for ingesting and processing documents. |
| MEDIUM | application/worker.py | 1671 | # Create a clean config for storage |
| MEDIUM | application/seed/config/agents_template.yaml | 2 | # This file contains template agents that will be seeded into the database |
| MEDIUM | application/parser/file/docs_parser.py | 37 | # Create a PDF object |
| MEDIUM | application/parser/remote/crawler_markdown.py | 63 | # Create a Document for each visited page |
| MEDIUM | application/vectorstore/qdrant.py | 114 | # Create a copy to avoid modifying the original metadata |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/test_logging.py | 310 | |
| MEDIUM | tests/test_extra_coverage.py | 205 | |
| MEDIUM | tests/test_extra_coverage.py | 269 | |
| MEDIUM | tests/test_version_check.py | 64 | |
| MEDIUM | tests/test_event_replay.py | 464 | |
| MEDIUM | tests/test_event_replay.py | 522 | |
| MEDIUM | tests/seed/test_seeder.py | 181 | |
| MEDIUM | tests/agents/test_workflow_agent_graph.py | 173 | |
| MEDIUM | tests/agents/test_workflow_agent_graph.py | 245 | |
| MEDIUM | tests/agents/test_research_agent.py | 1309 | |
| MEDIUM | tests/parser/file/test_embedding_pipeline.py | 265 | |
| MEDIUM | tests/api/test_events_routes.py | 293 | |
| MEDIUM | tests/api/v1/test_routes_extended.py | 218 | |
| MEDIUM | tests/api/v1/test_routes_extended.py | 262 | |
| MEDIUM | tests/api/answer/test_snapshot_tail_integration.py | 84 | |
| MEDIUM | tests/api/answer/test_snapshot_tail_integration.py | 120 | |
| MEDIUM | tests/api/answer/test_snapshot_tail_integration.py | 178 | |
| MEDIUM | tests/api/answer/services/test_conversation_service.py | 84 | |
| MEDIUM | tests/api/answer/services/test_conversation_service.py | 762 | |
| MEDIUM | tests/api/answer/services/test_conversation_service.py | 814 | |
| MEDIUM | tests/api/answer/services/test_conversation_service.py | 866 | |
| MEDIUM | tests/api/user/test_sharing.py | 228 | |
| MEDIUM | tests/api/user/test_sharing.py | 337 | |
| MEDIUM | tests/api/user/test_prompts.py | 206 | |
| MEDIUM | tests/api/user/test_prompts.py | 258 | |
| MEDIUM | tests/api/user/test_prompts.py | 392 | |
| MEDIUM | tests/api/user/test_prompts.py | 549 | |
| MEDIUM | tests/api/user/test_analytics.py | 179 | |
| MEDIUM | tests/api/user/test_analytics.py | 238 | |
| MEDIUM | tests/api/user/test_analytics.py | 305 | |
| MEDIUM | tests/api/user/test_analytics.py | 398 | |
| MEDIUM | tests/api/user/test_tools_routes.py | 1114 | |
| MEDIUM | tests/api/user/test_tools_routes.py | 1156 | |
| MEDIUM | tests/api/user/test_conversations.py | 203 | |
| MEDIUM | tests/api/user/test_conversations.py | 248 | |
| MEDIUM | tests/api/user/test_conversations.py | 292 | |
| MEDIUM | tests/api/user/test_conversations.py | 409 | |
| MEDIUM | tests/api/user/test_conversations.py | 632 | |
| MEDIUM | tests/api/user/test_conversations.py | 753 | |
| MEDIUM | tests/api/user/workflows/test_routes_coverage.py | 354 | |
| MEDIUM | tests/api/user/workflows/test_routes_coverage.py | 421 | |
| MEDIUM | tests/api/user/workflows/test_routes_coverage.py | 536 | |
| MEDIUM | tests/api/user/workflows/test_routes_coverage.py | 596 | |
| MEDIUM | tests/api/user/agents/test_sharing.py | 106 | |
| MEDIUM | tests/api/user/agents/test_sharing.py | 170 | |
| MEDIUM | tests/api/user/agents/test_sharing.py | 278 | |
| MEDIUM | tests/api/user/agents/test_routes_happy.py | 137 | |
| MEDIUM | tests/api/user/agents/test_routes_happy.py | 873 | |
| MEDIUM | tests/api/user/agents/test_routes_happy.py | 1130 | |
| MEDIUM | tests/api/user/agents/test_routes_happy.py | 1192 | |
| MEDIUM | tests/api/user/agents/test_routes_happy.py | 1242 | |
| MEDIUM | tests/api/user/agents/test_routes_happy.py | 1287 | |
| MEDIUM | tests/api/user/sources/test_chunks.py | 78 | |
| MEDIUM | tests/api/user/sources/test_routes.py | 105 | |
| MEDIUM | tests/worker/test_ingest_checkpoint.py | 505 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/agents/test_cel_evaluator.py | 102 | assert evaluate_cel("a && b", {"a": True, "b": True}) is True |
| HIGH | tests/agents/test_cel_evaluator.py | 103 | assert evaluate_cel("a && b", {"a": True, "b": False}) is False |
| HIGH | tests/agents/test_cel_evaluator.py | 104 | assert evaluate_cel("a || b", {"a": False, "b": True}) is True |
| HIGH | tests/parser/file/test_tabular_parser.py | 209 | assert result == "COLUMNS: A | B || x | y" |
| HIGH | tests/devices/test_splitter.py | 11 | assert split_command("ls && rm -rf /") == ["ls", "rm -rf /"] |
| HIGH | tests/devices/test_splitter.py | 15 | assert split_command("foo || bar") == ["foo", "bar"] |
| HIGH | tests/devices/test_splitter.py | 71 | assert head_tokens("ls && rm -rf / | grep foo") == ["ls", "rm", "grep"] |
| HIGH | tests/devices/test_splitter.py | 75 | assert head_tokens("timeout 5 ls && nohup git push") == ["ls", "git"] |
| HIGH | tests/devices/test_normalizer.py | 37 | assert normalize_command("ls -la && rm -rf /tmp") == "ls * && rm *" |
| HIGH | tests/devices/test_normalizer.py | 42 | assert normalize_command("ls /tmp && whoami") == "ls * && whoami" |
| HIGH | tests/devices/test_normalizer.py | 44 | normalize_command("ls /tmp && rm /tmp/x") |
| HIGH | tests/devices/test_normalizer.py | 45 | != normalize_command("ls /tmp && whoami") |
| HIGH | tests/devices/test_denylist.py | 208 | assert check_denylist("echo safe && rm -rf /") == "rm -rf /" |
| HIGH | scripts/db/backfill.py | 233 | SET agent_preferences = users.agent_preferences || EXCLUDED.agent_preferences, |
| HIGH | …lication/storage/db/repositories/connector_sessions.py | 281 | (connector_sessions.session_data || EXCLUDED.session_data) |
| HIGH | application/devices/normalizer.py | 12 | ``ls /tmp && whoami`` -> ``ls * && whoami`` |
| HIGH | application/devices/normalizer.py | 71 | normalized segment sequence (approving ``ls /tmp && whoami`` won't |
| HIGH | application/devices/normalizer.py | 72 | auto-approve ``ls /tmp && rm /tmp/x``). Empty segments are skipped; |
| HIGH | application/devices/denylist.py | 146 | ``echo safe && rm -rf /`` still trips. Returns ``None`` if no segment |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | application/utils.py | 237 | Convert PDF pages to images for LLMs that support images but not PDFs. This enables "synthetic PDF support" by |
| HIGH | application/core/url_validation.py | 94 | Validate a URL to prevent SSRF attacks. This function checks that: 1. The URL has an allowed scheme (http |
| HIGH | application/agents/tools/api_body_serializer.py | 31 | Serialize body data to appropriate format. Args: body_data: Dictionary of body parameters |
| HIGH | application/agents/tools/ntfy.py | 21 | Execute the specified action with given parameters. Args: action_name (str): Name of the a |
| HIGH | application/agents/tools/ntfy.py | 43 | Send a message to an ntfy topic on the specified server. Args: server_url (str): Base URL |
| HIGH | application/agents/tools/spec_parser.py | 23 | Parse an API specification and convert operations to action definitions. Supports OpenAPI 3.x and Swagger 2.0 |
| HIGH | application/parser/embedding_pipeline.py | 160 | Embeds documents and stores them in a vector store. Resumable across Celery autoretries of the *same* task: when |
| HIGH | application/parser/connectors/connector_creator.py | 31 | Create a connector instance for the specified type. Args: connector_type: Type of connecto |
| HIGH | application/parser/connectors/connector_creator.py | 51 | Create an auth provider instance for the specified connector type. Args: connector_type: T |
| HIGH | …lication/storage/db/repositories/connector_sessions.py | 233 | Upsert by shallow-merging ``patch`` into ``session_data``. Writes ``server_url`` to the scalar column so downst |
| HIGH | application/api/answer/services/prompt_renderer.py | 29 | Render prompt with full context from all namespaces. Args: prompt_content: Raw prompt temp |
| HIGH | application/api/answer/services/compression/service.py | 55 | Compress conversation history up to specified index. Args: conversation: Full conversation |
| HIGH | application/api/answer/services/compression/service.py | 160 | Compress conversation and save to database. Args: conversation_id: Conversation ID |
| HIGH | …tion/api/answer/services/compression/prompt_builder.py | 24 | Load prompt template from file. Args: version: Version string (e.g., 'v1.0') Retu |
| HIGH | application/templates/template_engine.py | 34 | Render template with provided context. Args: template_content: Raw template string with Ji |
| HIGH | application/services/search_service.py | 121 | Resolve an agent by API key and search its sources. Args: api_key: Agent API key (the opaque string stored |
| HIGH | application/vectorstore/faiss.py | 14 | Build a safe local path for a FAISS index. Args: path: Source identifier provided by the caller. Retur |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/test_todo_tool.py | 0 | a ``default_{user_id}`` tool_id must no-op with a polite error. |
| HIGH | tests/test_memory_tool.py | 0 | a ``default_{user_id}`` tool_id must no-op with a polite error. |
| HIGH | tests/test_notes_tool.py | 0 | a ``default_{user_id}`` tool_id must no-op with a polite error. |
| HIGH | tests/storage/db/repositories/test_todos.py | 0 | insert a user_tools row and return its uuid as a string. |
| HIGH | tests/storage/db/repositories/test_memories.py | 0 | insert a user_tools row and return its uuid as a string. |
| HIGH | tests/storage/db/repositories/test_notes.py | 0 | insert a user_tools row and return its uuid as a string. |
| HIGH | application/agents/tools/memory.py | 0 | return json metadata describing supported actions for tool schemas. |
| HIGH | application/agents/tools/todo_list.py | 0 | return json metadata describing supported actions for tool schemas. |
| HIGH | application/agents/tools/notes.py | 0 | return json metadata describing supported actions for tool schemas. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | setup.sh | 80 | # Check if Docker is running |
| LOW | setup.sh | 547 | if [[ "$CONTAINER_STATUS" == *"ollama"* ]]; then # Check if 'ollama' service is in running services |
| LOW | setup.sh | 765 | # Check if .env file exists and is not empty |
| LOW | tests/test_integration.py | 719 | # Check if it's the detailed validation error or generic error |
| LOW | tests/test_integration.py | 919 | # Check if conversation was compressed by examining metadata |
| LOW | tests/test_integration.py | 1050 | # Check if the critical info was preserved |
| LOW | extensions/react-widget/publish.sh | 11 | # Check if a specific version was provided |
| LOW | application/llm/google_ai.py | 608 | # Check if we have both tools and file attachments |
| LOW | application/llm/openai.py | 26 | # Check if it looks like a data URL with base64 |
| LOW | application/llm/openai.py | 495 | # Check if this is a pre-converted image (from PDF-to-image conversion) |
| LOW | application/llm/anthropic.py | 142 | # Check if this is a pre-converted image (from PDF-to-image conversion) |
| LOW | application/llm/handlers/base.py | 136 | # Check if provider supports images but not PDF (synthetic PDF support) |
| LOW | application/llm/handlers/base.py | 532 | # Check if compression actually reduced tokens |
| LOW | application/llm/handlers/base.py | 1204 | # Check if context limit was reached during tool execution |
| LOW | application/core/url_validation.py | 133 | # Check if hostname is an IP address directly |
| LOW | application/agents/tools/memory.py | 308 | # Check if viewing directory (ends with / or is root) |
| LOW | application/agents/tools/memory.py | 406 | # Check if old_str exists (case-insensitive) |
| LOW | application/agents/tools/memory.py | 468 | # Check if it's a directory (ends with /) |
| LOW | application/agents/tools/internal_search.py | 188 | # Check if it's a file metadata dict or a folder |
| LOW | application/parser/file/pptx_parser.py | 63 | # Check if the shape has a 'text' attribute and append that to the slide_text |
| LOW | application/parser/remote/sitemap_loader.py | 18 | # Check if the input is a list and if it is, use the first element |
| LOW | application/parser/remote/github_loader.py | 85 | # Check if it's a rate limit issue |
| LOW | application/api/answer/services/stream_processor.py | 184 | # Check if compression is enabled and needed |
| LOW | application/api/answer/services/compression/service.py | 80 | # Check if there are existing compressions |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | frontend/src/vite-env.d.ts | 1 | /// <reference types="vite/client" /> |
| LOW | frontend/src/events/eventStreamClient.ts | 121 | notifyHealth('connecting'); |
| LOW | frontend/src/events/useEventStream.ts | 41 | // inside ``connectEventStream``. |
| LOW | tests/agents/test_workflow_agent_pg_write.py | 81 | # ------------------------------------------------------------------ |
| LOW | tests/parser/connectors/confluence/test_auth.py | 301 | + datetime.timedelta(seconds=30) |
| LOW | tests/e2e/specs/auth/session_jwt.spec.ts | 61 | ).toBeVisible(); |
| LOW | tests/e2e/specs/tier-a/attachments.spec.ts | 421 | ); |
| LOW | tests/e2e/specs/tier-a/agents.spec.ts | 321 | // cannot reliably assert non-empty `sources[]` in the response |
| LOW | scripts/qa/durability_e2e.py | 1421 | redis.Redis(host="127.0.0.1", port=6379, db=backend_db).flushdb() |
| LOW | scripts/e2e/env.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/e2e/down.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/e2e/up.sh | 1 | #!/usr/bin/env bash |
| LOW | application/seed/config/agents_template.yaml | 21 | loader: "url" # Type of loader (url, pdf, txt, etc.) |
| LOW | application/core/settings.py | 201 | COMPRESSION_PROMPT_VERSION: str = "v1.0" # Track prompt iterations |
| LOW | application/core/settings.py | 221 | # can move from Redis to the wire — a malicious client looping |
| LOW | application/core/models/azure_openai.yaml | 1 | # Azure OpenAI catalog. |
| LOW | application/streaming/message_journal.py | 101 | materialised_seq = sequence_no |
| LOW | application/streaming/event_replay.py | 41 | # heartbeat skew doesn't false-positive, short enough that a stuck |
| LOW | application/streaming/event_replay.py | 181 | # Replay buffer — populated inside ``_on_subscribe`` (or the |
| LOW | application/streaming/event_replay.py | 241 | # until the outer loop calls ``get_message`` again. |
| LOW | application/streaming/event_replay.py | 341 | # Snapshot already covered this id — drop the duplicate. |
| LOW | application/api/answer/routes/base.py | 801 | # ``record_event`` below — keeps the journal's seq order |
| LOW | application/api/user/sources/upload.py | 601 | |
| LOW | application/api/events/routes.py | 361 | # Runs synchronously inside Topic.subscribe after the |
| LOW | …ication/alembic/versions/0004_durability_foundation.py | 121 | # assumption they were written from the primary path — pre-fix the |
| LOW | application/vectorstore/mongodb.py | 101 | refresh_indices=True, |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_integration.py | 950 | # Step 1: Send general questions |
| LOW | tests/test_integration.py | 981 | # Step 2: Send CRITICAL information |
| LOW | tests/test_integration.py | 1006 | # Step 3: Send more general questions to bury the critical info |
| LOW | tests/test_integration.py | 1035 | # Step 4: Ask about the critical information |
| LOW | tests/integration/test_v1_tool_calls.py | 328 | # Step 1: trigger a tool call |
| LOW | tests/integration/test_v1_tool_calls.py | 350 | # Step 2: send continuation with tool result + top-level conversation_id |
| LOW | tests/integration/test_v1_tool_calls.py | 423 | # Step 1: trigger a tool call |
| LOW | tests/integration/test_v1_tool_calls.py | 449 | # Step 2: send continuation (standard format, top-level conversation_id) |
| LOW | .github/workflows/sync_fork.yaml | 18 | # Step 1: run a standard checkout action |
| LOW | .github/workflows/sync_fork.yaml | 22 | # Step 2: run the sync action |
| LOW | application/worker.py | 1653 | # Step 1: Initialize the appropriate loader |
| LOW | application/worker.py | 1678 | # Step 2: Download files to temp directory |
| LOW | application/worker.py | 1716 | # Step 3: Use SimpleDirectoryReader to process downloaded files |
| LOW | application/worker.py | 1735 | # Step 4: Process documents (chunking, embedding, etc.) |
| LOW | application/worker.py | 1784 | # Step 6: Upload index files |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | extensions/react-widget/README.md | 120 | apiKey="your-api-key" |
| HIGH | extensions/react-widget/README.md | 148 | apiKey: 'your-api-key-here', |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | frontend/package-lock.json | 11937 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", |
| MEDIUM | tests/test_compression_service.py | 1002 | "response": """Python decorators are a powerful feature that allows you to modify or enhance functions and c |
| LOW | tests/agents/test_workflow_agent_graph.py | 208 | # Should just return None since workflow not found in DB |
| MEDIUM | docs/package-lock.json | 11575 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/agents/test_tool_action_parser.py | 34 | call.arguments = '{"to": "user@example.com"}' |
| LOW | tests/agents/test_tool_action_parser.py | 40 | assert call_args == {"to": "user@example.com"} |
| LOW | tests/parser/connectors/test_share_point_auth.py | 243 | "preferred_username": "user@example.com", |
| LOW | tests/parser/connectors/test_share_point_auth.py | 253 | assert mapped["user_info"]["email"] == "user@example.com" |
| LOW | tests/api/test_connector_routes_happy.py | 363 | "user_email": "user@example.com", |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | application/parser/file/docs_parser.py | 24 | # alternatively you can use local vision capable LLM |
| MEDIUM | application/parser/file/image_parser.py | 24 | # alternatively you can use local vision capable LLM |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/test_compression_service.py | 755 | def process_data(self, input_data: List[str]) -> Dict[str, Any]: |
| LOW | tests/test_compression_service.py | 1021 | def my_function(): |
| LOW | application/security/safe_url.py | 439 | def handle_request(self, request: httpx.Request) -> httpx.Response: |