coder-eval 0.12.13__tar.gz → 0.12.15__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 (844) hide show
  1. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/agents.md +77 -3
  2. {coder_eval-0.12.13 → coder_eval-0.12.15}/CHANGELOG.md +53 -0
  3. {coder_eval-0.12.13 → coder_eval-0.12.15}/PKG-INFO +2 -2
  4. {coder_eval-0.12.13 → coder_eval-0.12.15}/action.yml +1 -1
  5. {coder_eval-0.12.13 → coder_eval-0.12.15}/docker/Dockerfile +12 -2
  6. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/TASK_DEFINITION_GUIDE.md +1 -1
  7. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/ANTIGRAVITY.md +1 -1
  8. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/CODEX.md +27 -2
  9. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/HARNESS_PARITY.md +13 -1
  10. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/package.json +5 -2
  11. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/pnpm-lock.yaml +219 -186
  12. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
  13. {coder_eval-0.12.13 → coder_eval-0.12.15}/pyproject.toml +2 -2
  14. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/__init__.py +1 -1
  15. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/codex_agent.py +407 -93
  16. coder_eval-0.12.15/tasks/agents/codex_skills_test.yaml +30 -0
  17. coder_eval-0.12.15/tests/_fixtures/codex_rollouts.py +113 -0
  18. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_codex_agent.py +226 -56
  19. coder_eval-0.12.15/tests/test_codex_agent_unit.py +702 -0
  20. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_runner_mounts.py +1 -1
  21. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_image_from_dockerfiles.py +27 -0
  22. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_plugin_processing.py +2 -2
  23. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_skill_triggered.py +2 -2
  24. {coder_eval-0.12.13 → coder_eval-0.12.15}/uv.lock +212 -157
  25. coder_eval-0.12.13/tasks/agents/codex_skills_test.yaml +0 -30
  26. coder_eval-0.12.13/tests/test_codex_agent_unit.py +0 -274
  27. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/commands/coder-eval-code-review-full.md +0 -0
  28. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  29. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/commands/coder-eval-code-review.md +0 -0
  30. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/commands/coder-eval-create-plan.md +0 -0
  31. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/commands/coder-eval-implement-plan.md +0 -0
  32. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/commands/coder-eval-review.md +0 -0
  33. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/harness-candidates.md +0 -0
  34. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/README.md +0 -0
  35. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/context-window.md +0 -0
  36. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/contracts.md +0 -0
  37. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/isolation.md +0 -0
  38. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/lint-rules.md +0 -0
  39. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/orchestration.md +0 -0
  40. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/permissions.md +0 -0
  41. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/persistence.md +0 -0
  42. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/reporting.md +0 -0
  43. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/notes/timing.md +0 -0
  44. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/shared/axes.md +0 -0
  45. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/shared/multi-model-review.md +0 -0
  46. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/shared/review-rubric.md +0 -0
  47. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/shared/run-layout.md +0 -0
  48. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/workflows/cr-axis.js +0 -0
  49. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude/workflows/cr-parent.js +0 -0
  50. {coder_eval-0.12.13 → coder_eval-0.12.15}/.claude-plugin/marketplace.json +0 -0
  51. {coder_eval-0.12.13 → coder_eval-0.12.15}/.env.example +0 -0
  52. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/CODEOWNERS +0 -0
  53. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
  54. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  55. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  56. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/actionlint.yaml +0 -0
  57. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/code_review.md +0 -0
  58. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/dependabot.yml +0 -0
  59. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/pages-stub/index.html +0 -0
  60. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/scripts/diagnose_delegate_token_claims.py +0 -0
  61. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/scripts/harbor_e2e.py +0 -0
  62. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/scripts/release_notes.py +0 -0
  63. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/claude-pr-review.yml +0 -0
  64. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/codeql.yml +0 -0
  65. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/conventional-commits.yml +0 -0
  66. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/docker-publish.yml +0 -0
  67. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/docs.yml +0 -0
  68. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/harbor-e2e.yml +0 -0
  69. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/pr-checks.yml +0 -0
  70. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/publish-testpypi.yml +0 -0
  71. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/release.yml +0 -0
  72. {coder_eval-0.12.13 → coder_eval-0.12.15}/.github/workflows/verify-published-action.yml +0 -0
  73. {coder_eval-0.12.13 → coder_eval-0.12.15}/.gitignore +0 -0
  74. {coder_eval-0.12.13 → coder_eval-0.12.15}/.pre-commit-config.yaml +0 -0
  75. {coder_eval-0.12.13 → coder_eval-0.12.15}/.python-version +0 -0
  76. {coder_eval-0.12.13 → coder_eval-0.12.15}/ADOPTERS.md +0 -0
  77. {coder_eval-0.12.13 → coder_eval-0.12.15}/CLAUDE.md +0 -0
  78. {coder_eval-0.12.13 → coder_eval-0.12.15}/CODE_OF_CONDUCT.md +0 -0
  79. {coder_eval-0.12.13 → coder_eval-0.12.15}/CONTRIBUTING.md +0 -0
  80. {coder_eval-0.12.13 → coder_eval-0.12.15}/LICENSE +0 -0
  81. {coder_eval-0.12.13 → coder_eval-0.12.15}/Makefile +0 -0
  82. {coder_eval-0.12.13 → coder_eval-0.12.15}/NOTICE +0 -0
  83. {coder_eval-0.12.13 → coder_eval-0.12.15}/README.md +0 -0
  84. {coder_eval-0.12.13 → coder_eval-0.12.15}/SECURITY.md +0 -0
  85. {coder_eval-0.12.13 → coder_eval-0.12.15}/comparison.md +0 -0
  86. {coder_eval-0.12.13 → coder_eval-0.12.15}/docker/Dockerfile.runtime +0 -0
  87. {coder_eval-0.12.13 → coder_eval-0.12.15}/docker/coder_eval_entrypoint.sh +0 -0
  88. {coder_eval-0.12.13 → coder_eval-0.12.15}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  89. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/AB_EXPERIMENTS.md +0 -0
  90. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/CI_GATE.md +0 -0
  91. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/DATASETS.md +0 -0
  92. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/DIALOG_MODE.md +0 -0
  93. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/DOCKER_ISOLATION.md +0 -0
  94. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/EXTENDING.md +0 -0
  95. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/PLUGIN.md +0 -0
  96. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/REPORT_SCHEMA.md +0 -0
  97. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/USER_GUIDE.md +0 -0
  98. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/CLAUDE_CODE.md +0 -0
  99. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/DELEGATE.md +0 -0
  100. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/OPENCODE.md +0 -0
  101. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/agents/PI.md +0 -0
  102. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/assets/hero.gif +0 -0
  103. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/comparison.md +0 -0
  104. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/index.md +0 -0
  105. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/llms.txt +0 -0
  106. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/01-first-evaluation.md +0 -0
  107. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/02-ci-pipeline.md +0 -0
  108. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/03-evalboard-local.md +0 -0
  109. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/04-writing-a-task.md +0 -0
  110. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/05-comparing-models.md +0 -0
  111. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/06-use-docker-isolation.md +0 -0
  112. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
  113. {coder_eval-0.12.13 → coder_eval-0.12.15}/docs/tutorials/README.md +0 -0
  114. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/.gitignore +0 -0
  115. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/README.md +0 -0
  116. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
  117. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
  118. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  119. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
  120. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/col-help.tsx +0 -0
  121. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  122. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/harness-badge.tsx +0 -0
  123. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/harness-selector.tsx +0 -0
  124. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/scroll-table.tsx +0 -0
  125. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/search-box.tsx +0 -0
  126. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/skeleton.tsx +0 -0
  127. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/unit-toggle.tsx +0 -0
  128. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_components/version-list.tsx +0 -0
  129. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
  130. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_lib/source-param.ts +0 -0
  131. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
  132. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
  133. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
  134. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/daily-chart.tsx +0 -0
  135. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
  136. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/harness-legend.tsx +0 -0
  137. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/harness-series.ts +0 -0
  138. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/tag-rail.tsx +0 -0
  139. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  140. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
  141. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/_overview/window-summary.tsx +0 -0
  142. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/api/download/route.ts +0 -0
  143. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/api/file/route.ts +0 -0
  144. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
  145. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/api/refresh/route.ts +0 -0
  146. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/error.tsx +0 -0
  147. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/globals.css +0 -0
  148. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/icon.png +0 -0
  149. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/layout.tsx +0 -0
  150. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/loading.tsx +0 -0
  151. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/page.tsx +0 -0
  152. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
  153. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/path-to-ga/page.tsx +0 -0
  154. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/path-to-ga/task-table.tsx +0 -0
  155. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/scribe/page.tsx +0 -0
  156. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/scribe/run-table.tsx +0 -0
  157. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
  158. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/trends/actions.ts +0 -0
  159. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/trends/page.tsx +0 -0
  160. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/trends/trends-view.tsx +0 -0
  161. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  162. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/watchlist/page.tsx +0 -0
  163. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  164. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/next-env.d.ts +0 -0
  165. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/next.config.mjs +0 -0
  166. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/postcss.config.mjs +0 -0
  167. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/public/harness/antigravity.png +0 -0
  168. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/public/harness/claude-code.png +0 -0
  169. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/public/harness/codex.png +0 -0
  170. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/public/harness/pi.png +0 -0
  171. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/public/uipath.png +0 -0
  172. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/tailwind.config.ts +0 -0
  173. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/tsconfig.json +0 -0
  174. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/vitest.config.ts +0 -0
  175. {coder_eval-0.12.13 → coder_eval-0.12.15}/evalboard/vitest.setup.ts +0 -0
  176. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/default.yaml +0 -0
  177. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/early-stop-ab.yaml +0 -0
  178. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/model-comparison.yaml +0 -0
  179. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/permissions-smoke.yaml +0 -0
  180. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/plugin-comparison.yaml +0 -0
  181. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/prompt-mutations-example.yaml +0 -0
  182. {coder_eval-0.12.13 → coder_eval-0.12.15}/experiments/smoke_variants.yaml +0 -0
  183. {coder_eval-0.12.13 → coder_eval-0.12.15}/litellm/README.md +0 -0
  184. {coder_eval-0.12.13 → coder_eval-0.12.15}/litellm/cost_logger.py +0 -0
  185. {coder_eval-0.12.13 → coder_eval-0.12.15}/litellm/litellm-config.yaml +0 -0
  186. {coder_eval-0.12.13 → coder_eval-0.12.15}/litellm/start-litellm.sh +0 -0
  187. {coder_eval-0.12.13 → coder_eval-0.12.15}/mkdocs.yml +0 -0
  188. {coder_eval-0.12.13 → coder_eval-0.12.15}/osv-scanner.toml +0 -0
  189. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/README.md +0 -0
  190. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/cli-setup.md +0 -0
  191. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/criteria.md +0 -0
  192. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/repo-layout.md +0 -0
  193. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/run-layout.md +0 -0
  194. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/task-rubric.md +0 -0
  195. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
  196. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
  197. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
  198. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
  199. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
  200. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/skills/init/SKILL.md +0 -0
  201. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
  202. {coder_eval-0.12.13 → coder_eval-0.12.15}/plugins/coder-eval/skills/task/SKILL.md +0 -0
  203. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/check_commit_msg.sh +0 -0
  204. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/corpus/README.md +0 -0
  205. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/corpus/antigravity.json +0 -0
  206. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/corpus/claude-code.json +0 -0
  207. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/corpus/codex.json +0 -0
  208. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/corpus/opencode.json +0 -0
  209. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/corpus/pi.json +0 -0
  210. {coder_eval-0.12.13 → coder_eval-0.12.15}/scripts/timing/decompose_run.py +0 -0
  211. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/.gitattributes +0 -0
  212. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agent.py +0 -0
  213. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/__init__.py +0 -0
  214. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/_logging.py +0 -0
  215. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/_skills.py +0 -0
  216. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/antigravity_agent.py +0 -0
  217. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/claude_code_agent.py +0 -0
  218. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/delegate/.gitignore +0 -0
  219. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/delegate/package.json +0 -0
  220. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/delegate_agent.py +0 -0
  221. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/noop_agent.py +0 -0
  222. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/opencode_agent.py +0 -0
  223. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/pi_agent.py +0 -0
  224. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/registry.py +0 -0
  225. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/agents/watchdog.py +0 -0
  226. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/analysis.py +0 -0
  227. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/argv_match.py +0 -0
  228. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/__init__.py +0 -0
  229. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/console.py +0 -0
  230. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/evaluate_command.py +0 -0
  231. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/evaluate_target.py +0 -0
  232. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/execute_command.py +0 -0
  233. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/export_command.py +0 -0
  234. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/harbor_command.py +0 -0
  235. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/plan_command.py +0 -0
  236. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/report_command.py +0 -0
  237. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/run_command.py +0 -0
  238. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/run_helpers.py +0 -0
  239. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  240. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/cli/utils.py +0 -0
  241. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/config.py +0 -0
  242. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/__init__.py +0 -0
  243. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  244. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/agent_judge.py +0 -0
  245. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/base.py +0 -0
  246. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/classification_match.py +0 -0
  247. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/cli_called.py +0 -0
  248. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/command_executed.py +0 -0
  249. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  250. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/file_check.py +0 -0
  251. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/file_contains.py +0 -0
  252. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/file_exists.py +0 -0
  253. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  254. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/json_check.py +0 -0
  255. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/llm_judge.py +0 -0
  256. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/reference_comparison.py +0 -0
  257. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/run_command.py +0 -0
  258. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/skill_triggered.py +0 -0
  259. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/system_one_judge.py +0 -0
  260. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/criteria/uipath_eval.py +0 -0
  261. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/durations.py +0 -0
  262. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/__init__.py +0 -0
  263. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/agent.py +0 -0
  264. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/budget.py +0 -0
  265. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/categories.py +0 -0
  266. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/categorization.py +0 -0
  267. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/checker_misuse.py +0 -0
  268. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/executor.py +0 -0
  269. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/judge.py +0 -0
  270. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/reference.py +0 -0
  271. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/retry.py +0 -0
  272. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/errors/timeout.py +0 -0
  273. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/__init__.py +0 -0
  274. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/checker.py +0 -0
  275. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  276. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  277. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_context.py +0 -0
  278. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_litellm.py +0 -0
  279. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_models.py +0 -0
  280. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  281. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_system_one.py +0 -0
  282. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/judge_usage.py +0 -0
  283. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/sub_agent.py +0 -0
  284. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/summaries.py +0 -0
  285. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/system_one_scoring.py +0 -0
  286. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  287. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/formatting.py +0 -0
  288. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/fs_permissions.py +0 -0
  289. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/__init__.py +0 -0
  290. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/agent.py +0 -0
  291. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/agent_paths.py +0 -0
  292. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/atif_emit.py +0 -0
  293. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/atif_hydrate.py +0 -0
  294. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/atif_models.py +0 -0
  295. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/experiment_packager.py +0 -0
  296. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/packager.py +0 -0
  297. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/portability.py +0 -0
  298. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/harbor/reward.py +0 -0
  299. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/invocation_log.py +0 -0
  300. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/isolation/__init__.py +0 -0
  301. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/isolation/docker_runner.py +0 -0
  302. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/isolation/eval_material.py +0 -0
  303. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/litellm_cost.py +0 -0
  304. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/logging_config.py +0 -0
  305. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/__init__.py +0 -0
  306. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/agent_config.py +0 -0
  307. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/cli_match.py +0 -0
  308. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/container_context.py +0 -0
  309. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/container_paths.py +0 -0
  310. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/criteria.py +0 -0
  311. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/enums.py +0 -0
  312. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/experiment.py +0 -0
  313. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/judge.py +0 -0
  314. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/judge_defaults.py +0 -0
  315. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/limits.py +0 -0
  316. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/merge_strategy.py +0 -0
  317. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/mutations.py +0 -0
  318. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/results.py +0 -0
  319. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/routing.py +0 -0
  320. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/sandbox.py +0 -0
  321. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/system_one.py +0 -0
  322. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/tasks.py +0 -0
  323. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/telemetry.py +0 -0
  324. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/models/templates.py +0 -0
  325. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/__init__.py +0 -0
  326. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/batch.py +0 -0
  327. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/config.py +0 -0
  328. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/config_merge.py +0 -0
  329. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/early_stop.py +0 -0
  330. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/evaluation.py +0 -0
  331. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/experiment.py +0 -0
  332. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/overrides.py +0 -0
  333. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/regrade.py +0 -0
  334. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/run_limits.py +0 -0
  335. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
  336. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestration/task_loader.py +0 -0
  337. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/orchestrator.py +0 -0
  338. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/path_utils.py +0 -0
  339. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/plugins.py +0 -0
  340. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/pricing.py +0 -0
  341. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/py.typed +0 -0
  342. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/reports/__init__.py +0 -0
  343. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/reports/experiment.py +0 -0
  344. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/reports/helpers.py +0 -0
  345. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/reports/html.py +0 -0
  346. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/reports/junit.py +0 -0
  347. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/reports/markdown.py +0 -0
  348. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/resources/__init__.py +0 -0
  349. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  350. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/resources/tags.yaml +0 -0
  351. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/result_metrics.py +0 -0
  352. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/run_record.py +0 -0
  353. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/sandbox.py +0 -0
  354. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/__init__.py +0 -0
  355. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/ast_similarity.py +0 -0
  356. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/complexity.py +0 -0
  357. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/quality.py +0 -0
  358. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/signature_similarity.py +0 -0
  359. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/similarity.py +0 -0
  360. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/scoring/token_similarity.py +0 -0
  361. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/simulation/__init__.py +0 -0
  362. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/simulation/termination.py +0 -0
  363. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/simulation/user_simulator.py +0 -0
  364. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/simulation/utterance.py +0 -0
  365. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/stats.py +0 -0
  366. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/streaming/__init__.py +0 -0
  367. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/streaming/callbacks.py +0 -0
  368. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/streaming/collector.py +0 -0
  369. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/streaming/events.py +0 -0
  370. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/streaming/renderers.py +0 -0
  371. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/streaming/wire.py +0 -0
  372. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/telemetry.py +0 -0
  373. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/timing.py +0 -0
  374. {coder_eval-0.12.13 → coder_eval-0.12.15}/src/coder_eval/utils.py +0 -0
  375. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/README.md +0 -0
  376. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agentless_smoke_test.yaml +0 -0
  377. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/antigravity_hello_world.yaml +0 -0
  378. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  379. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/claude_hello_world.yaml +0 -0
  380. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  381. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  382. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/claude_subagent_test.yaml +0 -0
  383. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  384. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/codex_hello_world.yaml +0 -0
  385. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/codex_parallel_commands.yaml +0 -0
  386. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  387. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/codex_string_utils.yaml +0 -0
  388. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/codex_subagent_test.yaml +0 -0
  389. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  390. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/agents/subagent_merge_sort.yaml +0 -0
  391. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
  392. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/anti_cheat_reference/reference/solution.py +0 -0
  393. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/byod_smoke_test.yaml +0 -0
  394. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dataset_example.yaml +0 -0
  395. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/datasets/sentiment.jsonl +0 -0
  396. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/delegate/fizzbuzz_delegate.yaml +0 -0
  397. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/delegate/hello_date_delegate.yaml +0 -0
  398. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  399. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  400. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  401. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  402. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  403. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  404. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
  405. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
  406. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
  407. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/fibonacci_with_template.yaml +0 -0
  408. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/hello_date.yaml +0 -0
  409. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/inline_starter_example.yaml +0 -0
  410. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/internal/session_resumption.yaml +0 -0
  411. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/mock_path_dirs_smoke.yaml +0 -0
  412. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  413. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  414. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
  415. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  416. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  417. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/opencode_smoke_test.yaml +0 -0
  418. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/pi_smoke_test.yaml +0 -0
  419. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  420. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/record_cli_responses.yaml +0 -0
  421. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/run_limits/max_turns_cap.yaml +0 -0
  422. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/run_limits/turn_timeout.yaml +0 -0
  423. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  424. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  425. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  426. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  427. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  428. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  429. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/README.md +0 -0
  430. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  431. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  432. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  433. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  434. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  435. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  436. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  437. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  438. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  439. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  440. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/sentiment_classification.yaml +0 -0
  441. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_agent_judge.yaml +0 -0
  442. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_budget_exceeded.yaml +0 -0
  443. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  444. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_llm_judge.yaml +0 -0
  445. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_negative_path.yaml +0 -0
  446. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_system_one_judge.yaml +0 -0
  447. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_task_timeout.yaml +0 -0
  448. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/smoke_variants.yaml +0 -0
  449. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/test_sandbox.yaml +0 -0
  450. {coder_eval-0.12.13 → coder_eval-0.12.15}/tasks/token_check.yaml +0 -0
  451. {coder_eval-0.12.13 → coder_eval-0.12.15}/templates/byod_smoke_test/Dockerfile +0 -0
  452. {coder_eval-0.12.13 → coder_eval-0.12.15}/templates/fibonacci-starter/README.md +0 -0
  453. {coder_eval-0.12.13 → coder_eval-0.12.15}/templates/fibonacci-starter/src/main.py +0 -0
  454. {coder_eval-0.12.13 → coder_eval-0.12.15}/templates/fibonacci-starter/tests/test_main.py +0 -0
  455. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/__init__.py +0 -0
  456. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_bracket_clock.py +0 -0
  457. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_container_contract.py +0 -0
  458. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/__init__.py +0 -0
  459. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/__init__.py +0 -0
  460. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  461. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
  462. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  463. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  464. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/delegate_fixtures.py +0 -0
  465. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
  466. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
  467. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
  468. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
  469. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
  470. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  471. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  472. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  473. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  474. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  475. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  476. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  477. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  478. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  479. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  480. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  481. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  482. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  483. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  484. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  485. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  486. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  487. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  488. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/delegate_a_tool_call.json +0 -0
  489. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/delegate_b_max_turns_cut.json +0 -0
  490. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/delegate_c_error_frame_crash.json +0 -0
  491. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/delegate_d_orphaned_tool.json +0 -0
  492. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/delegate_e_tool_only_call_crosses_cap.json +0 -0
  493. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/delegate_f_batched_tools_in_sequence.json +0 -0
  494. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
  495. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
  496. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
  497. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
  498. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
  499. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
  500. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
  501. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
  502. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
  503. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
  504. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
  505. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
  506. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
  507. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
  508. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
  509. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
  510. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
  511. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/task.toml +0 -0
  512. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
  513. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
  514. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
  515. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
  516. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
  517. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
  518. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/live_criteria.py +0 -0
  519. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  520. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  521. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  522. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  523. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  524. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/run_full.md +0 -0
  525. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
  526. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_fixtures/timing_union_cases.json +0 -0
  527. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/_path_helpers.py +0 -0
  528. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/conftest.py +0 -0
  529. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/__init__.py +0 -0
  530. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/atif/known_good_trajectory.json +0 -0
  531. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  532. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  533. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/mock_agent.py +0 -0
  534. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/pi_happy_stream.jsonl +0 -0
  535. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
  536. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  537. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  538. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/fixtures/text_stub_agent.py +0 -0
  539. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
  540. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
  541. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
  542. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
  543. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/__init__.py +0 -0
  544. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/action_docs.py +0 -0
  545. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/agent_roster_parity.py +0 -0
  546. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/dead_config_fields.py +0 -0
  547. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/doc_env_parity.py +0 -0
  548. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/doc_examples.py +0 -0
  549. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/doc_indexes.py +0 -0
  550. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/doc_schema_parity.py +0 -0
  551. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/generated.py +0 -0
  552. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/live_verdict_contract.py +0 -0
  553. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/plugin_manifest_parity.py +0 -0
  554. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/plugin_reference.py +0 -0
  555. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/pricing_mirror.py +0 -0
  556. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/prose_budget.py +0 -0
  557. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/pyright_config.py +0 -0
  558. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/__init__.py +0 -0
  559. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/_layers.py +0 -0
  560. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/_model_ctor.py +0 -0
  561. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/base.py +0 -0
  562. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  563. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  564. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  565. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  566. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  567. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  568. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  569. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  570. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  571. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  572. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
  573. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
  574. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
  575. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
  576. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
  577. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
  578. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
  579. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
  580. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
  581. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce051_no_driver_override.py +0 -0
  582. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
  583. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
  584. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
  585. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
  586. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
  587. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
  588. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
  589. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce060_message_id_declared.py +0 -0
  590. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
  591. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
  592. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
  593. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
  594. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_agent_timing_access.py +0 -0
  595. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  596. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  597. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_silent_except.py +0 -0
  598. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  599. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  600. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  601. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  602. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/open_explicit_encoding.py +0 -0
  603. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  604. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/register_criterion_required.py +0 -0
  605. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  606. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  607. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/runner.py +0 -0
  608. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/violation.py +0 -0
  609. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/lint/workflow_outputs.py +0 -0
  610. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_action_inputs.py +0 -0
  611. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_action_version_pin.py +0 -0
  612. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent.py +0 -0
  613. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_config_no_timing_fields.py +0 -0
  614. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_config_optional_type.py +0 -0
  615. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_config_registry_dispatch.py +0 -0
  616. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_config_sdk_decoupling.py +0 -0
  617. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_context_window.py +0 -0
  618. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_golden_master.py +0 -0
  619. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_judge_criterion.py +0 -0
  620. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_telemetry.py +0 -0
  621. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_telemetry_advanced.py +0 -0
  622. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agent_timeout.py +0 -0
  623. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_agentless.py +0 -0
  624. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_antigravity_agent.py +0 -0
  625. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_atif_emit.py +0 -0
  626. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_atif_hydrate.py +0 -0
  627. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_atif_models.py +0 -0
  628. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_byoa_plugin.py +0 -0
  629. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_byoa_plugin_live.py +0 -0
  630. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_byod_feature.py +0 -0
  631. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_check_all_async.py +0 -0
  632. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_checker_logging.py +0 -0
  633. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_classification_match.py +0 -0
  634. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_claude_settings_enforcement_live.py +0 -0
  635. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cleanup_preservation_guard.py +0 -0
  636. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_backend_flag.py +0 -0
  637. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_called_criterion.py +0 -0
  638. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_empty_glob.py +0 -0
  639. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_match_parity.py +0 -0
  640. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_sdk_options.py +0 -0
  641. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_set_overrides.py +0 -0
  642. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_telemetry.py +0 -0
  643. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cli_type_flag.py +0 -0
  644. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_code_review_bugs.py +0 -0
  645. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_codex_agent_live.py +0 -0
  646. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_codex_token_mapping.py +0 -0
  647. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_command_executed.py +0 -0
  648. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_command_statistics.py +0 -0
  649. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_command_telemetry_result_data.py +0 -0
  650. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_commands_efficiency.py +0 -0
  651. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_config_lineage.py +0 -0
  652. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_config_merge_engine.py +0 -0
  653. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_config_precedence.py +0 -0
  654. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_container_context.py +0 -0
  655. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_continuous_scoring.py +0 -0
  656. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_cost_accounting_paths.py +0 -0
  657. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_criterion_result_round_trip.py +0 -0
  658. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_custom_lint.py +0 -0
  659. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_dataset_expansion.py +0 -0
  660. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_debug_logging.py +0 -0
  661. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_delegate_agent.py +0 -0
  662. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_delegate_agent_config.py +0 -0
  663. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_delegate_agent_live.py +0 -0
  664. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_delegate_agent_registration.py +0 -0
  665. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_detached_grading_boundaries.py +0 -0
  666. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_detached_grading_guards.py +0 -0
  667. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_build_failure.py +0 -0
  668. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_litellm_env.py +0 -0
  669. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_runner_container_death.py +0 -0
  670. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_runner_stream_limit.py +0 -0
  671. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_wildcard_env.py +0 -0
  672. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_docker_workdir_live.py +0 -0
  673. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_driver_resolver.py +0 -0
  674. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_durations.py +0 -0
  675. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_early_stop.py +0 -0
  676. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_error_handling.py +0 -0
  677. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_eval_material.py +0 -0
  678. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_evaluate_command.py +0 -0
  679. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_evaluate_format_harbor.py +0 -0
  680. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_evaluate_target.py +0 -0
  681. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_evaluator.py +0 -0
  682. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_event_collector.py +0 -0
  683. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_execute_command.py +0 -0
  684. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_execute_evaluate_loop.py +0 -0
  685. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_execute_format_harbor.py +0 -0
  686. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_experiment_cli.py +0 -0
  687. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_experiment_loader.py +0 -0
  688. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_experiment_models.py +0 -0
  689. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_experiment_reports.py +0 -0
  690. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_experiment_resolver.py +0 -0
  691. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_experiment_runner.py +0 -0
  692. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_file_check.py +0 -0
  693. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_file_contains_scoring.py +0 -0
  694. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_formatting.py +0 -0
  695. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_git_clone_failure.py +0 -0
  696. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_glob_paths_in_file_criteria.py +0 -0
  697. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_agent.py +0 -0
  698. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_e2e_fixtures.py +0 -0
  699. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_experiment_packager.py +0 -0
  700. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_export_golden.py +0 -0
  701. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_packager.py +0 -0
  702. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_portability.py +0 -0
  703. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_harbor_reward.py +0 -0
  704. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_heartbeat_watchdog.py +0 -0
  705. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_ignore_patterns_negation.py +0 -0
  706. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_image_skew_refusal.py +0 -0
  707. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_integration.py +0 -0
  708. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_json_check.py +0 -0
  709. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_anthropic.py +0 -0
  710. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_bedrock.py +0 -0
  711. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_burn_in_live.py +0 -0
  712. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_context_builder.py +0 -0
  713. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_litellm.py +0 -0
  714. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_models.py +0 -0
  715. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_persistence.py +0 -0
  716. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_judge_system_one.py +0 -0
  717. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_lint_no_top_level_run_limits.py +0 -0
  718. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_lint_runner.py +0 -0
  719. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_litellm_config.py +0 -0
  720. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_litellm_cost.py +0 -0
  721. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_litellm_cost_logger.py +0 -0
  722. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_litellm_judge_live.py +0 -0
  723. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_litellm_route.py +0 -0
  724. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_llm_judge_criterion.py +0 -0
  725. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_log_tail_buffer.py +0 -0
  726. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_logging.py +0 -0
  727. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_logging_isolation.py +0 -0
  728. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_merge_characterization.py +0 -0
  729. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_merge_strategy_annotations.py +0 -0
  730. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_merge_unification.py +0 -0
  731. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_models.py +0 -0
  732. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_mutations.py +0 -0
  733. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_new_criteria.py +0 -0
  734. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_node_env_config.py +0 -0
  735. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_opencode_agent.py +0 -0
  736. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_optional_dependencies.py +0 -0
  737. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_orchestrator.py +0 -0
  738. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_orchestrator_error_log_tail.py +0 -0
  739. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_orchestrator_telemetry.py +0 -0
  740. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_overrides_engine.py +0 -0
  741. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_parallel.py +0 -0
  742. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_path_utils.py +0 -0
  743. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pi_agent.py +0 -0
  744. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pi_agent_config.py +0 -0
  745. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pi_smoke_task.py +0 -0
  746. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_plan_command.py +0 -0
  747. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_plugins.py +0 -0
  748. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_post_run.py +0 -0
  749. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pr_review_workflow.py +0 -0
  750. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pre_run.py +0 -0
  751. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_preservation_mode.py +0 -0
  752. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pricing_mirror.py +0 -0
  753. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_pricing_registry.py +0 -0
  754. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_prose_budget.py +0 -0
  755. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_prose_budget_commands.py +0 -0
  756. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reference_comparison_scoring.py +0 -0
  757. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reference_evaluator.py +0 -0
  758. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reference_missing_file.py +0 -0
  759. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reference_models.py +0 -0
  760. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reference_permissions.py +0 -0
  761. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_registry.py +0 -0
  762. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_regrade.py +0 -0
  763. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_release_notes.py +0 -0
  764. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_replicate_stats.py +0 -0
  765. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_report_command.py +0 -0
  766. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reports.py +0 -0
  767. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reports_html.py +0 -0
  768. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reports_junit.py +0 -0
  769. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_reports_package.py +0 -0
  770. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_resolve_task_files.py +0 -0
  771. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_result_metrics.py +0 -0
  772. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_resume.py +0 -0
  773. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_retry_logic_comprehensive.py +0 -0
  774. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_route_seam_exhaustiveness.py +0 -0
  775. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_routing.py +0 -0
  776. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_command_junit.py +0 -0
  777. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_command_stdout.py +0 -0
  778. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_helpers.py +0 -0
  779. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_limits_models.py +0 -0
  780. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_limits_orchestrator.py +0 -0
  781. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_limits_resolver.py +0 -0
  782. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_metrics.py +0 -0
  783. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_record.py +0 -0
  784. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_summary_rebuild.py +0 -0
  785. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_run_task_internal.py +0 -0
  786. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_runtime_tool_versions.py +0 -0
  787. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox.py +0 -0
  788. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_adopt.py +0 -0
  789. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_layer_builder.py +0 -0
  790. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_optional.py +0 -0
  791. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_record_cli.py +0 -0
  792. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_security.py +0 -0
  793. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_symlink_preservation.py +0 -0
  794. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_templates.py +0 -0
  795. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sandbox_venv_live.py +0 -0
  796. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_scorers.py +0 -0
  797. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_scoring_quality.py +0 -0
  798. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sdk_option_classification.py +0 -0
  799. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_seed_from_prior_result.py +0 -0
  800. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_simulation_config.py +0 -0
  801. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_simulation_integration.py +0 -0
  802. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_simulation_termination.py +0 -0
  803. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_simulation_trials.py +0 -0
  804. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_stats.py +0 -0
  805. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_stats_nonfinite.py +0 -0
  806. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_agent_integration.py +0 -0
  807. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_batch.py +0 -0
  808. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_callbacks.py +0 -0
  809. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_cli.py +0 -0
  810. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_events.py +0 -0
  811. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_orchestrator.py +0 -0
  812. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_renderers.py +0 -0
  813. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_streaming_wire.py +0 -0
  814. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_sub_agent_runner.py +0 -0
  815. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_success_criterion_union.py +0 -0
  816. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_suite_rollup.py +0 -0
  817. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_summaries.py +0 -0
  818. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_system_one_judge.py +0 -0
  819. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_system_one_judge_live.py +0 -0
  820. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_tags.py +0 -0
  821. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_task_definition_unknown_fields.py +0 -0
  822. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_teardown_interrupt.py +0 -0
  823. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_telemetry.py +0 -0
  824. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_template_env_expansion.py +0 -0
  825. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_threshold_enforcement.py +0 -0
  826. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timeout_batch.py +0 -0
  827. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timeout_categorization.py +0 -0
  828. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timeout_exceptions.py +0 -0
  829. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timeout_models.py +0 -0
  830. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timeout_orchestrator.py +0 -0
  831. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timing_close_window.py +0 -0
  832. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timing_identity_contract.py +0 -0
  833. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_timing_union_parity.py +0 -0
  834. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_token_usage.py +0 -0
  835. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_uipath_eval.py +0 -0
  836. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_ungraded_reporting.py +0 -0
  837. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_user_simulator.py +0 -0
  838. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_utils.py +0 -0
  839. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_utterance_extraction.py +0 -0
  840. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_variant_prompt_file.py +0 -0
  841. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_verdict_tool.py +0 -0
  842. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_verify_published_workflow.py +0 -0
  843. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_watchdog.py +0 -0
  844. {coder_eval-0.12.13 → coder_eval-0.12.15}/tests/test_yaml_migration.py +0 -0
