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