Multi-Agent Harness for Production AI
This report presents the forensic synthetic code analysis of aden-hive/hive, a Python project with 10,905 GitHub stars. SynthScan v2.0 examined 464,275 lines of code across 1643 source files, recording 10422 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 33.4 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 10422 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| 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 | 447 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 449 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2079 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2081 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2180 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2182 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2258 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2260 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2302 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2304 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2313 | # ============================================================ | COMMENT |
| MEDIUM⚡ | quickstart.sh | 2315 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 1147 | # ── Credential detection (silent — just set flags) ─────────── | COMMENT |
| MEDIUM | quickstart.sh | 1223 | # ── Read previous configuration (if any) ────────────────────── | COMMENT |
| MEDIUM | quickstart.sh | 1323 | # ── Show unified provider selection menu ───────────────────── | COMMENT |
| MEDIUM | quickstart.sh | 1870 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 1872 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2029 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2031 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2149 | # ============================================================ | COMMENT |
| MEDIUM | quickstart.sh | 2151 | # ============================================================ | 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_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 |
| MEDIUM⚡ | tools/tests/test_live_health_checks.py | 142 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/tests/test_x_page_load_repro.py | 114 | # ── Turn 5 (seq 9-10): browser_scroll(down, 500) ──────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_x_page_load_repro.py | 120 | # ── Turn 6 (seq 11-12): browser_scroll(down, 500) ─────────────────── | COMMENT |
| MEDIUM⚡ | tools/tests/test_x_page_load_repro.py | 126 | # ── Turn 7 (seq 13-14): browser_screenshot ────────────────────────── | COMMENT |
| 1838 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 461 | async def test_anthropic_provider_basic(): | CODE |
| LOW | CONTRIBUTING.md | 469 | async def test_anthropic_provider_real(anthropic_api_key): | CODE |
| LOW | CONTRIBUTING.md | 984 | 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_terminal_tools_jobs.py | 23 | def test_start_logs_wait_basic(job_tools): | CODE |
| LOW | tools/tests/test_terminal_tools_security.py | 8 | def test_resolve_shell_rejects_zsh(): | CODE |
| LOW | tools/tests/test_terminal_tools_security.py | 16 | def test_resolve_shell_accepts_bash(): | CODE |
| LOW | tools/tests/test_terminal_tools_security.py | 32 | def test_sanitized_env_strips_zsh_vars(monkeypatch): | CODE |
| LOW | tools/tests/test_terminal_tools_security.py | 48 | def test_destructive_warning_catalog(): | CODE |
| LOW | tools/tests/test_terminal_tools_security.py | 69 | def test_destructive_warning_clean_commands(): | CODE |
| LOW | tools/tests/test_terminal_tools_security.py | 76 | def test_command_guard_blocks_windows_browser_kills(): | CODE |
| 4265 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | quickstart.sh | 1260 | except Exception: | CODE |
| MEDIUM | tools/create_aden_testdb.py | 92 | print(f"Error detail: {str(e)}") | CODE |
| LOW | tools/create_aden_testdb.py | 102 | except Exception as e: | CODE |
| MEDIUM | tools/schema_discovery.py | 223 | print(f"Error detail: {str(e)}") | CODE |
| LOW | tools/schema_discovery.py | 226 | except Exception as e: | 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/grant_permissions.py | 76 | except Exception: | STRING |
| LOW | tools/grant_permissions.py | 91 | except Exception: | STRING |
| LOW | tools/grant_permissions.py | 103 | except Exception as inner_e: | STRING |
| MEDIUM | tools/grant_permissions.py | 105 | print(f"Error: {str(inner_e)}") | STRING |
| LOW | tools/query_avg_salary.py | 97 | except Exception as e: | STRING |
| 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 |
| MEDIUM | tools/payroll_analysis.py | 174 | print(f"Error detail: {str(e)}") | STRING |
| LOW | tools/payroll_analysis.py | 181 | except Exception as e: | STRING |
| LOW | tools/top_salaries.py | 69 | 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 | 995 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1077 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1086 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1101 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1216 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1225 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1492 | except Exception as e: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1530 | except Exception: | CODE |
| LOW | tools/src/aden_tools/file_ops.py | 1547 | except Exception: | CODE |
| 1310 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/files_server.py | 20 | CODE | |
| LOW | tools/memory_tools_server.py | 9 | CODE | |
| LOW | tools/terminal_tools_server.py | 14 | CODE | |
| LOW | tools/chart_tools_server.py | 10 | 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_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_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 | |
| LOW | tools/tests/integrations/test_spec_conformance.py | 12 | CODE | |
| LOW | tools/tests/integrations/test_input_validation.py | 8 | CODE | |
| 1040 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 |
| 109 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/mssql_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 |
| 382 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/create_aden_testdb.py | 25 | CODE | |
| LOW | tools/schema_discovery.py | 48 | CODE | |
| LOW | tools/linkedin_browser_test.py | 17 | CODE | |
| LOW | tools/manual_click_debug.py | 17 | CODE | |
| LOW | tools/tests/vision_eval/server.py | 117 | CODE | |
| LOW | tools/tests/integrations/conftest.py | 46 | CODE | |
| LOW | tools/tests/integrations/conftest.py | 154 | 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 | 605 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 789 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 903 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 969 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 1380 | CODE | |
| LOW | tools/src/aden_tools/file_ops.py | 1415 | 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 | tools/src/aden_tools/tools/mssql_tool/mssql_tool.py | 32 | CODE | |
| LOW | tools/src/aden_tools/tools/mssql_tool/mssql_tool.py | 56 | CODE | |
| LOW | tools/src/aden_tools/tools/mssql_tool/mssql_tool.py | 103 | CODE | |
| LOW | tools/src/aden_tools/tools/mssql_tool/mssql_tool.py | 259 | CODE | |
| LOW | tools/src/aden_tools/tools/mssql_tool/mssql_tool.py | 440 | 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 | |
| 342 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 827 | 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/mssql_tool/mssql_tool.py | 263 | Get database schema information. Use this to inspect database structure, tables, columns, and relation | STRING |
| HIGH | tools/src/aden_tools/tools/mssql_tool/mssql_tool.py | 444 | Execute a stored procedure. Use this to call stored procedures with optional parameters. Args | 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 | …den_tools/tools/databricks_tool/databricks_mcp_tool.py | 30 | Create a DatabricksMCPClient for the given server URL. Args: server_url: Full URL of the managed MCP s | STRING |
| HIGH | …den_tools/tools/databricks_tool/databricks_mcp_tool.py | 454 | Discover available tools on a Databricks managed MCP server. Use this to explore what tools are availa | 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 | quickstart.sh | 1 | #!/bin/bash | COMMENT |
| LOW | quickstart.sh | 1861 | echo -e "${YELLOW} Could not write ~/.hive/configuration.json. Please rerun quickstart.${NC}" | 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 | 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 | # introspection — sync method / property; dispatch handles both | 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 | 361 | // size — handle_chat inlines only a bounded excerpt (per-page text for | COMMENT |
| LOW | core/frontend/src/components/ChatPanel.tsx | 501 | const displayName = fileName || (isImage ? "image" : "document"); | COMMENT |
| 227 more matches not shown… | ||||
| 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/agents/queen/reference/file_templates.md | 0 | import the agent package for structural validation. | STRING |
| HIGH | examples/templates/email_reply_agent/tests/conftest.py | 0 | import the agent package for structural validation. | STRING |
| HIGH | examples/templates/meeting_scheduler/tests/conftest.py | 0 | import the agent package for structural validation. | STRING |
| HIGH | core/framework/agents/queen/reference/file_templates.md | 0 | load the agent through agentrunner (structural only, no llm needed). | STRING |
| HIGH | examples/templates/email_reply_agent/tests/conftest.py | 0 | load the agent through agentrunner (structural only, no llm needed). | STRING |
| HIGH | examples/templates/meeting_scheduler/tests/conftest.py | 0 | load the agent through agentrunner (structural only, no llm needed). | 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 |
| HIGH | examples/templates/email_inbox_management/agent.py | 0 | set up the agent runtime with sessions, checkpoints, and logging. | STRING |
| HIGH | examples/templates/sdr_agent/agent.py | 0 | set up the agent runtime with sessions, checkpoints, and logging. | STRING |
| HIGH | examples/templates/job_hunter/agent.py | 0 | set up the agent runtime with sessions, checkpoints, and logging. | STRING |
| HIGH | examples/templates/email_inbox_management/agent.py | 0 | run the agent (convenience method for single execution). | STRING |
| HIGH | examples/templates/tech_news_reporter/agent.py | 0 | run the agent (convenience method for single execution). | STRING |
| HIGH | examples/templates/sdr_agent/agent.py | 0 | run the agent (convenience method for single execution). | STRING |
| HIGH | examples/templates/vulnerability_assessment/agent.py | 0 | run the agent (convenience method for single execution). | STRING |
| HIGH | examples/templates/job_hunter/agent.py | 0 | run the agent (convenience method for single execution). | STRING |
| HIGH | examples/templates/deep_research_agent/agent.py | 0 | run the agent (convenience method for single execution). | 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 |
| 53 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 |
| HIGH | docs/bounty-program/templates/tool-readme-template.md | 11 | export {ENV_VAR}=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 | 684 | # Create the empty .data now so /status returns a coherent view even | COMMENT |
| MEDIUM | core/framework/loader/mcp_client.py | 278 | # Create a new thread to run the coroutine | COMMENT |
| MEDIUM | core/framework/orchestrator/orchestrator.py | 745 | # Create a FileConversationStore if a storage path is available | COMMENT |
| MEDIUM⚡ | core/tests/test_llm_judge.py | 388 | # 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 | 122 | # Create a project skill | COMMENT |
| MEDIUM | core/tests/test_skill_integration.py | 152 | # 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 |
|---|---|---|---|---|
| MEDIUM | quickstart.sh | 910 | SELECTED_MAX_CONTEXT_TOKENS=120000 # 128k context window (Mistral, DeepSeek, etc.) | CODE |
| 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 | 3976 | # run_playbook — deterministic tracker-reconciliation orchestration. | COMMENT |
| MEDIUM | core/framework/host/colony_runtime.py | 472 | # 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/incubating_evaluator.py | 84 | # under the LLM's context window even for long DM sessions. | STRING |
| 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 | 1534 | # Mark the colony as a queen-less scaffold so the upgrade's | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 673 | # Exception: a scaffold-only colony (metadata scaffolded=true — | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 679 | # it can never be mistaken for a scaffold again. | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 775 | # Consume the scaffold marker (free-user placeholder, see | COMMENT |
| MEDIUM | core/framework/server/session_manager.py | 777 | # so it must never again be treated as a reusable empty scaffold by | COMMENT |
| MEDIUM | core/framework/server/routes_execution.py | 236 | # Size threshold: above this, a PDF is treated as a "large agentic | COMMENT |
| MEDIUM | core/framework/server/routes_execution.py | 392 | # 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 | 3869 | # 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 | 117 | # compaction would try to summarize it, blow the model's own context window | COMMENT |
| MEDIUM | core/framework/agent_loop/internals/compaction.py | 329 | # the conversation doesn't silently grow past the context window. | COMMENT |
| MEDIUM | core/framework/agent_loop/internals/compaction.py | 379 | # 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 | 448 | # Step 3: Verify Python Imports | COMMENT |
| LOW⚡ | quickstart.sh | 2080 | # Step 4: Initialize Credential Store | COMMENT |
| LOW⚡ | quickstart.sh | 2181 | # Step 5: Verify Setup | COMMENT |
| LOW⚡ | quickstart.sh | 2259 | # 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 |
| LOW | docs/bounty-program/setup-guide.md | 11 | ## Step 1: Create GitHub Labels (2 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 19 | ## Step 2: Create Discord Channels (3 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 35 | ## Step 3: Create Discord Roles (2 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 45 | ## Step 4: Install and Configure Lurkr (10 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 92 | ## Step 5: Create Discord Webhook (2 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 98 | ## Step 6: Add GitHub Secrets (3 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 112 | ## Step 7: Test the Pipeline (5 min) | COMMENT |
| LOW | docs/bounty-program/setup-guide.md | 123 | ## Step 8: Seed the 55-Tool Blitz | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | quickstart.sh | 385 | # Check if browser binaries are installed | COMMENT |
| LOW | quickstart.sh | 2092 | # Check if HIVE_CREDENTIAL_KEY already exists (from env, file, or shell rc) | COMMENT |
| LOW | quickstart.sh | 2291 | # 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/mssql_tool/mssql_tool.py | 314 | # Check if table exists | STRING |
| 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 | 3167 | # 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 | 873 | _ = result # Check if result variable exists | CODE |
| LOW | core/framework/host/execution_manager.py | 1043 | # Check if this is a cancellation | COMMENT |
| LOW | core/framework/server/routes_sessions.py | 1002 | # 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 | 719 | # Read the file data with size limit | COMMENT |
| LOW | core/framework/agent_loop/internals/compaction.py | 209 | # Check if the tool that produced this result is compactable | COMMENT |
| LOW | core/framework/loader/tool_registry.py | 434 | # Check if credential files changed (lightweight dir listing). | COMMENT |
| LOW | core/framework/loader/mcp_client.py | 202 | # 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 | 463 | # Check if resuming from a pause node | COMMENT |
| LOW | core/framework/orchestrator/orchestrator.py | 597 | # 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 | tools/src/aden_tools/file_ops.py | 1579 | 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 | 63 | CODE | |
| LOW | tools/src/terminal_tools/search/tools.py | 295 | CODE | |
| LOW | tools/src/terminal_tools/jobs/tools.py | 41 | CODE | |
| LOW | tools/src/memory_tools/tool.py | 186 | 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 | 309 | CODE | |
| LOW | core/framework/host/colony_runtime.py | 1602 | CODE | |
| LOW | core/framework/host/event_bus.py | 1157 | 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 | 612 | 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 | 472 | CODE | |
| LOW | core/framework/agent_loop/agent_loop.py | 7055 | CODE | |
| LOW | core/framework/agent_loop/internals/event_publishing.py | 54 | CODE | |
| LOW | core/framework/loader/mcp_registry.py | 383 | 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 | |
| LOW | core/tests/test_flowchart_utils.py | 17 | 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 | 448 | # Step 3: Verify Python Imports | COMMENT |
| LOW⚡ | quickstart.sh | 2080 | # Step 4: Initialize Credential Store | COMMENT |
| LOW⚡ | quickstart.sh | 2181 | # Step 5: Verify Setup | COMMENT |
| LOW⚡ | quickstart.sh | 2259 | # 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 |
|---|---|---|---|---|
| LOW | quickstart.sh | 1147 | # ── 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 | 5745 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | core/framework/host/agent_host.py | 1788 | """Get comprehensive runtime statistics.""" | STRING |
| MEDIUM | core/framework/loader/protocol.py | 24 | CANNOT_HANDLE = "cannot_handle" # Definitely not for this agent | CODE |
| LOW | core/framework/loader/tool_registry.py | 634 | # No .py script (e.g. GCU uses -m gcu.server); just set cwd | 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 |
|---|---|---|---|---|
| MEDIUM | core/tests/test_colony_runtime_overseer.py | 318 | CODE |