@@ -373,7 +373,8 @@ Codex runs every sub-agent on its own child thread whose events never reach the
373
373
  stream, and that thread persists with *Limited* rollout policy, which drops
374
374
  `commandExecution` events. So neither the live stream nor `thread.read` surfaces the
375
375
  sub-agent's shell commands, and `thread/tokenUsage/updated` only ever reports the PARENT
376
- thread.
376
+ thread. (The commands a code-mode script runs are the exception: they persist as
377
+ `item_completed` records, below.)
377
378
 
378
379
  But the child rollout ALWAYS persists the raw `function_call` / `local_shell_call` /
379
380
  `custom_tool_call` ResponseItems and a `token_count` event with the child's cumulative
@@ -395,6 +396,72 @@ The rollout file can lag the parent's `turn/completed` by a beat (the recorder f
395
396
  a background task), so the lookup polls ~2 s — but bails immediately when
396
397
  `<home>/sessions` does not exist at all, since no flush can ever land there.
397
398
 
399
+ Codex multi-agent v2 moved the spawn off the collab item. A v1 spawn is a
400
+ `collabAgentToolCall` that names the child in `receiver_thread_ids`; a v2 spawn is a
401
+ `subAgentActivity` item with `kind: started`, `id` = the spawn call id and
402
+ `agent_thread_id` = the child, and its `wait` names no child at all. `_tool_item_root`
403
+ maps a `started` item onto the v1 spawn shape where items enter the turn state, so one
404
+ path registers both, and registers a child once: a repeated spawn item would otherwise
405
+ mine the rollout twice and double the child's rows and tokens. The other kinds
406
+ (`completed`, `interrupted`, `interacted`) are notices about a spawned child, dropped
407
+ there, so they neither become rows nor open a parent model call.
408
+
409
+ A child's tool calls come in two shapes. A direct call is a function call, and its output
410
+ header carries the exit code. A code-mode call is a custom tool `exec` whose input is a
411
+ JavaScript script, often several shell calls in a `Promise.all`. Its output tells only
412
+ whether the SCRIPT ran to the end: `tools.exec_command` hands a non-zero exit code back to
413
+ the script and does not throw, so `Script completed` is not a command result. The script
414
+ source is not parsed — a command built from a variable or a loop defeats any parser, and
415
+ the source holds no exit code. Instead, while a script runs, Codex writes an
416
+ `item_completed` record per shell command (`CommandExecution`: argv, exit code, output)
417
+ and per patch (`FileChange`), and those records ARE the script's rows, each with its own
418
+ result. A script that left no record stays one `exec` row, not a `Bash` row: its
419
+ JavaScript is not a shell command. The argv's login-shell wrapper (`/bin/zsh -lc <cmd>`)
420
+ is stripped, so a record's row reads like a direct call's.
421
+
422
+ A record names no script, so it goes to the newest script whose source holds its
423
+ command. A command can outlive its script: `tools.exec_command` returns at the call's own
424
+ `yield_time_ms` with a session id, the script ends, and a later script polls the command
425
+ with `tools.write_stdin`. The text match then gives the record to the script that started
426
+ the command, so that script is not also left as an `exec` row that repeats the command.
427
+ The match decodes the source's string escapes and then ignores backslashes. A multi-line
428
+ command is a `"a\nb"` literal in the source but holds real newlines in its record; in a
429
+ recorded 0.147 TUI thread, 3 of 10 such commands outlived their script and, undecoded,
430
+ went to a later one. The source also escapes the backslashes and double quotes that the
431
+ command holds; without ignoring backslashes, no record of a real 0.156.1 Windows e2e child
432
+ matched. A record that matches no source goes to the newest script: dropping it
433
+ would lose a command built from a variable, the miss this recovery exists to prevent,
434
+ while a wrong guess only moves the row to another generation. A record whose id is a
435
+ direct call's is dropped, so a direct call is never counted twice. Seen on real CLI
436
+ 0.156.1 runs, v1 and v2 children alike: the records sit between the script call and its
437
+ output, before the generation's `token_count`, and a 45-second command was polled as
438
+ described. Headless threads through 0.147 (the 0.144 SDK, 0.147 `codex exec`) write no
439
+ `CommandExecution` records, so there a code-mode script stays one `exec` row and its
440
+ commands are not recoverable. The 0.147 TUI and 0.155.1 (the SDK floor) write them, as do
441
+ 0.156.1 and 0.162, on Windows too.
442
+
443
+ A call with no result is `unknown`, never a success, so `require_success` does not credit
444
+ it: an interrupt cut it off, it still ran after its yield time, or `wait` stopped it. The
445
+ abort output is matched whole, so a command that prints `aborted by user` keeps its exit
446
+ code. The `wait` or `write_stdin` call that later returns the result is a row of its own
447
+ and does not change the yielded call: the records already carry each command's exit code,
448
+ so only a yielded script that ran no command, or a direct `exec_command` that a direct
449
+ `write_stdin` polls (no recorded run has one), stays `unknown`. A resuming call stays a
450
+ row because a generation that only resumed would otherwise hold no block, and the recovery
451
+ drops such a generation with its tokens; so each poll is one row, where the parent stream
452
+ records a polled command once. The abort forms come from `abort_message` in
453
+ `core/src/tools/parallel.rs` (only `exec_command` gets the wall time). A script yields
454
+ after `DEFAULT_EXEC_YIELD_TIME_MS` (10 s); about 8% of the scripts in recorded 0.144 to
455
+ 0.147 threads yielded.
456
+
457
+ A spawn with `fork_turns` copies the parent's history, tool calls included, into the head
458
+ of the child's rollout. In a forked rollout (`session_meta` carries `forked_from_id`),
459
+ parsing starts at the first `thread_settings_applied` with the child's thread id, so the
460
+ parent's commands are not credited to the child. A non-forked rollout is parsed whole:
461
+ that event also appears mid-thread on a settings change. A fork without that event is
462
+ also parsed whole, with a warning, so a format change that would credit the parent's
463
+ commands to the child shows in the logs.
464
+
398
465
  The thread-cumulative baseline is the other half. `ThreadTokenUsage.total` counts the whole
