SWE-agent takes a GitHub issue and tries to automatically fix it, using your LM of choice. It can also be employed for offensive cybersecurity or competitive coding challenges. [NeurIPS 2024]
This report summarizes scanner evidence for SWE-agent/SWE-agent, a Python project with 20,518 GitHub stars. SynthScan examined 26,807 lines of code across 287 source files, recording 334 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 18.7 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 199 finding(s).
Are imports declared and package/API names verified? 50 finding(s).
Are wrappers, guards, and repeated structures necessary? 206 finding(s).
Which changes need focused human review? 334 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 334 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/web_browser/lib/web_browser_utils.py | 98 | def _print_response_with_metadata(response): | CODE |
| LOW | tools/web_browser/lib/web_browser_utils.py | 120 | def _autosave_screenshot_from_response(response, mode): | CODE |
| LOW | tests/test_run_batch.py | 49 | def test_empty_instances_simple(test_data_sources_path: Path, tmp_path: Path): | CODE |
| LOW | tests/test_run_batch.py | 69 | def test_empty_instances_expert(test_data_sources_path: Path, tmp_path: Path): | CODE |
| LOW | tests/test_run_batch.py | 93 | # def test_run_batch_swe_bench_instances(tmp_path: Path): | COMMENT |
| LOW | tests/test_parsing.py | 29 | def test_thought_action_parser(): | CODE |
| LOW | tests/test_parsing.py | 39 | def test_xml_thought_action_parser(): | CODE |
| LOW | tests/test_parsing.py | 83 | def test_function_calling_parser(): | CODE |
| LOW | tests/test_parsing.py | 128 | def test_function_calling_parser_error_message(): | CODE |
| LOW | tests/test_utils.py | 9 | def test_convert_path_to_abspath(): | CODE |
| LOW | tests/test_utils.py | 14 | def test_convert_paths_to_abspath(): | CODE |
| LOW | tests/conftest.py | 40 | def test_ctf_trajectories_path(test_data_path) -> Path: | CODE |
| LOW | tests/conftest.py | 123 | def swe_agent_test_repo_clone(tmp_path): | CODE |
| LOW | tests/test_batch_instance.py | 11 | def test_simple_batch_from_swe_bench_to_full_batch_instance(test_data_sources_path): | CODE |
| LOW | tests/test_batch_instance.py | 26 | def test_simple_batch_treats_repo_names_containing_github_as_existing_repos(repo_name): | CODE |
| LOW | tests/test_batch_instance.py | 38 | def test_simple_batch_treats_github_urls_as_github_repos(): | CODE |
| LOW | tests/test_batch_instance.py | 59 | def test_get_swe_bench_instances(): | CODE |
| LOW | tests/test_agent.py | 31 | def thought_action_agent_config(): | CODE |
| LOW | tests/test_agent.py | 41 | def function_calling_agent_config(): | CODE |
| LOW | tests/test_agent.py | 149 | def test_run_step_by_step_checking_history(dummy_env: SWEEnv, default_agent: DefaultAgent, tmp_path): | CODE |
| LOW | tests/test_agent.py | 211 | def test_show_no_output_template(dummy_env: SWEEnv, default_agent: DefaultAgent, tmp_path): | CODE |
| LOW | tests/test_agent.py | 224 | def test_successful_submission(dummy_env: SWEEnv, default_agent: DefaultAgent, tmp_path): | CODE |
| LOW | tests/test_swesmith.py | 25 | def test_with_mirror_and_token(self): | CODE |
| LOW | tests/test_swesmith.py | 38 | def test_with_mirror_no_token(self): | CODE |
| LOW | tests/test_swesmith.py | 116 | def test_other_http_error_raises(self, mock_urlopen): | CODE |
| LOW | tests/test_swesmith.py | 191 | def test_private_repo_no_token_raises(self, mock_private, tmp_path): | CODE |
| LOW | tests/test_run_hooks.py | 16 | def open_pr_hook_init_for_sop(): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 34 | def test_should_open_pr_fail_submission(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 40 | def test_should_open_pr_fail_exit(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 46 | def test_should_open_pr_fail_invalid_url(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 52 | def test_should_open_pr_fail_closed(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 58 | def test_should_open_pr_fail_assigned(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 64 | def test_should_open_pr_fail_locked(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 70 | def test_should_open_pr_fail_has_pr(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 76 | def test_should_open_pr_success_has_pr_override(open_pr_hook_init_for_sop, agent_run_result): | CODE |
| LOW⚡ | tests/test_run_hooks.py | 83 | def test_save_apply_patch_hook_concurrent_workers_save_to_correct_dirs(tmp_path): | CODE |
| LOW | tests/test_run_hooks.py | 141 | def test_swe_bench_evaluate_subset_matches_sb_cli(tmp_path, subset, expected): | CODE |
| LOW | tests/test_run_hooks.py | 156 | def test_swe_bench_evaluate_unsupported_subset_raises_value_error(tmp_path, subset): | CODE |
| LOW | tests/test_run.py | 6 | def test_run_cli_no_arg_error(): | CODE |
| LOW | tests/test_run.py | 30 | def test_run_cli_subcommand_help(): | CODE |
| LOW | tests/test_env.py | 21 | def test_init_swe_env_conservative_clone(test_env_args): | CODE |
| LOW⚡ | tests/test_env.py | 51 | def test_env_communicate_with_handling(test_env_args): | CODE |
| LOW⚡ | tests/test_env.py | 57 | def test_env_communicate_with_handling_timeout(test_env_args): | CODE |
| LOW⚡ | tests/test_env.py | 64 | def test_env_interrupt_session(test_env_args): | CODE |
| LOW | tests/test_run_single.py | 24 | def test_run_single_raises_exception(): | CODE |
| LOW | tests/test_run_single.py | 33 | def agent_config_with_commands(): | CODE |
| LOW | tests/test_run_single.py | 84 | def test_run_ies_repo_ps_matrix( | CODE |
| LOW | tests/utils.py | 7 | def make_python_tool_importable(file_path: str | Path, module_name: str | None = None) -> None: | CODE |
| LOW | tests/test_tools_command_parsing.py | 6 | def test_command_parsing_formats(): | CODE |
| LOW | tests/test_tools_command_parsing.py | 82 | def test_argument_name_patterns(): | CODE |
| LOW | tests/test_tools_command_parsing.py | 107 | def test_signature_argument_consistency(): | CODE |
| LOW | tests/test_tools_command_parsing.py | 131 | def test_function_calling_tool_generation(): | CODE |
| LOW | tests/test_tools_command_parsing.py | 176 | def test_custom_argument_format(): | CODE |
| LOW | tests/test_models.py | 41 | def test_user_agent_header_default(): | CODE |
| LOW | tests/test_models.py | 63 | def test_user_agent_header_preserves_existing(): | CODE |
| LOW | tests/test_models.py | 86 | def test_user_agent_header_with_other_extra_headers(): | CODE |
| LOW | tests/test_env_utils.py | 19 | def test_format_trajectory_markdown(test_trajectory): | CODE |
| LOW | tests/test_env_utils.py | 25 | def test_remove_triple_backticks(): | CODE |
| LOW | tests/test_env_utils.py | 49 | def test_parse_gh_repo_url_fails(): | CODE |
| LOW | tests/test_env_utils.py | 66 | def test_parse_gh_issue_url_fails(): | CODE |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/windowed/lib/windowed_file.py | 210 | print(f"Error: Text not found: {search}") | CODE |
| MEDIUM | tools/windowed/lib/windowed_file.py | 244 | print(f"Error: Text not found: {search}") | CODE |
| LOW | tools/web_browser/lib/web_browser_utils.py | 61 | except Exception as e: | CODE |
| MEDIUM | tools/web_browser/lib/web_browser_utils.py | 58 | def wrapper(*args, **kwargs): | CODE |
| LOW⚡ | tools/web_browser/lib/browser_manager.py | 230 | except Exception: | CODE |
| LOW⚡ | tools/web_browser/lib/browser_manager.py | 240 | except Exception: | CODE |
| LOW⚡ | tools/web_browser/lib/browser_manager.py | 247 | except Exception: | CODE |
| LOW | docs/usage/memory_sentinel.py | 134 | except Exception as e: | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 334 | print(f"Error: {type(e).__name__}: {e}")' --new_str 'if __name__ == "__main__": | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 340 | print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 347 | print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 354 | print(f"Error: {type(e).__name__}: {e}")' | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 370 | 13 print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 377 | 20 print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 384 | 27 print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 516 | + print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 523 | + print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM⚡ | docs/usage/hello_world_output.txt | 530 | + print(f"Error: {type(e).__name__}: {e}") | CODE |
| MEDIUM | docs/usage/hello_world_output.txt | 188 | print(f"Error: {type(e).__name__}: {e}")' | CODE |
| LOW⚡ | docs/usage/hello_world_output.txt | 333 | except Exception as e: | CODE |
| LOW⚡ | docs/usage/hello_world_output.txt | 339 | except Exception as e: | CODE |
| LOW⚡ | docs/usage/hello_world_output.txt | 346 | except Exception as e: | CODE |
| LOW⚡ | docs/usage/hello_world_output.txt | 353 | except Exception as e: | CODE |
| LOW | docs/usage/hello_world_output.txt | 187 | except Exception as e: | CODE |
| LOW | sweagent/__init__.py | 57 | except Exception: | CODE |
| LOW | sweagent/__init__.py | 67 | except Exception: | CODE |
| LOW | sweagent/tools/tools.py | 283 | except Exception: | CODE |
| LOW | sweagent/inspector/static.py | 43 | except Exception as e: | STRING |
| LOW | sweagent/inspector/static.py | 82 | except Exception: | CODE |
| MEDIUM | sweagent/inspector/static.py | 49 | def _load_file(file_name, gold_patches, test_patches): | CODE |
| LOW | sweagent/utils/config.py | 26 | except Exception: | CODE |
| LOW | sweagent/agent/models.py | 745 | except Exception as e: | CODE |
| LOW | sweagent/agent/agents.py | 345 | except Exception as e: | CODE |
| LOW | sweagent/agent/agents.py | 371 | except Exception as e: | CODE |
| LOW | sweagent/agent/agents.py | 860 | except Exception as e: | CODE |
| LOW | sweagent/agent/agents.py | 891 | except Exception as e: | CODE |
| LOW | sweagent/agent/agents.py | 978 | except Exception as f: | CODE |
| LOW | sweagent/agent/agents.py | 1053 | except Exception as e: | CODE |
| LOW | sweagent/agent/agents.py | 1205 | except Exception as e: | CODE |
| LOW | sweagent/agent/problem_statement.py | 208 | except Exception as e: | CODE |
| LOW | sweagent/agent/problem_statement.py | 272 | except Exception as e: | CODE |
| LOW | sweagent/agent/reviewer.py | 256 | except Exception as e: | CODE |
| LOW | sweagent/agent/reviewer.py | 303 | except Exception as e: | CODE |
| LOW | sweagent/agent/reviewer.py | 342 | except Exception as e: | CODE |
| LOW | sweagent/agent/reviewer.py | 362 | except Exception as e: | CODE |
| LOW | sweagent/agent/reviewer.py | 430 | except Exception as e: | CODE |
| LOW | sweagent/run/quick_stats.py | 46 | except Exception as e: | CODE |
| LOW | sweagent/run/remove_unfinished.py | 30 | except Exception as e: | CODE |
| LOW | sweagent/run/run_batch.py | 319 | except Exception as e: | CODE |
| LOW | sweagent/run/run_batch.py | 365 | except Exception: | CODE |
| LOW | sweagent/run/run_batch.py | 402 | except Exception as e: | CODE |
| MEDIUM | sweagent/run/run_batch.py | 189 | def _model_id(self) -> str: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/windowed/lib/windowed_file.py | 8 | except ImportError: | CODE |
| HIGH | tools/windowed/lib/flake8_utils.py | 13 | except ImportError: | CODE |
| HIGH | tools/web_browser/lib/browser_manager.py | 247 | except Exception: | CODE |
| HIGH | tools/web_browser/lib/browser_manager.py | 230 | except Exception: | CODE |
| HIGH | docs/usage/memory_sentinel.py | 65 | except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess): | CODE |
| HIGH | sweagent/agent/agents.py | 1148 | except _RetryWithoutOutput: | CODE |
| HIGH | sweagent/agent/agents.py | 1097 | except (IndexError, AttributeError): | CODE |
| HIGH | sweagent/run/inspector_cli.py | 322 | except subprocess.CalledProcessError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/windowed/lib/windowed_file.py | 1 | CODE | |
| LOW | tools/windowed/lib/windowed_file.py | 2 | CODE | |
| LOW | tools/windowed/lib/windowed_file.py | 4 | CODE | |
| LOW | tools/registry/lib/registry.py | 4 | CODE | |
| LOW | tools/registry/lib/registry.py | 4 | CODE | |
| LOW | tools/registry/lib/registry.py | 4 | CODE | |
| LOW | tools/web_browser/lib/web_browser_utils.py | 1 | CODE | |
| LOW | tools/web_browser/lib/browser_manager.py | 1 | CODE | |
| LOW | tools/web_browser/lib/web_browser_config.py | 1 | CODE | |
| LOW | tools/web_browser/lib/web_browser_config.py | 4 | CODE | |
| LOW | tests/test_parsing.py | 1 | CODE | |
| LOW | tests/test_utils.py | 1 | CODE | |
| LOW | tests/conftest.py | 1 | CODE | |
| LOW | tests/test_packaging.py | 1 | CODE | |
| LOW | tests/test_swesmith.py | 1 | CODE | |
| LOW | tests/test_run.py | 1 | CODE | |
| LOW | tests/test_env.py | 1 | CODE | |
| LOW | tests/test_run_single.py | 1 | CODE | |
| LOW | tests/test_run_replay.py | 1 | CODE | |
| LOW | tests/test_models.py | 1 | CODE | |
| LOW | tests/test_env_utils.py | 1 | CODE | |
| LOW | tests/test_quick_stats.py | 1 | CODE | |
| LOW | tests/tools/test_split_string.py | 1 | CODE | |
| LOW | tests/test_commands/_interactive_dummy.py | 2 | CODE | |
| LOW | tests/test_data/data_sources/ctf/crypto/Katy/solver.py | 1 | CODE | |
| LOW | sweagent/__init__.py | 1 | CODE | |
| LOW | sweagent/types.py | 7 | CODE | |
| LOW | sweagent/tools/bundle.py | 1 | CODE | |
| LOW | sweagent/tools/commands.py | 19 | CODE | |
| LOW | sweagent/inspector/server.py | 1 | CODE | |
| LOW | sweagent/inspector/static.py | 1 | CODE | |
| LOW | sweagent/utils/config.py | 1 | CODE | |
| LOW | sweagent/utils/log.py | 1 | CODE | |
| LOW | sweagent/agent/history_processors.py | 1 | CODE | |
| LOW | sweagent/agent/models.py | 1 | CODE | |
| LOW | sweagent/agent/agents.py | 1 | CODE | |
| LOW | sweagent/agent/reviewer.py | 5 | CODE | |
| LOW | sweagent/agent/hooks/abstract.py | 7 | CODE | |
| LOW | sweagent/run/run_traj_to_demo.py | 6 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sweagent/agent/problem_statement.py | 0 | convenience discriminator for (de)serialization/cli. do not change. | STRING |
| HIGH | sweagent/environment/repo.py | 0 | convenience discriminator for (de)serialization/cli. do not change. | STRING |
| HIGH | sweagent/run/batch_instances.py | 0 | convenience discriminator for (de)serialization/cli. do not change. | STRING |
| HIGH | sweagent/run/run_replay.py | 0 | path to a .env file to load environment variables from. | STRING |
| HIGH | sweagent/run/run_single.py | 0 | path to a .env file to load environment variables from. | STRING |
| HIGH | sweagent/run/run_batch.py | 0 | path to a .env file to load environment variables from. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 84 | \ return fi # Check if the file already exists if [ -e \"\ | CODE |
| LOW⚡ | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 94 | code: 'submit() { cd $ROOT # Check if the patch file exists and is non-empty if | CODE |
| LOW⚡ | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 144 | code: 'search_file() { # Check if the first argument is provided if [ | CODE |
| LOW⚡ | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 153 | file is open fi local file="$CURRENT_FILE" # Set file to the | CODE |
| LOW⚡ | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 156 | -nH -- "$search_term" "$file") # Check if no matches were found if [ | CODE |
| LOW | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 226 | "$CURRENT_FILE")_backup" # Read the file line by line into an array mapfile | CODE |
| LOW⚡ | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 85 | \ return fi # Check if the file already exists if [ -e \"\ | CODE |
| LOW⚡ | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 95 | code: 'submit() { cd $ROOT # Check if the patch file exists and is non-empty if | CODE |
| LOW⚡ | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 145 | code: 'search_file() { # Check if the first argument is provided if [ | CODE |
| LOW⚡ | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 154 | file is open fi local file="$CURRENT_FILE" # Set file to the | CODE |
| LOW⚡ | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 157 | -nH -- "$search_term" "$file") # Check if no matches were found if [ | CODE |
| LOW | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 227 | "$CURRENT_FILE")_backup" # Read the file line by line into an array mapfile | CODE |
| LOW | sweagent/tools/parsing.py | 155 | # Check if it's not nested within another block | COMMENT |
| LOW | sweagent/tools/parsing.py | 293 | # Check if all required arguments are there | STRING |
| LOW | sweagent/tools/parsing.py | 300 | # Check if all arguments are valid | STRING |
| LOW | sweagent/tools/parsing.py | 490 | # Check if required keys are present | COMMENT |
| LOW | sweagent/tools/parsing.py | 503 | # Check if required keys are present in 'command' object | COMMENT |
| LOW | sweagent/run/run_batch.py | 383 | # Check if there's an existing trajectory for this instance | COMMENT |
| LOW | sweagent/run/hooks/open_pr.py | 231 | # Check if adding this step would exceed the character limit | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/bash_only.yaml | 130 | ### Create a new file: | COMMENT |
| MEDIUM⚡ | tests/test_quick_stats.py | 19 | # Create a sample .traj file with required structure | COMMENT |
| MEDIUM⚡ | tests/test_quick_stats.py | 24 | # Create a minimal valid .traj file | COMMENT |
| MEDIUM⚡ | …_from_url__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 86 | \ return fi # Create the file an empty new line printf \"\\\ | CODE |
| MEDIUM⚡ | …__default__t-0.00__p-0.95__c-3.00__install-1/args.yaml | 87 | \ return fi # Create the file an empty new line printf \"\\\ | CODE |
| MEDIUM | sweagent/environment/swe_env.py | 62 | """This class represents the environment in which we solve the tasks. | STRING |
| MEDIUM | sweagent/run/rich_test.py | 39 | # Create a spinner for this task | COMMENT |
| MEDIUM | sweagent/run/common.py | 196 | """This class implements a basic CLI for SWE-agent. It is based on pydantic-settings, i.e., takes | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/web_browser/lib/browser_manager.py | 216 | CODE | |
| LOW | docs/usage/memory_sentinel.py | 95 | CODE | |
| LOW | sweagent/tools/parsing.py | 469 | CODE | |
| LOW | sweagent/tools/utils.py | 8 | CODE | |
| LOW | sweagent/tools/utils.py | 46 | CODE | |
| LOW | sweagent/inspector/server.py | 295 | CODE | |
| LOW | sweagent/inspector/server.py | 254 | CODE | |
| LOW | sweagent/inspector/static.py | 49 | CODE | |
| LOW | sweagent/inspector/static.py | 96 | CODE | |
| LOW | sweagent/utils/log.py | 57 | CODE | |
| LOW | sweagent/utils/log.py | 93 | CODE | |
| LOW | sweagent/utils/log.py | 160 | CODE | |
| LOW | sweagent/agent/history_processors.py | 320 | CODE | |
| LOW | sweagent/agent/models.py | 328 | CODE | |
| LOW | sweagent/agent/models.py | 875 | CODE | |
| LOW | sweagent/agent/models.py | 384 | CODE | |
| LOW | sweagent/agent/models.py | 840 | CODE | |
| LOW | sweagent/agent/problem_statement.py | 294 | CODE | |
| LOW | sweagent/agent/reviewer.py | 40 | CODE | |
| LOW | sweagent/run/run.py | 70 | CODE | |
| LOW | sweagent/run/compare_runs.py | 69 | CODE | |
| LOW | sweagent/run/run_batch.py | 268 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | sweagent/tools/tools.py | 250 | # -------------------- | COMMENT |
| MEDIUM | sweagent/tools/tools.py | 315 | # ------------- | COMMENT |
| MEDIUM | sweagent/tools/tools.py | 370 | # ----------------------------- | COMMENT |
| MEDIUM | sweagent/agent/history_processors.py | 20 | # ----------------- | COMMENT |
| MEDIUM | sweagent/agent/history_processors.py | 71 | # ------------------ | COMMENT |
| MEDIUM | sweagent/agent/agents.py | 522 | # ---------- | COMMENT |
| MEDIUM | sweagent/agent/reviewer.py | 579 | # ---------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docs/usage/hello_world_output.txt | 324 | ## Step 5: Think about edge cases and make sure the fix handles them | COMMENT |
| LOW | docs/usage/hello_world_output.txt | 85 | ## Step 1: Find and read code relevant to the PR description | COMMENT |
| LOW | docs/usage/hello_world_output.txt | 172 | ## Step 2: Create a script to reproduce the error | COMMENT |
| LOW | docs/usage/hello_world_output.txt | 232 | ## Step 3: Edit the source code to resolve the issue | COMMENT |
| LOW | docs/usage/hello_world_output.txt | 295 | ## Step 4: Rerun the script to confirm the fix | COMMENT |
| LOW | docs/usage/hello_world_output.txt | 76 | outlined.\n\n## Step 1: Find and read code relevant to the PR description\n\nFirst, let's explore the reposi | CODE |
| LOW | docs/usage/hello_world_output.txt | 159 | Python, function definitions need to end with a colon before the function body. The error message in the PR | CODE |
| LOW | docs/usage/hello_world_output.txt | 221 | definition.\n\n## Step 3: Edit the source code to resolve the issue\n\nNow, let's fix both instances of the | CODE |
| LOW | docs/usage/hello_world_output.txt | 288 | choices=[Choices(finish_reason='tool_calls', index=0, message=Message(content="## Step 4: Rerun the script t | CODE |
| LOW | docs/usage/hello_world_output.txt | 309 | zero. This confirms that our fix for the syntax error is working correctly.\n\n## Step 5: Think about edge c | CODE |
| LOW | docs/usage/adding_custom_tools.md | 27 | ## Step 1: Write the Command Script | COMMENT |
| LOW | docs/usage/adding_custom_tools.md | 59 | ## Step 2: Define the Tool Configuration | COMMENT |
| LOW | docs/usage/adding_custom_tools.md | 97 | ## Step 3: Tell the agent to use the new tool | COMMENT |
| LOW | docs/usage/adding_custom_tools.md | 119 | ## Step 4: Let's test it | COMMENT |
| LOW | sweagent/run/batch_instances.py | 276 | # IMPORTANT: Do not call this `path`, because then if people do not specify instance.type, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | config/default_backticks.yaml | 2 | # This template is heavily inspired by anthropic's computer use demo, but you can use | COMMENT |
| MEDIUM | config/default.yaml | 2 | # This template is heavily inspired by anthropic's computer use demo, but you can use | COMMENT |
| MEDIUM | config/demo/no_instructions.yaml | 2 | # This template is heavily inspired by anthropic's computer use demo, but you can use | COMMENT |
| MEDIUM | config/demo/only_bash.yaml | 2 | # This template is heavily inspired by anthropic's computer use demo, but you can use | COMMENT |
| MEDIUM | config/demo/default.yaml | 2 | # This template is heavily inspired by anthropic's computer use demo, but you can use | COMMENT |
| MEDIUM | config/benchmarks/anthropic_filemap_multilingual.yaml | 1 | # This template is heavily inspired by anthropic, but you can use it with any LM. It is almost | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/windowed/lib/windowed_file.py | 177 | def set_window_text(self, new_text: str, *, line_range: Optional[Tuple[int, int]] = None) -> None: | CODE |
| LOW | sweagent/__init__.py | 108 | __all__ = [ | CODE |
| LOW | sweagent/inspector/static.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | sweagent/utils/log.py | 160 | def set_stream_handler_levels(level: int) -> None: | CODE |
| LOW | sweagent/agent/history_processors.py | 38 | def _set_content_text(entry: HistoryItem, text: str) -> None: | CODE |
| LOW | sweagent/agent/history_processors.py | 53 | def _set_cache_control(entry: HistoryItem) -> None: | CODE |
| LOW | sweagent/agent/models.py | 632 | def _update_stats(self, *, input_tokens: int, output_tokens: int, cost: float) -> None: | CODE |
| LOW | sweagent/environment/swe_env.py | 256 | def set_env_variables(self, env_variables: dict[str, str]) -> None: | CODE |
| LOW | sweagent/run/run_single.py | 99 | def set_default_output_dir(self) -> None: | CODE |
| LOW | sweagent/run/run_batch.py | 103 | def set_default_output_dir(self) -> None: | CODE |
| LOW | sweagent/run/inspector_cli.py | 115 | def update_content(self) -> None: | CODE |
| LOW | sweagent/run/_progress.py | 103 | def _update_total_costs(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/test_data/data_sources/debug_20240322.json | 1 | [{"repo": "scikit-learn/scikit-learn", "instance_id": "scikit-learn__scikit-learn-11574", "base_commit": "dd69361a0d9c6c | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_swesmith.py | 87 | assert _is_repo_private("org/repo", "fake-token") is False | CODE |
| LOW | tests/test_swesmith.py | 99 | assert _is_repo_private("org/repo", "fake-token") is True | CODE |
| LOW | tests/test_swesmith.py | 113 | assert _is_repo_private("org/repo", "fake-token") is True | CODE |
| LOW | tests/test_swesmith.py | 128 | _is_repo_private("org/repo", "fake-token") | CODE |
| LOW | tests/test_models.py | 19 | api_key=SecretStr("dummy_key"), | CODE |
| LOW | tests/test_models.py | 46 | api_key=SecretStr("dummy_key"), | CODE |
| LOW | tests/test_models.py | 70 | api_key=SecretStr("dummy_key"), | CODE |
| LOW | tests/test_models.py | 92 | api_key=SecretStr("dummy_key"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mkdocs.yml | 161 | - assets/mkdocstrings.css | COMMENT |
| LOW | mkdocs.yml | 181 | # note: >- | COMMENT |
| LOW | tests/test_run_batch.py | 101 | # "test", | COMMENT |
| LOW | tests/tools/test_default_utils.py | 101 | # cmd = f"{sys.executable} {DEFAULT_TOOLS_BIN}/goto 50" | COMMENT |
| LOW | …test_data/data_sources/ctf/misc/networking_1/README.md | 1 | # Networking 1 | COMMENT |
| LOW | .devcontainer/sample_keys.cfg | 1 | # All keys are commented out by default. Make sure to remove the leading '#' of the relevant lines | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/installation/keys.md | 29 | See the following links for tutorials on obtaining [Anthropic](https://docs.anthropic.com/en/api/getting-started), [Open | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sweagent/agent/agents.py | 856 | submission_command = "git add -A && git diff --cached > /root/model.patch" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sweagent/agent/problem_statement.py | 219 | Download an image from URL and convert it to base64 markdown format. Args: url: The URL of the imag | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/usage/memory_sentinel.py | 13 | Script was generated by Claude 3.7 with the following prompt: | STRING |