coder-eval 0.12.4__tar.gz → 0.12.5__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.4 → coder_eval-0.12.5}/.claude/harness-candidates.md +13 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/agents.md +128 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/contracts.md +66 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.env.example +40 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/pages-stub/index.html +2 -2
- coder_eval-0.12.5/.github/scripts/diagnose_delegate_token_claims.py +55 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/pr-checks.yml +321 -8
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.pre-commit-config.yaml +1 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/CHANGELOG.md +37 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/PKG-INFO +5 -4
- {coder_eval-0.12.4 → coder_eval-0.12.5}/README.md +1 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/action.yml +1 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/EXTENDING.md +2 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/REPORT_SCHEMA.md +1 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/TASK_DEFINITION_GUIDE.md +62 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/USER_GUIDE.md +2 -1
- coder_eval-0.12.5/docs/agents/DELEGATE.md +192 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/agents/HARNESS_PARITY.md +31 -24
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/comparison.md +2 -2
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/index.md +1 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/llms.txt +1 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/harness-badge.tsx +9 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/default.yaml +1 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/mkdocs.yml +4 -2
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/criteria.md +30 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/pyproject.toml +8 -4
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/__init__.py +1 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/__init__.py +11 -2
- coder_eval-0.12.5/src/coder_eval/agents/delegate/.gitignore +2 -0
- coder_eval-0.12.5/src/coder_eval/agents/delegate/delegate_host.mjs +175 -0
- coder_eval-0.12.5/src/coder_eval/agents/delegate/package.json +9 -0
- coder_eval-0.12.5/src/coder_eval/agents/delegate_agent.py +1041 -0
- coder_eval-0.12.5/src/coder_eval/criteria/system_one_judge.py +193 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_context.py +2 -1
- coder_eval-0.12.5/src/coder_eval/evaluation/judge_system_one.py +112 -0
- coder_eval-0.12.5/src/coder_eval/evaluation/system_one_scoring.py +199 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/portability.py +5 -3
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/__init__.py +25 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/agent_config.py +57 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/criteria.py +181 -2
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/enums.py +1 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/judge_defaults.py +9 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/results.py +5 -3
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/sandbox.py +4 -0
- coder_eval-0.12.5/src/coder_eval/models/system_one.py +196 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/tasks.py +2 -1
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/regrade.py +7 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/pricing.py +28 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/reports/html.py +2 -2
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/README.md +6 -1
- coder_eval-0.12.5/tasks/delegate/fizzbuzz_delegate.yaml +24 -0
- coder_eval-0.12.5/tasks/delegate/hello_date_delegate.yaml +32 -0
- coder_eval-0.12.5/tasks/smoke_system_one_judge.yaml +105 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/task.toml +2 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/agent_roster_parity.py +4 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_golden_master.py +4 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_custom_lint.py +2 -2
- coder_eval-0.12.5/tests/test_delegate_agent.py +580 -0
- coder_eval-0.12.5/tests/test_delegate_agent_config.py +68 -0
- coder_eval-0.12.5/tests/test_delegate_agent_live.py +141 -0
- coder_eval-0.12.5/tests/test_delegate_agent_registration.py +65 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_detached_grading_boundaries.py +25 -0
- coder_eval-0.12.5/tests/test_judge_system_one.py +185 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reference_models.py +15 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_success_criterion_union.py +4 -0
- coder_eval-0.12.5/tests/test_system_one_judge.py +435 -0
- coder_eval-0.12.5/tests/test_system_one_judge_live.py +81 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timing_identity_contract.py +40 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/uv.lock +9 -8
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/commands/coder-eval-code-review-full.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/commands/coder-eval-code-review-wf.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/commands/coder-eval-code-review.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/commands/coder-eval-create-plan.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/commands/coder-eval-implement-plan.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/commands/coder-eval-review.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/isolation.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/lint-rules.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/orchestration.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/permissions.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/persistence.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/reporting.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/notes/timing.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/shared/axes.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/shared/multi-model-review.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/shared/review-rubric.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/shared/run-layout.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/workflows/cr-axis.js +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude/workflows/cr-parent.js +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.claude-plugin/marketplace.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/CODEOWNERS +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/actionlint.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/code_review.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/dependabot.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/scripts/harbor_e2e.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/scripts/release_notes.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/claude-pr-review.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/codeql.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/conventional-commits.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/docker-publish.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/docs.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/harbor-e2e.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/publish-testpypi.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/release.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.github/workflows/verify-published-action.yml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.gitignore +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/.python-version +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/ADOPTERS.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/CLAUDE.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/CODE_OF_CONDUCT.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/CONTRIBUTING.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/LICENSE +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/Makefile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/NOTICE +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/SECURITY.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/comparison.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docker/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docker/Dockerfile.runtime +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docker/coder_eval_entrypoint.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docker/coder_eval_runtime_entrypoint.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/AB_EXPERIMENTS.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/CI_GATE.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/DATASETS.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/DIALOG_MODE.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/DOCKER_ISOLATION.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/PLUGIN.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/agents/ANTIGRAVITY.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/agents/CLAUDE_CODE.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/agents/CODEX.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/agents/OPENCODE.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/agents/PI.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/assets/hero.gif +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/01-first-evaluation.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/02-ci-pipeline.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/03-evalboard-local.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/04-writing-a-task.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/05-comparing-models.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/06-use-docker-isolation.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/docs/tutorials/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/.gitignore +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/col-help.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/collapsible-rail.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/harness-selector.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/scroll-table.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/search-box.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/skeleton.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/unit-toggle.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_components/version-list.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_lib/source-param.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/daily-chart.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/harness-legend.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/harness-series.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/tag-rail.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/_overview/window-summary.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/api/download/route.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/api/file/route.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/api/refresh/route.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/error.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/globals.css +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/icon.png +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/layout.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/loading.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/page.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/path-to-ga/page.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/path-to-ga/task-table.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/scribe/page.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/scribe/run-table.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/trends/actions.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/trends/page.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/trends/trends-view.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/watchlist/page.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/next-env.d.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/next.config.mjs +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/package.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/pnpm-lock.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/postcss.config.mjs +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/public/harness/antigravity.png +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/public/harness/claude-code.png +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/public/harness/codex.png +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/public/harness/pi.png +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/public/uipath.png +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/tailwind.config.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/tsconfig.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/vitest.config.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/evalboard/vitest.setup.ts +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/early-stop-ab.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/model-comparison.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/permissions-smoke.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/plugin-comparison.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/prompt-mutations-example.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/experiments/smoke_variants.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/litellm/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/litellm/cost_logger.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/litellm/litellm-config.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/litellm/start-litellm.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/osv-scanner.toml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/cli-setup.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/repo-layout.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/run-layout.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/task-rubric.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/skills/init/SKILL.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/plugins/coder-eval/skills/task/SKILL.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/check_commit_msg.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/corpus/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/corpus/antigravity.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/corpus/claude-code.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/corpus/codex.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/corpus/opencode.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/corpus/pi.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/scripts/timing/decompose_run.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/.gitattributes +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/_logging.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/_skills.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/antigravity_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/claude_code_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/codex_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/noop_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/opencode_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/pi_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/registry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/agents/watchdog.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/analysis.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/argv_match.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/console.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/evaluate_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/evaluate_target.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/execute_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/export_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/harbor_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/plan_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/report_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/run_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/run_helpers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/run_task_internal_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/cli/utils.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/agent_judge.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/base.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/classification_match.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/cli_called.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/command_executed.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/commands_efficiency.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/file_check.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/file_contains.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/file_exists.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/file_matches_regex.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/json_check.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/llm_judge.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/reference_comparison.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/run_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/skill_triggered.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/criteria/uipath_eval.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/durations.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/budget.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/categories.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/categorization.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/checker_misuse.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/executor.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/judge.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/reference.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/retry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/errors/timeout.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/checker.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_litellm.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_persistence.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/judge_usage.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/sub_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/summaries.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/evaluation/verdict_tool.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/formatting.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/fs_permissions.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/agent_paths.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/atif_emit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/atif_hydrate.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/atif_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/experiment_packager.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/packager.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/harbor/reward.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/invocation_log.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/isolation/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/isolation/docker_runner.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/litellm_cost.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/logging_config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/cli_match.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/container_context.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/container_paths.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/experiment.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/judge.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/limits.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/merge_strategy.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/mutations.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/routing.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/telemetry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/models/templates.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/batch.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/config_merge.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/early_stop.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/evaluation.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/experiment.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/overrides.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/run_limits.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestration/task_loader.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/orchestrator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/path_utils.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/plugins.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/py.typed +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/reports/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/reports/experiment.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/reports/helpers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/reports/junit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/reports/markdown.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/resources/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/resources/tags.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/result_metrics.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/run_record.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/sandbox.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/ast_similarity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/complexity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/quality.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/signature_similarity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/similarity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/scoring/token_similarity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/simulation/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/simulation/termination.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/simulation/user_simulator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/stats.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/streaming/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/streaming/callbacks.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/streaming/collector.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/streaming/events.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/streaming/renderers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/streaming/wire.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/telemetry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/timing.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/src/coder_eval/utils.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agentless_smoke_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/antigravity_hello_world.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/claude_hello_world.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/claude_hello_world_docker.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/claude_subagent_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_hello_world.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_parallel_commands.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_skills_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_string_utils.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/codex_subagent_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/subagent_bash_long_input.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/agents/subagent_merge_sort.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/anti_cheat_reference/reference/solution.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/byod_smoke_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dataset_example.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/datasets/sentiment.jsonl +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dockerfile_build_example/environment/input.txt +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/fibonacci_with_template.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/hello_date.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/inline_starter_example.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/internal/session_resumption.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/mock_path_dirs_smoke.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/opencode_smoke_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/pi_smoke_test.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/record_cli_responses.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/run_limits/max_turns_cap.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/run_limits/turn_timeout.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/sentiment_classification.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_agent_judge.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_llm_judge.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_negative_path.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_task_timeout.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/smoke_variants.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/test_sandbox.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tasks/token_check.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/templates/byod_smoke_test/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/templates/fibonacci-starter/README.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/templates/fibonacci-starter/src/main.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/templates/fibonacci-starter/tests/test_main.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_bracket_clock.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_container_contract.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/_scrub.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/live_criteria.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/run_full.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_fixtures/timing_union_cases.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/_path_helpers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/conftest.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/atif/known_good_trajectory.json +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/mock_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/pi_happy_stream.jsonl +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/fixtures/text_stub_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/action_docs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/dead_config_fields.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/doc_env_parity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/doc_examples.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/doc_indexes.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/doc_schema_parity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/generated.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/live_verdict_contract.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/plugin_manifest_parity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/plugin_reference.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/pricing_mirror.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/prose_budget.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/pyright_config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/__init__.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/_layers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/_model_ctor.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/base.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce051_no_driver_override.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce060_message_id_declared.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_agent_timing_access.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_silent_except.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_submodule_model_imports.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/open_explicit_encoding.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/register_criterion_required.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/runner.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/violation.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/lint/workflow_outputs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_action_inputs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_action_version_pin.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_config_no_timing_fields.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_config_optional_type.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_config_registry_dispatch.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_config_sdk_decoupling.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_judge_criterion.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_telemetry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_telemetry_advanced.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agent_timeout.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_agentless.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_antigravity_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_atif_emit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_atif_hydrate.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_atif_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_byoa_plugin.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_byoa_plugin_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_byod_feature.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_check_all_async.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_checker_logging.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_classification_match.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_claude_settings_enforcement_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cleanup_preservation_guard.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_backend_flag.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_called_criterion.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_empty_glob.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_match_parity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_sdk_options.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_set_overrides.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_telemetry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cli_type_flag.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_code_review_bugs.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_codex_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_codex_agent_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_codex_agent_unit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_codex_token_mapping.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_command_executed.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_command_statistics.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_command_telemetry_result_data.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_commands_efficiency.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_config_lineage.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_config_merge_engine.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_config_precedence.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_container_context.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_continuous_scoring.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_cost_accounting_paths.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_criterion_result_round_trip.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_dataset_expansion.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_debug_logging.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_detached_grading_guards.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_build_failure.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_litellm_env.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_runner_container_death.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_runner_mounts.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_runner_stream_limit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_wildcard_env.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_docker_workdir_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_driver_resolver.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_durations.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_early_stop.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_error_handling.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_evaluate_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_evaluate_format_harbor.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_evaluate_target.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_evaluator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_event_collector.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_execute_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_execute_evaluate_loop.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_execute_format_harbor.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_experiment_cli.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_experiment_loader.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_experiment_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_experiment_reports.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_experiment_resolver.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_experiment_runner.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_file_check.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_file_contains_scoring.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_formatting.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_git_clone_failure.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_glob_paths_in_file_criteria.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_e2e_fixtures.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_experiment_packager.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_export_golden.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_packager.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_portability.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_harbor_reward.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_heartbeat_watchdog.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_ignore_patterns_negation.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_image_from_dockerfiles.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_image_skew_refusal.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_integration.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_json_check.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_anthropic.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_bedrock.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_burn_in_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_context_builder.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_litellm.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_judge_persistence.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_lint_no_top_level_run_limits.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_lint_runner.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_litellm_config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_litellm_cost.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_litellm_cost_logger.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_litellm_judge_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_litellm_route.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_llm_judge_criterion.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_log_tail_buffer.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_logging.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_logging_isolation.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_merge_characterization.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_merge_strategy_annotations.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_merge_unification.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_mutations.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_new_criteria.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_node_env_config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_opencode_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_optional_dependencies.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_orchestrator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_orchestrator_error_log_tail.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_orchestrator_telemetry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_overrides_engine.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_parallel.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_path_utils.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pi_agent.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pi_agent_config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pi_smoke_task.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_plan_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_plugin_processing.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_plugins.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_post_run.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pr_review_workflow.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pre_run.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_preservation_mode.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pricing_mirror.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_pricing_registry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_prose_budget.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_prose_budget_commands.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reference_comparison_scoring.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reference_evaluator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reference_missing_file.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reference_permissions.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_registry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_regrade.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_release_notes.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_replicate_stats.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_report_command.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reports.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reports_html.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reports_junit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_reports_package.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_resolve_task_files.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_result_metrics.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_resume.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_retry_logic_comprehensive.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_route_seam_exhaustiveness.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_routing.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_command_junit.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_command_stdout.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_helpers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_limits_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_limits_orchestrator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_limits_resolver.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_metrics.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_record.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_run_summary_rebuild.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_runtime_tool_versions.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_adopt.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_layer_builder.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_optional.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_record_cli.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_security.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_symlink_preservation.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_templates.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sandbox_venv_live.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_scorers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_scoring_quality.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sdk_option_classification.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_seed_from_prior_result.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_simulation_config.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_simulation_integration.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_simulation_termination.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_simulation_trials.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_skill_triggered.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_stats.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_stats_nonfinite.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_agent_integration.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_batch.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_callbacks.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_cli.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_events.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_orchestrator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_renderers.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_streaming_wire.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_sub_agent_runner.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_suite_rollup.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_summaries.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_tags.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_task_definition_unknown_fields.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_teardown_interrupt.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_telemetry.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_template_env_expansion.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_threshold_enforcement.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timeout_batch.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timeout_categorization.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timeout_exceptions.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timeout_models.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timeout_orchestrator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timing_close_window.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_timing_union_parity.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_token_usage.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_uipath_eval.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_ungraded_reporting.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_user_simulator.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_utils.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_utterance_extraction.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_variant_prompt_file.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_verdict_tool.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_verify_published_workflow.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_visible_turn_cap.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_watchdog.py +0 -0
- {coder_eval-0.12.4 → coder_eval-0.12.5}/tests/test_yaml_migration.py +0 -0
|
@@ -1009,3 +1009,16 @@ re-derive from scratch.
|
|
|
1009
1009
|
f-string placeholders are `Path`s) that an AST-only rule does not have, and the existing
|
|
1010
1010
|
CLI has many pre-existing unescaped lines a literal rule would flag at once. Caught in:
|
|
1011
1011
|
Phase 5 quality review.
|
|
1012
|
+
- [ ] **A subprocess-driven agent must force-kill before dropping its process handle on
|
|
1013
|
+
EVERY dead-or-dying exit path, not just the obvious ones.** `DelegateAgent`'s
|
|
1014
|
+
`_drain_stdout` signals EOF (posts `None`) on a genuine pipe close AND on a buffer-limit
|
|
1015
|
+
overrun AND on its own unexpected exception — only the first guarantees the host already
|
|
1016
|
+
exited. Two review passes (independently) caught `communicate()`'s EOF/`fatal` branches
|
|
1017
|
+
and `_read_until`'s EOF branch clearing `self._process = None` without confirming the host
|
|
1018
|
+
was dead first, which orphans a still-alive Node host (and its interop child) rather than
|
|
1019
|
+
respawning cleanly. Fixed in all three sites; `kill_sync()` also now clears the handle.
|
|
1020
|
+
Deferred as a lint rule because the pattern ("this branch sets `self._X = None`; was a kill
|
|
1021
|
+
awaited on this path first?") needs control-flow reasoning an AST-only CE0xx rule doesn't
|
|
1022
|
+
have, and it is a recurring class ONLY within one file so far — worth promoting to a rule
|
|
1023
|
+
if a second subprocess-driven agent repeats it. Caught in: final cross-phase review,
|
|
1024
|
+
delegate agent port.
|
|
@@ -742,3 +742,131 @@ drop per-message accounting.
|
|
|
742
742
|
The classification is kept from failing open as the SDK grows: a test asserts EVERY field on
|
|
743
743
|
the SDK's options type is classified, either typed-mirrored or framework-owned, so a new SDK
|
|
744
744
|
release adding an unclassified field fails loudly instead of silently passing through.
|
|
745
|
+
|
|
746
|
+
## Delegate agent
|
|
747
|
+
|
|
748
|
+
`DelegateAgent` drives UiPath Autopilot's Delegate agent — reasoning in the UiPath backend,
|
|
749
|
+
tools executing locally through the SDK's bundled interop process. Unlike every other CLI-driven
|
|
750
|
+
agent in this file, there is no vendor-provided stdio protocol host to spawn: `@uipath/delegate-stdio`,
|
|
751
|
+
the internal package a UiPath-only sibling plugin (`coder_eval_uipath`) drives, is not public. Only
|
|
752
|
+
`@uipath/delegate-sdk` (a programmatic library exposing a `DelegateAgent` class with
|
|
753
|
+
`initialize()`/`onEvent()`/`sendMessage()`/`destroy()`) and `@uipath/delegate-cli` (a terminal wrapper
|
|
754
|
+
around it) are. So this agent ships its own first-party Node host, `agents/delegate/delegate_host.mjs`,
|
|
755
|
+
which wraps the SDK class in a newline-JSON stdio protocol this framework designed, not one it had to
|
|
756
|
+
reverse-engineer — verified live against a real `@uipath/delegate-sdk@0.1.12` install with no token,
|
|
757
|
+
confirming both the plain-public-install story and that the SDK's own event vocabulary
|
|
758
|
+
(`session_start`/`thinking`/`message`/`tool_call`/`tool_result`/`error`/`done`/`step`) substantially
|
|
759
|
+
matches the internal sibling's protocol.
|
|
760
|
+
|
|
761
|
+
**No multi-generation transcript splitting.** The internal sibling reconstructs one `AssistantMessage`
|
|
762
|
+
per backend round-trip from an `isStepStart` flag and a `turnUsages` array on the host's terminal
|
|
763
|
+
message. Neither is present on `DelegateAgent.onEvent`'s payloads (confirmed absent by grepping the
|
|
764
|
+
installed SDK bundle's string literals), so there is no reliable per-round-trip boundary signal at this
|
|
765
|
+
API layer. `DelegateAgent` builds exactly ONE `AssistantMessage` per `communicate()` call instead — a
|
|
766
|
+
deliberate simplification, not an oversight; richer segmentation can be added once a real boundary
|
|
767
|
+
signal is confirmed against a live backend. `timing.close_window` still opens that one window from the
|
|
768
|
+
turn's own start (there is nothing to tile from), so the head and tail both measure ~0.
|
|
769
|
+
|
|
770
|
+
**Deferred, not ported speculatively.** The internal sibling's module docstring documents several
|
|
771
|
+
hard-won failure-signature-specific recoveries: a Cloudflare WAF-block-page rewrite, an SSE-connect-
|
|
772
|
+
timeout rewrite, session-conflict fresh-host recovery, and first-response stall-timeout+resend. None
|
|
773
|
+
are ported here — porting a marker tuned to the internal sibling's own observed failures risks matching
|
|
774
|
+
nothing (or the wrong thing) against the public SDK/backend's actual error surface. A crash still ends
|
|
775
|
+
the turn correctly as a retryable `AgentCrashError`; it is just not specially diagnosed. Port these once
|
|
776
|
+
the same failures are actually observed running this agent for real.
|
|
777
|
+
|
|
778
|
+
**The process handle must be cleared on every path that leaves the host dead or dying** — EOF, a host
|
|
779
|
+
`fatal` message, a timeout (both the top-of-loop pre-check AND a timeout elapsing while blocked inside
|
|
780
|
+
`asyncio.wait_for`), cooperative stop, and `max_turns` exhaustion. A real bug shipped once during this
|
|
781
|
+
agent's own development: a timeout elapsing mid-read fell through to the generic crash path instead of
|
|
782
|
+
`TurnTimeoutError`, and left the process handle set, so the NEXT `communicate()` call reused a host with
|
|
783
|
+
a `"send"` still nominally in flight instead of respawning — risking a stale response being consumed as
|
|
784
|
+
the new turn's. `tests/test_delegate_agent.py`'s `test_timeout_elapsing_mid_read_still_raises_turn_timeout_error`
|
|
785
|
+
pins the fix.
|
|
786
|
+
|
|
787
|
+
**Skills mapping is deliberately NOT the shared `agents/_skills.py` resolver.** That resolver enumerates
|
|
788
|
+
individual skill directories for a repeated `--skill <dir>`-style CLI argument (OpenCode/Pi's shape).
|
|
789
|
+
The Delegate SDK's `bundledSkillsPath` wants exactly ONE parent directory whose children are skill
|
|
790
|
+
folders — a genuinely different shape — so `_resolve_bundled_skills_path` mirrors the internal sibling's
|
|
791
|
+
own mapping (`<plugin.path>/skills`, first plugin wins) instead of force-fitting the shared helper.
|
|
792
|
+
|
|
793
|
+
**Registered unconditionally**, exactly like `codex`/`antigravity` — there is no conditional-registration
|
|
794
|
+
gate keyed on an optional-dependency extra anywhere in this codebase; `opencode`/`pi` declare an EMPTY
|
|
795
|
+
extra purely as packaging-metadata documentation, and `delegate` follows that same shape (no new pip
|
|
796
|
+
package — Node/`@uipath/delegate-sdk` is the real prerequisite, resolved lazily in `start()`).
|
|
797
|
+
|
|
798
|
+
**`environment` resolution needs org/tenant SLUGS, not just IDs — confirmed by reading the installed
|
|
799
|
+
SDK's own bundle, not by guessing from its error message.** When `DELEGATE_BACKEND_URL` is absent and
|
|
800
|
+
`DELEGATE_ENV` (-> `environment` init option) is used instead, the SDK resolves the backend URL from
|
|
801
|
+
`organizationName`/`orgLogicalName` and `tenantName` fields on the `auth` object passed to
|
|
802
|
+
`initialize()` — NOT from `ORG_SLUG`/`TENANT_SLUG` read off `process.env` directly, despite that being
|
|
803
|
+
exactly what the SDK's own thrown error suggests ("set ORG_SLUG and TENANT_SLUG env vars alongside
|
|
804
|
+
ORG_ID/TENANT_ID"). That advice describes the separate `@uipath/delegate-cli`/`delegate-stdio` wrapper's
|
|
805
|
+
own env-var-driven bootstrapping, not the `DelegateAgent` class itself, which we drive directly. So
|
|
806
|
+
`_build_init_options` forwards `ORG_SLUG`/`TENANT_SLUG` (when set) into `auth.organizationName`/
|
|
807
|
+
`auth.tenantName` itself — confirmed against `node_modules/@uipath/delegate-sdk/dist/index.mjs`'s own
|
|
808
|
+
`yie()` resolver function live in CI (`pyright`/tests can't catch this class of bug; it only surfaces
|
|
809
|
+
against a real backend). `tests/test_delegate_agent.py::TestStart::test_org_and_tenant_slug_forwarded_into_auth`
|
|
810
|
+
pins it. Passing `DELEGATE_BACKEND_URL` directly instead of `DELEGATE_ENV` skips this whole path.
|
|
811
|
+
|
|
812
|
+
**Token usage comes from two getters called after `sendMessage()` resolves, not from any event or the
|
|
813
|
+
resolved value itself — confirmed by reading the installed SDK's bundle, not by guessing.** A first
|
|
814
|
+
pass guessed at a flat `usage` dict carried on the resolved `sendMessage()` value or on a forwarded
|
|
815
|
+
event, tried several plausible snake_case/camelCase bucket-name spellings, and silently returned zero
|
|
816
|
+
tokens every turn against a real backend (`tests/test_delegate_agent_live.py::test_delegate_live_token_usage_populated`
|
|
817
|
+
failed live: `record.crashed is False`, real text/tool output, `token_usage=None`). Reading
|
|
818
|
+
`node_modules/@uipath/delegate-sdk/dist/index.mjs` directly settled it: `sendMessage()` always resolves
|
|
819
|
+
to a plain string (never an object), and no event this host forwards via `agent.onEvent()` ever carries
|
|
820
|
+
a `usage` field — the SDK's own internal event vocabulary has no `"usage"` member (that name IS used
|
|
821
|
+
internally, but only inside the SDK's own Zustand store reducer that updates its "Token usage" UI
|
|
822
|
+
panel, never re-emitted through the public `onEvent` bus). The only way to reach it is
|
|
823
|
+
`DelegateAgent.getLastTurnUsage(sessionId?)` (defaults to the just-used session), so
|
|
824
|
+
`delegate_host.mjs`'s `handleSend` calls it — and `getSessionId()` — right after `sendMessage()`
|
|
825
|
+
resolves, and attaches both to the `send_ok` message itself. That getter's shape, read straight off the
|
|
826
|
+
SDK's own `setUsage` store action, is `{promptTokens, completionTokens, promptTokensCached,
|
|
827
|
+
cacheCreationTokens, turnTokenUnits, contextBreakdown}` — `promptTokens` is the TOTAL input token count
|
|
828
|
+
(OpenAI-style, cached + uncached), `promptTokensCached` the cache-READ subset of it, so
|
|
829
|
+
`_parse_usage` computes `uncached_input_tokens = promptTokens - promptTokensCached`. This is now
|
|
830
|
+
CONFIRMED, not a guess, so `_parse_usage`'s docstring no longer marks it `# UNVERIFIED`.
|
|
831
|
+
|
|
832
|
+
### Delegate agent pricing
|
|
833
|
+
|
|
834
|
+
Delegate-served models are keyed under the SDK's own hyphenated ids (e.g. `gpt-5-6-terra`) in
|
|
835
|
+
`pricing.py`'s `_PRICING` — DISTINCT keys from the dotted ids (`gpt-5.6-terra`) the claude-code/codex
|
|
836
|
+
harnesses use for the same physical models, because the Delegate backend echoes underscored ids
|
|
837
|
+
(`_` -> `-` only, never `.` -> `-`) and nothing normalizes one id family to the other. A model reachable
|
|
838
|
+
only through Delegate needs its own row here or `total_cost_usd` silently reports `None`. Several of
|
|
839
|
+
these models implicitly cache prefixes (no separate cache-write fee), so their `cache_write_per_mtok` is
|
|
840
|
+
`0.0` rather than mirroring input like most rows above them. Rates copied from the UiPath-only sibling
|
|
841
|
+
plugin's own `pricing.py`, whose own module docstring documents the same rationale.
|
|
842
|
+
|
|
843
|
+
Two things in `_DELEGATE_PRICING` look like copy errors on a skim and are not — a code review flagged
|
|
844
|
+
both before this line existed to point at.
|
|
845
|
+
|
|
846
|
+
`gpt-5-4` / `gpt-5-5` set `cache_write_per_mtok` equal to their OUTPUT rate (15.0 / 30.0), not a fraction
|
|
847
|
+
of input like every other row in the block. That is a real, documented OpenAI billing fact for these two
|
|
848
|
+
generations — cache writes billed at the full output rate — and their dotted twins in the main `_PRICING`
|
|
849
|
+
table (`gpt-5.4`, `gpt-5.5`) use the identical convention, so this is internally consistent; the numbers
|
|
850
|
+
are simply large. Only `gpt-5-6` introduced the cheaper 1.25x-input write convention this file's other
|
|
851
|
+
`gpt-5-6-*` rows use.
|
|
852
|
+
|
|
853
|
+
`gpt-5-6-sol` (5.0/30.0 here) genuinely differs from its dotted twin `gpt-5.6-sol` (4.0/20.0 in the main
|
|
854
|
+
table): a 2026-07-30 price cut was applied to the framework's dotted table for `terra`/`luna` and never
|
|
855
|
+
mirrored back into this hyphenated one (the UiPath-only sibling's own `pricing.py` carries the identical
|
|
856
|
+
un-mirrored gap, with the same caveat comment). The two tables can price the SAME physical model
|
|
857
|
+
differently until someone reconciles them — a known, pre-existing state, not something this port
|
|
858
|
+
introduced or should silently "fix" by picking one number over the other.
|
|
859
|
+
|
|
860
|
+
### Delegate agent golden-master and timing-identity coverage
|
|
861
|
+
|
|
862
|
+
`AgentKind.DELEGATE` is excluded from `tests/test_agent_golden_master.py`'s `_NO_GOLDEN_COVERAGE`
|
|
863
|
+
allowlist rather than given fixture scenarios: a golden snapshot pins a byte-identical `TurnRecord`
|
|
864
|
+
for a scripted event stream, and every event field name below the confirmed `type`/`content`/
|
|
865
|
+
`toolName`/`sessionId`/`model`/`usage` set is a guess (see this file's own "Delegate agent" section
|
|
866
|
+
above and `delegate_agent.py`'s module docstring). Snapshotting a guess would make it look verified.
|
|
867
|
+
Add real scenarios once the fields are confirmed against a live backend.
|
|
868
|
+
|
|
869
|
+
This does NOT extend to `tests/test_timing_identity_contract.py::test_delegate_buckets_tile_the_turn`,
|
|
870
|
+
which IS a real, unexempted case: the ms-exact four-bucket identity depends only on this agent's own
|
|
871
|
+
`close_window`/`_finalize_turn` code (a single window per turn, opened at `_TurnState.__init__` and
|
|
872
|
+
closed at finalize), never on the SDK's field names, so there is nothing unverified for it to guess at.
|
|
@@ -391,3 +391,69 @@ with a plain synchronous call, because offloading a single fast syscall only wid
|
|
|
391
391
|
cancellation window. The cleanup itself is deliberately synchronous: a bare `await` inside
|
|
392
392
|
`finally` is cancellable, and cancelling as that line is reached would skip cleanup and leak
|
|
393
393
|
the copy with no reaper.
|
|
394
|
+
|
|
395
|
+
## System One rubric scoring
|
|
396
|
+
|
|
397
|
+
A System One model (TypeSafe's `jev`) does not generate text. It reads one state and answers
|
|
398
|
+
a map of typed questions — `noul` (P(yes)), `choice` (a distribution over options), `score` (a
|
|
399
|
+
distribution over ordered levels) — with calibrated probabilities. That inverts what a judge
|
|
400
|
+
criterion has to defend against. There is no prose to parse, so the whole `submit_verdict`
|
|
401
|
+
tool channel has no counterpart here: the response schema is fixed by the questions that were
|
|
402
|
+
asked, and a model that answers off-schema is a wire fault, not a grading fault. It also means
|
|
403
|
+
there is no system prompt to hold an identity, so the transcript's system-prompt slot carries
|
|
404
|
+
the rubric as sent — that, not a persona, is what a reviewer needs to replay a grade.
|
|
405
|
+
|
|
406
|
+
### The score is ours, not the model's
|
|
407
|
+
|
|
408
|
+
The model reports a distribution; the grade is arithmetic we do on it. Each question resolves
|
|
409
|
+
to a value in [0.0, 1.0] through the author's own `expected` / `values`, and the criterion
|
|
410
|
+
score is their weighted mean. Keeping that reduction on our side buys three things a text
|
|
411
|
+
judge cannot have: the same answers always produce the same grade, the arithmetic is printable
|
|
412
|
+
(`findings` carries one line per question, with the value and the weight), and a rubric can be
|
|
413
|
+
re-scored from an archived transcript without another call.
|
|
414
|
+
|
|
415
|
+
`scoring: expected` weights every outcome by its probability, so a model that is genuinely
|
|
416
|
+
torn lands mid-scale instead of being rounded into a confident-looking verdict — the point of
|
|
417
|
+
a calibrated model. `argmax` exists for the case where partial credit is misleading rather
|
|
418
|
+
than informative: a gate. The default is `expected` because discarding the confidence is the
|
|
419
|
+
lossy choice and should be the one you ask for.
|
|
420
|
+
|
|
421
|
+
A distribution that is absent, non-numeric or sums to zero falls back to the point answer
|
|
422
|
+
(`choice` / `score` / `noul`) rather than grading as 0.0 — a broken `probabilities` block is a
|
|
423
|
+
provider fault, and the point answer is still a real answer. A question that is *unanswered*,
|
|
424
|
+
or answered with the wrong primitive, is the opposite case: it scores 0.0 at its full weight
|
|
425
|
+
and names itself in `findings`, because the rubric asked something the grade depends on and
|
|
426
|
+
dropping it would quietly inflate the mean.
|
|
427
|
+
|
|
428
|
+
### What it does not share with `llm_judge`
|
|
429
|
+
|
|
430
|
+
It does not read `checker_context.api_route`. The eval route resolves a TEXT judge model, and
|
|
431
|
+
substituting one for a System One model is not a fallback, it is a different API. The
|
|
432
|
+
credential comes from the env var *named* by `api_key_env`, so only the name is ever stored on
|
|
433
|
+
the criterion or persisted into a run record. A transport failure raises
|
|
434
|
+
`JudgeInfrastructureError` and escalates the row, rather than following `llm_judge`'s
|
|
435
|
+
unconfigured-transport arm into a scored 0.0 — an ungraded row must not read as a failed one.
|
|
436
|
+
|
|
437
|
+
A 200 response whose body carries no usable `answers` map is the same class of fault. Reducing
|
|
438
|
+
it would score every question "no answer returned" and finalize the row as a graded 0.0, which
|
|
439
|
+
reads as a failure the agent earned; it escalates instead.
|
|
440
|
+
|
|
441
|
+
### Non-finite values fail CLOSED
|
|
442
|
+
|
|
443
|
+
`json.loads` accepts the `NaN` and `Infinity` tokens, so a non-finite float arrives through an
|
|
444
|
+
ordinary 200 — and `base_url` may point at any gateway. NaN is unordered, so the obvious clamp
|
|
445
|
+
`max(0.0, min(1.0, x))` returns **1.0** for it: the naive reading of a malformed answer is FULL
|
|
446
|
+
credit. Every wire value is therefore checked with `math.isfinite` before it is used (`_is_number`),
|
|
447
|
+
`_clamp` maps a non-finite input to 0.0, and a question's `weight` is bounded and rejects inf/NaN
|
|
448
|
+
so the weighted mean cannot become `inf/inf`. The rule is that an unusable answer never earns
|
|
449
|
+
credit; it scores 0.0 and says so in `findings`.
|
|
450
|
+
|
|
451
|
+
`argmax` uses a strict `> 0.5` for `noul`. At exactly 0.5 the agreement is 0.5 whichever way
|
|
452
|
+
`expected` points, so `>=` passed a maximally uncertain answer in *both* directions.
|
|
453
|
+
|
|
454
|
+
### The reference scrub runs before serialization
|
|
455
|
+
|
|
456
|
+
`system_one_judge` persists its state as `json.dumps(state)`, which escapes newlines and tabs.
|
|
457
|
+
`scrub_reference` matches raw file text, so scrubbing the *rendered* JSON silently misses every
|
|
458
|
+
multi-line reference. The state's strings are scrubbed first, then serialized — a leak shipped
|
|
459
|
+
exactly this way, so the leak-canary test uses a multi-line, quoted reference on purpose.
|
|
@@ -31,6 +31,14 @@ LOG_TO_FILE=false # Set to true to enable file logging
|
|
|
31
31
|
# BEDROCK_MODEL="eu.anthropic.claude-sonnet-4-5-20250929-v1:0"
|
|
32
32
|
# BEDROCK_SMALL_MODEL="eu.anthropic.claude-haiku-4-5"
|
|
33
33
|
|
|
34
|
+
# TypeSafe System One (the system_one_judge criterion, model `jev`). NOT routed
|
|
35
|
+
# through API_BACKEND — a System One model answers typed questions with
|
|
36
|
+
# probabilities rather than text, so it is its own endpoint and its own key.
|
|
37
|
+
# The criterion stores only this variable's NAME (api_key_env), never the token.
|
|
38
|
+
# Unlike llm_judge, a missing key escalates the row to ERROR instead of scoring
|
|
39
|
+
# it 0.0: an ungraded row must not read as a failed one.
|
|
40
|
+
# TYPESAFE_API_KEY="<your_typesafe_api_key_here>"
|
|
41
|
+
|
|
34
42
|
# Codex agent settings (requires the [codex] extra: `uv sync --extra codex`).
|
|
35
43
|
# Only CODEX_API_KEY is read for auth (sent as a Bearer token). CODEX_BASE_URL
|
|
36
44
|
# routes to a custom OpenAI-/responses-compatible endpoint; unset = standard
|
|
@@ -80,6 +88,38 @@ LOG_TO_FILE=false # Set to true to enable file logging
|
|
|
80
88
|
# Off by default. Do NOT enable on developer workstations.
|
|
81
89
|
# CODER_EVAL_REMEDIATE_HOME_PLUGINS=0
|
|
82
90
|
|
|
91
|
+
# Delegate agent settings (UiPath Autopilot's Delegate agent, requires Node.js
|
|
92
|
+
# on PATH plus `npm install @uipath/delegate-sdk` — a genuinely public package,
|
|
93
|
+
# no token needed). See docs/agents/DELEGATE.md.
|
|
94
|
+
#
|
|
95
|
+
# DELEGATE_SDK_NODE_MODULES / DELEGATE_SDK_PATH — override the auto-located
|
|
96
|
+
# install (ancestor-walk from cwd, plus home); set at most one.
|
|
97
|
+
# DELEGATE_SDK_NODE_MODULES="/path/to/install/root"
|
|
98
|
+
# DELEGATE_SDK_PATH="/path/to/node_modules/@uipath/delegate-sdk/dist/index.mjs"
|
|
99
|
+
#
|
|
100
|
+
# DELEGATE_ENV — cloud environment slug (alpha/staging/production/localhost),
|
|
101
|
+
# used to derive the backend URL from the auth record's org/tenant slugs.
|
|
102
|
+
# DELEGATE_ENV="alpha"
|
|
103
|
+
#
|
|
104
|
+
# DELEGATE_BACKEND_URL — pin the full agent-service URL directly instead
|
|
105
|
+
# (wins over DELEGATE_ENV when both are set).
|
|
106
|
+
# DELEGATE_BACKEND_URL="https://cloud.uipath.com/<org>/<tenant>/delegate_"
|
|
107
|
+
#
|
|
108
|
+
# Auth: either the token set below, or a prior `delegate-sdk`/`delegate-cli`
|
|
109
|
+
# login that wrote ~/.aria/sdk-auth.json (read by the Node host itself, not
|
|
110
|
+
# by coder_eval). Each var also accepts a DELEGATE_-namespaced spelling
|
|
111
|
+
# (DELEGATE_AUTH_TOKEN, DELEGATE_TENANT_ID, ...), checked first -- prefer that
|
|
112
|
+
# spelling in a shared environment, since the bare names collide with what
|
|
113
|
+
# other tooling (npm, Vault, Terraform) commonly exports.
|
|
114
|
+
# AUTH_TOKEN="..."
|
|
115
|
+
# TENANT_ID="..."
|
|
116
|
+
# ORG_ID="..."
|
|
117
|
+
# With DELEGATE_ENV (not DELEGATE_BACKEND_URL) also set these two -- the
|
|
118
|
+
# human-readable org/tenant names, not the GUIDs above -- or init fails with
|
|
119
|
+
# "--env alpha needs org/tenant slugs". See docs/agents/DELEGATE.md.
|
|
120
|
+
# ORG_SLUG="..."
|
|
121
|
+
# TENANT_SLUG="..."
|
|
122
|
+
|
|
83
123
|
# Usage Telemetry (anonymous; on by default).
|
|
84
124
|
# Disable entirely:
|
|
85
125
|
# TELEMETRY_ENABLED=false
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
-->
|
|
13
13
|
<meta
|
|
14
14
|
name="description"
|
|
15
|
-
content="Coder Eval is Playwright for coding agents: an open-source, agent-agnostic framework for evaluating and benchmarking AI coding agents and their skills — sandboxed runs of Claude Code, Codex, Antigravity (Gemini), OpenCode, or
|
|
15
|
+
content="Coder Eval is Playwright for coding agents: an open-source, agent-agnostic framework for evaluating and benchmarking AI coding agents and their skills — sandboxed runs of Claude Code, Codex, Antigravity (Gemini), OpenCode, Pi, or Delegate against declarative YAML tasks, with weighted scoring and CI gates. Documentation: coder-eval.com/docs"
|
|
16
16
|
/>
|
|
17
17
|
|
|
18
18
|
<!--
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
<p class="lead">
|
|
228
228
|
<strong>Playwright for coding agents.</strong> An open-source, agent-agnostic framework for
|
|
229
229
|
evaluating and benchmarking AI coding agents and their skills: it runs a real agent — Claude
|
|
230
|
-
Code, Codex, Antigravity (Gemini), OpenCode, or
|
|
230
|
+
Code, Codex, Antigravity (Gemini), OpenCode, Pi, or Delegate — in a sandbox against declarative YAML
|
|
231
231
|
tasks, then scores the files and commands the agent actually produced.
|
|
232
232
|
</p>
|
|
233
233
|
<p class="notice">
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""Print MATCH/NO MATCH verdicts for a ROPC-minted Delegate token's org/tenant claims.
|
|
2
|
+
|
|
3
|
+
Used by the `delegate-live-tests` job in ../workflows/pr-checks.yml. Takes the
|
|
4
|
+
token's base64url-encoded JWT payload (argv[1]; never the full token) and
|
|
5
|
+
compares its account/org and tenant claims against the DELEGATE_ORG_ID /
|
|
6
|
+
DELEGATE_TENANT_ID secrets (read from the environment, never printed
|
|
7
|
+
directly -- GitHub Actions auto-masks any exact secret value in log output,
|
|
8
|
+
so a raw side-by-side print would be unreliable for a human to eyeball).
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import base64
|
|
14
|
+
import json
|
|
15
|
+
import os
|
|
16
|
+
import sys
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
ORG_CANDIDATES = ["account_id", "accountId", "organizationId", "organization_id"]
|
|
20
|
+
TENANT_CANDIDATES = ["prt_id", "tenant_id", "tenantId"]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _decode_claims(payload: str) -> dict[str, object]:
|
|
24
|
+
padded = payload + "=" * (-len(payload) % 4)
|
|
25
|
+
decoded = json.loads(base64.urlsafe_b64decode(padded))
|
|
26
|
+
if not isinstance(decoded, dict):
|
|
27
|
+
raise SystemExit(f"token payload is {type(decoded).__name__}, not a JSON object")
|
|
28
|
+
return decoded
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _print_verdict(claims: dict[str, object], candidates: list[str], expected: str, label: str) -> None:
|
|
32
|
+
found = {k: claims[k] for k in candidates if k in claims}
|
|
33
|
+
if not found:
|
|
34
|
+
print(f"{label}: token carries none of {candidates} -- cannot verify")
|
|
35
|
+
return
|
|
36
|
+
for key, value in found.items():
|
|
37
|
+
verdict = "MATCH" if value == expected else "NO MATCH"
|
|
38
|
+
print(f"{label} claim {key}: {verdict} against DELEGATE_{label}_ID")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def main() -> None:
|
|
42
|
+
claims = _decode_claims(sys.argv[1])
|
|
43
|
+
_print_verdict(claims, ORG_CANDIDATES, os.environ["EXPECTED_ORG_ID"], "ORG")
|
|
44
|
+
_print_verdict(claims, TENANT_CANDIDATES, os.environ["EXPECTED_TENANT_ID"], "TENANT")
|
|
45
|
+
print(f"All claim keys present on token (names only, no values): {sorted(claims.keys())}")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
# Advisory only: never let a diagnostic failure (a malformed argv, a
|
|
50
|
+
# missing EXPECTED_* var) gate the real `coder-eval run` this step exists
|
|
51
|
+
# to help explain, rather than mask.
|
|
52
|
+
try:
|
|
53
|
+
main()
|
|
54
|
+
except Exception as exc:
|
|
55
|
+
print(f"claims diagnostic unavailable: {exc}")
|