coder-eval 0.12.9__tar.gz → 0.12.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (833) hide show
  1. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/agents.md +59 -1
  2. {coder_eval-0.12.9 → coder_eval-0.12.11}/CHANGELOG.md +56 -0
  3. {coder_eval-0.12.9 → coder_eval-0.12.11}/PKG-INFO +2 -2
  4. {coder_eval-0.12.9 → coder_eval-0.12.11}/action.yml +1 -1
  5. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/ANTIGRAVITY.md +26 -15
  6. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/HARNESS_PARITY.md +4 -3
  7. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
  8. {coder_eval-0.12.9 → coder_eval-0.12.11}/pyproject.toml +2 -2
  9. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/__init__.py +1 -1
  10. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/antigravity_agent.py +129 -20
  11. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/cli_called.py +6 -1
  12. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_antigravity_agent.py +293 -12
  13. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_called_criterion.py +12 -1
  14. {coder_eval-0.12.9 → coder_eval-0.12.11}/uv.lock +20 -20
  15. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review-full.md +0 -0
  16. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  17. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review.md +0 -0
  18. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/commands/coder-eval-create-plan.md +0 -0
  19. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/commands/coder-eval-implement-plan.md +0 -0
  20. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/commands/coder-eval-review.md +0 -0
  21. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/harness-candidates.md +0 -0
  22. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/README.md +0 -0
  23. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/contracts.md +0 -0
  24. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/isolation.md +0 -0
  25. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/lint-rules.md +0 -0
  26. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/orchestration.md +0 -0
  27. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/permissions.md +0 -0
  28. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/persistence.md +0 -0
  29. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/reporting.md +0 -0
  30. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/notes/timing.md +0 -0
  31. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/shared/axes.md +0 -0
  32. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/shared/multi-model-review.md +0 -0
  33. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/shared/review-rubric.md +0 -0
  34. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/shared/run-layout.md +0 -0
  35. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/workflows/cr-axis.js +0 -0
  36. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude/workflows/cr-parent.js +0 -0
  37. {coder_eval-0.12.9 → coder_eval-0.12.11}/.claude-plugin/marketplace.json +0 -0
  38. {coder_eval-0.12.9 → coder_eval-0.12.11}/.env.example +0 -0
  39. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/CODEOWNERS +0 -0
  40. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
  41. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  42. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  43. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/actionlint.yaml +0 -0
  44. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/code_review.md +0 -0
  45. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/dependabot.yml +0 -0
  46. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/pages-stub/index.html +0 -0
  47. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/scripts/diagnose_delegate_token_claims.py +0 -0
  48. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/scripts/harbor_e2e.py +0 -0
  49. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/scripts/release_notes.py +0 -0
  50. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/claude-pr-review.yml +0 -0
  51. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/codeql.yml +0 -0
  52. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/conventional-commits.yml +0 -0
  53. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/docker-publish.yml +0 -0
  54. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/docs.yml +0 -0
  55. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/harbor-e2e.yml +0 -0
  56. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/pr-checks.yml +0 -0
  57. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/publish-testpypi.yml +0 -0
  58. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/release.yml +0 -0
  59. {coder_eval-0.12.9 → coder_eval-0.12.11}/.github/workflows/verify-published-action.yml +0 -0
  60. {coder_eval-0.12.9 → coder_eval-0.12.11}/.gitignore +0 -0
  61. {coder_eval-0.12.9 → coder_eval-0.12.11}/.pre-commit-config.yaml +0 -0
  62. {coder_eval-0.12.9 → coder_eval-0.12.11}/.python-version +0 -0
  63. {coder_eval-0.12.9 → coder_eval-0.12.11}/ADOPTERS.md +0 -0
  64. {coder_eval-0.12.9 → coder_eval-0.12.11}/CLAUDE.md +0 -0
  65. {coder_eval-0.12.9 → coder_eval-0.12.11}/CODE_OF_CONDUCT.md +0 -0
  66. {coder_eval-0.12.9 → coder_eval-0.12.11}/CONTRIBUTING.md +0 -0
  67. {coder_eval-0.12.9 → coder_eval-0.12.11}/LICENSE +0 -0
  68. {coder_eval-0.12.9 → coder_eval-0.12.11}/Makefile +0 -0
  69. {coder_eval-0.12.9 → coder_eval-0.12.11}/NOTICE +0 -0
  70. {coder_eval-0.12.9 → coder_eval-0.12.11}/README.md +0 -0
  71. {coder_eval-0.12.9 → coder_eval-0.12.11}/SECURITY.md +0 -0
  72. {coder_eval-0.12.9 → coder_eval-0.12.11}/comparison.md +0 -0
  73. {coder_eval-0.12.9 → coder_eval-0.12.11}/docker/Dockerfile +0 -0
  74. {coder_eval-0.12.9 → coder_eval-0.12.11}/docker/Dockerfile.runtime +0 -0
  75. {coder_eval-0.12.9 → coder_eval-0.12.11}/docker/coder_eval_entrypoint.sh +0 -0
  76. {coder_eval-0.12.9 → coder_eval-0.12.11}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  77. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/AB_EXPERIMENTS.md +0 -0
  78. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/CI_GATE.md +0 -0
  79. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/DATASETS.md +0 -0
  80. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/DIALOG_MODE.md +0 -0
  81. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/DOCKER_ISOLATION.md +0 -0
  82. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/EXTENDING.md +0 -0
  83. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/PLUGIN.md +0 -0
  84. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/REPORT_SCHEMA.md +0 -0
  85. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/TASK_DEFINITION_GUIDE.md +0 -0
  86. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/USER_GUIDE.md +0 -0
  87. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/CLAUDE_CODE.md +0 -0
  88. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/CODEX.md +0 -0
  89. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/DELEGATE.md +0 -0
  90. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/OPENCODE.md +0 -0
  91. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/agents/PI.md +0 -0
  92. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/assets/hero.gif +0 -0
  93. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/comparison.md +0 -0
  94. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/index.md +0 -0
  95. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/llms.txt +0 -0
  96. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/01-first-evaluation.md +0 -0
  97. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/02-ci-pipeline.md +0 -0
  98. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/03-evalboard-local.md +0 -0
  99. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/04-writing-a-task.md +0 -0
  100. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/05-comparing-models.md +0 -0
  101. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/06-use-docker-isolation.md +0 -0
  102. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
  103. {coder_eval-0.12.9 → coder_eval-0.12.11}/docs/tutorials/README.md +0 -0
  104. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/.gitignore +0 -0
  105. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/README.md +0 -0
  106. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
  107. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
  108. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  109. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
  110. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/col-help.tsx +0 -0
  111. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  112. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/harness-badge.tsx +0 -0
  113. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/harness-selector.tsx +0 -0
  114. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/scroll-table.tsx +0 -0
  115. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/search-box.tsx +0 -0
  116. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/skeleton.tsx +0 -0
  117. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/unit-toggle.tsx +0 -0
  118. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_components/version-list.tsx +0 -0
  119. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
  120. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_lib/source-param.ts +0 -0
  121. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
  122. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
  123. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
  124. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/daily-chart.tsx +0 -0
  125. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
  126. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/harness-legend.tsx +0 -0
  127. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/harness-series.ts +0 -0
  128. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/tag-rail.tsx +0 -0
  129. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  130. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
  131. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/_overview/window-summary.tsx +0 -0
  132. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/api/download/route.ts +0 -0
  133. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/api/file/route.ts +0 -0
  134. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
  135. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/api/refresh/route.ts +0 -0
  136. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/error.tsx +0 -0
  137. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/globals.css +0 -0
  138. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/icon.png +0 -0
  139. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/layout.tsx +0 -0
  140. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/loading.tsx +0 -0
  141. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/page.tsx +0 -0
  142. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
  143. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/path-to-ga/page.tsx +0 -0
  144. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/path-to-ga/task-table.tsx +0 -0
  145. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/scribe/page.tsx +0 -0
  146. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/scribe/run-table.tsx +0 -0
  147. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
  148. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/trends/actions.ts +0 -0
  149. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/trends/page.tsx +0 -0
  150. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/trends/trends-view.tsx +0 -0
  151. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  152. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/watchlist/page.tsx +0 -0
  153. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  154. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/next-env.d.ts +0 -0
  155. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/next.config.mjs +0 -0
  156. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/package.json +0 -0
  157. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/pnpm-lock.yaml +0 -0
  158. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/postcss.config.mjs +0 -0
  159. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/public/harness/antigravity.png +0 -0
  160. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/public/harness/claude-code.png +0 -0
  161. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/public/harness/codex.png +0 -0
  162. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/public/harness/pi.png +0 -0
  163. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/public/uipath.png +0 -0
  164. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/tailwind.config.ts +0 -0
  165. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/tsconfig.json +0 -0
  166. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/vitest.config.ts +0 -0
  167. {coder_eval-0.12.9 → coder_eval-0.12.11}/evalboard/vitest.setup.ts +0 -0
  168. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/default.yaml +0 -0
  169. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/early-stop-ab.yaml +0 -0
  170. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/model-comparison.yaml +0 -0
  171. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/permissions-smoke.yaml +0 -0
  172. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/plugin-comparison.yaml +0 -0
  173. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/prompt-mutations-example.yaml +0 -0
  174. {coder_eval-0.12.9 → coder_eval-0.12.11}/experiments/smoke_variants.yaml +0 -0
  175. {coder_eval-0.12.9 → coder_eval-0.12.11}/litellm/README.md +0 -0
  176. {coder_eval-0.12.9 → coder_eval-0.12.11}/litellm/cost_logger.py +0 -0
  177. {coder_eval-0.12.9 → coder_eval-0.12.11}/litellm/litellm-config.yaml +0 -0
  178. {coder_eval-0.12.9 → coder_eval-0.12.11}/litellm/start-litellm.sh +0 -0
  179. {coder_eval-0.12.9 → coder_eval-0.12.11}/mkdocs.yml +0 -0
  180. {coder_eval-0.12.9 → coder_eval-0.12.11}/osv-scanner.toml +0 -0
  181. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/README.md +0 -0
  182. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/cli-setup.md +0 -0
  183. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/criteria.md +0 -0
  184. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/repo-layout.md +0 -0
  185. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/run-layout.md +0 -0
  186. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/task-rubric.md +0 -0
  187. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
  188. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
  189. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
  190. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
  191. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
  192. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/skills/init/SKILL.md +0 -0
  193. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
  194. {coder_eval-0.12.9 → coder_eval-0.12.11}/plugins/coder-eval/skills/task/SKILL.md +0 -0
  195. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/check_commit_msg.sh +0 -0
  196. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/corpus/README.md +0 -0
  197. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/corpus/antigravity.json +0 -0
  198. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/corpus/claude-code.json +0 -0
  199. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/corpus/codex.json +0 -0
  200. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/corpus/opencode.json +0 -0
  201. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/corpus/pi.json +0 -0
  202. {coder_eval-0.12.9 → coder_eval-0.12.11}/scripts/timing/decompose_run.py +0 -0
  203. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/.gitattributes +0 -0
  204. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agent.py +0 -0
  205. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/__init__.py +0 -0
  206. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/_logging.py +0 -0
  207. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/_skills.py +0 -0
  208. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/claude_code_agent.py +0 -0
  209. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/codex_agent.py +0 -0
  210. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/.gitignore +0 -0
  211. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/delegate_host.mjs +0 -0
  212. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/package.json +0 -0
  213. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/delegate_agent.py +0 -0
  214. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/noop_agent.py +0 -0
  215. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/opencode_agent.py +0 -0
  216. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/pi_agent.py +0 -0
  217. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/registry.py +0 -0
  218. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/agents/watchdog.py +0 -0
  219. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/analysis.py +0 -0
  220. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/argv_match.py +0 -0
  221. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/__init__.py +0 -0
  222. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/console.py +0 -0
  223. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/evaluate_command.py +0 -0
  224. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/evaluate_target.py +0 -0
  225. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/execute_command.py +0 -0
  226. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/export_command.py +0 -0
  227. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/harbor_command.py +0 -0
  228. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/plan_command.py +0 -0
  229. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/report_command.py +0 -0
  230. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/run_command.py +0 -0
  231. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/run_helpers.py +0 -0
  232. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  233. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/cli/utils.py +0 -0
  234. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/config.py +0 -0
  235. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/__init__.py +0 -0
  236. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  237. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/agent_judge.py +0 -0
  238. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/base.py +0 -0
  239. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/classification_match.py +0 -0
  240. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/command_executed.py +0 -0
  241. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  242. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/file_check.py +0 -0
  243. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/file_contains.py +0 -0
  244. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/file_exists.py +0 -0
  245. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  246. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/json_check.py +0 -0
  247. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/llm_judge.py +0 -0
  248. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/reference_comparison.py +0 -0
  249. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/run_command.py +0 -0
  250. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/skill_triggered.py +0 -0
  251. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/system_one_judge.py +0 -0
  252. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/criteria/uipath_eval.py +0 -0
  253. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/durations.py +0 -0
  254. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/__init__.py +0 -0
  255. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/agent.py +0 -0
  256. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/budget.py +0 -0
  257. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/categories.py +0 -0
  258. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/categorization.py +0 -0
  259. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/checker_misuse.py +0 -0
  260. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/executor.py +0 -0
  261. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/judge.py +0 -0
  262. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/reference.py +0 -0
  263. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/retry.py +0 -0
  264. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/errors/timeout.py +0 -0
  265. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/__init__.py +0 -0
  266. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/checker.py +0 -0
  267. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  268. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  269. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_context.py +0 -0
  270. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_litellm.py +0 -0
  271. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_models.py +0 -0
  272. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  273. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_system_one.py +0 -0
  274. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_usage.py +0 -0
  275. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/sub_agent.py +0 -0
  276. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/summaries.py +0 -0
  277. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/system_one_scoring.py +0 -0
  278. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  279. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/formatting.py +0 -0
  280. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/fs_permissions.py +0 -0
  281. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/__init__.py +0 -0
  282. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/agent.py +0 -0
  283. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/agent_paths.py +0 -0
  284. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_emit.py +0 -0
  285. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_hydrate.py +0 -0
  286. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_models.py +0 -0
  287. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/experiment_packager.py +0 -0
  288. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/packager.py +0 -0
  289. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/portability.py +0 -0
  290. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/harbor/reward.py +0 -0
  291. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/invocation_log.py +0 -0
  292. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/isolation/__init__.py +0 -0
  293. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/isolation/docker_runner.py +0 -0
  294. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/isolation/eval_material.py +0 -0
  295. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/litellm_cost.py +0 -0
  296. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/logging_config.py +0 -0
  297. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/__init__.py +0 -0
  298. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/agent_config.py +0 -0
  299. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/cli_match.py +0 -0
  300. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/container_context.py +0 -0
  301. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/container_paths.py +0 -0
  302. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/criteria.py +0 -0
  303. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/enums.py +0 -0
  304. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/experiment.py +0 -0
  305. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/judge.py +0 -0
  306. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/judge_defaults.py +0 -0
  307. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/limits.py +0 -0
  308. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/merge_strategy.py +0 -0
  309. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/mutations.py +0 -0
  310. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/results.py +0 -0
  311. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/routing.py +0 -0
  312. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/sandbox.py +0 -0
  313. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/system_one.py +0 -0
  314. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/tasks.py +0 -0
  315. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/telemetry.py +0 -0
  316. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/models/templates.py +0 -0
  317. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/__init__.py +0 -0
  318. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/batch.py +0 -0
  319. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/config.py +0 -0
  320. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/config_merge.py +0 -0
  321. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/early_stop.py +0 -0
  322. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/evaluation.py +0 -0
  323. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/experiment.py +0 -0
  324. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/overrides.py +0 -0
  325. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/regrade.py +0 -0
  326. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/run_limits.py +0 -0
  327. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
  328. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestration/task_loader.py +0 -0
  329. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/orchestrator.py +0 -0
  330. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/path_utils.py +0 -0
  331. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/plugins.py +0 -0
  332. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/pricing.py +0 -0
  333. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/py.typed +0 -0
  334. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/reports/__init__.py +0 -0
  335. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/reports/experiment.py +0 -0
  336. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/reports/helpers.py +0 -0
  337. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/reports/html.py +0 -0
  338. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/reports/junit.py +0 -0
  339. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/reports/markdown.py +0 -0
  340. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/resources/__init__.py +0 -0
  341. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  342. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/resources/tags.yaml +0 -0
  343. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/result_metrics.py +0 -0
  344. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/run_record.py +0 -0
  345. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/sandbox.py +0 -0
  346. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/__init__.py +0 -0
  347. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/ast_similarity.py +0 -0
  348. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/complexity.py +0 -0
  349. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/quality.py +0 -0
  350. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/signature_similarity.py +0 -0
  351. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/similarity.py +0 -0
  352. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/scoring/token_similarity.py +0 -0
  353. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/simulation/__init__.py +0 -0
  354. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/simulation/termination.py +0 -0
  355. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/simulation/user_simulator.py +0 -0
  356. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/simulation/utterance.py +0 -0
  357. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/stats.py +0 -0
  358. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/streaming/__init__.py +0 -0
  359. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/streaming/callbacks.py +0 -0
  360. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/streaming/collector.py +0 -0
  361. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/streaming/events.py +0 -0
  362. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/streaming/renderers.py +0 -0
  363. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/streaming/wire.py +0 -0
  364. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/telemetry.py +0 -0
  365. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/timing.py +0 -0
  366. {coder_eval-0.12.9 → coder_eval-0.12.11}/src/coder_eval/utils.py +0 -0
  367. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/README.md +0 -0
  368. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agentless_smoke_test.yaml +0 -0
  369. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/antigravity_hello_world.yaml +0 -0
  370. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  371. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/claude_hello_world.yaml +0 -0
  372. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  373. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  374. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/claude_subagent_test.yaml +0 -0
  375. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  376. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_hello_world.yaml +0 -0
  377. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_parallel_commands.yaml +0 -0
  378. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  379. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_skills_test.yaml +0 -0
  380. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_string_utils.yaml +0 -0
  381. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/codex_subagent_test.yaml +0 -0
  382. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  383. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/agents/subagent_merge_sort.yaml +0 -0
  384. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
  385. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/anti_cheat_reference/reference/solution.py +0 -0
  386. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/byod_smoke_test.yaml +0 -0
  387. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dataset_example.yaml +0 -0
  388. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/datasets/sentiment.jsonl +0 -0
  389. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/delegate/fizzbuzz_delegate.yaml +0 -0
  390. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/delegate/hello_date_delegate.yaml +0 -0
  391. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  392. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  393. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  394. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  395. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  396. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  397. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
  398. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
  399. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
  400. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/fibonacci_with_template.yaml +0 -0
  401. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/hello_date.yaml +0 -0
  402. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/inline_starter_example.yaml +0 -0
  403. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/internal/session_resumption.yaml +0 -0
  404. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/mock_path_dirs_smoke.yaml +0 -0
  405. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  406. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  407. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
  408. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  409. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  410. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/opencode_smoke_test.yaml +0 -0
  411. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/pi_smoke_test.yaml +0 -0
  412. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  413. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/record_cli_responses.yaml +0 -0
  414. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/run_limits/max_turns_cap.yaml +0 -0
  415. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/run_limits/turn_timeout.yaml +0 -0
  416. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  417. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  418. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  419. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  420. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  421. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  422. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/README.md +0 -0
  423. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  424. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  425. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  426. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  427. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  428. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  429. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  430. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  431. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  432. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  433. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/sentiment_classification.yaml +0 -0
  434. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_agent_judge.yaml +0 -0
  435. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_budget_exceeded.yaml +0 -0
  436. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  437. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_llm_judge.yaml +0 -0
  438. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_negative_path.yaml +0 -0
  439. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_system_one_judge.yaml +0 -0
  440. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_task_timeout.yaml +0 -0
  441. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/smoke_variants.yaml +0 -0
  442. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/test_sandbox.yaml +0 -0
  443. {coder_eval-0.12.9 → coder_eval-0.12.11}/tasks/token_check.yaml +0 -0
  444. {coder_eval-0.12.9 → coder_eval-0.12.11}/templates/byod_smoke_test/Dockerfile +0 -0
  445. {coder_eval-0.12.9 → coder_eval-0.12.11}/templates/fibonacci-starter/README.md +0 -0
  446. {coder_eval-0.12.9 → coder_eval-0.12.11}/templates/fibonacci-starter/src/main.py +0 -0
  447. {coder_eval-0.12.9 → coder_eval-0.12.11}/templates/fibonacci-starter/tests/test_main.py +0 -0
  448. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/__init__.py +0 -0
  449. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_bracket_clock.py +0 -0
  450. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_container_contract.py +0 -0
  451. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/__init__.py +0 -0
  452. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/__init__.py +0 -0
  453. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  454. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
  455. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  456. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  457. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
  458. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
  459. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
  460. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
  461. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
  462. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  463. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  464. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  465. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  466. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  467. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  468. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  469. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  470. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  471. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  472. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  473. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  474. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  475. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  476. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  477. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  478. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  479. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  480. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
  481. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
  482. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
  483. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
  484. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
  485. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
  486. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
  487. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
  488. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
  489. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
  490. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
  491. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
  492. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
  493. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
  494. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
  495. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
  496. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
  497. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/task.toml +0 -0
  498. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
  499. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
  500. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
  501. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
  502. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
  503. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
  504. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/live_criteria.py +0 -0
  505. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  506. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  507. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  508. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  509. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  510. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/run_full.md +0 -0
  511. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
  512. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_fixtures/timing_union_cases.json +0 -0
  513. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/_path_helpers.py +0 -0
  514. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/conftest.py +0 -0
  515. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/__init__.py +0 -0
  516. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/atif/known_good_trajectory.json +0 -0
  517. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  518. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  519. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/mock_agent.py +0 -0
  520. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/pi_happy_stream.jsonl +0 -0
  521. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
  522. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  523. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  524. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/fixtures/text_stub_agent.py +0 -0
  525. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
  526. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
  527. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
  528. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
  529. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/__init__.py +0 -0
  530. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/action_docs.py +0 -0
  531. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/agent_roster_parity.py +0 -0
  532. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/dead_config_fields.py +0 -0
  533. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/doc_env_parity.py +0 -0
  534. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/doc_examples.py +0 -0
  535. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/doc_indexes.py +0 -0
  536. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/doc_schema_parity.py +0 -0
  537. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/generated.py +0 -0
  538. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/live_verdict_contract.py +0 -0
  539. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/plugin_manifest_parity.py +0 -0
  540. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/plugin_reference.py +0 -0
  541. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/pricing_mirror.py +0 -0
  542. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/prose_budget.py +0 -0
  543. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/pyright_config.py +0 -0
  544. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/__init__.py +0 -0
  545. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/_layers.py +0 -0
  546. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/_model_ctor.py +0 -0
  547. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/base.py +0 -0
  548. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  549. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  550. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  551. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  552. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  553. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  554. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  555. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  556. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  557. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  558. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
  559. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
  560. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
  561. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
  562. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
  563. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
  564. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
  565. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
  566. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
  567. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce051_no_driver_override.py +0 -0
  568. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
  569. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
  570. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
  571. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
  572. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
  573. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
  574. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
  575. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce060_message_id_declared.py +0 -0
  576. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
  577. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
  578. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
  579. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
  580. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_agent_timing_access.py +0 -0
  581. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  582. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  583. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_silent_except.py +0 -0
  584. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  585. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  586. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  587. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  588. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/open_explicit_encoding.py +0 -0
  589. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  590. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/register_criterion_required.py +0 -0
  591. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  592. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  593. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/runner.py +0 -0
  594. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/violation.py +0 -0
  595. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/lint/workflow_outputs.py +0 -0
  596. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_action_inputs.py +0 -0
  597. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_action_version_pin.py +0 -0
  598. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent.py +0 -0
  599. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_config_no_timing_fields.py +0 -0
  600. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_config_optional_type.py +0 -0
  601. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_config_registry_dispatch.py +0 -0
  602. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_config_sdk_decoupling.py +0 -0
  603. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_golden_master.py +0 -0
  604. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_judge_criterion.py +0 -0
  605. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_telemetry.py +0 -0
  606. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_telemetry_advanced.py +0 -0
  607. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agent_timeout.py +0 -0
  608. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_agentless.py +0 -0
  609. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_atif_emit.py +0 -0
  610. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_atif_hydrate.py +0 -0
  611. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_atif_models.py +0 -0
  612. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_byoa_plugin.py +0 -0
  613. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_byoa_plugin_live.py +0 -0
  614. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_byod_feature.py +0 -0
  615. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_check_all_async.py +0 -0
  616. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_checker_logging.py +0 -0
  617. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_classification_match.py +0 -0
  618. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_claude_settings_enforcement_live.py +0 -0
  619. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cleanup_preservation_guard.py +0 -0
  620. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_backend_flag.py +0 -0
  621. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_empty_glob.py +0 -0
  622. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_match_parity.py +0 -0
  623. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_sdk_options.py +0 -0
  624. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_set_overrides.py +0 -0
  625. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_telemetry.py +0 -0
  626. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cli_type_flag.py +0 -0
  627. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_code_review_bugs.py +0 -0
  628. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_codex_agent.py +0 -0
  629. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_codex_agent_live.py +0 -0
  630. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_codex_agent_unit.py +0 -0
  631. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_codex_token_mapping.py +0 -0
  632. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_command_executed.py +0 -0
  633. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_command_statistics.py +0 -0
  634. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_command_telemetry_result_data.py +0 -0
  635. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_commands_efficiency.py +0 -0
  636. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_config_lineage.py +0 -0
  637. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_config_merge_engine.py +0 -0
  638. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_config_precedence.py +0 -0
  639. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_container_context.py +0 -0
  640. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_continuous_scoring.py +0 -0
  641. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_cost_accounting_paths.py +0 -0
  642. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_criterion_result_round_trip.py +0 -0
  643. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_custom_lint.py +0 -0
  644. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_dataset_expansion.py +0 -0
  645. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_debug_logging.py +0 -0
  646. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_delegate_agent.py +0 -0
  647. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_delegate_agent_config.py +0 -0
  648. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_delegate_agent_live.py +0 -0
  649. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_delegate_agent_registration.py +0 -0
  650. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_detached_grading_boundaries.py +0 -0
  651. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_detached_grading_guards.py +0 -0
  652. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_build_failure.py +0 -0
  653. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_litellm_env.py +0 -0
  654. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_runner_container_death.py +0 -0
  655. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_runner_mounts.py +0 -0
  656. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_runner_stream_limit.py +0 -0
  657. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_wildcard_env.py +0 -0
  658. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_docker_workdir_live.py +0 -0
  659. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_driver_resolver.py +0 -0
  660. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_durations.py +0 -0
  661. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_early_stop.py +0 -0
  662. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_error_handling.py +0 -0
  663. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_eval_material.py +0 -0
  664. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_evaluate_command.py +0 -0
  665. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_evaluate_format_harbor.py +0 -0
  666. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_evaluate_target.py +0 -0
  667. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_evaluator.py +0 -0
  668. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_event_collector.py +0 -0
  669. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_execute_command.py +0 -0
  670. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_execute_evaluate_loop.py +0 -0
  671. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_execute_format_harbor.py +0 -0
  672. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_experiment_cli.py +0 -0
  673. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_experiment_loader.py +0 -0
  674. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_experiment_models.py +0 -0
  675. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_experiment_reports.py +0 -0
  676. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_experiment_resolver.py +0 -0
  677. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_experiment_runner.py +0 -0
  678. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_file_check.py +0 -0
  679. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_file_contains_scoring.py +0 -0
  680. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_formatting.py +0 -0
  681. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_git_clone_failure.py +0 -0
  682. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_glob_paths_in_file_criteria.py +0 -0
  683. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_agent.py +0 -0
  684. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_e2e_fixtures.py +0 -0
  685. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_experiment_packager.py +0 -0
  686. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_export_golden.py +0 -0
  687. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_packager.py +0 -0
  688. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_portability.py +0 -0
  689. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_harbor_reward.py +0 -0
  690. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_heartbeat_watchdog.py +0 -0
  691. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_ignore_patterns_negation.py +0 -0
  692. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_image_from_dockerfiles.py +0 -0
  693. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_image_skew_refusal.py +0 -0
  694. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_integration.py +0 -0
  695. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_json_check.py +0 -0
  696. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_anthropic.py +0 -0
  697. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_bedrock.py +0 -0
  698. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_burn_in_live.py +0 -0
  699. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_context_builder.py +0 -0
  700. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_litellm.py +0 -0
  701. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_models.py +0 -0
  702. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_persistence.py +0 -0
  703. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_judge_system_one.py +0 -0
  704. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_lint_no_top_level_run_limits.py +0 -0
  705. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_lint_runner.py +0 -0
  706. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_litellm_config.py +0 -0
  707. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_litellm_cost.py +0 -0
  708. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_litellm_cost_logger.py +0 -0
  709. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_litellm_judge_live.py +0 -0
  710. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_litellm_route.py +0 -0
  711. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_llm_judge_criterion.py +0 -0
  712. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_log_tail_buffer.py +0 -0
  713. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_logging.py +0 -0
  714. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_logging_isolation.py +0 -0
  715. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_merge_characterization.py +0 -0
  716. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_merge_strategy_annotations.py +0 -0
  717. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_merge_unification.py +0 -0
  718. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_models.py +0 -0
  719. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_mutations.py +0 -0
  720. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_new_criteria.py +0 -0
  721. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_node_env_config.py +0 -0
  722. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_opencode_agent.py +0 -0
  723. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_optional_dependencies.py +0 -0
  724. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_orchestrator.py +0 -0
  725. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_orchestrator_error_log_tail.py +0 -0
  726. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_orchestrator_telemetry.py +0 -0
  727. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_overrides_engine.py +0 -0
  728. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_parallel.py +0 -0
  729. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_path_utils.py +0 -0
  730. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pi_agent.py +0 -0
  731. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pi_agent_config.py +0 -0
  732. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pi_smoke_task.py +0 -0
  733. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_plan_command.py +0 -0
  734. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_plugin_processing.py +0 -0
  735. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_plugins.py +0 -0
  736. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_post_run.py +0 -0
  737. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pr_review_workflow.py +0 -0
  738. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pre_run.py +0 -0
  739. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_preservation_mode.py +0 -0
  740. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pricing_mirror.py +0 -0
  741. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_pricing_registry.py +0 -0
  742. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_prose_budget.py +0 -0
  743. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_prose_budget_commands.py +0 -0
  744. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reference_comparison_scoring.py +0 -0
  745. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reference_evaluator.py +0 -0
  746. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reference_missing_file.py +0 -0
  747. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reference_models.py +0 -0
  748. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reference_permissions.py +0 -0
  749. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_registry.py +0 -0
  750. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_regrade.py +0 -0
  751. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_release_notes.py +0 -0
  752. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_replicate_stats.py +0 -0
  753. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_report_command.py +0 -0
  754. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reports.py +0 -0
  755. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reports_html.py +0 -0
  756. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reports_junit.py +0 -0
  757. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_reports_package.py +0 -0
  758. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_resolve_task_files.py +0 -0
  759. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_result_metrics.py +0 -0
  760. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_resume.py +0 -0
  761. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_retry_logic_comprehensive.py +0 -0
  762. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_route_seam_exhaustiveness.py +0 -0
  763. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_routing.py +0 -0
  764. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_command_junit.py +0 -0
  765. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_command_stdout.py +0 -0
  766. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_helpers.py +0 -0
  767. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_limits_models.py +0 -0
  768. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_limits_orchestrator.py +0 -0
  769. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_limits_resolver.py +0 -0
  770. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_metrics.py +0 -0
  771. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_record.py +0 -0
  772. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_summary_rebuild.py +0 -0
  773. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_run_task_internal.py +0 -0
  774. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_runtime_tool_versions.py +0 -0
  775. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox.py +0 -0
  776. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_adopt.py +0 -0
  777. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_layer_builder.py +0 -0
  778. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_optional.py +0 -0
  779. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_record_cli.py +0 -0
  780. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_security.py +0 -0
  781. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_symlink_preservation.py +0 -0
  782. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_templates.py +0 -0
  783. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sandbox_venv_live.py +0 -0
  784. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_scorers.py +0 -0
  785. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_scoring_quality.py +0 -0
  786. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sdk_option_classification.py +0 -0
  787. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_seed_from_prior_result.py +0 -0
  788. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_simulation_config.py +0 -0
  789. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_simulation_integration.py +0 -0
  790. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_simulation_termination.py +0 -0
  791. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_simulation_trials.py +0 -0
  792. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_skill_triggered.py +0 -0
  793. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_stats.py +0 -0
  794. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_stats_nonfinite.py +0 -0
  795. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_agent_integration.py +0 -0
  796. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_batch.py +0 -0
  797. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_callbacks.py +0 -0
  798. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_cli.py +0 -0
  799. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_events.py +0 -0
  800. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_orchestrator.py +0 -0
  801. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_renderers.py +0 -0
  802. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_streaming_wire.py +0 -0
  803. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_sub_agent_runner.py +0 -0
  804. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_success_criterion_union.py +0 -0
  805. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_suite_rollup.py +0 -0
  806. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_summaries.py +0 -0
  807. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_system_one_judge.py +0 -0
  808. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_system_one_judge_live.py +0 -0
  809. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_tags.py +0 -0
  810. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_task_definition_unknown_fields.py +0 -0
  811. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_teardown_interrupt.py +0 -0
  812. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_telemetry.py +0 -0
  813. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_template_env_expansion.py +0 -0
  814. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_threshold_enforcement.py +0 -0
  815. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timeout_batch.py +0 -0
  816. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timeout_categorization.py +0 -0
  817. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timeout_exceptions.py +0 -0
  818. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timeout_models.py +0 -0
  819. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timeout_orchestrator.py +0 -0
  820. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timing_close_window.py +0 -0
  821. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timing_identity_contract.py +0 -0
  822. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_timing_union_parity.py +0 -0
  823. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_token_usage.py +0 -0
  824. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_uipath_eval.py +0 -0
  825. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_ungraded_reporting.py +0 -0
  826. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_user_simulator.py +0 -0
  827. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_utils.py +0 -0
  828. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_utterance_extraction.py +0 -0
  829. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_variant_prompt_file.py +0 -0
  830. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_verdict_tool.py +0 -0
  831. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_verify_published_workflow.py +0 -0
  832. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_watchdog.py +0 -0
  833. {coder_eval-0.12.9 → coder_eval-0.12.11}/tests/test_yaml_migration.py +0 -0
