Our library for RL environments + evals
This report presents the forensic synthetic code analysis of PrimeIntellect-ai/verifiers, a Python project with 4,569 GitHub stars. SynthScan v2.0 examined 107,897 lines of code across 583 source files, recording 2513 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 31.5 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
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 2513 distinct pattern matches across 21 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 | tests/test_gepa_utils.py | 15 | def test_save_gepa_results_writes_best_system_prompt_verbatim(tmp_path): | CODE |
| LOW | tests/test_gepa_utils.py | 29 | def test_save_gepa_results_handles_none_best_score(tmp_path): | CODE |
| LOW | tests/test_gepa_utils.py | 46 | def test_save_gepa_results_writes_upload_schema_without_task_fields(tmp_path): | CODE |
| LOW | tests/test_gepa_utils.py | 101 | def test_save_gepa_results_writes_candidate_diffs_and_frontier(tmp_path): | CODE |
| LOW | tests/test_eval_utils.py | 13 | def test_print_results_rollout_indexing(capsys, make_metadata, make_state, make_input): | CODE |
| LOW | tests/test_eval_utils.py | 62 | def test_print_results_single_rollout(capsys, make_metadata, make_state, make_input): | CODE |
| LOW | tests/test_eval_utils.py | 90 | def test_print_results_includes_eval_name(capsys, make_metadata, make_output): | CODE |
| LOW | tests/test_eval_utils.py | 106 | def test_print_results_three_rollouts(capsys, make_metadata, make_state, make_input): | CODE |
| LOW | tests/test_eval_utils.py | 139 | def test_print_results_includes_usage(capsys, make_metadata, make_output): | CODE |
| LOW | tests/test_eval_utils.py | 159 | def test_attach_metadata_cost_uses_total_output_usage(make_metadata, make_output): | CODE |
| LOW | tests/test_eval_utils.py | 188 | def test_print_results_labels_cost_as_all(capsys, make_metadata, make_output): | CODE |
| LOW | tests/test_eval_utils.py | 208 | def test_print_results_handles_heterogeneous_metrics( | CODE |
| LOW⚡ | tests/test_parser.py | 9 | def test_parser_initialization(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 14 | def test_parse_returns_text_as_is(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 20 | def test_get_assistant_messages(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 33 | def test_parse_answer_with_string(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 39 | def test_parse_answer_with_completion(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 48 | def test_parse_answer_with_empty_completion(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 53 | def test_parse_answer_with_no_assistant_messages(self, basic_parser): | CODE |
| LOW⚡ | tests/test_parser.py | 59 | def test_get_format_reward_func(self, basic_parser): | CODE |
| LOW | tests/test_per_turn_timing.py | 11 | async def test_single_turn_records_one_model_span(self, mock_client, make_input): | CODE |
| LOW | tests/test_per_turn_timing.py | 36 | async def test_multi_turn_records_model_and_env_spans( | CODE |
| LOW⚡ | tests/test_composable_env.py | 149 | def test_task_repr_no_sandbox(): | CODE |
| LOW⚡ | tests/test_composable_env.py | 220 | def test_composable_mini_swe_agent_install_script_uses_pip_requirement(): | CODE |
| LOW⚡ | tests/test_composable_env.py | 227 | def test_composable_opencode_install_script_owns_release_download(): | CODE |
| LOW⚡ | tests/test_composable_env.py | 237 | async def test_composable_env_exports_task_workdir(): | CODE |
| LOW⚡ | tests/test_composable_env.py | 316 | async def test_composable_env_install_env_passes_to_execute(): | CODE |
| LOW⚡ | tests/test_composable_env.py | 558 | def test_discover_sibling_dir_finds_skills(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_composable_env.py | 565 | def test_discover_sibling_dir_returns_none_without_skills(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_composable_env.py | 575 | def test_get_skills_dir_auto_discovers(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_composable_env.py | 582 | def test_get_skills_dir_returns_none_without_skills(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_composable_env.py | 589 | def test_get_upload_dirs_includes_skills_automatically(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_composable_env.py | 597 | def test_get_upload_dirs_empty_without_skills(tmp_path, monkeypatch): | CODE |
| LOW⚡ | tests/test_composable_env.py | 608 | async def test_composable_env_collects_harness_metrics(): | CODE |
| LOW | tests/test_composable_env.py | 97 | def test_sandbox_spec_defaults(): | CODE |
| LOW | tests/test_composable_env.py | 192 | def test_composable_env_eval_inputs_can_shuffle_taskset_dataset(): | CODE |
| LOW | tests/test_composable_env.py | 256 | async def test_composable_env_quotes_paths_in_mkdir_command(): | CODE |
| LOW | tests/test_composable_env.py | 284 | async def test_composable_env_quotes_log_path_when_collecting_logs(): | CODE |
| LOW | tests/test_composable_env.py | 345 | async def test_composable_env_install_env_none_by_default(): | CODE |
| LOW | tests/test_composable_env.py | 373 | def _make_temp_taskset_package(tmp_path, monkeypatch, *, with_skills: bool): | CODE |
| LOW | tests/test_composable_env.py | 411 | async def test_composable_env_uploads_task_dirs(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_composable_env.py | 451 | async def test_composable_env_no_upload_when_no_dirs(tmp_path, monkeypatch): | CODE |
| LOW | tests/test_composable_env.py | 479 | async def test_composable_env_uploads_harness_dirs(tmp_path): | CODE |
| LOW | tests/test_composable_env.py | 520 | async def test_composable_env_rejects_duplicate_task_and_harness_upload_names( | CODE |
| LOW | tests/test_composable_env.py | 657 | async def test_composable_env_metrics_with_key_whitelist(): | CODE |
| LOW | tests/test_composable_env.py | 694 | async def test_composable_env_no_metrics_when_path_not_set(): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 50 | def test_default_plugin_branch(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 54 | def test_default_plugin_install_path(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 62 | def test_default_sub_llm_max_turns(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 66 | def test_default_sub_timeout_ms(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 95 | def test_config_includes_plugin_reference(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 102 | def test_config_custom_install_path(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 107 | def test_config_has_schema_and_provider(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 114 | def test_config_renders_valid_json_after_shell_expansion(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 156 | def test_run_command_installs_jq(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 163 | def test_run_command_installs_bun(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 167 | def test_run_command_clones_plugin(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 174 | def test_run_command_custom_branch(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 178 | def test_run_command_bun_install(self): | CODE |
| LOW⚡ | tests/test_opencode_rlm_env.py | 182 | def test_run_command_runs_opencode(self): | CODE |
| 852 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …onments/bash_interception/bash_interception/taskset.py | 8 | REWRITE_COMMAND = f"git --version && touch {REWRITE_SENTINEL}" | CODE |
| HIGH⚡ | tests/test_composable_env.py | 306 | "cat '/tmp/log dir/agent.log' 2>/dev/null || echo '<no logs>'", | CODE |
| HIGH | tests/test_composable_env.py | 445 | "mkdir -p /task && tar -xzf /tmp/_upload_task_skills.tar.gz -C / && rm -f /tmp/_upload_task_skills.tar.gz", | CODE |
| HIGH | tests/test_composable_env.py | 514 | "mkdir -p /tmp && tar -xzf /tmp/_upload_tmp_agent-src.tar.gz -C / && rm -f /tmp/_upload_tmp_agent-src.tar.gz", | CODE |
| HIGH⚡ | tests/test_opencode_rlm_env.py | 180 | assert "cd /tmp/opencode-rlm && bun install" in env.run_command | CODE |
| HIGH⚡ | tests/test_harbor_env_mcp.py | 245 | env = _DummyEnv(mcp_launch_commands={"svc": "cd /opt && python server.py"}) | CODE |
| HIGH⚡ | tests/test_harbor_env_mcp.py | 255 | assert "'cd /opt && python server.py'" in start_cmd | CODE |
| HIGH | tests/test_rlm_composable_env.py | 534 | "mkdir -p /task && tar -xzf /tmp/_upload_task_rlm-skills.tar.gz -C / && rm -f /tmp/_upload_task_rlm-skills.tar.g | CODE |
| HIGH | tests/test_rlm_composable_env.py | 703 | "cat '/tmp/log dir/agent.log' 2>/dev/null || echo '<no logs>'", | CODE |
| HIGH | verifiers/v1/agent.py | 355 | "one (e.g. bash or null)." | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 12 | node_ok() { "$node/bin/node" -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 & | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 12 | node_ok() { "$node/bin/node" -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 & | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 16 | if ! node -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 && b>=19 ? 0 : 1 | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 16 | if ! node -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 && b>=19 ? 0 : 1 | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 26 | || { apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null; } | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 26 | || { apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null; } | CODE |
| HIGH⚡ | verifiers/v1/harnesses/node.py | 28 | if [ ! -x "$node/bin/node" ] || [ "$("$node/bin/node" --version 2>/dev/null)" != "v$VF_NODE_VERSION" ]; then | CODE |
| HIGH | verifiers/v1/harnesses/node.py | 44 | f'until ln -s "$$" {lock} 2>/dev/null; do ' | CODE |
| HIGH | verifiers/v1/harnesses/node.py | 46 | f'if ! kill -0 "$owner" 2>/dev/null; then ' | CODE |
| HIGH | verifiers/v1/harnesses/prime_agent/harness.py | 78 | fs.writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`); | CODE |
| HIGH | verifiers/v1/harnesses/prime_agent/harness.py | 164 | f'"$(command -v flock || command -v lockf)" {lock} ' | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 25 | command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null) | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 25 | command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null) | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 39 | [ -z "$acp_pid" ] || kill -TERM -"$acp_pid" 2>/dev/null || true | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 40 | [ -z "$gateway_pid" ] || kill -TERM -"$gateway_pid" 2>/dev/null || true | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 42 | [ -z "$acp_pid" ] || kill -KILL -"$acp_pid" 2>/dev/null || true | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 43 | [ -z "$gateway_pid" ] || kill -KILL -"$gateway_pid" 2>/dev/null || true | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 44 | [ -z "$acp_pid" ] || wait "$acp_pid" 2>/dev/null || true | CODE |
| HIGH⚡ | verifiers/v1/harnesses/openclaw/harness.py | 45 | [ -z "$gateway_pid" ] || wait "$gateway_pid" 2>/dev/null || true | CODE |
| HIGH | verifiers/v1/harnesses/openclaw/harness.py | 59 | if ! kill -0 "$gateway_pid" 2>/dev/null; then | CODE |
| HIGH | verifiers/v1/harnesses/openclaw/harness.py | 60 | wait "$gateway_pid" 2>/dev/null || true | CODE |
| HIGH | verifiers/v1/harnesses/openclaw/harness.py | 126 | f'"$(command -v flock || command -v lockf)" {directory}/install.lock ' | CODE |
| HIGH⚡ | verifiers/v1/harnesses/kimi_code/harness.py | 27 | if [ -x "$bin" ] && [ "$("$bin" --version 2>/dev/null)" = "{version}" ]; then | CODE |
| HIGH⚡ | verifiers/v1/harnesses/kimi_code/harness.py | 30 | command -v curl >/dev/null || { apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null; } | CODE |
| HIGH⚡ | verifiers/v1/harnesses/kimi_code/harness.py | 30 | command -v curl >/dev/null || { apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null; } | CODE |
| HIGH | verifiers/v1/harnesses/kimi_code/harness.py | 63 | '"$(command -v flock || command -v lockf)" ' | CODE |
| HIGH | verifiers/v1/harnesses/codex/harness.py | 72 | f'"$(command -v flock || command -v lockf)" {directory}/install.lock ' | CODE |
| HIGH | verifiers/v1/harnesses/claude_code/harness.py | 59 | f'"$(command -v flock || command -v lockf)" {directory}/install.lock ' | CODE |
| HIGH | verifiers/v1/harnesses/pi/harness.py | 38 | if [ "$(cat "$packages/.versions" 2>/dev/null)" != "$versions" ]; then | CODE |
| HIGH | verifiers/v1/harnesses/pi/harness.py | 75 | f'until ln -s "$$" {lock} 2>/dev/null; do ' | CODE |
| HIGH | verifiers/v1/harnesses/pi/harness.py | 77 | f'if ! kill -0 "$owner" 2>/dev/null; then ' | CODE |
| HIGH | verifiers/v1/harnesses/rlm/harness.py | 83 | "{ apt-get update -qq && apt-get install -y -qq git; } && " | CODE |
| HIGH | verifiers/v1/harnesses/rlm/harness.py | 84 | f"rm -rf /tmp/rlm && git clone https://{RLM_REPO} /tmp/rlm && " | CODE |
| HIGH⚡ | verifiers/v1/harnesses/pool/harness.py | 19 | command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null) | CODE |
| HIGH⚡ | verifiers/v1/harnesses/pool/harness.py | 19 | command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null) | CODE |
| HIGH⚡ | verifiers/v1/harnesses/pool/harness.py | 20 | command -v tar >/dev/null || (apt-get update -qq && apt-get install -y -qq tar >/dev/null) | CODE |
| HIGH⚡ | verifiers/v1/harnesses/pool/harness.py | 20 | command -v tar >/dev/null || (apt-get update -qq && apt-get install -y -qq tar >/dev/null) | CODE |
| HIGH | verifiers/v1/harnesses/pool/harness.py | 51 | f'"$(command -v flock || command -v lockf)" {directory}/install.lock ' | CODE |
| HIGH | verifiers/v1/harnesses/terminus_2/harness.py | 71 | 'tmux kill-server >/dev/null 2>&1 || true; rm -rf "$TMUX_TMPDIR"', | CODE |
| HIGH⚡ | verifiers/v1/runtimes/base.py | 32 | "{ command -v curl >/dev/null 2>&1 || command -v wget >/dev/null 2>&1; } " | CODE |
| HIGH⚡ | verifiers/v1/runtimes/base.py | 33 | "|| { apt-get update -qq && apt-get install -y -qq curl ca-certificates; } " | CODE |
| HIGH⚡ | verifiers/v1/runtimes/base.py | 37 | "{ command -v curl >/dev/null 2>&1 && curl -LsSf https://astral.sh/uv/install.sh | sh; } " | CODE |
| HIGH⚡ | verifiers/v1/runtimes/base.py | 38 | "|| { command -v wget >/dev/null 2>&1 && wget -qO- https://astral.sh/uv/install.sh | sh; }" | CODE |
| HIGH | verifiers/v1/runtimes/docker/__init__.py | 97 | 'kill -"$1" "-$2" 2>/dev/null || kill -"$1" "$2"', | CODE |
| HIGH | verifiers/v1/runtimes/docker/__init__.py | 139 | 'kill -KILL "-$pid" 2>/dev/null || kill -KILL "$pid" 2>/dev/null || true; ' | CODE |
| HIGH | verifiers/v1/runtimes/docker/__init__.py | 364 | 'if [ -n "$HOST" ]; then apk add --no-cache iptables >/dev/null; fi; ' | CODE |
| HIGH | verifiers/v1/tasksets/harbor/taskset.py | 179 | "tar --no-same-owner -xzf /tmp/environment.tgz && rm /tmp/environment.tgz", | CODE |
| HIGH | verifiers/v1/tasksets/harbor/taskset.py | 277 | "mkdir -p /logs/verifier /tests && tar -xzf /tmp/tests.tgz -C /tests" | CODE |
| HIGH | verifiers/legacy/envs/experimental/opencode_rlm_env.py | 106 | apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y curl git unzip jq | CODE |
| HIGH | verifiers/legacy/envs/experimental/opencode_env.py | 61 | apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y curl | CODE |
| 32 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ronments/nemo_gym_weather/nemo_gym_weather/__init__.py | 1 | CODE | |
| LOW | …ronments/nemo_gym_weather/nemo_gym_weather/__init__.py | 2 | CODE | |
| LOW | …yscale_interception/grayscale_interception/__init__.py | 1 | CODE | |
| LOW | environments/deepwiki/deepwiki/__init__.py | 1 | CODE | |
| LOW | environments/compact/compact/__init__.py | 4 | CODE | |
| LOW | environments/compact/compact/__init__.py | 4 | CODE | |
| LOW | …vironments/proposer_solver/proposer_solver/__init__.py | 1 | CODE | |
| LOW | …vironments/proposer_solver/proposer_solver/__init__.py | 1 | CODE | |
| LOW | …vironments/proposer_solver/proposer_solver/__init__.py | 1 | CODE | |
| LOW | environments/kuhn_poker/kuhn_poker/__init__.py | 1 | CODE | |
| LOW | environments/kuhn_poker/kuhn_poker/__init__.py | 1 | CODE | |
| LOW | environments/interception/interception/__init__.py | 1 | CODE | |
| LOW | environments/openenv_wordle/openenv_wordle/taskset.py | 6 | CODE | |
| LOW | environments/openenv_wordle/openenv_wordle/__init__.py | 1 | CODE | |
| LOW | environments/openenv_wordle/openenv_wordle/__init__.py | 1 | CODE | |
| LOW | environments/wiki_search/wiki_search/__init__.py | 1 | CODE | |
| LOW | environments/wiki_search/wiki_search/__init__.py | 2 | CODE | |
| LOW | environments/scratchpad/scratchpad/__init__.py | 1 | CODE | |
| LOW | …earch_interception/web_search_interception/__init__.py | 1 | CODE | |
| LOW | …earch_interception/web_search_interception/__init__.py | 1 | CODE | |
| LOW | …earch_interception/web_search_interception/__init__.py | 2 | CODE | |
| LOW | environments/reverse_text/reverse_text/__init__.py | 1 | CODE | |
| LOW | environments/wordle/wordle/__init__.py | 1 | CODE | |
| LOW | environments/wordle/wordle/__init__.py | 2 | CODE | |
| LOW | environments/alphabet_sort/alphabet_sort/__init__.py | 1 | CODE | |
| LOW | environments/alphabet_sort/alphabet_sort/__init__.py | 1 | CODE | |
| LOW | environments/gsm8k/gsm8k/__init__.py | 1 | CODE | |
| LOW | …nments/bash_interception/bash_interception/__init__.py | 1 | CODE | |
| LOW | environments/color_codeword/color_codeword/__init__.py | 1 | CODE | |
| LOW | environments/color_codeword/color_codeword/__init__.py | 1 | CODE | |
| LOW | environments/glossary/glossary/__init__.py | 1 | CODE | |
| LOW | environments/code_golf/code_golf/__init__.py | 1 | CODE | |
| LOW | environments/code_golf/code_golf/__init__.py | 1 | CODE | |
| LOW | verifiers/__init__.py | 152 | CODE | |
| LOW | verifiers/v1/trace.py | 1 | CODE | |
| LOW | verifiers/v1/task.py | 10 | CODE | |
| LOW | verifiers/v1/harness.py | 1 | CODE | |
| LOW | verifiers/v1/graph.py | 18 | CODE | |
| LOW | verifiers/v1/taskset.py | 15 | CODE | |
| LOW | verifiers/v1/session.py | 10 | CODE | |
| LOW | verifiers/v1/__init__.py | 3 | CODE | |
| LOW | verifiers/v1/__init__.py | 5 | CODE | |
| LOW | verifiers/v1/__init__.py | 5 | CODE | |
| LOW | verifiers/v1/__init__.py | 5 | CODE | |
| LOW | verifiers/v1/__init__.py | 6 | CODE | |
| LOW | verifiers/v1/__init__.py | 6 | CODE | |
| LOW | verifiers/v1/__init__.py | 6 | CODE | |
| LOW | verifiers/v1/__init__.py | 6 | CODE | |
| LOW | verifiers/v1/__init__.py | 6 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 7 | CODE | |
| LOW | verifiers/v1/__init__.py | 16 | CODE | |
| LOW | verifiers/v1/__init__.py | 17 | CODE | |
| LOW | verifiers/v1/__init__.py | 17 | CODE | |
| LOW | verifiers/v1/__init__.py | 18 | CODE | |
| 556 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_composable_env.py | 139 | # ── Task from plain TaskSet ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_composable_env.py | 155 | # ── TaskSet ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_composable_env.py | 312 | # ── install_env ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_composable_env.py | 555 | # ── discover_sibling_dir ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_composable_env.py | 572 | # ── get_skills_dir / auto-discovery ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_composable_env.py | 604 | # ── Harness metrics collection ─────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_composable_env.py | 30 | # ── Mock Rubrics ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_composable_env.py | 51 | # ── Mock TaskSets ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_composable_env.py | 94 | # ── SandboxSpec ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_composable_env.py | 109 | # ── Task from SandboxTaskSet ─────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_composable_env.py | 370 | # ── get_upload_dirs ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 40 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 42 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 89 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 91 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 150 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 152 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 187 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 189 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 246 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 248 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 282 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 284 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 342 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_opencode_rlm_env.py | 344 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_opencode_rlm_env.py | 20 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_opencode_rlm_env.py | 22 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_renderer_client.py | 822 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_renderer_client.py | 824 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_renderer_client.py | 866 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_renderer_client.py | 868 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_renderer_client.py | 599 | # ── Parity across real renderers: truncated most-recent step ────────── | COMMENT |
| MEDIUM⚡ | tests/test_rlm_composable_env.py | 177 | # ── RLM harness ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_rlm_composable_env.py | 654 | # ── RLM metrics via harness fields ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_rlm_composable_env.py | 806 | # ── keep_trajectory_step end-to-end (header-stash ordering) ────────────── | COMMENT |
| MEDIUM | tests/test_rlm_composable_env.py | 450 | # ── install_env ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_rlm_composable_env.py | 497 | # ── Skills upload ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_browser_env.py | 45 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_browser_env.py | 47 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_browser_env.py | 386 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tests/test_browser_env.py | 388 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_browser_env.py | 18 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_browser_env.py | 20 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_browser_env.py | 457 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_browser_env.py | 459 | # ============================================================================ | COMMENT |
| MEDIUM | tests/test_context_token_metrics.py | 16 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_context_token_metrics.py | 18 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_context_token_metrics.py | 63 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_context_token_metrics.py | 65 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_context_token_metrics.py | 179 | # ========================================================================= | COMMENT |
| MEDIUM | tests/test_context_token_metrics.py | 181 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 79 | # ── create_sandbox ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 180 | # ── post_sandbox_setup ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 188 | # ── delete_sandbox ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 208 | # ── bulk_delete_sandboxes ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 231 | # ── run_background_job ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 275 | # ── teardown_sandboxes ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_sandbox_mixin.py | 322 | # ── teardown_sandbox_client ────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_sandbox_mixin.py | 47 | # ── init_sandbox_client ────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_sandbox_mixin.py | 361 | # ── SandboxTimeouts ────────────────────────────────────────────────── | COMMENT |
| 23 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ayscale_interception/grayscale_interception/taskset.py | 13 | # The last request message is the new user input, before the harness stores it. | COMMENT |
| MEDIUM | environments/interception/interception/taskset.py | 11 | # A response stop runs while the response is buffered, before the harness | COMMENT |
| MEDIUM | …earch_interception/web_search_interception/__init__.py | 4 | # Exporting Codex beside the taskset makes it this example's default harness, so | COMMENT |
| MEDIUM⚡ | tests/test_rlm_composable_env.py | 177 | # ── RLM harness ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_rlm_composable_env.py | 654 | # ── RLM metrics via harness fields ────────────────────────────────────── | COMMENT |
| MEDIUM | tests/v1/conftest.py | 22 | uv run pytest tests/v1 -n auto -m bash # only the bash harness | STRING |
| MEDIUM | tests/v1/conftest.py | 76 | # `compact` (an example harness) and `terminus-2` (drives the host tmux) are excluded from e2e. | COMMENT |
| MEDIUM⚡ | tests/v1/test_e2e.py | 96 | # harness runtime x tool placement: every axis value once plus the two-container case | COMMENT |
| MEDIUM⚡ | tests/v1/test_e2e.py | 97 | # (harness and tool in separate docker boxes) and a prime-colocated row (a tool in its | COMMENT |
| MEDIUM⚡ | tests/v1/test_e2e.py | 98 | # OWN prime sandbox needs port exposure; colocated rides the harness's box). | COMMENT |
| MEDIUM⚡ | tests/v1/test_e2e.py | 618 | # The tool was advertised to the masked chat, regardless of harness qualification. | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 18 | # harness x harness runtime: every harness once, both local runtimes hit (subprocess | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 36 | # harness x harness runtime for the shell task: every coding agent once (null is a chat | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 55 | # The scripted user runs in the eval process itself (no placement axis); the harness | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 65 | # retain MCP access after resuming. Cover every harness in the local container runtime, | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 307 | # The interception server captured the harness's advertised name and schema. Harnesses | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 580 | # assistant's harness while the task's rewards score off non-prompt fields | COMMENT |
| MEDIUM⚡ | tests/v1/test_e2e.py | 629 | harness=None, # both seats pin the null harness themselves | CODE |
| MEDIUM | tests/v1/test_e2e.py | 430 | harness=None, # both duet seats pin their own harness | CODE |
| MEDIUM | tests/v1/test_e2e.py | 459 | harness=None, # a multi-agent env refuses the run-level harness | CODE |
| MEDIUM | tests/v1/test_e2e.py | 661 | harness=None, # both duet seats pin their own harness | CODE |
| MEDIUM | verifiers/v1/env.py | 116 | # Same harness config -> one loaded object (harnesses are stateless values). | COMMENT |
| MEDIUM | verifiers/v1/env.py | 127 | # Warn once per distinct harness; tool-less chat loops are exempt. | COMMENT |
| MEDIUM | verifiers/v1/env.py | 207 | # Unpinned fields fall back to the run's ctx / the taskset's harness. | COMMENT |
| MEDIUM | verifiers/v1/__init__.py | 271 | # taskset / harness / runtime / environment | COMMENT |
| MEDIUM | verifiers/v1/rollout.py | 221 | # Task setup and harness provisioning share one setup-stage deadline. | COMMENT |
| MEDIUM | verifiers/v1/rollout.py | 240 | # The harness reaches the model at `{base_url}/v1`; tool servers reach this | COMMENT |
| MEDIUM | verifiers/v1/rollout.py | 367 | # Prefer an intercepted model/tool error to the harness exit it caused. | COMMENT |
| MEDIUM | verifiers/v1/rollout.py | 383 | # harness's own I/O with no expired deadline stays the raw failure. | COMMENT |
| MEDIUM | verifiers/v1/rollout.py | 394 | except Exception as e: # noqa: BLE001 - harness boundary records every rollout failure | CODE |
| MEDIUM | verifiers/v1/rollout.py | 412 | # A harness that completes cleanly after a failed model call handled it (e.g. it | COMMENT |
| MEDIUM | verifiers/v1/rollout.py | 414 | # harness that dies on it surfaces the stashed error through the except above. | COMMENT |
| MEDIUM | verifiers/v1/agent.py | 342 | # Multi-turn capability is derived: a harness needs transcript replay, a | COMMENT |
| MEDIUM | verifiers/v1/agent.py | 672 | # `Agent.interaction()` may fail before yielding (e.g. task/harness setup). | COMMENT |
| MEDIUM | verifiers/v1/clients/train.py | 440 | # deterministic 400, so the harness SDK never retries it. | COMMENT |
| MEDIUM | verifiers/v1/clients/eval.py | 22 | # The harness uses this rollout secret to authenticate with the localhost server. | COMMENT |
| MEDIUM | verifiers/v1/clients/eval.py | 85 | # failure — map these to a retryable 502 so the harness SDK retries the | COMMENT |
| MEDIUM⚡ | verifiers/v1/interception/server.py | 68 | # Each session proxies one rollout's own harness requests, so aiohttp's default 1 MiB body | COMMENT |
| MEDIUM⚡ | verifiers/v1/interception/server.py | 70 | # and the harness gets a 413. Allow large bodies; the upstream provider and the model's | COMMENT |
| MEDIUM⚡ | verifiers/v1/interception/server.py | 962 | # The harness went away mid-stream; the provider exchange still happened. | COMMENT |
| MEDIUM | verifiers/v1/interception/server.py | 438 | # A malformed harness knob must not kill recording (this runs in the | COMMENT |
| MEDIUM | verifiers/v1/interception/server.py | 717 | # Stash the real cause; the rollout re-raises it after the harness returns. | COMMENT |
| MEDIUM | verifiers/v1/interception/server.py | 718 | # Relay the provider's status so the harness SDK retries 5xx/429 and not 4xx. | COMMENT |
| MEDIUM | verifiers/v1/interception/server.py | 741 | # A cancelled exchange (harness disconnect, shutdown) is still | COMMENT |
| MEDIUM | verifiers/v1/harnesses/bash/harness.py | 16 | # harness-injected prompt). The edit clause is appended only when the `edit` tool is enabled. | COMMENT |
| MEDIUM | verifiers/v1/harnesses/bash/harness.py | 85 | # inheriting it via $SERPER_API_KEY / /proc/self/environ. Prefer a key set in the harness | COMMENT |
| MEDIUM | verifiers/v1/harnesses/bash/harness.py | 86 | # env (harness config env / forward_env); fall back to the host env only when the key is | COMMENT |
| MEDIUM | verifiers/v1/harnesses/null/program.py | 218 | # Context exhaustion is a budget limit, not a crash: this harness has no | COMMENT |
| MEDIUM | verifiers/v1/harnesses/browser_use/harness.py | 75 | # prompt, that transcript already contains this harness prompt. | COMMENT |
| MEDIUM | verifiers/v1/harnesses/browser_use/program.py | 4 | # "browser-harness==0.1.8", | COMMENT |
| MEDIUM | verifiers/v1/harnesses/browser_use/program.py | 106 | # browser-harness uses five seconds for this same DevTools HTTP probe. | COMMENT |
| MEDIUM | verifiers/v1/runtimes/modal.py | 133 | "infinity", # keep-alive entrypoint; the harness runs via `exec` | CODE |
| MEDIUM | verifiers/v1/mcp/launch.py | 356 | # Colocated servers inherit the harness cut. A separately provisioned filtered | COMMENT |
| MEDIUM⚡ | verifiers/v1/mcp/launch.py | 392 | # The harness consumes the server, and decides reachability: colocated when the | COMMENT |
| MEDIUM⚡ | verifiers/v1/mcp/launch.py | 393 | # server shares the harness's runtime, reached with the harness's locality (read | COMMENT |
| MEDIUM⚡ | verifiers/v1/mcp/launch.py | 394 | # off the harness runtime when there is one, else `harness_is_local` for an | COMMENT |
| MEDIUM | verifiers/v1/cli/debug.py | 200 | # No agent plays here (no model, no harness): the seat records the | COMMENT |
| MEDIUM | verifiers/v1/cli/init.py | 194 | uv run eval {dash} -n 3 # evaluate a few tasks with the bash harness | STRING |
| MEDIUM | verifiers/v1/cli/dashboard/eval.py | 246 | # row per seat when they diverge (a judge on its own harness/runtime). | COMMENT |
| MEDIUM | verifiers/v1/cli/dashboard/eval.py | 591 | # The trace's own stamp, not the run-level runtime: a role's harness | COMMENT |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | environments/gsm8k/gsm8k/verify.py | 29 | except Exception: # noqa: BLE001 - malformed answers can fail anywhere in math-verify | CODE |
| LOW | verifiers/v1/env.py | 279 | except Exception as e: # noqa: BLE001 - episode boundary records every hook failure | CODE |
| LOW | verifiers/v1/env.py | 293 | except Exception as e: # noqa: BLE001 - episode boundary records every hook failure | CODE |
| LOW | verifiers/v1/session.py | 234 | except Exception as error: | CODE |
| LOW | verifiers/v1/session.py | 315 | except Exception as error: | CODE |
| LOW | verifiers/v1/rollout.py | 332 | except Exception as e: # noqa: BLE001 - setup boundary records every rollout failure | CODE |
| LOW | verifiers/v1/rollout.py | 394 | except Exception as e: # noqa: BLE001 - harness boundary records every rollout failure | CODE |
| LOW | verifiers/v1/rollout.py | 453 | except Exception: | CODE |
| LOW | verifiers/v1/rollout.py | 488 | except Exception as e: # noqa: BLE001 - finalize boundary records every rollout failure | CODE |
| LOW | verifiers/v1/rollout.py | 512 | except Exception: | CODE |
| LOW | verifiers/v1/rollout.py | 522 | except Exception: | CODE |
| LOW | verifiers/v1/agent.py | 482 | except Exception as e: | CODE |
| LOW | verifiers/v1/errors.py | 88 | except Exception as e: | CODE |
| LOW⚡ | verifiers/v1/interception/server.py | 950 | except Exception as e: # noqa: BLE001 - defer parser failure | CODE |
| LOW⚡ | verifiers/v1/interception/server.py | 959 | except Exception as e: # noqa: BLE001 - defer parser failure | CODE |
| LOW | verifiers/v1/interception/server.py | 607 | except Exception as error: # noqa: BLE001 - surface task hook failures | CODE |
| LOW | verifiers/v1/interception/server.py | 731 | except Exception as e: # noqa: BLE001 - surface as an API error | CODE |
| LOW | verifiers/v1/interception/server.py | 806 | except Exception as e: # noqa: BLE001 - surface as an API error | CODE |
| LOW | verifiers/v1/interception/server.py | 852 | except Exception as e: # noqa: BLE001 - malformed provider stream | CODE |
| LOW | verifiers/v1/interception/server.py | 1051 | except Exception as e: # noqa: BLE001 - surface auxiliary relay failures | CODE |
| LOW | verifiers/v1/interception/tunnel/prime.py | 53 | except Exception as e: | CODE |
| LOW | verifiers/v1/harnesses/bash/program.py | 132 | except Exception as e: # noqa: BLE001 - tool failures are returned to the model | CODE |
| LOW | verifiers/v1/harnesses/bash/program.py | 146 | except Exception as e: # noqa: BLE001 - tool failures are returned to the model | CODE |
| LOW | verifiers/v1/harnesses/bash/program.py | 168 | except Exception as e: # noqa: BLE001 - tool failures are returned to the model | CODE |
| LOW | verifiers/v1/harnesses/bash/program.py | 175 | except Exception as e: # noqa: BLE001 - tool failures are returned to the model | CODE |
| LOW | verifiers/v1/harnesses/browser_use/program.py | 172 | except Exception as e: # noqa: BLE001 - tool failures are returned to the model | CODE |
| LOW | verifiers/v1/harnesses/terminus_2/harness.py | 75 | except Exception: | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 287 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 337 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 349 | except Exception as e: # surface prime's exposure constraints actionably | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 369 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 385 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 407 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 430 | except Exception as e: # noqa: BLE001 - provider teardown is best-effort | CODE |
| LOW | verifiers/v1/runtimes/modal.py | 168 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/modal.py | 230 | except Exception: | CODE |
| LOW | verifiers/v1/runtimes/modal.py | 246 | except Exception as e: | CODE |
| LOW⚡ | verifiers/v1/runtimes/modal.py | 271 | except Exception as e: | CODE |
| LOW⚡ | verifiers/v1/runtimes/modal.py | 282 | except Exception as e: | CODE |
| LOW | verifiers/v1/runtimes/modal.py | 306 | except Exception as e: # noqa: BLE001 - provider teardown is best-effort | CODE |
| MEDIUM | verifiers/v1/runtimes/modal.py | 117 | def start(self) -> None: | CODE |
| LOW | verifiers/v1/runtimes/base.py | 217 | except Exception: # noqa: BLE001 - failing to exec at all means the box is gone | CODE |
| LOW | verifiers/v1/runtimes/docker/egress.py | 324 | except Exception: # noqa: BLE001 - proxy failures become a generic 502 | CODE |
| LOW | verifiers/v1/utils/git.py | 169 | except Exception: # noqa: BLE001, S110 - cleanup must never fail the rollout | CODE |
| LOW | verifiers/v1/utils/platform.py | 311 | except Exception as e: # noqa: BLE001 - push is best-effort across the full upload | CODE |
| LOW | verifiers/v1/utils/artifacts.py | 159 | except Exception: | CODE |
| LOW | verifiers/v1/mcp/launch.py | 63 | except Exception: | CODE |
| LOW | verifiers/v1/cli/validate.py | 258 | except Exception as e: # noqa: BLE001 - validation reports plugin failures per task | CODE |
| LOW | verifiers/v1/cli/validate.py | 263 | except Exception: | CODE |
| LOW | verifiers/v1/cli/replay.py | 112 | except Exception: | CODE |
| LOW | verifiers/v1/cli/replay.py | 169 | except Exception as exc: | CODE |
| LOW | verifiers/v1/cli/debug.py | 161 | except Exception as e: # noqa: BLE001 - report any debug action failure | CODE |
| LOW | verifiers/v1/cli/debug.py | 250 | except Exception as e: # noqa: BLE001 - persist any framework failure on the trace | CODE |
| LOW | verifiers/v1/cli/debug.py | 261 | except Exception: | CODE |
| LOW | verifiers/v1/cli/eval/resume.py | 72 | except Exception: # noqa: BLE001, S112 | CODE |
| LOW | verifiers/v1/tasksets/harbor/env.py | 124 | except Exception as e: # noqa: BLE001 - each attempt's failure is retried | CODE |
| LOW | verifiers/v1/serve/pool.py | 206 | except Exception: # noqa: BLE001 - one bad frame must not kill the broker | CODE |
| LOW | verifiers/v1/serve/pool.py | 360 | except Exception: | CODE |
| LOW | verifiers/v1/envs/agentic_judge/env.py | 192 | except Exception as e: | CODE |
| LOW | verifiers/v1/acp/runner.py | 292 | except Exception as error: # noqa: BLE001 - serialize protocol failures | CODE |
| 170 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ronments/nemo_gym_weather/nemo_gym_weather/__init__.py | 4 | __all__ = ["NeMoGymEnv", "NeMoGymWeatherTaskset"] | CODE |
| LOW | …yscale_interception/grayscale_interception/__init__.py | 3 | __all__ = ["GrayscaleInterceptionTaskset"] | CODE |
| LOW | environments/deepwiki/deepwiki/__init__.py | 3 | __all__ = ["DeepWikiTaskset"] | CODE |
| LOW | environments/compact/compact/__init__.py | 6 | __all__ = ["CompactingHarness", "CompactingHarnessConfig"] | CODE |
| LOW | …vironments/proposer_solver/proposer_solver/__init__.py | 7 | __all__ = ["ProposerSolverEnv", "ProposerSolverEnvConfig", "ProposerSolverTaskset"] | CODE |
| LOW | environments/kuhn_poker/kuhn_poker/__init__.py | 3 | __all__ = ["KuhnPokerEnv", "KuhnPokerTaskset"] | CODE |
| LOW | environments/interception/interception/__init__.py | 3 | __all__ = ["InterceptionTaskset"] | CODE |
| LOW | environments/openenv_wordle/openenv_wordle/taskset.py | 13 | __all__ = ["OpenEnvEnv", "OpenEnvWordleConfig", "OpenEnvWordleTaskset"] | CODE |
| LOW | environments/openenv_wordle/openenv_wordle/__init__.py | 3 | __all__ = ["OpenEnvEnv", "OpenEnvWordleTaskset"] | CODE |
| LOW | environments/wiki_search/wiki_search/__init__.py | 4 | __all__ = ["WikiSearchJudge", "WikiSearchTaskset"] | CODE |
| LOW | environments/wiki_search/wiki_search/judge.py | 20 | __all__ = ["WikiSearchJudge", "WikiSearchJudgeConfig"] | CODE |
| LOW | environments/scratchpad/scratchpad/__init__.py | 3 | __all__ = ["ScratchpadTaskset"] | CODE |
| LOW | …earch_interception/web_search_interception/__init__.py | 6 | __all__ = [ | CODE |
| LOW | environments/reverse_text/reverse_text/__init__.py | 3 | __all__ = ["ReverseTextTaskset"] | CODE |
| LOW | environments/wordle/wordle/__init__.py | 4 | __all__ = ["TextArenaEnv", "WordleTaskset"] | CODE |
| LOW | environments/alphabet_sort/alphabet_sort/__init__.py | 3 | __all__ = ["AlphabetSortEnv", "AlphabetSortTaskset"] | CODE |
| LOW | environments/gsm8k/gsm8k/__init__.py | 3 | __all__ = ["GSM8KTaskset"] | CODE |
| LOW | …nments/bash_interception/bash_interception/__init__.py | 3 | __all__ = ["BashInterceptionTaskset"] | CODE |
| LOW | environments/color_codeword/color_codeword/__init__.py | 3 | __all__ = ["ColorCodewordEnv", "ColorCodewordTaskset"] | CODE |
| LOW | environments/glossary/glossary/__init__.py | 3 | __all__ = ["GlossaryTaskset"] | CODE |
| LOW | environments/code_golf/code_golf/__init__.py | 3 | __all__ = ["CodeGolfEnv", "CodeGolfTaskset"] | CODE |
| LOW | verifiers/v1/task.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harness.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/env.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/session.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/__init__.py | 188 | __all__ = [ # noqa: RUF022 - grouped by public API area | CODE |
| LOW | verifiers/v1/rollout.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | verifiers/v1/agent.py | 52 | __all__ = ["Agent", "AgentConfig", "Agents", "TimeoutConfig", "make_agent"] | CODE |
| LOW⚡ | verifiers/v1/agent.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/clients/__init__.py | 11 | __all__ = [ | CODE |
| LOW | verifiers/v1/clients/train.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | verifiers/v1/interception/server.py | 65 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/interception/__init__.py | 104 | __all__ = [ | CODE |
| LOW | verifiers/v1/interception/pool.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/interception/tunnel/__init__.py | 22 | __all__ = [ | CODE |
| LOW | verifiers/v1/gepa/runner.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/gepa/__init__.py | 5 | __all__ = ["GEPAAdapter", "GEPAConfig", "run_gepa"] | CODE |
| LOW | verifiers/v1/harnesses/__init__.py | 31 | __all__ = [ | CODE |
| LOW | verifiers/v1/harnesses/prime_agent/harness.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/prime_agent/__init__.py | 6 | __all__ = ["PrimeAgentHarness", "PrimeAgentHarnessConfig"] | CODE |
| LOW⚡ | verifiers/v1/harnesses/openclaw/harness.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/openclaw/__init__.py | 6 | __all__ = ["OpenClawHarness", "OpenClawHarnessConfig"] | CODE |
| LOW⚡ | verifiers/v1/harnesses/kimi_code/harness.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/kimi_code/__init__.py | 6 | __all__ = ["KimiCodeHarness", "KimiCodeHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/codex/harness.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/codex/__init__.py | 3 | __all__ = ["CodexHarness", "CodexHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/claude_code/__init__.py | 6 | __all__ = ["ClaudeCodeHarness", "ClaudeCodeHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/bash/__init__.py | 6 | __all__ = ["BashHarness", "BashHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/pi/harness.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/pi/__init__.py | 3 | __all__ = ["PiHarness", "PiHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/null/__init__.py | 3 | __all__ = ["NullHarness", "NullHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/rlm/harness.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/rlm/__init__.py | 3 | __all__ = ["RLMHarness", "RLMHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/mini_swe_agent/__init__.py | 6 | __all__ = ["MiniSWEAgentHarness", "MiniSWEAgentHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/browser_use/__init__.py | 6 | __all__ = ["BrowserUseHarness", "BrowserUseHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/pool/__init__.py | 3 | __all__ = ["PoolHarness", "PoolHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/hermes_agent/__init__.py | 6 | __all__ = ["HermesAgentHarness", "HermesAgentHarnessConfig"] | CODE |
| LOW | verifiers/v1/harnesses/terminus_2/harness.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | verifiers/v1/harnesses/terminus_2/__init__.py | 6 | __all__ = ["Terminus2Harness", "Terminus2HarnessConfig"] | CODE |
| LOW | verifiers/v1/runtimes/prime.py | 38 | logger = logging.getLogger(__name__) | CODE |
| 133 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ayscale_interception/grayscale_interception/taskset.py | 12 | CODE | |
| LOW | environments/wiki_search/wiki_search/servers/wiki.py | 77 | CODE | |
| LOW | environments/alphabet_sort/alphabet_sort/taskset.py | 116 | CODE | |
| LOW | tests/conftest.py | 325 | CODE | |
| LOW | tests/conftest.py | 337 | CODE | |
| LOW | tests/test_renderer_client.py | 633 | CODE | |
| LOW | tests/test_gym_env.py | 71 | CODE | |
| LOW | verifiers/v1/graph.py | 228 | CODE | |
| LOW | verifiers/v1/session.py | 155 | CODE | |
| LOW | verifiers/v1/agent.py | 176 | CODE | |
| LOW | verifiers/v1/interception/server.py | 474 | CODE | |
| LOW | verifiers/v1/interception/server.py | 765 | CODE | |
| LOW | verifiers/v1/interception/server.py | 655 | CODE | |
| LOW | verifiers/v1/gepa/adapter.py | 84 | CODE | |
| LOW | verifiers/v1/harnesses/bash/program.py | 337 | CODE | |
| LOW | verifiers/v1/harnesses/browser_use/program.py | 318 | CODE | |
| LOW | verifiers/v1/runtimes/modal.py | 193 | CODE | |
| LOW | verifiers/v1/runtimes/docker/egress.py | 134 | CODE | |
| LOW | verifiers/v1/utils/generic.py | 42 | CODE | |
| LOW | verifiers/v1/utils/score.py | 142 | CODE | |
| LOW | verifiers/v1/cli/validate.py | 107 | CODE | |
| LOW | verifiers/v1/cli/dashboard/eval.py | 533 | CODE | |
| LOW | verifiers/v1/cli/dashboard/base.py | 81 | CODE | |
| LOW | verifiers/v1/cli/eval/resume.py | 24 | CODE | |
| LOW | verifiers/v1/tasksets/nemo_gym/response.py | 11 | CODE | |
| LOW | verifiers/v1/tasksets/lean/scoring.py | 102 | CODE | |
| LOW | verifiers/v1/dialects/responses.py | 413 | CODE | |
| LOW | verifiers/v1/dialects/responses.py | 549 | CODE | |
| LOW | verifiers/v1/dialects/chat.py | 238 | CODE | |
| LOW | verifiers/v1/dialects/chat.py | 374 | CODE | |
| LOW | verifiers/v1/dialects/chat.py | 524 | CODE | |
| LOW | verifiers/v1/dialects/anthropic.py | 107 | CODE | |
| LOW | verifiers/v1/dialects/anthropic.py | 298 | CODE | |
| LOW | verifiers/v1/dialects/anthropic.py | 363 | CODE | |
| LOW | verifiers/v1/dialects/anthropic.py | 579 | CODE | |
| LOW | verifiers/v1/dialects/base.py | 52 | CODE | |
| LOW | verifiers/v1/serve/server.py | 105 | CODE | |
| LOW | verifiers/v1/serve/encoding.py | 26 | CODE | |
| LOW | verifiers/v1/serve/pool.py | 166 | CODE | |
| LOW | verifiers/v1/acp/runner.py | 269 | CODE | |
| LOW | verifiers/v1/acp/runner.py | 228 | CODE | |
| LOW | verifiers/v1/acp/__init__.py | 282 | CODE | |
| LOW | verifiers/legacy/clients/openai_responses_client.py | 268 | CODE | |
| LOW | verifiers/legacy/clients/openai_responses_client.py | 315 | CODE | |
| LOW | verifiers/legacy/clients/openai_responses_client.py | 328 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 104 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 382 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 407 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 107 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 169 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 230 | CODE | |
| LOW | verifiers/legacy/clients/anthropic_messages_client.py | 408 | CODE | |
| LOW | verifiers/legacy/clients/openai_completions_client.py | 51 | CODE | |
| LOW | verifiers/legacy/clients/client.py | 108 | CODE | |
| LOW | …fiers/legacy/clients/openai_chat_completions_client.py | 111 | CODE | |
| LOW | …fiers/legacy/clients/openai_chat_completions_client.py | 191 | CODE | |
| LOW | …fiers/legacy/clients/openai_chat_completions_client.py | 273 | CODE | |
| LOW | …fiers/legacy/clients/openai_chat_completions_client.py | 206 | CODE | |
| LOW | …legacy/clients/openai_chat_completions_token_client.py | 29 | CODE | |
| LOW | verifiers/legacy/clients/renderer_client.py | 152 | CODE | |
| 109 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | verifiers/v1/task.py | 0 | timeout (in seconds) for the agent's solve attempt. | STRING |
| HIGH | verifiers/v1/rollout.py | 0 | timeout (in seconds) for the agent's solve attempt. | STRING |
| HIGH | verifiers/v1/configs/agent.py | 0 | timeout (in seconds) for the agent's solve attempt. | STRING |
| HIGH | verifiers/v1/harnesses/bash/program.py | 0 | one fresh streamable-http session to an mcp server, opened and closed within the caller's task so anyio cancellation sco | STRING |
| HIGH | verifiers/v1/harnesses/null/program.py | 0 | one fresh streamable-http session to an mcp server, opened and closed within the caller's task so anyio cancellation sco | STRING |
| HIGH | verifiers/v1/harnesses/browser_use/program.py | 0 | one fresh streamable-http session to an mcp server, opened and closed within the caller's task so anyio cancellation sco | STRING |
| HIGH | verifiers/v1/harnesses/bash/program.py | 0 | run one session-scoped operation, retrying transient failures with backoff. a call whose response was lost may be replay | STRING |
| HIGH | verifiers/v1/harnesses/null/program.py | 0 | run one session-scoped operation, retrying transient failures with backoff. a call whose response was lost may be replay | STRING |
| HIGH | verifiers/v1/harnesses/browser_use/program.py | 0 | run one session-scoped operation, retrying transient failures with backoff. a call whose response was lost may be replay | STRING |
| HIGH | verifiers/v1/harnesses/bash/program.py | 0 | call a tool on a fresh session per attempt — see `with_retry` for the replay semantics. the result is converted outside | STRING |
| HIGH | verifiers/v1/harnesses/null/program.py | 0 | call a tool on a fresh session per attempt — see `with_retry` for the replay semantics. the result is converted outside | STRING |
| HIGH | verifiers/v1/harnesses/browser_use/program.py | 0 | call a tool on a fresh session per attempt — see `with_retry` for the replay semantics. the result is converted outside | STRING |
| HIGH | …envs/experimental/composable/tasksets/harbor/harbor.py | 0 | apply gold patch, run tests, and check if reward > 0. exceptions propagate to the caller (``taskset.validate``) so that | STRING |
| HIGH | …erimental/composable/tasksets/swe/swe_bench/taskset.py | 0 | apply gold patch, run tests, and check if reward > 0. exceptions propagate to the caller (``taskset.validate``) so that | STRING |
| HIGH | …xperimental/composable/tasksets/swe/openswe/taskset.py | 0 | apply gold patch, run tests, and check if reward > 0. exceptions propagate to the caller (``taskset.validate``) so that | STRING |
| HIGH | …erimental/composable/tasksets/swe/multi_swe/taskset.py | 0 | apply gold patch, run tests, and check if reward > 0. exceptions propagate to the caller (``taskset.validate``) so that | STRING |
| HIGH | …xperimental/composable/tasksets/swe/r2e_gym/taskset.py | 0 | apply gold patch, run tests, and check if reward > 0. exceptions propagate to the caller (``taskset.validate``) so that | STRING |
| HIGH | …perimental/composable/tasksets/swe/swe_lego/taskset.py | 0 | apply gold patch, run tests, and check if reward > 0. exceptions propagate to the caller (``taskset.validate``) so that | STRING |
| HIGH | …perimental/composable/tasksets/swe/swe_lego/taskset.py | 0 | args: filter_fn: optional python expression string forwarded to :class:`taskset` — see its docstring. applied to post-`` | STRING |
| HIGH | …erimental/composable/tasksets/swe/swe_bench/taskset.py | 0 | args: filter_fn: optional python expression string forwarded to :class:`taskset` — see its docstring. applied to post-`` | STRING |
| HIGH | …xperimental/composable/tasksets/swe/openswe/taskset.py | 0 | args: filter_fn: optional python expression string forwarded to :class:`taskset` — see its docstring. applied to post-`` | STRING |
| HIGH | …erimental/composable/tasksets/swe/multi_swe/taskset.py | 0 | args: filter_fn: optional python expression string forwarded to :class:`taskset` — see its docstring. applied to post-`` | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/v1/conftest.py | 49 | # Fixture tasksets (echo-v1, echo-agentic-v1) live in tests/v1/fixtures, added to the | COMMENT |
| MEDIUM | tests/v1/test_e2e.py | 459 | harness=None, # a multi-agent env refuses the run-level harness | CODE |
| MEDIUM | tests/v1/test_e2e.py | 566 | harness=None, # multi-agent: each seat pins its own | CODE |
| MEDIUM | tests/v1/test_e2e.py | 603 | harness=None, # multi-agent: each seat pins its own | CODE |
| MEDIUM | verifiers/v1/env.py | 147 | # --- the multi-agent surface (override these) ------------------------------ | COMMENT |
| MEDIUM | verifiers/v1/graph.py | 559 | # and its re-rendered input form place the turn-close scaffold in different nodes but at the | COMMENT |
| MEDIUM | verifiers/v1/graph.py | 612 | # Assistant node: trailing scaffold (the generation prompt) + the sampled completion. | COMMENT |
| MEDIUM | verifiers/v1/clients/base.py | 10 | # No read timeout: agentic completions are slow and the rollout timeout is the real | COMMENT |
| MEDIUM⚡ | verifiers/v1/interception/server.py | 71 | # context window are the real limits, this is just a host-OOM backstop. | COMMENT |
| MEDIUM | verifiers/v1/harnesses/null/program.py | 23 | # OpenAI Responses/Completions: "Your input exceeds the context window of this model". | COMMENT |
| MEDIUM | verifiers/v1/judges/rubric.py | 26 | # criterion carries a one-sentence `reason` written *before* the verdict (chain-of-thought), so the | COMMENT |
| MEDIUM | verifiers/v1/cli/gepa.py | 60 | # Refuse multi-agent before the dry-run return, so --dry-run can't write a | COMMENT |
| MEDIUM | verifiers/v1/cli/replay.py | 63 | # Refuse multi-agent up front, from the SOURCE run's saved config — the replay | COMMENT |
| MEDIUM | verifiers/v1/cli/dashboard/eval.py | 535 | # trace (a multi-agent episode shows each role's trace), braced per task. | COMMENT |
| MEDIUM | docs/legacy/training.md | 109 | Our [`prime-rl`](https://github.com/PrimeIntellect-ai/prime-rl) trainer is a production-ready async RL training framewor | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 491 | CODE | |
| LOW | tests/conftest.py | 553 | CODE | |
| LOW | tests/v1/conftest.py | 120 | CODE | |
| LOW | verifiers/legacy/clients/openai_completions_client.py | 98 | CODE | |
| LOW | verifiers/legacy/gepa/display.py | 73 | CODE | |
| LOW | verifiers/legacy/utils/eval_display.py | 251 | CODE | |
| LOW | verifiers/legacy/utils/display_utils.py | 557 | CODE | |
| LOW | …iers/legacy/rubrics/experimental/hybrid_math_rubric.py | 104 | CODE | |
| LOW | verifiers/legacy/serve/server/env_server.py | 28 | CODE | |
| LOW | verifiers/legacy/serve/server/env_router.py | 96 | CODE | |
| LOW | verifiers/legacy/envs/sandbox_env.py | 58 | CODE | |
| LOW | verifiers/legacy/envs/environment.py | 99 | CODE | |
| LOW | verifiers/legacy/envs/environment.py | 769 | CODE | |
| LOW | verifiers/legacy/envs/environment.py | 823 | CODE | |
| LOW | verifiers/legacy/envs/environment.py | 1220 | CODE | |
| LOW | verifiers/legacy/envs/environment.py | 1278 | CODE | |
| LOW | verifiers/legacy/envs/environment.py | 1365 | CODE | |
| LOW | verifiers/legacy/envs/experimental/cli_agent_env.py | 94 | CODE | |
| LOW | verifiers/legacy/envs/experimental/opencode_rlm_env.py | 183 | CODE | |
| LOW | verifiers/legacy/envs/experimental/opencode_env.py | 173 | CODE | |
| LOW | verifiers/legacy/envs/experimental/sandbox_mixin.py | 167 | CODE | |
| LOW | verifiers/legacy/envs/experimental/gym_env.py | 58 | CODE | |
| LOW | …gacy/envs/experimental/composable/sandbox_debug_env.py | 46 | CODE | |
| LOW | …s/legacy/envs/experimental/composable/harnesses/rlm.py | 128 | CODE | |
| LOW | …vs/experimental/composable/harnesses/mini_swe_agent.py | 84 | CODE | |
| LOW | …vs/experimental/composable/harnesses/mini_swe_agent.py | 172 | CODE | |
| LOW | …acy/envs/experimental/composable/harnesses/opencode.py | 90 | CODE | |
| LOW | …acy/envs/experimental/composable/harnesses/opencode.py | 149 | CODE | |
| LOW | …acy/envs/experimental/composable/harnesses/opencode.py | 230 | CODE | |
| LOW | …xperimental/composable/tasksets/swe/r2e_gym/taskset.py | 177 | CODE | |
| LOW | …nvs/experimental/composable/tasksets/math/math_task.py | 40 | CODE | |
| LOW | …cy/envs/experimental/composable/tasksets/cp/cp_task.py | 143 | CODE | |
| LOW | verifiers/legacy/envs/integrations/textarena_env.py | 44 | CODE | |
| LOW | verifiers/legacy/envs/integrations/openenv_env.py | 94 | CODE | |
| LOW | verifiers/legacy/envs/integrations/openenv_env.py | 169 | CODE | |
| LOW | …rs/legacy/envs/integrations/browser_env/browser_env.py | 48 | CODE | |
| LOW | …legacy/envs/integrations/browser_env/modes/cua_mode.py | 69 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_renderer_client.py | 601 | # When vLLM hits max_tokens mid-completion, the previous step carries | COMMENT |
| LOW | verifiers/v1/harnesses/null/program.py | 21 | # OpenAI error code "context_length_exceeded"; OpenRouter relays the raw body. | COMMENT |
| LOW | verifiers/v1/utils/git.py | 41 | # reports: a failure in add, diff, reset, or head fails the capture. A failed | COMMENT |
| LOW | verifiers/legacy/utils/save_utils.py | 301 | # flatten metrics to top-level keys (backwards compatibility) | COMMENT |
| LOW | …/composable/tasksets/swe/swe_rebench_v2/log_parsers.py | 1 | # ruff: noqa | COMMENT |
| LOW | configs/gepa/nemotron-3.toml | 1 | # Nemotron 3 models. Update both fields when switching sizes. | COMMENT |
| LOW | configs/gepa/qwen-3-5.toml | 1 | # Qwen3.5 dense models. Update both fields when switching sizes. | COMMENT |
| LOW | configs/gepa/gpt-oss.toml | 1 | # gpt-oss models. Update both fields when switching sizes. | COMMENT |
| LOW | configs/gepa/llama-3.toml | 1 | # Llama 3.2 models. Update both fields when switching sizes. | COMMENT |
| LOW | configs/gepa/qwen-3-5-moe.toml | 1 | # Qwen3.5 MoE models. Update both fields when switching sizes. | COMMENT |
| LOW | configs/eval/nemotron-3.toml | 21 | # [[eval]] | COMMENT |
| LOW | configs/eval/qwen-3-5.toml | 21 | # env_id = "primeintellect/dspy-flights" | COMMENT |
| LOW | configs/eval/gpt-oss.toml | 21 | # [[eval]] | COMMENT |
| LOW | configs/eval/llama-3.toml | 21 | # [[eval]] | COMMENT |
| LOW | configs/rl/qwen.toml | 21 | COMMENT | |
| LOW | configs/rl/qwen-moe.toml | 21 | COMMENT | |
| LOW | configs/rl/gpt-oss.toml | 21 | # id = "primeintellect/wiki-search" | COMMENT |
| LOW | configs/rl/llama.toml | 21 | COMMENT | |
| LOW | configs/rl/nemotron.toml | 21 | # id = "primeintellect/wiki-search" | COMMENT |
| LOW | assets/templates/browserbase/cua/setup.sh | 1 | #!/bin/bash | COMMENT |
| LOW | assets/templates/browserbase/cua/setup-binary.sh | 1 | #!/bin/bash | COMMENT |
| LOW | assets/templates/browserbase/cua/build-and-push.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …sets/templates/browserbase/cua/scripts/build-binary.sh | 1 | #!/bin/bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_stateful_tool_env.py | 166 | # Create a tool call with invalid JSON arguments | COMMENT |
| MEDIUM | tests/test_tool_env.py | 158 | # Create a tool call with invalid JSON arguments | COMMENT |
| MEDIUM | tests/test_cli_agent_env.py | 406 | # Create a second task | COMMENT |
| MEDIUM | tests/test_environment.py | 25 | # Create a concrete implementation for testing the abstract base class | COMMENT |
| MEDIUM⚡ | verifiers/v1/runtimes/modal.py | 275 | # Create the parent first (Modal's write does not mkdir). | COMMENT |
| MEDIUM | …/composable/tasksets/swe/swe_rebench_v2/log_parsers.py | 2892 | # Create a unique key for the test | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_save_utils.py | 1210 | # Step 2: prior was ["A"], current is ["A", "A"]. Multiset budget | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 31 | # Step 1: Login to Docker Hub | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 36 | # Step 2: Build the binary | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 41 | # Step 3: Extract binary from builder | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 55 | # Step 4: Build runtime image | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 60 | # Step 5: Push to Docker Hub | COMMENT |
| LOW | …sets/templates/browserbase/cua/scripts/build-binary.sh | 27 | # Step 1: Bundle with esbuild | COMMENT |
| LOW⚡ | …sets/templates/browserbase/cua/scripts/build-binary.sh | 40 | # Step 2: Generate SEA blob | COMMENT |
| LOW⚡ | …sets/templates/browserbase/cua/scripts/build-binary.sh | 46 | # Step 3: Create the binary | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_save_utils.py | 1210 | # Step 2: prior was ["A"], current is ["A", "A"]. Multiset budget | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 31 | # Step 1: Login to Docker Hub | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 36 | # Step 2: Build the binary | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 41 | # Step 3: Extract binary from builder | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 55 | # Step 4: Build runtime image | COMMENT |
| LOW⚡ | assets/templates/browserbase/cua/build-and-push.sh | 60 | # Step 5: Push to Docker Hub | COMMENT |
| LOW | …sets/templates/browserbase/cua/scripts/build-binary.sh | 27 | # Step 1: Bundle with esbuild | COMMENT |
| LOW⚡ | …sets/templates/browserbase/cua/scripts/build-binary.sh | 40 | # Step 2: Generate SEA blob | COMMENT |
| LOW⚡ | …sets/templates/browserbase/cua/scripts/build-binary.sh | 46 | # Step 3: Create the binary | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_imports.py | 41 | # Check if this is an expected optional dependency error | COMMENT |
| LOW | verifiers/legacy/parsers/xml_parser.py | 157 | # Check if the message has at least one valid field | COMMENT |
| LOW | verifiers/legacy/parsers/xml_parser.py | 182 | # Check if field exists in non-stripped version too (proper spacing) | COMMENT |
| LOW | verifiers/legacy/parsers/xml_parser.py | 203 | # Check if any field from the first field set starts the message | COMMENT |
| LOW | verifiers/legacy/parsers/xml_parser.py | 213 | # Check if any field from the last field set ends the message | COMMENT |
| LOW | verifiers/legacy/gepa/display.py | 173 | # Check if this is a valset eval by matching example_ids | COMMENT |
| LOW | verifiers/legacy/utils/display_utils.py | 453 | # Check if more chars follow (escape sequence vs standalone Esc) | COMMENT |
| LOW | verifiers/legacy/envs/environment.py | 322 | # Check if a system message already exists (first message) | COMMENT |
| LOW | …/composable/tasksets/swe/swe_rebench_v2/log_parsers.py | 2497 | # Check if Pass column has a value (look for leading spaces pattern) | COMMENT |
| LOW | …/composable/tasksets/swe/swe_rebench_v2/log_parsers.py | 2907 | # Check if counters are consecutive (indicating pass) | COMMENT |
| LOW | …/composable/tasksets/swe/swe_rebench_v2/log_parsers.py | 3121 | # Check if this is a test line (starts with "- ") | COMMENT |
| LOW | …s/legacy/envs/experimental/utils/git_checkout_cache.py | 23 | # Open file handles that hold a process-lifetime shared lock on each | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | verifiers/legacy/utils/save_utils.py | 202 | Convert a State to a serializable RolloutOutput. Args: state: The State object to convert. state_co | STRING |
| HIGH | verifiers/legacy/utils/install_utils.py | 30 | Parse environment ID into (owner, name, version). Args: env_id: Environment ID like 'owner/name' or 'owner/ | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …rifiers/legacy/envs/integrations/browser_env/README.md | 46 | export BROWSERBASE_API_KEY="your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/v1/test_judges.py | 442 | response = JudgeResponse(text="as an AI language model I cannot grade this") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | assets/templates/browserbase/cua/build-and-push.sh | 9 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | verifiers/v1/interception/server.py | 474 | async def handle_request( | CODE |