Agent Zero AI framework
This report presents the forensic synthetic code analysis of agent0ai/agent-zero, a Python project with 18,423 GitHub stars. SynthScan v2.0 examined 273,870 lines of code across 1809 source files, recording 3721 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 16.7 places this repository in the Moderate 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).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
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 3721 distinct pattern matches across 23 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 |
|---|---|---|---|---|
| LOW | models.py | 58 | def _normalize_litellm_kwargs(values: dict[str, Any]) -> dict[str, Any]: | CODE |
| LOW | models.py | 84 | def get_litellm_global_kwargs() -> dict[str, Any]: | CODE |
| LOW | models.py | 119 | def _merge_litellm_call_kwargs(*overrides: dict[str, Any] | None) -> dict[str, Any]: | CODE |
| LOW | models.py | 301 | def _is_transient_litellm_error(exc: Exception) -> bool: | CODE |
| LOW | run_tunnel.py | 20 | class NoRequestLoggingWSGIRequestHandler(WSGIRequestHandler): | CODE |
| LOW | run_ui.py | 53 | def flush_and_shutdown_callback() -> None: | CODE |
| LOW | agent.py | 1005 | def _responses_state_for_model(self, model: Any) -> dict[str, Any]: | CODE |
| LOW | agent.py | 1016 | def _responses_input_items_since( | CODE |
| LOW | agent.py | 1024 | def _responses_input_items_for_message( | CODE |
| LOW | agent.py | 1041 | def _responses_prompt_input_items( | CODE |
| LOW | agent.py | 1049 | def _remember_llm_result_state( | CODE |
| LOW | agent.py | 1225 | async def _log_response_builtin_items(self, llm_result: LLMResult) -> None: | CODE |
| LOW | agent.py | 1239 | async def _handle_responses_computer_call(self, item: dict[str, Any]) -> None: | CODE |
| LOW | agent.py | 1295 | def _handle_responses_mcp_approval_request(self, item: dict[str, Any]) -> None: | CODE |
| LOW | agent.py | 1369 | def _computer_call_output_item( | CODE |
| LOW | agent.py | 1400 | def _clear_responses_pending_state(self) -> None: | CODE |
| LOW | prepare.py | 8 | def _retire_legacy_collabora_runtime() -> None: | CODE |
| LOW | tools/call_subordinate.py | 9 | def _subordinate_profile_labels(agent: Agent) -> dict[str, str]: | CODE |
| LOW | tools/call_subordinate.py | 17 | def _validate_subordinate_profile(agent: Agent, profile: str) -> str: | CODE |
| LOW | tools/a2a_chat.py | 55 | def _extract_latest_assistant_text(task_response: Any) -> str: | CODE |
| LOW | tools/scheduler.py | 63 | def _task_schedule_from_input(schedule: Any, timezone: str | None = None) -> TaskSchedule: | CODE |
| LOW | tools/scheduler.py | 154 | def _resolve_project_metadata(self) -> tuple[str | None, str | None]: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 126 | def normalize_describe_to_version(describe: str) -> str: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 152 | def is_supported_selector_tag(tag: str) -> bool: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 157 | def sort_selector_supported_tags(tags: list[str]) -> list[str]: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 180 | def build_default_backup_name() -> str: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 198 | def normalize_backup_conflict_policy(conflict_policy: str) -> str: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 205 | def get_latest_same_major_tag( | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 232 | def ensure_latest_target_matches_current_major( | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 311 | def resolve_backup_destination( | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 403 | def should_exclude_from_usr_backup( | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 426 | def should_include_usr_backup_entry(source_file: Path, logger: AttemptLogger) -> bool: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 461 | def clean_transient_desktop_agent_state( | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 500 | def _clean_gnupg_agent_entries(gnupg_dir: Path, logger: AttemptLogger) -> int: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 661 | def has_local_rollback_changes(repo_dir: Path) -> bool: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1340 | def installed_target_matches_request( | CODE |
| LOW | plugins/_email_integration/helpers/dispatcher.py | 96 | def parse_dispatcher_response(response: str) -> DispatchDecision: | CODE |
| LOW⚡ | plugins/_email_integration/helpers/handler.py | 594 | async def _read_attachments_via_rfc( | CODE |
| LOW | plugins/_email_integration/helpers/handler.py | 408 | def _apply_handler_model_preset(context: AgentContext, handler_cfg: dict) -> None: | CODE |
| LOW | plugins/_email_integration/helpers/handler.py | 426 | async def _send_control_email_reply( | CODE |
| LOW | plugins/_email_integration/helpers/handler.py | 454 | def _build_control_reply_subject(subject: str, thread_id: str) -> str: | CODE |
| LOW | plugins/_email_integration/helpers/imap_client.py | 475 | def _extract_email_from_sender(sender: str) -> str: | CODE |
| LOW | …ui/set_messages_after_loop/sync-text-editor-results.js | 7 | export default async function syncTextEditorResultsIntoOpenEditor(context) { | CODE |
| LOW⚡ | …ui/set_messages_after_loop/sync-text-editor-results.js | 85 | function shouldSyncTextEditorResult(args = {}, payload = {}) { | CODE |
| LOW⚡ | …ui/set_messages_after_loop/sync-text-editor-results.js | 91 | function shouldOpenEditorUiFromResult(payload = {}, document = {}) { | CODE |
| LOW⚡ | …ui/set_messages_after_loop/sync-text-editor-results.js | 95 | function isExplicitEditorUiRequest(payload = {}) { | CODE |
| LOW | plugins/_editor/webui/editor-preview.js | 6 | export function renderEditorPreviewMarkdown(markdown = "", fullMarkdown = markdown) { | CODE |
| LOW | plugins/_editor/webui/editor-preview.js | 95 | export function resolveDocumentRelativePath(documentPath = "", target = "") { | CODE |
| LOW | plugins/_editor/webui/editor-store.js | 64 | function textDocumentDefaultExtension(path = "") { | CODE |
| LOW | plugins/_editor/helpers/markdown_sessions.py | 186 | def sync_external_file_mutations(self, paths: list[str] | tuple[str, ...] | str, context_id: str = "") -> dict[str, | CODE |
| LOW⚡ | plugins/_editor/helpers/markdown_sessions.py | 464 | def _normalize_path_for_compare(path: str, context_id: str = "") -> str: | CODE |
| LOW⚡ | plugins/_whatsapp_integration/helpers/handler.py | 419 | async def _read_attachments_to_host( | CODE |
| LOW | plugins/_whatsapp_integration/helpers/number_utils.py | 21 | def normalize_allowed_numbers(value: object) -> set[str]: | CODE |
| LOW⚡ | plugins/_whatsapp_integration/helpers/bridge_manager.py | 297 | def _looks_like_dependency_failure(output: str) -> bool: | CODE |
| LOW⚡ | plugins/_whatsapp_integration/helpers/bridge_manager.py | 319 | async def _ensure_bridge_dependencies(force_reinstall: bool = False) -> None: | CODE |
| LOW | plugins/_whatsapp_integration/helpers/bridge_manager.py | 350 | async def _validate_bridge_dependencies() -> bool: | CODE |
| LOW | plugins/_whatsapp_integration/helpers/bridge_manager.py | 372 | async def _reinstall_bridge_dependencies() -> None: | CODE |
| LOW | …/models/get_api_key/end/_20_oauth_account_dummy_key.py | 29 | def oauth_provider_is_connected(provider_id: str) -> bool: | CODE |
| LOW⚡ | plugins/_oauth/helpers/codex.py | 1115 | def installation_id_candidates() -> list[Path]: | CODE |
| LOW⚡ | plugins/_oauth/helpers/codex.py | 1124 | def plugin_installation_id_path() -> Path: | CODE |
| 1656 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | models.py | 88 | except Exception: | CODE |
| LOW | models.py | 631 | except Exception as e: | CODE |
| LOW | models.py | 773 | except Exception as e: | CODE |
| LOW | preload.py | 18 | except Exception as e: | CODE |
| LOW | preload.py | 32 | except Exception as e: | CODE |
| LOW | preload.py | 41 | except Exception as e: | CODE |
| LOW | preload.py | 53 | except Exception as e: | CODE |
| MEDIUM | preload.py | 9 | def preload(): | CODE |
| LOW | run_ui.py | 68 | except Exception as e: | CODE |
| LOW | agent.py | 310 | except Exception as e: | CODE |
| LOW | agent.py | 458 | except Exception: | CODE |
| LOW | agent.py | 541 | except Exception as e: | CODE |
| LOW | agent.py | 554 | except Exception as e: | CODE |
| LOW | agent.py | 1158 | except Exception as e: | CODE |
| LOW | agent.py | 1445 | except Exception as e: | CODE |
| LOW | agent.py | 1544 | except Exception as e: | CODE |
| LOW | agent.py | 1569 | except Exception: | CODE |
| LOW | prepare.py | 16 | except Exception as exc: | CODE |
| LOW | prepare.py | 40 | except Exception as e: | CODE |
| LOW | tools/a2a_chat.py | 132 | except Exception as e: | CODE |
| LOW | tools/skills_tool.py | 287 | except Exception: | CODE |
| LOW | tools/scheduler.py | 103 | except Exception as exc: | CODE |
| LOW | tools/scheduler.py | 164 | except Exception: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 634 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 657 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 727 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 980 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1192 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1252 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1267 | except Exception as restore_exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1406 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1437 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/self_update_manager.py | 1465 | except Exception as exc: | CODE |
| LOW | docker/run/fs/exe/supervisor_event_listener.py | 38 | except Exception as e: | CODE |
| LOW | plugins/_skills/api/skills_catalog.py | 34 | except Exception as e: | CODE |
| LOW⚡ | …tegration/extensions/python/job_loop/_10_email_poll.py | 82 | except Exception as e: | CODE |
| LOW⚡ | …tegration/extensions/python/job_loop/_10_email_poll.py | 101 | except Exception: | CODE |
| LOW | plugins/_email_integration/api/test_connection.py | 50 | except Exception as e: | CODE |
| LOW | plugins/_email_integration/api/test_connection.py | 71 | except Exception as e: | CODE |
| LOW | plugins/_email_integration/api/test_connection.py | 102 | except Exception as e: | CODE |
| LOW | plugins/_email_integration/api/test_connection.py | 129 | except Exception as e: | CODE |
| LOW | plugins/_email_integration/helpers/attachment_writer.py | 35 | except Exception as e: | CODE |
| LOW⚡ | plugins/_email_integration/helpers/handler.py | 168 | except Exception as e: | CODE |
| LOW⚡ | plugins/_email_integration/helpers/handler.py | 250 | except Exception as e: | CODE |
| LOW⚡ | plugins/_email_integration/helpers/handler.py | 507 | except Exception: | CODE |
| LOW | plugins/_email_integration/helpers/handler.py | 58 | except Exception: | CODE |
| LOW | plugins/_email_integration/helpers/attachment_reader.py | 39 | except Exception as e: | CODE |
| LOW⚡ | plugins/_email_integration/helpers/imap_client.py | 69 | except Exception as e: | CODE |
| LOW | plugins/_email_integration/helpers/imap_client.py | 92 | except Exception: | CODE |
| LOW | plugins/_email_integration/helpers/imap_client.py | 124 | except Exception as e: | CODE |
| LOW | plugins/_email_integration/helpers/imap_client.py | 158 | except Exception: | CODE |
| LOW | plugins/_email_integration/helpers/imap_client.py | 183 | except Exception as e: | CODE |
| LOW⚡ | plugins/_email_integration/helpers/smtp_client.py | 116 | except Exception as e: | STRING |
| LOW | plugins/_email_integration/helpers/smtp_client.py | 143 | except Exception as e: | STRING |
| LOW | plugins/_editor/api/editor_session.py | 67 | except Exception as exc: | CODE |
| LOW | plugins/_editor/api/editor_session.py | 84 | except Exception as exc: | CODE |
| LOW | plugins/_editor/api/editor_session.py | 161 | except Exception as exc: | CODE |
| LOW | plugins/_editor/api/ws_editor.py | 38 | except Exception as exc: | CODE |
| LOW | plugins/_editor/helpers/markdown_sessions.py | 49 | except Exception: | CODE |
| LOW | plugins/_editor/helpers/markdown_sessions.py | 174 | except Exception: | CODE |
| 710 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …extensions/python/process_chain_end/_55_email_reply.py | 55 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …extensions/python/process_chain_end/_55_email_reply.py | 57 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …tegration/extensions/python/job_loop/_10_email_poll.py | 20 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …tegration/extensions/python/job_loop/_10_email_poll.py | 22 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …tegration/extensions/python/job_loop/_10_email_poll.py | 47 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …tegration/extensions/python/job_loop/_10_email_poll.py | 49 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …tegration/extensions/python/job_loop/_10_email_poll.py | 89 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …tegration/extensions/python/job_loop/_10_email_poll.py | 91 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/dispatcher.py | 70 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/dispatcher.py | 72 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_writer.py | 12 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_writer.py | 14 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_writer.py | 21 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_writer.py | 23 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 172 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 174 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 255 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 257 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 511 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 513 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 590 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/handler.py | 592 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 42 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 44 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 69 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 71 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 473 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 475 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 524 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 526 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 539 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 541 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 612 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/handler.py | 614 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_reader.py | 12 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_reader.py | 14 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_reader.py | 22 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/attachment_reader.py | 24 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 27 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 29 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 42 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 44 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/imap_client.py | 73 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/imap_client.py | 75 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 236 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 238 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 313 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/imap_client.py | 315 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/smtp_client.py | 19 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/smtp_client.py | 21 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/smtp_client.py | 34 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_email_integration/helpers/smtp_client.py | 36 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | plugins/_email_integration/helpers/smtp_client.py | 122 | # ------------------------------------------------------------------ | STRING |
| MEDIUM⚡ | plugins/_email_integration/helpers/smtp_client.py | 124 | # ------------------------------------------------------------------ | STRING |
| MEDIUM | plugins/_promptinclude/helpers/scanner.py | 12 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_promptinclude/helpers/scanner.py | 14 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_promptinclude/helpers/scanner.py | 28 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_promptinclude/helpers/scanner.py | 30 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_promptinclude/helpers/scanner.py | 120 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | plugins/_promptinclude/helpers/scanner.py | 122 | # ------------------------------------------------------------------ | COMMENT |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 68 | let active = document.activeElement || document.body || document.documentElement; | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 72 | return active || document.body || document.documentElement; | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 76 | if (!element) return null; | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 106 | return selection ? String(selection.toString() || "") : ""; | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 110 | let transfer = null; | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 114 | if (transfer && seedText) { | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 149 | (target || document.body || document.documentElement).dispatchEvent(event); | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 152 | text: clipboardDataText(event.clipboardData || transfer), | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 156 | function dispatchInputEvent(element, type, inputType, data = null) { | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 157 | let event = null; | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 233 | if (!dispatchInputEvent(element, "beforeinput", "deleteByCut", null)) { | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 237 | dispatchInputEvent(element, "input", "deleteByCut", null); | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 242 | if (!selection || selection.rangeCount === 0 || !String(selection.toString() || "")) { | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 242 | if (!selection || selection.rangeCount === 0 || !String(selection.toString() || "")) { | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 245 | if (!dispatchInputEvent(element, "beforeinput", "deleteByCut", null)) { | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 249 | dispatchInputEvent(element, "input", "deleteByCut", null); | CODE |
| HIGH | plugins/_browser/helpers/runtime.py | 127 | let event = null; | CODE |
| HIGH | plugins/_browser/helpers/runtime.py | 200 | if (!selection || selection.rangeCount === 0) return false; | CODE |
| HIGH | plugins/_browser/helpers/runtime.py | 269 | result.text = event.text || selectionText; | CODE |
| HIGH | plugins/_browser/helpers/runtime.py | 270 | result.handled = Boolean(result.text || event.defaultPrevented); | CODE |
| HIGH⚡ | plugins/_browser/helpers/runtime.py | 2261 | history_length = await page.evaluate("() => globalThis.history?.length || 0") | STRING |
| HIGH | plugins/_browser/helpers/runtime.py | 1295 | "(payload) => globalThis.__spaceBrowserPageContent__.capture(payload || null)", | STRING |
| HIGH | plugins/_browser/helpers/runtime.py | 1295 | "(payload) => globalThis.__spaceBrowserPageContent__.capture(payload || null)", | STRING |
| HIGH | plugins/_browser/helpers/runtime.py | 1323 | "(payload) => globalThis.__spaceBrowserPageContent__.annotate(payload || null)", | STRING |
| HIGH | plugins/_browser/helpers/runtime.py | 1323 | "(payload) => globalThis.__spaceBrowserPageContent__.annotate(payload || null)", | STRING |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1299 | xfconf-query -c thunar -p /last-show-hidden -n -t bool -s true >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1300 | xfconf-query -c xfce4-desktop -p /desktop-icons/style -n -t int -s 2 >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1301 | xfconf-query -c xfce4-desktop -p /desktop-icons/file-icons/show-home -n -t bool -s false >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1302 | xfconf-query -c xfce4-desktop -p /desktop-icons/file-icons/show-filesystem -n -t bool -s false >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1303 | xfconf-query -c xfce4-desktop -p /desktop-icons/file-icons/show-removable -n -t bool -s false >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1304 | xfconf-query -c xfce4-desktop -p /desktop-icons/file-icons/show-trash -n -t bool -s false >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1308 | chmod +x "$launcher" 2>/dev/null || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1311 | gio set "$launcher" metadata::trusted true >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1313 | gio set -t string "$launcher" metadata::xfce-exe-checksum "$checksum" >/dev/null 2>&1 || true | CODE |
| HIGH⚡ | plugins/_desktop/helpers/desktop_session.py | 1318 | timeout 4 xfdesktop --reload >/dev/null 2>&1 || true | CODE |
| HIGH | plugins/_desktop/helpers/desktop_session.py | 1361 | f"'\"{session.profile_dir / 'prepare-xfce-profile.sh'}\" >/dev/null 2>&1 || true; exec xfce4-ses | STRING |
| HIGH⚡ | tests/test_oauth_static.py | 91 | assert "this.connectingProvider || this.disconnectingProvider" in store_js | CODE |
| HIGH⚡ | tests/test_oauth_static.py | 131 | assert "if (model.provider && model.provider !== providerId) continue;" in store_js | CODE |
| HIGH⚡ | tests/test_oauth_static.py | 160 | assert "interval: response.interval || device.interval" in start_polling | CODE |
| HIGH⚡ | tests/test_oauth_static.py | 161 | assert "expires_at: response.expires_at || device.expires_at" in start_polling | CODE |
| HIGH | tests/test_self_update_tag_filter.py | 531 | assert "if (response.ok && observedBackendUnavailable)" in content | CODE |
| HIGH⚡ | tests/test_office_canvas_setup.py | 303 | assert "options.displaySize || this.desktopDisplaySizeForToken(token)" in desktop_store | CODE |
| HIGH⚡ | tests/test_office_canvas_setup.py | 304 | assert "result?.width || width" in desktop_store | CODE |
| HIGH⚡ | tests/test_office_canvas_setup.py | 307 | assert "canvas?.clientWidth || canvas?.width" in desktop_store | CODE |
| HIGH⚡ | tests/test_office_canvas_setup.py | 549 | settings_fallback = open_file_browser.index('const response = await callJsonApi("settings_get", null);') | CODE |
| HIGH⚡ | tests/test_office_canvas_setup.py | 553 | assert "workdirPath = response?.settings?.workdir_path || workdirPath;" in open_file_browser | CODE |
| HIGH | tests/test_welcome_composer_static.py | 63 | assert 'history.replaceState(null, "", `#${hash}`);' in welcome_store | CODE |
| HIGH | tests/test_model_config_api_keys.py | 133 | assert "!provider || seen.has(provider) || !this.apiKeyDirty[provider]" in store_content | CODE |
| HIGH | tests/test_model_config_api_keys.py | 174 | assert "normalizeModelIdentity(o.chat || o)" in switcher_content | CODE |
| HIGH | tests/test_file_browser_navigation.py | 44 | assert 'callJsonApi("settings_get", null)' in store | CODE |
| HIGH | tests/test_file_browser_navigation.py | 173 | assert 'await store.openSurface(payload.path || payload.filePath || payload.directory || "")' in surfaces | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1287 | assert "frameDimensionsFromData(data = null)" in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1288 | assert "frameDimensionsFromMetadata(metadata = null)" in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1289 | assert "metadata.expectedWidth || metadata.deviceWidth || metadata.jpegWidth" in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1292 | assert "let dimensions = options?.dimensions || null" in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1321 | assert "this.frameState = data.state || null" not in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1323 | assert "frameMatchesViewport(dimensions = null, viewport = null)" in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1324 | assert "shouldAcceptMismatchedFrame(dimensions = null)" in browser_store | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1478 | assert "globalThis.__spaceBrowserPageContent__.annotate(payload || null)" in runtime | CODE |
| HIGH⚡ | tests/test_browser_agent_regressions.py | 1478 | assert "globalThis.__spaceBrowserPageContent__.annotate(payload || null)" in runtime | CODE |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | initialize.py | 3 | CODE | |
| LOW | run_ui.py | 3 | CODE | |
| LOW | run_ui.py | 3 | CODE | |
| LOW | agent.py | 6 | CODE | |
| LOW | agent.py | 8 | CODE | |
| LOW | agent.py | 10 | CODE | |
| LOW | agent.py | 34 | CODE | |
| LOW | agent.py | 34 | CODE | |
| LOW | tools/search_engine.py | 1 | CODE | |
| LOW | tools/search_engine.py | 2 | CODE | |
| LOW | tools/search_engine.py | 3 | CODE | |
| LOW | tools/search_engine.py | 3 | CODE | |
| LOW | tools/search_engine.py | 3 | CODE | |
| LOW | tools/search_engine.py | 5 | CODE | |
| LOW | tools/wait.py | 1 | CODE | |
| LOW | tools/skills_tool.py | 1 | CODE | |
| LOW | tools/document_query.py | 3 | CODE | |
| LOW | docker/run/fs/exe/self_update_manager.py | 2 | CODE | |
| LOW | plugins/_skills/hooks.py | 1 | CODE | |
| LOW | plugins/_skills/api/skills_catalog.py | 1 | CODE | |
| LOW | plugins/_email_integration/helpers/attachment_writer.py | 8 | CODE | |
| LOW | …/workdir_file_mutation_after/_40_sync_open_sessions.py | 1 | CODE | |
| LOW | …or/extensions/python/webui_ws_disconnect/_50_editor.py | 1 | CODE | |
| LOW | …ge_loop_prompts_after/_55_include_editor_open_files.py | 1 | CODE | |
| LOW | …_editor/extensions/python/webui_ws_event/_50_editor.py | 1 | CODE | |
| LOW | …thon/text_editor_patch_after/_40_sync_open_sessions.py | 1 | CODE | |
| LOW | …thon/text_editor_write_after/_40_sync_open_sessions.py | 1 | CODE | |
| LOW | plugins/_editor/api/editor_session.py | 1 | CODE | |
| LOW | plugins/_editor/api/ws_editor.py | 1 | CODE | |
| LOW | plugins/_editor/helpers/markdown_sessions.py | 1 | CODE | |
| LOW | plugins/_editor/helpers/open_files_context.py | 1 | CODE | |
| LOW | …t/handle_exception/end/_80_retry_critical_exception.py | 2 | CODE | |
| LOW | …t/handle_exception/end/_80_retry_critical_exception.py | 2 | CODE | |
| LOW | …t/handle_exception/end/_80_retry_critical_exception.py | 5 | CODE | |
| LOW | …t/handle_exception/end/_80_retry_critical_exception.py | 6 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 1 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 1 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 3 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 4 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 5 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 6 | CODE | |
| LOW | …onologue/start/_10_reset_critical_exception_counter.py | 7 | CODE | |
| LOW | plugins/_infection_check/helpers/checker.py | 13 | CODE | |
| LOW | plugins/_infection_check/helpers/checker.py | 14 | CODE | |
| LOW | plugins/_whatsapp_integration/helpers/number_utils.py | 3 | CODE | |
| LOW | plugins/_whatsapp_integration/helpers/bridge_manager.py | 7 | CODE | |
| LOW | …xtensions/python/startup_migration/_20_oauth_routes.py | 1 | CODE | |
| LOW | …/models/get_api_key/end/_20_oauth_account_dummy_key.py | 1 | CODE | |
| LOW | plugins/_oauth/api/start_login.py | 1 | CODE | |
| LOW | plugins/_oauth/api/models.py | 1 | CODE | |
| LOW | plugins/_oauth/api/disconnect.py | 1 | CODE | |
| LOW | plugins/_oauth/api/manual_callback.py | 1 | CODE | |
| LOW | plugins/_oauth/api/poll_device_login.py | 1 | CODE | |
| LOW | plugins/_oauth/api/start_device_login.py | 1 | CODE | |
| LOW | plugins/_oauth/api/status.py | 1 | CODE | |
| LOW | plugins/_oauth/helpers/config.py | 1 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 1 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 19 | CODE | |
| LOW | plugins/_oauth/helpers/usage_plans.py | 1 | CODE | |
| LOW | plugins/_oauth/helpers/summary.py | 1 | CODE | |
| 387 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | models.py | 58 | CODE | |
| LOW | models.py | 200 | CODE | |
| LOW | models.py | 392 | CODE | |
| LOW | models.py | 527 | CODE | |
| LOW | models.py | 640 | CODE | |
| LOW | initialize.py | 84 | CODE | |
| LOW | agent.py | 387 | CODE | |
| LOW | agent.py | 1319 | CODE | |
| LOW | agent.py | 1409 | CODE | |
| LOW | agent.py | 442 | CODE | |
| LOW | tools/vision_load.py | 12 | CODE | |
| LOW | tools/scheduler.py | 121 | CODE | |
| LOW | docker/run/fs/exe/self_update_manager.py | 340 | CODE | |
| LOW | docker/run/fs/exe/self_update_manager.py | 984 | CODE | |
| LOW | docker/run/fs/exe/self_update_manager.py | 1095 | CODE | |
| LOW | docker/run/fs/exe/supervisor_event_listener.py | 11 | CODE | |
| LOW | plugins/_email_integration/helpers/handler.py | 73 | CODE | |
| LOW | plugins/_email_integration/helpers/imap_client.py | 262 | CODE | |
| LOW | plugins/_email_integration/helpers/imap_client.py | 317 | CODE | |
| LOW | plugins/_email_integration/helpers/imap_client.py | 400 | CODE | |
| LOW | plugins/_promptinclude/helpers/scanner.py | 137 | CODE | |
| LOW | …_integration/extensions/python/job_loop/_10_wa_poll.py | 44 | CODE | |
| LOW | plugins/_whatsapp_integration/helpers/handler.py | 67 | CODE | |
| LOW | plugins/_whatsapp_integration/helpers/handler.py | 355 | CODE | |
| LOW | plugins/_whatsapp_integration/helpers/bridge_manager.py | 486 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 813 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 847 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 898 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 916 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 991 | CODE | |
| LOW | plugins/_oauth/helpers/codex.py | 1166 | CODE | |
| LOW | …/_plugin_validator/api/plugin_validator_prepare_zip.py | 26 | CODE | |
| LOW | plugins/_browser/tools/browser.py | 29 | CODE | |
| LOW | plugins/_browser/tools/browser.py | 539 | CODE | |
| LOW | plugins/_browser/api/ws_browser.py | 220 | CODE | |
| LOW | plugins/_browser/api/ws_browser.py | 289 | CODE | |
| LOW | plugins/_browser/api/ws_browser.py | 438 | CODE | |
| LOW | plugins/_browser/api/ws_browser.py | 574 | CODE | |
| LOW | plugins/_browser/helpers/runtime.py | 1349 | CODE | |
| LOW | plugins/_browser/helpers/runtime.py | 2083 | CODE | |
| LOW | plugins/_browser/helpers/runtime.py | 2317 | CODE | |
| LOW | plugins/_browser/helpers/connector_runtime.py | 125 | CODE | |
| LOW | plugins/_browser/helpers/connector_runtime.py | 222 | CODE | |
| LOW | plugins/_document_query/helpers/fetch.py | 125 | CODE | |
| LOW | …onfig/extensions/python/banners/_20_missing_api_key.py | 13 | CODE | |
| LOW | plugins/_model_config/api/model_override.py | 23 | CODE | |
| LOW | plugins/_model_config/api/model_search.py | 175 | CODE | |
| LOW | plugins/_model_config/api/model_search.py | 255 | CODE | |
| LOW | plugins/_model_config/api/model_search.py | 268 | CODE | |
| LOW | plugins/_model_config/api/model_presets.py | 6 | CODE | |
| LOW | plugins/_model_config/helpers/model_config.py | 561 | CODE | |
| LOW | plugins/_desktop/hooks.py | 356 | CODE | |
| LOW | plugins/_desktop/helpers/desktop_session.py | 1728 | CODE | |
| LOW | plugins/_desktop/helpers/desktop_session.py | 192 | CODE | |
| LOW | plugins/_desktop/helpers/desktop_state.py | 837 | CODE | |
| LOW | plugins/_a0_connector/tools/computer_use_remote.py | 305 | CODE | |
| LOW | plugins/_a0_connector/tools/code_execution_remote.py | 106 | CODE | |
| LOW | plugins/_a0_connector/tools/text_editor_remote.py | 43 | CODE | |
| LOW | plugins/_a0_connector/api/ws_connector.py | 561 | CODE | |
| LOW | plugins/_a0_connector/api/v1/message_send.py | 15 | CODE | |
| 164 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 99 | # Step 1: Extract full conversation text | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 106 | # Step 2: Estimate tokens, resolve model, and compute context budget | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 113 | # Step 3: Create progress log item (count user-visible messages only) | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 122 | # Step 4: Handle large histories by chunking if necessary | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 135 | # Step 5: Save pre-compaction backup before destroying history | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 138 | # Step 6: Replace history with compacted version | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 154 | # Step 7: Reset log and create response | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 163 | # Step 8: Persist and notify | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 167 | # Step 9: Force progress bar to inactive state LAST | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 204 | # Step 3: Analyze with LLM (now with validated memories) | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 239 | # Step 4: Apply consolidation decisions | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 334 | # Step 1: Extract keywords/queries for enhanced search | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 339 | # Step 2: Semantic similarity search with real scores | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 378 | # Step 5: Sort by similarity score descending | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 384 | # Step 6: Limit to max context for LLM | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 586 | # Step 1: Remove original memories being merged | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 590 | # Step 2: Insert consolidated memory | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 664 | # Step 2: Proceed with normal replacement if similarity checks pass | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 668 | # Step 3: Insert replacement memory | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 124 | # Step 1: Discover similar memories | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 158 | # Step 2: Validate that similar memories still exist (they might have been deleted by previous consolidations) | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 350 | # Step 3: Keyword-based searches with real scores | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 364 | # Step 4: Deduplicate by document ID, keep highest score per memory ID | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 621 | # Step 1: Validate similarity scores for replacement safety | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 702 | # Step 1: Update existing memories | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 731 | # Step 2: Insert the new memory only when no existing memory was updated. | COMMENT |
| LOW | docs/developer/contributing-skills.md | 97 | ### Step 1: First Step | COMMENT |
| LOW | docs/developer/contributing-skills.md | 101 | ### Step 2: Second Step | COMMENT |
| LOW | docs/developer/contributing-skills.md | 153 | ### Step 1: Identify the Need | COMMENT |
| LOW | docs/developer/contributing-skills.md | 160 | ### Step 2: Create the Structure | COMMENT |
| LOW | docs/developer/contributing-skills.md | 171 | ### Step 3: Write the SKILL.md | COMMENT |
| LOW | docs/developer/contributing-skills.md | 201 | ### Step 4: Add Supporting Files (Optional) | COMMENT |
| LOW | docs/developer/contributing-skills.md | 224 | ### Step 5: Test Your Skill | COMMENT |
| LOW | docs/setup/vps-deployment.md | 123 | ### Step 1: Create Directory Structure | COMMENT |
| LOW | docs/setup/vps-deployment.md | 137 | ### Step 2: Create Environment Configuration | COMMENT |
| LOW | docs/setup/vps-deployment.md | 156 | ### Step 3: Choose Host Port | COMMENT |
| LOW | docs/setup/vps-deployment.md | 164 | ### Step 4: Pull and Run Container | COMMENT |
| LOW | docs/setup/vps-deployment.md | 179 | ### Step 5: Verify Container | COMMENT |
| LOW⚡ | docs/setup/dev-setup.md | 27 | ## Step 0: Install required software | COMMENT |
| LOW⚡ | docs/setup/dev-setup.md | 32 | ## Step 1: Clone or download the repository | COMMENT |
| LOW⚡ | docs/setup/dev-setup.md | 39 | ## Step 2: Open project folder in your IDE | COMMENT |
| LOW⚡ | docs/setup/dev-setup.md | 48 | # Step 3: Prepare your IDE: | COMMENT |
| LOW | docs/setup/dev-setup.md | 89 | ## Step 4: Run Agent Zero in the IDE | COMMENT |
| LOW | docs/setup/dev-setup.md | 122 | ## Step 5: Run another instance of Agent Zero in Docker | COMMENT |
| LOW | docs/setup/dev-setup.md | 134 | ## Step 6: Configure SSH and RFC connection | COMMENT |
| LOW | docs/setup/installation.md | 184 | ### Step 1: Install Docker Desktop | COMMENT |
| LOW | docs/setup/installation.md | 322 | ### Step 2: Run Agent Zero | COMMENT |
| LOW | docs/setup/installation.md | 402 | ## Step 3: Configure Agent Zero | COMMENT |
| LOW⚡ | docs/guides/a2a-setup.md | 19 | ### Step 1: Open A2A Configuration | COMMENT |
| LOW⚡ | docs/guides/a2a-setup.md | 28 | ### Step 2: Get Connection URL | COMMENT |
| LOW⚡ | docs/guides/a2a-setup.md | 38 | ### Step 3: Save Configuration | COMMENT |
| LOW | docs/guides/api-integration.md | 22 | ### Step 1: Get the API Code | COMMENT |
| LOW | docs/guides/api-integration.md | 37 | ### Step 2: Provide the Code to Agent Zero | COMMENT |
| LOW | docs/guides/api-integration.md | 55 | ### Step 3: Configure API Credentials | COMMENT |
| LOW | docs/guides/api-integration.md | 86 | ### Step 4: Generate the Image | COMMENT |
| LOW⚡ | webui/js/device.js | 33 | // Step 1: Check for touch capability (touchOnly or hybrid) | COMMENT |
| LOW⚡ | webui/js/device.js | 41 | // Step 2: Check for pointer/hover capability (pointerOnly or hybrid) | COMMENT |
| LOW | webui/components/settings/external/api-examples.html | 634 | // Step 1: Send message with attachments | COMMENT |
| LOW | webui/components/settings/external/api-examples.html | 654 | // Step 2: Retrieve the uploaded file | COMMENT |
| LOW | skills/a0-create-plugin/SKILL.md | 32 | ## Step 0: Ask First — Local or Community Plugin? | COMMENT |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | models.py | 909 | # Check if this is a local sentence-transformers model | COMMENT |
| LOW | …s/python/startup_migration/_10_migrate_model_config.py | 42 | # Check if global plugin config already exists | COMMENT |
| LOW | …s/python/startup_migration/_10_migrate_model_config.py | 59 | # Check if any legacy model field exists in the raw settings | COMMENT |
| LOW | plugins/_model_config/api/model_config_set.py | 49 | # Check if embedding model changed and notify | COMMENT |
| LOW | plugins/_telegram_integration/helpers/handler.py | 385 | # Check if existing context is still alive | COMMENT |
| LOW | plugins/_memory/helpers/knowledge_import.py | 143 | # Check if file has changed | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory.py | 683 | # Check if project isolation is enabled and we are in a project | COMMENT |
| LOW | plugins/_code_execution/tools/code_execution_tool.py | 188 | # Check if session is running and handle it | COMMENT |
| LOW | plugins/_code_execution/helpers/shell_ssh.py | 190 | # Check if the last byte(s) form an incomplete multi-byte UTF-8 sequence | COMMENT |
| LOW | plugins/_code_execution/helpers/shell_ssh.py | 194 | # Check if the last byte is part of a multi-byte UTF-8 sequence (continuation byte) | COMMENT |
| LOW | plugins/_text_editor/helpers/file_ops.py | 318 | # Check if current line falls in a replace/delete range | COMMENT |
| LOW | …tensions/python/process_chain_end/_50_process_queue.py | 21 | # Check if there are queued messages | COMMENT |
| LOW | …ssage_loop_prompts_before/_90_organize_history_wait.py | 26 | # Check if the task is already done | COMMENT |
| LOW | api/api_terminate_chat.py | 37 | # Check if context exists | COMMENT |
| LOW | api/api_files_get.py | 65 | # Check if file exists | COMMENT |
| LOW | api/api_reset_chat.py | 37 | # Check if context exists | COMMENT |
| LOW | api/image_get.py | 192 | # Check if specific icon exists, fallback to generic file icon | COMMENT |
| LOW | api/scheduler_task_run.py | 30 | # Check if the task exists first | COMMENT |
| LOW | api/scheduler_task_run.py | 36 | # Check if task is already running | COMMENT |
| LOW | api/scheduler_task_create.py | 52 | # Check if schedule is provided (for ScheduledTask) | COMMENT |
| LOW | api/scheduler_task_delete.py | 26 | # Check if the task exists first | COMMENT |
| LOW | helpers/functions.py | 11 | # Check if function accepts *args / **kwargs | COMMENT |
| LOW | helpers/files.py | 97 | # Read the file content | COMMENT |
| LOW | helpers/files.py | 139 | # Read the file content | COMMENT |
| LOW | helpers/files.py | 216 | # Read the file content | COMMENT |
| LOW | helpers/files.py | 224 | # Read the file content | COMMENT |
| LOW⚡ | helpers/files.py | 734 | # Check if file is binary by reading a small chunk | COMMENT |
| LOW | helpers/backup.py | 229 | # Check if the pattern starts with the backed up agent zero root | COMMENT |
| LOW | helpers/backup.py | 286 | # Check if this hidden directory is explicitly included | COMMENT |
| LOW | helpers/backup.py | 537 | # Check if file matches restore patterns | COMMENT |
| LOW | helpers/backup.py | 693 | # Check if file matches restore patterns | COMMENT |
| LOW | helpers/backup.py | 798 | # Check if the archive path starts with the backed up agent zero root | COMMENT |
| LOW | helpers/mcp_handler.py | 1608 | # Check if this is a streaming HTTP type | COMMENT |
| LOW | helpers/browser.py | 147 | # # Check if frame is still valid | COMMENT |
| LOW | helpers/browser.py | 325 | # # Check if selector is our UID, return | COMMENT |
| LOW⚡ | helpers/api.py | 68 | if request.data: # Check if there's any data | CODE |
| LOW | helpers/file_browser.py | 235 | # Check if this is a symlink (permissions start with 'l') | COMMENT |
| LOW | helpers/rfc_files.py | 383 | # Write file | COMMENT |
| LOW | helpers/rfc_files.py | 616 | # Write file | COMMENT |
| LOW | helpers/fasta2a_server.py | 399 | # Check if reconfiguration is needed | COMMENT |
| LOW | helpers/fasta2a_server.py | 460 | # Check if path matches token pattern /t-{token}/ | COMMENT |
| LOW | helpers/projects.py | 139 | # Check if cloned repo already has .a0proj | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | initialize.py | 21 | COMMENT | |
| LOW | agent.py | 641 | COMMENT | |
| LOW | agent.py | 661 | # PrintStyle(font_color="white", background_color="red", padding=True).print( | COMMENT |
| LOW | tools/scheduler.py | 301 | COMMENT | |
| LOW | docker/run/fs/etc/searxng/settings.yml | 41 | # - autocomplete | COMMENT |
| LOW | docker/run/fs/etc/searxng/settings.yml | 81 | COMMENT | |
| LOW | docker/run/fs/ins/setup_venv.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/base/fs/etc/searxng/settings.yml | 41 | # - method | COMMENT |
| LOW | docker/base/fs/etc/searxng/settings.yml | 81 | # - name: mediathekviewweb | COMMENT |
| LOW | plugins/_email_integration/default_config.yaml | 1 | handlers: [] | COMMENT |
| LOW | plugins/_email_integration/default_config.yaml | 21 | # dispatcher_instructions: "" | COMMENT |
| LOW | plugins/_browser/default_config.yaml | 21 | # - container: use Agent Zero's Docker/server Playwright browser. | COMMENT |
| LOW | plugins/_telegram_integration/default_config.yaml | 1 | bots: [] | COMMENT |
| LOW | plugins/_code_execution/helpers/shell_ssh.py | 141 | # trim_com, trim_out = calculate_valid_match_lengths( | COMMENT |
| LOW | webui/index.js | 261 | } | COMMENT |
| LOW | webui/js/timeout.js | 1 | // function timeout(ms: number, errorMessage: string = "Operation timed out") { | COMMENT |
| LOW | webui/js/modals.js | 481 | // // Make sure the modal is completely removed from the DOM | COMMENT |
| LOW | conf/model_providers.yaml | 1 | # Supported model providers for Agent Zero | COMMENT |
| LOW | helpers/files.py | 61 | COMMENT | |
| LOW | helpers/mcp_handler.py | 921 | COMMENT | |
| LOW | helpers/browser.py | 1 | # import asyncio | COMMENT |
| LOW | helpers/browser.py | 21 | # load_timeout = 10000 | COMMENT |
| LOW | helpers/browser.py | 41 | # await self.close() | COMMENT |
| LOW | helpers/browser.py | 61 | COMMENT | |
| LOW | helpers/browser.py | 81 | # # Handle page navigation events | COMMENT |
| LOW | helpers/browser.py | 101 | # self.page.on("request", handle_request) | COMMENT |
| LOW | helpers/browser.py | 121 | # url, wait_until="networkidle", timeout=Browser.load_timeout | COMMENT |
| LOW | helpers/browser.py | 141 | # for frame in self.page.frames: | COMMENT |
| LOW | helpers/browser.py | 161 | COMMENT | |
| LOW | helpers/browser.py | 181 | # # print(f"Error when extracting from main frame: {e}") | COMMENT |
| LOW | helpers/browser.py | 201 | # tag.decompose() | COMMENT |
| LOW | helpers/browser.py | 221 | # tag.attrs = attrs | COMMENT |
| LOW | helpers/browser.py | 241 | COMMENT | |
| LOW | helpers/browser.py | 261 | # for tag in structural_tags: | COMMENT |
| LOW | helpers/browser.py | 281 | # self.last_selector = selector | COMMENT |
| LOW | helpers/browser.py | 301 | COMMENT | |
| LOW | helpers/browser.py | 321 | COMMENT | |
| LOW | helpers/browser.py | 341 | # "No page is open in the browser. Please open a URL first." | COMMENT |
| LOW | helpers/browser.py | 361 | COMMENT | |
| LOW | helpers/browser.py | 381 | # if nav_count != self.navigation_count: | COMMENT |
| LOW | helpers/email_client.py | 1 | # import asyncio | COMMENT |
| LOW | helpers/email_client.py | 21 | # @dataclass | COMMENT |
| LOW | helpers/email_client.py | 41 | # username: str = "", | COMMENT |
| LOW | helpers/email_client.py | 61 | # self.username = username | COMMENT |
| LOW | helpers/email_client.py | 81 | # f"Unsupported account type: {self.account_type}. " | COMMENT |
| LOW | helpers/email_client.py | 101 | # self.client = await loop.run_in_executor(None, _sync_connect) | COMMENT |
| LOW | helpers/email_client.py | 121 | # self.exchange_account = await loop.run_in_executor(None, _sync_connect) | COMMENT |
| LOW | helpers/email_client.py | 141 | COMMENT | |
| LOW | helpers/email_client.py | 161 | # filter = filter or {} | COMMENT |
| LOW | helpers/email_client.py | 181 | COMMENT | |
| LOW | helpers/email_client.py | 201 | COMMENT | |
| LOW | helpers/email_client.py | 221 | COMMENT | |
| LOW | helpers/email_client.py | 241 | # try: | COMMENT |
| LOW | helpers/email_client.py | 261 | # email_msg = email.message_from_bytes(email_data) | COMMENT |
| LOW | helpers/email_client.py | 281 | # self, | COMMENT |
| LOW | helpers/email_client.py | 301 | # sender_pattern = filter["sender"].replace("*", "") | COMMENT |
| LOW | helpers/email_client.py | 321 | # try: | COMMENT |
| LOW | helpers/email_client.py | 341 | COMMENT | |
| LOW | helpers/email_client.py | 361 | # sender=str(ex_msg.sender.email_address) if ex_msg.sender else "", | COMMENT |
| LOW | helpers/email_client.py | 381 | # # Extract body and attachments | COMMENT |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 99 | # Step 1: Extract full conversation text | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 106 | # Step 2: Estimate tokens, resolve model, and compute context budget | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 113 | # Step 3: Create progress log item (count user-visible messages only) | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 122 | # Step 4: Handle large histories by chunking if necessary | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 135 | # Step 5: Save pre-compaction backup before destroying history | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 138 | # Step 6: Replace history with compacted version | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 154 | # Step 7: Reset log and create response | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 163 | # Step 8: Persist and notify | COMMENT |
| LOW⚡ | plugins/_chat_compaction/helpers/compactor.py | 167 | # Step 9: Force progress bar to inactive state LAST | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 204 | # Step 3: Analyze with LLM (now with validated memories) | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 239 | # Step 4: Apply consolidation decisions | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 334 | # Step 1: Extract keywords/queries for enhanced search | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 339 | # Step 2: Semantic similarity search with real scores | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 378 | # Step 5: Sort by similarity score descending | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 384 | # Step 6: Limit to max context for LLM | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 586 | # Step 1: Remove original memories being merged | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 590 | # Step 2: Insert consolidated memory | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 664 | # Step 2: Proceed with normal replacement if similarity checks pass | COMMENT |
| LOW⚡ | plugins/_memory/helpers/memory_consolidation.py | 668 | # Step 3: Insert replacement memory | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 124 | # Step 1: Discover similar memories | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 158 | # Step 2: Validate that similar memories still exist (they might have been deleted by previous consolidations) | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 350 | # Step 3: Keyword-based searches with real scores | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 364 | # Step 4: Deduplicate by document ID, keep highest score per memory ID | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 621 | # Step 1: Validate similarity scores for replacement safety | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 702 | # Step 1: Update existing memories | COMMENT |
| LOW | plugins/_memory/helpers/memory_consolidation.py | 731 | # Step 2: Insert the new memory only when no existing memory was updated. | COMMENT |
| LOW⚡ | webui/js/device.js | 33 | // Step 1: Check for touch capability (touchOnly or hybrid) | COMMENT |
| LOW⚡ | webui/js/device.js | 41 | // Step 2: Check for pointer/hover capability (pointerOnly or hybrid) | COMMENT |
| LOW | webui/components/settings/external/api-examples.html | 634 | // Step 1: Send message with attachments | COMMENT |
| LOW | webui/components/settings/external/api-examples.html | 654 | // Step 2: Retrieve the uploaded file | COMMENT |
| LOW⚡ | helpers/skills_cli.py | 201 | ### Step 1: First Step | COMMENT |
| LOW⚡ | helpers/skills_cli.py | 205 | ### Step 2: Second Step | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/document_query.py | 5 | __all__ = ["DocumentQueryTool"] | CODE |
| LOW | plugins/_editor/helpers/markdown_sessions.py | 433 | def _set_session_base(session: MarkdownSession, doc: dict[str, Any]) -> None: | CODE |
| LOW | plugins/_oauth/helpers/providers/__init__.py | 27 | __all__ = [ | CODE |
| LOW | plugins/_browser/helpers/runtime.py | 2238 | async def _settle(self, page: Any, short: bool = False) -> None: | STRING |
| LOW | plugins/_document_query/helpers/parsers/__init__.py | 33 | __all__ = [ | CODE |
| LOW | plugins/_desktop/helpers/desktop_session.py | 2318 | def _set_registry_prop(root: ET.Element, item_path: str, prop_name: str, value: str) -> None: | STRING |
| LOW | plugins/_desktop/helpers/desktop_routes.py | 6 | __all__ = ["VirtualDesktopGateway", "install_route_hooks", "is_installed"] | CODE |
| LOW | plugins/_kokoro_tts/helpers/__init__.py | 3 | __all__ = ["runtime"] | CODE |
| LOW | plugins/_commands/helpers/commands.py | 971 | def _set_flag_value(flags: dict[str, Any], key: str, value: Any) -> None: | CODE |
| LOW | plugins/_telegram_integration/helpers/draft_stream.py | 74 | async def update_response(context: AgentContext, response_text: str) -> None: | CODE |
| LOW | plugins/_telegram_integration/helpers/command_ui.py | 480 | def _set_session_mapping(context: AgentContext) -> None: | CODE |
| LOW | plugins/_office/helpers/artifact_editor.py | 1324 | def _set_word_paragraph_text(paragraph: ET.Element, text: str) -> None: | CODE |
| LOW | plugins/_office/helpers/artifact_editor.py | 1348 | def _set_drawing_paragraph_text(paragraph: ET.Element, text: str) -> None: | CODE |
| LOW | plugins/_office/helpers/artifact_editor.py | 1631 | def _set_matrix_value(rows: list[list[Any]], row_idx: int, col_idx: int, value: Any) -> None: | CODE |
| LOW⚡ | tests/test_http_auth_csrf.py | 21 | def _set_session(client, **values) -> None: | CODE |
| LOW⚡ | tests/test_http_auth_csrf.py | 27 | def _set_csrf_cookie(client, token: str) -> None: | CODE |
| LOW | tests/test_file_tree_visualize.py | 122 | def _set_entry_times(relative_path: str, timestamp: float) -> None: | CODE |
| LOW | tests/test_prompt_protocol.py | 12 | def set_progress(self, _message: str) -> None: | CODE |
| LOW | api/image_get.py | 117 | def _set_image_headers(response: Response, filename: str, file_ext: str) -> None: | CODE |
| LOW | helpers/watchdog.py | 411 | __all__ = [ | CODE |
| LOW | helpers/notification.py | 201 | def update_item(self, no: int, **kwargs) -> None: | CODE |
| LOW | helpers/ws_manager.py | 197 | def set_shared_ws_manager(manager: "WsManager") -> None: | CODE |
| LOW | helpers/ws_manager.py | 1486 | def set_server_restart_broadcast(self, enabled: bool) -> None: | CODE |
| LOW | helpers/localization.py | 100 | def set_timezone(self, timezone: str) -> None: | CODE |
| LOW⚡ | helpers/parallel_tools.py | 678 | def _update_parallel_child_log(job: ParallelJob) -> None: | CODE |
| LOW | helpers/defer.py | 197 | def set_result(result: Any) -> None: | CODE |
| LOW | helpers/defer.py | 203 | def set_exception(exception: BaseException) -> None: | CODE |
| LOW | helpers/settings.py | 373 | def set_runtime_settings_snapshot(settings: Settings) -> None: | CODE |
| LOW | helpers/document_query.py | 9 | __all__ = [ | CODE |
| LOW | helpers/kvp.py | 40 | def set_runtime(key: str, value: Any) -> None: | CODE |
| LOW | helpers/kvp.py | 68 | def set_persistent(key: str, value: Any) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …components/modals/scheduler/scheduler-task-editor.html | 144 | <button @click.prevent="$store.schedulerStore.editingTask.plan.todo.spli | CODE |
| CRITICAL | …components/modals/scheduler/scheduler-task-editor.html | 349 | <button @click.prevent="$store.schedulerStore.editingTask.plan.todo.spli | CODE |
| CRITICAL | helpers/microsoft_tunnel.py | 9 | from flaredantic.core.exceptions import MicrosoftTunnelError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/base/fs/ins/install_searxng.sh | 21 | # Create the searxng directory and set ownership | COMMENT |
| MEDIUM | api/scheduler_task_create.py | 73 | # Create a scheduled task | COMMENT |
| MEDIUM | api/scheduler_task_create.py | 106 | # Create a planned task | COMMENT |
| MEDIUM | api/scheduler_task_create.py | 124 | # Create an ad-hoc task | COMMENT |
| MEDIUM | helpers/print_catch.py | 11 | # Create a StringIO object to capture the output | COMMENT |
| MEDIUM | helpers/print_catch.py | 15 | # Define a function to get the current captured output | COMMENT |
| MEDIUM | helpers/settings.py | 776 | # This function is kept for backward compatibility but returns an empty dict. | COMMENT |
| MEDIUM | helpers/modules.py | 9 | T = TypeVar("T") # Define a generic type variable | CODE |
| MEDIUM | helpers/modules.py | 17 | # Create the module spec and load the module | COMMENT |
| MEDIUM | helpers/duckduckgo_search.py | 4 | # # Create an instance with custom parameters | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | models.py | 527 | CODE | |
| LOW | models.py | 640 | CODE | |
| LOW | models.py | 878 | CODE | |
| LOW | agent.py | 59 | CODE | |
| LOW | plugins/_browser/tools/browser.py | 29 | CODE | |
| LOW | plugins/_browser/helpers/runtime.py | 1947 | CODE | |
| LOW | plugins/_desktop/helpers/desktop_state.py | 659 | CODE | |
| LOW | plugins/_commands/helpers/commands.py | 379 | CODE | |
| LOW | plugins/_telegram_integration/helpers/draft_stream.py | 375 | CODE | |
| LOW | plugins/_memory/helpers/memory.py | 589 | CODE | |
| LOW | plugins/_memory/helpers/memory.py | 597 | CODE | |
| LOW | plugins/_code_execution/tools/code_execution_tool.py | 234 | CODE | |
| LOW | plugins/_code_execution/tools/code_execution_tool.py | 487 | CODE | |
| LOW | plugins/_office/tools/office_artifact.py | 14 | CODE | |
| LOW | plugins/_office/helpers/artifact_editor.py | 73 | CODE | |
| LOW | plugins/_office/helpers/artifact_editor.py | 148 | CODE | |
| LOW | api/download_work_dir_file.py | 77 | CODE | |
| LOW | api/rfc.py | 17 | CODE | |
| LOW | helpers/plugins.py | 620 | CODE | |
| LOW | helpers/files.py | 447 | CODE | |
| LOW | helpers/file_tree.py | 30 | CODE | |
| LOW | helpers/task_scheduler.py | 183 | CODE | |
| LOW | helpers/task_scheduler.py | 307 | CODE | |
| LOW | helpers/task_scheduler.py | 362 | CODE | |
| LOW | helpers/task_scheduler.py | 445 | CODE | |
| LOW | helpers/perplexity_search.py | 33 | CODE | |
| LOW | helpers/vector_db.py | 138 | CODE | |
| LOW | helpers/rfc.py | 41 | CODE | |
| LOW | helpers/tool.py | 74 | CODE | |
| LOW | helpers/history.py | 719 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | preload.py | 21 | # preload embedding model | COMMENT |
| MEDIUM | agent.py | 613 | # store as last context window content | COMMENT |
| MEDIUM | tools/vision_load.py | 7 | # image token estimation for context window | COMMENT |
| MEDIUM | tools/scheduler.py | 93 | # Validate cron expression, agent might hallucinate | COMMENT |
| MEDIUM | plugins/_model_config/api/model_config_set.py | 49 | # Check if embedding model changed and notify | COMMENT |
| MEDIUM | docs/README.md | 109 | - [Multi-Agent Cooperation](guides/usage.md#multi-agent-cooperation) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | plugins/_commands/helpers/commands.py | 531 | Resolve a slash command invocation, executing text rendering or a Python script hook. Args: path: P | STRING |
| HIGH | helpers/file_tree.py | 42 | Render a directory tree relative to the repository base path. Parameters: relative_path: Base directory (re | STRING |
| HIGH | helpers/rfc_files.py | 314 | Find a file in the main directory or backup directories. Args: file_path: Relative file path to search | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/skills_tool.py | 139 | ) as e: # keep tool robust; return error instead of crashing loop | CODE |
| MEDIUM | api/ws_dev_test.py | 73 | # may process them). Only warn for events that look like dev-harness | COMMENT |
| MEDIUM | webui/js/websocket.js | 404 | // the Engine.IO handshake. This is required for seamless reconnect after backend | COMMENT |
| LOW | helpers/skills_import.py | 168 | # If relative fails due to symlink oddities, just use leaf folder name | COMMENT |
| MEDIUM | helpers/backup.py | 367 | # Add comprehensive metadata | COMMENT |
| LOW | helpers/errors.py | 48 | # If no "File" lines found, or not enough to trim, just return the original traceback | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plugins/_browser/assets/browser-page-content.js | 1204 | const placeholderText = normalizeAttributeText(element?.getAttribute?.("placeholder")); | CODE |
| LOW | plugins/_browser/assets/browser-page-content.js | 1398 | const placeholder = normalizeAttributeText(element.getAttribute?.("placeholder")); | CODE |
| LOW | plugins/_browser/assets/browser-page-content.js | 1487 | const placeholder = normalizeAttributeText(element.getAttribute?.("placeholder")); | CODE |
| LOW⚡ | tests/test_oauth_providers.py | 191 | account_label="user@example.com", | CODE |
| LOW⚡ | tests/test_oauth_providers.py | 197 | account_label="user@example.com", | CODE |
| LOW⚡ | tests/test_oauth_providers.py | 201 | assert poll.account_label == "user@example.com" | CODE |
| LOW⚡ | tests/test_oauth_providers.py | 203 | assert callback.account_label == "user@example.com" | CODE |
| LOW | tests/test_oauth_providers.py | 361 | "account_label": "user@example.com", | CODE |
| LOW | tests/test_oauth_providers.py | 376 | assert summary["oauth_accounts"]["connected"][0]["account_label"] == "user@example.com" | CODE |
| LOW | tests/test_oauth_providers.py | 648 | account_label="user@example.com", | CODE |
| LOW | tests/test_oauth_providers.py | 672 | assert response["account_label"] == "user@example.com" | CODE |
| LOW | tests/test_oauth_gemini_api.py | 156 | "id_token": _jwt({"email": "user@example.com"}), | CODE |
| LOW | tests/test_oauth_gemini_api.py | 168 | assert result.account_label == "user@example.com" | CODE |
| LOW | helpers/browser.py | 211 | # "placeholder", | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/developer/mcp-configuration.md | 32 | "Authorization": "Bearer YOUR_API_KEY" | CODE |
| HIGH | docs/guides/mcp-setup.md | 111 | "Authorization": "Bearer YOUR_API_KEY" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_tunnel.py | 35 | async def handle_request(): | CODE |
| LOW | agent.py | 280 | def run_task( | CODE |
| LOW | tools/scheduler.py | 207 | async def run_task(self, **kwargs) -> Response: | CODE |
| LOW | helpers/browser.py | 92 | # async def handle_request(request): | COMMENT |
| LOW⚡ | helpers/api.py | 62 | async def handle_request(self, request: Request) -> Response: | CODE |
| LOW | helpers/fasta2a_server.py | 35 | async def run_task(self, params): | CODE |
| LOW | helpers/fasta2a_server.py | 94 | async def run_task(self, params: Any) -> None: # params: TaskSendParams | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agents/_example/tools/example_tool.py | 4 | # don't forget to include instructions in the system prompt by creating | COMMENT |
| LOW | agents/_example/tools/example_tool.py | 4 | # don't forget to include instructions in the system prompt by creating | COMMENT |
| LOW | helpers/task_scheduler.py | 493 | # If we updated the plan, make sure to persist it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | webui/components/settings/external/api-examples.html | 418 | // Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | webui/js/transformers@3.0.2.js | 100 | var r,a,s,i,o,l,u,d,c,p,h,m,f,g,_,w,y,b,v,x,M,T,k,$,C,S,P,E,F,A,I,z,O,B,L=Object.defineProperty,D=Object.getOwnPropertyD | CODE |