@@ -434,7 +434,13 @@ agent had produced; bounding it only by a fixed cycle count disconnected from `t
434
434
  path unreachable — the watchdog always wins, and the same spurious-orphan turn burns the
435
435
  full turn timeout before crashing with zero criteria evaluated.
436
436
 
437
- The cycle cap is the SOLE bound when a task sets no timeout at all. It is deliberately not
437
+ The cycle cap (120 × 5 s) bounds the wait only when a task sets no timeout at all. With
438
+ one, the deadline alone bounds it, so a never-ending command (a dev server, an unanswered
439
+ prompt) can idle up to 80% of the turn, but a slow job gets the time the task author
440
+ budgeted for it. Applying the cap under a timeout as well force-closed real solvers and
441
+ simulations at 10 minutes: on the SkillsBench Gemini 4-arm campaign it ended 22 of 348
442
+ rows, 4 of which had passed with the deadline alone (an exam-scheduling MIP solve that
443
+ passed at 1211 s among them). It is deliberately not
438
444
  "break after N consecutive empty polls": `receive_steps()` returns identically empty
439
445
  whether a backgrounded job is still running or will never resolve, and there is no signal
440
446
  that tells the two apart except waiting. A count small enough to matter would abort real
@@ -447,6 +453,58 @@ answer in a headless eval), CANCELED and UNKNOWN — none of which the closed se
447
453
  done, and none of which the poll loop should wait out, since they will never become DONE
448
454
  on their own.
449
455
 
456
+ It is also an allowlist on the TOOL: only a `run_command` can be backgrounded. Any other
457
+ tool left ACTIVE never resolved in practice: an `edit_file` on the read-only skill mount,
458
+ a `view_file` paged at a large `content_offset`, a `start_subagent`. In a 370-task
459
+ SkillSpec run, 12 of 21 turns that polled to the deadline were waiting on one of those,
460
+ after the model had already finished. `finalize` force-closes them as unresolved.
461
+
462
+ ## Antigravity tool allowlist
463
+
464
+ `allowed_tools` / `disallowed_tools` map onto the harness's builtin toolset
465
+ (`CapabilitiesConfig.enabled_tools` / `disabled_tools`) through
466
+ `_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP`, so an experiment's allowlist confines Antigravity the
467
+ way it confines Claude Code. Without it Antigravity ran with every builtin, including
468
+ `start_subagent` and `search_web`, under a list that gave Claude Code neither. `Skill` and
469
+ `TodoWrite` have no builtin (skills load through `skills_paths`) and are skipped. `finish`
470
+ and `schedule` stay on under any allowlist: `finish` returns structured output, and
471
+ `schedule` is the timer the model sleeps on while a backgrounded `run_command` finishes.
472
+ Without `schedule`, Gemini re-checks the background task every few seconds and each check
473
+ is a model call against `max_turns`: on the SkillsBench Gemini 4-arm campaign mean turns
474
+ rose 36.8 → 50.2 and max-turn rows 4 → 16 on the same 110 rows, and the skill arms were hit
475
+ 2-3x harder than baseline. With `schedule` on they came back to 35.4 and 1.
476
+
477
+ An allowlist only narrows the harness's default toolset (`BuiltinTools.default()`). `Glob`,
478
+ `Grep` and `LS` map to `find_file`, `search_directory` and `list_directory`, which the
479
+ harness ships off, so an allowlist naming them leaves them off. Turned on, Gemini used them
480
+ in place of shell scripts (1,429 calls in 333 of 348 SkillsBench rows, none before), often
481
+ one search per turn.
482
+
483
+ `start_subagent` also stays on under any allowlist, because the harness builds its system
484
+ prompt from the toolset: with `start_subagent` off it drops the whole subagents section
485
+ (4,801 → 2,783 characters), and with it the prompt's only "you do NOT need to poll ... you
486
+ will be notified" guidance. With it on, the system prompt is byte-identical to 0.12.9's.
487
+ The section alone does not stop Gemini polling a long job with status checks: in a 48-row
488
+ SkillsBench A/B it made 13.4 checks per row with the section and 13.7 without (8.5 on
489
+ 0.12.9). The tool descriptions are identical either way, and
490
+ `enable_subagents` alone does not restore the section. Subagents the tool lists withhold
491
+ (no `Task`) are denied by policy at `invoke_subagent` instead, which covers both the
492
+ built-in `research` subagent and one the model defines with `define_subagent`; both get
493
+ `search_web` regardless of the parent's toolset, and a parent policy on `search_web` does
494
+ not reach a model-defined one. The SDK takes an allowlist OR a denylist, so with both set
495
+ the denied tools are removed from the allowlist, except the always-enabled ones.
496
+
497
+ ## Antigravity non-interactive commands
498
+
499
+ `run_command` runs in a real terminal: a command that blocks becomes a background task the
500
+ model can check on and type into. A command that stops to ask (`npx` installing a missing
501
+ package, git credentials, an apt/pip confirmation, a pager) and that the model then leaves
502
+ behind keeps the turn waiting on a prompt no one answers. `_NONINTERACTIVE_ENV`
503
+ (`CI`, `npm_config_yes`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND`, `PIP_NO_INPUT`,
504
+ `PAGER`/`GIT_PAGER=cat`) rides the per-agent `env` seam, each variable only where the
505
+ environment does not already set it, so those commands answer themselves or fail fast. It
506
+ cannot close the terminal: a bare `read` or a server still runs until the poll deadline.
507
+
450
508
  ## The receive_steps re-entrancy window
