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.
Files changed (667) hide show
  1. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/pages-stub/index.html +6 -5
  2. {coder_eval-0.11.6 → coder_eval-0.11.7}/CHANGELOG.md +91 -0
  3. {coder_eval-0.11.6 → coder_eval-0.11.7}/CLAUDE.md +1 -1
  4. {coder_eval-0.11.6 → coder_eval-0.11.7}/PKG-INFO +88 -43
  5. {coder_eval-0.11.6 → coder_eval-0.11.7}/README.md +84 -39
  6. {coder_eval-0.11.6 → coder_eval-0.11.7}/action.yml +1 -1
  7. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/ANTIGRAVITY.md +1 -1
  8. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/comparison.md +8 -6
  9. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/index.md +22 -18
  10. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/llms.txt +18 -17
  11. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/01-first-evaluation.md +5 -2
  12. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/__tests__/harness-selector.test.tsx +51 -0
  13. coder_eval-0.11.7/evalboard/app/_components/__tests__/skeleton.test.tsx +97 -0
  14. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/harness-selector.tsx +13 -6
  15. coder_eval-0.11.7/evalboard/app/_components/skeleton.tsx +171 -0
  16. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/download/route.ts +16 -15
  17. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/refresh/__tests__/route.test.ts +29 -0
  18. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/refresh/route.ts +7 -2
  19. coder_eval-0.11.7/evalboard/app/globals.css +109 -0
  20. coder_eval-0.11.7/evalboard/app/loading.tsx +40 -0
  21. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/__tests__/trends-view.test.tsx +5 -3
  22. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/trends-view.tsx +6 -6
  23. {coder_eval-0.11.6 → coder_eval-0.11.7}/mkdocs.yml +4 -3
  24. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
  25. {coder_eval-0.11.6 → coder_eval-0.11.7}/pyproject.toml +9 -7
  26. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/__init__.py +1 -1
  27. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/pricing.py +27 -17
  28. coder_eval-0.11.7/tests/lint/agent_roster_parity.py +117 -0
  29. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_antigravity_agent.py +2 -0
  30. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cost_accounting_paths.py +3 -3
  31. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_custom_lint.py +67 -0
  32. {coder_eval-0.11.6 → coder_eval-0.11.7}/uv.lock +8 -8
  33. coder_eval-0.11.6/evalboard/app/globals.css +0 -42
  34. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-code-review-full.md +0 -0
  35. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  36. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-code-review.md +0 -0
  37. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-create-plan.md +0 -0
  38. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-implement-plan.md +0 -0
  39. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/commands/coder-eval-review.md +0 -0
  40. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/harness-candidates.md +0 -0
  41. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/axes.md +0 -0
  42. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/multi-model-review.md +0 -0
  43. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/review-rubric.md +0 -0
  44. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/shared/run-layout.md +0 -0
  45. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/workflows/cr-axis.js +0 -0
  46. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude/workflows/cr-parent.js +0 -0
  47. {coder_eval-0.11.6 → coder_eval-0.11.7}/.claude-plugin/marketplace.json +0 -0
  48. {coder_eval-0.11.6 → coder_eval-0.11.7}/.env.example +0 -0
  49. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/CODEOWNERS +0 -0
  50. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
  51. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  52. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  53. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/actionlint.yaml +0 -0
  54. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/code_review.md +0 -0
  55. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/dependabot.yml +0 -0
  56. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/scripts/release_notes.py +0 -0
  57. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/claude-pr-review.yml +0 -0
  58. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/codeql.yml +0 -0
  59. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/conventional-commits.yml +0 -0
  60. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/docker-publish.yml +0 -0
  61. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/docs.yml +0 -0
  62. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/pr-checks.yml +0 -0
  63. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/publish-testpypi.yml +0 -0
  64. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/release.yml +0 -0
  65. {coder_eval-0.11.6 → coder_eval-0.11.7}/.github/workflows/verify-published-action.yml +0 -0
  66. {coder_eval-0.11.6 → coder_eval-0.11.7}/.gitignore +0 -0
  67. {coder_eval-0.11.6 → coder_eval-0.11.7}/.pre-commit-config.yaml +0 -0
  68. {coder_eval-0.11.6 → coder_eval-0.11.7}/.python-version +0 -0
  69. {coder_eval-0.11.6 → coder_eval-0.11.7}/ADOPTERS.md +0 -0
  70. {coder_eval-0.11.6 → coder_eval-0.11.7}/CODE_OF_CONDUCT.md +0 -0
  71. {coder_eval-0.11.6 → coder_eval-0.11.7}/CONTRIBUTING.md +0 -0
  72. {coder_eval-0.11.6 → coder_eval-0.11.7}/LICENSE +0 -0
  73. {coder_eval-0.11.6 → coder_eval-0.11.7}/Makefile +0 -0
  74. {coder_eval-0.11.6 → coder_eval-0.11.7}/NOTICE +0 -0
  75. {coder_eval-0.11.6 → coder_eval-0.11.7}/SECURITY.md +0 -0
  76. {coder_eval-0.11.6 → coder_eval-0.11.7}/comparison.md +0 -0
  77. {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/Dockerfile +0 -0
  78. {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/Dockerfile.runtime +0 -0
  79. {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/coder_eval_entrypoint.sh +0 -0
  80. {coder_eval-0.11.6 → coder_eval-0.11.7}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  81. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/AB_EXPERIMENTS.md +0 -0
  82. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/CI_GATE.md +0 -0
  83. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/DATASETS.md +0 -0
  84. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/DIALOG_MODE.md +0 -0
  85. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/DOCKER_ISOLATION.md +0 -0
  86. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/EXTENDING.md +0 -0
  87. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/PLUGIN.md +0 -0
  88. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/REPORT_SCHEMA.md +0 -0
  89. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/TASK_DEFINITION_GUIDE.md +0 -0
  90. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/USER_GUIDE.md +0 -0
  91. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/CLAUDE_CODE.md +0 -0
  92. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/CODEX.md +0 -0
  93. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/HARNESS_PARITY.md +0 -0
  94. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/agents/OPENCODE.md +0 -0
  95. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/assets/hero.gif +0 -0
  96. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/02-ci-pipeline.md +0 -0
  97. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/03-evalboard-local.md +0 -0
  98. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/04-writing-a-task.md +0 -0
  99. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/05-comparing-models.md +0 -0
  100. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/06-use-docker-isolation.md +0 -0
  101. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
  102. {coder_eval-0.11.6 → coder_eval-0.11.7}/docs/tutorials/README.md +0 -0
  103. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/.gitignore +0 -0
  104. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/README.md +0 -0
  105. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
  106. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  107. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/col-help.tsx +0 -0
  108. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  109. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/harness-badge.tsx +0 -0
  110. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/scroll-table.tsx +0 -0
  111. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/search-box.tsx +0 -0
  112. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/unit-toggle.tsx +0 -0
  113. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_components/version-list.tsx +0 -0
  114. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
  115. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_lib/source-param.ts +0 -0
  116. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
  117. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
  118. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
  119. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/daily-chart.tsx +0 -0
  120. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
  121. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/harness-legend.tsx +0 -0
  122. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/harness-series.ts +0 -0
  123. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/tag-rail.tsx +0 -0
  124. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  125. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
  126. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/_overview/window-summary.tsx +0 -0
  127. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/api/file/route.ts +0 -0
  128. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/error.tsx +0 -0
  129. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/icon.png +0 -0
  130. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/layout.tsx +0 -0
  131. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/page.tsx +0 -0
  132. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
  133. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/path-to-ga/page.tsx +0 -0
  134. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/path-to-ga/task-table.tsx +0 -0
  135. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/scribe/page.tsx +0 -0
  136. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/scribe/run-table.tsx +0 -0
  137. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/actions.ts +0 -0
  138. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/trends/page.tsx +0 -0
  139. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  140. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/watchlist/page.tsx +0 -0
  141. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  142. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/next-env.d.ts +0 -0
  143. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/next.config.mjs +0 -0
  144. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/package.json +0 -0
  145. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/pnpm-lock.yaml +0 -0
  146. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/postcss.config.mjs +0 -0
  147. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/harness/antigravity.png +0 -0
  148. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/harness/claude-code.png +0 -0
  149. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/harness/codex.png +0 -0
  150. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/public/uipath.png +0 -0
  151. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/tailwind.config.ts +0 -0
  152. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/tsconfig.json +0 -0
  153. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/vitest.config.ts +0 -0
  154. {coder_eval-0.11.6 → coder_eval-0.11.7}/evalboard/vitest.setup.ts +0 -0
  155. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/default.yaml +0 -0
  156. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/early-stop-ab.yaml +0 -0
  157. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/model-comparison.yaml +0 -0
  158. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/permissions-smoke.yaml +0 -0
  159. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/plugin-comparison.yaml +0 -0
  160. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/prompt-mutations-example.yaml +0 -0
  161. {coder_eval-0.11.6 → coder_eval-0.11.7}/experiments/smoke_variants.yaml +0 -0
  162. {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/README.md +0 -0
  163. {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/cost_logger.py +0 -0
  164. {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/litellm-config.yaml +0 -0
  165. {coder_eval-0.11.6 → coder_eval-0.11.7}/litellm/start-litellm.sh +0 -0
  166. {coder_eval-0.11.6 → coder_eval-0.11.7}/osv-scanner.toml +0 -0
  167. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/README.md +0 -0
  168. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/cli-setup.md +0 -0
  169. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/criteria.md +0 -0
  170. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/repo-layout.md +0 -0
  171. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/run-layout.md +0 -0
  172. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/task-rubric.md +0 -0
  173. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
  174. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
  175. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
  176. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
  177. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
  178. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/init/SKILL.md +0 -0
  179. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
  180. {coder_eval-0.11.6 → coder_eval-0.11.7}/plugins/coder-eval/skills/task/SKILL.md +0 -0
  181. {coder_eval-0.11.6 → coder_eval-0.11.7}/scripts/check_commit_msg.sh +0 -0
  182. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/.gitattributes +0 -0
  183. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agent.py +0 -0
  184. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/__init__.py +0 -0
  185. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/_logging.py +0 -0
  186. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/antigravity_agent.py +0 -0
  187. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/claude_code_agent.py +0 -0
  188. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/codex_agent.py +0 -0
  189. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/noop_agent.py +0 -0
  190. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/opencode_agent.py +0 -0
  191. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/registry.py +0 -0
  192. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/agents/watchdog.py +0 -0
  193. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/analysis.py +0 -0
  194. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/__init__.py +0 -0
  195. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/aggregate_command.py +0 -0
  196. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/console.py +0 -0
  197. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/evaluate_command.py +0 -0
  198. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/plan_command.py +0 -0
  199. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/report_command.py +0 -0
  200. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/run_command.py +0 -0
  201. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/run_helpers.py +0 -0
  202. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  203. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/cli/utils.py +0 -0
  204. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/config.py +0 -0
  205. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/__init__.py +0 -0
  206. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  207. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/agent_judge.py +0 -0
  208. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/base.py +0 -0
  209. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/classification_match.py +0 -0
  210. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/cli_called.py +0 -0
  211. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/command_executed.py +0 -0
  212. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  213. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_check.py +0 -0
  214. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_contains.py +0 -0
  215. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_exists.py +0 -0
  216. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  217. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/json_check.py +0 -0
  218. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/llm_judge.py +0 -0
  219. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/reference_comparison.py +0 -0
  220. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/run_command.py +0 -0
  221. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/skill_triggered.py +0 -0
  222. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/criteria/uipath_eval.py +0 -0
  223. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/__init__.py +0 -0
  224. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/agent.py +0 -0
  225. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/budget.py +0 -0
  226. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/categories.py +0 -0
  227. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/categorization.py +0 -0
  228. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/checker_misuse.py +0 -0
  229. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/executor.py +0 -0
  230. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/judge.py +0 -0
  231. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/reference.py +0 -0
  232. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/retry.py +0 -0
  233. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/errors/timeout.py +0 -0
  234. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/__init__.py +0 -0
  235. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/checker.py +0 -0
  236. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  237. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  238. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_context.py +0 -0
  239. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_litellm.py +0 -0
  240. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_models.py +0 -0
  241. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  242. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/judge_usage.py +0 -0
  243. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/sub_agent.py +0 -0
  244. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/summaries.py +0 -0
  245. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  246. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/formatting.py +0 -0
  247. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/fs_permissions.py +0 -0
  248. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/invocation_log.py +0 -0
  249. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/isolation/__init__.py +0 -0
  250. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/isolation/docker_runner.py +0 -0
  251. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/litellm_cost.py +0 -0
  252. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/logging_config.py +0 -0
  253. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/__init__.py +0 -0
  254. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/agent_config.py +0 -0
  255. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/container_paths.py +0 -0
  256. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/criteria.py +0 -0
  257. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/enums.py +0 -0
  258. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/experiment.py +0 -0
  259. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/judge.py +0 -0
  260. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/judge_defaults.py +0 -0
  261. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/limits.py +0 -0
  262. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/merge_strategy.py +0 -0
  263. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/mutations.py +0 -0
  264. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/results.py +0 -0
  265. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/routing.py +0 -0
  266. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/sandbox.py +0 -0
  267. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/tasks.py +0 -0
  268. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/telemetry.py +0 -0
  269. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/models/templates.py +0 -0
  270. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/__init__.py +0 -0
  271. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/batch.py +0 -0
  272. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/config.py +0 -0
  273. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/config_merge.py +0 -0
  274. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/early_stop.py +0 -0
  275. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/evaluation.py +0 -0
  276. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/experiment.py +0 -0
  277. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/overrides.py +0 -0
  278. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/run_limits.py +0 -0
  279. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestration/task_loader.py +0 -0
  280. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/orchestrator.py +0 -0
  281. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/path_utils.py +0 -0
  282. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/plugins.py +0 -0
  283. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/py.typed +0 -0
  284. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports.py +0 -0
  285. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_experiment.py +0 -0
  286. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_html.py +0 -0
  287. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_junit.py +0 -0
  288. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/reports_stats.py +0 -0
  289. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/resources/__init__.py +0 -0
  290. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  291. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/resources/tags.yaml +0 -0
  292. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/sandbox.py +0 -0
  293. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/__init__.py +0 -0
  294. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/ast_similarity.py +0 -0
  295. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/complexity.py +0 -0
  296. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/quality.py +0 -0
  297. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/signature_similarity.py +0 -0
  298. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/similarity.py +0 -0
  299. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/scoring/token_similarity.py +0 -0
  300. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/simulation/__init__.py +0 -0
  301. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/simulation/termination.py +0 -0
  302. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/simulation/user_simulator.py +0 -0
  303. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/__init__.py +0 -0
  304. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/callbacks.py +0 -0
  305. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/collector.py +0 -0
  306. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/events.py +0 -0
  307. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/renderers.py +0 -0
  308. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/streaming/wire.py +0 -0
  309. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/telemetry.py +0 -0
  310. {coder_eval-0.11.6 → coder_eval-0.11.7}/src/coder_eval/utils.py +0 -0
  311. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/README.md +0 -0
  312. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agentless_smoke_test.yaml +0 -0
  313. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/antigravity_hello_world.yaml +0 -0
  314. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  315. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_hello_world.yaml +0 -0
  316. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  317. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  318. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/claude_subagent_test.yaml +0 -0
  319. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  320. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_hello_world.yaml +0 -0
  321. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_parallel_commands.yaml +0 -0
  322. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  323. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_skills_test.yaml +0 -0
  324. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_string_utils.yaml +0 -0
  325. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/codex_subagent_test.yaml +0 -0
  326. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  327. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/agents/subagent_merge_sort.yaml +0 -0
  328. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
  329. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/anti_cheat_reference/reference/solution.py +0 -0
  330. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/byod_smoke_test.yaml +0 -0
  331. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dataset_example.yaml +0 -0
  332. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/datasets/sentiment.jsonl +0 -0
  333. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  334. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  335. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  336. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  337. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  338. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  339. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
  340. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
  341. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
  342. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/fibonacci_with_template.yaml +0 -0
  343. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/hello_date.yaml +0 -0
  344. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/inline_starter_example.yaml +0 -0
  345. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/internal/session_resumption.yaml +0 -0
  346. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_smoke.yaml +0 -0
  347. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  348. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  349. {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
  350. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  351. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  352. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/opencode_smoke_test.yaml +0 -0
  353. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  354. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/run_limits/max_turns_cap.yaml +0 -0
  355. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/run_limits/turn_timeout.yaml +0 -0
  356. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  357. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  358. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  359. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  360. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  361. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  362. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/README.md +0 -0
  363. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  364. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  365. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  366. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  367. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  368. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  369. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  370. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  371. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  372. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  373. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/sentiment_classification.yaml +0 -0
  374. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_agent_judge.yaml +0 -0
  375. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_budget_exceeded.yaml +0 -0
  376. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  377. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_llm_judge.yaml +0 -0
  378. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_negative_path.yaml +0 -0
  379. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_task_timeout.yaml +0 -0
  380. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/smoke_variants.yaml +0 -0
  381. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/test_sandbox.yaml +0 -0
  382. {coder_eval-0.11.6 → coder_eval-0.11.7}/tasks/token_check.yaml +0 -0
  383. {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/byod_smoke_test/Dockerfile +0 -0
  384. {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/fibonacci-starter/README.md +0 -0
  385. {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/fibonacci-starter/src/main.py +0 -0
  386. {coder_eval-0.11.6 → coder_eval-0.11.7}/templates/fibonacci-starter/tests/test_main.py +0 -0
  387. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/__init__.py +0 -0
  388. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/__init__.py +0 -0
  389. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/__init__.py +0 -0
  390. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  391. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  392. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  393. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  394. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  395. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  396. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  397. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  398. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  399. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  400. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  401. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  402. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  403. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  404. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  405. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  406. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  407. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  408. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  409. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  410. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  411. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/live_criteria.py +0 -0
  412. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  413. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  414. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  415. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  416. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  417. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/run_full.md +0 -0
  418. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
  419. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/_path_helpers.py +0 -0
  420. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/conftest.py +0 -0
  421. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/__init__.py +0 -0
  422. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  423. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  424. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/mock_agent.py +0 -0
  425. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
  426. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  427. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  428. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/fixtures/text_stub_agent.py +0 -0
  429. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/__init__.py +0 -0
  430. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/action_docs.py +0 -0
  431. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/dead_config_fields.py +0 -0
  432. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_env_parity.py +0 -0
  433. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_examples.py +0 -0
  434. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_indexes.py +0 -0
  435. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/doc_schema_parity.py +0 -0
  436. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/generated.py +0 -0
  437. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/live_verdict_contract.py +0 -0
  438. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/plugin_manifest_parity.py +0 -0
  439. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/plugin_reference.py +0 -0
  440. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/pyright_config.py +0 -0
  441. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/__init__.py +0 -0
  442. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/base.py +0 -0
  443. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  444. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  445. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  446. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  447. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  448. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  449. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  450. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  451. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  452. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce023_no_proxy_shim_import.py +0 -0
  453. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  454. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
  455. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
  456. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
  457. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
  458. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
  459. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
  460. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_agent_timing_access.py +0 -0
  461. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  462. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  463. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_silent_except.py +0 -0
  464. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  465. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  466. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  467. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  468. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/open_explicit_encoding.py +0 -0
  469. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  470. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/register_criterion_required.py +0 -0
  471. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  472. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  473. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/runner.py +0 -0
  474. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/violation.py +0 -0
  475. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/lint/workflow_outputs.py +0 -0
  476. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_action_inputs.py +0 -0
  477. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_action_version_pin.py +0 -0
  478. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent.py +0 -0
  479. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_no_timing_fields.py +0 -0
  480. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_optional_type.py +0 -0
  481. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_registry_dispatch.py +0 -0
  482. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_config_sdk_decoupling.py +0 -0
  483. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_golden_master.py +0 -0
  484. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_judge_criterion.py +0 -0
  485. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_telemetry.py +0 -0
  486. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_telemetry_advanced.py +0 -0
  487. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agent_timeout.py +0 -0
  488. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_agentless.py +0 -0
  489. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_aggregate.py +0 -0
  490. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_byoa_plugin.py +0 -0
  491. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_byoa_plugin_live.py +0 -0
  492. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_byod_feature.py +0 -0
  493. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_check_all_async.py +0 -0
  494. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_checker_logging.py +0 -0
  495. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_classification_match.py +0 -0
  496. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_claude_settings_enforcement_live.py +0 -0
  497. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cleanup_preservation_guard.py +0 -0
  498. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_backend_flag.py +0 -0
  499. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_called_criterion.py +0 -0
  500. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_empty_glob.py +0 -0
  501. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_sdk_options.py +0 -0
  502. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_set_overrides.py +0 -0
  503. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_telemetry.py +0 -0
  504. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_cli_type_flag.py +0 -0
  505. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_code_review_bugs.py +0 -0
  506. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_agent.py +0 -0
  507. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_agent_live.py +0 -0
  508. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_agent_unit.py +0 -0
  509. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_codex_token_mapping.py +0 -0
  510. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_command_executed.py +0 -0
  511. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_command_statistics.py +0 -0
  512. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_command_telemetry_result_data.py +0 -0
  513. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_commands_efficiency.py +0 -0
  514. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_config_lineage.py +0 -0
  515. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_config_merge_engine.py +0 -0
  516. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_config_precedence.py +0 -0
  517. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_continuous_scoring.py +0 -0
  518. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_criterion_result_round_trip.py +0 -0
  519. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_dataset_expansion.py +0 -0
  520. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_debug_logging.py +0 -0
  521. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_build_failure.py +0 -0
  522. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_litellm_env.py +0 -0
  523. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_runner_container_death.py +0 -0
  524. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_runner_mounts.py +0 -0
  525. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_runner_stream_limit.py +0 -0
  526. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_wildcard_env.py +0 -0
  527. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_docker_workdir_live.py +0 -0
  528. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_driver_resolver.py +0 -0
  529. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_early_stop.py +0 -0
  530. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_error_handling.py +0 -0
  531. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_evaluate_command.py +0 -0
  532. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_evaluator.py +0 -0
  533. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_event_collector.py +0 -0
  534. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_cli.py +0 -0
  535. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_loader.py +0 -0
  536. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_models.py +0 -0
  537. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_reports.py +0 -0
  538. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_resolver.py +0 -0
  539. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_experiment_runner.py +0 -0
  540. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_file_check.py +0 -0
  541. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_file_contains_scoring.py +0 -0
  542. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_formatting.py +0 -0
  543. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_git_clone_failure.py +0 -0
  544. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_glob_paths_in_file_criteria.py +0 -0
  545. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_heartbeat_watchdog.py +0 -0
  546. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_ignore_patterns_negation.py +0 -0
  547. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_image_from_dockerfiles.py +0 -0
  548. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_integration.py +0 -0
  549. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_json_check.py +0 -0
  550. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_anthropic.py +0 -0
  551. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_bedrock.py +0 -0
  552. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_burn_in_live.py +0 -0
  553. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_context_builder.py +0 -0
  554. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_litellm.py +0 -0
  555. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_models.py +0 -0
  556. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_judge_persistence.py +0 -0
  557. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_lint_no_top_level_run_limits.py +0 -0
  558. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_lint_runner.py +0 -0
  559. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_config.py +0 -0
  560. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_cost.py +0 -0
  561. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_cost_logger.py +0 -0
  562. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_judge_live.py +0 -0
  563. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_litellm_route.py +0 -0
  564. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_llm_judge_criterion.py +0 -0
  565. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_log_tail_buffer.py +0 -0
  566. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_logging.py +0 -0
  567. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_logging_isolation.py +0 -0
  568. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_merge_characterization.py +0 -0
  569. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_merge_strategy_annotations.py +0 -0
  570. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_merge_unification.py +0 -0
  571. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_models.py +0 -0
  572. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_mutations.py +0 -0
  573. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_new_criteria.py +0 -0
  574. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_node_env_config.py +0 -0
  575. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_opencode_agent.py +0 -0
  576. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_optional_dependencies.py +0 -0
  577. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_orchestrator.py +0 -0
  578. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_orchestrator_error_log_tail.py +0 -0
  579. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_orchestrator_telemetry.py +0 -0
  580. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_overrides_engine.py +0 -0
  581. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_parallel.py +0 -0
  582. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_path_utils.py +0 -0
  583. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_plan_command.py +0 -0
  584. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_plugin_processing.py +0 -0
  585. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_plugins.py +0 -0
  586. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_post_run.py +0 -0
  587. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_pr_review_workflow.py +0 -0
  588. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_pre_run.py +0 -0
  589. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_preservation_mode.py +0 -0
  590. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_pricing_registry.py +0 -0
  591. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_comparison_scoring.py +0 -0
  592. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_evaluator.py +0 -0
  593. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_missing_file.py +0 -0
  594. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_models.py +0 -0
  595. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reference_permissions.py +0 -0
  596. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_registry.py +0 -0
  597. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_release_notes.py +0 -0
  598. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_replicate_stats.py +0 -0
  599. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_report_command.py +0 -0
  600. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports.py +0 -0
  601. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_experiment.py +0 -0
  602. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_html.py +0 -0
  603. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_junit.py +0 -0
  604. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_stats.py +0 -0
  605. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_reports_stats_nonfinite.py +0 -0
  606. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_resolve_task_files.py +0 -0
  607. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_resume.py +0 -0
  608. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_retry_logic_comprehensive.py +0 -0
  609. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_route_seam_exhaustiveness.py +0 -0
  610. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_routing.py +0 -0
  611. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_command_junit.py +0 -0
  612. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_command_stdout.py +0 -0
  613. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_helpers.py +0 -0
  614. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_limits_models.py +0 -0
  615. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_limits_orchestrator.py +0 -0
  616. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_limits_resolver.py +0 -0
  617. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_run_metrics.py +0 -0
  618. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_runtime_tool_versions.py +0 -0
  619. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox.py +0 -0
  620. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_layer_builder.py +0 -0
  621. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_optional.py +0 -0
  622. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_record_cli.py +0 -0
  623. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_security.py +0 -0
  624. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_symlink_preservation.py +0 -0
  625. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sandbox_templates.py +0 -0
  626. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_scorers.py +0 -0
  627. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_scoring_quality.py +0 -0
  628. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sdk_option_classification.py +0 -0
  629. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_config.py +0 -0
  630. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_integration.py +0 -0
  631. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_termination.py +0 -0
  632. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_simulation_trials.py +0 -0
  633. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_skill_triggered.py +0 -0
  634. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_agent_integration.py +0 -0
  635. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_batch.py +0 -0
  636. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_callbacks.py +0 -0
  637. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_cli.py +0 -0
  638. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_events.py +0 -0
  639. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_orchestrator.py +0 -0
  640. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_renderers.py +0 -0
  641. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_streaming_wire.py +0 -0
  642. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_sub_agent_runner.py +0 -0
  643. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_success_criterion_union.py +0 -0
  644. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_suite_rollup.py +0 -0
  645. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_summaries.py +0 -0
  646. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_tags.py +0 -0
  647. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_task_definition_unknown_fields.py +0 -0
  648. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_teardown_interrupt.py +0 -0
  649. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_telemetry.py +0 -0
  650. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_template_env_expansion.py +0 -0
  651. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_threshold_enforcement.py +0 -0
  652. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_batch.py +0 -0
  653. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_categorization.py +0 -0
  654. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_exceptions.py +0 -0
  655. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_models.py +0 -0
  656. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_timeout_orchestrator.py +0 -0
  657. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_token_usage.py +0 -0
  658. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_uipath_eval.py +0 -0
  659. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_user_simulator.py +0 -0
  660. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_utils.py +0 -0
  661. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_utterance_extraction.py +0 -0
  662. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_variant_prompt_file.py +0 -0
  663. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_verdict_tool.py +0 -0
  664. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_verify_published_workflow.py +0 -0
  665. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_visible_turn_cap.py +0 -0
  666. {coder_eval-0.11.6 → coder_eval-0.11.7}/tests/test_watchdog.py +0 -0
  667. {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 Claude Code skills</title>
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 Claude Code skills — sandboxed runs of Claude Code, Codex, and Gemini against declarative YAML tasks, with weighted scoring and CI gates. Documentation: coder-eval.com/docs"
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 evaluating and benchmarking AI coding agents and their Claude
229
- Code skills: it runs a real agent — Claude Code, Codex, or Gemini — in a sandbox against
230
- declarative YAML tasks, then scores the files and commands the agent actually produced.
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.6
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.7; extra == 'antigravity'
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 & benchmark AI coding agents and Claude Code skills
68
+ # Coder Eval — evaluate and benchmark AI coding agents and their skills
69
69
 
70
70
  [![PyPI](https://img.shields.io/pypi/v/coder-eval.svg)](https://pypi.org/project/coder-eval/)
71
71
  [![GitHub Marketplace](https://img.shields.io/badge/marketplace-coder__eval-2ea44f.svg)](https://github.com/marketplace/actions/coder_eval)
@@ -75,21 +75,28 @@ Description-Content-Type: text/markdown
75
75
  [![Python 3.13+](https://img.shields.io/badge/python-3.13%2B-blue.svg)](https://www.python.org/downloads/)
76
76
  [![CI](https://github.com/UiPath/coder_eval/actions/workflows/pr-checks.yml/badge.svg)](https://github.com/UiPath/coder_eval/actions/workflows/pr-checks.yml)
77
77
 
78
- **Coder Eval** (`pip install coder-eval` / `uv tool install coder-eval`) is an open-source framework for
79
- **evaluating and benchmarking AI coding agents and their skills** built for CLI
80
- and skill builders with sandboxing, reproducibility, and data-driven analysis.
81
- It runs a real agent (**Claude Code**, **Codex**, **Google Antigravity /
82
- Gemini**, or **OpenCode**) in a sandbox against declarative YAML tasks, then scores the files and
83
- commands it actually produced. Not an "agentic coding" benchmark: it measures how
84
- effective your CLI and skills are when used by coding agents.
85
-
86
- Reach for it when you want to **test whether a Claude Code skill triggers**,
87
- **A/B-test Claude Code vs. Codex vs. Gemini vs. OpenCode** (or model vs. model,
88
- prompt vs. prompt), or **gate CI on coding-agent quality**. Unlike fixed datasets (SWE-bench,
89
- SkillsBench) that rank models on a shared leaderboard, Coder Eval evaluates the
90
- tasks, skills, and workflows *you* ship with weighted 0.0–1.0 criteria, a
91
- `skill_triggered` activation check, an A/B experiment layer, and per-tool cost
92
- telemetry. See [How it compares](https://coder-eval.com/docs/comparison).
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 abstraction** — Claude Code, Codex, Antigravity (Gemini), and OpenCode today, extensible via a plugin SPI
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
- [Claude CLI](https://docs.anthropic.com/claude/docs/claude-code) (`brew install claude`).
125
- Developed on macOS; CI runs on Linux.
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 --extra dev # install core + dev tools
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
- The optional `[uipath]` extra (`uv sync --extra dev --extra uipath`) adds the in-host
144
- `uipath` SDK for local sandbox parity; it installs from public PyPI (no credentials
145
- required). Without it the framework runs end-to-end; uipath-dependent features fail
146
- at dispatch with a clear hint.
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
- **Using Coder Eval in CI or another project?** Install the published package
149
- instead of cloning:
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
- This repo is also a **Claude Code plugin marketplace**, so the whole loop
169
- scaffold a suite, author a task, check whether a skill triggers, read the
170
- resultsruns inside the agent:
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
- Tasks can omit the `agent` section entirely defaults resolve from the experiment
346
- layer (`experiments/default.yaml`). For the full schema and every criterion type,
347
- see the [Task Definition Guide](docs/TASK_DEFINITION_GUIDE.md).
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** — Anthropic, Bedrock, or Gemini keys; Coder Eval
372
- does not proxy or supply model access.
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 the [Claude Agent SDK](https://github.com/anthropics/claude-agent-sdk),
389
- [Pydantic](https://pydantic.dev/), [Typer](https://typer.tiangolo.com/), and
390
- [Rich](https://rich.readthedocs.io/).
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 & benchmark AI coding agents and Claude Code skills
1
+ # Coder Eval — evaluate and benchmark AI coding agents and their skills
2
2
 
3
3
  [![PyPI](https://img.shields.io/pypi/v/coder-eval.svg)](https://pypi.org/project/coder-eval/)
4
4
  [![GitHub Marketplace](https://img.shields.io/badge/marketplace-coder__eval-2ea44f.svg)](https://github.com/marketplace/actions/coder_eval)
@@ -8,21 +8,28 @@
8
8
  [![Python 3.13+](https://img.shields.io/badge/python-3.13%2B-blue.svg)](https://www.python.org/downloads/)
9
9
  [![CI](https://github.com/UiPath/coder_eval/actions/workflows/pr-checks.yml/badge.svg)](https://github.com/UiPath/coder_eval/actions/workflows/pr-checks.yml)
10
10
 
11
- **Coder Eval** (`pip install coder-eval` / `uv tool install coder-eval`) is an open-source framework for
12
- **evaluating and benchmarking AI coding agents and their skills** built for CLI
13
- and skill builders with sandboxing, reproducibility, and data-driven analysis.
14
- It runs a real agent (**Claude Code**, **Codex**, **Google Antigravity /
15
- Gemini**, or **OpenCode**) in a sandbox against declarative YAML tasks, then scores the files and
16
- commands it actually produced. Not an "agentic coding" benchmark: it measures how
17
- effective your CLI and skills are when used by coding agents.
18
-
19
- Reach for it when you want to **test whether a Claude Code skill triggers**,
20
- **A/B-test Claude Code vs. Codex vs. Gemini vs. OpenCode** (or model vs. model,
21
- prompt vs. prompt), or **gate CI on coding-agent quality**. Unlike fixed datasets (SWE-bench,
22
- SkillsBench) that rank models on a shared leaderboard, Coder Eval evaluates the
23
- tasks, skills, and workflows *you* ship with weighted 0.0–1.0 criteria, a
24
- `skill_triggered` activation check, an A/B experiment layer, and per-tool cost
25
- telemetry. See [How it compares](https://coder-eval.com/docs/comparison).
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 abstraction** — Claude Code, Codex, Antigravity (Gemini), and OpenCode today, extensible via a plugin SPI
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
- [Claude CLI](https://docs.anthropic.com/claude/docs/claude-code) (`brew install claude`).
58
- Developed on macOS; CI runs on Linux.
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 --extra dev # install core + dev tools
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
- The optional `[uipath]` extra (`uv sync --extra dev --extra uipath`) adds the in-host
77
- `uipath` SDK for local sandbox parity; it installs from public PyPI (no credentials
78
- required). Without it the framework runs end-to-end; uipath-dependent features fail
79
- at dispatch with a clear hint.
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
- **Using Coder Eval in CI or another project?** Install the published package
82
- instead of cloning:
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
- This repo is also a **Claude Code plugin marketplace**, so the whole loop
102
- scaffold a suite, author a task, check whether a skill triggers, read the
103
- resultsruns inside the agent:
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
- Tasks can omit the `agent` section entirely defaults resolve from the experiment
279
- layer (`experiments/default.yaml`). For the full schema and every criterion type,
280
- see the [Task Definition Guide](docs/TASK_DEFINITION_GUIDE.md).
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** — Anthropic, Bedrock, or Gemini keys; Coder Eval
305
- does not proxy or supply model access.
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 the [Claude Agent SDK](https://github.com/anthropics/claude-agent-sdk),
322
- [Pydantic](https://pydantic.dev/), [Typer](https://typer.tiangolo.com/), and
323
- [Rich](https://rich.readthedocs.io/).
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.6" # <-- kept in sync with releases by release.yml
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.7`), whose wheel bundles the
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.