coder-eval 0.12.10__tar.gz → 0.12.12__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 (841) hide show
  1. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/agents.md +160 -105
  2. {coder_eval-0.12.10 → coder_eval-0.12.12}/.env.example +18 -21
  3. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/pr-checks.yml +21 -24
  4. {coder_eval-0.12.10 → coder_eval-0.12.12}/CHANGELOG.md +180 -0
  5. {coder_eval-0.12.10 → coder_eval-0.12.12}/PKG-INFO +1 -1
  6. {coder_eval-0.12.10 → coder_eval-0.12.12}/action.yml +1 -1
  7. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/REPORT_SCHEMA.md +27 -3
  8. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/TASK_DEFINITION_GUIDE.md +15 -10
  9. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/USER_GUIDE.md +1 -1
  10. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/agents/ANTIGRAVITY.md +5 -3
  11. coder_eval-0.12.12/docs/agents/DELEGATE.md +210 -0
  12. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/agents/HARNESS_PARITY.md +20 -24
  13. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/default.yaml +2 -1
  14. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/.claude-plugin/plugin.json +1 -1
  15. {coder_eval-0.12.10 → coder_eval-0.12.12}/pyproject.toml +2 -2
  16. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/__init__.py +1 -1
  17. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/__init__.py +1 -1
  18. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/antigravity_agent.py +42 -30
  19. coder_eval-0.12.12/src/coder_eval/agents/delegate/package.json +9 -0
  20. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/delegate_agent.py +486 -254
  21. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/categorization.py +17 -6
  22. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/agent_config.py +27 -11
  23. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/results.py +4 -2
  24. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/overrides.py +18 -4
  25. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/reports/html.py +24 -3
  26. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/reports/markdown.py +53 -7
  27. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/result_metrics.py +24 -0
  28. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/run_record.py +7 -1
  29. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/delegate/hello_date_delegate.yaml +1 -1
  30. coder_eval-0.12.12/tests/_fixtures/golden_streams/delegate_fixtures.py +274 -0
  31. coder_eval-0.12.12/tests/_fixtures/golden_streams/expected/delegate_a_tool_call.json +101 -0
  32. coder_eval-0.12.12/tests/_fixtures/golden_streams/expected/delegate_b_max_turns_cut.json +112 -0
  33. coder_eval-0.12.12/tests/_fixtures/golden_streams/expected/delegate_c_error_frame_crash.json +92 -0
  34. coder_eval-0.12.12/tests/_fixtures/golden_streams/expected/delegate_d_orphaned_tool.json +92 -0
  35. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/run_full.md +10 -9
  36. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/run_minimal.md +2 -2
  37. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_golden_master.py +22 -4
  38. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_antigravity_agent.py +86 -30
  39. coder_eval-0.12.12/tests/test_delegate_agent.py +1123 -0
  40. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_delegate_agent_config.py +16 -4
  41. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_delegate_agent_live.py +18 -16
  42. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_merge_characterization.py +1 -1
  43. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_overrides_engine.py +32 -2
  44. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reports.py +65 -4
  45. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_retry_logic_comprehensive.py +16 -0
  46. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_record.py +30 -0
  47. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timing_identity_contract.py +5 -3
  48. {coder_eval-0.12.10 → coder_eval-0.12.12}/uv.lock +115 -78
  49. coder_eval-0.12.10/docs/agents/DELEGATE.md +0 -192
  50. coder_eval-0.12.10/src/coder_eval/agents/delegate/delegate_host.mjs +0 -175
  51. coder_eval-0.12.10/src/coder_eval/agents/delegate/package.json +0 -9
  52. coder_eval-0.12.10/tests/test_delegate_agent.py +0 -651
  53. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/commands/coder-eval-code-review-full.md +0 -0
  54. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  55. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/commands/coder-eval-code-review.md +0 -0
  56. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/commands/coder-eval-create-plan.md +0 -0
  57. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/commands/coder-eval-implement-plan.md +0 -0
  58. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/commands/coder-eval-review.md +0 -0
  59. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/harness-candidates.md +0 -0
  60. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/README.md +0 -0
  61. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/contracts.md +0 -0
  62. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/isolation.md +0 -0
  63. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/lint-rules.md +0 -0
  64. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/orchestration.md +0 -0
  65. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/permissions.md +0 -0
  66. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/persistence.md +0 -0
  67. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/reporting.md +0 -0
  68. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/notes/timing.md +0 -0
  69. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/shared/axes.md +0 -0
  70. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/shared/multi-model-review.md +0 -0
  71. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/shared/review-rubric.md +0 -0
  72. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/shared/run-layout.md +0 -0
  73. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/workflows/cr-axis.js +0 -0
  74. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude/workflows/cr-parent.js +0 -0
  75. {coder_eval-0.12.10 → coder_eval-0.12.12}/.claude-plugin/marketplace.json +0 -0
  76. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/CODEOWNERS +0 -0
  77. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
  78. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  79. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  80. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/actionlint.yaml +0 -0
  81. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/code_review.md +0 -0
  82. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/dependabot.yml +0 -0
  83. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/pages-stub/index.html +0 -0
  84. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/scripts/diagnose_delegate_token_claims.py +0 -0
  85. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/scripts/harbor_e2e.py +0 -0
  86. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/scripts/release_notes.py +0 -0
  87. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/claude-pr-review.yml +0 -0
  88. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/codeql.yml +0 -0
  89. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/conventional-commits.yml +0 -0
  90. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/docker-publish.yml +0 -0
  91. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/docs.yml +0 -0
  92. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/harbor-e2e.yml +0 -0
  93. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/publish-testpypi.yml +0 -0
  94. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/release.yml +0 -0
  95. {coder_eval-0.12.10 → coder_eval-0.12.12}/.github/workflows/verify-published-action.yml +0 -0
  96. {coder_eval-0.12.10 → coder_eval-0.12.12}/.gitignore +0 -0
  97. {coder_eval-0.12.10 → coder_eval-0.12.12}/.pre-commit-config.yaml +0 -0
  98. {coder_eval-0.12.10 → coder_eval-0.12.12}/.python-version +0 -0
  99. {coder_eval-0.12.10 → coder_eval-0.12.12}/ADOPTERS.md +0 -0
  100. {coder_eval-0.12.10 → coder_eval-0.12.12}/CLAUDE.md +0 -0
  101. {coder_eval-0.12.10 → coder_eval-0.12.12}/CODE_OF_CONDUCT.md +0 -0
  102. {coder_eval-0.12.10 → coder_eval-0.12.12}/CONTRIBUTING.md +0 -0
  103. {coder_eval-0.12.10 → coder_eval-0.12.12}/LICENSE +0 -0
  104. {coder_eval-0.12.10 → coder_eval-0.12.12}/Makefile +0 -0
  105. {coder_eval-0.12.10 → coder_eval-0.12.12}/NOTICE +0 -0
  106. {coder_eval-0.12.10 → coder_eval-0.12.12}/README.md +0 -0
  107. {coder_eval-0.12.10 → coder_eval-0.12.12}/SECURITY.md +0 -0
  108. {coder_eval-0.12.10 → coder_eval-0.12.12}/comparison.md +0 -0
  109. {coder_eval-0.12.10 → coder_eval-0.12.12}/docker/Dockerfile +0 -0
  110. {coder_eval-0.12.10 → coder_eval-0.12.12}/docker/Dockerfile.runtime +0 -0
  111. {coder_eval-0.12.10 → coder_eval-0.12.12}/docker/coder_eval_entrypoint.sh +0 -0
  112. {coder_eval-0.12.10 → coder_eval-0.12.12}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  113. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/AB_EXPERIMENTS.md +0 -0
  114. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/CI_GATE.md +0 -0
  115. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/DATASETS.md +0 -0
  116. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/DIALOG_MODE.md +0 -0
  117. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/DOCKER_ISOLATION.md +0 -0
  118. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/EXTENDING.md +0 -0
  119. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/PLUGIN.md +0 -0
  120. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/agents/CLAUDE_CODE.md +0 -0
  121. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/agents/CODEX.md +0 -0
  122. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/agents/OPENCODE.md +0 -0
  123. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/agents/PI.md +0 -0
  124. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/assets/hero.gif +0 -0
  125. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/comparison.md +0 -0
  126. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/index.md +0 -0
  127. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/llms.txt +0 -0
  128. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/01-first-evaluation.md +0 -0
  129. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/02-ci-pipeline.md +0 -0
  130. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/03-evalboard-local.md +0 -0
  131. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/04-writing-a-task.md +0 -0
  132. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/05-comparing-models.md +0 -0
  133. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/06-use-docker-isolation.md +0 -0
  134. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/07-plugin-in-claude-code.md +0 -0
  135. {coder_eval-0.12.10 → coder_eval-0.12.12}/docs/tutorials/README.md +0 -0
  136. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/.gitignore +0 -0
  137. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/README.md +0 -0
  138. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
  139. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
  140. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  141. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/__tests__/skeleton.test.tsx +0 -0
  142. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/col-help.tsx +0 -0
  143. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  144. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/harness-badge.tsx +0 -0
  145. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/harness-selector.tsx +0 -0
  146. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/scroll-table.tsx +0 -0
  147. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/search-box.tsx +0 -0
  148. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/skeleton.tsx +0 -0
  149. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/unit-toggle.tsx +0 -0
  150. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_components/version-list.tsx +0 -0
  151. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_lib/__tests__/source-param.test.ts +0 -0
  152. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_lib/source-param.ts +0 -0
  153. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/__tests__/efficiency-charts.test.tsx +0 -0
  154. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
  155. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
  156. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/daily-chart.tsx +0 -0
  157. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/efficiency-charts.tsx +0 -0
  158. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/harness-legend.tsx +0 -0
  159. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/harness-series.ts +0 -0
  160. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/tag-rail.tsx +0 -0
  161. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  162. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/wall-clock-chart.tsx +0 -0
  163. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/_overview/window-summary.tsx +0 -0
  164. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/api/download/route.ts +0 -0
  165. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/api/file/route.ts +0 -0
  166. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
  167. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/api/refresh/route.ts +0 -0
  168. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/error.tsx +0 -0
  169. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/globals.css +0 -0
  170. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/icon.png +0 -0
  171. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/layout.tsx +0 -0
  172. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/loading.tsx +0 -0
  173. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/page.tsx +0 -0
  174. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/path-to-ga/__tests__/task-table.test.tsx +0 -0
  175. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/path-to-ga/page.tsx +0 -0
  176. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/path-to-ga/task-table.tsx +0 -0
  177. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/scribe/page.tsx +0 -0
  178. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/scribe/run-table.tsx +0 -0
  179. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
  180. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/trends/actions.ts +0 -0
  181. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/trends/page.tsx +0 -0
  182. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/trends/trends-view.tsx +0 -0
  183. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  184. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/watchlist/page.tsx +0 -0
  185. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  186. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/next-env.d.ts +0 -0
  187. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/next.config.mjs +0 -0
  188. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/package.json +0 -0
  189. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/pnpm-lock.yaml +0 -0
  190. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/postcss.config.mjs +0 -0
  191. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/public/harness/antigravity.png +0 -0
  192. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/public/harness/claude-code.png +0 -0
  193. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/public/harness/codex.png +0 -0
  194. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/public/harness/pi.png +0 -0
  195. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/public/uipath.png +0 -0
  196. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/tailwind.config.ts +0 -0
  197. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/tsconfig.json +0 -0
  198. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/vitest.config.ts +0 -0
  199. {coder_eval-0.12.10 → coder_eval-0.12.12}/evalboard/vitest.setup.ts +0 -0
  200. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/early-stop-ab.yaml +0 -0
  201. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/model-comparison.yaml +0 -0
  202. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/permissions-smoke.yaml +0 -0
  203. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/plugin-comparison.yaml +0 -0
  204. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/prompt-mutations-example.yaml +0 -0
  205. {coder_eval-0.12.10 → coder_eval-0.12.12}/experiments/smoke_variants.yaml +0 -0
  206. {coder_eval-0.12.10 → coder_eval-0.12.12}/litellm/README.md +0 -0
  207. {coder_eval-0.12.10 → coder_eval-0.12.12}/litellm/cost_logger.py +0 -0
  208. {coder_eval-0.12.10 → coder_eval-0.12.12}/litellm/litellm-config.yaml +0 -0
  209. {coder_eval-0.12.10 → coder_eval-0.12.12}/litellm/start-litellm.sh +0 -0
  210. {coder_eval-0.12.10 → coder_eval-0.12.12}/mkdocs.yml +0 -0
  211. {coder_eval-0.12.10 → coder_eval-0.12.12}/osv-scanner.toml +0 -0
  212. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/README.md +0 -0
  213. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/cli-setup.md +0 -0
  214. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/criteria.md +0 -0
  215. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/repo-layout.md +0 -0
  216. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/run-layout.md +0 -0
  217. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/task-rubric.md +0 -0
  218. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/templates/activation-rows.jsonl +0 -0
  219. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/reference/templates/activation.yaml +0 -0
  220. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/skills/analyze/SKILL.md +0 -0
  221. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/skills/check-skill/SKILL.md +0 -0
  222. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/skills/ci/SKILL.md +0 -0
  223. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/skills/init/SKILL.md +0 -0
  224. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/skills/lint-tasks/SKILL.md +0 -0
  225. {coder_eval-0.12.10 → coder_eval-0.12.12}/plugins/coder-eval/skills/task/SKILL.md +0 -0
  226. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/check_commit_msg.sh +0 -0
  227. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/corpus/README.md +0 -0
  228. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/corpus/antigravity.json +0 -0
  229. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/corpus/claude-code.json +0 -0
  230. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/corpus/codex.json +0 -0
  231. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/corpus/opencode.json +0 -0
  232. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/corpus/pi.json +0 -0
  233. {coder_eval-0.12.10 → coder_eval-0.12.12}/scripts/timing/decompose_run.py +0 -0
  234. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/.gitattributes +0 -0
  235. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agent.py +0 -0
  236. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/_logging.py +0 -0
  237. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/_skills.py +0 -0
  238. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/claude_code_agent.py +0 -0
  239. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/codex_agent.py +0 -0
  240. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/delegate/.gitignore +0 -0
  241. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/noop_agent.py +0 -0
  242. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/opencode_agent.py +0 -0
  243. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/pi_agent.py +0 -0
  244. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/registry.py +0 -0
  245. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/agents/watchdog.py +0 -0
  246. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/analysis.py +0 -0
  247. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/argv_match.py +0 -0
  248. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/__init__.py +0 -0
  249. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/console.py +0 -0
  250. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/evaluate_command.py +0 -0
  251. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/evaluate_target.py +0 -0
  252. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/execute_command.py +0 -0
  253. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/export_command.py +0 -0
  254. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/harbor_command.py +0 -0
  255. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/plan_command.py +0 -0
  256. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/report_command.py +0 -0
  257. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/run_command.py +0 -0
  258. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/run_helpers.py +0 -0
  259. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  260. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/cli/utils.py +0 -0
  261. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/config.py +0 -0
  262. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/__init__.py +0 -0
  263. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  264. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/agent_judge.py +0 -0
  265. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/base.py +0 -0
  266. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/classification_match.py +0 -0
  267. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/cli_called.py +0 -0
  268. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/command_executed.py +0 -0
  269. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  270. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/file_check.py +0 -0
  271. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/file_contains.py +0 -0
  272. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/file_exists.py +0 -0
  273. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  274. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/json_check.py +0 -0
  275. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/llm_judge.py +0 -0
  276. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/reference_comparison.py +0 -0
  277. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/run_command.py +0 -0
  278. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/skill_triggered.py +0 -0
  279. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/system_one_judge.py +0 -0
  280. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/criteria/uipath_eval.py +0 -0
  281. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/durations.py +0 -0
  282. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/__init__.py +0 -0
  283. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/agent.py +0 -0
  284. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/budget.py +0 -0
  285. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/categories.py +0 -0
  286. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/checker_misuse.py +0 -0
  287. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/executor.py +0 -0
  288. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/judge.py +0 -0
  289. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/reference.py +0 -0
  290. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/retry.py +0 -0
  291. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/errors/timeout.py +0 -0
  292. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/__init__.py +0 -0
  293. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/checker.py +0 -0
  294. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  295. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  296. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_context.py +0 -0
  297. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_litellm.py +0 -0
  298. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_models.py +0 -0
  299. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  300. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_system_one.py +0 -0
  301. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/judge_usage.py +0 -0
  302. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/sub_agent.py +0 -0
  303. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/summaries.py +0 -0
  304. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/system_one_scoring.py +0 -0
  305. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  306. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/formatting.py +0 -0
  307. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/fs_permissions.py +0 -0
  308. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/__init__.py +0 -0
  309. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/agent.py +0 -0
  310. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/agent_paths.py +0 -0
  311. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/atif_emit.py +0 -0
  312. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/atif_hydrate.py +0 -0
  313. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/atif_models.py +0 -0
  314. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/experiment_packager.py +0 -0
  315. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/packager.py +0 -0
  316. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/portability.py +0 -0
  317. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/harbor/reward.py +0 -0
  318. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/invocation_log.py +0 -0
  319. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/isolation/__init__.py +0 -0
  320. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/isolation/docker_runner.py +0 -0
  321. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/isolation/eval_material.py +0 -0
  322. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/litellm_cost.py +0 -0
  323. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/logging_config.py +0 -0
  324. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/__init__.py +0 -0
  325. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/cli_match.py +0 -0
  326. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/container_context.py +0 -0
  327. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/container_paths.py +0 -0
  328. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/criteria.py +0 -0
  329. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/enums.py +0 -0
  330. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/experiment.py +0 -0
  331. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/judge.py +0 -0
  332. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/judge_defaults.py +0 -0
  333. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/limits.py +0 -0
  334. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/merge_strategy.py +0 -0
  335. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/mutations.py +0 -0
  336. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/routing.py +0 -0
  337. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/sandbox.py +0 -0
  338. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/system_one.py +0 -0
  339. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/tasks.py +0 -0
  340. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/telemetry.py +0 -0
  341. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/models/templates.py +0 -0
  342. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/__init__.py +0 -0
  343. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/batch.py +0 -0
  344. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/config.py +0 -0
  345. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/config_merge.py +0 -0
  346. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/early_stop.py +0 -0
  347. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/evaluation.py +0 -0
  348. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/experiment.py +0 -0
  349. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/regrade.py +0 -0
  350. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/run_limits.py +0 -0
  351. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/run_summary_rebuild.py +0 -0
  352. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestration/task_loader.py +0 -0
  353. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/orchestrator.py +0 -0
  354. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/path_utils.py +0 -0
  355. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/plugins.py +0 -0
  356. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/pricing.py +0 -0
  357. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/py.typed +0 -0
  358. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/reports/__init__.py +0 -0
  359. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/reports/experiment.py +0 -0
  360. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/reports/helpers.py +0 -0
  361. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/reports/junit.py +0 -0
  362. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/resources/__init__.py +0 -0
  363. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  364. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/resources/tags.yaml +0 -0
  365. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/sandbox.py +0 -0
  366. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/__init__.py +0 -0
  367. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/ast_similarity.py +0 -0
  368. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/complexity.py +0 -0
  369. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/quality.py +0 -0
  370. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/signature_similarity.py +0 -0
  371. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/similarity.py +0 -0
  372. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/scoring/token_similarity.py +0 -0
  373. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/simulation/__init__.py +0 -0
  374. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/simulation/termination.py +0 -0
  375. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/simulation/user_simulator.py +0 -0
  376. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/simulation/utterance.py +0 -0
  377. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/stats.py +0 -0
  378. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/streaming/__init__.py +0 -0
  379. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/streaming/callbacks.py +0 -0
  380. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/streaming/collector.py +0 -0
  381. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/streaming/events.py +0 -0
  382. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/streaming/renderers.py +0 -0
  383. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/streaming/wire.py +0 -0
  384. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/telemetry.py +0 -0
  385. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/timing.py +0 -0
  386. {coder_eval-0.12.10 → coder_eval-0.12.12}/src/coder_eval/utils.py +0 -0
  387. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/README.md +0 -0
  388. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agentless_smoke_test.yaml +0 -0
  389. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/antigravity_hello_world.yaml +0 -0
  390. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  391. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/claude_hello_world.yaml +0 -0
  392. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  393. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  394. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/claude_subagent_test.yaml +0 -0
  395. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  396. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_hello_world.yaml +0 -0
  397. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_parallel_commands.yaml +0 -0
  398. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  399. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_skills_test.yaml +0 -0
  400. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_string_utils.yaml +0 -0
  401. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/codex_subagent_test.yaml +0 -0
  402. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  403. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/agents/subagent_merge_sort.yaml +0 -0
  404. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/anti_cheat_reference/anti_cheat_reference.yaml +0 -0
  405. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/anti_cheat_reference/reference/solution.py +0 -0
  406. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/byod_smoke_test.yaml +0 -0
  407. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dataset_example.yaml +0 -0
  408. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/datasets/sentiment.jsonl +0 -0
  409. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/delegate/fizzbuzz_delegate.yaml +0 -0
  410. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  411. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  412. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  413. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  414. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  415. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  416. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
  417. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
  418. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
  419. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/fibonacci_with_template.yaml +0 -0
  420. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/hello_date.yaml +0 -0
  421. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/inline_starter_example.yaml +0 -0
  422. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/internal/session_resumption.yaml +0 -0
  423. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/mock_path_dirs_smoke.yaml +0 -0
  424. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  425. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  426. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
  427. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  428. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  429. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/opencode_smoke_test.yaml +0 -0
  430. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/pi_smoke_test.yaml +0 -0
  431. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  432. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/record_cli_responses.yaml +0 -0
  433. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/run_limits/max_turns_cap.yaml +0 -0
  434. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/run_limits/turn_timeout.yaml +0 -0
  435. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  436. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  437. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  438. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  439. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  440. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  441. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/README.md +0 -0
  442. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  443. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  444. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  445. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  446. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  447. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  448. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  449. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  450. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  451. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  452. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/sentiment_classification.yaml +0 -0
  453. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_agent_judge.yaml +0 -0
  454. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_budget_exceeded.yaml +0 -0
  455. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  456. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_llm_judge.yaml +0 -0
  457. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_negative_path.yaml +0 -0
  458. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_system_one_judge.yaml +0 -0
  459. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_task_timeout.yaml +0 -0
  460. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/smoke_variants.yaml +0 -0
  461. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/test_sandbox.yaml +0 -0
  462. {coder_eval-0.12.10 → coder_eval-0.12.12}/tasks/token_check.yaml +0 -0
  463. {coder_eval-0.12.10 → coder_eval-0.12.12}/templates/byod_smoke_test/Dockerfile +0 -0
  464. {coder_eval-0.12.10 → coder_eval-0.12.12}/templates/fibonacci-starter/README.md +0 -0
  465. {coder_eval-0.12.10 → coder_eval-0.12.12}/templates/fibonacci-starter/src/main.py +0 -0
  466. {coder_eval-0.12.10 → coder_eval-0.12.12}/templates/fibonacci-starter/tests/test_main.py +0 -0
  467. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/__init__.py +0 -0
  468. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_bracket_clock.py +0 -0
  469. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_container_contract.py +0 -0
  470. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/__init__.py +0 -0
  471. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/__init__.py +0 -0
  472. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  473. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/antigravity_fixtures.py +0 -0
  474. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  475. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  476. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/antigravity_a_single_text_turn.json +0 -0
  477. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/antigravity_b_tool_call_resolved.json +0 -0
  478. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/antigravity_c_thinking_and_tool_same_generation.json +0 -0
  479. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/antigravity_d_orphaned_tool.json +0 -0
  480. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/antigravity_e_multi_generation.json +0 -0
  481. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  482. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  483. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  484. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  485. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  486. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  487. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  488. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  489. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  490. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  491. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  492. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  493. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  494. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  495. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  496. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  497. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  498. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  499. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/opencode_a_single_text_turn.json +0 -0
  500. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/opencode_b_tool_call_resolved.json +0 -0
  501. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/opencode_c_multi_step_tiling.json +0 -0
  502. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/opencode_d_orphaned_tool.json +0 -0
  503. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/opencode_e_error_after_generation.json +0 -0
  504. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/pi_a_single_text_turn.json +0 -0
  505. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/pi_b_tool_call_resolved.json +0 -0
  506. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/pi_c_multi_turn_tiling.json +0 -0
  507. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/pi_d_orphaned_tool.json +0 -0
  508. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/pi_e_error_after_generation.json +0 -0
  509. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/expected/pi_f_duplicate_turn_end.json +0 -0
  510. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/opencode_fixtures.py +0 -0
  511. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/golden_streams/pi_fixtures.py +0 -0
  512. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/environment/Dockerfile +0 -0
  513. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/environment/docker-compose.yaml +0 -0
  514. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/environment/task.yaml +0 -0
  515. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/instruction.md +0 -0
  516. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/task.toml +0 -0
  517. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/tests/reference/greeting.txt +0 -0
  518. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/tests/task.yaml +0 -0
  519. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/expected/tests/test.sh +0 -0
  520. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/source_task/environment/Dockerfile +0 -0
  521. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/source_task/reference/greeting.txt +0 -0
  522. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/harbor_export_golden/source_task/task.yaml +0 -0
  523. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/live_criteria.py +0 -0
  524. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  525. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  526. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  527. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  528. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  529. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_fixtures/timing_union_cases.json +0 -0
  530. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/_path_helpers.py +0 -0
  531. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/conftest.py +0 -0
  532. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/__init__.py +0 -0
  533. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/atif/known_good_trajectory.json +0 -0
  534. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  535. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  536. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/mock_agent.py +0 -0
  537. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/pi_happy_stream.jsonl +0 -0
  538. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
  539. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  540. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  541. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/fixtures/text_stub_agent.py +0 -0
  542. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/harbor_e2e/fixtures/docker_baseline.yaml +0 -0
  543. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/harbor_e2e/fixtures/llm_judge.yaml +0 -0
  544. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/harbor_e2e/fixtures/template_sources.yaml +0 -0
  545. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/harbor_e2e/fixtures/trajectory_criteria.yaml +0 -0
  546. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/__init__.py +0 -0
  547. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/action_docs.py +0 -0
  548. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/agent_roster_parity.py +0 -0
  549. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/dead_config_fields.py +0 -0
  550. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/doc_env_parity.py +0 -0
  551. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/doc_examples.py +0 -0
  552. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/doc_indexes.py +0 -0
  553. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/doc_schema_parity.py +0 -0
  554. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/generated.py +0 -0
  555. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/live_verdict_contract.py +0 -0
  556. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/plugin_manifest_parity.py +0 -0
  557. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/plugin_reference.py +0 -0
  558. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/pricing_mirror.py +0 -0
  559. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/prose_budget.py +0 -0
  560. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/pyright_config.py +0 -0
  561. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/__init__.py +0 -0
  562. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/_layers.py +0 -0
  563. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/_model_ctor.py +0 -0
  564. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/base.py +0 -0
  565. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  566. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  567. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  568. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  569. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  570. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  571. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  572. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  573. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  574. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  575. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce032_criteria_path_seam.py +0 -0
  576. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce037_no_dead_private_helper.py +0 -0
  577. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce038_acquire_inside_try.py +0 -0
  578. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce039_config_error_escalates.py +0 -0
  579. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce043_no_command_output_truncation.py +0 -0
  580. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce046_env_info_spreads_super.py +0 -0
  581. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce048_no_in_process_typer_command_call.py +0 -0
  582. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce049_no_score_or_zero.py +0 -0
  583. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce050_no_union_getattr_probe.py +0 -0
  584. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce051_no_driver_override.py +0 -0
  585. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce052_process_lethal_must_be_container_gated.py +0 -0
  586. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce053_run_record_filename_literal.py +0 -0
  587. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce054_env_info_key_round_trip.py +0 -0
  588. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce056_no_container_env_literal.py +0 -0
  589. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce057_sidecar_shim_stdlib_only.py +0 -0
  590. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce058_no_timing_literal.py +0 -0
  591. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce059_generation_window_is_two_reads.py +0 -0
  592. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce060_message_id_declared.py +0 -0
  593. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce061_window_via_close_window.py +0 -0
  594. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce063_no_busy_ms_in_agents.py +0 -0
  595. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce064_turn_bracket_on_the_clock.py +0 -0
  596. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/ce066_no_report_imports_in_core.py +0 -0
  597. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_agent_timing_access.py +0 -0
  598. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  599. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  600. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_silent_except.py +0 -0
  601. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  602. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  603. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  604. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  605. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/open_explicit_encoding.py +0 -0
  606. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  607. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/register_criterion_required.py +0 -0
  608. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  609. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  610. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/runner.py +0 -0
  611. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/violation.py +0 -0
  612. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/lint/workflow_outputs.py +0 -0
  613. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_action_inputs.py +0 -0
  614. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_action_version_pin.py +0 -0
  615. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent.py +0 -0
  616. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_config_no_timing_fields.py +0 -0
  617. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_config_optional_type.py +0 -0
  618. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_config_registry_dispatch.py +0 -0
  619. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_config_sdk_decoupling.py +0 -0
  620. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_judge_criterion.py +0 -0
  621. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_telemetry.py +0 -0
  622. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_telemetry_advanced.py +0 -0
  623. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agent_timeout.py +0 -0
  624. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_agentless.py +0 -0
  625. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_atif_emit.py +0 -0
  626. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_atif_hydrate.py +0 -0
  627. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_atif_models.py +0 -0
  628. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_byoa_plugin.py +0 -0
  629. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_byoa_plugin_live.py +0 -0
  630. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_byod_feature.py +0 -0
  631. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_check_all_async.py +0 -0
  632. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_checker_logging.py +0 -0
  633. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_classification_match.py +0 -0
  634. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_claude_settings_enforcement_live.py +0 -0
  635. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cleanup_preservation_guard.py +0 -0
  636. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_backend_flag.py +0 -0
  637. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_called_criterion.py +0 -0
  638. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_empty_glob.py +0 -0
  639. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_match_parity.py +0 -0
  640. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_sdk_options.py +0 -0
  641. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_set_overrides.py +0 -0
  642. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_telemetry.py +0 -0
  643. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cli_type_flag.py +0 -0
  644. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_code_review_bugs.py +0 -0
  645. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_codex_agent.py +0 -0
  646. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_codex_agent_live.py +0 -0
  647. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_codex_agent_unit.py +0 -0
  648. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_codex_token_mapping.py +0 -0
  649. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_command_executed.py +0 -0
  650. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_command_statistics.py +0 -0
  651. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_command_telemetry_result_data.py +0 -0
  652. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_commands_efficiency.py +0 -0
  653. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_config_lineage.py +0 -0
  654. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_config_merge_engine.py +0 -0
  655. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_config_precedence.py +0 -0
  656. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_container_context.py +0 -0
  657. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_continuous_scoring.py +0 -0
  658. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_cost_accounting_paths.py +0 -0
  659. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_criterion_result_round_trip.py +0 -0
  660. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_custom_lint.py +0 -0
  661. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_dataset_expansion.py +0 -0
  662. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_debug_logging.py +0 -0
  663. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_delegate_agent_registration.py +0 -0
  664. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_detached_grading_boundaries.py +0 -0
  665. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_detached_grading_guards.py +0 -0
  666. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_build_failure.py +0 -0
  667. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_litellm_env.py +0 -0
  668. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_runner_container_death.py +0 -0
  669. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_runner_mounts.py +0 -0
  670. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_runner_stream_limit.py +0 -0
  671. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_wildcard_env.py +0 -0
  672. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_docker_workdir_live.py +0 -0
  673. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_driver_resolver.py +0 -0
  674. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_durations.py +0 -0
  675. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_early_stop.py +0 -0
  676. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_error_handling.py +0 -0
  677. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_eval_material.py +0 -0
  678. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_evaluate_command.py +0 -0
  679. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_evaluate_format_harbor.py +0 -0
  680. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_evaluate_target.py +0 -0
  681. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_evaluator.py +0 -0
  682. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_event_collector.py +0 -0
  683. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_execute_command.py +0 -0
  684. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_execute_evaluate_loop.py +0 -0
  685. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_execute_format_harbor.py +0 -0
  686. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_experiment_cli.py +0 -0
  687. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_experiment_loader.py +0 -0
  688. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_experiment_models.py +0 -0
  689. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_experiment_reports.py +0 -0
  690. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_experiment_resolver.py +0 -0
  691. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_experiment_runner.py +0 -0
  692. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_file_check.py +0 -0
  693. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_file_contains_scoring.py +0 -0
  694. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_formatting.py +0 -0
  695. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_git_clone_failure.py +0 -0
  696. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_glob_paths_in_file_criteria.py +0 -0
  697. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_agent.py +0 -0
  698. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_e2e_fixtures.py +0 -0
  699. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_experiment_packager.py +0 -0
  700. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_export_golden.py +0 -0
  701. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_packager.py +0 -0
  702. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_portability.py +0 -0
  703. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_harbor_reward.py +0 -0
  704. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_heartbeat_watchdog.py +0 -0
  705. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_ignore_patterns_negation.py +0 -0
  706. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_image_from_dockerfiles.py +0 -0
  707. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_image_skew_refusal.py +0 -0
  708. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_integration.py +0 -0
  709. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_json_check.py +0 -0
  710. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_anthropic.py +0 -0
  711. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_bedrock.py +0 -0
  712. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_burn_in_live.py +0 -0
  713. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_context_builder.py +0 -0
  714. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_litellm.py +0 -0
  715. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_models.py +0 -0
  716. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_persistence.py +0 -0
  717. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_judge_system_one.py +0 -0
  718. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_lint_no_top_level_run_limits.py +0 -0
  719. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_lint_runner.py +0 -0
  720. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_litellm_config.py +0 -0
  721. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_litellm_cost.py +0 -0
  722. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_litellm_cost_logger.py +0 -0
  723. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_litellm_judge_live.py +0 -0
  724. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_litellm_route.py +0 -0
  725. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_llm_judge_criterion.py +0 -0
  726. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_log_tail_buffer.py +0 -0
  727. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_logging.py +0 -0
  728. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_logging_isolation.py +0 -0
  729. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_merge_strategy_annotations.py +0 -0
  730. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_merge_unification.py +0 -0
  731. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_models.py +0 -0
  732. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_mutations.py +0 -0
  733. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_new_criteria.py +0 -0
  734. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_node_env_config.py +0 -0
  735. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_opencode_agent.py +0 -0
  736. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_optional_dependencies.py +0 -0
  737. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_orchestrator.py +0 -0
  738. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_orchestrator_error_log_tail.py +0 -0
  739. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_orchestrator_telemetry.py +0 -0
  740. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_parallel.py +0 -0
  741. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_path_utils.py +0 -0
  742. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pi_agent.py +0 -0
  743. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pi_agent_config.py +0 -0
  744. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pi_smoke_task.py +0 -0
  745. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_plan_command.py +0 -0
  746. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_plugin_processing.py +0 -0
  747. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_plugins.py +0 -0
  748. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_post_run.py +0 -0
  749. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pr_review_workflow.py +0 -0
  750. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pre_run.py +0 -0
  751. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_preservation_mode.py +0 -0
  752. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pricing_mirror.py +0 -0
  753. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_pricing_registry.py +0 -0
  754. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_prose_budget.py +0 -0
  755. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_prose_budget_commands.py +0 -0
  756. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reference_comparison_scoring.py +0 -0
  757. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reference_evaluator.py +0 -0
  758. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reference_missing_file.py +0 -0
  759. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reference_models.py +0 -0
  760. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reference_permissions.py +0 -0
  761. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_registry.py +0 -0
  762. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_regrade.py +0 -0
  763. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_release_notes.py +0 -0
  764. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_replicate_stats.py +0 -0
  765. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_report_command.py +0 -0
  766. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reports_html.py +0 -0
  767. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reports_junit.py +0 -0
  768. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_reports_package.py +0 -0
  769. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_resolve_task_files.py +0 -0
  770. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_result_metrics.py +0 -0
  771. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_resume.py +0 -0
  772. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_route_seam_exhaustiveness.py +0 -0
  773. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_routing.py +0 -0
  774. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_command_junit.py +0 -0
  775. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_command_stdout.py +0 -0
  776. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_helpers.py +0 -0
  777. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_limits_models.py +0 -0
  778. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_limits_orchestrator.py +0 -0
  779. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_limits_resolver.py +0 -0
  780. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_metrics.py +0 -0
  781. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_summary_rebuild.py +0 -0
  782. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_run_task_internal.py +0 -0
  783. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_runtime_tool_versions.py +0 -0
  784. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox.py +0 -0
  785. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_adopt.py +0 -0
  786. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_layer_builder.py +0 -0
  787. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_optional.py +0 -0
  788. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_record_cli.py +0 -0
  789. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_security.py +0 -0
  790. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_symlink_preservation.py +0 -0
  791. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_templates.py +0 -0
  792. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sandbox_venv_live.py +0 -0
  793. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_scorers.py +0 -0
  794. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_scoring_quality.py +0 -0
  795. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sdk_option_classification.py +0 -0
  796. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_seed_from_prior_result.py +0 -0
  797. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_simulation_config.py +0 -0
  798. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_simulation_integration.py +0 -0
  799. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_simulation_termination.py +0 -0
  800. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_simulation_trials.py +0 -0
  801. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_skill_triggered.py +0 -0
  802. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_stats.py +0 -0
  803. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_stats_nonfinite.py +0 -0
  804. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_agent_integration.py +0 -0
  805. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_batch.py +0 -0
  806. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_callbacks.py +0 -0
  807. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_cli.py +0 -0
  808. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_events.py +0 -0
  809. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_orchestrator.py +0 -0
  810. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_renderers.py +0 -0
  811. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_streaming_wire.py +0 -0
  812. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_sub_agent_runner.py +0 -0
  813. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_success_criterion_union.py +0 -0
  814. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_suite_rollup.py +0 -0
  815. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_summaries.py +0 -0
  816. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_system_one_judge.py +0 -0
  817. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_system_one_judge_live.py +0 -0
  818. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_tags.py +0 -0
  819. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_task_definition_unknown_fields.py +0 -0
  820. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_teardown_interrupt.py +0 -0
  821. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_telemetry.py +0 -0
  822. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_template_env_expansion.py +0 -0
  823. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_threshold_enforcement.py +0 -0
  824. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timeout_batch.py +0 -0
  825. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timeout_categorization.py +0 -0
  826. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timeout_exceptions.py +0 -0
  827. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timeout_models.py +0 -0
  828. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timeout_orchestrator.py +0 -0
  829. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timing_close_window.py +0 -0
  830. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_timing_union_parity.py +0 -0
  831. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_token_usage.py +0 -0
  832. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_uipath_eval.py +0 -0
  833. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_ungraded_reporting.py +0 -0
  834. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_user_simulator.py +0 -0
  835. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_utils.py +0 -0
  836. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_utterance_extraction.py +0 -0
  837. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_variant_prompt_file.py +0 -0
  838. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_verdict_tool.py +0 -0
  839. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_verify_published_workflow.py +0 -0
  840. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_watchdog.py +0 -0
  841. {coder_eval-0.12.10 → coder_eval-0.12.12}/tests/test_yaml_migration.py +0 -0
