No fortress, purely open ground. OpenManus is Coming.
This report presents the forensic synthetic code analysis of FoundationAgents/OpenManus, a Python project with 58,112 GitHub stars. SynthScan v2.0 examined 25,123 lines of code across 136 source files, recording 314 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 20.4 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).
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 314 distinct pattern matches across 15 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 | run_mcp.py | 108 | except Exception as e: | CODE |
| LOW | run_flow.py | 47 | except Exception as e: | CODE |
| LOW | app/config.py | 170 | except Exception as e: | CODE |
| LOW | app/llm.py | 477 | except Exception: | CODE |
| LOW | app/llm.py | 633 | except Exception as e: | CODE |
| LOW | app/llm.py | 764 | except Exception as e: | CODE |
| LOW | app/logger.py | 41 | except Exception as e: | CODE |
| LOW | app/bedrock.py | 44 | except Exception as e: | CODE |
| MEDIUM | app/bedrock.py | 45 | print(f"Error initializing Bedrock client: {e}") | CODE |
| LOW | app/agent/toolcall.py | 59 | except Exception as e: | CODE |
| LOW | app/agent/toolcall.py | 122 | except Exception as e: | CODE |
| LOW | app/agent/toolcall.py | 213 | except Exception as e: | CODE |
| LOW | app/agent/toolcall.py | 247 | except Exception as e: | CODE |
| LOW | app/agent/sandbox_agent.py | 109 | except Exception as e: | CODE |
| LOW | app/agent/sandbox_agent.py | 134 | except Exception as e: | CODE |
| LOW | app/agent/sandbox_agent.py | 184 | except Exception as e: | CODE |
| LOW | app/agent/browser.py | 39 | except Exception as e: | CODE |
| LOW | app/agent/base.py | 78 | except Exception as e: | CODE |
| LOW | app/agent/manus.py | 98 | except Exception as e: | CODE |
| LOW | app/agent/manus.py | 126 | except Exception as e: | CODE |
| LOW | app/sandbox/core/terminal.py | 113 | except Exception as e: | CODE |
| LOW | app/sandbox/core/terminal.py | 215 | except Exception as e: | CODE |
| LOW | app/sandbox/core/sandbox.py | 101 | except Exception as e: | CODE |
| LOW | app/sandbox/core/sandbox.py | 195 | except Exception as e: | CODE |
| LOW | app/sandbox/core/sandbox.py | 229 | except Exception as e: | CODE |
| LOW | app/sandbox/core/sandbox.py | 312 | except Exception as e: | CODE |
| LOW | app/sandbox/core/sandbox.py | 369 | except Exception: | CODE |
| LOW | app/sandbox/core/sandbox.py | 374 | except Exception as e: | CODE |
| LOW⚡ | app/sandbox/core/sandbox.py | 432 | except Exception as e: | CODE |
| LOW⚡ | app/sandbox/core/sandbox.py | 440 | except Exception as e: | CODE |
| LOW⚡ | app/sandbox/core/sandbox.py | 445 | except Exception as e: | CODE |
| LOW⚡ | app/sandbox/core/sandbox.py | 450 | except Exception as e: | CODE |
| LOW | app/sandbox/core/manager.py | 153 | except Exception as e: | CODE |
| LOW | app/sandbox/core/manager.py | 181 | except Exception as e: | CODE |
| LOW | app/sandbox/core/manager.py | 203 | except Exception as e: | CODE |
| LOW | app/sandbox/core/manager.py | 275 | except Exception as e: | CODE |
| LOW | app/sandbox/core/manager.py | 289 | except Exception as e: | CODE |
| LOW⚡ | app/daytona/sandbox.py | 68 | except Exception as e: | CODE |
| LOW⚡ | app/daytona/sandbox.py | 75 | except Exception as e: | CODE |
| LOW | app/daytona/sandbox.py | 97 | except Exception as e: | CODE |
| LOW | app/daytona/sandbox.py | 163 | except Exception as e: | CODE |
| LOW | app/daytona/tool_base.py | 96 | except Exception as e: | CODE |
| LOW | app/daytona/tool_base.py | 113 | except Exception as e: | CODE |
| LOW | app/tool/mcp.py | 45 | except Exception as e: | CODE |
| LOW | app/tool/mcp.py | 216 | except Exception as e: | CODE |
| LOW | app/tool/python_execute.py | 33 | except Exception as e: | CODE |
| LOW | app/tool/crawl4ai.py | 202 | except Exception as e: | CODE |
| LOW | app/tool/crawl4ai.py | 255 | except Exception as e: | CODE |
| LOW | app/tool/crawl4ai.py | 268 | except Exception: | CODE |
| LOW | app/tool/file_operators.py | 51 | except Exception as e: | CODE |
| LOW | app/tool/file_operators.py | 58 | except Exception as e: | CODE |
| LOW⚡ | app/tool/file_operators.py | 112 | except Exception as e: | CODE |
| LOW⚡ | app/tool/file_operators.py | 120 | except Exception as e: | CODE |
| LOW | app/tool/file_operators.py | 157 | except Exception as exc: | CODE |
| LOW | app/tool/web_search.py | 151 | except Exception as e: | CODE |
| LOW | app/tool/computer_use_tool.py | 221 | except Exception as e: | CODE |
| LOW | app/tool/computer_use_tool.py | 470 | except Exception as e: | CODE |
| LOW | app/tool/chart_visualization/data_visualization.py | 211 | except Exception as e: | CODE |
| LOW | app/tool/chart_visualization/data_visualization.py | 262 | except Exception as e: | CODE |
| LOW⚡ | app/tool/search/bing_search.py | 123 | except Exception: | CODE |
| 48 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/llm.py | 270 | Format messages for LLM by converting them to OpenAI message format. Args: messages: List | STRING |
| HIGH | app/llm.py | 368 | Send a prompt to the LLM and get the response. Args: messages: List of conversation messag | STRING |
| HIGH | app/llm.py | 496 | Send a prompt with images to the LLM and get the response. Args: messages: List of convers | STRING |
| HIGH | app/llm.py | 654 | Ask LLM using functions/tools and return the response. Args: messages: List of conversatio | STRING |
| HIGH | app/agent/base.py | 60 | Context manager for safe agent state transitions. Args: new_state: The state to transition to durin | STRING |
| HIGH | app/agent/base.py | 117 | Execute the agent's main loop asynchronously. Args: request: Optional initial user request to proce | STRING |
| HIGH | app/sandbox/client.py | 111 | Runs command in sandbox. Args: command: Command to execute. timeout: Execution timeout | STRING |
| HIGH | app/sandbox/client.py | 156 | Reads file from container. Args: path: File path in container. Returns: File c | STRING |
| HIGH | app/sandbox/core/terminal.py | 140 | Executes a command and returns cleaned output. Args: command: Shell command to execute. | STRING |
| HIGH | app/sandbox/core/terminal.py | 219 | Sanitizes the command string to prevent shell injection. Args: command: Raw command string. | STRING |
| HIGH | app/sandbox/core/terminal.py | 317 | Runs a command in the container with timeout. Args: cmd: Shell command to execute. time | STRING |
| HIGH | app/sandbox/core/sandbox.py | 141 | Runs a command in the sandbox. Args: cmd: Command to execute. timeout: Timeout in secon | STRING |
| HIGH | app/sandbox/core/sandbox.py | 167 | Reads a file from the container. Args: path: File path. Returns: File contents | STRING |
| HIGH | app/sandbox/core/sandbox.py | 233 | Safely resolves container path, preventing path traversal. Args: path: Original path. Retu | STRING |
| HIGH | app/sandbox/core/sandbox.py | 398 | Reads file content from a tar stream. Args: tar_stream: Tar file stream. Returns: | STRING |
| HIGH | app/sandbox/core/manager.py | 119 | Creates a new sandbox instance. Args: config: Sandbox configuration. volume_bindings: V | STRING |
| HIGH | app/sandbox/core/manager.py | 160 | Gets a sandbox instance. Args: sandbox_id: Sandbox ID. Returns: DockerSandbox: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | config/config.example-daytona.toml | 5 | api_key = "YOUR_API_KEY" # Your API key | CODE |
| HIGH | config/config.example-daytona.toml | 38 | api_key = "YOUR_API_KEY" # Your API key for vision model | CODE |
| HIGH | config/config.example.toml | 5 | api_key = "YOUR_API_KEY" # Your API key | CODE |
| HIGH | config/config.example.toml | 46 | api_key = "YOUR_API_KEY" # Your API key for vision model | CODE |
| HIGH | config/config.example-model-google.toml | 5 | api_key = "YOUR_API_KEY" # Your API key | CODE |
| HIGH | config/config.example-model-google.toml | 14 | api_key = "YOUR_API_KEY" # Your API key for vision model | CODE |
| HIGH | config/config.example-model-anthropic.toml | 5 | api_key = "YOUR_API_KEY" # Your API key | CODE |
| HIGH | config/config.example-model-anthropic.toml | 14 | api_key = "YOUR_API_KEY" # Your API key for vision model | CODE |
| HIGH | config/config.example-model-azure.toml | 6 | api_key = "YOUR_API_KEY" # Your API key | CODE |
| HIGH | config/config.example-model-azure.toml | 16 | api_key = "YOUR_API_KEY" # Your API key for vision model | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/llm.py | 387 | # Check if the model supports images | COMMENT |
| LOW | app/llm.py | 400 | # Check if token limits are exceeded | COMMENT |
| LOW | app/llm.py | 680 | # Check if the model supports images | COMMENT |
| LOW | app/llm.py | 701 | # Check if token limits are exceeded | COMMENT |
| LOW | app/llm.py | 736 | # Check if response is valid | COMMENT |
| LOW | app/agent/toolcall.py | 60 | # Check if this is a RetryError containing TokenLimitExceeded | COMMENT |
| LOW | app/agent/toolcall.py | 194 | # Check if result is a ToolResult with base64_image | COMMENT |
| LOW | app/agent/mcp.py | 78 | # Set available_tools to our MCP instance | COMMENT |
| LOW | app/sandbox/core/sandbox.py | 189 | # Read file content from tar stream | COMMENT |
| LOW | app/sandbox/core/sandbox.py | 224 | # Write file | COMMENT |
| LOW | app/daytona/sandbox.py | 53 | # Check if sandbox needs to be started | COMMENT |
| LOW | app/tool/str_replace_editor.py | 170 | # Check if path is absolute | COMMENT |
| LOW | app/tool/str_replace_editor.py | 181 | # Check if path is a directory | COMMENT |
| LOW | app/tool/str_replace_editor.py | 188 | # Check if file exists for create command | COMMENT |
| LOW | app/tool/str_replace_editor.py | 241 | # Read file content | COMMENT |
| LOW | app/tool/str_replace_editor.py | 292 | # Read file content and expand tabs | COMMENT |
| LOW | app/tool/str_replace_editor.py | 297 | # Check if old_str is unique in the file | COMMENT |
| LOW⚡ | app/tool/sandbox/sb_shell_tool.py | 160 | # Check if tmux session already exists | COMMENT |
| LOW⚡ | app/tool/sandbox/sb_shell_tool.py | 303 | # Check if session exists | COMMENT |
| LOW | app/tool/sandbox/sb_shell_tool.py | 188 | # Check if session still exists (command might have exited) | COMMENT |
| LOW | app/tool/sandbox/sb_shell_tool.py | 265 | # Check if session exists | COMMENT |
| LOW | app/tool/sandbox/sb_files_tool.py | 224 | # Write the file content | COMMENT |
| LOW | app/tool/sandbox/sb_files_tool.py | 230 | # Check if index.html was created and add 8080 server info (only in root workspace) | COMMENT |
| LOW | app/tool/sandbox/sb_files_tool.py | 317 | # Check if index.html was rewritten and add 8080 server info (only in root workspace) | COMMENT |
| LOW | app/flow/planning.py | 73 | # Set executor_keys to all agent keys if not specified | COMMENT |
| LOW | app/flow/planning.py | 127 | # Check if agent wants to terminate | COMMENT |
| LOW | tests/sandbox/test_sandbox.py | 79 | # Write files | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | app/tool/sandbox/sb_shell_tool.py | 162 | f"tmux has-session -t {session_name} 2>/dev/null || echo 'not_exists'" | CODE |
| HIGH⚡ | app/tool/sandbox/sb_shell_tool.py | 305 | f"tmux has-session -t {session_name} 2>/dev/null || echo 'not_exists'" | CODE |
| HIGH | app/tool/sandbox/sb_shell_tool.py | 190 | f"tmux has-session -t {session_name} 2>/dev/null || echo 'ended'" | CODE |
| HIGH | app/tool/sandbox/sb_shell_tool.py | 267 | f"tmux has-session -t {session_name} 2>/dev/null || echo 'not_exists'" | CODE |
| HIGH | app/tool/sandbox/sb_shell_tool.py | 329 | "tmux list-sessions 2>/dev/null || echo 'No sessions'" | CODE |
| HIGH | app/tool/sandbox/sb_shell_tool.py | 417 | await self._execute_raw_command("tmux kill-server 2>/dev/null || true") | CODE |
| HIGH | tests/sandbox/test_sandbox.py | 115 | await sandbox.terminal.run_command("apt update && apt install curl -y") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/mcp/server.py | 41 | # Define the async function to be registered | COMMENT |
| MEDIUM | app/daytona/sandbox.py | 139 | # Create the sandbox | COMMENT |
| MEDIUM | app/tool/planning.py | 144 | # Create a new plan with initialized step statuses | COMMENT |
| MEDIUM | app/tool/str_replace_editor.py | 325 | # Create a snippet of the edited section | COMMENT |
| MEDIUM | app/tool/str_replace_editor.py | 369 | # Create a snippet for preview | COMMENT |
| MEDIUM⚡ | app/tool/search/bing_search.py | 115 | # Create a SearchItem object | COMMENT |
| MEDIUM⚡ | app/tool/sandbox/sb_shell_tool.py | 167 | # Create a new tmux session | COMMENT |
| MEDIUM | app/flow/planning.py | 162 | # Create a system message for plan creation | COMMENT |
| MEDIUM | app/flow/planning.py | 165 | # Create a user message with the request | COMMENT |
| MEDIUM | app/flow/planning.py | 283 | # Create a prompt for the agent to execute the current step | COMMENT |
| MEDIUM | app/flow/planning.py | 410 | # Create a summary using the flow's LLM directly | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/agent/__init__.py | 1 | CODE | |
| LOW | app/agent/__init__.py | 2 | CODE | |
| LOW | app/agent/__init__.py | 3 | CODE | |
| LOW | app/agent/__init__.py | 4 | CODE | |
| LOW | app/agent/__init__.py | 5 | CODE | |
| LOW | app/agent/__init__.py | 6 | CODE | |
| LOW | app/agent/browser.py | 13 | CODE | |
| LOW | app/sandbox/__init__.py | 7 | CODE | |
| LOW | app/sandbox/__init__.py | 7 | CODE | |
| LOW | app/sandbox/__init__.py | 7 | CODE | |
| LOW | app/sandbox/__init__.py | 12 | CODE | |
| LOW | app/sandbox/__init__.py | 12 | CODE | |
| LOW | app/sandbox/__init__.py | 12 | CODE | |
| LOW | app/sandbox/__init__.py | 17 | CODE | |
| LOW | app/sandbox/__init__.py | 18 | CODE | |
| LOW | app/tool/__init__.py | 1 | CODE | |
| LOW | app/tool/__init__.py | 2 | CODE | |
| LOW | app/tool/__init__.py | 3 | CODE | |
| LOW | app/tool/__init__.py | 4 | CODE | |
| LOW | app/tool/__init__.py | 5 | CODE | |
| LOW | app/tool/__init__.py | 6 | CODE | |
| LOW | app/tool/__init__.py | 7 | CODE | |
| LOW | app/tool/__init__.py | 8 | CODE | |
| LOW | app/tool/__init__.py | 9 | CODE | |
| LOW | app/tool/chart_visualization/__init__.py | 1 | CODE | |
| LOW | app/tool/chart_visualization/__init__.py | 2 | CODE | |
| LOW | app/tool/chart_visualization/__init__.py | 3 | CODE | |
| LOW | app/tool/search/__init__.py | 1 | CODE | |
| LOW | app/tool/search/__init__.py | 2 | CODE | |
| LOW | app/tool/search/__init__.py | 3 | CODE | |
| LOW | app/tool/search/__init__.py | 4 | CODE | |
| LOW | app/tool/search/__init__.py | 5 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | app/llm.py | 95 | def _calculate_high_detail_tokens(self, width: int, height: int) -> int: | CODE |
| LOW | app/bedrock.py | 60 | def _convert_openai_tools_to_bedrock_format(self, tools): | CODE |
| LOW | app/bedrock.py | 86 | def _convert_openai_messages_to_bedrock_format(self, messages): | CODE |
| LOW | app/bedrock.py | 134 | def _convert_bedrock_response_to_openai_format(self, bedrock_response): | CODE |
| LOW⚡ | app/daytona/sandbox.py | 80 | def start_supervisord_session(sandbox: Sandbox): | CODE |
| LOW | app/tool/mcp.py | 118 | async def _initialize_and_list_tools( | CODE |
| LOW⚡ | app/tool/file_operators.py | 102 | async def _ensure_sandbox_initialized(self): | CODE |
| LOW | app/tool/web_search.py | 329 | async def _fetch_content_for_results( | CODE |
| LOW | app/tool/web_search.py | 352 | async def _fetch_single_result_content(self, result: SearchResult) -> SearchResult: | CODE |
| LOW | app/tool/web_search.py | 390 | async def _perform_search_with_engine( | CODE |
| LOW | app/flow/planning.py | 348 | def _generate_plan_text_from_storage(self) -> str: | CODE |
| LOW | tests/tools/test_browser_use_mcp.py | 67 | async def test_mcp_preserves_server_instructions_and_native_tool_names(): | CODE |
| LOW | tests/tools/test_browser_use_mcp.py | 78 | async def test_mcp_forwards_text_and_screenshot_content(): | CODE |
| LOW | tests/tools/test_browser_use_mcp.py | 101 | async def test_tool_images_follow_the_tool_result_as_user_messages(): | CODE |
| LOW | tests/tools/test_browser_use_mcp.py | 120 | async def test_manus_enables_cli_mcp_by_default(monkeypatch): | CODE |
| LOW | tests/sandbox/test_sandbox_manager.py | 86 | async def test_get_nonexistent_sandbox(manager): | CODE |
| LOW | tests/sandbox/test_sandbox_manager.py | 104 | async def test_idle_sandbox_cleanup(manager): | CODE |
| LOW | tests/sandbox/test_docker_terminal.py | 48 | async def test_basic_command_execution(self, terminal): | CODE |
| LOW | tests/sandbox/test_docker_terminal.py | 54 | async def test_environment_variables(self, terminal): | CODE |
| LOW | tests/sandbox/test_sandbox.py | 31 | async def test_sandbox_working_directory(sandbox): | CODE |
| LOW | tests/sandbox/test_sandbox.py | 38 | async def test_sandbox_file_operations(sandbox): | CODE |
| LOW | tests/sandbox/test_sandbox.py | 50 | async def test_sandbox_python_execution(sandbox): | CODE |
| LOW | tests/sandbox/test_sandbox.py | 70 | async def test_sandbox_file_persistence(sandbox): | STRING |
| LOW | tests/sandbox/test_sandbox.py | 90 | async def test_sandbox_python_environment(sandbox): | CODE |
| LOW | tests/sandbox/test_sandbox.py | 109 | async def test_sandbox_network_access(sandbox): | STRING |
| LOW | tests/sandbox/test_sandbox.py | 141 | async def test_sandbox_error_handling(): | CODE |
| LOW | tests/sandbox/test_client.py | 45 | async def test_local_command_execution(local_client: LocalSandboxClient): | CODE |
| LOW | tests/sandbox/test_client.py | 57 | async def test_local_file_operations(local_client: LocalSandboxClient, temp_dir: Path): | CODE |
| LOW | tests/sandbox/test_client.py | 81 | async def test_local_volume_binding(local_client: LocalSandboxClient, temp_dir: Path): | CODE |
| LOW | tests/sandbox/test_client.py | 96 | async def test_local_error_handling(local_client: LocalSandboxClient): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/llm.py | 118 | CODE | |
| LOW | app/llm.py | 267 | CODE | |
| LOW | app/llm.py | 361 | CODE | |
| LOW | app/llm.py | 488 | CODE | |
| LOW | app/llm.py | 644 | CODE | |
| LOW | app/bedrock.py | 86 | CODE | |
| LOW | app/agent/sandbox_agent.py | 113 | CODE | |
| LOW | app/agent/manus.py | 83 | CODE | |
| LOW | app/mcp/server.py | 98 | CODE | |
| LOW | app/sandbox/core/terminal.py | 75 | CODE | |
| LOW | app/sandbox/core/terminal.py | 139 | CODE | |
| LOW | app/sandbox/core/terminal.py | 162 | CODE | |
| LOW | app/sandbox/core/sandbox.py | 255 | CODE | |
| LOW | app/sandbox/core/sandbox.py | 315 | CODE | |
| LOW | app/sandbox/core/manager.py | 244 | CODE | |
| LOW | app/tool/mcp.py | 184 | CODE | |
| LOW | app/tool/planning.py | 72 | CODE | |
| LOW | app/tool/crawl4ai.py | 65 | CODE | |
| LOW | app/tool/str_replace_editor.py | 114 | CODE | |
| LOW | app/tool/computer_use_tool.py | 225 | CODE | |
| LOW | app/tool/search/bing_search.py | 77 | CODE | |
| LOW | app/tool/search/baidu_search.py | 9 | CODE | |
| LOW | app/tool/search/duckduckgo_search.py | 9 | CODE | |
| LOW | app/tool/sandbox/sb_shell_tool.py | 138 | CODE | |
| LOW | app/tool/sandbox/sb_shell_tool.py | 322 | CODE | |
| LOW | app/tool/sandbox/sb_shell_tool.py | 357 | CODE | |
| LOW | app/tool/sandbox/sb_vision_tool.py | 107 | CODE | |
| LOW | app/tool/sandbox/sb_browser_tool.py | 138 | CODE | |
| LOW | app/tool/sandbox/sb_browser_tool.py | 195 | CODE | |
| LOW | app/tool/sandbox/sb_browser_tool.py | 278 | CODE | |
| LOW | app/tool/sandbox/sb_files_tool.py | 137 | CODE | |
| LOW | app/flow/planning.py | 136 | CODE | |
| LOW | app/flow/planning.py | 213 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/tool/base.py | 21 | COMMENT | |
| LOW | app/tool/base.py | 101 | underscore_attrs_are_private = False | COMMENT |
| LOW | app/tool/chart_visualization/tsconfig.json | 1 | { | COMMENT |
| LOW | app/tool/chart_visualization/tsconfig.json | 21 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when t | COMMENT |
| LOW | app/tool/chart_visualization/tsconfig.json | 41 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Require | COMMENT |
| LOW | app/tool/chart_visualization/tsconfig.json | 61 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript | COMMENT |
| LOW | app/tool/chart_visualization/tsconfig.json | 81 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables | COMMENT |
| LOW | config/config.example-daytona.toml | 1 | # Global LLM configuration | COMMENT |
| LOW | config/config.example-daytona.toml | 21 | # api_key = "AZURE API KEY" | COMMENT |
| LOW | config/config.example-daytona.toml | 41 | COMMENT | |
| LOW | config/config.example-daytona.toml | 61 | # Connect to a browser instance via WebSocket | COMMENT |
| LOW | config/config.example-daytona.toml | 81 | #max_retries = 3 | COMMENT |
| LOW | config/config.example-daytona.toml | 101 | #daytona_server_url = "https://app.daytona.io/api" | COMMENT |
| LOW | config/config.example.toml | 1 | # Global LLM configuration | COMMENT |
| LOW | config/config.example.toml | 21 | # api_key = "AZURE API KEY" | COMMENT |
| LOW | config/config.example.toml | 41 | COMMENT | |
| LOW | config/config.example.toml | 61 | #headless = false | COMMENT |
| LOW | config/config.example.toml | 81 | # [search] | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | app/llm.py | 97 | # Step 1: Scale to fit in MAX_SIZE x MAX_SIZE square | COMMENT |
| LOW⚡ | app/llm.py | 103 | # Step 2: Scale so shortest side is HIGH_DETAIL_TARGET_SHORT_SIDE | COMMENT |
| LOW⚡ | app/llm.py | 108 | # Step 3: Count number of 512px tiles | COMMENT |
| LOW⚡ | app/llm.py | 113 | # Step 4: Calculate final token count | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | app/llm.py | 97 | # Step 1: Scale to fit in MAX_SIZE x MAX_SIZE square | COMMENT |
| LOW⚡ | app/llm.py | 103 | # Step 2: Scale so shortest side is HIGH_DETAIL_TARGET_SHORT_SIDE | COMMENT |
| LOW⚡ | app/llm.py | 108 | # Step 3: Count number of 512px tiles | COMMENT |
| LOW⚡ | app/llm.py | 113 | # Step 4: Calculate final token count | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/llm.py | 238 | def update_token_count(self, input_tokens: int, completion_tokens: int = 0) -> None: | CODE |
| LOW | app/agent/__init__.py | 9 | __all__ = [ | CODE |
| LOW | app/sandbox/__init__.py | 21 | __all__ = [ | CODE |
| LOW | app/tool/__init__.py | 12 | __all__ = [ | CODE |
| LOW | app/tool/chart_visualization/__init__.py | 6 | __all__ = ["DataVisualization", "VisualizationPrepare", "NormalPythonExecute"] | CODE |
| LOW | app/tool/search/__init__.py | 8 | __all__ = [ | CODE |
| LOW | protocol/a2a/app/agent_executor.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | protocol/a2a/app/main.py | 24 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | app/sandbox/core/terminal.py | 204 | CODE | |
| LOW | app/tool/computer_use_tool.py | 225 | CODE | |
| LOW | app/tool/sandbox/sb_browser_tool.py | 278 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | app/agent/toolcall.py | 175 | """Execute a single tool call with robust error handling""" | STRING |
| LOW | app/tool/sandbox/sb_shell_tool.py | 237 | # For non-blocking, just return immediately | COMMENT |