451
509
 
452
510
  `receive_steps()` is two nested async generators: the public one delegates to the
@@ -2,6 +2,62 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.12.11 (2026-10-05)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **antigravity**: Bound the background poll by the deadline alone when a timeout is set
10
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
11
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
12
+
13
+ - **antigravity**: Keep a tool allowlist within the harness default toolset
14
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
15
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
16
+
17
+ - **antigravity**: Keep schedule enabled under a tool allowlist
18
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
19
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
20
+
21
+ - **antigravity**: Keep start_subagent on and deny withheld subagents by policy
22
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
23
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
24
+
25
+ - **antigravity**: Restore Gemini's background-job waiting under a tool allowlist
26
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
27
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
28
+
29
+ ### Documentation
30
+
31
+ - **antigravity**: State what keeping start_subagent on does and does not fix
32
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
33
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
34
+
35
+ ### Features
36
+
37
+ - **evalboard**: Treat .dmn as a deliverable kind
38
+ ([#217](https://github.com/UiPath/coder_eval/pull/217),
39
+ [`7161fc8`](https://github.com/UiPath/coder_eval/commit/7161fc8a11624662fbf6e3f24d6b468fed99c453))
40
+
41
+
42
+ ## v0.12.10 (2026-10-03)
43
+
44
+ ### Bug Fixes
45
+
46
+ - **antigravity**: Enforce tool lists, non-interactive commands, bounded polling
47
+ ([#215](https://github.com/UiPath/coder_eval/pull/215),
48
+ [`7a5a4d0`](https://github.com/UiPath/coder_eval/commit/7a5a4d03ff962b7e47a10c28051b0ca286e2a046))
49
+
50
+ - **cli-called**: Report a zero-match max_count: 0 guard as unproven
51
+ ([#205](https://github.com/UiPath/coder_eval/pull/205),
52
+ [`33bc3d7`](https://github.com/UiPath/coder_eval/commit/33bc3d70bd988a522801d75900aeb53ef8400225))
53
+
54
+ ### Chores
55
+
56
+ - **deps**: Bump urllib3 2.8.0 and virtualenv 21.14.2 to clear pip-audit
57
+ ([#215](https://github.com/UiPath/coder_eval/pull/215),
58
+ [`7a5a4d0`](https://github.com/UiPath/coder_eval/commit/7a5a4d03ff962b7e47a10c28051b0ca286e2a046))
59
+
60
+
5
61
  ## v0.12.9 (2026-09-29)
6
62
 
7
63
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: coder-eval
3
- Version: 0.12.9
3
+ Version: 0.12.11
4
4
  Summary: Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode, Pi, Delegate) with sandboxed, reproducible YAML task suites.
5
5
  Project-URL: Homepage, https://coder-eval.com
6
6
  Project-URL: Repository, https://github.com/UiPath/coder_eval
@@ -43,7 +43,7 @@ Requires-Dist: tomli-w>=1.0.0
43
43
  Requires-Dist: tqdm>=4.67.3
44
44
  Requires-Dist: typer>=0.24.1
45
45
  Provides-Extra: antigravity
46
- Requires-Dist: google-antigravity==0.1.18; extra == 'antigravity'
46
+ Requires-Dist: google-antigravity==0.1.20; extra == 'antigravity'
47
47
  Provides-Extra: codex
48
48
  Requires-Dist: openai-codex>=0.155.1; extra == 'codex'
49
49
  Provides-Extra: dev
@@ -25,7 +25,7 @@ inputs:
25
25
  version:
26
26
  description: coder-eval version to install from PyPI, or "local" to install from the action checkout
27
27
  required: false
28
- default: "0.12.9" # <-- kept in sync with releases by release.yml
28
+ default: "0.12.11" # <-- kept in sync with releases by release.yml
29
29
  extras:
30
30
  description: >-
31
31
  Comma-separated coder-eval extras (`codex`, `antigravity,litellm`), composed
@@ -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.18`), whose wheel bundles the
30
+ This pulls in `google-antigravity` (pinned to `0.1.20`), 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.
@@ -136,18 +136,30 @@ can't be resolved or if zero skills are discovered.
136
136
 
137
137
  ## Permissions & tools — important differences
138
138
 
139
- **Antigravity ignores `permission_mode`, `allowed_tools`, and `disallowed_tools`.**
140
- The local harness runs in a single unconditional mode: every tool call (including
141
- `run_command`) is approved via an allow-all policy, and file tools are restricted to
142
- the configured `workspaces` (the sandbox working directory plus any skill roots).
139
+ **Antigravity ignores `permission_mode`.** The local harness runs in a single
140
+ unconditional mode: every tool call (including `run_command`) is approved via an
141
+ allow-all policy, and file tools are restricted to the configured `workspaces` (the
142
+ sandbox working directory plus any skill roots).
143
+
144
+ **`allowed_tools` / `disallowed_tools` are enforced** by mapping the Claude tool names
145
+ onto the harness's builtin tools (`Bash` → `run_command`, `Read` → `view_file`, `Write` →
146
+ `create_file`, `Edit` → `edit_file`, `Glob` → `find_file`, `Grep` → `search_directory`,
147
+ `Task` → `start_subagent`, `WebSearch` → `search_web`, `WebFetch` → `read_url_content`).
148
+ `Skill` has no builtin and is skipped. `finish`, `schedule` and `start_subagent` always
149
+ stay on, the last so the harness keeps its default system prompt; when the lists do not
150
+ allow `Task`, running a subagent (`invoke_subagent`) is denied by policy instead.
151
+
152
+ `run_command` also gets non-interactive environment variables (`CI=1`,
153
+ `npm_config_yes=true`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND=noninteractive`,
154
+ `PIP_NO_INPUT=1`, `PAGER=cat`), each only where the environment does not already set it.
143
155
 
144
156
  The trust boundary for an Antigravity run is therefore the **sandbox**, not the
145
157
  agent config. Run untrusted tasks under the [Docker driver](../DOCKER_ISOLATION.md);
146
158
  the `tempdir` driver is not a security boundary. This mirrors the reality that the
147
159
  `bypassPermissions`-equivalent behavior is always on for this backend.
148
160
 
149
- Those inherited fields still exist on the config for schema uniformity but have no
150
- runtime effect here — don't rely on them to gate Antigravity.
161
+ `permission_mode` still exists on the config for schema uniformity but has no runtime
162
+ effect here — don't rely on it to gate Antigravity.
151
163
 
152
164
  ## Telemetry
153
165
 
@@ -187,19 +199,18 @@ as every other agent.
187
199
  4. **`permission_mode` does not confine the harness.** Every mode runs
188
200
  `policy.allow_all()`; coder_eval's write boundary is the sandbox driver, and a
189
201
  headless eval has no human to approve anything.
190
- 5. **`allowed_tools` / `disallowed_tools` are not read.** The harness runs with its
191
- full builtin tool set, so an Antigravity run has tools (web search, subagents,
192
- URL fetch) that the same task file denies on Claude Code and Codex.
193
- 6. **`max_turns` is counted by the harness.** One `communicate()` is a single SDK turn
202
+ 5. **`max_turns` is counted by the harness.** One `communicate()` is a single SDK turn
194
203
  here, so the harness counts model API calls itself (a MODEL step at a new
195
204
  `step_index` opens one) and enforces the cap on the step loop. See
196
205
  [Run-Limit Parity](HARNESS_PARITY.md).
197
- 7. **Shell commands over ~10s are moved to the background.** The localharness has a
206
+ 6. **Shell commands over ~10s are moved to the background.** The localharness has a
198
207
  10-second maximum synchronous wait; past it the command becomes a background task
199
208
  and the model gets a task id, not a result. The turn polls for that result instead
200
- of finalizing on an idle step stream, so slow work does complete — but the wait is
201
- bounded by 80% of `turn_timeout`, and a job that outlives it is force-closed as
202
- `result_status: unknown` and graded as an ordinary low score rather than a timeout.
209
+ of finalizing on an idle step stream, so slow work does complete — but only an
210
+ orphaned `run_command` is waited on, the wait is bounded by 80% of `turn_timeout`
211
+ (10 minutes when the task sets none), and a job that outlives it (typically a server
212
+ the model left running) is force-closed as `result_status: unknown` and graded
213
+ normally rather than as a timeout.
203
214
  Measured in [Run-Limit Parity](HARNESS_PARITY.md).
204
215
 
205
216
  ## Running in Docker
@@ -718,9 +718,10 @@ both. See [OpenCode](OPENCODE.md) and [Pi § plugins](PI.md#known-limitations).
718
718
  lowercase (`bash`/`read`/`write`/`edit`/`grep`/`find`/`ls`), but the shared config
719
719
  default (`experiments/default.yaml`) sets Claude-namespaced names
720
720
  (`Bash`/`Read`/`Write`/…). Forwarding those to `--tools` would allowlist tools that
721
- do not exist in Pi and strip the agent of ALL tools — so, like OpenCode (drops them),
722
- Codex (forwards `disallowed_tools` without SDK enforcement), and Antigravity (does not
723
- read them), Pi ignores them and runs with its full native toolset. A task that needs a
721
+ do not exist in Pi and strip the agent of ALL tools — so, like OpenCode (drops them)
722
+ and Codex (forwards `disallowed_tools` without SDK enforcement), Pi ignores them and
723
+ runs with its full native toolset. (Antigravity maps them onto its builtin tools; see
724
+ [Antigravity](ANTIGRAVITY.md).) A task that needs a
724
725
  restricted Pi toolset would have to name Pi's lowercase tools — a documented follow-up.
725
726
  - **`permission_mode` is NOT enforced** — Pi headless print mode auto-runs tools and
726
727
  exposes only project-file trust (`--approve` / `--no-approve`), no tool-approval
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "coder-eval",
4
4
  "displayName": "Coder Eval",
5
- "version": "0.12.9",
5
+ "version": "0.12.11",
6
6
  "description": "Test whether your Claude Code skills actually trigger, and benchmark any coding agent — author, run, and analyze the eval suite that proves it, locally or as a CI gate.",
7
7
  "author": { "name": "UiPath", "email": "coder-eval@uipath.com", "url": "https://github.com/UiPath/coder_eval" },
8
8
  "homepage": "https://coder-eval.com",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "coder-eval"
3
- version = "0.12.9"
3
+ version = "0.12.11"
4
4
  description = "Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode, Pi, Delegate) with sandboxed, reproducible YAML task suites."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -131,7 +131,7 @@ codex = [
131
131
  # Without this extra the framework still installs and runs; Antigravity-dependent
132
132
  # code paths fail at start() with a clear hint pointing back here.
133
133
  antigravity = [
134
- "google-antigravity==0.1.18",
134
+ "google-antigravity==0.1.20",
135
135
  ]
136
136
  # Optional extra that enables OpenCode agent support.
137
137
  #
@@ -1,3 +1,3 @@
1
1
  """coder_eval - A framework for evaluating AI coding agents."""
2
2
 
3
- __version__ = "0.12.9"
3
+ __version__ = "0.12.11"
@@ -95,13 +95,19 @@ _RECEIVE_STEPS_REENTRY_RETRIES = 5
95
95
  # Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
96
96
  _POLL_DEADLINE_TIMEOUT_FRACTION = 0.8
97
97
 
98
- # Cap on poll *cycles* -- the SOLE bound when a task sets no timeout at all, and
99
- # a backstop against a very large one. 120 * 5s = 10 minutes, ~2x the worst real
100
- # backgrounded-job duration observed (60-300s). Deliberately NOT "break after N
101
- # consecutive empty polls".
98
+ # Cap on poll *cycles*, the bound only when a task sets no timeout at all; with
99
+ # one, the deadline alone bounds the wait. 120 * 5s = 10 minutes. Deliberately
100
+ # NOT "break after N consecutive empty polls".
102
101
  # Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
103
102
  _MAX_BACKGROUND_POLLS = 120
104
103
 
104
+ # The only tool a model can background: a `run_command` left ACTIVE is a job
105
+ # that may still finish. Any other tool left ACTIVE (edit_file on a read-only
106
+ # mount, a paged view_file, start_subagent) never resolves, so it does not
107
+ # justify polling.
108
+ # Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
109
+ _BACKGROUNDABLE_TOOL = "run_command"
110
+
105
111
  # Antigravity builtin tool name -> the canonical (Claude) vocabulary every
106
112
  # criterion is written against. Unmapped names pass through unchanged.
107
113
  # Rationale: .claude/notes/agents.md § Tool-name and argument normalization
@@ -120,6 +126,51 @@ _ANTIGRAVITY_TO_CLAUDE_TOOL_MAP: dict[str, str] = {
120
126
  "finish": "Finish",
121
127
  }
122
128
 
129
+ # Canonical (Claude) tool name -> the Antigravity builtin it enables, for
130
+ # `allowed_tools` / `disallowed_tools`. "Skill" and "TodoWrite" have no builtin
131
+ # (skills load through `skills_paths`), so they map to nothing; a name that is
132
+ # already an Antigravity builtin passes through.
133
+ # Rationale: .claude/notes/agents.md § Antigravity tool allowlist
134
+ _CLAUDE_TO_ANTIGRAVITY_TOOL_MAP: dict[str, str] = {
135
+ "Bash": "run_command",
136
+ "Read": "view_file",
137
+ "Write": "create_file",
138
+ "Edit": "edit_file",
139
+ "MultiEdit": "edit_file",
140
+ "Glob": "find_file",
141
+ "Grep": "search_directory",
142
+ "LS": "list_directory",
143
+ "Task": "start_subagent",
144
+ "WebSearch": "search_web",
145
+ "WebFetch": "read_url_content",
146
+ "AskUserQuestion": "ask_question",
147
+ }
148
+
149
+ # Kept on under any allowlist: `finish` returns a turn's structured output,
150
+ # `schedule` is how the model waits on a backgrounded command, and the harness
151
+ # drops its "you will be notified, do not poll" guidance with `start_subagent`.
152
+ # Withheld subagents are denied at `_SUBAGENT_CALL` instead.
153
+ # Rationale: .claude/notes/agents.md § Antigravity tool allowlist
154
+ _ALWAYS_ENABLED_TOOLS: frozenset[str] = frozenset({"finish", "schedule", "start_subagent"})
155
+
156
+ # The one call that runs a subagent, built-in or model-defined.
157
+ _SUBAGENT_CALL = "invoke_subagent"
158
+
159
+ # Set on every run_command unless the environment already sets them, so a
160
+ # command that would stop to ask (`npx` installing a package, git credentials,
161
+ # apt/pip confirmations, a pager) answers itself or fails instead of waiting on
162
+ # a terminal no one types into.
163
+ # Rationale: .claude/notes/agents.md § Antigravity non-interactive commands
164
+ _NONINTERACTIVE_ENV: dict[str, str] = {
165
+ "CI": "1",
166
+ "npm_config_yes": "true",
167
+ "GIT_TERMINAL_PROMPT": "0",
168
+ "DEBIAN_FRONTEND": "noninteractive",
169
+ "PIP_NO_INPUT": "1",
170
+ "PAGER": "cat",
171
+ "GIT_PAGER": "cat",
172
+ }
173
+
123
174
  # Tool-call arg keys the harness ADDS at completion (the result payload), not
124
175
  # model-supplied inputs. The STATIC backstop; ``_params`` also strips any key
125
176
  # that first appears at DONE. A leaked result would false-positive
@@ -303,18 +354,61 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
303
354
  def _harness_env(self) -> dict[str, str] | None:
304
355
  """Per-agent environment for the localharness subprocess (``LocalAgentConfig.env``).
305
356
 
306
- Returns the mock-CLI PATH prepend as a one-key overlay, or ``None`` when no
307
- mock dirs are configured. The SDK merges it over ``os.environ`` at spawn,
308
- so naming only ``PATH`` leaves every other inherited variable untouched.
357
+ An overlay of the non-interactive variables (each only where the
358
+ environment does not already set it) plus, when mock dirs are configured,
359
+ the mock-CLI PATH prepend; ``None`` when there is nothing to add, so the
360
+ SDK spawns with a plain inherited env. The SDK merges it over
361
+ ``os.environ`` at spawn, so every other inherited variable is untouched.
309
362
  The same overlay becomes the harness's ``run_command`` environment.
310
363
  """
311
- if not self._env_path_prepend:
364
+ env = {k: v for k, v in _NONINTERACTIVE_ENV.items() if k not in os.environ}
365
+ if self._env_path_prepend:
366
+ # Match the parent's own casing (Windows exports ``Path``) so the merge
367
+ # overrides the inherited entry instead of adding a sibling key.
368
+ path_key = next((k for k in os.environ if k.upper() == "PATH"), "PATH")
369
+ env[path_key] = os.pathsep.join([*self._env_path_prepend, os.environ.get(path_key) or ""])
370
+ return env or None
371
+
372
+ def _tool_capabilities(self, types: Any) -> Any:
373
+ """``CapabilitiesConfig`` restricting the builtin tools to the configured
374
+ ``allowed_tools`` / ``disallowed_tools``, or ``None`` when neither is set.
375
+
376
+ Names are mapped through ``_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP``; names with no
377
+ Antigravity builtin (``Skill``, ``TodoWrite``, MCP tools) are skipped. An
378
+ allowlist only narrows the harness's default toolset, so ``Glob`` / ``Grep`` /
379
+ ``LS`` never turn on the tools the harness ships off (``find_file``,
380
+ ``search_directory``, ``list_directory``). The SDK takes an allowlist OR a
381
+ denylist, so with both set the denied tools are removed from the allowlist.
382
+ ``_ALWAYS_ENABLED_TOOLS`` are never removed.
383
+
384
+ Rationale: .claude/notes/agents.md § Antigravity tool allowlist
385
+ """
386
+ allowed, disallowed = self.config.allowed_tools, self.config.disallowed_tools
387
+ if not allowed and not disallowed:
312
388
  return None
313
- # Match the parent's own casing (Windows exports ``Path``) so the merge
314
- # overrides the inherited entry instead of adding a sibling key.
315
- path_key = next((k for k in os.environ if k.upper() == "PATH"), "PATH")
316
- merged = os.pathsep.join([*self._env_path_prepend, os.environ.get(path_key) or ""])
317
- return {path_key: merged}
389
+ builtin = {t.value for t in types.BuiltinTools}
390
+ harness_default = {t.value for t in types.BuiltinTools.default()}
391
+
392
+ def to_builtin(names: list[str] | None) -> set[str]:
393
+ mapped = {_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.get(n, n) for n in names or []}
394
+ return mapped & builtin
395
+
396
+ if allowed:
397
+ enabled = ((to_builtin(allowed) & harness_default) - to_builtin(disallowed)) | _ALWAYS_ENABLED_TOOLS
398
+ self._log.debug("Enabled builtin tools: %s", ", ".join(sorted(enabled)))
399
+ return types.CapabilitiesConfig(enabled_tools=[types.BuiltinTools(t) for t in sorted(enabled)])
400
+ disabled = to_builtin(disallowed) - _ALWAYS_ENABLED_TOOLS
401
+ self._log.debug("Disabled builtin tools: %s", ", ".join(sorted(disabled)))
402
+ return types.CapabilitiesConfig(disabled_tools=[types.BuiltinTools(t) for t in sorted(disabled)])
403
+
404
+ def _subagents_allowed(self) -> bool:
405
+ """Whether ``allowed_tools`` / ``disallowed_tools`` let the model run subagents (``Task``)."""
406
+
407
+ def names_task(names: list[str] | None) -> bool:
408
+ return any(_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.get(n, n) == "start_subagent" for n in names or [])
409
+
410
+ allowed, disallowed = self.config.allowed_tools, self.config.disallowed_tools
411
+ return (not allowed or names_task(allowed)) and not names_task(disallowed)
318
412
 
319
413
  async def start(
320
414
  self,
@@ -365,14 +459,17 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
365
459
  # policy would deny. ``permission_mode`` is deliberately NOT mapped
366
460
  # here — it does not confine this agent, exactly as on Codex, and
367
461
  # docs/agents/HARNESS_PARITY.md says so rather than leaving it
368
- # silent. The isolation boundary is the driver.
369
- policies=[policy.allow_all()],
462
+ # silent. The isolation boundary is the driver. Subagents the tool
463
+ # lists withhold are denied here, since `start_subagent` stays on.
464
+ policies=[policy.allow_all()] + ([] if self._subagents_allowed() else [policy.deny(_SUBAGENT_CALL)]),
370
465
  system_instructions=self.config.system_prompt or None,
371
466
  # Skill discovery: the search-path roots that parent the skill dirs.
372
467
  skills_paths=skills_paths,
373
- # Mock-CLI PATH shadowing, per agent: two concurrent tasks never
374
- # see each other's mock dirs.
468
+ # Mock-CLI PATH shadowing plus the non-interactive variables, per
469
+ # agent: two concurrent tasks never see each other's mock dirs.
375
470
  env=self._harness_env(),
471
+ # The builtin toolset, narrowed to allowed_tools / disallowed_tools.
472
+ capabilities=self._tool_capabilities(types),
376
473
  )
377
474
  # Thinking level onto every resolved model's endpoint. The SDK
378
475
  # validates the model list in a model_validator, so options are set on
@@ -761,6 +858,8 @@ class _AntigravityTurnState:
761
858
  # Most recently seen StepStatus per tool id, for has_orphaned_tool_call.
762
859
  # Separate from _closed_tools, which tracks only DONE/ERROR.
763
860
  self._tool_last_status: dict[str, Any] = {}
861
+ # Raw (Antigravity) tool name per tool id, for has_orphaned_tool_call.
862
+ self._tool_raw_names: dict[str, Any] = {}
764
863
  # Content blocks accumulated since the last per-generation flush.
765
864
  self._blocks: list[ContentBlock] = []
766
865
  # Where the CURRENT generation started, advanced only by a flush that
@@ -865,6 +964,7 @@ class _AntigravityTurnState:
865
964
  step_key = f"{trajectory_id}:{step.step_index}" if trajectory_id else str(step.step_index)
866
965
  cid = call.id or f"{raw_name}_{step_key}_{call_index}"
867
966
  self._tool_last_status[cid] = sstatus
967
+ self._tool_raw_names[cid] = raw_name
868
968
  if cid not in self._seen_tools:
869
969
  self._seen_tools.add(cid)
870
970
  seq = self._next_seq
@@ -990,8 +1090,8 @@ class _AntigravityTurnState:
990
1090
  return ""
991
1091
 
992
1092
  def has_orphaned_tool_call(self) -> bool:
993
- """True if any NOT-YET-CLOSED tool call's most recently seen status is
994
- ACTIVE — the structural signature of a backgrounded task the model went
1093
+ """True if any NOT-YET-CLOSED ``run_command``'s most recently seen status
1094
+ is ACTIVE — the structural signature of a backgrounded task the model went
995
1095
  idle on without waiting for. See ``communicate``'s poll loop.
996
1096
 
997
1097
  An ALLOWLIST on ACTIVE, never a denylist on "not yet closed": the SDK also
@@ -999,9 +1099,18 @@ class _AntigravityTurnState:
999
1099
  should wait out. The `not in _closed_tools` guard is layered on top as a
1000
1100
  monotonicity backstop, not a substitute.
1001
1101
 
1102
+ Also an allowlist on the TOOL: only ``run_command`` can be backgrounded.
1103
+ Any other tool left ACTIVE never resolves, so waiting on it only burns
1104
+ the poll budget; ``finalize`` force-closes it as unresolved.
1105
+
1002
1106
  Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
1003
1107
  """
1004
- return any(cid not in self._closed_tools and s == _STATUS_ACTIVE for cid, s in self._tool_last_status.items())
1108
+ return any(
1109
+ cid not in self._closed_tools
1110
+ and s == _STATUS_ACTIVE
1111
+ and self._tool_raw_names.get(cid) == _BACKGROUNDABLE_TOOL
1112
+ for cid, s in self._tool_last_status.items()
1113
+ )
1005
1114
 
1006
1115
  def finalize(self, status: AgentEndStatus, *, crashed: bool = False, crash_reason: str | None = None) -> None:
1007
1116
  """Close orphaned tools, flush leftover blocks, emit TurnEnd + AgentEnd.
@@ -170,7 +170,12 @@ class CliCalledChecker(BaseCriterion[CliCalledCriterion]):
170
170
  facets.append(f"flags={sorted(criterion.flags)}")
171
171
  wanted = ", ".join(facets)
172
172
 
173
- if score == 1.0:
173
+ if score == 1.0 and count == 0 and criterion.max_count == 0:
174
+ details = (
175
+ f"0 invocation(s) matched ({wanted}); guard unproven: a typo in verb, tool or flags "
176
+ "would also match nothing"
177
+ )
178
+ elif score == 1.0:
174
179
  details = f"{count} invocation(s) matched ({wanted}); satisfies {bound}"
175
180
  elif not within_lower:
176
181
  # A bare count sends the reader to the sandbox; this criterion exists