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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (833) hide show
  1. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/agents.md +34 -9
  2. {coder_eval-0.12.10 → coder_eval-0.12.11}/CHANGELOG.md +37 -0
  3. {coder_eval-0.12.10 → coder_eval-0.12.11}/PKG-INFO +1 -1
  4. {coder_eval-0.12.10 → coder_eval-0.12.11}/action.yml +1 -1
  5. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/ANTIGRAVITY.md +5 -3
  6. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
  7. {coder_eval-0.12.10 → coder_eval-0.12.11}/pyproject.toml +1 -1
  8. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/__init__.py +1 -1
  9. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/antigravity_agent.py +42 -30
  10. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_antigravity_agent.py +86 -30
  11. {coder_eval-0.12.10 → coder_eval-0.12.11}/uv.lock +1 -1
  12. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review-full.md +0 -0
  13. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  14. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-code-review.md +0 -0
  15. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-create-plan.md +0 -0
  16. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-implement-plan.md +0 -0
  17. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/commands/coder-eval-review.md +0 -0
  18. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/harness-candidates.md +0 -0
  19. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/README.md +0 -0
  20. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/contracts.md +0 -0
  21. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/isolation.md +0 -0
  22. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/lint-rules.md +0 -0
  23. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/orchestration.md +0 -0
  24. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/permissions.md +0 -0
  25. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/persistence.md +0 -0
  26. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/reporting.md +0 -0
  27. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/notes/timing.md +0 -0
  28. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/axes.md +0 -0
  29. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/multi-model-review.md +0 -0
  30. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/review-rubric.md +0 -0
  31. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/shared/run-layout.md +0 -0
  32. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/workflows/cr-axis.js +0 -0
  33. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude/workflows/cr-parent.js +0 -0
  34. {coder_eval-0.12.10 → coder_eval-0.12.11}/.claude-plugin/marketplace.json +0 -0
  35. {coder_eval-0.12.10 → coder_eval-0.12.11}/.env.example +0 -0
  36. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/CODEOWNERS +0 -0
  37. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
  38. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  39. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  40. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/actionlint.yaml +0 -0
  41. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/code_review.md +0 -0
  42. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/dependabot.yml +0 -0
  43. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/pages-stub/index.html +0 -0
  44. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/scripts/diagnose_delegate_token_claims.py +0 -0
  45. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/scripts/harbor_e2e.py +0 -0
  46. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/scripts/release_notes.py +0 -0
  47. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/claude-pr-review.yml +0 -0
  48. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/codeql.yml +0 -0
  49. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/conventional-commits.yml +0 -0
  50. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/docker-publish.yml +0 -0
  51. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/docs.yml +0 -0
  52. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/harbor-e2e.yml +0 -0
  53. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/pr-checks.yml +0 -0
  54. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/publish-testpypi.yml +0 -0
  55. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/release.yml +0 -0
  56. {coder_eval-0.12.10 → coder_eval-0.12.11}/.github/workflows/verify-published-action.yml +0 -0
  57. {coder_eval-0.12.10 → coder_eval-0.12.11}/.gitignore +0 -0
  58. {coder_eval-0.12.10 → coder_eval-0.12.11}/.pre-commit-config.yaml +0 -0
  59. {coder_eval-0.12.10 → coder_eval-0.12.11}/.python-version +0 -0
  60. {coder_eval-0.12.10 → coder_eval-0.12.11}/ADOPTERS.md +0 -0
  61. {coder_eval-0.12.10 → coder_eval-0.12.11}/CLAUDE.md +0 -0
  62. {coder_eval-0.12.10 → coder_eval-0.12.11}/CODE_OF_CONDUCT.md +0 -0
  63. {coder_eval-0.12.10 → coder_eval-0.12.11}/CONTRIBUTING.md +0 -0
  64. {coder_eval-0.12.10 → coder_eval-0.12.11}/LICENSE +0 -0
  65. {coder_eval-0.12.10 → coder_eval-0.12.11}/Makefile +0 -0
  66. {coder_eval-0.12.10 → coder_eval-0.12.11}/NOTICE +0 -0
  67. {coder_eval-0.12.10 → coder_eval-0.12.11}/README.md +0 -0
  68. {coder_eval-0.12.10 → coder_eval-0.12.11}/SECURITY.md +0 -0
  69. {coder_eval-0.12.10 → coder_eval-0.12.11}/comparison.md +0 -0
  70. {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/Dockerfile +0 -0
  71. {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/Dockerfile.runtime +0 -0
  72. {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/coder_eval_entrypoint.sh +0 -0
  73. {coder_eval-0.12.10 → coder_eval-0.12.11}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  74. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/AB_EXPERIMENTS.md +0 -0
  75. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/CI_GATE.md +0 -0
  76. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/DATASETS.md +0 -0
  77. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/DIALOG_MODE.md +0 -0
  78. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/DOCKER_ISOLATION.md +0 -0
  79. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/EXTENDING.md +0 -0
  80. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/PLUGIN.md +0 -0
  81. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/REPORT_SCHEMA.md +0 -0
  82. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/TASK_DEFINITION_GUIDE.md +0 -0
  83. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/USER_GUIDE.md +0 -0
  84. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/CLAUDE_CODE.md +0 -0
  85. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/CODEX.md +0 -0
  86. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/DELEGATE.md +0 -0
  87. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/HARNESS_PARITY.md +0 -0
  88. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/OPENCODE.md +0 -0
  89. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/agents/PI.md +0 -0
  90. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/assets/hero.gif +0 -0
  91. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/comparison.md +0 -0
  92. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/index.md +0 -0
  93. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/llms.txt +0 -0
  94. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/01-first-evaluation.md +0 -0
  95. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/02-ci-pipeline.md +0 -0
  96. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/03-evalboard-local.md +0 -0
  97. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/04-writing-a-task.md +0 -0
  98. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/05-comparing-models.md +0 -0
  99. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/06-use-docker-isolation.md +0 -0
  100. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
  101. {coder_eval-0.12.10 → coder_eval-0.12.11}/docs/tutorials/README.md +0 -0
  102. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/.gitignore +0 -0
  103. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/README.md +0 -0
  104. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
  105. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
  106. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  107. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
  108. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/col-help.tsx +0 -0
  109. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  110. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/harness-badge.tsx +0 -0
  111. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/harness-selector.tsx +0 -0
  112. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/scroll-table.tsx +0 -0
  113. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/search-box.tsx +0 -0
  114. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/skeleton.tsx +0 -0
  115. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/unit-toggle.tsx +0 -0
  116. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_components/version-list.tsx +0 -0
  117. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
  118. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_lib/source-param.ts +0 -0
  119. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
  120. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
  121. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
  122. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/daily-chart.tsx +0 -0
  123. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
  124. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/harness-legend.tsx +0 -0
  125. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/harness-series.ts +0 -0
  126. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/tag-rail.tsx +0 -0
  127. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  128. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
  129. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/_overview/window-summary.tsx +0 -0
  130. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/download/route.ts +0 -0
  131. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/file/route.ts +0 -0
  132. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
  133. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/api/refresh/route.ts +0 -0
  134. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/error.tsx +0 -0
  135. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/globals.css +0 -0
  136. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/icon.png +0 -0
  137. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/layout.tsx +0 -0
  138. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/loading.tsx +0 -0
  139. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/page.tsx +0 -0
  140. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
  141. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/path-to-ga/page.tsx +0 -0
  142. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/path-to-ga/task-table.tsx +0 -0
  143. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/scribe/page.tsx +0 -0
  144. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/scribe/run-table.tsx +0 -0
  145. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
  146. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/actions.ts +0 -0
  147. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/page.tsx +0 -0
  148. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/trends/trends-view.tsx +0 -0
  149. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  150. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/watchlist/page.tsx +0 -0
  151. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  152. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/next-env.d.ts +0 -0
  153. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/next.config.mjs +0 -0
  154. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/package.json +0 -0
  155. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/pnpm-lock.yaml +0 -0
  156. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/postcss.config.mjs +0 -0
  157. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/antigravity.png +0 -0
  158. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/claude-code.png +0 -0
  159. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/codex.png +0 -0
  160. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/harness/pi.png +0 -0
  161. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/public/uipath.png +0 -0
  162. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/tailwind.config.ts +0 -0
  163. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/tsconfig.json +0 -0
  164. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/vitest.config.ts +0 -0
  165. {coder_eval-0.12.10 → coder_eval-0.12.11}/evalboard/vitest.setup.ts +0 -0
  166. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/default.yaml +0 -0
  167. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/early-stop-ab.yaml +0 -0
  168. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/model-comparison.yaml +0 -0
  169. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/permissions-smoke.yaml +0 -0
  170. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/plugin-comparison.yaml +0 -0
  171. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/prompt-mutations-example.yaml +0 -0
  172. {coder_eval-0.12.10 → coder_eval-0.12.11}/experiments/smoke_variants.yaml +0 -0
  173. {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/README.md +0 -0
  174. {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/cost_logger.py +0 -0
  175. {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/litellm-config.yaml +0 -0
  176. {coder_eval-0.12.10 → coder_eval-0.12.11}/litellm/start-litellm.sh +0 -0
  177. {coder_eval-0.12.10 → coder_eval-0.12.11}/mkdocs.yml +0 -0
  178. {coder_eval-0.12.10 → coder_eval-0.12.11}/osv-scanner.toml +0 -0
  179. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/README.md +0 -0
  180. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/cli-setup.md +0 -0
  181. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/criteria.md +0 -0
  182. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/repo-layout.md +0 -0
  183. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/run-layout.md +0 -0
  184. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/task-rubric.md +0 -0
  185. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
  186. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
  187. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
  188. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
  189. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
  190. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/init/SKILL.md +0 -0
  191. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
  192. {coder_eval-0.12.10 → coder_eval-0.12.11}/plugins/coder-eval/skills/task/SKILL.md +0 -0
  193. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/check_commit_msg.sh +0 -0
  194. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/README.md +0 -0
  195. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/antigravity.json +0 -0
  196. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/claude-code.json +0 -0
  197. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/codex.json +0 -0
  198. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/opencode.json +0 -0
  199. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/corpus/pi.json +0 -0
  200. {coder_eval-0.12.10 → coder_eval-0.12.11}/scripts/timing/decompose_run.py +0 -0
  201. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/.gitattributes +0 -0
  202. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agent.py +0 -0
  203. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/__init__.py +0 -0
  204. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/_logging.py +0 -0
  205. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/_skills.py +0 -0
  206. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/claude_code_agent.py +0 -0
  207. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/codex_agent.py +0 -0
  208. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/.gitignore +0 -0
  209. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/delegate_host.mjs +0 -0
  210. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate/package.json +0 -0
  211. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/delegate_agent.py +0 -0
  212. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/noop_agent.py +0 -0
  213. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/opencode_agent.py +0 -0
  214. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/pi_agent.py +0 -0
  215. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/registry.py +0 -0
  216. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/agents/watchdog.py +0 -0
  217. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/analysis.py +0 -0
  218. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/argv_match.py +0 -0
  219. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/__init__.py +0 -0
  220. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/console.py +0 -0
  221. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/evaluate_command.py +0 -0
  222. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/evaluate_target.py +0 -0
  223. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/execute_command.py +0 -0
  224. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/export_command.py +0 -0
  225. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/harbor_command.py +0 -0
  226. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/plan_command.py +0 -0
  227. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/report_command.py +0 -0
  228. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/run_command.py +0 -0
  229. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/run_helpers.py +0 -0
  230. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  231. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/cli/utils.py +0 -0
  232. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/config.py +0 -0
  233. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/__init__.py +0 -0
  234. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  235. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/agent_judge.py +0 -0
  236. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/base.py +0 -0
  237. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/classification_match.py +0 -0
  238. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/cli_called.py +0 -0
  239. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/command_executed.py +0 -0
  240. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  241. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_check.py +0 -0
  242. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_contains.py +0 -0
  243. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_exists.py +0 -0
  244. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  245. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/json_check.py +0 -0
  246. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/llm_judge.py +0 -0
  247. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/reference_comparison.py +0 -0
  248. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/run_command.py +0 -0
  249. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/skill_triggered.py +0 -0
  250. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/system_one_judge.py +0 -0
  251. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/criteria/uipath_eval.py +0 -0
  252. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/durations.py +0 -0
  253. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/__init__.py +0 -0
  254. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/agent.py +0 -0
  255. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/budget.py +0 -0
  256. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/categories.py +0 -0
  257. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/categorization.py +0 -0
  258. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/checker_misuse.py +0 -0
  259. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/executor.py +0 -0
  260. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/judge.py +0 -0
  261. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/reference.py +0 -0
  262. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/retry.py +0 -0
  263. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/errors/timeout.py +0 -0
  264. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/__init__.py +0 -0
  265. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/checker.py +0 -0
  266. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  267. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  268. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_context.py +0 -0
  269. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_litellm.py +0 -0
  270. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_models.py +0 -0
  271. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  272. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_system_one.py +0 -0
  273. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/judge_usage.py +0 -0
  274. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/sub_agent.py +0 -0
  275. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/summaries.py +0 -0
  276. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/system_one_scoring.py +0 -0
  277. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  278. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/formatting.py +0 -0
  279. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/fs_permissions.py +0 -0
  280. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/__init__.py +0 -0
  281. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/agent.py +0 -0
  282. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/agent_paths.py +0 -0
  283. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_emit.py +0 -0
  284. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_hydrate.py +0 -0
  285. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/atif_models.py +0 -0
  286. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/experiment_packager.py +0 -0
  287. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/packager.py +0 -0
  288. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/portability.py +0 -0
  289. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/harbor/reward.py +0 -0
  290. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/invocation_log.py +0 -0
  291. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/isolation/__init__.py +0 -0
  292. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/isolation/docker_runner.py +0 -0
  293. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/isolation/eval_material.py +0 -0
  294. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/litellm_cost.py +0 -0
  295. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/logging_config.py +0 -0
  296. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/__init__.py +0 -0
  297. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/agent_config.py +0 -0
  298. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/cli_match.py +0 -0
  299. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/container_context.py +0 -0
  300. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/container_paths.py +0 -0
  301. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/criteria.py +0 -0
  302. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/enums.py +0 -0
  303. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/experiment.py +0 -0
  304. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/judge.py +0 -0
  305. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/judge_defaults.py +0 -0
  306. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/limits.py +0 -0
  307. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/merge_strategy.py +0 -0
  308. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/mutations.py +0 -0
  309. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/results.py +0 -0
  310. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/routing.py +0 -0
  311. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/sandbox.py +0 -0
  312. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/system_one.py +0 -0
  313. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/tasks.py +0 -0
  314. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/telemetry.py +0 -0
  315. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/models/templates.py +0 -0
  316. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/__init__.py +0 -0
  317. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/batch.py +0 -0
  318. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/config.py +0 -0
  319. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/config_merge.py +0 -0
  320. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/early_stop.py +0 -0
  321. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/evaluation.py +0 -0
  322. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/experiment.py +0 -0
  323. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/overrides.py +0 -0
  324. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/regrade.py +0 -0
  325. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/run_limits.py +0 -0
  326. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
  327. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestration/task_loader.py +0 -0
  328. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/orchestrator.py +0 -0
  329. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/path_utils.py +0 -0
  330. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/plugins.py +0 -0
  331. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/pricing.py +0 -0
  332. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/py.typed +0 -0
  333. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/__init__.py +0 -0
  334. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/experiment.py +0 -0
  335. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/helpers.py +0 -0
  336. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/html.py +0 -0
  337. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/junit.py +0 -0
  338. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/reports/markdown.py +0 -0
  339. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/resources/__init__.py +0 -0
  340. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  341. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/resources/tags.yaml +0 -0
  342. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/result_metrics.py +0 -0
  343. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/run_record.py +0 -0
  344. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/sandbox.py +0 -0
  345. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/__init__.py +0 -0
  346. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/ast_similarity.py +0 -0
  347. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/complexity.py +0 -0
  348. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/quality.py +0 -0
  349. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/signature_similarity.py +0 -0
  350. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/similarity.py +0 -0
  351. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/scoring/token_similarity.py +0 -0
  352. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/__init__.py +0 -0
  353. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/termination.py +0 -0
  354. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/user_simulator.py +0 -0
  355. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/simulation/utterance.py +0 -0
  356. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/stats.py +0 -0
  357. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/__init__.py +0 -0
  358. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/callbacks.py +0 -0
  359. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/collector.py +0 -0
  360. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/events.py +0 -0
  361. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/renderers.py +0 -0
  362. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/streaming/wire.py +0 -0
  363. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/telemetry.py +0 -0
  364. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/timing.py +0 -0
  365. {coder_eval-0.12.10 → coder_eval-0.12.11}/src/coder_eval/utils.py +0 -0
  366. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/README.md +0 -0
  367. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agentless_smoke_test.yaml +0 -0
  368. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/antigravity_hello_world.yaml +0 -0
  369. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  370. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_hello_world.yaml +0 -0
  371. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  372. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  373. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/claude_subagent_test.yaml +0 -0
  374. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  375. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_hello_world.yaml +0 -0
  376. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_parallel_commands.yaml +0 -0
  377. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  378. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_skills_test.yaml +0 -0
  379. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_string_utils.yaml +0 -0
  380. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/codex_subagent_test.yaml +0 -0
  381. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  382. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/agents/subagent_merge_sort.yaml +0 -0
  383. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
  384. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/anti_cheat_reference/reference/solution.py +0 -0
  385. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/byod_smoke_test.yaml +0 -0
  386. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dataset_example.yaml +0 -0
  387. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/datasets/sentiment.jsonl +0 -0
  388. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/delegate/fizzbuzz_delegate.yaml +0 -0
  389. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/delegate/hello_date_delegate.yaml +0 -0
  390. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  391. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  392. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  393. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  394. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  395. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  396. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
  397. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
  398. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
  399. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/fibonacci_with_template.yaml +0 -0
  400. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/hello_date.yaml +0 -0
  401. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/inline_starter_example.yaml +0 -0
  402. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/internal/session_resumption.yaml +0 -0
  403. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_smoke.yaml +0 -0
  404. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  405. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  406. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
  407. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  408. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  409. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/opencode_smoke_test.yaml +0 -0
  410. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/pi_smoke_test.yaml +0 -0
  411. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  412. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/record_cli_responses.yaml +0 -0
  413. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/run_limits/max_turns_cap.yaml +0 -0
  414. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/run_limits/turn_timeout.yaml +0 -0
  415. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  416. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  417. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  418. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  419. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  420. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  421. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/README.md +0 -0
  422. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  423. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  424. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  425. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  426. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  427. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  428. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  429. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  430. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  431. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  432. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/sentiment_classification.yaml +0 -0
  433. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_agent_judge.yaml +0 -0
  434. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_budget_exceeded.yaml +0 -0
  435. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  436. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_llm_judge.yaml +0 -0
  437. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_negative_path.yaml +0 -0
  438. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_system_one_judge.yaml +0 -0
  439. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_task_timeout.yaml +0 -0
  440. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/smoke_variants.yaml +0 -0
  441. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/test_sandbox.yaml +0 -0
  442. {coder_eval-0.12.10 → coder_eval-0.12.11}/tasks/token_check.yaml +0 -0
  443. {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/byod_smoke_test/Dockerfile +0 -0
  444. {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/fibonacci-starter/README.md +0 -0
  445. {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/fibonacci-starter/src/main.py +0 -0
  446. {coder_eval-0.12.10 → coder_eval-0.12.11}/templates/fibonacci-starter/tests/test_main.py +0 -0
  447. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/__init__.py +0 -0
  448. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_bracket_clock.py +0 -0
  449. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_container_contract.py +0 -0
  450. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/__init__.py +0 -0
  451. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/__init__.py +0 -0
  452. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  453. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
  454. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  455. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  456. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
  457. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
  458. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
  459. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
  460. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
  461. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  462. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  463. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  464. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  465. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  466. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  467. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  468. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  469. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  470. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  471. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  472. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  473. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  474. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  475. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  476. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  477. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  478. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  479. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
  480. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
  481. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
  482. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
  483. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
  484. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
  485. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
  486. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
  487. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
  488. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
  489. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
  490. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
  491. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
  492. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
  493. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
  494. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
  495. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
  496. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/task.toml +0 -0
  497. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
  498. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
  499. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
  500. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
  501. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
  502. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
  503. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/live_criteria.py +0 -0
  504. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  505. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  506. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  507. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  508. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  509. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/run_full.md +0 -0
  510. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
  511. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_fixtures/timing_union_cases.json +0 -0
  512. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/_path_helpers.py +0 -0
  513. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/conftest.py +0 -0
  514. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/__init__.py +0 -0
  515. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/atif/known_good_trajectory.json +0 -0
  516. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  517. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  518. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/mock_agent.py +0 -0
  519. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/pi_happy_stream.jsonl +0 -0
  520. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
  521. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  522. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  523. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/fixtures/text_stub_agent.py +0 -0
  524. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
  525. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
  526. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
  527. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
  528. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/__init__.py +0 -0
  529. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/action_docs.py +0 -0
  530. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/agent_roster_parity.py +0 -0
  531. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/dead_config_fields.py +0 -0
  532. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_env_parity.py +0 -0
  533. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_examples.py +0 -0
  534. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_indexes.py +0 -0
  535. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/doc_schema_parity.py +0 -0
  536. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/generated.py +0 -0
  537. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/live_verdict_contract.py +0 -0
  538. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/plugin_manifest_parity.py +0 -0
  539. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/plugin_reference.py +0 -0
  540. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/pricing_mirror.py +0 -0
  541. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/prose_budget.py +0 -0
  542. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/pyright_config.py +0 -0
  543. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/__init__.py +0 -0
  544. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/_layers.py +0 -0
  545. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/_model_ctor.py +0 -0
  546. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/base.py +0 -0
  547. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  548. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  549. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  550. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  551. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  552. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  553. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  554. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  555. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  556. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  557. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
  558. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
  559. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
  560. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
  561. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
  562. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
  563. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
  564. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
  565. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
  566. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce051_no_driver_override.py +0 -0
  567. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
  568. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
  569. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
  570. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
  571. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
  572. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
  573. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
  574. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce060_message_id_declared.py +0 -0
  575. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
  576. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
  577. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
  578. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
  579. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_agent_timing_access.py +0 -0
  580. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  581. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  582. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_silent_except.py +0 -0
  583. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  584. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  585. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  586. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  587. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/open_explicit_encoding.py +0 -0
  588. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  589. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/register_criterion_required.py +0 -0
  590. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  591. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  592. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/runner.py +0 -0
  593. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/violation.py +0 -0
  594. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/lint/workflow_outputs.py +0 -0
  595. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_action_inputs.py +0 -0
  596. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_action_version_pin.py +0 -0
  597. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent.py +0 -0
  598. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_no_timing_fields.py +0 -0
  599. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_optional_type.py +0 -0
  600. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_registry_dispatch.py +0 -0
  601. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_config_sdk_decoupling.py +0 -0
  602. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_golden_master.py +0 -0
  603. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_judge_criterion.py +0 -0
  604. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_telemetry.py +0 -0
  605. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_telemetry_advanced.py +0 -0
  606. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agent_timeout.py +0 -0
  607. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_agentless.py +0 -0
  608. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_atif_emit.py +0 -0
  609. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_atif_hydrate.py +0 -0
  610. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_atif_models.py +0 -0
  611. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_byoa_plugin.py +0 -0
  612. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_byoa_plugin_live.py +0 -0
  613. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_byod_feature.py +0 -0
  614. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_check_all_async.py +0 -0
  615. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_checker_logging.py +0 -0
  616. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_classification_match.py +0 -0
  617. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_claude_settings_enforcement_live.py +0 -0
  618. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cleanup_preservation_guard.py +0 -0
  619. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_backend_flag.py +0 -0
  620. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_called_criterion.py +0 -0
  621. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_empty_glob.py +0 -0
  622. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_match_parity.py +0 -0
  623. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_sdk_options.py +0 -0
  624. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_set_overrides.py +0 -0
  625. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_telemetry.py +0 -0
  626. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cli_type_flag.py +0 -0
  627. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_code_review_bugs.py +0 -0
  628. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_agent.py +0 -0
  629. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_agent_live.py +0 -0
  630. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_agent_unit.py +0 -0
  631. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_codex_token_mapping.py +0 -0
  632. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_command_executed.py +0 -0
  633. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_command_statistics.py +0 -0
  634. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_command_telemetry_result_data.py +0 -0
  635. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_commands_efficiency.py +0 -0
  636. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_config_lineage.py +0 -0
  637. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_config_merge_engine.py +0 -0
  638. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_config_precedence.py +0 -0
  639. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_container_context.py +0 -0
  640. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_continuous_scoring.py +0 -0
  641. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_cost_accounting_paths.py +0 -0
  642. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_criterion_result_round_trip.py +0 -0
  643. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_custom_lint.py +0 -0
  644. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_dataset_expansion.py +0 -0
  645. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_debug_logging.py +0 -0
  646. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent.py +0 -0
  647. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent_config.py +0 -0
  648. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent_live.py +0 -0
  649. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_delegate_agent_registration.py +0 -0
  650. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_detached_grading_boundaries.py +0 -0
  651. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_detached_grading_guards.py +0 -0
  652. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_build_failure.py +0 -0
  653. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_litellm_env.py +0 -0
  654. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_runner_container_death.py +0 -0
  655. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_runner_mounts.py +0 -0
  656. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_runner_stream_limit.py +0 -0
  657. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_wildcard_env.py +0 -0
  658. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_docker_workdir_live.py +0 -0
  659. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_driver_resolver.py +0 -0
  660. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_durations.py +0 -0
  661. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_early_stop.py +0 -0
  662. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_error_handling.py +0 -0
  663. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_eval_material.py +0 -0
  664. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluate_command.py +0 -0
  665. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluate_format_harbor.py +0 -0
  666. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluate_target.py +0 -0
  667. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_evaluator.py +0 -0
  668. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_event_collector.py +0 -0
  669. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_execute_command.py +0 -0
  670. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_execute_evaluate_loop.py +0 -0
  671. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_execute_format_harbor.py +0 -0
  672. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_cli.py +0 -0
  673. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_loader.py +0 -0
  674. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_models.py +0 -0
  675. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_reports.py +0 -0
  676. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_resolver.py +0 -0
  677. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_experiment_runner.py +0 -0
  678. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_file_check.py +0 -0
  679. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_file_contains_scoring.py +0 -0
  680. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_formatting.py +0 -0
  681. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_git_clone_failure.py +0 -0
  682. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_glob_paths_in_file_criteria.py +0 -0
  683. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_agent.py +0 -0
  684. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_e2e_fixtures.py +0 -0
  685. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_experiment_packager.py +0 -0
  686. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_export_golden.py +0 -0
  687. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_packager.py +0 -0
  688. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_portability.py +0 -0
  689. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_harbor_reward.py +0 -0
  690. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_heartbeat_watchdog.py +0 -0
  691. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_ignore_patterns_negation.py +0 -0
  692. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_image_from_dockerfiles.py +0 -0
  693. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_image_skew_refusal.py +0 -0
  694. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_integration.py +0 -0
  695. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_json_check.py +0 -0
  696. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_anthropic.py +0 -0
  697. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_bedrock.py +0 -0
  698. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_burn_in_live.py +0 -0
  699. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_context_builder.py +0 -0
  700. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_litellm.py +0 -0
  701. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_models.py +0 -0
  702. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_persistence.py +0 -0
  703. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_judge_system_one.py +0 -0
  704. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_lint_no_top_level_run_limits.py +0 -0
  705. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_lint_runner.py +0 -0
  706. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_config.py +0 -0
  707. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_cost.py +0 -0
  708. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_cost_logger.py +0 -0
  709. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_judge_live.py +0 -0
  710. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_litellm_route.py +0 -0
  711. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_llm_judge_criterion.py +0 -0
  712. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_log_tail_buffer.py +0 -0
  713. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_logging.py +0 -0
  714. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_logging_isolation.py +0 -0
  715. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_merge_characterization.py +0 -0
  716. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_merge_strategy_annotations.py +0 -0
  717. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_merge_unification.py +0 -0
  718. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_models.py +0 -0
  719. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_mutations.py +0 -0
  720. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_new_criteria.py +0 -0
  721. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_node_env_config.py +0 -0
  722. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_opencode_agent.py +0 -0
  723. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_optional_dependencies.py +0 -0
  724. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_orchestrator.py +0 -0
  725. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_orchestrator_error_log_tail.py +0 -0
  726. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_orchestrator_telemetry.py +0 -0
  727. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_overrides_engine.py +0 -0
  728. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_parallel.py +0 -0
  729. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_path_utils.py +0 -0
  730. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pi_agent.py +0 -0
  731. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pi_agent_config.py +0 -0
  732. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pi_smoke_task.py +0 -0
  733. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_plan_command.py +0 -0
  734. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_plugin_processing.py +0 -0
  735. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_plugins.py +0 -0
  736. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_post_run.py +0 -0
  737. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pr_review_workflow.py +0 -0
  738. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pre_run.py +0 -0
  739. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_preservation_mode.py +0 -0
  740. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pricing_mirror.py +0 -0
  741. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_pricing_registry.py +0 -0
  742. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_prose_budget.py +0 -0
  743. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_prose_budget_commands.py +0 -0
  744. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_comparison_scoring.py +0 -0
  745. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_evaluator.py +0 -0
  746. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_missing_file.py +0 -0
  747. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_models.py +0 -0
  748. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reference_permissions.py +0 -0
  749. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_registry.py +0 -0
  750. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_regrade.py +0 -0
  751. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_release_notes.py +0 -0
  752. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_replicate_stats.py +0 -0
  753. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_report_command.py +0 -0
  754. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports.py +0 -0
  755. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports_html.py +0 -0
  756. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports_junit.py +0 -0
  757. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_reports_package.py +0 -0
  758. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_resolve_task_files.py +0 -0
  759. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_result_metrics.py +0 -0
  760. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_resume.py +0 -0
  761. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_retry_logic_comprehensive.py +0 -0
  762. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_route_seam_exhaustiveness.py +0 -0
  763. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_routing.py +0 -0
  764. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_command_junit.py +0 -0
  765. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_command_stdout.py +0 -0
  766. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_helpers.py +0 -0
  767. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_limits_models.py +0 -0
  768. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_limits_orchestrator.py +0 -0
  769. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_limits_resolver.py +0 -0
  770. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_metrics.py +0 -0
  771. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_record.py +0 -0
  772. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_summary_rebuild.py +0 -0
  773. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_run_task_internal.py +0 -0
  774. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_runtime_tool_versions.py +0 -0
  775. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox.py +0 -0
  776. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_adopt.py +0 -0
  777. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_layer_builder.py +0 -0
  778. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_optional.py +0 -0
  779. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_record_cli.py +0 -0
  780. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_security.py +0 -0
  781. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_symlink_preservation.py +0 -0
  782. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_templates.py +0 -0
  783. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sandbox_venv_live.py +0 -0
  784. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_scorers.py +0 -0
  785. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_scoring_quality.py +0 -0
  786. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sdk_option_classification.py +0 -0
  787. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_seed_from_prior_result.py +0 -0
  788. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_config.py +0 -0
  789. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_integration.py +0 -0
  790. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_termination.py +0 -0
  791. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_simulation_trials.py +0 -0
  792. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_skill_triggered.py +0 -0
  793. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_stats.py +0 -0
  794. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_stats_nonfinite.py +0 -0
  795. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_agent_integration.py +0 -0
  796. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_batch.py +0 -0
  797. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_callbacks.py +0 -0
  798. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_cli.py +0 -0
  799. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_events.py +0 -0
  800. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_orchestrator.py +0 -0
  801. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_renderers.py +0 -0
  802. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_streaming_wire.py +0 -0
  803. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_sub_agent_runner.py +0 -0
  804. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_success_criterion_union.py +0 -0
  805. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_suite_rollup.py +0 -0
  806. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_summaries.py +0 -0
  807. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_system_one_judge.py +0 -0
  808. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_system_one_judge_live.py +0 -0
  809. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_tags.py +0 -0
  810. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_task_definition_unknown_fields.py +0 -0
  811. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_teardown_interrupt.py +0 -0
  812. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_telemetry.py +0 -0
  813. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_template_env_expansion.py +0 -0
  814. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_threshold_enforcement.py +0 -0
  815. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_batch.py +0 -0
  816. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_categorization.py +0 -0
  817. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_exceptions.py +0 -0
  818. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_models.py +0 -0
  819. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timeout_orchestrator.py +0 -0
  820. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timing_close_window.py +0 -0
  821. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timing_identity_contract.py +0 -0
  822. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_timing_union_parity.py +0 -0
  823. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_token_usage.py +0 -0
  824. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_uipath_eval.py +0 -0
  825. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_ungraded_reporting.py +0 -0
  826. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_user_simulator.py +0 -0
  827. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_utils.py +0 -0
  828. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_utterance_extraction.py +0 -0
  829. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_variant_prompt_file.py +0 -0
  830. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_verdict_tool.py +0 -0
  831. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_verify_published_workflow.py +0 -0
  832. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_watchdog.py +0 -0
  833. {coder_eval-0.12.10 → coder_eval-0.12.11}/tests/test_yaml_migration.py +0 -0
@@ -434,10 +434,13 @@ agent had produced; bounding it only by a fixed cycle count disconnected from `t
434
434
  path unreachable — the watchdog always wins, and the same spurious-orphan turn burns the
435
435
  full turn timeout before crashing with zero criteria evaluated.
436
436
 
437
- The cycle cap 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
437
+ The cycle cap (120 × 5 s) bounds the wait only when a task sets no timeout at all. With
438
+ one, the deadline alone bounds it, so a never-ending command (a dev server, an unanswered
439
+ prompt) can idle up to 80% of the turn, but a slow job gets the time the task author
440
+ budgeted for it. Applying the cap under a timeout as well force-closed real solvers and
441
+ simulations at 10 minutes: on the SkillsBench Gemini 4-arm campaign it ended 22 of 348
442
+ rows, 4 of which had passed with the deadline alone (an exam-scheduling MIP solve that
443
+ passed at 1211 s among them). It is deliberately not
441
444
  "break after N consecutive empty polls": `receive_steps()` returns identically empty
442
445
  whether a backgrounded job is still running or will never resolve, and there is no signal
443
446
  that tells the two apart except waiting. A count small enough to matter would abort real
@@ -464,10 +467,32 @@ after the model had already finished. `finalize` force-closes them as unresolved
464
467
  way it confines Claude Code. Without it Antigravity ran with every builtin, including
465
468
  `start_subagent` and `search_web`, under a list that gave Claude Code neither. `Skill` and
466
469
  `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.
470
+ and `schedule` stay on under any allowlist: `finish` returns structured output, and
471
+ `schedule` is the timer the model sleeps on while a backgrounded `run_command` finishes.
472
+ Without `schedule`, Gemini re-checks the background task every few seconds and each check
473
+ is a model call against `max_turns`: on the SkillsBench Gemini 4-arm campaign mean turns
474
+ rose 36.8 → 50.2 and max-turn rows 4 → 16 on the same 110 rows, and the skill arms were hit
475
+ 2-3x harder than baseline. With `schedule` on they came back to 35.4 and 1.
476
+
477
+ An allowlist only narrows the harness's default toolset (`BuiltinTools.default()`). `Glob`,
478
+ `Grep` and `LS` map to `find_file`, `search_directory` and `list_directory`, which the
479
+ harness ships off, so an allowlist naming them leaves them off. Turned on, Gemini used them
480
+ in place of shell scripts (1,429 calls in 333 of 348 SkillsBench rows, none before), often
481
+ one search per turn.
482
+
483
+ `start_subagent` also stays on under any allowlist, because the harness builds its system
484
+ prompt from the toolset: with `start_subagent` off it drops the whole subagents section
485
+ (4,801 → 2,783 characters), and with it the prompt's only "you do NOT need to poll ... you
486
+ will be notified" guidance. With it on, the system prompt is byte-identical to 0.12.9's.
487
+ The section alone does not stop Gemini polling a long job with status checks: in a 48-row
488
+ SkillsBench A/B it made 13.4 checks per row with the section and 13.7 without (8.5 on
489
+ 0.12.9). The tool descriptions are identical either way, and
490
+ `enable_subagents` alone does not restore the section. Subagents the tool lists withhold
491
+ (no `Task`) are denied by policy at `invoke_subagent` instead, which covers both the
492
+ built-in `research` subagent and one the model defines with `define_subagent`; both get
493
+ `search_web` regardless of the parent's toolset, and a parent policy on `search_web` does
494
+ not reach a model-defined one. The SDK takes an allowlist OR a denylist, so with both set
495
+ the denied tools are removed from the allowlist, except the always-enabled ones.
471
496
 
472
497
  ## Antigravity non-interactive commands
473
498
 
@@ -478,7 +503,7 @@ behind keeps the turn waiting on a prompt no one answers. `_NONINTERACTIVE_ENV`
478
503
  (`CI`, `npm_config_yes`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND`, `PIP_NO_INPUT`,
479
504
  `PAGER`/`GIT_PAGER=cat`) rides the per-agent `env` seam, each variable only where the
480
505
  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.
506
+ cannot close the terminal: a bare `read` or a server still runs until the poll deadline.
482
507
 
483
508
  ## The receive_steps re-entrancy window
484
509
 
@@ -2,6 +2,43 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.12.11 (2026-10-05)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **antigravity**: Bound the background poll by the deadline alone when a timeout is set
10
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
11
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
12
+
13
+ - **antigravity**: Keep a tool allowlist within the harness default toolset
14
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
15
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
16
+
17
+ - **antigravity**: Keep schedule enabled under a tool allowlist
18
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
19
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
20
+
21
+ - **antigravity**: Keep start_subagent on and deny withheld subagents by policy
22
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
23
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
24
+
25
+ - **antigravity**: Restore Gemini's background-job waiting under a tool allowlist
26
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
27
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
28
+
29
+ ### Documentation
30
+
31
+ - **antigravity**: State what keeping start_subagent on does and does not fix
32
+ ([#216](https://github.com/UiPath/coder_eval/pull/216),
33
+ [`de361f9`](https://github.com/UiPath/coder_eval/commit/de361f979657c68452286da6982d1d67a2fa98c7))
34
+
35
+ ### Features
36
+
37
+ - **evalboard**: Treat .dmn as a deliverable kind
38
+ ([#217](https://github.com/UiPath/coder_eval/pull/217),
39
+ [`7161fc8`](https://github.com/UiPath/coder_eval/commit/7161fc8a11624662fbf6e3f24d6b468fed99c453))
40
+
41
+
5
42
  ## v0.12.10 (2026-10-03)
6
43
 
7
44
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: coder-eval
3
- Version: 0.12.10
3
+ Version: 0.12.11
4
4
  Summary: Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode, Pi, Delegate) with sandboxed, reproducible YAML task suites.
5
5
  Project-URL: Homepage, https://coder-eval.com
6
6
  Project-URL: Repository, https://github.com/UiPath/coder_eval
@@ -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.10" # <-- kept in sync with releases by release.yml
28
+ default: "0.12.11" # <-- kept in sync with releases by release.yml
29
29
  extras:
30
30
  description: >-
31
31
  Comma-separated coder-eval extras (`codex`, `antigravity,litellm`), composed
@@ -145,7 +145,9 @@ sandbox working directory plus any skill roots).
145
145
  onto the harness's builtin tools (`Bash` → `run_command`, `Read` → `view_file`, `Write` →
146
146
  `create_file`, `Edit` → `edit_file`, `Glob` → `find_file`, `Grep` → `search_directory`,
147
147
  `Task` → `start_subagent`, `WebSearch` → `search_web`, `WebFetch` → `read_url_content`).
148
- `Skill` has no builtin and is skipped; `finish` always stays on.
148
+ `Skill` has no builtin and is skipped. `finish`, `schedule` and `start_subagent` always
149
+ stay on, the last so the harness keeps its default system prompt; when the lists do not
150
+ allow `Task`, running a subagent (`invoke_subagent`) is denied by policy instead.
149
151
 
150
152
  `run_command` also gets non-interactive environment variables (`CI=1`,
151
153
  `npm_config_yes=true`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND=noninteractive`,
@@ -205,8 +207,8 @@ as every other agent.
205
207
  10-second maximum synchronous wait; past it the command becomes a background task
206
208
  and the model gets a task id, not a result. The turn polls for that result instead
207
209
  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
+ orphaned `run_command` is waited on, the wait is bounded by 80% of `turn_timeout`
211
+ (10 minutes when the task sets none), and a job that outlives it (typically a server
210
212
  the model left running) is force-closed as `result_status: unknown` and graded
211
213
  normally rather than as a timeout.
212
214
  Measured in [Run-Limit Parity](HARNESS_PARITY.md).
@@ -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.10",
5
+ "version": "0.12.11",
6
6
  "description": "Test whether your Claude Code skills actually trigger, and benchmark any coding agent — author, run, and analyze the eval suite that proves it, locally or as a CI gate.",
7
7
  "author": { "name": "UiPath", "email": "coder-eval@uipath.com", "url": "https://github.com/UiPath/coder_eval" },
8
8
  "homepage": "https://coder-eval.com",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "coder-eval"
3
- version = "0.12.10"
3
+ version = "0.12.11"
4
4
  description = "Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity, OpenCode, Pi, Delegate) with sandboxed, reproducible YAML task suites."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -1,3 +1,3 @@
1
1
  """coder_eval - A framework for evaluating AI coding agents."""
2
2
 
3
- __version__ = "0.12.10"
3
+ __version__ = "0.12.11"
@@ -95,11 +95,9 @@ _RECEIVE_STEPS_REENTRY_RETRIES = 5
95
95
  # Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
96
96
  _POLL_DEADLINE_TIMEOUT_FRACTION = 0.8
97
97
 
98
- # Cap on poll *cycles* -- the SOLE bound when a task sets no timeout at all, and
99
- # a backstop against a very large one (applied alongside the deadline, whichever
100
- # is reached first). 120 * 5s = 10 minutes, ~2x the worst real
101
- # backgrounded-job duration observed (60-300s). Deliberately NOT "break after N
102
- # consecutive empty polls".
98
+ # Cap on poll *cycles*, the bound only when a task sets no timeout at all; with
99
+ # one, the deadline alone bounds the wait. 120 * 5s = 10 minutes. Deliberately
100
+ # NOT "break after N consecutive empty polls".
103
101
  # Rationale: .claude/notes/agents.md § Antigravity Step interleaving and the background poll
104
102
  _MAX_BACKGROUND_POLLS = 120
105
103
 
@@ -148,9 +146,15 @@ _CLAUDE_TO_ANTIGRAVITY_TOOL_MAP: dict[str, str] = {
148
146
  "AskUserQuestion": "ask_question",
149
147
  }
150
148
 
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"})
149
+ # Kept on under any allowlist: `finish` returns a turn's structured output,
150
+ # `schedule` is how the model waits on a backgrounded command, and the harness
151
+ # drops its "you will be notified, do not poll" guidance with `start_subagent`.
152
+ # Withheld subagents are denied at `_SUBAGENT_CALL` instead.
153
+ # Rationale: .claude/notes/agents.md § Antigravity tool allowlist
154
+ _ALWAYS_ENABLED_TOOLS: frozenset[str] = frozenset({"finish", "schedule", "start_subagent"})
155
+
156
+ # The one call that runs a subagent, built-in or model-defined.
157
+ _SUBAGENT_CALL = "invoke_subagent"
154
158
 
155
159
  # Set on every run_command unless the environment already sets them, so a
156
160
  # command that would stop to ask (`npx` installing a package, git credentials,
@@ -370,9 +374,12 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
370
374
  ``allowed_tools`` / ``disallowed_tools``, or ``None`` when neither is set.
371
375
 
372
376
  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.
377
+ Antigravity builtin (``Skill``, ``TodoWrite``, MCP tools) are skipped. An
378
+ allowlist only narrows the harness's default toolset, so ``Glob`` / ``Grep`` /
379
+ ``LS`` never turn on the tools the harness ships off (``find_file``,
380
+ ``search_directory``, ``list_directory``). The SDK takes an allowlist OR a
381
+ denylist, so with both set the denied tools are removed from the allowlist.
382
+ ``_ALWAYS_ENABLED_TOOLS`` are never removed.
376
383
 
377
384
  Rationale: .claude/notes/agents.md § Antigravity tool allowlist
378
385
  """
@@ -380,27 +387,28 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
380
387
  if not allowed and not disallowed:
381
388
  return None
382
389
  builtin = {t.value for t in types.BuiltinTools}
390
+ harness_default = {t.value for t in types.BuiltinTools.default()}
383
391
 
384
392
  def to_builtin(names: list[str] | None) -> set[str]:
385
393
  mapped = {_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.get(n, n) for n in names or []}
386
394
  return mapped & builtin
387
395
 
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
396
  if allowed:
392
- enabled = (to_builtin(allowed) | _ALWAYS_ENABLED_TOOLS) - to_builtin(disallowed)
397
+ enabled = ((to_builtin(allowed) & harness_default) - to_builtin(disallowed)) | _ALWAYS_ENABLED_TOOLS
393
398
  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
- )
399
+ return types.CapabilitiesConfig(enabled_tools=[types.BuiltinTools(t) for t in sorted(enabled)])
398
400
  disabled = to_builtin(disallowed) - _ALWAYS_ENABLED_TOOLS
399
401
  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
- )
402
+ return types.CapabilitiesConfig(disabled_tools=[types.BuiltinTools(t) for t in sorted(disabled)])
403
+
404
+ def _subagents_allowed(self) -> bool:
405
+ """Whether ``allowed_tools`` / ``disallowed_tools`` let the model run subagents (``Task``)."""
406
+
407
+ def names_task(names: list[str] | None) -> bool:
408
+ return any(_CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.get(n, n) == "start_subagent" for n in names or [])
409
+
410
+ allowed, disallowed = self.config.allowed_tools, self.config.disallowed_tools
411
+ return (not allowed or names_task(allowed)) and not names_task(disallowed)
404
412
 
405
413
  async def start(
406
414
  self,
@@ -451,8 +459,9 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
451
459
  # policy would deny. ``permission_mode`` is deliberately NOT mapped
452
460
  # here — it does not confine this agent, exactly as on Codex, and
453
461
  # docs/agents/HARNESS_PARITY.md says so rather than leaving it
454
- # silent. The isolation boundary is the driver.
455
- policies=[policy.allow_all()],
462
+ # silent. The isolation boundary is the driver. Subagents the tool
463
+ # lists withhold are denied here, since `start_subagent` stays on.
464
+ policies=[policy.allow_all()] + ([] if self._subagents_allowed() else [policy.deny(_SUBAGENT_CALL)]),
456
465
  system_instructions=self.config.system_prompt or None,
457
466
  # Skill discovery: the search-path roots that parent the skill dirs.
458
467
  skills_paths=skills_paths,
@@ -635,8 +644,11 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
635
644
  and not state.max_turns_hit
636
645
  and not state.timeout_hit
637
646
  and state.has_orphaned_tool_call()
638
- and poll_count < _MAX_BACKGROUND_POLLS
639
- and (poll_deadline is None or time.monotonic() < poll_deadline)
647
+ and (
648
+ poll_count < _MAX_BACKGROUND_POLLS
649
+ if poll_deadline is None
650
+ else time.monotonic() < poll_deadline
651
+ )
640
652
  ):
641
653
  poll_count += 1
642
654
  self._log.debug("Polling for backgrounded work (orphaned tool call); attempt %d", poll_count)
@@ -662,9 +674,9 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
662
674
  # stop/timeout: the call is force-closed as unresolved and
663
675
  # the turn is still graded normally on everything else.
664
676
  bound = (
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)"
677
+ f"poll_deadline ({_POLL_DEADLINE_TIMEOUT_FRACTION:.0%} of {timeout:g}s turn timeout)"
678
+ if poll_deadline is not None
679
+ else f"_MAX_BACKGROUND_POLLS ({_MAX_BACKGROUND_POLLS})"
668
680
  )
669
681
  msg = "Poll budget exhausted (%s, poll_count=%d) with a tool call still ACTIVE."
670
682
  self._log.warning(msg, bound, poll_count)
@@ -508,6 +508,11 @@ class _FakeBuiltinTools(enum.StrEnum):
508
508
  SCHEDULE = "schedule"
509
509
  FINISH = "finish"
510
510
 
511
+ @classmethod
512
+ def default(cls) -> list["_FakeBuiltinTools"]:
513
+ off = {cls.ASK_QUESTION, cls.LIST_DIR, cls.SEARCH_DIR, cls.FIND_FILE}
514
+ return [t for t in cls if t not in off]
515
+
511
516
 
512
517
  def _install_fake_sdk(monkeypatch, sdk_agent_cls) -> None:
513
518
  """Stub ``google.antigravity`` in sys.modules so ``start()`` runs without the extra.
@@ -883,10 +888,10 @@ async def test_communicate_stops_polling_at_max_poll_cap(monkeypatch):
883
888
  assert bash.result_status == "unknown" # force-closed as UNRESOLVED by finalize()
884
889
 
885
890
 
886
- async def test_communicate_poll_cap_also_bounds_a_turn_with_a_large_timeout(monkeypatch):
887
- """The cycle cap applies alongside the timeout-derived deadline, not only when
888
- no timeout is set: under a large turn_timeout (1800s gives a 1440s deadline) a
889
- never-closing job stops at _MAX_BACKGROUND_POLLS instead of the deadline."""
891
+ async def test_communicate_poll_cap_does_not_cut_short_a_job_inside_the_deadline(monkeypatch):
892
+ """With a turn_timeout the deadline alone bounds the wait: a solver still running
893
+ past _MAX_BACKGROUND_POLLS cycles is waited on until it finishes. Seen live: a MIP
894
+ solve that passed at 1211s was force-closed at the 10-minute cap."""
890
895
  from coder_eval.agents import antigravity_agent
891
896
 
892
897
  monkeypatch.setattr(antigravity_agent, "_MAX_BACKGROUND_POLLS", 3)
@@ -897,22 +902,34 @@ async def test_communicate_poll_cap_also_bounds_a_turn_with_a_large_timeout(monk
897
902
 
898
903
  monkeypatch.setattr(antigravity_agent.asyncio, "sleep", _record_sleep)
899
904
 
900
- never_closing = [
905
+ started = [
901
906
  _step(
902
907
  "TOOL_CALL",
903
908
  "ACTIVE",
904
909
  target="TARGET_ENVIRONMENT",
905
- tool_calls=[_tc("run_command", "stuck", {"command_line": "node server.js"})],
910
+ tool_calls=[_tc("run_command", "solve", {"command_line": "python solve.py"})],
906
911
  ),
907
- _step("TEXT_RESPONSE", "DONE", content="server started", complete=True, usage=_usage(10, 0, 1, 0)),
912
+ _step("TEXT_RESPONSE", "DONE", content="solver running", complete=True, usage=_usage(10, 0, 1, 0)),
908
913
  ]
909
- agent = _agent_with_steps([never_closing])
910
- tr = await agent.communicate("start it", timeout=1800.0)
914
+ finished = [
915
+ _step(
916
+ "TOOL_CALL",
917
+ "DONE",
918
+ target="TARGET_ENVIRONMENT",
919
+ tool_calls=[
920
+ _tc(
921
+ "run_command", "solve", {"command_line": "python solve.py", "exit_code": 0, "combined_output": "ok"}
922
+ )
923
+ ],
924
+ ),
925
+ _step("TEXT_RESPONSE", "DONE", content="solved", complete=True, usage=_usage(10, 0, 1, 0)),
926
+ ]
927
+ agent = _agent_with_steps([started, [], [], [], [], finished])
928
+ tr = await agent.communicate("solve it", timeout=1800.0)
911
929
 
912
- assert len(sleep_calls) == 3 # the cap, long before the 1440s deadline
930
+ assert len(sleep_calls) == 5
913
931
  bash = next(c for c in tr.commands if c.tool_name == "Bash")
914
- assert bash.result_status == "unknown"
915
- assert tr.agent_output == "server started"
932
+ assert bash.result_status == "success"
916
933
 
917
934
 
918
935
  async def test_communicate_does_not_poll_a_non_command_tool_left_active(monkeypatch):
@@ -1536,45 +1553,76 @@ def test_tool_capabilities_none_without_tool_lists():
1536
1553
 
1537
1554
 
1538
1555
  def test_allowed_tools_map_to_enabled_builtins():
1539
- """The default experiment allowlist enables exactly the matching builtins, plus `finish`.
1556
+ """The default experiment allowlist enables exactly the matching default builtins, plus
1557
+ `finish`, `schedule` and `start_subagent`.
1540
1558
 
1541
- `Skill` has no builtin (skills load through skills_paths) and is skipped; subagents,
1542
- web search and the rest stay off, as they do for Claude Code under the same list.
1559
+ `Skill` has no builtin (skills load through skills_paths) and is skipped; `Glob` / `Grep`
1560
+ map to tools the harness ships off, so they stay off; web search and the rest stay off, as
1561
+ they do for Claude Code under the same list.
1543
1562
  """
1544
1563
  caps = _capabilities(allowed_tools=["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Skill"])
1545
1564
 
1546
1565
  assert [t.value for t in caps.enabled_tools] == [
1547
1566
  "create_file",
1548
1567
  "edit_file",
1549
- "find_file",
1550
1568
  "finish",
1551
1569
  "run_command",
1552
- "search_directory",
1570
+ "schedule",
1571
+ "start_subagent",
1553
1572
  "view_file",
1554
1573
  ]
1555
- assert caps.enable_subagents is False
1556
1574
 
1557
1575
 
1558
- def test_allowed_task_keeps_subagents():
1559
- caps = _capabilities(allowed_tools=["Bash", "Task"])
1576
+ def test_allowlist_never_enables_tools_the_harness_ships_off():
1577
+ caps = _capabilities(allowed_tools=["Bash", "Glob", "Grep", "LS", "AskUserQuestion"])
1560
1578
 
1561
- assert {t.value for t in caps.enabled_tools} == {"run_command", "start_subagent", "finish"}
1562
- assert caps.enable_subagents is True
1579
+ assert {t.value for t in caps.enabled_tools} == {"run_command", "finish", "schedule", "start_subagent"}
1563
1580
 
1564
1581
 
1565
1582
  def test_disallowed_tools_map_to_disabled_builtins():
1566
1583
  caps = _capabilities(disallowed_tools=["Task", "WebSearch", "TodoWrite"])
1567
1584
 
1568
- assert [t.value for t in caps.disabled_tools] == ["search_web", "start_subagent"]
1569
- assert caps.enable_subagents is False
1585
+ assert [t.value for t in caps.disabled_tools] == ["search_web"]
1570
1586
 
1571
1587
 
1572
1588
  def test_disallowed_tools_are_removed_from_the_allowlist():
1573
1589
  """The SDK takes an allowlist OR a denylist, so with both the denied tools leave the allowlist."""
1574
- caps = _capabilities(allowed_tools=["Bash", "Read", "Task"], disallowed_tools=["Task"])
1590
+ caps = _capabilities(allowed_tools=["Bash", "Read", "WebSearch"], disallowed_tools=["WebSearch"])
1591
+
1592
+ assert {t.value for t in caps.enabled_tools} == {"run_command", "view_file", "finish", "schedule", "start_subagent"}
1593
+
1594
+
1595
+ @pytest.mark.parametrize(
1596
+ ("cfg", "denied"),
1597
+ [
1598
+ ({}, []),
1599
+ ({"allowed_tools": ["Bash", "Task"]}, []),
1600
+ ({"allowed_tools": ["Bash", "Read"]}, ["invoke_subagent"]),
1601
+ ({"disallowed_tools": ["Task"]}, ["invoke_subagent"]),
1602
+ ({"allowed_tools": ["Bash", "Task"], "disallowed_tools": ["Task"]}, ["invoke_subagent"]),
1603
+ ],
1604
+ )
1605
+ async def test_subagent_calls_are_denied_unless_task_is_allowed(monkeypatch, tmp_path, cfg, denied):
1606
+ """`start_subagent` stays on so the harness keeps its default system prompt, whose only
1607
+ "you will be notified, do not poll" guidance sits in its subagents section. A subagent the
1608
+ tool lists withhold is denied at the call that runs it instead."""
1609
+ configs: list[Any] = []
1610
+
1611
+ class _FakeSdkAgent:
1612
+ def __init__(self, cfg):
1613
+ configs.append(cfg)
1614
+
1615
+ async def __aenter__(self):
1616
+ return self
1575
1617
 
1576
- assert {t.value for t in caps.enabled_tools} == {"run_command", "view_file", "finish"}
1577
- assert caps.enable_subagents is False
1618
+ async def __aexit__(self, *exc):
1619
+ return False
1620
+
1621
+ _install_fake_sdk(monkeypatch, _FakeSdkAgent)
1622
+
1623
+ await _agent(**cfg).start(str(tmp_path))
1624
+
1625
+ assert [p.tool for p in configs[0].policies if p.kind == "deny"] == denied
1578
1626
 
1579
1627
 
1580
1628
  async def test_start_passes_tool_capabilities_to_sdk_config(monkeypatch, tmp_path):
@@ -1594,7 +1642,13 @@ async def test_start_passes_tool_capabilities_to_sdk_config(monkeypatch, tmp_pat
1594
1642
 
1595
1643
  await _agent(allowed_tools=["Bash", "Read"]).start(str(tmp_path))
1596
1644
 
1597
- assert {t.value for t in configs[0].capabilities.enabled_tools} == {"run_command", "view_file", "finish"}
1645
+ assert {t.value for t in configs[0].capabilities.enabled_tools} == {
1646
+ "run_command",
1647
+ "view_file",
1648
+ "finish",
1649
+ "schedule",
1650
+ "start_subagent",
1651
+ }
1598
1652
 
1599
1653
 
1600
1654
  def test_installed_sdk_accepts_the_tool_capabilities():
@@ -1602,10 +1656,12 @@ def test_installed_sdk_accepts_the_tool_capabilities():
1602
1656
  every mapped name is a real builtin, so a renamed tool fails here, not live."""
1603
1657
  types = pytest.importorskip("google.antigravity").types
1604
1658
 
1605
- assert set(agent_module._CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.values()) <= {t.value for t in types.BuiltinTools}
1659
+ mapped = set(agent_module._CLAUDE_TO_ANTIGRAVITY_TOOL_MAP.values()) | agent_module._ALWAYS_ENABLED_TOOLS
1660
+ assert mapped <= {t.value for t in types.BuiltinTools}
1606
1661
  caps = _agent(allowed_tools=["Bash", "Read", "Write", "Edit", "Glob", "Grep", "Skill"])._tool_capabilities(types)
1607
1662
  assert isinstance(caps, types.CapabilitiesConfig)
1608
- assert types.BuiltinTools.START_SUBAGENT not in caps.enabled_tools
1663
+ assert types.BuiltinTools.START_SUBAGENT in caps.enabled_tools
1664
+ assert types.BuiltinTools.FIND_FILE not in caps.enabled_tools
1609
1665
 
1610
1666
 
1611
1667
  # --- max_turns cap -------------------------------------------------------------------
@@ -513,7 +513,7 @@ wheels = [
513
513
 
514
514
  [[package]]
515
515
  name = "coder-eval"
516
- version = "0.12.10"
516
+ version = "0.12.11"
517
517
  source = { editable = "." }
518
518
  dependencies = [
519
519
  { name = "anthropic" },
File without changes