@@ -434,10 +434,13 @@ agent had produced; bounding it only by a fixed cycle count disconnected from `t
434
434
  path unreachable — the watchdog always wins, and the same spurious-orphan turn burns the
435
435
  full turn timeout before crashing with zero criteria evaluated.
436
436
 
437
- The cycle cap applies alongside that deadline, whichever comes first, and is the SOLE
438
- bound when a task sets no timeout at all. Under a long `turn_timeout` (1800 s gives a
439
- 1440 s deadline) the deadline alone let a never-ending command (a dev server, an
440
- unanswered prompt) idle the turn for 24 minutes. It is deliberately not
437
+ The cycle cap (120 × 5 s) bounds the wait only when a task sets no timeout at all. With
438
+ one, the deadline alone bounds it, so a never-ending command (a dev server, an unanswered
439
+ prompt) can idle up to 80% of the turn, but a slow job gets the time the task author
440
+ budgeted for it. Applying the cap under a timeout as well force-closed real solvers and
441
+ simulations at 10 minutes: on the SkillsBench Gemini 4-arm campaign it ended 22 of 348
442
+ rows, 4 of which had passed with the deadline alone (an exam-scheduling MIP solve that
443
+ passed at 1211 s among them). It is deliberately not
441
444
  "break after N consecutive empty polls": `receive_steps()` returns identically empty
442
445
  whether a backgrounded job is still running or will never resolve, and there is no signal
443
446
  that tells the two apart except waiting. A count small enough to matter would abort real
@@ -464,10 +467,32 @@ after the model had already finished. `finalize` force-closes them as unresolved
464
467
  way it confines Claude Code. Without it Antigravity ran with every builtin, including
465
468
  `start_subagent` and `search_web`, under a list that gave Claude Code neither. `Skill` and
466
469
  `TodoWrite` have no builtin (skills load through `skills_paths`) and are skipped. `finish`
467
- stays on under any allowlist: it returns structured output, not a capability.
468
- `enable_subagents` is a separate switch from the toolset and follows whether
469
- `start_subagent` survives. The SDK takes an allowlist OR a denylist, so with both set the
470
- denied tools are removed from the allowlist.
470
+ and `schedule` stay on under any allowlist: `finish` returns structured output, and
471
+ `schedule` is the timer the model sleeps on while a backgrounded `run_command` finishes.
472
+ Without `schedule`, Gemini re-checks the background task every few seconds and each check
473
+ is a model call against `max_turns`: on the SkillsBench Gemini 4-arm campaign mean turns
474
+ rose 36.8 → 50.2 and max-turn rows 4 → 16 on the same 110 rows, and the skill arms were hit
475
+ 2-3x harder than baseline. With `schedule` on they came back to 35.4 and 1.
476
+
477
+ An allowlist only narrows the harness's default toolset (`BuiltinTools.default()`). `Glob`,
478
+ `Grep` and `LS` map to `find_file`, `search_directory` and `list_directory`, which the
479
+ harness ships off, so an allowlist naming them leaves them off. Turned on, Gemini used them
480
+ in place of shell scripts (1,429 calls in 333 of 348 SkillsBench rows, none before), often
481
+ one search per turn.
482
+
483
+ `start_subagent` also stays on under any allowlist, because the harness builds its system
484
+ prompt from the toolset: with `start_subagent` off it drops the whole subagents section
485
+ (4,801 → 2,783 characters), and with it the prompt's only "you do NOT need to poll ... you
486
+ will be notified" guidance. With it on, the system prompt is byte-identical to 0.12.9's.
487
+ The section alone does not stop Gemini polling a long job with status checks: in a 48-row
488
+ SkillsBench A/B it made 13.4 checks per row with the section and 13.7 without (8.5 on
489
+ 0.12.9). The tool descriptions are identical either way, and
490
+ `enable_subagents` alone does not restore the section. Subagents the tool lists withhold
491
+ (no `Task`) are denied by policy at `invoke_subagent` instead, which covers both the
492
+ built-in `research` subagent and one the model defines with `define_subagent`; both get
493
+ `search_web` regardless of the parent's toolset, and a parent policy on `search_web` does
494
+ not reach a model-defined one. The SDK takes an allowlist OR a denylist, so with both set
495
+ the denied tools are removed from the allowlist, except the always-enabled ones.
471
496
 
472
497
  ## Antigravity non-interactive commands
473
498
 
@@ -478,7 +503,7 @@ behind keeps the turn waiting on a prompt no one answers. `_NONINTERACTIVE_ENV`
478
503
  (`CI`, `npm_config_yes`, `GIT_TERMINAL_PROMPT=0`, `DEBIAN_FRONTEND`, `PIP_NO_INPUT`,
479
504
  `PAGER`/`GIT_PAGER=cat`) rides the per-agent `env` seam, each variable only where the
480
505
  environment does not already set it, so those commands answer themselves or fail fast. It
481
- cannot close the terminal: a bare `read` or a server still runs until the poll cap.
506
+ cannot close the terminal: a bare `read` or a server still runs until the poll deadline.
482
507
 
483
508
  ## The receive_steps re-entrancy window
484
509
 
@@ -533,7 +558,7 @@ shell-aware `parameters["command"]` extraction in `criteria/command_executed.py`
533
558
  to raw-JSON matching — so the same task scores differently per harness. Unknown names pass
534
559
  through unchanged.
535
560
 
536
- Three cases are worth knowing:
561
+ Four cases are worth knowing:
537
562
 
538
563
  - **OpenCode's tool set varies by MODEL within the one harness.** A live 174-task run
539
564
  showed DeepSeek using `write`/`edit` 199 times and `apply_patch` 0, while GPT-5.6 used
@@ -546,6 +571,11 @@ Three cases are worth knowing:
546
571
  - **Pi's search tool is `find`** (glob-by-pattern), not `glob`; there is no `glob` tool in
547
572
  its built-in set, so mapping `find` to the canonical `Glob` is what keeps
548
573
  `command_executed` and `commands_efficiency` comparable.
574
+ - **Delegate's host maps most names itself, but not `LoadSkill`.** `delegate-stdio` reports
575
+ `ReadFile` as `Read` and `ExecuteSkillApi` as `Skill`, so `DelegateAgent` maps only
576
+ `LoadSkill {name}` to `Skill {skill}`; without it `skill_triggered` never sees a Delegate skill
577
+ load. The rename is keyed by the host's name: keyed by `Skill`, it would also turn
578
+ ExecuteSkillApi's `name`, an API call, into a skill engagement.
549
579
 
550
580
  Antigravity additionally strips the result payload out of a tool call's arguments: the
551
581
  harness folds result fields into the same `args` dict at DONE. Beyond a static key list,
@@ -776,89 +806,117 @@ release adding an unclassified field fails loudly instead of silently passing th
776
806
 
777
807
  ## Delegate agent
778
808
 
779
- `DelegateAgent` drives UiPath Autopilot's Delegate agent — reasoning in the UiPath backend,
780
- tools executing locally through the SDK's bundled interop process. Unlike every other CLI-driven
781
- agent in this file, there is no vendor-provided stdio protocol host to spawn: `@uipath/delegate-stdio`,
782
- the internal package a UiPath-only sibling plugin (`coder_eval_uipath`) drives, is not public. Only
783
- `@uipath/delegate-sdk` (a programmatic library exposing a `DelegateAgent` class with
784
- `initialize()`/`onEvent()`/`sendMessage()`/`destroy()`) and `@uipath/delegate-cli` (a terminal wrapper
785
- around it) are. So this agent ships its own first-party Node host, `agents/delegate/delegate_host.mjs`,
786
- which wraps the SDK class in a newline-JSON stdio protocol this framework designed, not one it had to
787
- reverse-engineer — verified live against a real `@uipath/delegate-sdk@0.1.12` install with no token,
788
- confirming both the plain-public-install story and that the SDK's own event vocabulary
789
- (`session_start`/`thinking`/`message`/`tool_call`/`tool_result`/`error`/`done`/`step`) substantially
790
- matches the internal sibling's protocol.
791
-
792
- **No multi-generation transcript splitting.** The internal sibling reconstructs one `AssistantMessage`
793
- per backend round-trip from an `isStepStart` flag and a `turnUsages` array on the host's terminal
794
- message. Neither is present on `DelegateAgent.onEvent`'s payloads (confirmed absent by grepping the
795
- installed SDK bundle's string literals), so there is no reliable per-round-trip boundary signal at this
796
- API layer. `DelegateAgent` builds exactly ONE `AssistantMessage` per `communicate()` call instead — a
797
- deliberate simplification, not an oversight; richer segmentation can be added once a real boundary
798
- signal is confirmed against a live backend. `timing.close_window` still opens that one window from the
799
- turn's own start (there is nothing to tile from), so the head and tail both measure ~0.
800
-
801
- **Deferred, not ported speculatively.** The internal sibling's module docstring documents several
802
- hard-won failure-signature-specific recoveries: a Cloudflare WAF-block-page rewrite, an SSE-connect-
803
- timeout rewrite, session-conflict fresh-host recovery, and first-response stall-timeout+resend. None
804
- are ported here — porting a marker tuned to the internal sibling's own observed failures risks matching
805
- nothing (or the wrong thing) against the public SDK/backend's actual error surface. A crash still ends
806
- the turn correctly as a retryable `AgentCrashError`; it is just not specially diagnosed. Port these once
807
- the same failures are actually observed running this agent for real.
808
-
809
- **The process handle must be cleared on every path that leaves the host dead or dying** — EOF, a host
810
- `fatal` message, a timeout (both the top-of-loop pre-check AND a timeout elapsing while blocked inside
811
- `asyncio.wait_for`), cooperative stop, and `max_turns` exhaustion. A real bug shipped once during this
812
- agent's own development: a timeout elapsing mid-read fell through to the generic crash path instead of
813
- `TurnTimeoutError`, and left the process handle set, so the NEXT `communicate()` call reused a host with
814
- a `"send"` still nominally in flight instead of respawning — risking a stale response being consumed as
815
- the new turn's. `tests/test_delegate_agent.py`'s `test_timeout_elapsing_mid_read_still_raises_turn_timeout_error`
816
- pins the fix.
817
-
818
- **Skills mapping is deliberately NOT the shared `agents/_skills.py` resolver.** That resolver enumerates
819
- individual skill directories for a repeated `--skill <dir>`-style CLI argument (OpenCode/Pi's shape).
820
- The Delegate SDK's `bundledSkillsPath` wants exactly ONE parent directory whose children are skill
821
- folders — a genuinely different shape — so `_resolve_bundled_skills_path` mirrors the internal sibling's
822
- own mapping (`<plugin.path>/skills`, first plugin wins) instead of force-fitting the shared helper.
823
-
824
- **Registered unconditionally**, exactly like `codex`/`antigravity` — there is no conditional-registration
825
- gate keyed on an optional-dependency extra anywhere in this codebase; `opencode`/`pi` declare an EMPTY
826
- extra purely as packaging-metadata documentation, and `delegate` follows that same shape (no new pip
827
- package — Node/`@uipath/delegate-sdk` is the real prerequisite, resolved lazily in `start()`).
828
-
829
- **`environment` resolution needs org/tenant SLUGS, not just IDs — confirmed by reading the installed
830
- SDK's own bundle, not by guessing from its error message.** When `DELEGATE_BACKEND_URL` is absent and
831
- `DELEGATE_ENV` (-> `environment` init option) is used instead, the SDK resolves the backend URL from
832
- `organizationName`/`orgLogicalName` and `tenantName` fields on the `auth` object passed to
833
- `initialize()` — NOT from `ORG_SLUG`/`TENANT_SLUG` read off `process.env` directly, despite that being
834
- exactly what the SDK's own thrown error suggests ("set ORG_SLUG and TENANT_SLUG env vars alongside
835
- ORG_ID/TENANT_ID"). That advice describes the separate `@uipath/delegate-cli`/`delegate-stdio` wrapper's
836
- own env-var-driven bootstrapping, not the `DelegateAgent` class itself, which we drive directly. So
837
- `_build_init_options` forwards `ORG_SLUG`/`TENANT_SLUG` (when set) into `auth.organizationName`/
838
- `auth.tenantName` itself — confirmed against `node_modules/@uipath/delegate-sdk/dist/index.mjs`'s own
839
- `yie()` resolver function live in CI (`pyright`/tests can't catch this class of bug; it only surfaces
840
- against a real backend). `tests/test_delegate_agent.py::TestStart::test_org_and_tenant_slug_forwarded_into_auth`
841
- pins it. Passing `DELEGATE_BACKEND_URL` directly instead of `DELEGATE_ENV` skips this whole path.
842
-
843
- **Token usage comes from two getters called after `sendMessage()` resolves, not from any event or the
844
- resolved value itself — confirmed by reading the installed SDK's bundle, not by guessing.** A first
845
- pass guessed at a flat `usage` dict carried on the resolved `sendMessage()` value or on a forwarded
846
- event, tried several plausible snake_case/camelCase bucket-name spellings, and silently returned zero
847
- tokens every turn against a real backend (`tests/test_delegate_agent_live.py::test_delegate_live_token_usage_populated`
848
- failed live: `record.crashed is False`, real text/tool output, `token_usage=None`). Reading
849
- `node_modules/@uipath/delegate-sdk/dist/index.mjs` directly settled it: `sendMessage()` always resolves
850
- to a plain string (never an object), and no event this host forwards via `agent.onEvent()` ever carries
851
- a `usage` field — the SDK's own internal event vocabulary has no `"usage"` member (that name IS used
852
- internally, but only inside the SDK's own Zustand store reducer that updates its "Token usage" UI
853
- panel, never re-emitted through the public `onEvent` bus). The only way to reach it is
854
- `DelegateAgent.getLastTurnUsage(sessionId?)` (defaults to the just-used session), so
855
- `delegate_host.mjs`'s `handleSend` calls it — and `getSessionId()` — right after `sendMessage()`
856
- resolves, and attaches both to the `send_ok` message itself. That getter's shape, read straight off the
857
- SDK's own `setUsage` store action, is `{promptTokens, completionTokens, promptTokensCached,
858
- cacheCreationTokens, turnTokenUnits, contextBreakdown}` — `promptTokens` is the TOTAL input token count
859
- (OpenAI-style, cached + uncached), `promptTokensCached` the cache-READ subset of it, so
860
- `_parse_usage` computes `uncached_input_tokens = promptTokens - promptTokensCached`. This is now
861
- CONFIRMED, not a guess, so `_parse_usage`'s docstring no longer marks it `# UNVERIFIED`.
809
+ `DelegateAgent` drives UiPath Autopilot's Delegate agent: reasoning in the UiPath backend, tools run
810
+ locally. It spawns the host from the public `@uipath/delegate-stdio` npm package
811
+ (`dist/delegate_stdio.mjs`), which pulls in `@uipath/delegate-sdk` and the interop binaries. The
812
+ package README is the wire-protocol SSOT. `agents/delegate/package.json` sets the floor at `1.203.0`, the
813
+ first release with the `auth` init option and the `usage` frame (UiPath/Autopilot#6656). The other frame
814
+ shapes were confirmed against a live `1.202.1` transcript; the frame builders in
815
+ `tests/_fixtures/golden_streams/delegate_fixtures.py` replay those shapes. (An earlier first-party
816
+ `delegate_host.mjs` wrapper is gone; see git history.)
817
+
818
+ **Auth goes to the host as the `auth` init option, not through its env.** `_env` reads the
819
+ `DELEGATE_*` name first, then the bare `AUTH_TOKEN` / `TENANT_ID` / `ORG_ID` / `ORG_SLUG` /
820
+ `TENANT_SLUG`. `DELEGATE_BACKEND_URL` → `backendUrl`, `DELEGATE_ENV` → `env`. We do not adopt the
821
+ host's own names (`ORG_LOGICAL_NAME`, `BACKEND_URL`, …): bare names collide with other tooling, and CI
822
+ secrets use the `DELEGATE_*` names. `_HOST_ENV_REMOVED` strips the host's names and the token from the
823
+ host env, because the agent's shells inherit it (token leak to code under test) and a stray
824
+ `BACKEND_URL` would reroute the host. A refresh source still writes the fresh token into the host's
825
+ own `process.env.AUTH_TOKEN`. `_INIT_CONFIG_ERROR_HINT` names our variables beside the host's message,
826
+ which names the host's own. `env=<slug>` without org/tenant
827
+ slugs fails init.
828
+
829
+ **`LLMGW_*` leaves the host env only when a token file is set.** Without a token file, the host's
830
+ `selectTokenSource` uses that S2S pair to refresh, so stripping it always would end refresh after an
831
+ hour. `_strip_redundant_gateway_creds` mirrors the host's lookup exactly
832
+ (`DELEGATE_AUTH_TOKEN_FILE ?? AUTH_TOKEN_FILE`, path-delimiter split, blanks ignored).
833
+
834
+ **Effort rides `sdk_options.effort`** — the same key as Claude Code, so one `-D` drives both.
835
+ `get_sdk_options()` returns the whole `init` dict (so the reports show Model and Effort), with
836
+ credentials redacted: `auth` → its field names, `backendUrl` → its host (`None` when `urlparse` cannot
837
+ parse the URL: the orchestrator reads it while it persists `task.json`, so a raise there would lose
838
+ the file and hide the original error). It is persisted in
839
+ `task.json`.
840
+
841
+ **`enableSkills` must be sent explicitly**: the host default is `false`, so `bundledSkillsPath` alone
842
+ loads nothing. `_resolve_bundled_skills_path` maps `<plugin.path>/skills` (first plugin wins), not the
843
+ shared `agents/_skills.py` resolver: the SDK wants ONE parent directory, not a list of skill dirs.
844
+
845
+ **`max_turns` stays client-side.** The host's `maxSteps` does not stop the turn (live: `maxSteps: 2`
846
+ ran 7 steps). The adapter counts calls from the event stream and abandons the host when call N+1
847
+ opens; `len(turnUsages)` from the `result` then replaces the estimate as `num_turns`.
848
+
849
+ **A cut turn keeps the usage of its finished calls.** A turn cut by `max_turns` or a stop gets no
850
+ `result`, so the adapter sums the per-round-trip `usage` frames; the `result`'s total replaces the sum
851
+ when it arrives. Ordering (from SDK/backend source, not a live transcript): call N's `usage` frame
852
+ always precedes the `tool_result` that opens call N+1. The frame is NOT a call boundary — it arrives
853
+ before its call's tools run — so the cap stays on "the previous call's tools have all returned". The
854
+ adapter warns when a cut turn had finished calls but no usage.
855
+
856
+ **One `AssistantMessage` per `communicate()`.** `isStepStart` and `turnUsages` would allow a
857
+ per-round-trip split; today `isStepStart` only merges streamed deltas. `close_window` opens the one
858
+ window at turn start, so head and tail measure ~0.
859
+
860
+ **Known host failures are recategorized** in `_describe_host_error` / `_crash_on_host_error`, ported
861
+ from the out-of-tree `delegate-sdk` adapter that drove the same host and backend:
862
+
863
+ - **Cloudflare WAF block page** (`<title>Continue with UiPath Platform</title>` or "not available in
864
+ your country"): a WAF rule matched shell-like text in the request, not a geo/auth block. A retry
865
+ is blocked again, so the reason carries "content filter" (`AGENT_INVALID_OUTPUT`). Two markers,
866
+ because the host truncates near 50 KB and the country sentence sits after ~48 KB of CSS.
867
+ - **SSE connect timeout**: no response headers, so the backend never started the turn. Rewritten to
868
+ "connection" (`AGENT_API_ERROR`, retried) with "timeout" removed, which would be `AGENT_TIMEOUT`
869
+ (not retried).
870
+ - **Session conflict** ("A reply is already being generated", 409): `_session_id` is dropped so the
871
+ retry starts a new conversation, but only while no turn of that conversation has finished
872
+ (`_conversation_has_history`). On a later turn a new conversation would continue the task without
873
+ the earlier turns, and the row would still be graded as one trajectory. So the retry keeps the
874
+ session. The 409 is short-lived: the backend cancels the reply when the killed host's stream
875
+ disconnects, then releases its turn claim, so the 5 s and 10 s `AGENT_CRASH` retries usually
876
+ succeed. A claim it fails to release expires after `TURN_CLAIM_TTL_SECONDS` (900 s), and the task
877
+ ends as an error. A `session_id` pinned in config counts as history, and dropping it would not
878
+ help anyway: each respawn sends it in `init`, and the SDK falls back to it when `send` carries no
879
+ `sessionId` (`sessionId || this.options.sessionId` in the SDK's `sendMessage`).
880
+
881
+ Not ported: stall-timeout+resend and the S2S token-file refresher. Port them when the need shows.
882
+
883
+ **No crash reason carries the stderr tail.** Categorization matches substrings of the reason, and the
884
+ tail holds incidental text (the sandbox path, so the task id). In build 13599116 "guardrail" in a task
885
+ path turned a transient error into non-retryable `AGENT_INVALID_OUTPUT`. `_log_stderr_tail` logs the
886
+ tail at WARNING instead.
887
+
888
+ **Only an init error that a retry cannot fix is non-retryable.** `AgentConfigError` only on
889
+ `_INIT_CONFIG_ERROR_MARKERS` (auth missing/rejected, missing slugs, unknown env) or on a whole-word
890
+ 401/403. A bare `"401"` substring also matched ports and GUIDs, such as `127.0.0.1:54013`, and ended a
891
+ transient failure with no retry. Any other init error and the 60 s init deadline raise a retryable
892
+ `AgentCrashError`. The shared categorizer matches status codes as whole words too
893
+ (`errors/categorization.py::_mentions_status`): the `AgentCrashError` goes through `categorize_error`,
894
+ whose raw `"401"` substring made the same port and GUID cases a non-retryable auth error. A mid-run
895
+ respawn keeps the same classification: it once made every `AgentConfigError` retryable, so an expired
896
+ token ended the task at `start()` but was retried later.
897
+
898
+ **Clear the process handle on every path that leaves the host dead or dying** — EOF, `error` frame,
899
+ timeout (pre-check AND mid-`wait_for`), stop, `max_turns`. A shipped bug left it set after a mid-read
900
+ timeout, so the next turn reused a host with a `send` in flight
901
+ (`test_timeout_elapsing_mid_read_still_raises_turn_timeout_error` pins it). `_force_kill_host` clears
902
+ the handle before its reap. The adapter never reuses a host after a failed `send`, so no late event
903
+ leaks into the retry.
904
+
905
+ **Registered unconditionally**, like `codex`/`antigravity`; its extra is empty. Node and
906
+ `@uipath/delegate-stdio` are the real prerequisite, resolved lazily in `start()`.
907
+
908
+ **Host resolution: `DELEGATE_STDIO_PATH`, then local installs, then a global one.** Local means
909
+ the cwd, its ancestors and `agents/delegate/`; a local install wins, as in Node. A global install
910
+ is found through the package's `delegate-stdio` bin shim on `PATH`, not `npm root -g`, so the
911
+ resolver runs no npm subprocess. On POSIX the shim is a symlink to the bundle. On Windows it is a
912
+ `.cmd` file beside the prefix's `node_modules`. We never execute the `.cmd`: that would make
913
+ `cmd.exe` parse the arguments again. The home probe and `DELEGATE_SDK_NODE_MODULES` are gone. The
914
+ global search covers "install once, run from anywhere", and the root override only repeated the
915
+ path override. The explicit path stays for CI: a source build has no install root, and an install
916
+ in a temporary directory for each run keeps the runs on a shared host on their own versions.
917
+
918
+ **Windows path length**: an install root that pushes the interop binary path past 260 characters makes
919
+ the spawn fail with `ENOENT`. The docs tell users to install into a short path.
862
920
 
863
921
  ### Delegate agent pricing
864
922
 
@@ -888,16 +946,13 @@ un-mirrored gap, with the same caveat comment). The two tables can price the SAM
888
946
  differently until someone reconciles them — a known, pre-existing state, not something this port
889
947
  introduced or should silently "fix" by picking one number over the other.
890
948
 
891
- ### Delegate agent golden-master and timing-identity coverage
949
+ ### Delegate agent golden-master coverage
892
950
 
893
- `AgentKind.DELEGATE` is excluded from `tests/test_agent_golden_master.py`'s `_NO_GOLDEN_COVERAGE`
894
- allowlist rather than given fixture scenarios: a golden snapshot pins a byte-identical `TurnRecord`
895
- for a scripted event stream, and every event field name below the confirmed `type`/`content`/
896
- `toolName`/`sessionId`/`model`/`usage` set is a guess (see this file's own "Delegate agent" section
897
- above and `delegate_agent.py`'s module docstring). Snapshotting a guess would make it look verified.
898
- Add real scenarios once the fields are confirmed against a live backend.
899
-
900
- This does NOT extend to `tests/test_timing_identity_contract.py::test_delegate_buckets_tile_the_turn`,
901
- which IS a real, unexempted case: the ms-exact four-bucket identity depends only on this agent's own
902
- `close_window`/`_finalize_turn` code (a single window per turn, opened at `_TurnState.__init__` and
903
- closed at finalize), never on the SDK's field names, so there is nothing unverified for it to guess at.
951
+ `tests/_fixtures/golden_streams/delegate_fixtures.py` scripts the host's stdout frames for four
952
+ scenarios: a tool call, a `max_turns` cut, an `error`-frame crash and an orphaned tool. The `event`,
953
+ `result` and `error` frames mirror the live `1.202.1` transcript. The `usage` frame and the `result`
954
+ fields new in `1.203.0` follow the host source of UiPath/Autopilot#6656 (`src/usage.ts` and
955
+ `handleSend`): every usage object carries all four buckets with `input_tokens` exclusive of cache,
956
+ the frames flush before each event and before the `result` or `error`, and `result.usage` is the sum
957
+ of `turnUsages`. No live `1.203.0` transcript has been compared yet. If one differs, change the
958
+ builders and regenerate the snapshots with `GOLDEN_REGEN=1`.
@@ -89,36 +89,33 @@ LOG_TO_FILE=false # Set to true to enable file logging
89
89
  # CODER_EVAL_REMEDIATE_HOME_PLUGINS=0
90
90
 
91
91
  # Delegate agent settings (UiPath Autopilot's Delegate agent, requires Node.js
92
- # on PATH plus `npm install @uipath/delegate-sdk` — a genuinely public package,
93
- # no token needed). See docs/agents/DELEGATE.md.
92
+ # on PATH plus `npm install -g @uipath/delegate-stdio`, a release that accepts the
93
+ # `auth` init option). coder_eval finds the install itself. See docs/agents/DELEGATE.md.
94
94
  #
95
- # DELEGATE_SDK_NODE_MODULES / DELEGATE_SDK_PATH — override the auto-located
96
- # install (ancestor-walk from cwd, plus home); set at most one.
97
- # DELEGATE_SDK_NODE_MODULES="/path/to/install/root"
98
- # DELEGATE_SDK_PATH="/path/to/node_modules/@uipath/delegate-sdk/dist/index.mjs"
99
- #
100
- # DELEGATE_ENV — cloud environment slug (alpha/staging/production/localhost),
101
- # used to derive the backend URL from the auth record's org/tenant slugs.
95
+ # DELEGATE_ENV — cloud environment slug (alpha/staging/production),
96
+ # used to derive the backend URL from the org/tenant slugs.
102
97
  # DELEGATE_ENV="alpha"
103
98
  #
104
99
  # DELEGATE_BACKEND_URL — pin the full agent-service URL directly instead
105
100
  # (wins over DELEGATE_ENV when both are set).
106
101
  # DELEGATE_BACKEND_URL="https://cloud.uipath.com/<org>/<tenant>/delegate_"
107
102
  #
108
- # Auth: either the token set below, or a prior `delegate-sdk`/`delegate-cli`
109
- # login that wrote ~/.aria/sdk-auth.json (read by the Node host itself, not
110
- # by coder_eval). Each var also accepts a DELEGATE_-namespaced spelling
111
- # (DELEGATE_AUTH_TOKEN, DELEGATE_TENANT_ID, ...), checked first -- prefer that
112
- # spelling in a shared environment, since the bare names collide with what
113
- # other tooling (npm, Vault, Terraform) commonly exports.
114
- # AUTH_TOKEN="..."
115
- # TENANT_ID="..."
116
- # ORG_ID="..."
103
+ # Auth: either the token set below, or a prior `delegate-cli login`
104
+ # that wrote ~/.aria/sdk-auth.json (read by the Node host itself, not
105
+ # by coder_eval). coder_eval sends these values to the host as its `auth`
106
+ # init option, so the token stays out of the environment that the agent's
107
+ # shell tools inherit. Each var also accepts the bare spelling (AUTH_TOKEN,
108
+ # TENANT_ID, ORG_ID, ORG_SLUG, TENANT_SLUG) as a fallback -- prefer the
109
+ # DELEGATE_ spelling in a shared environment, since the bare names collide
110
+ # with what other tooling (npm, Vault, Terraform) commonly exports.
111
+ # DELEGATE_AUTH_TOKEN="..."
112
+ # DELEGATE_TENANT_ID="..."
113
+ # DELEGATE_ORG_ID="..."
117
114
  # With DELEGATE_ENV (not DELEGATE_BACKEND_URL) also set these two -- the
118
115
  # human-readable org/tenant names, not the GUIDs above -- or init fails with
119
- # "--env alpha needs org/tenant slugs". See docs/agents/DELEGATE.md.
120
- # ORG_SLUG="..."
121
- # TENANT_SLUG="..."
116
+ # 'env="alpha" requires org/tenant slugs'. See docs/agents/DELEGATE.md.
117
+ # DELEGATE_ORG_SLUG="..."
118
+ # DELEGATE_TENANT_SLUG="..."
122
119
 
123
120
  # Usage Telemetry (anonymous; on by default).
124
121
  # Disable entirely:
@@ -1175,8 +1175,8 @@ jobs:
1175
1175
  retention-days: 7
1176
1176
 
1177
1177
  delegate-live-tests:
1178
- # Live Delegate e2e: spawns the real Node host (agents/delegate/delegate_host.mjs)
1179
- # wrapping the public @uipath/delegate-sdk against a real UiPath backend. Runs on
1178
+ # Live Delegate e2e: spawns the real Node host from the public
1179
+ # @uipath/delegate-stdio package against a real UiPath backend. Runs on
1180
1180
  # every PR/push like the other live-test jobs (codex-live-tests, byoa-live-tests)
1181
1181
  # now that the DELEGATE_ROPC_* secrets are provisioned; the presence-check gate
1182
1182
  # below skips cleanly ONLY on a fork PR (no secrets available there) and fails
@@ -1187,10 +1187,10 @@ jobs:
1187
1187
  # and implemented in coder_eval_uipath/eval_runner/scripts/ci/refresh-auth.sh —
1188
1188
  # rather than a long-lived AUTH_TOKEN secret, since a minted token's ~1h TTL
1189
1189
  # would make a static secret stale between runs. A dedicated bot user's
1190
- # username/password is the durable credential; the Delegate SDK reads the
1191
- # minted token straight from AUTH_TOKEN/TENANT_ID/ORG_ID (see
1192
- # docs/agents/DELEGATE.md), so no sdk-auth.json or client-secret refresh chain
1193
- # is needed here.
1190
+ # username/password is the durable credential; the agent sends the minted
1191
+ # token (DELEGATE_AUTH_TOKEN, with DELEGATE_TENANT_ID / DELEGATE_ORG_ID) to the
1192
+ # host as its `auth` init option (see docs/agents/DELEGATE.md), so no
1193
+ # sdk-auth.json or client-secret refresh chain is needed here.
1194
1194
  name: Delegate Live E2E (ROPC)
1195
1195
  runs-on: uipath-ubuntu-24.04
1196
1196
  timeout-minutes: 15
@@ -1260,7 +1260,7 @@ jobs:
1260
1260
  if: steps.gate.outputs.present == 'true'
1261
1261
  run: uv sync --frozen --extra dev
1262
1262
 
1263
- - name: Install @uipath/delegate-sdk (public npm, no token needed)
1263
+ - name: Install @uipath/delegate-stdio (public npm, no token needed)
1264
1264
  if: steps.gate.outputs.present == 'true'
1265
1265
  working-directory: src/coder_eval/agents/delegate
1266
1266
  # --safe-chain-skip-minimum-package-age (not a growing exclusion-list entry
@@ -1372,17 +1372,15 @@ jobs:
1372
1372
  - name: Run fizzbuzz delegate task (assert PASS)
1373
1373
  if: steps.gate.outputs.present == 'true'
1374
1374
  env:
1375
- DELEGATE_SDK_NODE_MODULES: ${{ github.workspace }}/src/coder_eval/agents/delegate
1376
1375
  DELEGATE_ENV: ${{ github.event.inputs.delegate_uipath_env || 'alpha' }}
1377
- AUTH_TOKEN: ${{ steps.ropc.outputs.access_token }}
1378
- TENANT_ID: ${{ secrets.DELEGATE_TENANT_ID }}
1379
- ORG_ID: ${{ secrets.DELEGATE_ORG_ID }}
1380
- # Forwarded into `auth.organizationName` / `auth.tenantName` by
1381
- # DelegateAgent._build_init_options (see .claude/notes/agents.md §
1382
- # Delegate agent) — needed alongside the GUIDs above whenever
1383
- # `environment` (rather than `backendUrl`) resolves the backend.
1384
- ORG_SLUG: ${{ secrets.DELEGATE_ORG_SLUG }}
1385
- TENANT_SLUG: ${{ secrets.DELEGATE_TENANT_SLUG }}
1376
+ DELEGATE_AUTH_TOKEN: ${{ steps.ropc.outputs.access_token }}
1377
+ DELEGATE_TENANT_ID: ${{ secrets.DELEGATE_TENANT_ID }}
1378
+ DELEGATE_ORG_ID: ${{ secrets.DELEGATE_ORG_ID }}
1379
+ # Needed alongside the GUIDs above whenever DELEGATE_ENV (rather than
1380
+ # DELEGATE_BACKEND_URL) resolves the backend; the agent sends all five to
1381
+ # the host as its `auth` init option (see .claude/notes/agents.md § Delegate agent).
1382
+ DELEGATE_ORG_SLUG: ${{ secrets.DELEGATE_ORG_SLUG }}
1383
+ DELEGATE_TENANT_SLUG: ${{ secrets.DELEGATE_TENANT_SLUG }}
1386
1384
  run: .venv/bin/coder-eval run tasks/delegate/fizzbuzz_delegate.yaml --run-dir runs/delegate-live
1387
1385
 
1388
1386
  - name: Verify Delegate live run PASSED
@@ -1405,17 +1403,16 @@ jobs:
1405
1403
  - name: Run Delegate live unit tests (assert PASS)
1406
1404
  if: steps.gate.outputs.present == 'true'
1407
1405
  env:
1408
- DELEGATE_SDK_NODE_MODULES: ${{ github.workspace }}/src/coder_eval/agents/delegate
1409
1406
  DELEGATE_ENV: ${{ github.event.inputs.delegate_uipath_env || 'alpha' }}
1410
- AUTH_TOKEN: ${{ steps.ropc.outputs.access_token }}
1411
- TENANT_ID: ${{ secrets.DELEGATE_TENANT_ID }}
1412
- ORG_ID: ${{ secrets.DELEGATE_ORG_ID }}
1413
- ORG_SLUG: ${{ secrets.DELEGATE_ORG_SLUG }}
1414
- TENANT_SLUG: ${{ secrets.DELEGATE_TENANT_SLUG }}
1407
+ DELEGATE_AUTH_TOKEN: ${{ steps.ropc.outputs.access_token }}
1408
+ DELEGATE_TENANT_ID: ${{ secrets.DELEGATE_TENANT_ID }}
1409
+ DELEGATE_ORG_ID: ${{ secrets.DELEGATE_ORG_ID }}
1410
+ DELEGATE_ORG_SLUG: ${{ secrets.DELEGATE_ORG_SLUG }}
1411
+ DELEGATE_TENANT_SLUG: ${{ secrets.DELEGATE_TENANT_SLUG }}
1415
1412
  run: |
1416
1413
  mkdir -p tmp
1417
1414
  .venv/bin/pytest tests/test_delegate_agent_live.py \
1418
- -m live -n0 -v --tb=short --strict-markers -ra \
1415
+ -m live -n0 -v --tb=short --strict-markers -ra --log-level=DEBUG \
1419
1416
  --junit-xml=tmp/junit-delegate-live.xml
1420
1417
 
1421
1418
  - name: Assert Delegate live tests actually ran (not silently skipped)