coder-eval 0.12.6__tar.gz → 0.12.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/contracts.md +8 -3
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/orchestration.md +17 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/harbor-e2e.yml +2 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/pr-checks.yml +6 -5
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/publish-testpypi.yml +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/release.yml +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/CHANGELOG.md +89 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/PKG-INFO +5 -5
- {coder_eval-0.12.6 → coder_eval-0.12.7}/action.yml +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docker/Dockerfile +7 -7
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docker/Dockerfile.runtime +3 -3
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/REPORT_SCHEMA.md +9 -6
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/TASK_DEFINITION_GUIDE.md +21 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/ANTIGRAVITY.md +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/efficiency-charts.tsx +3 -3
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/window-summary.tsx +4 -4
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/criteria.md +1 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/skills/task/SKILL.md +4 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/pyproject.toml +10 -8
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/__init__.py +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/antigravity_agent.py +4 -4
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/pi_agent.py +2 -2
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/command_executed.py +48 -12
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/agent.py +2 -2
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/agent_config.py +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/criteria.py +27 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestrator.py +18 -9
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +1 -1
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_antigravity_agent.py +3 -28
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_command_executed.py +97 -11
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_success_criterion_union.py +25 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timeout_orchestrator.py +83 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/uv.lock +126 -61
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/commands/coder-eval-code-review-full.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/commands/coder-eval-code-review-wf.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/commands/coder-eval-code-review.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/commands/coder-eval-create-plan.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/commands/coder-eval-implement-plan.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/commands/coder-eval-review.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/harness-candidates.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/agents.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/isolation.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/lint-rules.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/permissions.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/persistence.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/reporting.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/notes/timing.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/shared/axes.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/shared/multi-model-review.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/shared/review-rubric.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/shared/run-layout.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/workflows/cr-axis.js +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude/workflows/cr-parent.js +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.claude-plugin/marketplace.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.env.example +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/CODEOWNERS +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/actionlint.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/code_review.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/dependabot.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/pages-stub/index.html +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/scripts/diagnose_delegate_token_claims.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/scripts/harbor_e2e.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/scripts/release_notes.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/claude-pr-review.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/codeql.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/conventional-commits.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/docker-publish.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/docs.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.github/workflows/verify-published-action.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.gitignore +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.pre-commit-config.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/.python-version +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/ADOPTERS.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/CLAUDE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/CODE_OF_CONDUCT.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/CONTRIBUTING.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/LICENSE +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/Makefile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/NOTICE +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/SECURITY.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/comparison.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docker/coder_eval_entrypoint.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docker/coder_eval_runtime_entrypoint.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/AB_EXPERIMENTS.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/CI_GATE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/DATASETS.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/DIALOG_MODE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/DOCKER_ISOLATION.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/EXTENDING.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/PLUGIN.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/USER_GUIDE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/CLAUDE_CODE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/CODEX.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/DELEGATE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/HARNESS_PARITY.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/OPENCODE.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/agents/PI.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/assets/hero.gif +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/comparison.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/index.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/llms.txt +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/01-first-evaluation.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/02-ci-pipeline.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/03-evalboard-local.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/04-writing-a-task.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/05-comparing-models.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/06-use-docker-isolation.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/docs/tutorials/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/.gitignore +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/col-help.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/collapsible-rail.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/harness-badge.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/harness-selector.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/scroll-table.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/search-box.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/skeleton.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/unit-toggle.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_components/version-list.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_lib/source-param.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/daily-chart.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/harness-legend.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/harness-series.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/tag-rail.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/api/download/route.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/api/file/route.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/api/refresh/route.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/error.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/globals.css +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/icon.png +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/layout.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/loading.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/page.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/path-to-ga/page.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/path-to-ga/task-table.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/scribe/page.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/scribe/run-table.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/trends/actions.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/trends/page.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/trends/trends-view.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/watchlist/page.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/next-env.d.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/next.config.mjs +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/package.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/pnpm-lock.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/postcss.config.mjs +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/public/harness/antigravity.png +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/public/harness/claude-code.png +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/public/harness/codex.png +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/public/harness/pi.png +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/public/uipath.png +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/tailwind.config.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/tsconfig.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/vitest.config.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/vitest.setup.ts +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/default.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/early-stop-ab.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/model-comparison.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/permissions-smoke.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/plugin-comparison.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/prompt-mutations-example.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/experiments/smoke_variants.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/litellm/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/litellm/cost_logger.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/litellm/litellm-config.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/litellm/start-litellm.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/mkdocs.yml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/osv-scanner.toml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/cli-setup.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/repo-layout.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/run-layout.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/task-rubric.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/skills/init/SKILL.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/check_commit_msg.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/corpus/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/corpus/antigravity.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/corpus/claude-code.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/corpus/codex.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/corpus/opencode.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/corpus/pi.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/scripts/timing/decompose_run.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/.gitattributes +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/_logging.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/_skills.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/claude_code_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/codex_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/delegate/.gitignore +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/delegate/delegate_host.mjs +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/delegate/package.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/delegate_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/noop_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/opencode_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/registry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/agents/watchdog.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/analysis.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/argv_match.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/console.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/evaluate_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/evaluate_target.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/execute_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/export_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/harbor_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/plan_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/report_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/run_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/run_helpers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/run_task_internal_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/cli/utils.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/agent_judge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/base.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/classification_match.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/cli_called.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/commands_efficiency.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/file_check.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/file_contains.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/file_exists.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/file_matches_regex.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/json_check.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/llm_judge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/reference_comparison.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/run_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/skill_triggered.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/system_one_judge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/criteria/uipath_eval.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/durations.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/budget.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/categories.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/categorization.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/checker_misuse.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/executor.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/judge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/reference.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/retry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/errors/timeout.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/checker.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_context.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_litellm.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_persistence.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_system_one.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/judge_usage.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/sub_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/summaries.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/system_one_scoring.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/evaluation/verdict_tool.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/formatting.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/fs_permissions.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/agent_paths.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/atif_emit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/atif_hydrate.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/atif_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/experiment_packager.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/packager.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/portability.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/harbor/reward.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/invocation_log.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/isolation/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/isolation/docker_runner.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/litellm_cost.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/logging_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/cli_match.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/container_context.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/container_paths.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/enums.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/experiment.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/judge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/judge_defaults.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/limits.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/merge_strategy.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/mutations.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/results.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/routing.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/sandbox.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/system_one.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/tasks.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/telemetry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/models/templates.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/batch.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/config_merge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/early_stop.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/evaluation.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/experiment.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/overrides.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/regrade.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/run_limits.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/orchestration/task_loader.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/path_utils.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/plugins.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/pricing.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/py.typed +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/reports/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/reports/experiment.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/reports/helpers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/reports/html.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/reports/junit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/reports/markdown.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/resources/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/resources/tags.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/result_metrics.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/run_record.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/sandbox.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/ast_similarity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/complexity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/quality.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/signature_similarity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/similarity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/scoring/token_similarity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/simulation/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/simulation/termination.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/simulation/user_simulator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/stats.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/streaming/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/streaming/callbacks.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/streaming/collector.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/streaming/events.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/streaming/renderers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/streaming/wire.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/telemetry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/timing.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/src/coder_eval/utils.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agentless_smoke_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/antigravity_hello_world.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/claude_hello_world.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/claude_hello_world_docker.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/claude_subagent_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_hello_world.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_parallel_commands.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_skills_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_string_utils.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/codex_subagent_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/subagent_bash_long_input.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/agents/subagent_merge_sort.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/anti_cheat_reference/reference/solution.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/byod_smoke_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dataset_example.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/datasets/sentiment.jsonl +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/delegate/fizzbuzz_delegate.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/delegate/hello_date_delegate.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dockerfile_build_example/environment/input.txt +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/fibonacci_with_template.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/hello_date.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/inline_starter_example.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/internal/session_resumption.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/mock_path_dirs_smoke.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/opencode_smoke_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/pi_smoke_test.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/record_cli_responses.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/run_limits/max_turns_cap.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/run_limits/turn_timeout.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/sentiment_classification.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_agent_judge.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_llm_judge.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_negative_path.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_system_one_judge.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_task_timeout.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/smoke_variants.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/test_sandbox.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tasks/token_check.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/templates/byod_smoke_test/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/templates/fibonacci-starter/README.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/templates/fibonacci-starter/src/main.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/templates/fibonacci-starter/tests/test_main.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_bracket_clock.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_container_contract.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/_scrub.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/task.toml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/live_criteria.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/run_full.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_fixtures/timing_union_cases.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/_path_helpers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/conftest.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/atif/known_good_trajectory.json +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/mock_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/pi_happy_stream.jsonl +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/fixtures/text_stub_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/action_docs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/agent_roster_parity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/dead_config_fields.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/doc_env_parity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/doc_examples.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/doc_indexes.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/doc_schema_parity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/generated.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/live_verdict_contract.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/plugin_manifest_parity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/plugin_reference.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/pricing_mirror.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/prose_budget.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/pyright_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/__init__.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/_layers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/_model_ctor.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/base.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce051_no_driver_override.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce060_message_id_declared.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_agent_timing_access.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_silent_except.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_submodule_model_imports.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/open_explicit_encoding.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/register_criterion_required.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/runner.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/violation.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/lint/workflow_outputs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_action_inputs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_action_version_pin.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_config_no_timing_fields.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_config_optional_type.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_config_registry_dispatch.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_config_sdk_decoupling.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_golden_master.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_judge_criterion.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_telemetry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_telemetry_advanced.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agent_timeout.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_agentless.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_atif_emit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_atif_hydrate.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_atif_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_byoa_plugin.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_byoa_plugin_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_byod_feature.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_check_all_async.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_checker_logging.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_classification_match.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_claude_settings_enforcement_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cleanup_preservation_guard.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_backend_flag.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_called_criterion.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_empty_glob.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_match_parity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_sdk_options.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_set_overrides.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_telemetry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cli_type_flag.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_code_review_bugs.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_codex_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_codex_agent_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_codex_agent_unit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_codex_token_mapping.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_command_statistics.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_command_telemetry_result_data.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_commands_efficiency.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_config_lineage.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_config_merge_engine.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_config_precedence.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_container_context.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_continuous_scoring.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_cost_accounting_paths.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_criterion_result_round_trip.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_custom_lint.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_dataset_expansion.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_debug_logging.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_delegate_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_delegate_agent_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_delegate_agent_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_delegate_agent_registration.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_detached_grading_boundaries.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_detached_grading_guards.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_build_failure.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_litellm_env.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_runner_container_death.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_runner_mounts.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_runner_stream_limit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_wildcard_env.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_docker_workdir_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_driver_resolver.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_durations.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_early_stop.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_error_handling.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_evaluate_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_evaluate_format_harbor.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_evaluate_target.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_evaluator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_event_collector.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_execute_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_execute_evaluate_loop.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_execute_format_harbor.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_experiment_cli.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_experiment_loader.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_experiment_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_experiment_reports.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_experiment_resolver.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_experiment_runner.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_file_check.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_file_contains_scoring.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_formatting.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_git_clone_failure.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_glob_paths_in_file_criteria.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_e2e_fixtures.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_experiment_packager.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_export_golden.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_packager.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_portability.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_harbor_reward.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_heartbeat_watchdog.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_ignore_patterns_negation.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_image_from_dockerfiles.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_image_skew_refusal.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_integration.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_json_check.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_anthropic.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_bedrock.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_burn_in_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_context_builder.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_litellm.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_persistence.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_judge_system_one.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_lint_no_top_level_run_limits.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_lint_runner.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_litellm_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_litellm_cost.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_litellm_cost_logger.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_litellm_judge_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_litellm_route.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_llm_judge_criterion.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_log_tail_buffer.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_logging.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_logging_isolation.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_merge_characterization.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_merge_strategy_annotations.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_merge_unification.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_mutations.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_new_criteria.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_node_env_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_opencode_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_optional_dependencies.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_orchestrator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_orchestrator_error_log_tail.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_orchestrator_telemetry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_overrides_engine.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_parallel.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_path_utils.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pi_agent.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pi_agent_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pi_smoke_task.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_plan_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_plugin_processing.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_plugins.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_post_run.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pr_review_workflow.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pre_run.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_preservation_mode.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pricing_mirror.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_pricing_registry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_prose_budget.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_prose_budget_commands.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reference_comparison_scoring.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reference_evaluator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reference_missing_file.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reference_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reference_permissions.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_registry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_regrade.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_release_notes.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_replicate_stats.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_report_command.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reports.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reports_html.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reports_junit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_reports_package.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_resolve_task_files.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_result_metrics.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_resume.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_retry_logic_comprehensive.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_route_seam_exhaustiveness.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_routing.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_command_junit.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_command_stdout.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_helpers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_limits_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_limits_orchestrator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_limits_resolver.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_metrics.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_record.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_run_summary_rebuild.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_runtime_tool_versions.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_adopt.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_layer_builder.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_optional.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_record_cli.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_security.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_symlink_preservation.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_templates.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sandbox_venv_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_scorers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_scoring_quality.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sdk_option_classification.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_seed_from_prior_result.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_simulation_config.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_simulation_integration.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_simulation_termination.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_simulation_trials.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_skill_triggered.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_stats.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_stats_nonfinite.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_agent_integration.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_batch.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_callbacks.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_cli.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_events.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_orchestrator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_renderers.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_streaming_wire.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_sub_agent_runner.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_suite_rollup.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_summaries.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_system_one_judge.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_system_one_judge_live.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_tags.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_task_definition_unknown_fields.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_teardown_interrupt.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_telemetry.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_template_env_expansion.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_threshold_enforcement.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timeout_batch.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timeout_categorization.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timeout_exceptions.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timeout_models.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timing_close_window.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timing_identity_contract.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_timing_union_parity.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_token_usage.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_uipath_eval.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_ungraded_reporting.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_user_simulator.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_utils.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_utterance_extraction.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_variant_prompt_file.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_verdict_tool.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_verify_published_workflow.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_watchdog.py +0 -0
- {coder_eval-0.12.6 → coder_eval-0.12.7}/tests/test_yaml_migration.py +0 -0
|
@@ -95,9 +95,14 @@ the raw text alone can stop counting.
|
|
|
95
95
|
It is memoized because the early-stop watcher re-scans the whole accumulated trajectory on
|
|
96
96
|
every tool-call event, normalizing the same command many times per run.
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
and
|
|
98
|
+
Each regex search is bounded to 2000 characters to limit ReDoS on a large command string,
|
|
99
|
+
but the whole command is searched: the first 2000 characters, then the rest in windows that
|
|
100
|
+
start and end on logical-line boundaries. Agents write long heredoc scripts that end in the
|
|
101
|
+
command a task checks for (`cat > x <<EOF ... EOF` then `uip agent validate`), and a single
|
|
102
|
+
leading window scored those as never run. Normalization runs per window, so `shlex` never
|
|
103
|
+
sees more than the bound and needs no separate guard. Only a Bash command is windowed:
|
|
104
|
+
another tool's params are JSON, and a later window of a Write/Edit body is file content,
|
|
105
|
+
not a command the agent ran, so those keep the single leading window.
|
|
101
106
|
|
|
102
107
|
## Recording a CLI invocation
|
|
103
108
|
|
|
@@ -108,6 +108,23 @@ VERDICT, never the facts — the seeding cannot restore a fact the execute phase
|
|
|
108
108
|
captured. The budget gate runs AFTER the criteria on the graded path purely for
|
|
109
109
|
partial-credit visibility, and there is no partial credit under `execute`.
|
|
110
110
|
|
|
111
|
+
### Post-failure evidence is declared, not proven
|
|
112
|
+
|
|
113
|
+
A timed-out run used to score 0.00 on artifacts that every grader accepted, because the
|
|
114
|
+
whole uipath-maestro-flow suite grades through `run_command` and the path ran only file
|
|
115
|
+
checks. `read_only: true` admits a single named command.
|
|
116
|
+
|
|
117
|
+
The gate could not stay a ClassVar: `run_command` is safe or unsafe per criterion, not
|
|
118
|
+
per type, and no analysis decides which — an arbitrary shell command can start a cloud
|
|
119
|
+
job (`uip maestro flow debug` does). So the flag is the AUTHOR's claim, the ClassVar
|
|
120
|
+
stayed the type-level answer, and `evaluable_after_agent_failure` became the per-instance
|
|
121
|
+
one every caller asks. Widening the flag to the base would let a judge declare itself
|
|
122
|
+
deterministic, which is a different and false claim.
|
|
123
|
+
|
|
124
|
+
What keeps it honest: results land in `post_failure_criteria_results`, which
|
|
125
|
+
`calculate_weighted_score` never reads. A timed-out run stays ERROR at 0.0 no matter what
|
|
126
|
+
the diagnostic pass finds — the flag buys evidence, never a verdict.
|
|
127
|
+
|
|
111
128
|
### Rates need verdict evidence, not bucket counts
|
|
112
129
|
|
|
113
130
|
A published rate divides by rows that actually carry a verdict, not by a bucket count. The
|
|
@@ -29,6 +29,8 @@ env:
|
|
|
29
29
|
# Anthropic-credit spend off this path; DirectRoute is exercised elsewhere.
|
|
30
30
|
API_BACKEND: "bedrock"
|
|
31
31
|
CLAUDE_CODE_USE_BEDROCK: "1"
|
|
32
|
+
# Same expression as pr-checks.yml (see the comment there).
|
|
33
|
+
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: ${{ secrets.SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS || 'openai-codex-cli-bin,openai-codex' }},claude-agent-sdk
|
|
32
34
|
|
|
33
35
|
jobs:
|
|
34
36
|
harbor-e2e:
|
|
@@ -38,11 +38,12 @@ env:
|
|
|
38
38
|
TELEMETRY_ENABLED: "false"
|
|
39
39
|
# The `uipath-*` pool enforces a minimum package-age safe-chain check on installs.
|
|
40
40
|
# Workflow-level so every installing job inherits it; per-job copies are how some
|
|
41
|
-
# jobs previously ended up with no exclusions at all.
|
|
42
|
-
#
|
|
43
|
-
#
|
|
44
|
-
# list in docker/Dockerfile; deliberately
|
|
45
|
-
|
|
41
|
+
# jobs previously ended up with no exclusions at all. A repo secret of this name
|
|
42
|
+
# replaces the literal when set, so claude-agent-sdk sits outside the `||`: its wheel
|
|
43
|
+
# bundles the Claude Code CLI, and new-model support ships there faster than the
|
|
44
|
+
# gate window. (Image builds carry their own list in docker/Dockerfile; deliberately
|
|
45
|
+
# not the same set.)
|
|
46
|
+
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: ${{ secrets.SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS || 'openai-codex-cli-bin,openai-codex' }},claude-agent-sdk
|
|
46
47
|
|
|
47
48
|
jobs:
|
|
48
49
|
quality-gate:
|
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
timeout-minutes: 10
|
|
39
39
|
env:
|
|
40
40
|
# `uv build` resolves build deps under the pool's safe-chain gate.
|
|
41
|
-
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: ${{ secrets.SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS || 'openai-codex-cli-bin,openai-codex' }}
|
|
41
|
+
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: ${{ secrets.SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS || 'openai-codex-cli-bin,openai-codex' }},claude-agent-sdk
|
|
42
42
|
environment:
|
|
43
43
|
name: testpypi
|
|
44
44
|
url: https://test.pypi.org/project/coder-eval/
|
|
@@ -75,7 +75,7 @@ jobs:
|
|
|
75
75
|
# Load-bearing on the release path: the pool enforces a package-age safe-chain
|
|
76
76
|
# check on uv installs. Same expression as pr-checks.yml (see the comment there),
|
|
77
77
|
# so a package can't pass PR CI and then fail the release install.
|
|
78
|
-
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: ${{ secrets.SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS || 'openai-codex-cli-bin,openai-codex' }}
|
|
78
|
+
SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: ${{ secrets.SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS || 'openai-codex-cli-bin,openai-codex' }},claude-agent-sdk
|
|
79
79
|
|
|
80
80
|
steps:
|
|
81
81
|
# Only a real release (main) needs the app token: semantic-release pushes the
|
|
@@ -2,6 +2,95 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.12.7 (2026-09-25)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **criteria**: Search past the 2000-char bound only in Bash commands
|
|
10
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
11
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
12
|
+
|
|
13
|
+
- **criteria**: Search the whole command in command_executed and bump harness SDKs for Opus 5.5
|
|
14
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
15
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
16
|
+
|
|
17
|
+
- **criteria**: Search the whole command in command_executed, not just the first 2000 chars
|
|
18
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
19
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
20
|
+
|
|
21
|
+
- **docs**: Drop the budget-breach trigger, cut read_only to its contract
|
|
22
|
+
([#197](https://github.com/UiPath/coder_eval/pull/197),
|
|
23
|
+
[`28c846e`](https://github.com/UiPath/coder_eval/commit/28c846ea6858fef04d366d245e5f7b679c2b75a1))
|
|
24
|
+
|
|
25
|
+
- **evalboard**: List date-named runs flagged adhoc in the Ad-hoc section
|
|
26
|
+
([#200](https://github.com/UiPath/coder_eval/pull/200),
|
|
27
|
+
[`5bf4a72`](https://github.com/UiPath/coder_eval/commit/5bf4a72693f007e93da678b58e0ddb84fa1bf63c))
|
|
28
|
+
|
|
29
|
+
- **harbor**: Declare SUPPORTS_ATIF as a ClassVar to match harbor 0.23
|
|
30
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
31
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
32
|
+
|
|
33
|
+
### Build System
|
|
34
|
+
|
|
35
|
+
- **deps**: Bump harness SDKs and CLIs to latest
|
|
36
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
37
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
38
|
+
|
|
39
|
+
- **deps**: Exempt claude-agent-sdk from the 48h package-age gate and take the latest SDK
|
|
40
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
41
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
42
|
+
|
|
43
|
+
- **deps**: Hold the SDK bump to releases past CI's 48h package-age gate
|
|
44
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
45
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
46
|
+
|
|
47
|
+
### Continuous Integration
|
|
48
|
+
|
|
49
|
+
- **harbor**: Exempt claude-agent-sdk from the package-age gate in Harbor E2E
|
|
50
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
51
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
52
|
+
|
|
53
|
+
### Documentation
|
|
54
|
+
|
|
55
|
+
- **agents**: Update Pi and Antigravity references for the harness bump
|
|
56
|
+
([#196](https://github.com/UiPath/coder_eval/pull/196),
|
|
57
|
+
[`3aa2db3`](https://github.com/UiPath/coder_eval/commit/3aa2db30cdb07e47ca2cce98b47385eedb2de9cd))
|
|
58
|
+
|
|
59
|
+
- **criteria**: Name the budget-breach trigger on the post-failure path
|
|
60
|
+
([#197](https://github.com/UiPath/coder_eval/pull/197),
|
|
61
|
+
[`28c846e`](https://github.com/UiPath/coder_eval/commit/28c846ea6858fef04d366d245e5f7b679c2b75a1))
|
|
62
|
+
|
|
63
|
+
### Features
|
|
64
|
+
|
|
65
|
+
- **criteria**: Let a run_command criterion opt in to post-failure grading
|
|
66
|
+
([#197](https://github.com/UiPath/coder_eval/pull/197),
|
|
67
|
+
[`28c846e`](https://github.com/UiPath/coder_eval/commit/28c846ea6858fef04d366d245e5f7b679c2b75a1))
|
|
68
|
+
|
|
69
|
+
- **evalboard**: Count agent time apart from eval overhead, and filter runs by variant
|
|
70
|
+
([#198](https://github.com/UiPath/coder_eval/pull/198),
|
|
71
|
+
[`b04829c`](https://github.com/UiPath/coder_eval/commit/b04829c4dec86772822a28ef1b3fa7316c1f3c8d))
|
|
72
|
+
|
|
73
|
+
- **evalboard**: Headline agent time per passed task, not full task wall clock
|
|
74
|
+
([#198](https://github.com/UiPath/coder_eval/pull/198),
|
|
75
|
+
[`b04829c`](https://github.com/UiPath/coder_eval/commit/b04829c4dec86772822a28ef1b3fa7316c1f3c8d))
|
|
76
|
+
|
|
77
|
+
- **evalboard**: Show agent time on the run page and filter it by variant
|
|
78
|
+
([#198](https://github.com/UiPath/coder_eval/pull/198),
|
|
79
|
+
[`b04829c`](https://github.com/UiPath/coder_eval/commit/b04829c4dec86772822a28ef1b3fa7316c1f3c8d))
|
|
80
|
+
|
|
81
|
+
- **evalboard**: Show summed agent time in the overview window tile
|
|
82
|
+
([#198](https://github.com/UiPath/coder_eval/pull/198),
|
|
83
|
+
[`b04829c`](https://github.com/UiPath/coder_eval/commit/b04829c4dec86772822a28ef1b3fa7316c1f3c8d))
|
|
84
|
+
|
|
85
|
+
- **evalboard**: Simplify the task timing strip into one bar and two groups
|
|
86
|
+
([#198](https://github.com/UiPath/coder_eval/pull/198),
|
|
87
|
+
[`b04829c`](https://github.com/UiPath/coder_eval/commit/b04829c4dec86772822a28ef1b3fa7316c1f3c8d))
|
|
88
|
+
|
|
89
|
+
- **evalboard**: Split the task timeline into agent time and eval overhead
|
|
90
|
+
([#198](https://github.com/UiPath/coder_eval/pull/198),
|
|
91
|
+
[`b04829c`](https://github.com/UiPath/coder_eval/commit/b04829c4dec86772822a28ef1b3fa7316c1f3c8d))
|
|
92
|
+
|
|
93
|
+
|
|
5
94
|
## v0.12.6 (2026-09-23)
|
|
6
95
|
|
|
7
96
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: coder-eval
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.7
|
|
4
4
|
Summary: Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode, Pi, Delegate) with sandboxed, reproducible YAML task suites.
|
|
5
5
|
Project-URL: Homepage, https://coder-eval.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/coder_eval
|
|
@@ -26,7 +26,7 @@ Requires-Python: >=3.13
|
|
|
26
26
|
Requires-Dist: anthropic<2.0.0,>=1.0.0
|
|
27
27
|
Requires-Dist: anyio>=4.14.2
|
|
28
28
|
Requires-Dist: azure-monitor-opentelemetry-exporter<1.1.0,>=1.0.0b30
|
|
29
|
-
Requires-Dist: claude-agent-sdk>=0.2.
|
|
29
|
+
Requires-Dist: claude-agent-sdk>=0.2.157
|
|
30
30
|
Requires-Dist: click>=8.3.3
|
|
31
31
|
Requires-Dist: httpx2<3.0.0,>=2.12.0
|
|
32
32
|
Requires-Dist: jmespath>=1.1.0
|
|
@@ -43,9 +43,9 @@ Requires-Dist: tomli-w>=1.0.0
|
|
|
43
43
|
Requires-Dist: tqdm>=4.67.3
|
|
44
44
|
Requires-Dist: typer>=0.24.1
|
|
45
45
|
Provides-Extra: antigravity
|
|
46
|
-
Requires-Dist: google-antigravity==0.1.
|
|
46
|
+
Requires-Dist: google-antigravity==0.1.18; extra == 'antigravity'
|
|
47
47
|
Provides-Extra: codex
|
|
48
|
-
Requires-Dist: openai-codex>=0.
|
|
48
|
+
Requires-Dist: openai-codex>=0.155.1; extra == 'codex'
|
|
49
49
|
Provides-Extra: dev
|
|
50
50
|
Requires-Dist: bandit[toml]>=1.9.4; extra == 'dev'
|
|
51
51
|
Requires-Dist: defusedxml>=0.7.1; extra == 'dev'
|
|
@@ -60,7 +60,7 @@ Requires-Dist: pytest-xdist[psutil]>=3.0.0; extra == 'dev'
|
|
|
60
60
|
Requires-Dist: pytest>=9.0.2; extra == 'dev'
|
|
61
61
|
Requires-Dist: ruff>=0.15.7; extra == 'dev'
|
|
62
62
|
Provides-Extra: harbor
|
|
63
|
-
Requires-Dist: harbor==0.
|
|
63
|
+
Requires-Dist: harbor==0.23.0; extra == 'harbor'
|
|
64
64
|
Provides-Extra: litellm
|
|
65
65
|
Requires-Dist: litellm<2.0.0,>=1.95.0; extra == 'litellm'
|
|
66
66
|
Provides-Extra: opencode
|
|
@@ -25,7 +25,7 @@ inputs:
|
|
|
25
25
|
version:
|
|
26
26
|
description: coder-eval version to install from PyPI, or "local" to install from the action checkout
|
|
27
27
|
required: false
|
|
28
|
-
default: "0.12.
|
|
28
|
+
default: "0.12.7" # <-- kept in sync with releases by release.yml
|
|
29
29
|
extras:
|
|
30
30
|
description: >-
|
|
31
31
|
Comma-separated coder-eval extras (`codex`, `antigravity,litellm`), composed
|
|
@@ -30,7 +30,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
30
30
|
# tag and is bumped deliberately -- mirrors the codex CLI pin
|
|
31
31
|
# (`openai-codex-cli-bin==…` in pyproject). Leaving it at `@latest` let Docker
|
|
32
32
|
# layer caching freeze it nondeterministically across rebuilds.
|
|
33
|
-
ARG CLAUDE_CODE_VERSION=2.1.
|
|
33
|
+
ARG CLAUDE_CODE_VERSION=2.1.281
|
|
34
34
|
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
35
35
|
&& apt-get install -y --no-install-recommends nodejs \
|
|
36
36
|
&& rm -rf /var/lib/apt/lists/* \
|
|
@@ -39,7 +39,7 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
|
39
39
|
# Pi Node CLI, pinned — same rationale as the Claude Code pin above (the agent
|
|
40
40
|
# binary is a dominant non-model driver of results; @latest would freeze
|
|
41
41
|
# nondeterministically under layer caching). Node 22 + npm are already present.
|
|
42
|
-
ARG PI_VERSION=0.
|
|
42
|
+
ARG PI_VERSION=0.87.1
|
|
43
43
|
RUN npm install -g @earendil-works/pi-coding-agent@${PI_VERSION}
|
|
44
44
|
|
|
45
45
|
# uv: matches host sandbox.py's `uv venv` + `uv pip install` fast path
|
|
@@ -84,12 +84,12 @@ COPY experiments/default.yaml ./experiments/default.yaml
|
|
|
84
84
|
# pulls the `uipath` SDK from public PyPI (no credentials required).
|
|
85
85
|
ARG CODER_EVAL_UV_EXTRAS=""
|
|
86
86
|
|
|
87
|
-
# safe-chain min-age exclusions for the codex cli-bin pin (see pyproject [tool.uv])
|
|
88
|
-
#
|
|
89
|
-
#
|
|
90
|
-
#
|
|
87
|
+
# safe-chain min-age exclusions for the codex cli-bin pin (see pyproject [tool.uv]),
|
|
88
|
+
# the pinned Antigravity harness, and claude-agent-sdk (its wheel bundles the Claude
|
|
89
|
+
# Code CLI). All three are always installed, so the default excludes their pinned
|
|
90
|
+
# packages from the min-age gate (each tracks a rapidly-moving harness and may be
|
|
91
91
|
# newer than the gate window); callers may override.
|
|
92
|
-
ARG SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="openai-codex-cli-bin,openai-codex,google-antigravity"
|
|
92
|
+
ARG SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="openai-codex-cli-bin,openai-codex,google-antigravity,claude-agent-sdk"
|
|
93
93
|
|
|
94
94
|
# All extras (codex, antigravity, litellm, and the opt-in uipath) resolve from
|
|
95
95
|
# public PyPI per uv.lock, so the build needs no private-index credentials.
|
|
@@ -53,7 +53,7 @@ COPY pyproject.toml uv.lock README.md ./
|
|
|
53
53
|
COPY src/ ./src/
|
|
54
54
|
COPY experiments/default.yaml ./experiments/default.yaml
|
|
55
55
|
|
|
56
|
-
ARG SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="openai-codex-cli-bin,openai-codex"
|
|
56
|
+
ARG SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="openai-codex-cli-bin,openai-codex,claude-agent-sdk"
|
|
57
57
|
# Install the locked deps, then coder_eval itself NON-editable. An editable/path
|
|
58
58
|
# install would leave the package source at /src (outside the kit), so the
|
|
59
59
|
# `COPY --from /opt/coder-eval` overlay would ship a venv that can't import
|
|
@@ -66,7 +66,7 @@ RUN export SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="${SAFE_CHAIN_MINIMUM_PACKA
|
|
|
66
66
|
|
|
67
67
|
# --- 3. Node LTS + the Claude Code CLI, under the kit dir. -------------------
|
|
68
68
|
ARG NODE_VERSION=22.14.0
|
|
69
|
-
ARG CLAUDE_CODE_VERSION=2.1.
|
|
69
|
+
ARG CLAUDE_CODE_VERSION=2.1.281
|
|
70
70
|
# Download to a file first so a bad URL fails the build loudly (a piped
|
|
71
71
|
# `curl | tar` would mask a 404 and only surface later as a missing npm), and
|
|
72
72
|
# verify the tarball against nodejs.org's published SHASUMS256 before extracting
|
|
@@ -109,6 +109,6 @@ RUN chmod +x /usr/local/bin/coder_eval_entrypoint.sh
|
|
|
109
109
|
# label; labels don't survive `COPY --from`). The claude-code pin mirrors the
|
|
110
110
|
# framework image — a parity test (tests/test_image_from_dockerfiles.py) enforces it.
|
|
111
111
|
ARG CODER_EVAL_VERSION=unknown
|
|
112
|
-
ARG CLAUDE_CODE_VERSION=2.1.
|
|
112
|
+
ARG CLAUDE_CODE_VERSION=2.1.281
|
|
113
113
|
LABEL org.coder-eval.version="${CODER_EVAL_VERSION}"
|
|
114
114
|
LABEL org.coder-eval.claude-code-version="${CLAUDE_CODE_VERSION}"
|
|
@@ -188,14 +188,17 @@ fields so subclass keys round-trip.
|
|
|
188
188
|
|
|
189
189
|
### Post-failure criterion evidence
|
|
190
190
|
|
|
191
|
-
When an agent crashes or its turn times out, coder-eval runs only
|
|
192
|
-
read-only artifact criteria while the sandbox is still live: `file_exists`,
|
|
191
|
+
When an agent crashes or its turn times out on a graded run, coder-eval runs only
|
|
192
|
+
deterministic, read-only artifact criteria while the sandbox is still live: `file_exists`,
|
|
193
193
|
`file_contains`, `file_matches_regex`, `file_check`, `json_check`,
|
|
194
|
-
`reference_comparison`, and `classification_match`.
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
`reference_comparison`, and `classification_match`. A `run_command` criterion joins them
|
|
195
|
+
only when the task author sets [`read_only: true`](TASK_DEFINITION_GUIDE.md#run_command)
|
|
196
|
+
on it. Judges, trajectory checks, plain `run_command`, and `uipath_eval` are recorded
|
|
197
|
+
with `evaluation_status="not_evaluated"`; they are not invoked on this recovery path.
|
|
197
198
|
The diagnostic list is additive evidence. An `ERROR` run remains `ERROR`, and its
|
|
198
|
-
canonical score remains 0.0.
|
|
199
|
+
canonical score remains 0.0. The list stays empty under `coder-eval execute`, and on a
|
|
200
|
+
token/cost budget breach, which fires only after every criterion is already scored in
|
|
201
|
+
`success_criteria_results`.
|
|
199
202
|
|
|
200
203
|
### TurnRecord
|
|
201
204
|
|
|
@@ -904,6 +904,12 @@ Runs a command and checks the exit code, with optional stdout matching. **Binary
|
|
|
904
904
|
expected_stdout: "Hello, World!" # Optional: check stdout content
|
|
905
905
|
stdout_match: "exact" # "exact" (default), "contains", or "regex"
|
|
906
906
|
description: "Script must output the correct text"
|
|
907
|
+
|
|
908
|
+
# Also graded when the turn times out or the agent crashes
|
|
909
|
+
- type: "run_command"
|
|
910
|
+
command: "python graders/check_flow.py"
|
|
911
|
+
read_only: true # declaration, not enforcement -- see below
|
|
912
|
+
description: "Flow must contain the approval node"
|
|
907
913
|
```
|
|
908
914
|
|
|
909
915
|
| Field | Default | Description |
|
|
@@ -914,6 +920,19 @@ Runs a command and checks the exit code, with optional stdout matching. **Binary
|
|
|
914
920
|
| `expected_stdout` | `null` | When set, stdout is also checked |
|
|
915
921
|
| `stdout_match` | `"exact"` | Match mode: `exact` (stripped), `contains` (substring), `regex` (pattern) |
|
|
916
922
|
| `score_from_stdout` | `false` | Read a float score (0.0–1.0) from the first stdout line (remaining lines become details); a non-zero exit code or a parse failure scores 0.0. Mutually exclusive with `expected_stdout`. |
|
|
923
|
+
| `read_only` | `false` | Declares the command inspects artifacts only. Its sole effect: a graded run also runs the criterion after a turn timeout or an agent crash — see [Post-failure criterion evidence](REPORT_SCHEMA.md#post-failure-criterion-evidence). |
|
|
924
|
+
|
|
925
|
+
`read_only` is an author declaration, **not** a restriction. coder-eval cannot decide
|
|
926
|
+
whether a shell command is pure, so it verifies nothing and confines nothing: the
|
|
927
|
+
command runs exactly as it always does. Set it only when the command reads artifacts and
|
|
928
|
+
nothing else. Leave it `false` when the command writes state or calls a live service (a
|
|
929
|
+
`uip maestro flow debug` grader starts a real cloud job, so it must stay `false`).
|
|
930
|
+
|
|
931
|
+
Keep a `read_only` criterion's `timeout` short. The diagnostic pass runs after the agent
|
|
932
|
+
is gone, and the commands are not interruptible: a `task_timeout` that expires mid-pass
|
|
933
|
+
cancels the await, not the shell subprocess, so it keeps running while the sandbox is
|
|
934
|
+
torn down. Without a `task_timeout` the pass is bounded only by the sum of these
|
|
935
|
+
timeouts.
|
|
917
936
|
|
|
918
937
|
### `file_matches_regex`
|
|
919
938
|
|
|
@@ -978,6 +997,8 @@ Checks whether the agent executed specific tools/commands during evaluation. Ins
|
|
|
978
997
|
|
|
979
998
|
**Shell normalization.** For a Bash command, both `command_pattern` and `exclude_pattern` are matched against the raw command text **and** its shell-normalized form — the `bash`/`sh`/`zsh -lc "..."` wrapper stripped and shell quoting resolved with `shlex` — and a hit on *either* form counts. So a pattern like `curated_channels` matches whether the agent wrote the argument bare, `'single'`-quoted, `"double"`-quoted, or `\"escaped\"`; you do **not** hand-encode shell quoting. Because the same haystacks also feed `exclude_pattern` and the `max_count` gate, normalization is **not** purely additive: a quote-obfuscated call can now be caught by an exclusion or a `max_count: 0` gate that the raw text alone would have missed — and, conversely, an unedited `exclude_pattern` may now exclude a call it previously let through. Cross-repo suites that hand-encoded quote tolerance in their patterns should re-baseline.
|
|
980
999
|
|
|
1000
|
+
**Long commands.** A Bash command is searched in full: the first 2,000 characters, then the rest in windows of at most 2,000 characters that start and end on line boundaries. So a command that follows a long heredoc in the same Bash call still counts. Other tools match only on the first 2,000 characters of their JSON parameters, so a long Write or Edit body is not read as a command. This is not purely additive either: an `exclude_pattern` or a `max_count: 0` gate can now catch a call late in a long script that it did not see before, so suites should re-baseline. A match that crosses a window boundary is not guaranteed, and `^` and `$` can also match at a window edge.
|
|
1001
|
+
|
|
981
1002
|
**Codex limitation.** Codex agents map `Read`, `Grep`, and `Glob` tools to `shell` commands (they execute via bash), so `tool_name: "Read"` on Codex returns no matches. Use `tool_name: "Bash"` or `tool_name: null` (any tool) for Codex-compatible checks. This criterion works correctly on Claude Code agents, which emit separate `Read`/`Grep`/`Glob` telemetry.
|
|
982
1003
|
|
|
983
1004
|
### `cli_called`
|
|
@@ -27,7 +27,7 @@ working directory — both required for an unattended eval.
|
|
|
27
27
|
pip install 'coder-eval[antigravity]'
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
This pulls in `google-antigravity` (pinned to `0.1.
|
|
30
|
+
This pulls in `google-antigravity` (pinned to `0.1.18`), whose wheel bundles the
|
|
31
31
|
platform `localharness` binary. As with the other agents the SDK is imported lazily
|
|
32
32
|
— a base install without the extra still runs end-to-end; Antigravity tasks fail at
|
|
33
33
|
dispatch with a clear hint to install the extra.
|
{coder_eval-0.12.6 → coder_eval-0.12.7}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx
RENAMED
|
@@ -32,7 +32,7 @@ describe("EfficiencyCharts", () => {
|
|
|
32
32
|
test("opens on the wall-clock metric", () => {
|
|
33
33
|
renderCharts();
|
|
34
34
|
expect(screen.getByRole("heading")).toHaveTextContent(
|
|
35
|
-
"Time per Passed Task",
|
|
35
|
+
"Agent Time per Passed Task",
|
|
36
36
|
);
|
|
37
37
|
expect(
|
|
38
38
|
screen.getByRole("tab", { name: "Time" }),
|
|
@@ -40,10 +40,10 @@ const TABS: Array<{
|
|
|
40
40
|
{
|
|
41
41
|
key: "time",
|
|
42
42
|
label: "Time",
|
|
43
|
-
heading: "Time per Passed Task",
|
|
44
|
-
title: "
|
|
43
|
+
heading: "Agent Time per Passed Task",
|
|
44
|
+
title: "Agent wall clock ÷ tasks passed. Counts the agent's turns only: sandbox setup, pre_run, grading and cleanup are excluded. Every task's agent seconds count, failures included; only passes count in the denominator, so a run that fails more reads slower.",
|
|
45
45
|
blurb: (scoped) =>
|
|
46
|
-
"
|
|
46
|
+
"Agent seconds of every task that ran (setup and grading excluded) ÷ the number that passed · hover a point for the share within 2× expected" +
|
|
47
47
|
(scoped ? " · scoped to the active filter" : ""),
|
|
48
48
|
render: (props) => <TimePerPassedTaskChart {...props} />,
|
|
49
49
|
},
|
|
@@ -36,7 +36,7 @@ function Tile({
|
|
|
36
36
|
// Front-page window rollup: total spend + shape of the runs in scope. Every
|
|
37
37
|
// tile is summed over the same set — `runCount` and `totals` both come out of
|
|
38
38
|
// getOverview's single pass, so the Runs tile can never disagree with the
|
|
39
|
-
// Cost/Tasks/Pass/
|
|
39
|
+
// Cost/Tasks/Pass/Agent time tiles or with the charts. The totals are scoped to
|
|
40
40
|
// matching tasks whenever a filter is active.
|
|
41
41
|
//
|
|
42
42
|
// This describes the window the charts plot, NOT however far the run table below
|
|
@@ -91,9 +91,9 @@ export function WindowSummary({
|
|
|
91
91
|
valueClass={passClass(pct)}
|
|
92
92
|
/>
|
|
93
93
|
<Tile
|
|
94
|
-
label="
|
|
95
|
-
value={fmtDuration(totals.
|
|
96
|
-
sub={totals.
|
|
94
|
+
label="Agent time"
|
|
95
|
+
value={fmtDuration(totals.agentSeconds)}
|
|
96
|
+
sub={totals.agentPartial ? "some runs missing" : undefined}
|
|
97
97
|
/>
|
|
98
98
|
</div>
|
|
99
99
|
</section>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "coder-eval",
|
|
4
4
|
"displayName": "Coder Eval",
|
|
5
|
-
"version": "0.12.
|
|
5
|
+
"version": "0.12.7",
|
|
6
6
|
"description": "Test whether your Claude Code skills actually trigger, and benchmark any coding agent — author, run, and analyze the eval suite that proves it, locally or as a CI gate.",
|
|
7
7
|
"author": { "name": "UiPath", "email": "coder-eval@uipath.com", "url": "https://github.com/UiPath/coder_eval" },
|
|
8
8
|
"homepage": "https://coder-eval.com",
|
|
@@ -249,6 +249,7 @@ Optional:
|
|
|
249
249
|
| `expected_stdout` | Expected stdout content. When set, stdout is also checked. |
|
|
250
250
|
| `stdout_match` | How to match stdout: 'exact' (stripped), 'contains' (substring), 'regex' (pattern) |
|
|
251
251
|
| `score_from_stdout` | When true, read a float score (0.0-1.0) from the first line of stdout. Remaining lines are captured as details. Non-zero exit code or parse failure -> score 0.0. Mutually exclusive with expected_stdout. |
|
|
252
|
+
| `read_only` | Declares this command an artifact-only check: it writes nothing and reaches no live service. Its one effect is that a graded run also runs it after an agent crash or turn timeout, on the diagnostic path, where the result is recorded but never scored. Nothing verifies the declaration; see the Task Definition Guide for when to set it. |
|
|
252
253
|
|
|
253
254
|
### `skill_triggered`
|
|
254
255
|
|
|
@@ -120,6 +120,10 @@ Rules that matter:
|
|
|
120
120
|
filename — a criterion matching that literal is a **smoke check**, not evidence: it
|
|
121
121
|
only proves the agent typed back what it was told. Keep it if you like, at a low
|
|
122
122
|
weight, and put the weight on a criterion that checks the resulting *behaviour*.
|
|
123
|
+
- Set `read_only: true` on a `run_command` grader that only inspects artifacts: a run
|
|
124
|
+
whose agent crashed or timed out then still records what the artifacts were worth,
|
|
125
|
+
instead of scoring nothing. Never set it on a command that writes state or calls a
|
|
126
|
+
live service — nothing verifies the claim, and the command runs unchanged.
|
|
123
127
|
- `weight` reflects importance: `0.5` nice-to-have, `1.0` standard, `1.5`–`2.0` critical.
|
|
124
128
|
`weight: 0` makes a criterion informational (reported, but excluded from the score and
|
|
125
129
|
the pass/fail gate).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "coder-eval"
|
|
3
|
-
version = "0.12.
|
|
3
|
+
version = "0.12.7"
|
|
4
4
|
description = "Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode, Pi, Delegate) with sandboxed, reproducible YAML task suites."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -43,7 +43,7 @@ dependencies = [
|
|
|
43
43
|
# explicitly since our code/tests construct httpx2 types directly. Capped to
|
|
44
44
|
# mirror anthropic's own bound on it (`httpx2<3,>=2.0.0`).
|
|
45
45
|
"httpx2>=2.12.0,<3.0.0",
|
|
46
|
-
"claude-agent-sdk>=0.2.
|
|
46
|
+
"claude-agent-sdk>=0.2.157",
|
|
47
47
|
"anyio>=4.14.2",
|
|
48
48
|
"radon>=6.0.1",
|
|
49
49
|
"tqdm>=4.67.3",
|
|
@@ -112,7 +112,7 @@ litellm = [
|
|
|
112
112
|
# Without this extra, the framework still installs and runs; Codex-dependent
|
|
113
113
|
# code paths fail at dispatch with a clear hint pointing back here.
|
|
114
114
|
codex = [
|
|
115
|
-
"openai-codex>=0.
|
|
115
|
+
"openai-codex>=0.155.1",
|
|
116
116
|
]
|
|
117
117
|
# Optional extra that enables Antigravity agent support:
|
|
118
118
|
# - AntigravityAgent implementation using Google's official google-antigravity SDK
|
|
@@ -131,7 +131,7 @@ codex = [
|
|
|
131
131
|
# Without this extra the framework still installs and runs; Antigravity-dependent
|
|
132
132
|
# code paths fail at start() with a clear hint pointing back here.
|
|
133
133
|
antigravity = [
|
|
134
|
-
"google-antigravity==0.1.
|
|
134
|
+
"google-antigravity==0.1.18",
|
|
135
135
|
]
|
|
136
136
|
# Optional extra that enables OpenCode agent support.
|
|
137
137
|
#
|
|
@@ -180,7 +180,7 @@ pi = []
|
|
|
180
180
|
# back here (it is not needed to EXPORT a task to Harbor format, only to run coder-eval
|
|
181
181
|
# itself as Harbor's agent).
|
|
182
182
|
harbor = [
|
|
183
|
-
"harbor==0.
|
|
183
|
+
"harbor==0.23.0",
|
|
184
184
|
]
|
|
185
185
|
|
|
186
186
|
[project.scripts]
|
|
@@ -212,14 +212,14 @@ packages = ["src/coder_eval"]
|
|
|
212
212
|
allow-direct-references = true
|
|
213
213
|
|
|
214
214
|
[tool.uv]
|
|
215
|
-
# openai-codex 0.
|
|
215
|
+
# openai-codex 0.156.1 hardpins `openai-codex-cli-bin==0.156.1` (a stable
|
|
216
216
|
# release; the SDK version now tracks the codex CLI version line). Naming it
|
|
217
217
|
# here documents and holds the pinned cli-bin build — the harness binary is a
|
|
218
218
|
# dominant non-model driver of eval results, so it travels with the coder_eval
|
|
219
219
|
# release tag and is bumped deliberately (mirrors the antigravity localharness
|
|
220
|
-
# and claude-code CLI pins). 0.
|
|
220
|
+
# and claude-code CLI pins). 0.156.1 publishes manylinux wheels (x86_64 +
|
|
221
221
|
# aarch64), so CI/Linux installs work.
|
|
222
|
-
override-dependencies = ["openai-codex-cli-bin==0.
|
|
222
|
+
override-dependencies = ["openai-codex-cli-bin==0.156.1"]
|
|
223
223
|
|
|
224
224
|
constraint-dependencies = [
|
|
225
225
|
# Fix known CVEs in transitive dependencies
|
|
@@ -443,6 +443,8 @@ filterwarnings = [
|
|
|
443
443
|
"ignore::DeprecationWarning", # Ignore deprecation warnings from dependencies
|
|
444
444
|
"ignore::PendingDeprecationWarning",
|
|
445
445
|
"ignore::ResourceWarning", # Ignore unclosed resources (handled by cleanup)
|
|
446
|
+
# litellm>=1.102 TypedDicts mark fields ReadOnly; pydantic warns when it builds their schema
|
|
447
|
+
"ignore:Item '.*' on TypedDict class '.*' is using the `ReadOnly` qualifier:UserWarning",
|
|
446
448
|
]
|
|
447
449
|
|
|
448
450
|
# Coverage integration (when using --cov)
|
|
@@ -275,7 +275,7 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
275
275
|
return roots
|
|
276
276
|
|
|
277
277
|
def _resolve_workspaces(self, skills_paths: list[str]) -> list[str]:
|
|
278
|
-
"""Workspace roots
|
|
278
|
+
"""Workspace roots the harness confines its file tools to.
|
|
279
279
|
|
|
280
280
|
The sandbox working directory (the write target) plus the resolved skill
|
|
281
281
|
roots. ``skills_paths`` drives DISCOVERY only; the file-tool allowlist is
|
|
@@ -341,9 +341,9 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
341
341
|
cfg = LocalAgentConfig(
|
|
342
342
|
model=self._effective_model(),
|
|
343
343
|
api_key=api_key,
|
|
344
|
-
#
|
|
345
|
-
#
|
|
346
|
-
#
|
|
344
|
+
# The harness confines file tools to ``workspaces``; see
|
|
345
|
+
# _resolve_workspaces for why the skill roots must be in here and
|
|
346
|
+
# not only in ``skills_paths``.
|
|
347
347
|
workspaces=self._resolve_workspaces(skills_paths),
|
|
348
348
|
# Autonomous execution: approve every tool call, which the default
|
|
349
349
|
# policy would deny. ``permission_mode`` is deliberately NOT mapped
|
|
@@ -5,7 +5,7 @@ events on stdout, and reduces that stream into the standardized coder_eval event
|
|
|
5
5
|
protocol so :class:`EventCollector` builds the ``TurnRecord``. The design mirrors
|
|
6
6
|
:mod:`coder_eval.agents.opencode_agent`.
|
|
7
7
|
|
|
8
|
-
Three grammar facts that are not obvious from the event names (``pi`` 0.
|
|
8
|
+
Three grammar facts that are not obvious from the event names (``pi`` 0.87.1):
|
|
9
9
|
|
|
10
10
|
- ``agent_start`` can appear MORE THAN ONCE per invocation — Pi auto-retries a
|
|
11
11
|
transient provider error internally — and ``agent_end`` is therefore NOT
|
|
@@ -149,7 +149,7 @@ _UNSUPPORTED_CONFIG_FIELDS: tuple[str, ...] = (
|
|
|
149
149
|
"disallowed_tools",
|
|
150
150
|
)
|
|
151
151
|
|
|
152
|
-
# The full recognized Pi vocabulary (from `pi` 0.
|
|
152
|
+
# The full recognized Pi vocabulary (from `pi` 0.87.1). A clean exit that
|
|
153
153
|
# recognized NOTHING from this set is vocabulary drift and is crashed, not scored.
|
|
154
154
|
# Rationale: .claude/notes/agents.md § Why a clean exit can still be a crash
|
|
155
155
|
_RECOGNIZED_EVENTS = frozenset(
|