399
466
  THREAD, and the Codex thread is created once per task and reused, so by turn N it still
400
467
  carries turns 1..N-1. The orchestrator sums per-turn usages, so handing it the cumulative
@@ -717,8 +784,15 @@ being hardcoded, so a plugin that relocates its skills keeps working.
717
784
  skips external *plugins*, not configured skill paths. An inherited value is appended to
718
785
  rather than clobbered, since the host may legitimately configure OpenCode the same way.
719
786
  - **Pi** passes each as `--skill <dir>`.
720
- - **Codex** symlinks (or copies, on Windows) each skill dir into `.agents/skills/`, which
721
- the CLI auto-discovers from the working directory upward.
787
+ - **Codex** copies each skill dir into `.agents/skills/`, which the CLI auto-discovers from
788
+ the working directory upward. Copies, not symlinks, for two reasons that compound. Codex
789
+ resolves a symlinked skill to its source, finds the plugin manifest there and lists the
790
+ skill as `<plugin>:<skill>`; models sometimes turn that into the nonexistent path
791
+ `.agents/skills/<plugin>/<skill>/SKILL.md`. The search that follows (`rg --files`,
792
+ `find`) skips symlinks and returns nothing, so the agent works without the skill. The
793
+ copies are made before each turn and removed after it, the same concern that kept
794
+ OpenCode out of the sandbox: criteria and run artifacts must see only what the agent
795
+ left. Skill dirs the workspace already has are never touched.
722
796
  - **Antigravity** takes search paths natively via `skills_paths` — but those only drive
