coder-eval 0.11.6__tar.gz → 0.11.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/pages-stub/index.html +6 -5
- {coder_eval-0.11.6 → coder_eval-0.11.7}/CHANGELOG.md +91 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/CLAUDE.md +1 -1
- {coder_eval-0.11.6 → coder_eval-0.11.7}/PKG-INFO +88 -43
- {coder_eval-0.11.6 → coder_eval-0.11.7}/README.md +84 -39
- {coder_eval-0.11.6 → coder_eval-0.11.7}/action.yml +1 -1
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/ANTIGRAVITY.md +1 -1
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/comparison.md +8 -6
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/index.md +22 -18
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/llms.txt +18 -17
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/01-first-evaluation.md +5 -2
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/__tests__/harness-selector.test.tsx +51 -0
- coder_eval-0.11.7/evalboard/app/_components/__tests__/skeleton.test.tsx +97 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/harness-selector.tsx +13 -6
- coder_eval-0.11.7/evalboard/app/_components/skeleton.tsx +171 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/download/route.ts +16 -15
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/refresh/__tests__/route.test.ts +29 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/refresh/route.ts +7 -2
- coder_eval-0.11.7/evalboard/app/globals.css +109 -0
- coder_eval-0.11.7/evalboard/app/loading.tsx +40 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/__tests__/trends-view.test.tsx +5 -3
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/trends-view.tsx +6 -6
- {coder_eval-0.11.6 → coder_eval-0.11.7}/mkdocs.yml +4 -3
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
- {coder_eval-0.11.6 → coder_eval-0.11.7}/pyproject.toml +9 -7
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/__init__.py +1 -1
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/pricing.py +27 -17
- coder_eval-0.11.7/tests/lint/agent_roster_parity.py +117 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_antigravity_agent.py +2 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cost_accounting_paths.py +3 -3
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_custom_lint.py +67 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/uv.lock +8 -8
- coder_eval-0.11.6/evalboard/app/globals.css +0 -42
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-code-review-full.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-code-review-wf.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-code-review.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-create-plan.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-implement-plan.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-review.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/harness-candidates.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/axes.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/multi-model-review.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/review-rubric.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/run-layout.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/workflows/cr-axis.js +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/workflows/cr-parent.js +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude-plugin/marketplace.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.env.example +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/CODEOWNERS +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/actionlint.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/code_review.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/dependabot.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/scripts/release_notes.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/claude-pr-review.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/codeql.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/conventional-commits.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/docker-publish.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/docs.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/pr-checks.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/publish-testpypi.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/release.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/verify-published-action.yml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.gitignore +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.pre-commit-config.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/.python-version +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/ADOPTERS.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/CODE_OF_CONDUCT.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/CONTRIBUTING.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/LICENSE +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/Makefile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/NOTICE +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/SECURITY.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/comparison.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/Dockerfile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/Dockerfile.runtime +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/coder_eval_entrypoint.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/coder_eval_runtime_entrypoint.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/AB_EXPERIMENTS.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/CI_GATE.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/DATASETS.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/DIALOG_MODE.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/DOCKER_ISOLATION.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/EXTENDING.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/PLUGIN.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/REPORT_SCHEMA.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/TASK_DEFINITION_GUIDE.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/USER_GUIDE.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/CLAUDE_CODE.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/CODEX.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/HARNESS_PARITY.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/OPENCODE.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/assets/hero.gif +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/02-ci-pipeline.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/03-evalboard-local.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/04-writing-a-task.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/05-comparing-models.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/06-use-docker-isolation.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/.gitignore +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/col-help.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/collapsible-rail.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/harness-badge.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/scroll-table.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/search-box.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/unit-toggle.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/version-list.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_lib/source-param.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/daily-chart.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/harness-legend.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/harness-series.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/tag-rail.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/window-summary.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/file/route.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/error.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/icon.png +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/layout.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/page.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/path-to-ga/page.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/path-to-ga/task-table.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/scribe/page.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/scribe/run-table.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/actions.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/page.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/watchlist/page.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/next-env.d.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/next.config.mjs +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/package.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/pnpm-lock.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/postcss.config.mjs +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/harness/antigravity.png +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/harness/claude-code.png +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/harness/codex.png +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/uipath.png +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/tailwind.config.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/tsconfig.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/vitest.config.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/vitest.setup.ts +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/default.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/early-stop-ab.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/model-comparison.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/permissions-smoke.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/plugin-comparison.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/prompt-mutations-example.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/smoke_variants.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/cost_logger.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/litellm-config.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/start-litellm.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/osv-scanner.toml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/cli-setup.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/criteria.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/repo-layout.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/run-layout.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/task-rubric.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/init/SKILL.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/task/SKILL.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/scripts/check_commit_msg.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/.gitattributes +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/_logging.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/antigravity_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/claude_code_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/codex_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/noop_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/opencode_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/registry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/watchdog.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/analysis.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/aggregate_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/console.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/evaluate_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/plan_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/report_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/run_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/run_helpers.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/run_task_internal_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/utils.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/agent_judge.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/base.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/classification_match.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/cli_called.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/command_executed.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/commands_efficiency.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_check.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_contains.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_exists.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_matches_regex.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/json_check.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/llm_judge.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/reference_comparison.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/run_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/skill_triggered.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/uipath_eval.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/budget.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/categories.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/categorization.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/checker_misuse.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/executor.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/judge.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/reference.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/retry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/timeout.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/checker.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_context.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_litellm.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_persistence.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_usage.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/sub_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/summaries.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/verdict_tool.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/formatting.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/fs_permissions.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/invocation_log.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/isolation/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/isolation/docker_runner.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/litellm_cost.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/logging_config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/agent_config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/container_paths.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/criteria.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/enums.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/experiment.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/judge.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/judge_defaults.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/limits.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/merge_strategy.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/mutations.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/results.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/routing.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/sandbox.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/tasks.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/telemetry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/templates.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/batch.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/config_merge.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/early_stop.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/evaluation.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/experiment.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/overrides.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/run_limits.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/task_loader.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestrator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/path_utils.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/plugins.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/py.typed +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_experiment.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_html.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_junit.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_stats.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/resources/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/resources/tags.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/sandbox.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/ast_similarity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/complexity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/quality.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/signature_similarity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/similarity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/token_similarity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/simulation/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/simulation/termination.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/simulation/user_simulator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/callbacks.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/collector.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/events.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/renderers.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/wire.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/telemetry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/utils.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agentless_smoke_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/antigravity_hello_world.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_hello_world.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_hello_world_docker.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_subagent_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_hello_world.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_parallel_commands.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_skills_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_string_utils.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_subagent_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/subagent_bash_long_input.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/subagent_merge_sort.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/anti_cheat_reference/reference/solution.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/byod_smoke_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dataset_example.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/datasets/sentiment.jsonl +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/environment/input.txt +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/fibonacci_with_template.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/hello_date.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/inline_starter_example.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/internal/session_resumption.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_smoke.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/opencode_smoke_test.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/run_limits/max_turns_cap.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/run_limits/turn_timeout.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/sentiment_classification.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_agent_judge.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_budget_exceeded.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_llm_judge.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_negative_path.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_task_timeout.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_variants.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/test_sandbox.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/token_check.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/byod_smoke_test/Dockerfile +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/fibonacci-starter/README.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/fibonacci-starter/src/main.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/fibonacci-starter/tests/test_main.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/_scrub.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/live_criteria.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/run_full.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_path_helpers.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/conftest.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/mock_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/text_stub_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/action_docs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/dead_config_fields.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_env_parity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_examples.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_indexes.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_schema_parity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/generated.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/live_verdict_contract.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/plugin_manifest_parity.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/plugin_reference.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/pyright_config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/__init__.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/base.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce023_no_proxy_shim_import.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_agent_timing_access.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_silent_except.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_submodule_model_imports.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/open_explicit_encoding.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/register_criterion_required.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/runner.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/violation.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/workflow_outputs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_action_inputs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_action_version_pin.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_no_timing_fields.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_optional_type.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_registry_dispatch.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_sdk_decoupling.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_golden_master.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_judge_criterion.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_telemetry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_telemetry_advanced.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_timeout.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agentless.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_aggregate.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_byoa_plugin.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_byoa_plugin_live.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_byod_feature.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_check_all_async.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_checker_logging.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_classification_match.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_claude_settings_enforcement_live.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cleanup_preservation_guard.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_backend_flag.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_called_criterion.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_empty_glob.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_sdk_options.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_set_overrides.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_telemetry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_type_flag.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_code_review_bugs.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_agent_live.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_agent_unit.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_token_mapping.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_command_executed.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_command_statistics.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_command_telemetry_result_data.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_commands_efficiency.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_config_lineage.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_config_merge_engine.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_config_precedence.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_continuous_scoring.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_criterion_result_round_trip.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_dataset_expansion.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_debug_logging.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_build_failure.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_litellm_env.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_runner_container_death.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_runner_mounts.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_runner_stream_limit.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_wildcard_env.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_workdir_live.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_driver_resolver.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_early_stop.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_error_handling.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_evaluate_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_evaluator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_event_collector.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_cli.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_loader.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_reports.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_resolver.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_runner.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_file_check.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_file_contains_scoring.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_formatting.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_git_clone_failure.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_glob_paths_in_file_criteria.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_heartbeat_watchdog.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_ignore_patterns_negation.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_image_from_dockerfiles.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_integration.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_json_check.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_anthropic.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_bedrock.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_burn_in_live.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_context_builder.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_litellm.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_persistence.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_lint_no_top_level_run_limits.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_lint_runner.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_cost.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_cost_logger.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_judge_live.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_route.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_llm_judge_criterion.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_log_tail_buffer.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_logging.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_logging_isolation.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_merge_characterization.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_merge_strategy_annotations.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_merge_unification.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_mutations.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_new_criteria.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_node_env_config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_opencode_agent.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_optional_dependencies.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_orchestrator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_orchestrator_error_log_tail.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_orchestrator_telemetry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_overrides_engine.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_parallel.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_path_utils.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_plan_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_plugin_processing.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_plugins.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_post_run.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_pr_review_workflow.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_pre_run.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_preservation_mode.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_pricing_registry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_comparison_scoring.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_evaluator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_missing_file.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_permissions.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_registry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_release_notes.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_replicate_stats.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_report_command.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_experiment.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_html.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_junit.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_stats.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_stats_nonfinite.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_resolve_task_files.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_resume.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_retry_logic_comprehensive.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_route_seam_exhaustiveness.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_routing.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_command_junit.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_command_stdout.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_helpers.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_limits_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_limits_orchestrator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_limits_resolver.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_metrics.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_runtime_tool_versions.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_layer_builder.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_optional.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_record_cli.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_security.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_symlink_preservation.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_templates.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_scorers.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_scoring_quality.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sdk_option_classification.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_config.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_integration.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_termination.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_trials.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_skill_triggered.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_agent_integration.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_batch.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_callbacks.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_cli.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_events.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_orchestrator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_renderers.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_wire.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sub_agent_runner.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_success_criterion_union.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_suite_rollup.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_summaries.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_tags.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_task_definition_unknown_fields.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_teardown_interrupt.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_telemetry.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_template_env_expansion.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_threshold_enforcement.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_batch.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_categorization.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_exceptions.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_models.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_orchestrator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_token_usage.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_uipath_eval.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_user_simulator.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_utils.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_utterance_extraction.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_variant_prompt_file.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_verdict_tool.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_verify_published_workflow.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_visible_turn_cap.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_watchdog.py +0 -0
- {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_yaml_migration.py +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<title>Coder Eval — evaluate AI coding agents and
|
|
6
|
+
<title>Coder Eval — evaluate AI coding agents and their skills</title>
|
|
7
7
|
<!--
|
|
8
8
|
The description is here for link previews and for anyone reading source,
|
|
9
9
|
not for ranking: this page is noindex (see below), so search engines will
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
-->
|
|
13
13
|
<meta
|
|
14
14
|
name="description"
|
|
15
|
-
content="Coder Eval is an open-source framework for evaluating and benchmarking AI coding agents and
|
|
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), or OpenCode against declarative YAML tasks, with weighted scoring and CI gates. Documentation: coder-eval.com/docs"
|
|
16
16
|
/>
|
|
17
17
|
|
|
18
18
|
<!--
|
|
@@ -225,9 +225,10 @@
|
|
|
225
225
|
-->
|
|
226
226
|
<h1 class="sr-only">Coder Eval</h1>
|
|
227
227
|
<p class="lead">
|
|
228
|
-
An open-source framework for
|
|
229
|
-
|
|
230
|
-
|
|
228
|
+
<strong>Playwright for coding agents.</strong> An open-source, agent-agnostic framework for
|
|
229
|
+
evaluating and benchmarking AI coding agents and their skills: it runs a real agent — Claude
|
|
230
|
+
Code, Codex, Antigravity (Gemini), or OpenCode — in a sandbox against declarative YAML
|
|
231
|
+
tasks, then scores the files and commands the agent actually produced.
|
|
231
232
|
</p>
|
|
232
233
|
<p class="notice">
|
|
233
234
|
The documentation has moved to
|
|
@@ -2,6 +2,97 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.11.7 (2026-09-08)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **deps**: Bump google-antigravity 0.1.7 -> 0.1.8 (Defender FP on the harness)
|
|
10
|
+
([#158](https://github.com/UiPath/coder_eval/pull/158),
|
|
11
|
+
[`48a4d53`](https://github.com/UiPath/coder_eval/commit/48a4d5375f5cf0ce12f956ba77cbe4d48e4be543))
|
|
12
|
+
|
|
13
|
+
- **deps**: Bump google-antigravity to 0.1.8 to clear a Defender false positive on the bundled
|
|
14
|
+
harness [PILOT-7463] ([#158](https://github.com/UiPath/coder_eval/pull/158),
|
|
15
|
+
[`48a4d53`](https://github.com/UiPath/coder_eval/commit/48a4d5375f5cf0ce12f956ba77cbe4d48e4be543))
|
|
16
|
+
|
|
17
|
+
- **docs**: Update Antigravity version in docs
|
|
18
|
+
([#158](https://github.com/UiPath/coder_eval/pull/158),
|
|
19
|
+
[`48a4d53`](https://github.com/UiPath/coder_eval/commit/48a4d5375f5cf0ce12f956ba77cbe4d48e4be543))
|
|
20
|
+
|
|
21
|
+
- **evalboard**: Always show every known harness in the filter
|
|
22
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
23
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
24
|
+
|
|
25
|
+
- **evalboard**: Stop counting one model as two in the run header
|
|
26
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
27
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
28
|
+
|
|
29
|
+
- **pricing**: Refresh the rate card and add gemini 3.7/3.8 Flash
|
|
30
|
+
([#155](https://github.com/UiPath/coder_eval/pull/155),
|
|
31
|
+
[`be98f9d`](https://github.com/UiPath/coder_eval/commit/be98f9d4bd02e12482f16cec3a57ab5c54be8149))
|
|
32
|
+
|
|
33
|
+
### Documentation
|
|
34
|
+
|
|
35
|
+
- Add intro video and make the README agent-agnostic
|
|
36
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
37
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
38
|
+
|
|
39
|
+
- Widen the framing past skills-only and guard the agent roster with CE047
|
|
40
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
41
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
42
|
+
|
|
43
|
+
- **deps**: Drop the Defender rationale from the antigravity pin comment
|
|
44
|
+
([#158](https://github.com/UiPath/coder_eval/pull/158),
|
|
45
|
+
[`48a4d53`](https://github.com/UiPath/coder_eval/commit/48a4d5375f5cf0ce12f956ba77cbe4d48e4be543))
|
|
46
|
+
|
|
47
|
+
- **evalboard**: Trim the comments added by this branch
|
|
48
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
49
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
50
|
+
|
|
51
|
+
- **pricing**: Trim the rate-card comments to what affects an edit
|
|
52
|
+
([#155](https://github.com/UiPath/coder_eval/pull/155),
|
|
53
|
+
[`be98f9d`](https://github.com/UiPath/coder_eval/commit/be98f9d4bd02e12482f16cec3a57ab5c54be8149))
|
|
54
|
+
|
|
55
|
+
- **readme**: Add intro video and make the README agent-agnostic
|
|
56
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
57
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
58
|
+
|
|
59
|
+
- **readme**: Play the intro video inline, with YouTube as the fallback
|
|
60
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
61
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
62
|
+
|
|
63
|
+
- **readme**: Tell viewers to unmute the inline video
|
|
64
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
65
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
66
|
+
|
|
67
|
+
- **stub**: Make the Pages stub and package metadata agent-agnostic
|
|
68
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
69
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
70
|
+
|
|
71
|
+
- **tutorial**: Stop sending first-timers through the contributor toolchain
|
|
72
|
+
([#157](https://github.com/UiPath/coder_eval/pull/157),
|
|
73
|
+
[`d715f85`](https://github.com/UiPath/coder_eval/commit/d715f856e32289be068dda7049251486660496ec))
|
|
74
|
+
|
|
75
|
+
### Features
|
|
76
|
+
|
|
77
|
+
- **evalboard**: Add loading skeletons to the slow routes
|
|
78
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
79
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
80
|
+
|
|
81
|
+
### Performance Improvements
|
|
82
|
+
|
|
83
|
+
- **evalboard**: Cut page load time and show loading state while pages load
|
|
84
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
85
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
86
|
+
|
|
87
|
+
- **evalboard**: Move repeated per-row utility classes into the stylesheet
|
|
88
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
89
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
90
|
+
|
|
91
|
+
- **evalboard**: Stop re-reading the whole run store on every render
|
|
92
|
+
([#152](https://github.com/UiPath/coder_eval/pull/152),
|
|
93
|
+
[`5e7d2b6`](https://github.com/UiPath/coder_eval/commit/5e7d2b6e69de43fbfc0c961e43c8b540da5b403f))
|
|
94
|
+
|
|
95
|
+
|
|
5
96
|
## v0.11.6 (2026-09-01)
|
|
6
97
|
|
|
7
98
|
### Bug Fixes
|
|
@@ -216,7 +216,7 @@ make plugin-reference # the plugin's bundled criteria reference from the models
|
|
|
216
216
|
|
|
217
217
|
Editing `src/coder_eval/pricing.py` means editing `evalboard/lib/pricing.ts` too — it is a hand-copied mirror, and `evalboard/lib/__tests__/pricing-parity.test.ts` fails the build on drift in either direction.
|
|
218
218
|
|
|
219
|
-
Recent additions, each traceable to a shipped defect: **CE037** (no unreferenced module-level private helper in `src/` — a helper whose docstring documents a bug the live code still has is worse than none), **CE038** (in an `@asynccontextmanager`, the acquire must sit INSIDE the `try` whose `finally` releases it — `asyncio.shield` protects the inner task, NOT the await, so a cancel on `__aenter__` skips the unwind while the work completes), **CE039** (a criterion checker must not return a gating `score=0.0` from an `except OSError` over a path the *task author* named — that books an eval-config error as an agent failure; raise `CheckerMisuseError` instead, and `# noqa: CE039` the cases that really are the agent's).
|
|
219
|
+
Recent additions, each traceable to a shipped defect: **CE037** (no unreferenced module-level private helper in `src/` — a helper whose docstring documents a bug the live code still has is worse than none), **CE038** (in an `@asynccontextmanager`, the acquire must sit INSIDE the `try` whose `finally` releases it — `asyncio.shield` protects the inner task, NOT the await, so a cancel on `__aenter__` skips the unwind while the work completes), **CE039** (a criterion checker must not return a gating `score=0.0` from an `except OSError` over a path the *task author* named — that books an eval-config error as an agent failure; raise `CheckerMisuseError` instead, and `# noqa: CE039` the cases that really are the agent's), **CE047** (every onboarding/marketing surface — README, `docs/index.md`, `docs/comparison.md`, `docs/llms.txt`, `mkdocs.yml`'s `site_description`, the Pages stub, and pyproject's `description`/`keywords` — must name every built-in `AgentKind`; OpenCode shipped while four of those seven still listed three harnesses, and nothing failed).
|
|
220
220
|
|
|
221
221
|
When fixing a bug, ask: *could a custom lint rule have prevented this?* If the root cause is a mechanically detectable pattern (e.g., "always import from `coder_eval.models`", "never call blocking IO in async"), add a rule to `tests/lint/rules/` following the CE001+ pattern and wire it up in `tests/lint/runner.py`. This turns a one-time fix into permanent enforcement. See `tests/test_custom_lint.py` for how rules are tested. (Doc-surface / whole-tree rules that reason over Markdown/YAML or the entire `src/` tree rather than one `.py` AST at a time — CE026–CE031, CE033–CE036 — are not `BaseRule`s in the runner; they are wired as dedicated `@pytest.mark.lint` test classes. CE036 enforces the `live_verdict` determinism + monotonicity contract (`criteria/base.py`) that `EarlyStopWatcher`'s latching, deferred fail-stop, and flip-attribution silently depend on: monotonicity over arbitrary Python is undecidable, so instead of a static check it REPLAYS each live criterion against every prefix of recorded trajectories (`tests/lint/live_verdict_contract.py::CASES`) — on the authored ordering AND under seeded shuffles (`permuted_violations`, which catch order-sensitive bugs the authored walk misses) — and asserts the property directly, plus registry-derived coverage — every `LiveSuccessCriterion` in the union must have cases, and every polarity its instances claim via `live_decidable_polarities()` must actually be reached by one (otherwise a single always-`undecided` fixture would "cover" a type while proving nothing). Adding a live criterion therefore means adding `ContractCase`s in the same change. CE035 resolves every `steps.<id>.outputs.<key>` / `needs.<job>.outputs.<key>` reference in `.github/workflows/**` to a writer that actually produces that key — GitHub expands an unwritten output to the empty string, so a typo degrades a gate silently and actionlint models `steps.*.outputs` as an open string map. CE034 scans `tasks/` and forces an armed, live-*passable* `command_executed` to set `require_success` — a crashed invocation would otherwise latch a live PASS, fire `on_pass: stop`, and let FIRED-ONLY armed gating report SUCCESS without ever consulting the unarmed criteria (negative assertions are fail-only and are exempt). CE033 keeps the plugin's bundled `reference/criteria.md` in parity with the `SuccessCriterion` union that generates it (`make plugin-reference` writes it; the rule re-renders and diffs — never hand-edit the file). CE031 guards against dead config: a behavior-driving field on `SimulationConfig`/`RunLimits`/`Dataset` that no code reads by name. CE026 keeps the GitHub Action's onboarding surfaces honest — `README.md`, `docs/CI_GATE.md`, `docs/tutorials/02-ci-pipeline.md`, and the plugin's `ci` skill, whose emitted workflow users copy into their own repos: a page's *first* Action snippet must show the agent-runtime prerequisite steps (pinned to the `action-dogfood` job that proves them in CI), a zero-install absolute next to such a snippet must name the channel it means, every `github.com/marketplace/actions/<slug>` link plus the shields badge label must match `action.yml`'s `name:`, and every `with:` key on a snippet's action step must be a real `action.yml` input (GitHub ignores unknown inputs, so a rename would silently degrade every copied workflow). Renaming an action input or changing its runtime prerequisites therefore means updating the skill too.)
|
|
222
222
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: coder-eval
|
|
3
|
-
Version: 0.11.
|
|
4
|
-
Summary: Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity) with sandboxed, reproducible YAML task suites.
|
|
3
|
+
Version: 0.11.7
|
|
4
|
+
Summary: Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode) with sandboxed, reproducible YAML task suites.
|
|
5
5
|
Project-URL: Homepage, https://coder-eval.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/coder_eval
|
|
7
7
|
Project-URL: Documentation, https://coder-eval.com/docs
|
|
@@ -11,7 +11,7 @@ Author-email: UiPath <coder-eval@uipath.com>
|
|
|
11
11
|
License-Expression: Apache-2.0
|
|
12
12
|
License-File: LICENSE
|
|
13
13
|
License-File: NOTICE
|
|
14
|
-
Keywords: agent,agent-evaluation,agent-skills,agent-testing,ai,ai-evaluation,anthropic,antigravity,benchmark,claude,claude-code,claude-code-skills,claude-skills,code-generation,codex,coding-agent,eval,evals,evaluation,gemini,llm,llm-eval,llm-evaluation,llmops,sandbox,skills-evaluation,skillsbench,swe-bench
|
|
14
|
+
Keywords: agent,agent-evaluation,agent-skills,agent-testing,ai,ai-evaluation,anthropic,antigravity,benchmark,claude,claude-code,claude-code-skills,claude-skills,code-generation,codex,coding-agent,eval,evals,evaluation,gemini,llm,llm-eval,llm-evaluation,llmops,opencode,sandbox,skills-evaluation,skillsbench,swe-bench
|
|
15
15
|
Classifier: Development Status :: 4 - Beta
|
|
16
16
|
Classifier: Environment :: Console
|
|
17
17
|
Classifier: Intended Audience :: Developers
|
|
@@ -42,7 +42,7 @@ Requires-Dist: starlette>=1.3.1
|
|
|
42
42
|
Requires-Dist: tqdm>=4.67.3
|
|
43
43
|
Requires-Dist: typer>=0.24.1
|
|
44
44
|
Provides-Extra: antigravity
|
|
45
|
-
Requires-Dist: google-antigravity==0.1.
|
|
45
|
+
Requires-Dist: google-antigravity==0.1.8; extra == 'antigravity'
|
|
46
46
|
Provides-Extra: codex
|
|
47
47
|
Requires-Dist: openai-codex>=0.144.4; extra == 'codex'
|
|
48
48
|
Provides-Extra: dev
|
|
@@ -65,7 +65,7 @@ Provides-Extra: uipath
|
|
|
65
65
|
Requires-Dist: uipath>=2.10.31; extra == 'uipath'
|
|
66
66
|
Description-Content-Type: text/markdown
|
|
67
67
|
|
|
68
|
-
# Coder Eval — evaluate
|
|
68
|
+
# Coder Eval — evaluate and benchmark AI coding agents and their skills
|
|
69
69
|
|
|
70
70
|
[](https://pypi.org/project/coder-eval/)
|
|
71
71
|
[](https://github.com/marketplace/actions/coder_eval)
|
|
@@ -75,21 +75,28 @@ Description-Content-Type: text/markdown
|
|
|
75
75
|
[](https://www.python.org/downloads/)
|
|
76
76
|
[](https://github.com/UiPath/coder_eval/actions/workflows/pr-checks.yml)
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
tasks,
|
|
91
|
-
|
|
92
|
-
|
|
78
|
+
<p align="center">
|
|
79
|
+
<strong>Playwright for coding agents</strong> — one declarative test file, any agent
|
|
80
|
+
runtime, a real sandbox, and a pass/fail gate in CI.
|
|
81
|
+
</p>
|
|
82
|
+
|
|
83
|
+
**Coder Eval** (`pip install coder-eval` / `uv tool install coder-eval`) is an
|
|
84
|
+
open-source, **agent-agnostic** framework for **evaluating and benchmarking AI coding
|
|
85
|
+
agents and their skills** — built for benchmark authors, CLI builders, and skill
|
|
86
|
+
builders — with sandboxing, reproducibility, and data-driven analysis. It runs a real
|
|
87
|
+
agent — **Claude Code**, **OpenAI Codex**, **Google Antigravity (Gemini)**, or
|
|
88
|
+
**OpenCode** — in a sandbox against declarative YAML tasks, then scores the files and
|
|
89
|
+
commands it actually produced. Changing harness is one field (`agent.type`); the
|
|
90
|
+
tasks, criteria, scoring, telemetry, and reports stay the same.
|
|
91
|
+
|
|
92
|
+
Reach for it when you want to **benchmark agents on your own domain tasks**,
|
|
93
|
+
**test whether a skill triggers** in the agent you ship for, **A/B-test Claude Code
|
|
94
|
+
vs. Codex vs. Gemini vs. OpenCode** (or model vs. model, prompt vs. prompt), or
|
|
95
|
+
**gate CI on coding-agent quality**. It is **not a fixed leaderboard**: unlike
|
|
96
|
+
SWE-bench or SkillsBench, which rank models on a shared task set, you bring the tasks
|
|
97
|
+
and you bring the scoring — weighted 0.0–1.0 criteria, a `skill_triggered` activation
|
|
98
|
+
check, an A/B experiment layer, and per-tool cost telemetry, over whatever work *you*
|
|
99
|
+
care about. See [How it compares](https://coder-eval.com/docs/comparison).
|
|
93
100
|
📚 **Full docs:** **[coder-eval.com/docs](https://coder-eval.com/docs)**.
|
|
94
101
|
|
|
95
102
|
<p align="center">
|
|
@@ -100,15 +107,30 @@ telemetry. See [How it compares](https://coder-eval.com/docs/comparison).
|
|
|
100
107
|
- **Sandboxed execution** in isolated environments with resource limits
|
|
101
108
|
- **Weighted, continuous scoring** (0.0–1.0) with fractional credit and thresholds
|
|
102
109
|
- **Many criterion types** — from file checks to code similarity and LLM-graded rubrics
|
|
103
|
-
- **Agent
|
|
110
|
+
- **Agent-agnostic by design** — Claude Code, OpenAI Codex, Antigravity (Gemini), and OpenCode today; add your own harness through the plugin SPI
|
|
104
111
|
- **Experiment layer** — A/B agent configs (models, tools, prompts) side-by-side
|
|
105
112
|
- **Full telemetry** — every tool call, token counts, and cost, with real-time streaming
|
|
106
113
|
|
|
114
|
+
## Watch the intro
|
|
115
|
+
|
|
116
|
+
<div align="center">
|
|
117
|
+
<video src="https://github.com/user-attachments/assets/6dc1c88e-e5b7-4fc5-ba9c-4b117efc8b54" controls>
|
|
118
|
+
<a href="https://www.youtube.com/watch?v=Iyq-5m1CnuI">
|
|
119
|
+
<img src="https://img.youtube.com/vi/Iyq-5m1CnuI/maxresdefault.jpg" alt="Video: Coder Eval — UiPath open-source framework to test AI coding agents" width="70%">
|
|
120
|
+
</a>
|
|
121
|
+
</video>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
🔊 **Turn the sound on** — GitHub's inline player always starts muted.
|
|
125
|
+
|
|
126
|
+
▶ Also on YouTube: **[Coder Eval: UiPath open-source framework to test AI Coding Agents](https://www.youtube.com/watch?v=Iyq-5m1CnuI)**
|
|
127
|
+
— what the framework does, and how a run works end to end.
|
|
128
|
+
|
|
107
129
|
## What you can do with it
|
|
108
130
|
|
|
109
131
|
- **Benchmark coding agents** — score an agent across a suite of tasks with weighted scoring and pass/fail thresholds
|
|
110
132
|
- **Compare models & configs** — A/B-test Claude vs. Codex vs. Gemini vs. OpenCode, model vs. model, tool-on vs. tool-off, prompt vs. prompt
|
|
111
|
-
- **Evaluate skills** — verify an agent actually engages a target skill (`skill_triggered`) and score skill-driven suites (SkillsBench-style)
|
|
133
|
+
- **Evaluate skills** — verify an agent actually engages a target skill (`skill_triggered`) and score skill-driven suites (SkillsBench-style), on whichever harness your users run
|
|
112
134
|
- **Keep skills up to date in CI** — re-validate your skills on every change or on a schedule; catch silent regressions when models, prompts, or the skills themselves drift
|
|
113
135
|
- **Gate CI on agent quality** — run the suite in GitHub Actions and fail the build on regressions
|
|
114
136
|
- **Bring your own dataset** — fan one task out over many rows for larger benchmark suites
|
|
@@ -120,15 +142,27 @@ telemetry. See [How it compares](https://coder-eval.com/docs/comparison).
|
|
|
120
142
|
|
|
121
143
|
## Quick Start
|
|
122
144
|
|
|
123
|
-
**Prerequisites:** Python 3.13+, [uv](https://docs.astral.sh/uv/) 0.8+, and the
|
|
124
|
-
|
|
125
|
-
|
|
145
|
+
**Prerequisites:** Python 3.13+, [uv](https://docs.astral.sh/uv/) 0.8+, and **the
|
|
146
|
+
runtime of at least one coding agent** — plus that agent's own model credentials.
|
|
147
|
+
Pick the agent you want to evaluate; two of the four ship with a Coder Eval extra,
|
|
148
|
+
the other two are separate CLIs you install yourself:
|
|
149
|
+
|
|
150
|
+
| Agent | `agent.type` | Runtime | Guide |
|
|
151
|
+
| --- | --- | --- | --- |
|
|
152
|
+
| Claude Code (default) | `claude-code` | `brew install claude` — separate CLI | [Claude Code](docs/agents/CLAUDE_CODE.md) |
|
|
153
|
+
| OpenAI Codex | `codex` | `uv sync --extra codex` — the extra ships the Codex SDK + CLI | [Codex](docs/agents/CODEX.md) |
|
|
154
|
+
| Google Antigravity (Gemini) | `antigravity` | `uv sync --extra antigravity` — the extra ships the harness binary | [Antigravity](docs/agents/ANTIGRAVITY.md) |
|
|
155
|
+
| OpenCode (open-weight models) | `opencode` | `npm install -g opencode-ai` — separate CLI | [OpenCode](docs/agents/OPENCODE.md) |
|
|
156
|
+
|
|
157
|
+
The examples below use the default `claude-code` agent. Developed on macOS; CI runs on
|
|
158
|
+
Linux.
|
|
126
159
|
|
|
127
160
|
```bash
|
|
128
161
|
git clone https://github.com/UiPath/coder_eval.git
|
|
129
162
|
cd coder_eval
|
|
130
163
|
|
|
131
|
-
uv sync
|
|
164
|
+
uv sync # install the framework (add --extra codex /
|
|
165
|
+
# --extra antigravity for those runtimes)
|
|
132
166
|
cp .env.example .env # then set ANTHROPIC_API_KEY — or skip that: an
|
|
133
167
|
# existing Claude Code login (`claude login`) is
|
|
134
168
|
# picked up automatically
|
|
@@ -140,13 +174,14 @@ uv run coder-eval report runs/latest # view the result
|
|
|
140
174
|
|
|
141
175
|
New here? Follow **[Tutorial 01 — Your First Evaluation](docs/tutorials/01-first-evaluation.md)**.
|
|
142
176
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
177
|
+
Two more extras you only need on purpose: `--extra dev` adds the contributor
|
|
178
|
+
toolchain (pytest, ruff, pyright, pre-commit — see
|
|
179
|
+
[CONTRIBUTING.md](CONTRIBUTING.md)), and `--extra uipath` adds the in-host `uipath`
|
|
180
|
+
SDK for local sandbox parity (public PyPI, no credentials). Without either, the
|
|
181
|
+
framework still runs end-to-end.
|
|
147
182
|
|
|
148
|
-
**
|
|
149
|
-
|
|
183
|
+
**Just want the CLI, without cloning?** Install the published package — this is also
|
|
184
|
+
what a CI job or another repo does:
|
|
150
185
|
|
|
151
186
|
```bash
|
|
152
187
|
uv tool install coder-eval # puts the `coder-eval` CLI on your PATH,
|
|
@@ -165,9 +200,10 @@ the full setup.
|
|
|
165
200
|
|
|
166
201
|
## Use inside Claude Code
|
|
167
202
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
203
|
+
Coder Eval evaluates any of the supported agents, and it also ships an authoring
|
|
204
|
+
front-end for one of them: this repo is a **Claude Code plugin marketplace**, so the
|
|
205
|
+
whole loop — scaffold a suite, author a task, check whether a skill triggers, read the
|
|
206
|
+
results — runs inside Claude Code. The suites you author this way run on every harness:
|
|
171
207
|
|
|
172
208
|
```
|
|
173
209
|
/plugin marketplace add UiPath/coder_eval
|
|
@@ -342,9 +378,13 @@ success_criteria:
|
|
|
342
378
|
description: "Script must execute successfully"
|
|
343
379
|
```
|
|
344
380
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
381
|
+
`agent.type` is the only harness-specific line: swap it for `codex`, `antigravity`, or
|
|
382
|
+
`opencode` — or override it per run with `coder-eval run … -D agent.type=opencode` — and
|
|
383
|
+
the same criteria score the same way. Tasks can omit the `agent` section entirely —
|
|
384
|
+
defaults resolve from the experiment layer (`experiments/default.yaml`). For the full
|
|
385
|
+
schema and every criterion type, see the
|
|
386
|
+
[Task Definition Guide](docs/TASK_DEFINITION_GUIDE.md); for what each `run_limits` field
|
|
387
|
+
means on each harness, see [Run-Limit Parity](docs/agents/HARNESS_PARITY.md).
|
|
348
388
|
|
|
349
389
|
> **Tip:** With the [Claude Code plugin](docs/PLUGIN.md) installed, use
|
|
350
390
|
> `/coder-eval:task` to scaffold a task from a natural-language description, and
|
|
@@ -368,8 +408,11 @@ extension points (new criteria, new agents).
|
|
|
368
408
|
- **Tasks execute real code** — run untrusted tasks only under the container driver
|
|
369
409
|
(see [Docker Isolation](docs/DOCKER_ISOLATION.md)); the `tempdir` driver is not a
|
|
370
410
|
security boundary.
|
|
371
|
-
- **Bring your own model credentials** —
|
|
372
|
-
|
|
411
|
+
- **Bring your own agent runtime and model credentials** — Coder Eval never supplies
|
|
412
|
+
model access, and it only ships an agent runtime where an extra says so (`codex`,
|
|
413
|
+
`antigravity`); Claude Code and OpenCode are separate CLIs. Supply the runtime (see
|
|
414
|
+
[Quick Start](#quick-start)) and the keys it needs — Anthropic, Bedrock, OpenAI,
|
|
415
|
+
Gemini, or an OpenRouter key for open-weight models via OpenCode.
|
|
373
416
|
- **Python 3.13+ only.**
|
|
374
417
|
|
|
375
418
|
## Support & security
|
|
@@ -385,6 +428,8 @@ extension points (new criteria, new agents).
|
|
|
385
428
|
|
|
386
429
|
## Acknowledgments
|
|
387
430
|
|
|
388
|
-
Built with
|
|
389
|
-
|
|
390
|
-
[
|
|
431
|
+
Built with [Pydantic](https://pydantic.dev/), [Typer](https://typer.tiangolo.com/),
|
|
432
|
+
and [Rich](https://rich.readthedocs.io/), on top of the harnesses it drives — the
|
|
433
|
+
[Claude Agent SDK](https://github.com/anthropics/claude-agent-sdk), the
|
|
434
|
+
[Codex SDK](https://github.com/openai/codex), [Google Antigravity](https://antigravity.google/),
|
|
435
|
+
and [OpenCode](https://opencode.ai).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Coder Eval — evaluate
|
|
1
|
+
# Coder Eval — evaluate and benchmark AI coding agents and their skills
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/coder-eval/)
|
|
4
4
|
[](https://github.com/marketplace/actions/coder_eval)
|
|
@@ -8,21 +8,28 @@
|
|
|
8
8
|
[](https://www.python.org/downloads/)
|
|
9
9
|
[](https://github.com/UiPath/coder_eval/actions/workflows/pr-checks.yml)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
tasks,
|
|
24
|
-
|
|
25
|
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
<strong>Playwright for coding agents</strong> — one declarative test file, any agent
|
|
13
|
+
runtime, a real sandbox, and a pass/fail gate in CI.
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
**Coder Eval** (`pip install coder-eval` / `uv tool install coder-eval`) is an
|
|
17
|
+
open-source, **agent-agnostic** framework for **evaluating and benchmarking AI coding
|
|
18
|
+
agents and their skills** — built for benchmark authors, CLI builders, and skill
|
|
19
|
+
builders — with sandboxing, reproducibility, and data-driven analysis. It runs a real
|
|
20
|
+
agent — **Claude Code**, **OpenAI Codex**, **Google Antigravity (Gemini)**, or
|
|
21
|
+
**OpenCode** — in a sandbox against declarative YAML tasks, then scores the files and
|
|
22
|
+
commands it actually produced. Changing harness is one field (`agent.type`); the
|
|
23
|
+
tasks, criteria, scoring, telemetry, and reports stay the same.
|
|
24
|
+
|
|
25
|
+
Reach for it when you want to **benchmark agents on your own domain tasks**,
|
|
26
|
+
**test whether a skill triggers** in the agent you ship for, **A/B-test Claude Code
|
|
27
|
+
vs. Codex vs. Gemini vs. OpenCode** (or model vs. model, prompt vs. prompt), or
|
|
28
|
+
**gate CI on coding-agent quality**. It is **not a fixed leaderboard**: unlike
|
|
29
|
+
SWE-bench or SkillsBench, which rank models on a shared task set, you bring the tasks
|
|
30
|
+
and you bring the scoring — weighted 0.0–1.0 criteria, a `skill_triggered` activation
|
|
31
|
+
check, an A/B experiment layer, and per-tool cost telemetry, over whatever work *you*
|
|
32
|
+
care about. See [How it compares](https://coder-eval.com/docs/comparison).
|
|
26
33
|
📚 **Full docs:** **[coder-eval.com/docs](https://coder-eval.com/docs)**.
|
|
27
34
|
|
|
28
35
|
<p align="center">
|
|
@@ -33,15 +40,30 @@ telemetry. See [How it compares](https://coder-eval.com/docs/comparison).
|
|
|
33
40
|
- **Sandboxed execution** in isolated environments with resource limits
|
|
34
41
|
- **Weighted, continuous scoring** (0.0–1.0) with fractional credit and thresholds
|
|
35
42
|
- **Many criterion types** — from file checks to code similarity and LLM-graded rubrics
|
|
36
|
-
- **Agent
|
|
43
|
+
- **Agent-agnostic by design** — Claude Code, OpenAI Codex, Antigravity (Gemini), and OpenCode today; add your own harness through the plugin SPI
|
|
37
44
|
- **Experiment layer** — A/B agent configs (models, tools, prompts) side-by-side
|
|
38
45
|
- **Full telemetry** — every tool call, token counts, and cost, with real-time streaming
|
|
39
46
|
|
|
47
|
+
## Watch the intro
|
|
48
|
+
|
|
49
|
+
<div align="center">
|
|
50
|
+
<video src="https://github.com/user-attachments/assets/6dc1c88e-e5b7-4fc5-ba9c-4b117efc8b54" controls>
|
|
51
|
+
<a href="https://www.youtube.com/watch?v=Iyq-5m1CnuI">
|
|
52
|
+
<img src="https://img.youtube.com/vi/Iyq-5m1CnuI/maxresdefault.jpg" alt="Video: Coder Eval — UiPath open-source framework to test AI coding agents" width="70%">
|
|
53
|
+
</a>
|
|
54
|
+
</video>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
🔊 **Turn the sound on** — GitHub's inline player always starts muted.
|
|
58
|
+
|
|
59
|
+
▶ Also on YouTube: **[Coder Eval: UiPath open-source framework to test AI Coding Agents](https://www.youtube.com/watch?v=Iyq-5m1CnuI)**
|
|
60
|
+
— what the framework does, and how a run works end to end.
|
|
61
|
+
|
|
40
62
|
## What you can do with it
|
|
41
63
|
|
|
42
64
|
- **Benchmark coding agents** — score an agent across a suite of tasks with weighted scoring and pass/fail thresholds
|
|
43
65
|
- **Compare models & configs** — A/B-test Claude vs. Codex vs. Gemini vs. OpenCode, model vs. model, tool-on vs. tool-off, prompt vs. prompt
|
|
44
|
-
- **Evaluate skills** — verify an agent actually engages a target skill (`skill_triggered`) and score skill-driven suites (SkillsBench-style)
|
|
66
|
+
- **Evaluate skills** — verify an agent actually engages a target skill (`skill_triggered`) and score skill-driven suites (SkillsBench-style), on whichever harness your users run
|
|
45
67
|
- **Keep skills up to date in CI** — re-validate your skills on every change or on a schedule; catch silent regressions when models, prompts, or the skills themselves drift
|
|
46
68
|
- **Gate CI on agent quality** — run the suite in GitHub Actions and fail the build on regressions
|
|
47
69
|
- **Bring your own dataset** — fan one task out over many rows for larger benchmark suites
|
|
@@ -53,15 +75,27 @@ telemetry. See [How it compares](https://coder-eval.com/docs/comparison).
|
|
|
53
75
|
|
|
54
76
|
## Quick Start
|
|
55
77
|
|
|
56
|
-
**Prerequisites:** Python 3.13+, [uv](https://docs.astral.sh/uv/) 0.8+, and the
|
|
57
|
-
|
|
58
|
-
|
|
78
|
+
**Prerequisites:** Python 3.13+, [uv](https://docs.astral.sh/uv/) 0.8+, and **the
|
|
79
|
+
runtime of at least one coding agent** — plus that agent's own model credentials.
|
|
80
|
+
Pick the agent you want to evaluate; two of the four ship with a Coder Eval extra,
|
|
81
|
+
the other two are separate CLIs you install yourself:
|
|
82
|
+
|
|
83
|
+
| Agent | `agent.type` | Runtime | Guide |
|
|
84
|
+
| --- | --- | --- | --- |
|
|
85
|
+
| Claude Code (default) | `claude-code` | `brew install claude` — separate CLI | [Claude Code](docs/agents/CLAUDE_CODE.md) |
|
|
86
|
+
| OpenAI Codex | `codex` | `uv sync --extra codex` — the extra ships the Codex SDK + CLI | [Codex](docs/agents/CODEX.md) |
|
|
87
|
+
| Google Antigravity (Gemini) | `antigravity` | `uv sync --extra antigravity` — the extra ships the harness binary | [Antigravity](docs/agents/ANTIGRAVITY.md) |
|
|
88
|
+
| OpenCode (open-weight models) | `opencode` | `npm install -g opencode-ai` — separate CLI | [OpenCode](docs/agents/OPENCODE.md) |
|
|
89
|
+
|
|
90
|
+
The examples below use the default `claude-code` agent. Developed on macOS; CI runs on
|
|
91
|
+
Linux.
|
|
59
92
|
|
|
60
93
|
```bash
|
|
61
94
|
git clone https://github.com/UiPath/coder_eval.git
|
|
62
95
|
cd coder_eval
|
|
63
96
|
|
|
64
|
-
uv sync
|
|
97
|
+
uv sync # install the framework (add --extra codex /
|
|
98
|
+
# --extra antigravity for those runtimes)
|
|
65
99
|
cp .env.example .env # then set ANTHROPIC_API_KEY — or skip that: an
|
|
66
100
|
# existing Claude Code login (`claude login`) is
|
|
67
101
|
# picked up automatically
|
|
@@ -73,13 +107,14 @@ uv run coder-eval report runs/latest # view the result
|
|
|
73
107
|
|
|
74
108
|
New here? Follow **[Tutorial 01 — Your First Evaluation](docs/tutorials/01-first-evaluation.md)**.
|
|
75
109
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
110
|
+
Two more extras you only need on purpose: `--extra dev` adds the contributor
|
|
111
|
+
toolchain (pytest, ruff, pyright, pre-commit — see
|
|
112
|
+
[CONTRIBUTING.md](CONTRIBUTING.md)), and `--extra uipath` adds the in-host `uipath`
|
|
113
|
+
SDK for local sandbox parity (public PyPI, no credentials). Without either, the
|
|
114
|
+
framework still runs end-to-end.
|
|
80
115
|
|
|
81
|
-
**
|
|
82
|
-
|
|
116
|
+
**Just want the CLI, without cloning?** Install the published package — this is also
|
|
117
|
+
what a CI job or another repo does:
|
|
83
118
|
|
|
84
119
|
```bash
|
|
85
120
|
uv tool install coder-eval # puts the `coder-eval` CLI on your PATH,
|
|
@@ -98,9 +133,10 @@ the full setup.
|
|
|
98
133
|
|
|
99
134
|
## Use inside Claude Code
|
|
100
135
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
136
|
+
Coder Eval evaluates any of the supported agents, and it also ships an authoring
|
|
137
|
+
front-end for one of them: this repo is a **Claude Code plugin marketplace**, so the
|
|
138
|
+
whole loop — scaffold a suite, author a task, check whether a skill triggers, read the
|
|
139
|
+
results — runs inside Claude Code. The suites you author this way run on every harness:
|
|
104
140
|
|
|
105
141
|
```
|
|
106
142
|
/plugin marketplace add UiPath/coder_eval
|
|
@@ -275,9 +311,13 @@ success_criteria:
|
|
|
275
311
|
description: "Script must execute successfully"
|
|
276
312
|
```
|
|
277
313
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
314
|
+
`agent.type` is the only harness-specific line: swap it for `codex`, `antigravity`, or
|
|
315
|
+
`opencode` — or override it per run with `coder-eval run … -D agent.type=opencode` — and
|
|
316
|
+
the same criteria score the same way. Tasks can omit the `agent` section entirely —
|
|
317
|
+
defaults resolve from the experiment layer (`experiments/default.yaml`). For the full
|
|
318
|
+
schema and every criterion type, see the
|
|
319
|
+
[Task Definition Guide](docs/TASK_DEFINITION_GUIDE.md); for what each `run_limits` field
|
|
320
|
+
means on each harness, see [Run-Limit Parity](docs/agents/HARNESS_PARITY.md).
|
|
281
321
|
|
|
282
322
|
> **Tip:** With the [Claude Code plugin](docs/PLUGIN.md) installed, use
|
|
283
323
|
> `/coder-eval:task` to scaffold a task from a natural-language description, and
|
|
@@ -301,8 +341,11 @@ extension points (new criteria, new agents).
|
|
|
301
341
|
- **Tasks execute real code** — run untrusted tasks only under the container driver
|
|
302
342
|
(see [Docker Isolation](docs/DOCKER_ISOLATION.md)); the `tempdir` driver is not a
|
|
303
343
|
security boundary.
|
|
304
|
-
- **Bring your own model credentials** —
|
|
305
|
-
|
|
344
|
+
- **Bring your own agent runtime and model credentials** — Coder Eval never supplies
|
|
345
|
+
model access, and it only ships an agent runtime where an extra says so (`codex`,
|
|
346
|
+
`antigravity`); Claude Code and OpenCode are separate CLIs. Supply the runtime (see
|
|
347
|
+
[Quick Start](#quick-start)) and the keys it needs — Anthropic, Bedrock, OpenAI,
|
|
348
|
+
Gemini, or an OpenRouter key for open-weight models via OpenCode.
|
|
306
349
|
- **Python 3.13+ only.**
|
|
307
350
|
|
|
308
351
|
## Support & security
|
|
@@ -318,6 +361,8 @@ extension points (new criteria, new agents).
|
|
|
318
361
|
|
|
319
362
|
## Acknowledgments
|
|
320
363
|
|
|
321
|
-
Built with
|
|
322
|
-
|
|
323
|
-
[
|
|
364
|
+
Built with [Pydantic](https://pydantic.dev/), [Typer](https://typer.tiangolo.com/),
|
|
365
|
+
and [Rich](https://rich.readthedocs.io/), on top of the harnesses it drives — the
|
|
366
|
+
[Claude Agent SDK](https://github.com/anthropics/claude-agent-sdk), the
|
|
367
|
+
[Codex SDK](https://github.com/openai/codex), [Google Antigravity](https://antigravity.google/),
|
|
368
|
+
and [OpenCode](https://opencode.ai).
|
|
@@ -25,7 +25,7 @@ inputs:
|
|
|
25
25
|
version:
|
|
26
26
|
description: coder-eval version to install from PyPI, or "local" to install from the action checkout
|
|
27
27
|
required: false
|
|
28
|
-
default: "0.11.
|
|
28
|
+
default: "0.11.7" # <-- kept in sync with releases by release.yml
|
|
29
29
|
extras:
|
|
30
30
|
description: >-
|
|
31
31
|
Comma-separated coder-eval extras (`codex`, `antigravity,litellm`), composed
|
|
@@ -27,7 +27,7 @@ working directory — both required for an unattended eval.
|
|
|
27
27
|
pip install 'coder-eval[antigravity]'
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
This pulls in `google-antigravity` (pinned to `0.1.
|
|
30
|
+
This pulls in `google-antigravity` (pinned to `0.1.8`), whose wheel bundles the
|
|
31
31
|
platform `localharness` binary. As with the other agents the SDK is imported lazily
|
|
32
32
|
— a base install without the extra still runs end-to-end; Antigravity tasks fail at
|
|
33
33
|
dispatch with a clear hint to install the extra.
|