Multi-Agent Harness for Production AI
This report summarizes scanner evidence for aden-hive/hive, a Python project with 11,097 GitHub stars. SynthScan examined 449,168 lines of code across 1526 source files, recording 10630 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 37.4 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 5359 finding(s).
Are imports declared and package/API names verified? 1261 finding(s).
Are wrappers, guards, and repeated structures necessary? 8473 finding(s).
Which changes need focused human review? 10630 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 10630 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | quickstart.sh | 118 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 120 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 248 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 250 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 453 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 455 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2085 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2087 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2186 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2188 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2264 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2266 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2308 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2310 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2319 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2321 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 1153 | # ── Credential detection (silent — just set flags) ─────────── | COMMENT |
| MEDIUM | quickstart.sh | 1229 | # ── Read previous configuration (if any) ────────────────────── | COMMENT |
| MEDIUM | quickstart.sh | 1329 | # ── Show unified provider selection menu ───────────────────── | COMMENT |
| MEDIUM | quickstart.sh | 1876 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 1878 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2035 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2037 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2155 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2157 | # ============================================================ | COMMENT |
| MEDIUM | tools/files_server.py | 63 | # ── Entry point ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 48 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 50 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 112 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 114 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 333 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 335 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 383 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_cleanup_phase1.py | 385 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tests/test_browser_cleanup_phase1.py | 174 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/tests/test_browser_cleanup_phase1.py | 176 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_terminal_tools_shell.py | 24 | # ── POSIX behavior is unchanged ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_terminal_tools_shell.py | 63 | # ── Windows priority: Git Bash → PowerShell → cmd ──────────────────────── | COMMENT |
| MEDIUM | tools/tests/test_terminal_tools_shell.py | 108 | # ── Explicit Windows shell paths map to the right dialect ───────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_terminal_tools_shell.py | 135 | # ── _windows_bash excludes the WSL System32 launcher ───────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_memory_recall_timeline.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_memory_recall_timeline.py | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_memory_recall_timeline.py | 88 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_memory_recall_timeline.py | 90 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/tests/test_rate_limit_hook.py | 17 | # ── Fixtures ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_rate_limit_hook.py | 60 | # ── before_run tests ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_rate_limit_hook.py | 146 | # ── after_run tests ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_rate_limit_hook.py | 206 | # ── IDENTITY_JS tests ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_rate_limit_hook.py | 222 | # ── too_fast absorb tests (2026-07-21) ───────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_tools_comprehensive.py | 44 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_tools_comprehensive.py | 46 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_tools_comprehensive.py | 112 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_browser_tools_comprehensive.py | 114 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_live_health_checks.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_live_health_checks.py | 45 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_live_health_checks.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_live_health_checks.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/tests/test_live_health_checks.py | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/tests/test_live_health_checks.py | 126 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_live_health_checks.py | 140 | # --------------------------------------------------------------------------- | COMMENT |
| 1829 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 460 | async def test_anthropic_provider_basic(): | CODE |
| LOW | CONTRIBUTING.md | 468 | async def test_anthropic_provider_real(anthropic_api_key): | CODE |
| LOW | CONTRIBUTING.md | 975 | async def test_graph_execution_with_multiple_nodes(): | CODE |
| LOW | tools/BUILDING_TOOLS.md | 250 | def test_my_tool_with_valid_key(mcp): | CODE |
| LOW | tools/manual_browser_complex_test.py | 35 | async def test_linkedin_profile_scroll(bridge: BeelineBridge, tab_id: int) -> dict: | CODE |
| LOW⚡ | tools/tests/test_browser_cleanup_phase1.py | 54 | async def test_close_defers_when_bridge_disconnected(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_browser_cleanup_phase1.py | 118 | async def test_forward_reaper_closes_only_marked_orphans_after_debounce(): | CODE |
| LOW⚡ | tools/tests/test_browser_cleanup_phase1.py | 339 | async def test_create_context_pins_window_across_workers(): | CODE |
| LOW⚡ | tools/tests/test_browser_cleanup_phase1.py | 389 | async def test_destroy_records_persisted_group_then_create_recycles_it(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 76 | async def test_drain_dead_letter_closes_deferred(monkeypatch): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 94 | async def test_close_succeeds_when_connected(monkeypatch): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 149 | async def test_forward_reaper_skips_pooled_saved_chips(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 162 | async def test_forward_reaper_resets_debounce_when_orphan_disappears(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 197 | async def test_ungrouped_reaper_closes_tracked_escapee_after_debounce(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 216 | async def test_ungrouped_reaper_never_closes_untracked_user_tab(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 227 | async def test_ungrouped_reaper_skips_tab_owned_by_live_context(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 239 | async def test_ungrouped_reaper_resets_debounce_when_regrouped(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 258 | async def test_ungrouped_reaper_noop_when_nothing_tracked(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 299 | async def test_hive_tab_ids_populated_by_create_tab_and_evicted_by_close(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 318 | def test_hive_tab_ids_updated_by_regrouped_event(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 366 | async def test_create_context_self_heals_when_window_changes(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 414 | async def test_destroy_non_persisted_group_not_pooled(): | CODE |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 424 | async def test_create_does_not_recycle_on_old_protocol(): | CODE |
| LOW | tools/tests/conftest.py | 20 | def _clear_default_adapter_cache(): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 27 | def test_posix_shell_true_is_bash(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 36 | def test_shell_false_is_direct(): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 56 | def test_resolve_shell_backcompat(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 66 | def test_windows_prefers_git_bash(monkeypatch): | CODE |
| LOW | tools/tests/test_terminal_tools_shell.py | 77 | def test_windows_falls_back_to_powershell(monkeypatch): | CODE |
| LOW | tools/tests/test_terminal_tools_shell.py | 97 | def test_windows_falls_back_to_cmd(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 128 | def test_kind_for_explicit_path(path, kind, prefix): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 138 | def test_windows_bash_rejects_wsl_launcher(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 146 | def test_windows_bash_accepts_real_path_bash(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_terminal_tools_shell.py | 153 | def test_windows_bash_env_override(monkeypatch): | CODE |
| LOW⚡ | tools/tests/test_script_hooks.py | 45 | def test_register_adds_to_list(): | CODE |
| LOW⚡ | tools/tests/test_script_hooks.py | 51 | def test_register_preserves_order(): | CODE |
| LOW⚡ | tools/tests/test_script_hooks.py | 61 | def test_hook_without_before_run_is_noop(): | CODE |
| LOW⚡ | tools/tests/test_script_hooks.py | 68 | def test_hook_without_after_run_is_noop(): | CODE |
| LOW⚡ | tools/tests/test_script_hooks.py | 76 | async def test_before_run_returning_none_proceeds(): | CODE |
| LOW | tools/tests/test_script_hooks.py | 93 | async def test_before_run_returning_dict_short_circuits(): | CODE |
| LOW | tools/tests/test_script_hooks.py | 110 | async def test_first_blocking_hook_wins(): | CODE |
| LOW | tools/tests/test_script_hooks.py | 129 | async def test_after_run_transforms_result(): | CODE |
| LOW | tools/tests/test_script_hooks.py | 142 | async def test_after_run_chains_multiple_hooks(): | CODE |
| LOW | tools/tests/test_senders_body_html.py | 45 | def test_text_only_generates_html_with_real_line_breaks() -> None: | CODE |
| LOW | tools/tests/test_senders_body_html.py | 59 | def test_html_only_generates_a_readable_text_alternative() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 70 | def test_both_provided_are_used_verbatim() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 76 | def test_empty_text_opts_out_of_the_plain_part() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 83 | def test_legacy_html_content_holding_plain_text_is_still_safe() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 94 | def test_legacy_html_content_holding_real_html_still_works() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 101 | def test_special_characters_are_escaped_not_broken() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 108 | def test_html_to_text_unescapes_entities() -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 114 | def test_empty_bodies_do_not_become_markup(body: str) -> None: | CODE |
| LOW⚡ | tools/tests/test_senders_body_html.py | 119 | def test_no_body_at_all_resolves_to_nothing() -> None: | CODE |
| LOW⚡ | tools/tests/test_memory_recall_timeline.py | 43 | def test_query_terms_drop_scaffolding_and_stem() -> None: | CODE |
| LOW⚡ | tools/tests/test_memory_recall_timeline.py | 48 | def test_recall_finds_the_turn_that_answers(hive_home: Path) -> None: | CODE |
| LOW⚡ | tools/tests/test_memory_recall_timeline.py | 71 | def test_recall_excludes_the_live_session_and_stays_quiet_when_nothing_relates(hive_home: Path) -> None: | CODE |
| LOW⚡ | tools/tests/test_memory_recall_timeline.py | 79 | def test_one_shared_common_word_is_not_enough(hive_home: Path) -> None: | CODE |
| LOW | tools/tests/test_memory_recall_timeline.py | 119 | def test_search_filters_by_date_overlap_and_sorts_oldest_first(weddings) -> None: | CODE |
| LOW | tools/tests/test_memory_recall_timeline.py | 131 | def test_search_matches_aliases_and_kinds(weddings) -> None: | CODE |
| LOW⚡ | tools/tests/test_memory_recall_timeline.py | 143 | def test_search_truncates_and_reports_total(weddings) -> None: | CODE |
| 4359 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/tests/conftest.py | 126 | except Exception: | CODE |
| HIGH | tools/tests/integrations/test_input_validation.py | 153 | except TypeError: | CODE |
| HIGH | tools/src/aden_tools/file_ops.py | 287 | except FileNotFoundError: | CODE |
| HIGH | tools/src/aden_tools/file_ops.py | 1238 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/file_ops.py | 1589 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/file_ops.py | 701 | except ValueError: | CODE |
| HIGH | tools/src/aden_tools/file_ops.py | 1100 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/file_ops.py | 1572 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/tools/port_scanner/port_scanner.py | 271 | except Exception: | CODE |
| HIGH | …ols/tools/dns_security_scanner/dns_security_scanner.py | 123 | except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.exception.DNSException): | CODE |
| HIGH | …ols/tools/dns_security_scanner/dns_security_scanner.py | 161 | except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.exception.DNSException): | CODE |
| HIGH | …ols/tools/dns_security_scanner/dns_security_scanner.py | 197 | except dns.resolver.NoAnswer: | CODE |
| HIGH | …ols/tools/dns_security_scanner/dns_security_scanner.py | 199 | except (dns.resolver.NXDOMAIN, dns.exception.DNSException): | CODE |
| HIGH | tools/src/aden_tools/tools/gmail_tool/gmail_tool.py | 238 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/tools/gmail_tool/gmail_tool.py | 250 | except Exception: | CODE |
| HIGH | …ls/src/aden_tools/tools/pdf_read_tool/pdf_read_tool.py | 335 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/tools/senders_tool/senders_tool.py | 64 | except json.JSONDecodeError: | CODE |
| HIGH | tools/src/aden_tools/tools/attio_tool/attio_tool.py | 298 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/tools/sap_tool/sap_tool.py | 50 | except KeyError: | CODE |
| HIGH | …ls/src/aden_tools/tools/postgres_tool/postgres_tool.py | 167 | except Exception: | CODE |
| HIGH | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 95 | except ValueError: | CODE |
| HIGH | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 191 | except (httpx.HTTPError, ValueError): | CODE |
| HIGH | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 283 | except PlaywrightTimeout: | CODE |
| HIGH | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 304 | except (json.JSONDecodeError, TypeError): | CODE |
| HIGH | tools/src/aden_tools/tools/linear_tool/linear_tool.py | 812 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/senders/threads.py | 64 | except FileNotFoundError: | CODE |
| HIGH | tools/src/aden_tools/senders/rotation.py | 49 | except FileNotFoundError: | CODE |
| HIGH | tools/src/aden_tools/credentials/store_adapter.py | 268 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/credentials/store_adapter.py | 576 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/credentials/health_check.py | 399 | except Exception: | CODE |
| HIGH | tools/src/aden_tools/credentials/health_check.py | 267 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/server.py | 142 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/server.py | 146 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/server.py | 129 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/server.py | 133 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/exec.py | 222 | except (BrokenPipeError, OSError): | CODE |
| HIGH | tools/src/terminal_tools/exec.py | 242 | except (OSError, ValueError): | CODE |
| HIGH | tools/src/terminal_tools/exec.py | 247 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/exec.py | 297 | except JobLimitExceeded: | CODE |
| HIGH | tools/src/terminal_tools/pty/tools.py | 76 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/pty/tools.py | 43 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/pty/session.py | 346 | except OSError: | CODE |
| HIGH | tools/src/terminal_tools/pty/session.py | 200 | except (ProcessLookupError, PermissionError): | CODE |
| HIGH | tools/src/terminal_tools/pty/session.py | 204 | except ChildProcessError: | CODE |
| HIGH | tools/src/terminal_tools/pty/session.py | 216 | except OSError: | CODE |
| HIGH | tools/src/terminal_tools/pty/session.py | 185 | except OSError: | CODE |
| HIGH | tools/src/terminal_tools/pty/session.py | 210 | except (ProcessLookupError, PermissionError): | CODE |
| HIGH | tools/src/terminal_tools/common/limits.py | 264 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/common/process_tree.py | 47 | except ProcessLookupError: | CODE |
| HIGH | tools/src/terminal_tools/common/process_tree.py | 67 | except ProcessLookupError: | CODE |
| HIGH | tools/src/terminal_tools/jobs/manager.py | 422 | except (OSError, ValueError): | CODE |
| HIGH | tools/src/terminal_tools/jobs/manager.py | 427 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/jobs/manager.py | 152 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/jobs/manager.py | 251 | except Exception: | CODE |
| HIGH | tools/src/terminal_tools/jobs/manager.py | 260 | except Exception: | CODE |
| HIGH | tools/src/chart_tools/server.py | 119 | except Exception: | CODE |
| HIGH | tools/src/chart_tools/server.py | 110 | except Exception: | CODE |
| HIGH | tools/src/memory_tools/index.py | 89 | except OSError: | CODE |
| HIGH | tools/src/gcu/server.py | 259 | except Exception: | CODE |
| HIGH | tools/src/gcu/server.py | 242 | except (asyncio.CancelledError, Exception): | CODE |
| 290 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | quickstart.sh | 1266 | except Exception: | CODE |
| LOW | tools/manual_browser_test.py | 52 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 65 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 82 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 103 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 131 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 153 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 178 | except Exception as e: | STRING |
| LOW | tools/manual_browser_test.py | 195 | except Exception as e: | CODE |
| LOW | tools/manual_browser_test.py | 218 | except Exception as e: | CODE |
| LOW | tools/linkedin_browser_test.py | 53 | except Exception as e: | CODE |
| LOW | tools/linkedin_browser_test.py | 74 | except Exception as e: | CODE |
| LOW | tools/linkedin_browser_test.py | 151 | except Exception as e: | STRING |
| LOW | tools/linkedin_browser_test.py | 164 | except Exception as e: | STRING |
| LOW | tools/linkedin_browser_test.py | 173 | except Exception as e: | STRING |
| LOW | tools/BUILDING_TOOLS.md | 66 | except Exception as e: | CODE |
| LOW | tools/BUILDING_TOOLS.md | 294 | except Exception as e: | CODE |
| MEDIUM | tools/BUILDING_TOOLS.md | 288 | def my_tool(**kwargs) -> dict: | CODE |
| LOW | tools/manual_browser_complex_test.py | 74 | except Exception as e: | STRING |
| LOW | tools/manual_browser_complex_test.py | 115 | except Exception as e: | STRING |
| LOW | tools/manual_browser_complex_test.py | 170 | except Exception as e: | STRING |
| LOW | tools/manual_browser_complex_test.py | 226 | except Exception as e: | STRING |
| LOW | tools/manual_browser_complex_test.py | 268 | except Exception as e: | CODE |
| LOW | tools/README.md | 222 | except Exception as e: | CODE |
| LOW | tools/manual_click_debug.py | 56 | except Exception as e: | CODE |
| LOW | tools/manual_click_debug.py | 89 | except Exception as e: | STRING |
| LOW | tools/manual_click_debug.py | 97 | except Exception as e: | STRING |
| LOW | tools/manual_click_debug.py | 113 | except Exception as e: | STRING |
| LOW | tools/manual_click_debug.py | 133 | except Exception as e: | STRING |
| LOW | tools/tests/conftest.py | 104 | except Exception as exc: | CODE |
| LOW | tools/tests/conftest.py | 126 | except Exception: | CODE |
| LOW⚡ | tools/tests/test_browser_tools_comprehensive.py | 39 | except Exception: | CODE |
| LOW⚡ | tools/tests/test_x_page_load_repro.py | 137 | except Exception as e: | CODE |
| LOW⚡ | tools/tests/test_x_page_load_repro.py | 155 | except Exception as e: | CODE |
| LOW⚡ | tools/tests/test_x_page_load_repro.py | 170 | except Exception as e: | CODE |
| LOW⚡ | tools/tests/test_x_page_load_repro.py | 252 | except Exception: | CODE |
| LOW | tools/tests/test_x_page_load_repro.py | 86 | except Exception as e: | CODE |
| LOW | tools/tests/test_x_page_load_repro.py | 197 | except Exception as e: | CODE |
| LOW | tools/tests/test_x_page_load_repro.py | 354 | except Exception as e: | STRING |
| LOW | tools/src/aden_tools/file_ops.py | 1009 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1091 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1100 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1115 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1238 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1247 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1534 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1572 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1589 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1595 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/tools/n8n_tool/n8n_tool.py | 64 | except Exception: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 155 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 212 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 247 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 289 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 330 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 369 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 408 | except Exception as e: | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 449 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/tools/csv_tool/csv_tool.py | 81 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/tools/csv_tool/csv_tool.py | 131 | except Exception as e: | CODE |
| 1289 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/files_server.py | 20 | CODE | |
| LOW | tools/memory_tools_server.py | 10 | CODE | |
| LOW | tools/terminal_tools_server.py | 15 | CODE | |
| LOW | tools/chart_tools_server.py | 11 | CODE | |
| LOW | tools/tests/test_browser_cleanup_phase1.py | 14 | CODE | |
| LOW | tools/tests/conftest.py | 3 | CODE | |
| LOW | tools/tests/test_terminal_tools_shell.py | 8 | CODE | |
| LOW | tools/tests/test_script_hooks.py | 3 | CODE | |
| LOW | tools/tests/test_senders_body_html.py | 21 | CODE | |
| LOW | tools/tests/test_memory_recall_timeline.py | 3 | CODE | |
| LOW | tools/tests/test_terminal_tools_jobs.py | 3 | CODE | |
| LOW | tools/tests/test_terminal_tools_security.py | 3 | CODE | |
| LOW | tools/tests/test_rate_limit_hook.py | 3 | CODE | |
| LOW | tools/tests/test_browser_tools_comprehensive.py | 11 | CODE | |
| LOW | tools/tests/test_senders_feature_flag.py | 15 | CODE | |
| LOW | tools/tests/test_terminal_tools_pty.py | 3 | CODE | |
| LOW | tools/tests/test_bridge_rpc_allowlist.py | 8 | CODE | |
| LOW | tools/tests/test_live_health_checks.py | 17 | CODE | |
| LOW | tools/tests/test_command_guard.py | 11 | CODE | |
| LOW | tools/tests/test_chart_tools_smoke.py | 9 | CODE | |
| LOW | tools/tests/test_terminal_tools_smoke.py | 3 | CODE | |
| LOW | tools/tests/test_refs.py | 3 | CODE | |
| LOW | tools/tests/test_file_state_cache.py | 12 | CODE | |
| LOW | tools/tests/test_browser_discovery.py | 10 | CODE | |
| LOW | tools/tests/test_credentials_tool.py | 8 | CODE | |
| LOW | tools/tests/test_bridge_multiconnection.py | 15 | CODE | |
| LOW | tools/tests/test_memory_tools.py | 13 | CODE | |
| LOW | tools/tests/test_terminal_tools_search.py | 3 | CODE | |
| LOW | tools/tests/test_terminal_tools_exec.py | 3 | CODE | |
| LOW | tools/tests/test_browser_profile_conflict.py | 16 | CODE | |
| LOW | tools/tests/test_bridge_host_lifetime.py | 9 | CODE | |
| LOW | tools/tests/vision_eval/server.py | 21 | CODE | |
| LOW | tools/tests/tools/test_similarweb_tool.py | 3 | CODE | |
| LOW | tools/tests/tools/test_ssl_tls_scanner.py | 3 | CODE | |
| LOW | tools/tests/tools/test_port_scanner.py | 3 | CODE | |
| LOW | tools/tests/tools/test_discord_tool.py | 16 | CODE | |
| LOW | tools/tests/tools/test_risk_scorer.py | 3 | CODE | |
| LOW | tools/tests/tools/test_telegram_tool.py | 16 | CODE | |
| LOW | tools/tests/tools/test_image_gen_tool.py | 7 | CODE | |
| LOW | tools/tests/tools/test_hubspot_tool.py | 11 | CODE | |
| LOW | tools/tests/tools/test_wandb_tool.py | 3 | CODE | |
| LOW | tools/tests/tools/test_subdomain_enumerator.py | 3 | CODE | |
| LOW | tools/tests/tools/test_linear_tool.py | 12 | CODE | |
| LOW | tools/tests/tools/test_attio_tool.py | 12 | CODE | |
| LOW | tools/tests/tools/test_github_tool.py | 11 | CODE | |
| LOW | tools/tests/tools/test_tech_stack_detector.py | 3 | CODE | |
| LOW | tools/tests/tools/test_mattermost_tool.py | 9 | CODE | |
| LOW | tools/tests/tools/test_bigquery_tool.py | 13 | CODE | |
| LOW | tools/tests/tools/test_http_headers_scanner.py | 3 | CODE | |
| LOW | tools/tests/tools/test_dns_security_scanner.py | 3 | CODE | |
| LOW | tools/tests/tools/test_intercom_tool.py | 12 | CODE | |
| LOW | tools/tests/tools/test_razorpay_tool.py | 13 | CODE | |
| LOW | tools/tests/tools/test_attach_file_tool.py | 3 | CODE | |
| LOW | tools/tests/tools/test_stripe_tool.py | 14 | CODE | |
| LOW | tools/tests/tools/test_prometheus_tool.py | 1 | CODE | |
| LOW | tools/tests/tools/test_google_docs_tool.py | 12 | CODE | |
| LOW | tools/tests/tools/test_security_tools.py | 3 | CODE | |
| LOW | tools/tests/tools/test_arxiv_tool.py | 11 | CODE | |
| LOW | tools/tests/tools/test_apollo_tool.py | 12 | CODE | |
| LOW | tools/tests/integrations/conftest.py | 7 | CODE | |
| 899 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/manual_browser_test.py | 171 | first: links[0]?.href || null | CODE |
| HIGH | tools/linkedin_browser_test.py | 91 | if (rect.width > 200 && rect.height > 200) { | CODE |
| HIGH | tools/tests/test_command_guard.py | 21 | 'pkill -f "chrome.*silent-lime-narwhal" 2>/dev/null; pkill -f "google-chrome" 2>/dev/null; sleep 2; echo "done"', | CODE |
| HIGH | tools/tests/test_command_guard.py | 25 | "kill $(ps aux | grep -v grep | grep -i chrome | awk '{print $2}') 2>/dev/null; sleep 2; echo \"done\"", | CODE |
| HIGH | tools/tests/test_command_guard.py | 55 | 'which google-chrome google-chrome-stable chromium chromium-browser 2>/dev/null || echo "not found"', | CODE |
| HIGH | tools/tests/test_terminal_tools_exec.py | 213 | command="echo HEADER && echo line1 | head -1", | CODE |
| HIGH | tools/src/chart_tools/renderer.py | 294 | const legendVertical = userLegend && userLegend.orient === 'vertical'; | STRING |
| HIGH | tools/src/gcu/cli.py | 222 | "Bare multi-statement code without a return yields null; a top-level `throw`\n" | CODE |
| HIGH | tools/src/gcu/cli_commands/page.py | 49 | script = f"(function() {{ const el = document.querySelector({sel_json}); return el ? el.outerHTML : null; }} | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 363 | if (!el) return null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 366 | tag: el.tagName ? el.tagName.toLowerCase() : null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 367 | id: el.id || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 367 | id: el.id || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 368 | className: typeof el.className === 'string' ? el.className.substring(0, 120) : null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 369 | role: el.getAttribute ? el.getAttribute('role') : null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 370 | text: ((el.innerText || el.textContent || '') + '').substring(0, 80), | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 379 | stack.push(describe(els[i])); | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 382 | stack.push(describe(topEl)); | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 388 | if (!el) return null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 390 | tag: el.tagName ? el.tagName.toLowerCase() : null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 391 | text: ((el.innerText || el.textContent || '') + '').substring(0, 40) | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 399 | var offsetInRect = null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 400 | if (hit && hit.rect && hit.rect.width > 0 && hit.rect.height > 0) { | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 460 | for (var i = 0; i < el.attributes.length && i < 10; i++) { | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 465 | id: el.id || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 465 | id: el.id || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 466 | className: el.className || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 466 | className: el.className || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 467 | name: el.getAttribute('name') || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 468 | type: el.getAttribute('type') || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 469 | role: el.getAttribute('role') || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 470 | contenteditable: el.getAttribute('contenteditable') || null, | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 472 | value: (el.value !== undefined ? String(el.value).substring(0, 200) : null), | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 478 | if (!el || el === document.body) return null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 478 | if (!el || el === document.body) return null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 486 | framePath.push(el.id || el.getAttribute('data-testid') || el.tagName.toLowerCase()); | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 486 | framePath.push(el.id || el.getAttribute('data-testid') || el.tagName.toLowerCase()); | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 487 | var innerDoc = null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 488 | try { innerDoc = el.contentDocument; } catch (e) { innerDoc = null; } | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 491 | if (!innerActive || innerActive === innerDoc.body) break; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 3973 | if (rect.width === 0 || rect.height === 0) {{ | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 3978 | if (rect.bottom < 0 || rect.top > {viewport_height} || | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 3979 | rect.right < 0 || rect.left > {viewport_width}) {{ | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5105 | while (node && node !== document.body && node !== document.documentElement) {{ | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5109 | return null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5112 | let target = null; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5147 | if (rect.width < 50 || rect.height < 50) continue; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5148 | if (rect.bottom <= 0 || rect.top >= window.innerHeight) continue; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5149 | if (rect.right <= 0 || rect.left >= window.innerWidth) continue; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5150 | candidates.push({{ el: el, area: rect.width * rect.height }}); | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5524 | if (rect.width === 0 || rect.height === 1 || | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5532 | if (rect.bottom < 0 || rect.top > window.innerHeight || | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5533 | rect.right < 0 || rect.left > window.innerWidth) { | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5538 | const text = (el.innerText || el.value || el.placeholder | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5540 | const type = el.type || tag; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5542 | const name = el.name || el.id || ''; | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5546 | results.push({ | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5689 | if (aria && aria.trim()) return aria.trim().replace(/\\s+/g, ' '); | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5692 | if (node.nodeType === 3) { parts.push(node.textContent); return; } | CODE |
| HIGH⚡ | tools/src/gcu/browser/bridge.py | 5694 | if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') return; | CODE |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/files_server.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/mcp_server.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/tests/conftest.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/tests/test_live_health_checks.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/src/aden_tools/__init__.py | 40 | __all__ = [ | CODE |
| LOW | tools/src/aden_tools/tools/__init__.py | 397 | __all__ = ["register_all_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/n8n_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …src/aden_tools/tools/google_analytics_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …s/tools/google_analytics_tool/google_analytics_tool.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | tools/src/aden_tools/tools/csv_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/kafka_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/freshdesk_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/attach_file_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/calendly_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …den_tools/tools/google_search_console_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/excel_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/google_maps_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/gitlab_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/vercel_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/pinecone_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/discord_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/langfuse_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/vision_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/asana_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …/src/aden_tools/tools/microsoft_graph_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/stripe_tool/__init__.py | 3 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/arxiv_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/port_scanner/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …/src/aden_tools/tools/dns_security_scanner/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/mongodb_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/ssl_tls_scanner/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/powerbi_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/plaid_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/azure_sql_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/duckduckgo_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/huggingface_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/jira_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/web_search_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/brevo_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/serpapi_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/airtable_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/docker_hub_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/hubspot_tool/__init__.py | 9 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/gmail_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/image_gen_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/apollo_tool/__init__.py | 13 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/obsidian_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/youtube_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/prometheus_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/calcom_tool/__init__.py | 9 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/cloudflare_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/greenhouse_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/cloudinary_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/pdf_read_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/senders_tool/__init__.py | 3 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/lusha_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/time_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …/src/aden_tools/tools/subdomain_enumerator/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | tools/src/aden_tools/tools/terraform_tool/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| LOW | …s/src/aden_tools/tools/tech_stack_detector/__init__.py | 5 | __all__ = ["register_tools"] | CODE |
| 345 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/linkedin_browser_test.py | 17 | CODE | |
| LOW | tools/manual_click_debug.py | 17 | CODE | |
| LOW | tools/tests/test_terminal_tools_lifecycle.py | 177 | CODE | |
| LOW | tools/tests/vision_eval/server.py | 117 | CODE | |
| LOW | tools/tests/integrations/conftest.py | 48 | CODE | |
| LOW | tools/tests/integrations/conftest.py | 156 | CODE | |
| LOW | tools/tests/integrations/test_input_validation.py | 39 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 134 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 215 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 610 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 797 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 916 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 983 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 1403 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 1448 | CODE | |
| LOW | tools/src/aden_tools/tools/csv_tool/csv_tool.py | 12 | CODE | |
| LOW | tools/src/aden_tools/tools/csv_tool/csv_tool.py | 16 | CODE | |
| LOW | …/src/aden_tools/tools/freshdesk_tool/freshdesk_tool.py | 55 | CODE | |
| LOW | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 12 | CODE | |
| LOW | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 16 | CODE | |
| LOW | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 209 | CODE | |
| LOW | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 298 | CODE | |
| LOW | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 418 | CODE | |
| LOW | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 579 | CODE | |
| LOW | …/aden_tools/tools/google_maps_tool/google_maps_tool.py | 84 | CODE | |
| LOW | …/aden_tools/tools/google_maps_tool/google_maps_tool.py | 281 | CODE | |
| LOW | …/aden_tools/tools/google_maps_tool/google_maps_tool.py | 411 | CODE | |
| LOW | …ls/src/aden_tools/tools/langfuse_tool/langfuse_tool.py | 70 | CODE | |
| LOW | …ls/src/aden_tools/tools/langfuse_tool/langfuse_tool.py | 77 | CODE | |
| LOW | tools/src/aden_tools/tools/arxiv_tool/arxiv_tool.py | 22 | CODE | |
| LOW | tools/src/aden_tools/tools/arxiv_tool/arxiv_tool.py | 127 | CODE | |
| LOW | tools/src/aden_tools/tools/port_scanner/port_scanner.py | 150 | CODE | |
| LOW | tools/src/aden_tools/tools/port_scanner/port_scanner.py | 154 | CODE | |
| LOW | tools/src/aden_tools/tools/port_scanner/port_scanner.py | 207 | CODE | |
| LOW | …ols/tools/dns_security_scanner/dns_security_scanner.py | 94 | CODE | |
| LOW | …ols/tools/dns_security_scanner/dns_security_scanner.py | 134 | CODE | |
| LOW | …rc/aden_tools/tools/web_search_tool/web_search_tool.py | 24 | CODE | |
| LOW | …rc/aden_tools/tools/web_search_tool/web_search_tool.py | 30 | CODE | |
| LOW | …rc/aden_tools/tools/web_search_tool/web_search_tool.py | 87 | CODE | |
| LOW | …rc/aden_tools/tools/web_search_tool/web_search_tool.py | 156 | CODE | |
| LOW | tools/src/aden_tools/tools/gmail_tool/gmail_tool.py | 49 | CODE | |
| LOW | tools/src/aden_tools/tools/gmail_tool/gmail_tool.py | 231 | CODE | |
| LOW | …ls/src/aden_tools/tools/obsidian_tool/obsidian_tool.py | 75 | CODE | |
| LOW | …ls/src/aden_tools/tools/obsidian_tool/obsidian_tool.py | 203 | CODE | |
| LOW | tools/src/aden_tools/tools/youtube_tool/youtube_tool.py | 59 | CODE | |
| LOW | …rc/aden_tools/tools/cloudflare_tool/cloudflare_tool.py | 74 | CODE | |
| LOW | …ls/src/aden_tools/tools/pdf_read_tool/pdf_read_tool.py | 125 | CODE | |
| LOW | tools/src/aden_tools/tools/senders_tool/senders_tool.py | 131 | CODE | |
| LOW | tools/src/aden_tools/tools/lusha_tool/lusha_tool.py | 72 | CODE | |
| LOW | tools/src/aden_tools/tools/lusha_tool/lusha_tool.py | 76 | CODE | |
| LOW | …tools/tools/tech_stack_detector/tech_stack_detector.py | 111 | CODE | |
| LOW | …tools/tools/tech_stack_detector/tech_stack_detector.py | 320 | CODE | |
| LOW | …tools/tools/tech_stack_detector/tech_stack_detector.py | 115 | CODE | |
| LOW | …ls/src/aden_tools/tools/intercom_tool/intercom_tool.py | 300 | CODE | |
| LOW | …ls/src/aden_tools/tools/intercom_tool/intercom_tool.py | 329 | CODE | |
| LOW | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 119 | CODE | |
| LOW | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 123 | CODE | |
| LOW | …ls/src/aden_tools/tools/calendar_tool/calendar_tool.py | 55 | CODE | |
| LOW | …ls/src/aden_tools/tools/calendar_tool/calendar_tool.py | 147 | CODE | |
| LOW | …ls/src/aden_tools/tools/calendar_tool/calendar_tool.py | 739 | CODE | |
| 335 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | quickstart.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/tests/integrations/conftest.py | 21 | # _tool_to_cred is 1:1 and web_search already maps to brave_search. | COMMENT |
| LOW | tools/browser-extension/sidepanel.js | 41 | // ── Per-tab action cache ────────────────────────────────────────────────── | COMMENT |
| LOW | tools/browser-extension/sidepanel.js | 181 | return (tabs && tabs[0]) || null; | COMMENT |
| LOW | tools/browser-extension/sidepanel.js | 901 | async function doRelease(tabId) { | COMMENT |
| LOW | tools/browser-extension/background.js | 41 | } | COMMENT |
| LOW | tools/browser-extension/background.js | 61 | // endpoints so older extensions surface a clear 409 instead of an | COMMENT |
| LOW | tools/browser-extension/background.js | 181 | return "Chromium"; | COMMENT |
| LOW | tools/browser-extension/background.js | 441 | case "tab.release": { | COMMENT |
| LOW | tools/browser-extension/background.js | 761 | // works — see sidepanel.html. | COMMENT |
| LOW | tools/browser-extension/background.js | 801 | }); | COMMENT |
| LOW | tools/browser-extension/background.js | 881 | groupId: group.id, | COMMENT |
| LOW | tools/browser-extension/background.js | 901 | // - Not audible (playing audio/video) | COMMENT |
| LOW | tools/browser-extension/background.js | 921 | // | COMMENT |
| LOW | tools/browser-extension/background.js | 941 | // beforeunload handlers or active downloads. After N failed discards we | COMMENT |
| LOW | tools/browser-extension/background.js | 1181 | COMMENT | |
| LOW | tools/browser-extension/README.md | 81 | COMMENT | |
| LOW | tools/browser-extension/offscreen.js | 21 | let reconnectAttempts = 0; | COMMENT |
| LOW | tools/src/aden_tools/file_ops.py | 381 | # Two deny lists. Reads ⊂ writes: | COMMENT |
| LOW | tools/src/aden_tools/file_ops.py | 741 | new_lines = new.splitlines(keepends=True) | COMMENT |
| LOW | tools/src/chart_tools/renderer.py | 121 | try: | COMMENT |
| LOW | tools/src/chart_tools/renderer.py | 261 | COMMENT | |
| LOW | tools/src/chart_tools/tools.py | 121 | } | COMMENT |
| LOW | tools/src/gcu/cli_commands/interact.py | 201 | COMMENT | |
| LOW | tools/src/gcu/browser/health.py | 141 | COMMENT | |
| LOW | tools/src/gcu/browser/bridge.py | 61 | # group title (see background.js context.create). It lets the stale-context | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 141 | # When a browser tool fails because the extension isn't connected, the cause | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 241 | # Fast-fail polling default for element / text waits. 5 seconds is long | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 341 | if isinstance(tab_ids, int): | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 601 | COMMENT | |
| LOW | tools/src/gcu/browser/bridge.py | 621 | # disturbs another. Replaces the old single self._ws. | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 641 | self._server: object | None = None # websockets.Server — primary port | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 661 | self._started_at_ms: float = time.monotonic() * 1000 | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 681 | # whether one is connected at all. Populated by create_context and | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 701 | self._context_in_flight: dict[str, int] = {} | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 721 | # endpoint serves these to the side panel. | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 1241 | "bridge": "running" if (self._server or self._legacy_server) else "stopped", | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 1261 | # from the per-client owner map maintained by the RPC server | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 1621 | except Exception: | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 1961 | if frame and not frame.get("parentId") and tab_id is not None: | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 2221 | log_cdp_command(tab_id, method, params, result, duration_ms=duration_ms) | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 2901 | _WAITING_WINDOW_MS: float = 30_000.0 | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 3021 | # later, and carrying a stale highlight or "attached" flag | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 3301 | # Gated on extension protocol_version >= 2 — older extensions don't | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 3521 | except Exception as e: | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 3581 | # Page.navigate does NOT resolve while a native beforeunload dialog | COMMENT |
| LOW | tools/src/gcu/browser/bridge_rpc.py | 81 | # that never replies at all. | COMMENT |
| LOW | tools/src/gcu/browser/bridge_rpc.py | 161 | "_cdp", | COMMENT |
| LOW | tools/src/gcu/browser/tools/tabs.py | 221 | if not background and tab_id is not None: | COMMENT |
| LOW | tools/src/gcu/browser/tools/inspection.py | 81 | # are invariant to whatever resize / tile the vision API applies. The | COMMENT |
| LOW | core/frontend/src/context/ColonyContext.tsx | 181 | .flatMap(([, entries]) => entries); | COMMENT |
| LOW | core/frontend/src/context/ColonyContext.tsx | 421 | const handler = () => { | COMMENT |
| LOW | core/frontend/src/components/ColonyPanel.tsx | 881 | // Split into active / history buckets — active workers are hoisted | COMMENT |
| LOW | core/frontend/src/components/ColonyPanel.tsx | 1841 | // Name of the pill currently being pointer-dragged (for lifted styling). | COMMENT |
| LOW | core/frontend/src/components/useLazyHistoryWindow.ts | 341 | // 2. History timeline cascade (queen-DM only). `historyTimeline` is | COMMENT |
| LOW | core/frontend/src/components/useLazyHistoryWindow.ts | 441 | // dense zero-height sections — a page of 500 events that collapses into a | COMMENT |
| LOW | core/frontend/src/components/useLazyHistoryWindow.ts | 461 | const parkedAtBottom = stickToBottomRef.current; | COMMENT |
| LOW | core/frontend/src/components/ChatPanel.tsx | 461 | const name = attachmentLabel(fileName); | COMMENT |
| LOW | core/frontend/src/components/ChatPanel.tsx | 1001 | // Each `tool_status` chat message holds one tool call. Adjacent | COMMENT |
| LOW | core/frontend/src/components/ChatPanel.tsx | 2621 | const [pendingImages, setPendingImages] = useState<ImageContent[]>([]); | COMMENT |
| 228 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 818 | Run an agent with the given configuration. Args: config: Agent configuration timeout: Optional time | STRING |
| HIGH | tools/src/aden_tools/tools/excel_tool/excel_tool.py | 424 | Query an Excel file using SQL (powered by DuckDB). Each sheet is available as a table with its sheet n | STRING |
| HIGH | tools/src/aden_tools/tools/asana_tool/asana_tool.py | 266 | Create a new task in Asana. Args: workspace_gid: Workspace GID (required) name | STRING |
| HIGH | tools/src/aden_tools/tools/asana_tool/asana_tool.py | 356 | Update an existing Asana task. Args: task_gid: Task GID (required) name: New t | STRING |
| HIGH | tools/src/aden_tools/tools/asana_tool/asana_tool.py | 444 | Create a subtask under an existing Asana task. Args: parent_task_gid: Parent task GID (req | STRING |
| HIGH | …/aden_tools/tools/huggingface_tool/huggingface_tool.py | 377 | Run inference on a HuggingFace model via the Inference API. Supports text-generation, summarization, t | STRING |
| HIGH | tools/src/aden_tools/tools/gmail_tool/gmail_tool.py | 294 | Modify labels on a Gmail message. Use this to star, mark read/unread, mark important, or apply custom | STRING |
| HIGH | tools/src/aden_tools/tools/calcom_tool/calcom_tool.py | 347 | Create a new booking for an event type. Use this when you need to: - Schedule a meeting with s | STRING |
| HIGH | …ls/src/aden_tools/tools/razorpay_tool/razorpay_tool.py | 519 | Create a full or partial refund for a payment. Args: payment_id: Razorpay payment ID (e.g. | STRING |
| HIGH | …ls/src/aden_tools/tools/postgres_tool/postgres_tool.py | 426 | Describe a PostgreSQL table. Args: schema (str): The schema of the table. tabl | STRING |
| HIGH | tools/src/aden_tools/tools/github_tool/github_tool.py | 26 | Sanitize URL path parameters to prevent path traversal. Args: param: The parameter value to sanitize | STRING |
| HIGH | …ls/src/aden_tools/tools/bigquery_tool/bigquery_tool.py | 74 | Create a BigQuery client with appropriate credentials. Args: project_id: Optional project ID override | STRING |
| HIGH | tools/src/aden_tools/utils/env_helpers.py | 15 | Get an environment variable with optional default and required validation. Args: name: Name of the env | STRING |
| HIGH | tools/src/aden_tools/credentials/store_adapter.py | 172 | Get a credential value by logical name. This is the primary method for retrieving credentials. | STRING |
| HIGH | tools/src/aden_tools/credentials/base.py | 200 | Get a credential value by logical name. Reads fresh from environment/.env each time to support hot-rel | STRING |
| HIGH | tools/src/gcu/browser/tools/interactions.py | 474 | Press a keyboard key, optionally with modifier keys held. Args: key: Key to press (e.g., ' | STRING |
| HIGH | core/framework/host/agent_host.py | 312 | Unregister an entry point. Args: entry_point_id: Entry point to remove Returns: | STRING |
| HIGH | core/framework/host/agent_host.py | 927 | Trigger execution at a specific entry point. Non-blocking - returns immediately with execution ID. | STRING |
| HIGH | core/framework/storage/concurrent.py | 281 | Load a run from storage. Args: run_id: Run ID to load use_cache: Whether to us | STRING |
| HIGH | core/framework/storage/session_store.py | 57 | Get path to session directory. Args: session_id: Session ID Returns: | STRING |
| HIGH | core/framework/skills/installer.py | 84 | Install a skill from a git repository. Clones the repository with --depth=1 into a temporary directory, then co | STRING |
| HIGH | core/framework/skills/installer.py | 159 | Install a skill using a registry index entry. Resolves the git_url and subdirectory from the registry entry and | STRING |
| HIGH | core/framework/skills/installer.py | 199 | Remove an installed skill from the user skills directory. Args: name: Skill directory name to remove. | STRING |
| HIGH | core/framework/skills/installer.py | 231 | Create a local editable copy of a skill with a new name. Copies the skill's base directory to target_dir/new_name/ | STRING |
| HIGH | core/framework/orchestrator/safe_eval.py | 324 | Safely evaluate a python expression string. Args: expr: The expression string to evaluate. con | STRING |
| HIGH | core/framework/credentials/store.py | 315 | Get resolved request kwargs for a registered usage spec. Args: credential_id: The credenti | STRING |
| HIGH | core/framework/credentials/store.py | 574 | Manually refresh a credential. Args: credential_id: The credential identifier Ret | STRING |
| HIGH | core/framework/credentials/provider.py | 77 | Refresh the credential (e.g., use refresh_token to get new access_token). This method should: | STRING |
| HIGH | core/framework/credentials/template.py | 58 | Resolve all credential references in a template string. Args: template: String containing | STRING |
| HIGH | core/framework/credentials/aden/provider.py | 152 | Refresh credential by requesting new token from Aden server. The Aden server handles the actual OAuth2 | STRING |
| HIGH | core/framework/credentials/aden/provider.py | 256 | Fetch credential directly from Aden server. Use this for initial population or when local cache is mis | STRING |
| HIGH | core/framework/credentials/oauth2/base_provider.py | 120 | Generate authorization URL for user consent (Authorization Code flow). Args: state: Anti-C | STRING |
| HIGH | core/framework/credentials/oauth2/base_provider.py | 155 | Exchange authorization code for tokens (Authorization Code flow). Args: code: Authorizatio | STRING |
| HIGH | core/framework/credentials/oauth2/base_provider.py | 186 | Obtain token using client credentials (Client Credentials flow). This is for server-to-server authenti | STRING |
| HIGH | core/framework/credentials/oauth2/base_provider.py | 220 | Refresh an expired access token (Refresh Token flow). Args: refresh_token: The refresh tok | STRING |
| HIGH | core/framework/credentials/oauth2/base_provider.py | 289 | Refresh a credential using its refresh token. Implements CredentialProvider.refresh(). Args: | STRING |
| HIGH | core/framework/credentials/oauth2/base_provider.py | 386 | Make a token request to the OAuth2 server. Args: data: Form data for the token request | STRING |
| HIGH | core/framework/credentials/local/registry.py | 235 | Re-run health check for a stored account and update its status. Args: credential_id: Logic | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/tests/test_browser_tools_comprehensive.py | 250 | "name": "John Doe", | CODE |
| LOW⚡ | tools/tests/test_credentials_tool.py | 56 | assert payload["fields"] == [{"name": "api_key", "label": "API key", "secret": True, "required": True, "placeholder" | CODE |
| LOW⚡ | tools/tests/test_credentials_tool.py | 66 | assert set(field.keys()) == {"name", "label", "secret", "required", "placeholder"} | CODE |
| LOW⚡ | tools/tests/test_credentials_tool.py | 94 | assert set(field.keys()) == {"name", "label", "secret", "required", "placeholder"} | CODE |
| LOW | tools/tests/tools/test_slack_tool.py | 242 | "real_name": "John Doe", | CODE |
| LOW | tools/tests/tools/test_slack_tool.py | 966 | "real_name": "John Doe", | CODE |
| LOW | tools/tests/tools/test_jira_tool.py | 51 | "assignee": {"displayName": "John Doe"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 36 | "person_id": {"name": "John Doe"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 37 | "org_id": {"name": "Acme Corp"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 53 | assert result["deals"][0]["person_name"] == "John Doe" | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 71 | "person_id": {"name": "John Doe"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 72 | "org_id": {"name": "Acme Corp"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 122 | "org_id": {"name": "Acme Corp"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 157 | "organization": {"name": "Acme Corp"}, | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 182 | "name": "Acme Corp", | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 183 | "address": "123 Main St", | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 198 | assert result["organizations"][0]["name"] == "Acme Corp" | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 214 | "person_name": "John Doe", | CODE |
| LOW | tools/tests/tools/test_pipedrive_tool.py | 215 | "org_name": "Acme Corp", | CODE |
| LOW⚡ | tools/tests/tools/test_pdf_read_tool.py | 168 | long_text = "lorem ipsum " * 50 | CODE |
| LOW | tools/tests/tools/test_pdf_read_tool.py | 155 | long_text = "lorem ipsum " * 50 # ~600 chars | CODE |
| LOW | tools/tests/tools/test_calcom_tool.py | 198 | name="John Doe", | CODE |
| LOW | tools/tests/tools/test_greenhouse_tool.py | 138 | "phone_numbers": [{"value": "555-1234", "type": "mobile"}], | CODE |
| LOW⚡ | tools/tests/tools/test_lusha_tool.py | 43 | "fullName": "Jane Doe", | CODE |
| LOW⚡ | tools/tests/tools/test_lusha_tool.py | 45 | "company": "Acme Inc", | CODE |
| LOW⚡ | tools/tests/tools/test_lusha_tool.py | 57 | assert result["full_name"] == "Jane Doe" | CODE |
| LOW⚡ | tools/tests/tools/test_lusha_tool.py | 65 | "fullName": "Jane Doe", | CODE |
| LOW⚡ | tools/tests/tools/test_lusha_tool.py | 67 | "company": "Acme Inc", | CODE |
| LOW | tools/tests/tools/test_lusha_tool.py | 88 | "name": "Acme Inc", | CODE |
| LOW | tools/tests/tools/test_lusha_tool.py | 104 | assert result["name"] == "Acme Inc" | CODE |
| LOW | tools/tests/tools/test_lusha_tool.py | 125 | "companyName": "Acme Inc", | CODE |
| LOW | tools/tests/tools/test_lusha_tool.py | 140 | assert result["contacts"][0]["company_name"] == "Acme Inc" | CODE |
| LOW | tools/tests/tools/test_lusha_tool.py | 153 | "companyName": "Acme Inc", | CODE |
| LOW | tools/tests/tools/test_lusha_tool.py | 170 | assert result["companies"][0]["name"] == "Acme Inc" | CODE |
| LOW | tools/tests/tools/test_sap_tool.py | 122 | "BusinessPartnerFullName": "Acme Corp", | CODE |
| LOW | tools/tests/tools/test_sap_tool.py | 137 | assert result["business_partners"][0]["name"] == "Acme Corp" | CODE |
| LOW | tools/tests/tools/test_zoom_tool.py | 37 | "email": "user@example.com", | CODE |
| LOW | tools/tests/tools/test_zoom_tool.py | 40 | "display_name": "Jane Doe", | CODE |
| LOW | tools/tests/tools/test_zoom_tool.py | 53 | assert result["email"] == "user@example.com" | CODE |
| LOW | tools/tests/tools/test_zoom_tool.py | 54 | assert result["display_name"] == "Jane Doe" | CODE |
| LOW⚡ | tools/tests/tools/test_freshdesk_tool.py | 1579 | assert result["companies"][0]["name"] == "Acme Corp" | CODE |
| LOW⚡ | tools/tests/tools/test_freshdesk_tool.py | 1749 | assert result["name"] == "Acme Corp" | CODE |
| LOW | tools/tests/tools/test_freshdesk_tool.py | 83 | "name": "Jane Doe", | CODE |
| LOW | tools/tests/tools/test_freshdesk_tool.py | 456 | email="user@example.com", | CODE |
| LOW | tools/tests/tools/test_freshdesk_tool.py | 1396 | "name": "Acme Corp", | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 42 | to_email="user@example.com", | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 86 | to_email="user@example.com", | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 87 | to_name="John Doe", | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 316 | email="user@example.com", | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 323 | assert result["email"] == "user@example.com" | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 337 | fn(email="user@example.com", list_ids="2,5,8") | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 357 | result = fn(email="user@example.com", list_ids="abc,def") | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 370 | result = fn(email="user@example.com") | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 409 | result = fn(email="user@example.com") | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 413 | assert result["email"] == "user@example.com" | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 454 | result = fn(email="user@example.com") | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 480 | email="user@example.com", | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 486 | assert result["email"] == "user@example.com" | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 499 | fn(email="user@example.com", list_ids="2,5,8") | CODE |
| LOW⚡ | tools/tests/tools/test_brevo_tool.py | 519 | result = fn(email="user@example.com", list_ids="abc,def") | CODE |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/src/aden_tools/tools/vision_tool/README.md | 34 | export GOOGLE_CLOUD_VISION_API_KEY=your_api_key | CODE |
| HIGH | tools/src/aden_tools/tools/mongodb_tool/README.md | 22 | export MONGODB_API_KEY="your_api_key" | CODE |
| HIGH | tools/src/aden_tools/tools/telegram_tool/README.md | 35 | 3. Visit: `https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates` | CODE |
| HIGH | tools/src/aden_tools/tools/wandb_tool/README.md | 25 | export WANDB_API_KEY=your-api-key | CODE |
| HIGH | tools/src/aden_tools/credentials/pinecone.py | 33 | export PINECONE_API_KEY=your-api-key""", | CODE |
| HIGH | tools/src/aden_tools/credentials/wandb.py | 33 | export WANDB_API_KEY=your-api-key""", | CODE |
| HIGH | tools/src/aden_tools/credentials/n8n.py | 30 | export N8N_API_KEY=your-api-key | CODE |
| HIGH | tools/src/aden_tools/credentials/mongodb.py | 32 | export MONGODB_API_KEY=your-api-key | CODE |
| HIGH | tools/src/aden_tools/credentials/tines.py | 30 | export TINES_API_KEY=your-api-key""", | CODE |
| HIGH | tools/src/aden_tools/credentials/kafka.py | 33 | export KAFKA_API_KEY=your-api-key (optional) | CODE |
| HIGH | tools/src/aden_tools/credentials/cloudinary.py | 33 | export CLOUDINARY_API_KEY=your-api-key | CODE |
| HIGH | tools/src/aden_tools/credentials/obsidian.py | 31 | export OBSIDIAN_REST_API_KEY=your-api-key | CODE |
| HIGH | tools/src/aden_tools/credentials/lusha.py | 32 | export LUSHA_API_KEY=your-api-key""", | CODE |
| HIGH | tools/src/aden_tools/credentials/pagerduty.py | 32 | export PAGERDUTY_API_KEY=your-api-key | CODE |
| HIGH | tools/src/aden_tools/credentials/freshdesk.py | 39 | help_url="https://support.freshdesk.com/en/support/solutions/articles/215517-how-to-find-your-api-key", | CODE |
| HIGH | tools/src/aden_tools/credentials/freshdesk.py | 47 | export FRESHDESK_API_KEY=your-api-key""", | CODE |
| HIGH | tools/src/aden_tools/credentials/trello.py | 38 | export TRELLO_API_KEY=your-api-key | CODE |
| HIGH | core/MCP_INTEGRATION_GUIDE.md | 427 | "BRAVE_SEARCH_API_KEY": "your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/direct_browser_test.py | 37 | # Create a context (tab group) | COMMENT |
| MEDIUM | tools/tests/tools/test_vision_tool.py | 24 | # Create a minimal valid PNG (1x1 pixel) | COMMENT |
| MEDIUM | tools/tests/tools/test_security.py | 161 | # Create a target file and a symlink to it | COMMENT |
| MEDIUM⚡ | tools/tests/tools/test_security.py | 181 | # Create a symlink inside agent pointing outside | COMMENT |
| MEDIUM⚡ | tools/tests/tools/test_security.py | 199 | # Create a symlink to root filesystem inside sandbox | COMMENT |
| MEDIUM | tools/tests/tools/test_excel_tool.py | 281 | # Create a text file | COMMENT |
| MEDIUM | tools/tests/tools/test_file_ops.py | 51 | # Create a file so the search has something to find | COMMENT |
| MEDIUM | tools/tests/tools/test_yahoo_finance_tool.py | 71 | # Create a mock DataFrame | COMMENT |
| MEDIUM | core/framework/tasks/tests/test_e2e.py | 147 | # Create a list + task via the store directly so we don't have to mount | COMMENT |
| MEDIUM | core/framework/server/routes_colonies.py | 697 | # Create the empty .data now so /status returns a coherent view even | COMMENT |
| MEDIUM | core/framework/loader/mcp_client.py | 279 | # Create a new thread to run the coroutine | COMMENT |
| MEDIUM | core/framework/orchestrator/orchestrator.py | 746 | # Create a FileConversationStore if a storage path is available | COMMENT |
| MEDIUM | core/framework/credentials/aden/tests/test_aden_sync.py | 498 | # Create a stale cached credential. Only Aden-managed credentials are | COMMENT |
| MEDIUM⚡ | core/tests/test_llm_judge.py | 389 | # Create a mock that behaves like AnthropicProvider | COMMENT |
| MEDIUM⚡ | core/tests/test_hallucination_detection.py | 121 | # Create a 50KB string with code at the 75% mark | COMMENT |
| MEDIUM | core/tests/debug_codex_stream.py | 38 | # Create the provider | COMMENT |
| MEDIUM | core/tests/test_runtime_logger.py | 820 | # Create a file where directory should be | COMMENT |
| MEDIUM⚡ | core/tests/test_session_summary.py | 125 | # Create a summary, then add a part with a newer mtime. | COMMENT |
| MEDIUM | core/tests/test_path_traversal_fix.py | 190 | # Create a secret file outside storage | COMMENT |
| MEDIUM⚡ | core/tests/test_mcp_registry_cli.py | 977 | # Create a fake agent dir with mcp_registry.json that includes jira | COMMENT |
| MEDIUM | core/tests/test_skill_discovery.py | 147 | # Create a skill nested beyond max_depth | COMMENT |
| MEDIUM | core/tests/test_skill_integration.py | 144 | # Create a project skill | COMMENT |
| MEDIUM | core/tests/test_skill_integration.py | 174 | # Create a community skill | COMMENT |
| MEDIUM | …s/browser-edge-cases/scripts/test_13_spa_navigation.py | 48 | # Create a test SPA | COMMENT |
| MEDIUM | …/browser-edge-cases/scripts/test_04_element_covered.py | 47 | # Create a test page with overlay | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/tests/tools/test_hubspot_tool.py | 0 | helper to register tools and return the tool lookup dict. | STRING |
| HIGH | tools/tests/tools/test_intercom_tool.py | 0 | helper to register tools and return the tool lookup dict. | STRING |
| HIGH | tools/tests/tools/test_google_docs_tool.py | 0 | helper to register tools and return the tool lookup dict. | STRING |
| HIGH | tools/tests/tools/test_hubspot_tool.py | 0 | register tools and return a single tool function by name. | STRING |
| HIGH | tools/tests/tools/test_intercom_tool.py | 0 | register tools and return a single tool function by name. | STRING |
| HIGH | tools/tests/tools/test_google_docs_tool.py | 0 | register tools and return a single tool function by name. | STRING |
| HIGH | …ls/src/aden_tools/tools/calendly_tool/calendly_tool.py | 0 | return auth headers or none if credentials missing. | STRING |
| HIGH | …ls/src/aden_tools/tools/airtable_tool/airtable_tool.py | 0 | return auth headers or none if credentials missing. | STRING |
| HIGH | …/src/aden_tools/tools/pagerduty_tool/pagerduty_tool.py | 0 | return auth headers or none if credentials missing. | STRING |
| HIGH | tools/src/aden_tools/tools/twitter_tool/twitter_tool.py | 0 | return auth headers or none if credentials missing. | STRING |
| HIGH | tools/src/terminal_tools/server.py | 0 | return true iff the process is still running. implementation note: on windows, ``os.kill(pid, 0)`` is not a safe alive-c | STRING |
| HIGH | tools/src/chart_tools/server.py | 0 | return true iff the process is still running. implementation note: on windows, ``os.kill(pid, 0)`` is not a safe alive-c | STRING |
| HIGH | tools/src/gcu/server.py | 0 | return true iff the process is still running. implementation note: on windows, ``os.kill(pid, 0)`` is not a safe alive-c | STRING |
| HIGH | core/framework/agent_loop/internals/compaction.py | 0 | run the full compaction pipeline if conversation needs compaction. pipeline stages (in order, short-circuits when budget | STRING |
| HIGH | docs/internal/compaction-analysis/pipeline.html | 0 | run the full compaction pipeline if conversation needs compaction. pipeline stages (in order, short-circuits when budget | STRING |
| HIGH | docs/internal/compaction-analysis/index.html | 0 | run the full compaction pipeline if conversation needs compaction. pipeline stages (in order, short-circuits when budget | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | quickstart.sh | 916 | SELECTED_MAX_CONTEXT_TOKENS=120000 # 128k context window (Mistral, DeepSeek, etc.) | CODE |
| MEDIUM | tools/src/memory_tools/recall.py | 28 | # Question scaffolding and filler that carries no topic. Temporal words are | COMMENT |
| MEDIUM | tools/src/gcu/browser/bridge.py | 726 | # the close, …). The event-driven path (_prune_group) is the fast | COMMENT |
| MEDIUM | core/framework/tools/playbook_tools.py | 831 | # Belt-and-suspenders: never hand a worker the orchestration tools. | COMMENT |
| MEDIUM | core/framework/tools/queen_lifecycle_tools.py | 3985 | # run_playbook — deterministic tracker-reconciliation orchestration. | COMMENT |
| MEDIUM | core/framework/host/colony_runtime.py | 477 | # workers. In a colony session she's the queen orchestrating N | COMMENT |
| MEDIUM | core/framework/host/agent_host.py | 402 | # Subscribe event-driven entry points to EventBus | COMMENT |
| MEDIUM | core/framework/host/agent_host.py | 785 | # Unsubscribe primary event-driven entry points | COMMENT |
| MEDIUM | core/framework/host/agent_host.py | 1106 | # Set up event-driven subscriptions | COMMENT |
| MEDIUM | core/framework/agents/queen/agent.py | 28 | # Colony queen runs longer-horizon orchestration than an independent queen, so | COMMENT |
| MEDIUM | core/framework/server/routes_colonies.py | 1547 | # Mark the colony as a queen-less scaffold so the upgrade's | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 674 | # Exception: a scaffold-only colony (metadata scaffolded=true — | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 680 | # it can never be mistaken for a scaffold again. | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 776 | # Consume the scaffold marker (free-user placeholder, see | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 778 | # so it must never again be treated as a reusable empty scaffold by | COMMENT |
| MEDIUM | core/framework/server/routes_execution.py | 237 | # Size threshold: above this, a PDF is treated as a "large agentic | COMMENT |
| MEDIUM | core/framework/server/routes_execution.py | 421 | # Large PDF — agentic path. Don't inline; the agent | COMMENT |
| MEDIUM | core/framework/agent_loop/colony_parallel_nudge.py | 62 | # orchestration / tracker bookkeeping). Substring/prefix checks are fine: no | COMMENT |
| MEDIUM⚡ | core/framework/agent_loop/agent_loop.py | 3885 | # Single LLM turn with caller-managed tool orchestration | COMMENT |
| MEDIUM | core/framework/agent_loop/agent_loop.py | 132 | # Visible-reasoning scaffold: a persona may emit a <think>…</think> | COMMENT |
| MEDIUM | …e/framework/agent_loop/internals/cursor_persistence.py | 69 | # Only apply phase filtering for non-queen workers in a multi-agent setup. | COMMENT |
| MEDIUM | core/framework/agent_loop/internals/types.py | 200 | # Grace=2 means: first plan-text turn is fine (chain-of-thought), | COMMENT |
| MEDIUM | core/framework/agent_loop/internals/compaction.py | 140 | # compaction would try to summarize it, blow the model's own context window | COMMENT |
| MEDIUM | core/framework/agent_loop/internals/compaction.py | 352 | # the conversation doesn't silently grow past the context window. | COMMENT |
| MEDIUM | core/framework/agent_loop/internals/compaction.py | 402 | # model's context window. Cheap (O(n) scan + small splice), idempotent | COMMENT |
| MEDIUM | core/framework/orchestrator/validator.py | 238 | # Check for hallucination | COMMENT |
| MEDIUM⚡ | core/tests/test_cancel_user_stop_flow.py | 44 | # Mock scaffolding | COMMENT |
| MEDIUM | docs/internal/compaction-analysis/pipeline.html | 147 | # the conversation doesn't silently grow past the context window.</span> | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | quickstart.sh | 119 | # Step 1: Check Python | COMMENT |
| LOW⚡ | quickstart.sh | 249 | # Step 2: Install Python Packages | COMMENT |
| LOW⚡ | quickstart.sh | 454 | # Step 3: Verify Python Imports | COMMENT |
| LOW⚡ | quickstart.sh | 2086 | # Step 4: Initialize Credential Store | COMMENT |
| LOW⚡ | quickstart.sh | 2187 | # Step 5: Verify Setup | COMMENT |
| LOW⚡ | quickstart.sh | 2265 | # Step 6: Install hive CLI globally | COMMENT |
| LOW | tools/BUILDING_TOOLS.md | 119 | #### Step 1: Add the `credentials` parameter | COMMENT |
| LOW | tools/BUILDING_TOOLS.md | 150 | #### Step 2: Create a CredentialSpec | COMMENT |
| LOW | tools/BUILDING_TOOLS.md | 185 | #### Step 3: Merge into CREDENTIAL_SPECS | COMMENT |
| LOW | tools/BUILDING_TOOLS.md | 204 | #### Step 4: Update register_all_tools | COMMENT |
| LOW | tools/src/aden_tools/tools/jira_tool/README.md | 69 | # Step 1: find available transitions | COMMENT |
| LOW | tools/src/aden_tools/tools/jira_tool/README.md | 72 | # Step 2: apply the transition | COMMENT |
| LOW⚡ | …ls/src/aden_tools/tools/intercom_tool/intercom_tool.py | 556 | # Step 1: create or get tag by name (idempotent) | COMMENT |
| LOW⚡ | …ls/src/aden_tools/tools/intercom_tool/intercom_tool.py | 561 | # Step 2: attach to target | COMMENT |
| LOW | tools/src/aden_tools/tools/notion_tool/README.md | 71 | # Step 1: Find the database's title property name | COMMENT |
| LOW | tools/src/aden_tools/tools/notion_tool/README.md | 75 | # Step 2: Create a page using the correct title property | COMMENT |
| LOW⚡ | tools/src/aden_tools/tools/slack_tool/slack_tool.py | 343 | # Step 2: Upload file content to the URL | COMMENT |
| LOW⚡ | tools/src/aden_tools/tools/slack_tool/slack_tool.py | 353 | # Step 3: Complete the upload | COMMENT |
| LOW | tools/src/aden_tools/tools/slack_tool/slack_tool.py | 322 | # Step 1: Get upload URL | COMMENT |
| LOW | tools/src/aden_tools/tools/bigquery_tool/README.md | 153 | # Step 1: Explore the dataset | COMMENT |
| LOW | tools/src/aden_tools/tools/bigquery_tool/README.md | 156 | # Step 2: Run the query | COMMENT |
| LOW | core/frontend/src/components/FirstRun.tsx | 269 | // Step 2: paste + validate + save | COMMENT |
| LOW⚡ | core/framework/loader/mcp_registry_cli.py | 795 | # Step 1: refresh the registry index | COMMENT |
| LOW⚡ | core/framework/loader/mcp_registry_cli.py | 807 | # Step 2: update all installed registry servers (skip local/pinned) | COMMENT |
| LOW⚡ | core/framework/credentials/validation.py | 31 | # Step 1: HIVE_CREDENTIAL_KEY (must come first — encrypted store depends on it) | COMMENT |
| LOW⚡ | core/framework/credentials/validation.py | 34 | # Step 2: ADEN_API_KEY (uses encrypted store, then shell config fallback) | COMMENT |
| LOW⚡ | core/framework/credentials/validation.py | 37 | # Step 3: Load remaining LLM/tool API keys from shell config | COMMENT |
| LOW | core/tests/test_runtime_logger.py | 392 | # Step 0: RETRY (event_loop iteration) | COMMENT |
| LOW | core/tests/test_runtime_logger.py | 414 | # Step 1: CONTINUE (unjudged) | COMMENT |
| LOW | core/tests/test_runtime_logger.py | 428 | # Step 2: ACCEPT | COMMENT |
| LOW | .claude/skills/triage-issue/SKILL.md | 13 | ### Step 1: Fetch Issue Details | COMMENT |
| LOW⚡ | .claude/skills/triage-issue/SKILL.md | 28 | ### Step 2: Analyze the Claim | COMMENT |
| LOW⚡ | .claude/skills/triage-issue/SKILL.md | 36 | ### Step 3: Investigate the Codebase | COMMENT |
| LOW⚡ | .claude/skills/triage-issue/SKILL.md | 44 | ### Step 4: Evaluate Validity | COMMENT |
| LOW | .claude/skills/triage-issue/SKILL.md | 57 | ### Step 5: Draft Response | COMMENT |
| LOW | .claude/skills/triage-issue/SKILL.md | 90 | ### Step 6: User Review | COMMENT |
| LOW | .claude/skills/triage-issue/SKILL.md | 113 | ### Step 7: Execute Action | COMMENT |
| LOW | .claude/skills/test-reporting/SKILL.md | 14 | ### Step 1: Select Scope | COMMENT |
| LOW | .claude/skills/test-reporting/SKILL.md | 51 | ### Step 2: Collect Results | COMMENT |
| LOW | .claude/skills/test-reporting/SKILL.md | 58 | ### Step 3: Generate HTML Report | COMMENT |
| LOW | .claude/skills/test-reporting/SKILL.md | 204 | ### Step 4: Output | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | quickstart.sh | 391 | # Check if browser binaries are installed | COMMENT |
| LOW | quickstart.sh | 2098 | # Check if HIVE_CREDENTIAL_KEY already exists (from env, file, or shell rc) | COMMENT |
| LOW | quickstart.sh | 2297 | # Check if ~/.local/bin is in PATH | COMMENT |
| LOW | tools/linkedin_browser_test.py | 138 | # Check if any position changed | STRING |
| LOW | tools/manual_browser_complex_test.py | 64 | # Check if we found real content | STRING |
| LOW | tools/tests/tools/test_excel_tool.py | 788 | # Check if duckdb is available for SQL tests | COMMENT |
| LOW | tools/src/aden_tools/hashline.py | 190 | # Check if leading boundary echoes | COMMENT |
| LOW | tools/src/aden_tools/hashline.py | 196 | # Check if trailing boundary echoes | COMMENT |
| LOW | tools/src/aden_tools/tools/vision_tool/vision_tool.py | 48 | # Check if URL | COMMENT |
| LOW | tools/src/aden_tools/tools/port_scanner/port_scanner.py | 217 | # Check if this port is risky | COMMENT |
| LOW | …rc/aden_tools/tools/web_scrape_tool/web_scrape_tool.py | 251 | # Check if a redirect was blocked by SSRF protection | COMMENT |
| LOW | tools/src/aden_tools/credentials/shell_config.py | 151 | # Check if already exists | COMMENT |
| LOW | tools/src/aden_tools/credentials/shell_config.py | 208 | # Check if next non-empty line is the export | COMMENT |
| LOW | tools/src/gcu/cli_commands/interact.py | 202 | # Read the files locally and set them on the input via a page-context | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 3639 | # Check if we've reached the desired state | COMMENT |
| LOW | tools/src/gcu/browser/bridge.py | 3913 | # Check if the element might be inside a Shadow DOM container | COMMENT |
| LOW | core/antigravity_auth.py | 341 | # Check if credentials already exist | COMMENT |
| LOW | core/antigravity_auth.py | 355 | # Check if token is expired or near expiry | COMMENT |
| LOW | core/framework/llm/litellm.py | 3181 | # Check if this id already has a slot. | COMMENT |
| LOW | core/framework/host/execution_manager.py | 750 | # Check if resurrection is appropriate | COMMENT |
| LOW | core/framework/host/execution_manager.py | 871 | # Check if we have a result (executor completed and returned) | COMMENT |
| LOW | core/framework/host/execution_manager.py | 1043 | # Check if this is a cancellation | COMMENT |
| LOW | core/framework/host/execution_manager.py | 873 | _ = result # Check if result variable exists | CODE |
| LOW | core/framework/server/routes_sessions.py | 1079 | # Check if conversation files survived on disk (post-restart scenario) | COMMENT |
| LOW⚡ | core/framework/server/routes_config.py | 404 | # Check if an API key is available for the current provider | COMMENT |
| LOW | core/framework/server/routes_queens.py | 749 | # Read the file data with size limit | COMMENT |
| LOW | core/framework/agent_loop/internals/compaction.py | 232 | # Check if the tool that produced this result is compactable | COMMENT |
| LOW | core/framework/loader/tool_registry.py | 456 | # Check if credential files changed (lightweight dir listing). | COMMENT |
| LOW | core/framework/loader/mcp_client.py | 203 | # Check if loop is running AND not closed | COMMENT |
| LOW | core/framework/loader/agent_loader.py | 437 | # Check if token is still valid | COMMENT |
| LOW | core/framework/orchestrator/edge.py | 464 | # Check if resuming from a pause node | COMMENT |
| LOW | core/framework/orchestrator/orchestrator.py | 598 | # Check if resuming from checkpoint | COMMENT |
| LOW | core/framework/orchestrator/safe_eval.py | 274 | # Check if the function object itself is in our whitelist values | COMMENT |
| LOW | core/framework/credentials/store.py | 754 | # Check if Aden is configured | COMMENT |
| LOW | core/framework/credentials/provider.py | 260 | # Check if expired | COMMENT |
| LOW | core/framework/credentials/setup.py | 435 | # Check if the credential was synced | COMMENT |
| LOW | core/framework/credentials/aden/provider.py | 140 | # Check if credential is explicitly linked to this provider | COMMENT |
| LOW | core/framework/credentials/aden/provider.py | 199 | # Check if local token is still valid | COMMENT |
| LOW | …lls/browser-edge-cases/scripts/test_08_autocomplete.py | 214 | # Check if dropdown appeared | STRING |
| LOW | …s/browser-edge-cases/scripts/test_13_spa_navigation.py | 154 | # Check if content changed | STRING |
| LOW | …lls/browser-edge-cases/scripts/test_03_modal_scroll.py | 82 | # Check if modal content scrolled (not background) | COMMENT |
| LOW | .claude/skills/browser-edge-cases/scripts/test_case.py | 133 | # Check if anything changed | COMMENT |
| LOW | …/browser-edge-cases/scripts/test_04_element_covered.py | 105 | # Check if click registered | STRING |
| LOW | docs/internal/compaction-analysis/pipeline.html | 245 | <span class="c"># Check if the tool that produced this result is compactable</span> | STRING |
| LOW | scripts/check_requirements.py | 60 | # Print results as JSON | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | quickstart.sh | 1153 | # ── Credential detection (silent — just set flags) ─────────── | COMMENT |
| MEDIUM | tools/browser-extension/background.js | 1195 | // robust than racing to hide it around every Page.captureScreenshot. | COMMENT |
| MEDIUM | tools/src/gcu/cli.py | 369 | # through the bridge-bootstrapping harness. | COMMENT |
| MEDIUM | core/frontend/package-lock.json | 5920 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | core/framework/pipeline/stages/mcp_registry.py | 48 | # in-process harness tools: resolve_for_agent synthesises them on | COMMENT |
| MEDIUM | core/framework/host/agent_host.py | 1788 | """Get comprehensive runtime statistics.""" | STRING |
| MEDIUM | core/framework/loader/mcp_registry.py | 39 | # They are in-process harness groups now (framework.tools.harness_tools): | COMMENT |
| MEDIUM | core/framework/loader/mcp_registry.py | 40 | # requesting one of these names resolves to the harness, never to a | COMMENT |
| MEDIUM | core/framework/loader/mcp_registry.py | 641 | # means every tool Hive has, which starts with its harness groups. | COMMENT |
| MEDIUM | core/framework/loader/tool_registry.py | 905 | # Bundled server names are harness groups now: in-process, no | COMMENT |
| LOW | core/framework/loader/tool_registry.py | 656 | # No .py script (e.g. GCU uses -m gcu.server); just set cwd | COMMENT |
| MEDIUM | core/framework/loader/mcp_client.py | 30 | # "harness": an in-process tool group (framework.tools.harness_tools); never connected. | COMMENT |
| LOW | core/framework/credentials/store.py | 738 | # Simple usage - just set ADEN_API_KEY env var | STRING |
| MEDIUM⚡ | core/tests/test_reminder_e2e.py | 30 | # Minimal loop harness (mirrors tests/test_event_loop_node.py) | COMMENT |
| MEDIUM | core/tests/live/test_cache_optimization_live.py | 174 | stream_id="judge", # opt out of worker auto-escalation (no queen in harness) | CODE |
| MEDIUM⚡ | core/tests/live/test_cache_optimization_live.py | 279 | # Smoke test: verify the harness wires up correctly against a real provider | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/src/aden_tools/file_ops.py | 1623 | CODE | |
| LOW | …/aden_tools/tools/google_maps_tool/google_maps_tool.py | 580 | CODE | |
| LOW | tools/src/aden_tools/tools/stripe_tool/stripe_tool.py | 800 | CODE | |
| LOW | tools/src/aden_tools/tools/stripe_tool/stripe_tool.py | 2384 | CODE | |
| LOW | tools/src/aden_tools/tools/powerbi_tool/powerbi_tool.py | 192 | CODE | |
| LOW | tools/src/aden_tools/tools/apollo_tool/apollo_tool.py | 72 | CODE | |
| LOW | tools/src/aden_tools/tools/apollo_tool/apollo_tool.py | 452 | CODE | |
| LOW | tools/src/aden_tools/tools/senders_tool/senders_tool.py | 359 | CODE | |
| LOW | tools/src/aden_tools/tools/senders_tool/senders_tool.py | 635 | CODE | |
| LOW | tools/src/aden_tools/tools/news_tool/news_tool.py | 596 | CODE | |
| LOW | …ls/src/aden_tools/tools/calendar_tool/calendar_tool.py | 180 | CODE | |
| LOW | …ls/src/aden_tools/tools/calendar_tool/calendar_tool.py | 318 | CODE | |
| LOW | …ls/src/aden_tools/tools/calendar_tool/calendar_tool.py | 433 | CODE | |
| LOW | …ls/src/aden_tools/tools/pushover_tool/pushover_tool.py | 46 | CODE | |
| LOW | …rc/aden_tools/tools/exa_search_tool/exa_search_tool.py | 85 | CODE | |
| LOW | …/aden_tools/tools/google_docs_tool/google_docs_tool.py | 562 | CODE | |
| LOW | tools/src/aden_tools/senders/setup.py | 174 | CODE | |
| LOW | tools/src/terminal_tools/exec.py | 57 | CODE | |
| LOW | tools/src/terminal_tools/search/tools.py | 328 | CODE | |
| LOW | tools/src/terminal_tools/jobs/tools.py | 71 | CODE | |
| LOW | tools/src/memory_tools/tool.py | 197 | CODE | |
| LOW | tools/src/gcu/browser/tools/inspection.py | 337 | CODE | |
| LOW | tools/src/gcu/browser/tools/interact.py | 552 | CODE | |
| LOW | core/framework/tasks/store.py | 328 | CODE | |
| LOW | core/framework/tasks/store.py | 620 | CODE | |
| LOW | core/framework/host/worker.py | 144 | CODE | |
| LOW | core/framework/host/colony_runtime.py | 314 | CODE | |
| LOW | core/framework/host/colony_runtime.py | 1619 | CODE | |
| LOW | core/framework/host/event_bus.py | 1193 | CODE | |
| LOW | core/framework/host/agent_host.py | 125 | CODE | |
| LOW | core/framework/host/execution_manager.py | 168 | CODE | |
| LOW | core/framework/host/playbook/runner.py | 191 | CODE | |
| LOW | core/framework/server/session_manager.py | 613 | CODE | |
| LOW | core/framework/tracker/runtime_logger.py | 81 | CODE | |
| LOW | core/framework/tracker/runtime_logger.py | 151 | CODE | |
| LOW | core/framework/agent_loop/conversation.py | 474 | CODE | |
| LOW | core/framework/agent_loop/agent_loop.py | 7169 | CODE | |
| LOW | core/framework/agent_loop/internals/event_publishing.py | 54 | CODE | |
| LOW | core/framework/loader/mcp_registry.py | 214 | CODE | |
| LOW | core/framework/loader/agent_loader.py | 1155 | CODE | |
| LOW | core/framework/orchestrator/context.py | 189 | CODE | |
| LOW | core/framework/orchestrator/context.py | 282 | CODE | |
| LOW | core/framework/orchestrator/orchestrator.py | 134 | CODE | |
| LOW | core/tests/test_sentinel_escalation_source.py | 53 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | quickstart.sh | 119 | # Step 1: Check Python | COMMENT |
| LOW⚡ | quickstart.sh | 249 | # Step 2: Install Python Packages | COMMENT |
| LOW⚡ | quickstart.sh | 454 | # Step 3: Verify Python Imports | COMMENT |
| LOW⚡ | quickstart.sh | 2086 | # Step 4: Initialize Credential Store | COMMENT |
| LOW⚡ | quickstart.sh | 2187 | # Step 5: Verify Setup | COMMENT |
| LOW⚡ | quickstart.sh | 2265 | # Step 6: Install hive CLI globally | COMMENT |
| LOW⚡ | …ls/src/aden_tools/tools/intercom_tool/intercom_tool.py | 556 | # Step 1: create or get tag by name (idempotent) | COMMENT |
| LOW⚡ | …ls/src/aden_tools/tools/intercom_tool/intercom_tool.py | 561 | # Step 2: attach to target | COMMENT |
| LOW⚡ | tools/src/aden_tools/tools/slack_tool/slack_tool.py | 343 | # Step 2: Upload file content to the URL | COMMENT |
| LOW⚡ | tools/src/aden_tools/tools/slack_tool/slack_tool.py | 353 | # Step 3: Complete the upload | COMMENT |
| LOW | tools/src/aden_tools/tools/slack_tool/slack_tool.py | 322 | # Step 1: Get upload URL | COMMENT |
| LOW | core/frontend/src/components/FirstRun.tsx | 269 | // Step 2: paste + validate + save | COMMENT |
| LOW⚡ | core/framework/loader/mcp_registry_cli.py | 795 | # Step 1: refresh the registry index | COMMENT |
| LOW⚡ | core/framework/loader/mcp_registry_cli.py | 807 | # Step 2: update all installed registry servers (skip local/pinned) | COMMENT |
| LOW⚡ | core/framework/credentials/validation.py | 31 | # Step 1: HIVE_CREDENTIAL_KEY (must come first — encrypted store depends on it) | COMMENT |
| LOW⚡ | core/framework/credentials/validation.py | 34 | # Step 2: ADEN_API_KEY (uses encrypted store, then shell config fallback) | COMMENT |
| LOW⚡ | core/framework/credentials/validation.py | 37 | # Step 3: Load remaining LLM/tool API keys from shell config | COMMENT |
| LOW | core/tests/test_runtime_logger.py | 392 | # Step 0: RETRY (event_loop iteration) | COMMENT |
| LOW | core/tests/test_runtime_logger.py | 414 | # Step 1: CONTINUE (unjudged) | COMMENT |
| LOW | core/tests/test_runtime_logger.py | 428 | # Step 2: ACCEPT | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/tests/test_colony_runtime_overseer.py | 318 | CODE |