723
797
  DISCOVERY. The file-tool allowlist is `workspaces` alone, so the skill roots must appear
724
798
  there too, or the agent discovers a skill and every read of its `SKILL.md` is denied as
@@ -2,6 +2,59 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.12.15 (2026-10-21)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **codex**: Match a multi-line command record to its exec script
10
+ ([#227](https://github.com/UiPath/coder_eval/pull/227),
11
+ [`b3242f9`](https://github.com/UiPath/coder_eval/commit/b3242f97540ac743c8c159b479a77bcac05809a7))
12
+
13
+ - **codex**: Read a sub-agent's commands from its rollout records
14
+ ([#227](https://github.com/UiPath/coder_eval/pull/227),
15
+ [`b3242f9`](https://github.com/UiPath/coder_eval/commit/b3242f97540ac743c8c159b479a77bcac05809a7))
16
+
17
+ - **codex**: Recover v2 sub-agent tool calls ([#227](https://github.com/UiPath/coder_eval/pull/227),
18
+ [`b3242f9`](https://github.com/UiPath/coder_eval/commit/b3242f97540ac743c8c159b479a77bcac05809a7))
19
+
20
+ - **deps**: Bump aiohttp 3.14.3 -> 3.14.4 for CVE-2026-111063 and CVE-2026-111064
21
+ ([#227](https://github.com/UiPath/coder_eval/pull/227),
22
+ [`b3242f9`](https://github.com/UiPath/coder_eval/commit/b3242f97540ac743c8c159b479a77bcac05809a7))
23
+
24
+ - **deps**: Bump certifi and virtualenv to clear pip-audit advisories
25
+ ([#232](https://github.com/UiPath/coder_eval/pull/232),
26
+ [`7628641`](https://github.com/UiPath/coder_eval/commit/7628641e42a743dc85dc8299178ea87297bb07e2))
27
+
28
+ - **deps**: Bump mcp 1.28.1 -> 1.30.0 for CVE-2026-59951
29
+ ([#228](https://github.com/UiPath/coder_eval/pull/228),
30
+ [`ea0e436`](https://github.com/UiPath/coder_eval/commit/ea0e436ec736f5bece0ed460f7f4c854de106d96))
31
+
32
+ - **deps**: Bump next to 15.5.28 (Next.js security update, Oct 14 2026)
33
+ ([#226](https://github.com/UiPath/coder_eval/pull/226),
34
+ [`872f857`](https://github.com/UiPath/coder_eval/commit/872f85764ad4f4d07c9b0659ee17941df0a3b9c9))
35
+
36
+ - **deps**: Bump next to patched release (Next.js security update, Oct 14 2026)
37
+ ([#226](https://github.com/UiPath/coder_eval/pull/226),
38
+ [`872f857`](https://github.com/UiPath/coder_eval/commit/872f85764ad4f4d07c9b0659ee17941df0a3b9c9))
39
+
40
+ - **deps**: Pin evalboard sharp to 0.35.5 and clear prod audit findings
41
+ ([#226](https://github.com/UiPath/coder_eval/pull/226),
42
+ [`872f857`](https://github.com/UiPath/coder_eval/commit/872f85764ad4f4d07c9b0659ee17941df0a3b9c9))
43
+
44
+ - **docker**: Pin uv in the agent image — 0.12.11+ copies cross-fs ~40x slower
45
+ ([#209](https://github.com/UiPath/coder_eval/pull/209),
46
+ [`634005d`](https://github.com/UiPath/coder_eval/commit/634005d2f0ee1848d96d08f080e79cf2bd43d56e))
47
+
48
+
49
+ ## v0.12.14 (2026-10-15)
50
+
51
+ ### Bug Fixes
52
+
53
+ - **codex**: Copy skills into .agents/skills instead of symlinking
54
+ ([#225](https://github.com/UiPath/coder_eval/pull/225),
55
+ [`1895a2c`](https://github.com/UiPath/coder_eval/commit/1895a2cfb0c2f0d8a171b2e445b0b034440209b2))
56
+
57
+
5
58
  ## v0.12.13 (2026-10-13)
6
59
 
7
60
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: coder-eval
3
- Version: 0.12.13
3
+ Version: 0.12.15
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
@@ -49,7 +49,7 @@ Requires-Dist: openai-codex>=0.155.1; extra == 'codex'
49
49
  Provides-Extra: dev
50
50
  Requires-Dist: bandit[toml]>=1.9.4; extra == 'dev'
51
51
  Requires-Dist: defusedxml>=0.7.1; extra == 'dev'
52
- Requires-Dist: mcp>=1.28.1; extra == 'dev'
52
+ Requires-Dist: mcp>=1.30.0; extra == 'dev'
53
53
  Requires-Dist: pip-audit>=2.10.0; extra == 'dev'
54
54
  Requires-Dist: pre-commit>=4.5.1; extra == 'dev'
55
55
  Requires-Dist: pyright>=1.1.408; extra == 'dev'
@@ -25,7 +25,7 @@ inputs:
25
25
  version:
26
26
  description: coder-eval version to install from PyPI, or "local" to install from the action checkout
27
27
  required: false
28
- default: "0.12.13" # <-- kept in sync with releases by release.yml
28
+ default: "0.12.15" # <-- 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
@@ -42,8 +42,18 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
42
42
  ARG PI_VERSION=0.87.1
43
43
  RUN npm install -g @earendil-works/pi-coding-agent@${PI_VERSION}
44
44
 
45
- # uv: matches host sandbox.py's `uv venv` + `uv pip install` fast path
46
- RUN curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR=/usr/local/bin sh
45
+ # uv: matches host sandbox.py's `uv venv` + `uv pip install` fast path.
46
+ # Pinned for the same reason as the CLIs above: agents run `uv` themselves
47
+ # (coded-agent / function tasks build a venv in the workspace), so its speed is
48
+ # part of every such task's wall clock. The workspace is a bind mount and uv's
49
+ # cache is not, so uv cannot hardlink and copies every file instead. From 0.12.11
50
+ # that cross-filesystem copy is ~40x slower (146-package `uipath-langchain`
51
+ # install: 0.3s on 0.12.10, 10-14s on 0.12.11/.12/.19/.21; 60-130s on the CI
52
+ # host), and the unpinned install picked it up silently in the 0.12.1 image
53
+ # (2026-09-12, uv 0.12.12). Bump deliberately, after timing an install into a
54
+ # bind-mounted dir.
55
+ ARG UV_VERSION=0.12.10
56
+ RUN curl -LsSf https://astral.sh/uv/${UV_VERSION}/install.sh | env UV_INSTALL_DIR=/usr/local/bin sh
47
57
 
48
58
  WORKDIR /opt/coder_eval
49
59
 
@@ -1345,7 +1345,7 @@ Like `skill_triggered`, this criterion emits a `ClassificationCriterionResult`,
1345
1345
 
1346
1346
  ### `skill_triggered`
1347
1347
 
1348
- Binary classifier: **did the agent engage the target skill during the run?** Agent-agnostic — scans the run's `turn_records` for either signal: Claude's explicit `Skill` tool call whose `skill` parameter matches `skill_name` (namespace prefixes like `plugin:skill` are stripped, so `skill_name: uipath-agents` matches `Skill(skill="uipath-coded-agents:uipath-agents")`), or — for an agent with no `Skill` tool, e.g. Codex — a command that reads the skill's files off disk (a parameter contains `skills/<skill_name>/`, matching both the repo path and the `.agents/skills/` symlink).
1348
+ Binary classifier: **did the agent engage the target skill during the run?** Agent-agnostic — scans the run's `turn_records` for either signal: Claude's explicit `Skill` tool call whose `skill` parameter matches `skill_name` (namespace prefixes like `plugin:skill` are stripped, so `skill_name: uipath-agents` matches `Skill(skill="uipath-coded-agents:uipath-agents")`), or — for an agent with no `Skill` tool, e.g. Codex — a command that reads the skill's files off disk (a parameter contains `skills/<skill_name>/`, matching both the repo path and the `.agents/skills/` copy).
1349
1349
 
1350
1350
  Observed label is `"yes"` when either signal is found, else `"no"`. Expected label is `"yes"` iff `expected_skill == skill_name`. **Binary scoring:** `1.0` when observed matches expected, else `0.0`.
1351
1351
 
@@ -127,7 +127,7 @@ Antigravity supports [Agent Skills](https://agentskills.io/specification)
127
127
  2. the runtime plugin directory passed to `start()`.
128
128
 
129
129
  For each source, the harness is handed whichever of `<source>/skills` or `<source>`
130
- directly contains subdirectories with a `SKILL.md`. Unlike Codex — which symlinks
130
+ directly contains subdirectories with a `SKILL.md`. Unlike Codex — which copies
131
131
  skills into `.agents/skills/` — Antigravity is given the search-path roots directly
132
132
  via the SDK's `skills_paths`, and those roots are also added to the harness
133
133
  `workspaces` allowlist (otherwise the agent would find a skill but be denied the
@@ -115,7 +115,7 @@ CodexAgent supports SKILL.md files following the [Agent Skills open standard](ht
115
115
  1. **config.plugins** - Local plugins with `type: local` and `path` pointing to a skills directory
116
116
  2. **plugin_tools_dir** parameter - Runtime plugin directory passed to `start()`
117
117
 
118
- Skills are symlinked (or copied) to `.agents/skills/` where the Codex CLI auto-discovers them. Environment variables in plugin paths (`$VAR`, `${VAR}`) are expanded at runtime.
118
+ Skills are copied to `.agents/skills/` for each turn, where the Codex CLI auto-discovers them, and removed when the turn ends. Environment variables in plugin paths (`$VAR`, `${VAR}`) are expanded at runtime.
119
119
 
120
120
  Example with environment variable:
121
121
  ```yaml
@@ -206,8 +206,33 @@ The agent sets up SKILL.md files (Agent Skills open standard) in `.agents/skills
206
206
  1. Scans `config.plugins` for local plugins with `path` field
207
207
  2. Checks `plugin_tools_dir` parameter passed to `start()`
208
208
  3. Expands environment variables in paths (`$PLUGIN_PATH`, `${PLUGIN_PATH}`)
209
- 4. Symlinks skill directories (falls back to copying if symlink fails)
209
+ 4. Copies each skill directory into `.agents/skills/` before every turn (real files, not symlinks), skipping any skill dir the workspace already has
210
210
  5. Codex CLI auto-discovers skills in `.agents/skills/`
211
+ 6. Removes the copies when the turn ends, so criteria and run artifacts never see them
212
+
213
+ ### Sub-agents
214
+
215
+ A sub-agent runs on its own Codex thread, and its tool calls never reach the parent's
216
+ stream. After each turn the agent reads the child's rollout file under
217
+ `$CODEX_HOME/sessions` and records the child's calls as telemetry, nested under the
218
+ spawning `Agent` row. Spawns from multi-agent v1 (`spawnAgent`) and v2
219
+ (`subAgentActivity`) are both recovered.
220
+
221
+ - Each shell command the child ran is one `Bash` row with its own exit code, also when it
222
+ runs longer than its script. A code-mode script that runs several commands gives one row
223
+ per command.
224
+ - A non-zero exit is `result_status: error`. A call that Codex reports with no result is
225
+ `result_status: unknown`: an interrupt stopped it, or it still ran when its tool call
226
+ returned. `command_executed` with `require_success: true` counts neither. A later `wait`
227
+ or `write_stdin` call is a row of its own and does not change that status.
228
+ - Each file the child patched is a `Write` row.
229
+ - A code-mode `exec` script that ran no command and changed no file (for example, one
230
+ that only reads the tool list) is one `exec` row, not a `Bash` row.
231
+ - Headless Codex through 0.147 writes no command records; 0.155.1 (the SDK floor),
232
+ 0.156.1 and 0.162 do. On a CLI without records a code-mode script is one `exec`
233
+ row, and the commands inside it are not recovered.
234
+ - A multi-agent v2 spawn names no model, so the child's generations are priced at the
235
+ parent's model.
211
236
 
212
237
  ### Async Integration
213
238
 
@@ -531,6 +531,18 @@ what that cell means: measured, but not placeable. On historical codex runs, thi
531
531
  moves ~8 h in aggregate out of Tool exec and into Unaccounted. No built-in agent
532
532
  writes this shape now.
533
533
 
534
+ ## Sub-agent tool calls
535
+
536
+ Only claude-code and codex nest a sub-agent's work under its spawn row
537
+ (`parent_tool_use_id`); the other harnesses record no sub-agent path.
538
+
539
+ | | claude-code | codex |
540
+ |---|---|---|
541
+ | spawn row | `Agent`, with the brief in `description` / `prompt` | `Agent` (`operation: spawnagent`), from a v1 `collabAgentToolCall` or a v2 `subAgentActivity` `started` item; on v2, no prompt (the spawn message is encrypted) and no model |
542
+ | the child's generations | nested live, with the child's real model | nested after the turn, rebuilt from the child's rollout under `$CODEX_HOME/sessions`, priced at the parent's model on v2 |
543
+ | the child's shell commands | one `Bash` row per call, status and `duration_ms` measured live | one `Bash` row per command, with its exit code, rebuilt from the child's rollout (CLI 0.156.1 and later); no `duration_ms`. See [Codex § Sub-agents](CODEX.md#sub-agents) |
544
+ | when the rows exist | during the turn, so live criteria see them | after the turn, so live criteria and `stop_early` do not see them |
545
+
534
546
  ## `max_turns` counts model API calls on every harness
535
547
 
536
548
  One turn is one main-thread model API call, the unit Claude Code's `--max-turns`
@@ -684,7 +696,7 @@ This field breaks it silently.
684
696
  claude-code hands the value to the SDK as a *plugin directory*, and a plugin's skills
685
697
  live at `<plugin>/skills/<name>/SKILL.md`. Point it at the directory that directly
686
698
  parents the skill directories and no skill loads. Codex
687
- (`codex_agent._setup_skills`) and Antigravity (`antigravity_agent._resolve_skills_paths`)
699
+ (`codex_agent._collect_skills`) and Antigravity (`antigravity_agent._resolve_skills_paths`)
688
700
  both scan **both** layouts and take whichever actually holds a `<skill>/SKILL.md`.
689
701
 
690
702
  † Pi uses the shared `_plugin_skill_dirs` resolver, whose bare-dir fallback resolves a
@@ -12,7 +12,7 @@
12
12
  "verify": "tsc --noEmit && vitest run && next build"
13
13
  },
14
14
  "dependencies": {
15
- "next": "^15.5.20",
15
+ "next": "^15.5.28",
16
16
  "react": "^19.0.0",
17
17
  "react-dom": "^19.0.0",
18
18
  "react-markdown": "^10.1.0",
@@ -44,7 +44,10 @@
44
44
  "postcss": "^8.5.10",
45
45
  "fast-xml-builder": "^1.1.7",
46
46
  "@babel/core": "^7.29.6",
47
- "uuid": "^11.1.1"
47
+ "uuid": "^11.1.1",
48
+ "sharp": "^0.35.5",
49
+ "nanoid": "^3.3.18",
50
+ "source-map-js": "^1.2.2"
48
51
  }
49
52
  }
50
53
  }