coder-eval 0.12.10__tar.gz → 0.12.11__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.10 → coder_eval-0.12.11}/.claude/notes/agents.md +34 -9
- {coder_eval-0.12.10 → coder_eval-0.12.11}/CHANGELOG.md +37 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/PKG-INFO +1 -1
- {coder_eval-0.12.10 → coder_eval-0.12.11}/action.yml +1 -1
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/ANTIGRAVITY.md +5 -3
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
- {coder_eval-0.12.10 → coder_eval-0.12.11}/pyproject.toml +1 -1
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/__init__.py +1 -1
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/antigravity_agent.py +42 -30
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_antigravity_agent.py +86 -30
- {coder_eval-0.12.10 → coder_eval-0.12.11}/uv.lock +1 -1
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review-full.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review-wf.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-create-plan.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-implement-plan.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-review.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/harness-candidates.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/contracts.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/isolation.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/lint-rules.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/orchestration.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/permissions.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/persistence.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/reporting.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/timing.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/axes.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/multi-model-review.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/review-rubric.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/run-layout.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/workflows/cr-axis.js +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/workflows/cr-parent.js +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude-plugin/marketplace.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.env.example +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/CODEOWNERS +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/actionlint.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/code_review.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/dependabot.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/pages-stub/index.html +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/scripts/diagnose_delegate_token_claims.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/scripts/harbor_e2e.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/scripts/release_notes.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/claude-pr-review.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/codeql.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/conventional-commits.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/docker-publish.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/docs.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/harbor-e2e.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/pr-checks.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/publish-testpypi.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/release.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/verify-published-action.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.gitignore +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.pre-commit-config.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/.python-version +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/ADOPTERS.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/CLAUDE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/CODE_OF_CONDUCT.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/CONTRIBUTING.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/LICENSE +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/Makefile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/NOTICE +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/SECURITY.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/comparison.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/Dockerfile.runtime +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/coder_eval_entrypoint.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/coder_eval_runtime_entrypoint.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/AB_EXPERIMENTS.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/CI_GATE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/DATASETS.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/DIALOG_MODE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/DOCKER_ISOLATION.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/EXTENDING.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/PLUGIN.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/REPORT_SCHEMA.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/TASK_DEFINITION_GUIDE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/USER_GUIDE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/CLAUDE_CODE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/CODEX.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/DELEGATE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/HARNESS_PARITY.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/OPENCODE.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/PI.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/assets/hero.gif +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/comparison.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/index.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/llms.txt +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/01-first-evaluation.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/02-ci-pipeline.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/03-evalboard-local.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/04-writing-a-task.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/05-comparing-models.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/06-use-docker-isolation.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/.gitignore +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/col-help.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/collapsible-rail.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/harness-badge.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/harness-selector.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/scroll-table.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/search-box.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/skeleton.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/unit-toggle.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/version-list.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_lib/source-param.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/daily-chart.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/harness-legend.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/harness-series.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/tag-rail.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/window-summary.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/download/route.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/file/route.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/refresh/route.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/error.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/globals.css +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/icon.png +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/layout.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/loading.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/page.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/path-to-ga/page.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/path-to-ga/task-table.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/scribe/page.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/scribe/run-table.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/actions.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/page.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/trends-view.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/watchlist/page.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/next-env.d.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/next.config.mjs +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/package.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/pnpm-lock.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/postcss.config.mjs +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/antigravity.png +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/claude-code.png +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/codex.png +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/pi.png +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/uipath.png +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/tailwind.config.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/tsconfig.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/vitest.config.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/vitest.setup.ts +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/default.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/early-stop-ab.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/model-comparison.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/permissions-smoke.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/plugin-comparison.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/prompt-mutations-example.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/smoke_variants.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/cost_logger.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/litellm-config.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/start-litellm.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/mkdocs.yml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/osv-scanner.toml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/cli-setup.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/criteria.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/repo-layout.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/run-layout.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/task-rubric.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/init/SKILL.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/task/SKILL.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/check_commit_msg.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/antigravity.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/claude-code.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/codex.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/opencode.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/pi.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/decompose_run.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/.gitattributes +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/_logging.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/_skills.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/claude_code_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/codex_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/.gitignore +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/delegate_host.mjs +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/package.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/noop_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/opencode_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/pi_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/registry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/watchdog.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/analysis.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/argv_match.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/console.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/evaluate_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/evaluate_target.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/execute_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/export_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/harbor_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/plan_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/report_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/run_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/run_helpers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/run_task_internal_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/utils.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/agent_judge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/base.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/classification_match.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/cli_called.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/command_executed.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/commands_efficiency.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_check.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_contains.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_exists.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_matches_regex.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/json_check.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/llm_judge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/reference_comparison.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/run_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/skill_triggered.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/system_one_judge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/uipath_eval.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/durations.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/budget.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/categories.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/categorization.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/checker_misuse.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/executor.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/judge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/reference.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/retry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/timeout.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/checker.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_context.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_litellm.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_persistence.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_system_one.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_usage.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/sub_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/summaries.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/system_one_scoring.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/verdict_tool.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/formatting.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/fs_permissions.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/agent_paths.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_emit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_hydrate.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/experiment_packager.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/packager.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/portability.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/reward.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/invocation_log.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/isolation/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/isolation/docker_runner.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/isolation/eval_material.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/litellm_cost.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/logging_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/agent_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/cli_match.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/container_context.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/container_paths.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/criteria.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/enums.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/experiment.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/judge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/judge_defaults.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/limits.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/merge_strategy.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/mutations.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/results.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/routing.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/sandbox.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/system_one.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/tasks.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/telemetry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/templates.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/batch.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/config_merge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/early_stop.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/evaluation.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/experiment.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/overrides.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/regrade.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/run_limits.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/task_loader.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestrator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/path_utils.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/plugins.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/pricing.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/py.typed +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/experiment.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/helpers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/html.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/junit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/markdown.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/resources/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/resources/tags.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/result_metrics.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/run_record.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/sandbox.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/ast_similarity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/complexity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/quality.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/signature_similarity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/similarity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/token_similarity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/termination.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/user_simulator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/utterance.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/stats.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/callbacks.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/collector.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/events.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/renderers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/wire.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/telemetry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/timing.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/utils.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agentless_smoke_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/antigravity_hello_world.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_hello_world.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_hello_world_docker.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_subagent_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_hello_world.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_parallel_commands.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_skills_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_string_utils.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_subagent_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/subagent_bash_long_input.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/subagent_merge_sort.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/anti_cheat_reference/reference/solution.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/byod_smoke_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dataset_example.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/datasets/sentiment.jsonl +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/delegate/fizzbuzz_delegate.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/delegate/hello_date_delegate.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/input.txt +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/fibonacci_with_template.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/hello_date.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/inline_starter_example.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/internal/session_resumption.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_smoke.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/opencode_smoke_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/pi_smoke_test.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/record_cli_responses.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/run_limits/max_turns_cap.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/run_limits/turn_timeout.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/sentiment_classification.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_agent_judge.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_llm_judge.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_negative_path.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_system_one_judge.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_task_timeout.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_variants.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/test_sandbox.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/token_check.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/byod_smoke_test/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/fibonacci-starter/README.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/fibonacci-starter/src/main.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/fibonacci-starter/tests/test_main.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_bracket_clock.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_container_contract.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/_scrub.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/task.toml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/live_criteria.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/run_full.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/timing_union_cases.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_path_helpers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/conftest.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/atif/known_good_trajectory.json +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/mock_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/pi_happy_stream.jsonl +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/text_stub_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/action_docs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/agent_roster_parity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/dead_config_fields.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_env_parity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_examples.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_indexes.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_schema_parity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/generated.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/live_verdict_contract.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/plugin_manifest_parity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/plugin_reference.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/pricing_mirror.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/prose_budget.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/pyright_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/__init__.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/_layers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/_model_ctor.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/base.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce051_no_driver_override.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce060_message_id_declared.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_agent_timing_access.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_silent_except.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_submodule_model_imports.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/open_explicit_encoding.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/register_criterion_required.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/runner.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/violation.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/workflow_outputs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_action_inputs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_action_version_pin.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_no_timing_fields.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_optional_type.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_registry_dispatch.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_sdk_decoupling.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_golden_master.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_judge_criterion.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_telemetry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_telemetry_advanced.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_timeout.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agentless.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_atif_emit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_atif_hydrate.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_atif_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_byoa_plugin.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_byoa_plugin_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_byod_feature.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_check_all_async.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_checker_logging.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_classification_match.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_claude_settings_enforcement_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cleanup_preservation_guard.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_backend_flag.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_called_criterion.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_empty_glob.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_match_parity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_sdk_options.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_set_overrides.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_telemetry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_type_flag.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_code_review_bugs.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_agent_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_agent_unit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_token_mapping.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_command_executed.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_command_statistics.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_command_telemetry_result_data.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_commands_efficiency.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_config_lineage.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_config_merge_engine.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_config_precedence.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_container_context.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_continuous_scoring.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cost_accounting_paths.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_criterion_result_round_trip.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_custom_lint.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_dataset_expansion.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_debug_logging.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent_registration.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_detached_grading_boundaries.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_detached_grading_guards.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_build_failure.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_litellm_env.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_runner_container_death.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_runner_mounts.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_runner_stream_limit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_wildcard_env.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_workdir_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_driver_resolver.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_durations.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_early_stop.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_error_handling.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_eval_material.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluate_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluate_format_harbor.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluate_target.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_event_collector.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_execute_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_execute_evaluate_loop.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_execute_format_harbor.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_cli.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_loader.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_reports.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_resolver.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_runner.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_file_check.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_file_contains_scoring.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_formatting.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_git_clone_failure.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_glob_paths_in_file_criteria.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_e2e_fixtures.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_experiment_packager.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_export_golden.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_packager.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_portability.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_reward.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_heartbeat_watchdog.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_ignore_patterns_negation.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_image_from_dockerfiles.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_image_skew_refusal.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_integration.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_json_check.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_anthropic.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_bedrock.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_burn_in_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_context_builder.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_litellm.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_persistence.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_system_one.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_lint_no_top_level_run_limits.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_lint_runner.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_cost.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_cost_logger.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_judge_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_route.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_llm_judge_criterion.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_log_tail_buffer.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_logging.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_logging_isolation.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_merge_characterization.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_merge_strategy_annotations.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_merge_unification.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_mutations.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_new_criteria.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_node_env_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_opencode_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_optional_dependencies.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_orchestrator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_orchestrator_error_log_tail.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_orchestrator_telemetry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_overrides_engine.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_parallel.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_path_utils.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pi_agent.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pi_agent_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pi_smoke_task.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_plan_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_plugin_processing.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_plugins.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_post_run.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pr_review_workflow.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pre_run.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_preservation_mode.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pricing_mirror.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pricing_registry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_prose_budget.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_prose_budget_commands.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_comparison_scoring.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_evaluator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_missing_file.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_permissions.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_registry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_regrade.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_release_notes.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_replicate_stats.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_report_command.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports_html.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports_junit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports_package.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_resolve_task_files.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_result_metrics.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_resume.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_retry_logic_comprehensive.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_route_seam_exhaustiveness.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_routing.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_command_junit.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_command_stdout.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_helpers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_limits_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_limits_orchestrator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_limits_resolver.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_metrics.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_record.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_summary_rebuild.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_task_internal.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_runtime_tool_versions.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_adopt.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_layer_builder.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_optional.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_record_cli.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_security.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_symlink_preservation.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_templates.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_venv_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_scorers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_scoring_quality.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sdk_option_classification.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_seed_from_prior_result.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_config.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_integration.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_termination.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_trials.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_skill_triggered.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_stats.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_stats_nonfinite.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_agent_integration.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_batch.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_callbacks.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_cli.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_events.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_orchestrator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_renderers.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_wire.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sub_agent_runner.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_success_criterion_union.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_suite_rollup.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_summaries.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_system_one_judge.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_system_one_judge_live.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_tags.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_task_definition_unknown_fields.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_teardown_interrupt.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_telemetry.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_template_env_expansion.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_threshold_enforcement.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_batch.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_categorization.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_exceptions.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_models.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_orchestrator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timing_close_window.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timing_identity_contract.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timing_union_parity.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_token_usage.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_uipath_eval.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_ungraded_reporting.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_user_simulator.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_utils.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_utterance_extraction.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_variant_prompt_file.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_verdict_tool.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_verify_published_workflow.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_watchdog.py +0 -0
- {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_yaml_migration.py +0 -0
|
@@ -434,10 +434,13 @@ agent had produced; bounding it only by a fixed cycle count disconnected from `t
|
|
|
434
434
|
path unreachable — the watchdog always wins, and the same spurious-orphan turn burns the
|
|
435
435
|
full turn timeout before crashing with zero criteria evaluated.
|
|
436
436
|
|
|
437
|
-
The cycle cap
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
437
|
+
The cycle cap (120 × 5 s) bounds the wait only when a task sets no timeout at all. With
|
|
438
|
+
one, the deadline alone bounds it, so a never-ending command (a dev server, an unanswered
|
|
439
|
+
prompt) can idle up to 80% of the turn, but a slow job gets the time the task author
|
|
440
|
+
budgeted for it. Applying the cap under a timeout as well force-closed real solvers and
|
|
441
|
+
simulations at 10 minutes: on the SkillsBench Gemini 4-arm campaign it ended 22 of 348
|
|
442
|
+
rows, 4 of which had passed with the deadline alone (an exam-scheduling MIP solve that
|
|
443
|
+
passed at 1211 s among them). It is deliberately not
|
|
441
444
|
"break after N consecutive empty polls": `receive_steps()` returns identically empty
|
|
442
445
|
whether a backgrounded job is still running or will never resolve, and there is no signal
|
|
443
446
|
that tells the two apart except waiting. A count small enough to matter would abort real
|
|
@@ -464,10 +467,32 @@ after the model had already finished. `finalize` force-closes them as unresolved
|
|
|
464
467
|
way it confines Claude Code. Without it Antigravity ran with every builtin, including
|
|
465
468
|
`start_subagent` and `search_web`, under a list that gave Claude Code neither. `Skill` and
|
|
466
469
|
`TodoWrite` have no builtin (skills load through `skills_paths`) and are skipped. `finish`
|
|
467
|
-
|
|
468
|
-
`
|
|
469
|
-
`
|
|
470
|
-
|
|
470
|
+
and `schedule` stay on under any allowlist: `finish` returns structured output, and
|
|
471
|
+
`schedule` is the timer the model sleeps on while a backgrounded `run_command` finishes.
|
|
472
|
+
Without `schedule`, Gemini re-checks the background task every few seconds and each check
|
|
473
|
+
is a model call against `max_turns`: on the SkillsBench Gemini 4-arm campaign mean turns
|
|
474
|
+
rose 36.8 → 50.2 and max-turn rows 4 → 16 on the same 110 rows, and the skill arms were hit
|
|
475
|
+
2-3x harder than baseline. With `schedule` on they came back to 35.4 and 1.
|
|
476
|
+
|
|
477
|
+
An allowlist only narrows the harness's default toolset (`BuiltinTools.default()`). `Glob`,
|
|
478
|
+
`Grep` and `LS` map to `find_file`, `search_directory` and `list_directory`, which the
|
|
479
|
+
harness ships off, so an allowlist naming them leaves them off. Turned on, Gemini used them
|
|
480
|
+
in place of shell scripts (1,429 calls in 333 of 348 SkillsBench rows, none before), often
|
|
481
|
+
one search per turn.
|
|
482
|
+
|
|
483
|
+
`start_subagent` also stays on under any allowlist, because the harness builds its system
|
|
484
|
+
prompt from the toolset: with `start_subagent` off it drops the whole subagents section
|
|
485
|
+
(4,801 → 2,783 characters), and with it the prompt's only "you do NOT need to poll ... you
|
|
486
|
+
will be notified" guidance. With it on, the system prompt is byte-identical to 0.12.9's.
|
|
487
|
+
The section alone does not stop Gemini polling a long job with status checks: in a 48-row
|
|
488
|
+
SkillsBench A/B it made 13.4 checks per row with the section and 13.7 without (8.5 on
|
|
489
|
+
0.12.9). The tool descriptions are identical either way, and
|
|
490
|
+
`enable_subagents` alone does not restore the section. Subagents the tool lists withhold
|
|
491
|
+
(no `Task`) are denied by policy at `invoke_subagent` instead, which covers both the
|
|
492
|
+
built-in `research` subagent and one the model defines with `define_subagent`; both get
|
|
493
|
+
`search_web` regardless of the parent's toolset, and a parent policy on `search_web` does
|
|
494
|
+
not reach a model-defined one. The SDK takes an allowlist OR a denylist, so with both set
|
|
495
|
+
the denied tools are removed from the allowlist, except the always-enabled ones.
|
|
471
496
|
|
|
472
497
|
## Antigravity non-interactive commands
|
|
473
498
|
|
|
@@ -478,7 +503,7 @@ behind keeps the turn waiting on a prompt no one answers. `_NONINTERACTIVE_ENV`
|
|
|
478
503
|
(`CI`, `npm_config_yes`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND`, `PIP_NO_INPUT`,
|
|
479
504
|
`PAGER`/`GIT_PAGER=cat`) rides the per-agent `env` seam, each variable only where the
|
|
480
505
|
environment does not already set it, so those commands answer themselves or fail fast. It
|
|
481
|
-
cannot close the terminal: a bare `read` or a server still runs until the poll
|
|
506
|
+
cannot close the terminal: a bare `read` or a server still runs until the poll deadline.
|
|
482
507
|
|
|
483
508
|
## The receive_steps re-entrancy window
|
|
484
509
|
|
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.12.11 (2026-10-05)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **antigravity**: Bound the background poll by the deadline alone when a timeout is set
|
|
10
|
+
([#216](https://github.com/UiPath/coder_eval/pull/216),
|
|
11
|
+
[`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
|
|
12
|
+
|
|
13
|
+
- **antigravity**: Keep a tool allowlist within the harness default toolset
|
|
14
|
+
([#216](https://github.com/UiPath/coder_eval/pull/216),
|
|
15
|
+
[`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
|
|
16
|
+
|
|
17
|
+
- **antigravity**: Keep schedule enabled under a tool allowlist
|
|
18
|
+
([#216](https://github.com/UiPath/coder_eval/pull/216),
|
|
19
|
+
[`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
|
|
20
|
+
|
|
21
|
+
- **antigravity**: Keep start_subagent on and deny withheld subagents by policy
|
|
22
|
+
([#216](https://github.com/UiPath/coder_eval/pull/216),
|
|
23
|
+
[`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
|
|
24
|
+
|
|
25
|
+
- **antigravity**: Restore Gemini's background-job waiting under a tool allowlist
|
|
26
|
+
([#216](https://github.com/UiPath/coder_eval/pull/216),
|
|
27
|
+
[`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
|
|
28
|
+
|
|
29
|
+
### Documentation
|
|
30
|
+
|
|
31
|
+
- **antigravity**: State what keeping start_subagent on does and does not fix
|
|
32
|
+
([#216](https://github.com/UiPath/coder_eval/pull/216),
|
|
33
|
+
[`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
|
|
34
|
+
|
|
35
|
+
### Features
|
|
36
|
+
|
|
37
|
+
- **evalboard**: Treat .dmn as a deliverable kind
|
|
38
|
+
([#217](https://github.com/UiPath/coder_eval/pull/217),
|
|
39
|
+
[`7161fc8`](https://github.com/UiPath/coder_eval/commit/7161fc8a11624662fbf6e3f24d6b468fed99c453))
|
|
40
|
+
|
|
41
|
+
|
|
5
42
|
## v0.12.10 (2026-10-03)
|
|
6
43
|
|
|
7
44
|
### 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.11
|
|
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
|
|
@@ -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.11" # <-- 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
|
|
@@ -145,7 +145,9 @@ sandbox working directory plus any skill roots).
|
|
|
145
145
|
onto the harness's builtin tools (`Bash` → `run_command`, `Read` → `view_file`, `Write` →
|
|
146
146
|
`create_file`, `Edit` → `edit_file`, `Glob` → `find_file`, `Grep` → `search_directory`,
|
|
147
147
|
`Task` → `start_subagent`, `WebSearch` → `search_web`, `WebFetch` → `read_url_content`).
|
|
148
|
-
`Skill` has no builtin and is skipped
|
|
148
|
+
`Skill` has no builtin and is skipped. `finish`, `schedule` and `start_subagent` always
|
|
149
|
+
stay on, the last so the harness keeps its default system prompt; when the lists do not
|
|
150
|
+
allow `Task`, running a subagent (`invoke_subagent`) is denied by policy instead.
|
|
149
151
|
|
|
150
152
|
`run_command` also gets non-interactive environment variables (`CI=1`,
|
|
151
153
|
`npm_config_yes=true`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND=noninteractive`,
|
|
@@ -205,8 +207,8 @@ as every other agent.
|
|
|
205
207
|
10-second maximum synchronous wait; past it the command becomes a background task
|
|
206
208
|
and the model gets a task id, not a result. The turn polls for that result instead
|
|
207
209
|
of finalizing on an idle step stream, so slow work does complete — but only an
|
|
208
|
-
orphaned `run_command` is waited on, the wait is bounded by
|
|
209
|
-
|
|
210
|
+
orphaned `run_command` is waited on, the wait is bounded by 80% of `turn_timeout`
|
|
211
|
+
(10 minutes when the task sets none), and a job that outlives it (typically a server
|
|
210
212
|
the model left running) is force-closed as `result_status: unknown` and graded
|
|
211
213
|
normally rather than as a timeout.
|
|
212
214
|
Measured in [Run-Limit Parity](HARNESS_PARITY.md).
|
|
@@ -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.11",
|
|
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",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "coder-eval"
|
|
3
|
-
version = "0.12.
|
|
3
|
+
version = "0.12.11"
|
|
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"
|
|
@@ -95,11 +95,9 @@ _RECEIVE_STEPS_REENTRY_RETRIES = 5
|
|
|
95
95
|
# Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
|
|
96
96
|
_POLL_DEADLINE_TIMEOUT_FRACTION = 0.8
|
|
97
97
|
|
|
98
|
-
# Cap on poll *cycles
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
# backgrounded-job duration observed (60-300s). Deliberately NOT "break after N
|
|
102
|
-
# consecutive empty polls".
|
|
98
|
+
# Cap on poll *cycles*, the bound only when a task sets no timeout at all; with
|
|
99
|
+
# one, the deadline alone bounds the wait. 120 * 5s = 10 minutes. Deliberately
|
|
100
|
+
# NOT "break after N consecutive empty polls".
|
|
103
101
|
# Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
|
|
104
102
|
_MAX_BACKGROUND_POLLS = 120
|
|
105
103
|
|
|
@@ -148,9 +146,15 @@ _CLAUDE_TO_ANTIGRAVITY_TOOL_MAP: dict[str, str] = {
|
|
|
148
146
|
"AskUserQuestion": "ask_question",
|
|
149
147
|
}
|
|
150
148
|
|
|
151
|
-
# Kept on under any allowlist: `finish`
|
|
152
|
-
#
|
|
153
|
-
|
|
149
|
+
# Kept on under any allowlist: `finish` returns a turn's structured output,
|
|
150
|
+
# `schedule` is how the model waits on a backgrounded command, and the harness
|
|
151
|
+
# drops its "you will be notified, do not poll" guidance with `start_subagent`.
|
|
152
|
+
# Withheld subagents are denied at `_SUBAGENT_CALL` instead.
|
|
153
|
+
# Rationale: .claude/notes/agents.md § Antigravity tool allowlist
|
|
154
|
+
_ALWAYS_ENABLED_TOOLS: frozenset[str] = frozenset({"finish", "schedule", "start_subagent"})
|
|
155
|
+
|
|
156
|
+
# The one call that runs a subagent, built-in or model-defined.
|
|
157
|
+
_SUBAGENT_CALL = "invoke_subagent"
|
|
154
158
|
|
|
155
159
|
# Set on every run_command unless the environment already sets them, so a
|
|
156
160
|
# command that would stop to ask (`npx` installing a package, git credentials,
|
|
@@ -370,9 +374,12 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
370
374
|
``allowed_tools`` / ``disallowed_tools``, or ``None`` when neither is set.
|
|
371
375
|
|
|
372
376
|
Names are mapped through ``_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP``; names with no
|
|
373
|
-
Antigravity builtin (``Skill``, ``TodoWrite``, MCP tools) are skipped.
|
|
374
|
-
|
|
375
|
-
|
|
377
|
+
Antigravity builtin (``Skill``, ``TodoWrite``, MCP tools) are skipped. An
|
|
378
|
+
allowlist only narrows the harness's default toolset, so ``Glob`` / ``Grep`` /
|
|
379
|
+
``LS`` never turn on the tools the harness ships off (``find_file``,
|
|
380
|
+
``search_directory``, ``list_directory``). The SDK takes an allowlist OR a
|
|
381
|
+
denylist, so with both set the denied tools are removed from the allowlist.
|
|
382
|
+
``_ALWAYS_ENABLED_TOOLS`` are never removed.
|
|
376
383
|
|
|
377
384
|
Rationale: .claude/notes/agents.md § Antigravity tool allowlist
|
|
378
385
|
"""
|
|
@@ -380,27 +387,28 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
380
387
|
if not allowed and not disallowed:
|
|
381
388
|
return None
|
|
382
389
|
builtin = {t.value for t in types.BuiltinTools}
|
|
390
|
+
harness_default = {t.value for t in types.BuiltinTools.default()}
|
|
383
391
|
|
|
384
392
|
def to_builtin(names: list[str] | None) -> set[str]:
|
|
385
393
|
mapped = {_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.get(n, n) for n in names or []}
|
|
386
394
|
return mapped & builtin
|
|
387
395
|
|
|
388
|
-
# `enable_subagents` is a separate switch from the toolset; it follows
|
|
389
|
-
# whether `start_subagent` survives the filter.
|
|
390
|
-
subagent = types.BuiltinTools.START_SUBAGENT.value
|
|
391
396
|
if allowed:
|
|
392
|
-
enabled = (to_builtin(allowed)
|
|
397
|
+
enabled = ((to_builtin(allowed) & harness_default) - to_builtin(disallowed)) | _ALWAYS_ENABLED_TOOLS
|
|
393
398
|
self._log.debug("Enabled builtin tools: %s", ", ".join(sorted(enabled)))
|
|
394
|
-
return types.CapabilitiesConfig(
|
|
395
|
-
enabled_tools=[types.BuiltinTools(t) for t in sorted(enabled)],
|
|
396
|
-
enable_subagents=subagent in enabled,
|
|
397
|
-
)
|
|
399
|
+
return types.CapabilitiesConfig(enabled_tools=[types.BuiltinTools(t) for t in sorted(enabled)])
|
|
398
400
|
disabled = to_builtin(disallowed) - _ALWAYS_ENABLED_TOOLS
|
|
399
401
|
self._log.debug("Disabled builtin tools: %s", ", ".join(sorted(disabled)))
|
|
400
|
-
return types.CapabilitiesConfig(
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
)
|
|
402
|
+
return types.CapabilitiesConfig(disabled_tools=[types.BuiltinTools(t) for t in sorted(disabled)])
|
|
403
|
+
|
|
404
|
+
def _subagents_allowed(self) -> bool:
|
|
405
|
+
"""Whether ``allowed_tools`` / ``disallowed_tools`` let the model run subagents (``Task``)."""
|
|
406
|
+
|
|
407
|
+
def names_task(names: list[str] | None) -> bool:
|
|
408
|
+
return any(_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.get(n, n) == "start_subagent" for n in names or [])
|
|
409
|
+
|
|
410
|
+
allowed, disallowed = self.config.allowed_tools, self.config.disallowed_tools
|
|
411
|
+
return (not allowed or names_task(allowed)) and not names_task(disallowed)
|
|
404
412
|
|
|
405
413
|
async def start(
|
|
406
414
|
self,
|
|
@@ -451,8 +459,9 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
451
459
|
# policy would deny. ``permission_mode`` is deliberately NOT mapped
|
|
452
460
|
# here — it does not confine this agent, exactly as on Codex, and
|
|
453
461
|
# docs/agents/HARNESS_PARITY.md says so rather than leaving it
|
|
454
|
-
# silent. The isolation boundary is the driver.
|
|
455
|
-
|
|
462
|
+
# silent. The isolation boundary is the driver. Subagents the tool
|
|
463
|
+
# lists withhold are denied here, since `start_subagent` stays on.
|
|
464
|
+
policies=[policy.allow_all()] + ([] if self._subagents_allowed() else [policy.deny(_SUBAGENT_CALL)]),
|
|
456
465
|
system_instructions=self.config.system_prompt or None,
|
|
457
466
|
# Skill discovery: the search-path roots that parent the skill dirs.
|
|
458
467
|
skills_paths=skills_paths,
|
|
@@ -635,8 +644,11 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
635
644
|
and not state.max_turns_hit
|
|
636
645
|
and not state.timeout_hit
|
|
637
646
|
and state.has_orphaned_tool_call()
|
|
638
|
-
and
|
|
639
|
-
|
|
647
|
+
and (
|
|
648
|
+
poll_count < _MAX_BACKGROUND_POLLS
|
|
649
|
+
if poll_deadline is None
|
|
650
|
+
else time.monotonic() < poll_deadline
|
|
651
|
+
)
|
|
640
652
|
):
|
|
641
653
|
poll_count += 1
|
|
642
654
|
self._log.debug("Polling for backgrounded work (orphaned tool call); attempt %d", poll_count)
|
|
@@ -662,9 +674,9 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
|
|
|
662
674
|
# stop/timeout: the call is force-closed as unresolved and
|
|
663
675
|
# the turn is still graded normally on everything else.
|
|
664
676
|
bound = (
|
|
665
|
-
f"
|
|
666
|
-
if
|
|
667
|
-
else f"
|
|
677
|
+
f"poll_deadline ({_POLL_DEADLINE_TIMEOUT_FRACTION:.0%} of {timeout:g}s turn timeout)"
|
|
678
|
+
if poll_deadline is not None
|
|
679
|
+
else f"_MAX_BACKGROUND_POLLS ({_MAX_BACKGROUND_POLLS})"
|
|
668
680
|
)
|
|
669
681
|
msg = "Poll budget exhausted (%s, poll_count=%d) with a tool call still ACTIVE."
|
|
670
682
|
self._log.warning(msg, bound, poll_count)
|
|
@@ -508,6 +508,11 @@ class _FakeBuiltinTools(enum.StrEnum):
|
|
|
508
508
|
SCHEDULE = "schedule"
|
|
509
509
|
FINISH = "finish"
|
|
510
510
|
|
|
511
|
+
@classmethod
|
|
512
|
+
def default(cls) -> list["_FakeBuiltinTools"]:
|
|
513
|
+
off = {cls.ASK_QUESTION, cls.LIST_DIR, cls.SEARCH_DIR, cls.FIND_FILE}
|
|
514
|
+
return [t for t in cls if t not in off]
|
|
515
|
+
|
|
511
516
|
|
|
512
517
|
def _install_fake_sdk(monkeypatch, sdk_agent_cls) -> None:
|
|
513
518
|
"""Stub ``google.antigravity`` in sys.modules so ``start()`` runs without the extra.
|
|
@@ -883,10 +888,10 @@ async def test_communicate_stops_polling_at_max_poll_cap(monkeypatch):
|
|
|
883
888
|
assert bash.result_status == "unknown" # force-closed as UNRESOLVED by finalize()
|
|
884
889
|
|
|
885
890
|
|
|
886
|
-
async def
|
|
887
|
-
"""
|
|
888
|
-
|
|
889
|
-
|
|
891
|
+
async def test_communicate_poll_cap_does_not_cut_short_a_job_inside_the_deadline(monkeypatch):
|
|
892
|
+
"""With a turn_timeout the deadline alone bounds the wait: a solver still running
|
|
893
|
+
past _MAX_BACKGROUND_POLLS cycles is waited on until it finishes. Seen live: a MIP
|
|
894
|
+
solve that passed at 1211s was force-closed at the 10-minute cap."""
|
|
890
895
|
from coder_eval.agents import antigravity_agent
|
|
891
896
|
|
|
892
897
|
monkeypatch.setattr(antigravity_agent, "_MAX_BACKGROUND_POLLS", 3)
|
|
@@ -897,22 +902,34 @@ async def test_communicate_poll_cap_also_bounds_a_turn_with_a_large_timeout(monk
|
|
|
897
902
|
|
|
898
903
|
monkeypatch.setattr(antigravity_agent.asyncio, "sleep", _record_sleep)
|
|
899
904
|
|
|
900
|
-
|
|
905
|
+
started = [
|
|
901
906
|
_step(
|
|
902
907
|
"TOOL_CALL",
|
|
903
908
|
"ACTIVE",
|
|
904
909
|
target="TARGET_ENVIRONMENT",
|
|
905
|
-
tool_calls=[_tc("run_command", "
|
|
910
|
+
tool_calls=[_tc("run_command", "solve", {"command_line": "python solve.py"})],
|
|
906
911
|
),
|
|
907
|
-
_step("TEXT_RESPONSE", "DONE", content="
|
|
912
|
+
_step("TEXT_RESPONSE", "DONE", content="solver running", complete=True, usage=_usage(10, 0, 1, 0)),
|
|
908
913
|
]
|
|
909
|
-
|
|
910
|
-
|
|
914
|
+
finished = [
|
|
915
|
+
_step(
|
|
916
|
+
"TOOL_CALL",
|
|
917
|
+
"DONE",
|
|
918
|
+
target="TARGET_ENVIRONMENT",
|
|
919
|
+
tool_calls=[
|
|
920
|
+
_tc(
|
|
921
|
+
"run_command", "solve", {"command_line": "python solve.py", "exit_code": 0, "combined_output": "ok"}
|
|
922
|
+
)
|
|
923
|
+
],
|
|
924
|
+
),
|
|
925
|
+
_step("TEXT_RESPONSE", "DONE", content="solved", complete=True, usage=_usage(10, 0, 1, 0)),
|
|
926
|
+
]
|
|
927
|
+
agent = _agent_with_steps([started, [], [], [], [], finished])
|
|
928
|
+
tr = await agent.communicate("solve it", timeout=1800.0)
|
|
911
929
|
|
|
912
|
-
assert len(sleep_calls) ==
|
|
930
|
+
assert len(sleep_calls) == 5
|
|
913
931
|
bash = next(c for c in tr.commands if c.tool_name == "Bash")
|
|
914
|
-
assert bash.result_status == "
|
|
915
|
-
assert tr.agent_output == "server started"
|
|
932
|
+
assert bash.result_status == "success"
|
|
916
933
|
|
|
917
934
|
|
|
918
935
|
async def test_communicate_does_not_poll_a_non_command_tool_left_active(monkeypatch):
|
|
@@ -1536,45 +1553,76 @@ def test_tool_capabilities_none_without_tool_lists():
|
|
|
1536
1553
|
|
|
1537
1554
|
|
|
1538
1555
|
def test_allowed_tools_map_to_enabled_builtins():
|
|
1539
|
-
"""The default experiment allowlist enables exactly the matching builtins, plus
|
|
1556
|
+
"""The default experiment allowlist enables exactly the matching default builtins, plus
|
|
1557
|
+
`finish`, `schedule` and `start_subagent`.
|
|
1540
1558
|
|
|
1541
|
-
`Skill` has no builtin (skills load through skills_paths) and is skipped;
|
|
1542
|
-
|
|
1559
|
+
`Skill` has no builtin (skills load through skills_paths) and is skipped; `Glob` / `Grep`
|
|
1560
|
+
map to tools the harness ships off, so they stay off; web search and the rest stay off, as
|
|
1561
|
+
they do for Claude Code under the same list.
|
|
1543
1562
|
"""
|
|
1544
1563
|
caps = _capabilities(allowed_tools=["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Skill"])
|
|
1545
1564
|
|
|
1546
1565
|
assert [t.value for t in caps.enabled_tools] == [
|
|
1547
1566
|
"create_file",
|
|
1548
1567
|
"edit_file",
|
|
1549
|
-
"find_file",
|
|
1550
1568
|
"finish",
|
|
1551
1569
|
"run_command",
|
|
1552
|
-
"
|
|
1570
|
+
"schedule",
|
|
1571
|
+
"start_subagent",
|
|
1553
1572
|
"view_file",
|
|
1554
1573
|
]
|
|
1555
|
-
assert caps.enable_subagents is False
|
|
1556
1574
|
|
|
1557
1575
|
|
|
1558
|
-
def
|
|
1559
|
-
caps = _capabilities(allowed_tools=["Bash", "
|
|
1576
|
+
def test_allowlist_never_enables_tools_the_harness_ships_off():
|
|
1577
|
+
caps = _capabilities(allowed_tools=["Bash", "Glob", "Grep", "LS", "AskUserQuestion"])
|
|
1560
1578
|
|
|
1561
|
-
assert {t.value for t in caps.enabled_tools} == {"run_command", "
|
|
1562
|
-
assert caps.enable_subagents is True
|
|
1579
|
+
assert {t.value for t in caps.enabled_tools} == {"run_command", "finish", "schedule", "start_subagent"}
|
|
1563
1580
|
|
|
1564
1581
|
|
|
1565
1582
|
def test_disallowed_tools_map_to_disabled_builtins():
|
|
1566
1583
|
caps = _capabilities(disallowed_tools=["Task", "WebSearch", "TodoWrite"])
|
|
1567
1584
|
|
|
1568
|
-
assert [t.value for t in caps.disabled_tools] == ["search_web"
|
|
1569
|
-
assert caps.enable_subagents is False
|
|
1585
|
+
assert [t.value for t in caps.disabled_tools] == ["search_web"]
|
|
1570
1586
|
|
|
1571
1587
|
|
|
1572
1588
|
def test_disallowed_tools_are_removed_from_the_allowlist():
|
|
1573
1589
|
"""The SDK takes an allowlist OR a denylist, so with both the denied tools leave the allowlist."""
|
|
1574
|
-
caps = _capabilities(allowed_tools=["Bash", "Read", "
|
|
1590
|
+
caps = _capabilities(allowed_tools=["Bash", "Read", "WebSearch"], disallowed_tools=["WebSearch"])
|
|
1591
|
+
|
|
1592
|
+
assert {t.value for t in caps.enabled_tools} == {"run_command", "view_file", "finish", "schedule", "start_subagent"}
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
@pytest.mark.parametrize(
|
|
1596
|
+
("cfg", "denied"),
|
|
1597
|
+
[
|
|
1598
|
+
({}, []),
|
|
1599
|
+
({"allowed_tools": ["Bash", "Task"]}, []),
|
|
1600
|
+
({"allowed_tools": ["Bash", "Read"]}, ["invoke_subagent"]),
|
|
1601
|
+
({"disallowed_tools": ["Task"]}, ["invoke_subagent"]),
|
|
1602
|
+
({"allowed_tools": ["Bash", "Task"], "disallowed_tools": ["Task"]}, ["invoke_subagent"]),
|
|
1603
|
+
],
|
|
1604
|
+
)
|
|
1605
|
+
async def test_subagent_calls_are_denied_unless_task_is_allowed(monkeypatch, tmp_path, cfg, denied):
|
|
1606
|
+
"""`start_subagent` stays on so the harness keeps its default system prompt, whose only
|
|
1607
|
+
"you will be notified, do not poll" guidance sits in its subagents section. A subagent the
|
|
1608
|
+
tool lists withhold is denied at the call that runs it instead."""
|
|
1609
|
+
configs: list[Any] = []
|
|
1610
|
+
|
|
1611
|
+
class _FakeSdkAgent:
|
|
1612
|
+
def __init__(self, cfg):
|
|
1613
|
+
configs.append(cfg)
|
|
1614
|
+
|
|
1615
|
+
async def __aenter__(self):
|
|
1616
|
+
return self
|
|
1575
1617
|
|
|
1576
|
-
|
|
1577
|
-
|
|
1618
|
+
async def __aexit__(self, *exc):
|
|
1619
|
+
return False
|
|
1620
|
+
|
|
1621
|
+
_install_fake_sdk(monkeypatch, _FakeSdkAgent)
|
|
1622
|
+
|
|
1623
|
+
await _agent(**cfg).start(str(tmp_path))
|
|
1624
|
+
|
|
1625
|
+
assert [p.tool for p in configs[0].policies if p.kind == "deny"] == denied
|
|
1578
1626
|
|
|
1579
1627
|
|
|
1580
1628
|
async def test_start_passes_tool_capabilities_to_sdk_config(monkeypatch, tmp_path):
|
|
@@ -1594,7 +1642,13 @@ async def test_start_passes_tool_capabilities_to_sdk_config(monkeypatch, tmp_pat
|
|
|
1594
1642
|
|
|
1595
1643
|
await _agent(allowed_tools=["Bash", "Read"]).start(str(tmp_path))
|
|
1596
1644
|
|
|
1597
|
-
assert {t.value for t in configs[0].capabilities.enabled_tools} == {
|
|
1645
|
+
assert {t.value for t in configs[0].capabilities.enabled_tools} == {
|
|
1646
|
+
"run_command",
|
|
1647
|
+
"view_file",
|
|
1648
|
+
"finish",
|
|
1649
|
+
"schedule",
|
|
1650
|
+
"start_subagent",
|
|
1651
|
+
}
|
|
1598
1652
|
|
|
1599
1653
|
|
|
1600
1654
|
def test_installed_sdk_accepts_the_tool_capabilities():
|
|
@@ -1602,10 +1656,12 @@ def test_installed_sdk_accepts_the_tool_capabilities():
|
|
|
1602
1656
|
every mapped name is a real builtin, so a renamed tool fails here, not live."""
|
|
1603
1657
|
types = pytest.importorskip("google.antigravity").types
|
|
1604
1658
|
|
|
1605
|
-
|
|
1659
|
+
mapped = set(agent_module._CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.values()) | agent_module._ALWAYS_ENABLED_TOOLS
|
|
1660
|
+
assert mapped <= {t.value for t in types.BuiltinTools}
|
|
1606
1661
|
caps = _agent(allowed_tools=["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Skill"])._tool_capabilities(types)
|
|
1607
1662
|
assert isinstance(caps, types.CapabilitiesConfig)
|
|
1608
|
-
assert types.BuiltinTools.START_SUBAGENT
|
|
1663
|
+
assert types.BuiltinTools.START_SUBAGENT in caps.enabled_tools
|
|
1664
|
+
assert types.BuiltinTools.FIND_FILE not in caps.enabled_tools
|
|
1609
1665
|
|
|
1610
1666
|
|
|
1611
1667
|
# --- max_turns cap -------------------------------------------------------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|