coder-eval 0.8.5__tar.gz → 0.8.7rc10__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 (545) hide show
  1. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/release.yml +119 -23
  2. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/CHANGELOG.md +9 -0
  3. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/PKG-INFO +4 -4
  4. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/pyproject.toml +19 -12
  5. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/__init__.py +1 -1
  6. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agent.py +5 -0
  7. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/antigravity_agent.py +9 -4
  8. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/claude_code_agent.py +4 -0
  9. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/codex_agent.py +197 -12
  10. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/noop_agent.py +1 -0
  11. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/skill_triggered.py +9 -9
  12. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestrator.py +9 -0
  13. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/pricing.py +14 -0
  14. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/mock_agent.py +8 -1
  15. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/text_stub_agent.py +6 -1
  16. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_codex_agent.py +467 -0
  17. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_early_stop.py +8 -0
  18. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_orchestrator.py +4 -1
  19. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_simulation_integration.py +6 -1
  20. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_skill_triggered.py +16 -0
  21. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_user_simulator.py +2 -0
  22. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/uv.lock +33 -33
  23. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-code-review-full.md +0 -0
  24. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  25. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-code-review.md +0 -0
  26. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-create-plan.md +0 -0
  27. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-implement-plan.md +0 -0
  28. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-review.md +0 -0
  29. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-run-analysis.md +0 -0
  30. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/commands/coder-eval-task-create.md +0 -0
  31. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/harness-candidates.md +0 -0
  32. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/shared/axes.md +0 -0
  33. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/shared/multi-model-review.md +0 -0
  34. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/shared/review-rubric.md +0 -0
  35. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/shared/run-layout.md +0 -0
  36. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/workflows/cr-axis.js +0 -0
  37. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.claude/workflows/cr-parent.js +0 -0
  38. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.env.example +0 -0
  39. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/CODEOWNERS +0 -0
  40. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  41. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  42. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/code_review.md +0 -0
  43. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/dependabot.yml +0 -0
  44. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/claude-pr-review.yml +0 -0
  45. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/codeql.yml +0 -0
  46. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/conventional-commits.yml +0 -0
  47. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/docker-publish.yml +0 -0
  48. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/pr-checks.yml +0 -0
  49. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.github/workflows/publish-testpypi.yml +0 -0
  50. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.gitignore +0 -0
  51. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.pre-commit-config.yaml +0 -0
  52. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/.python-version +0 -0
  53. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/CLAUDE.md +0 -0
  54. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/CODE_OF_CONDUCT.md +0 -0
  55. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/CONTRIBUTING.md +0 -0
  56. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/LICENSE +0 -0
  57. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/Makefile +0 -0
  58. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/NOTICE +0 -0
  59. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/README.md +0 -0
  60. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/SECURITY.md +0 -0
  61. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docker/Dockerfile +0 -0
  62. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docker/Dockerfile.runtime +0 -0
  63. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docker/coder_eval_entrypoint.sh +0 -0
  64. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  65. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/AB_EXPERIMENTS.md +0 -0
  66. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/BYOD.md +0 -0
  67. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/CODEX_AGENT_GUIDE.md +0 -0
  68. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/DOCKER_ISOLATION.md +0 -0
  69. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/IDEAS.md +0 -0
  70. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/TASK_DEFINITION_GUIDE.md +0 -0
  71. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/USER_GUIDE.md +0 -0
  72. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/assets/hero.gif +0 -0
  73. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/01-first-evaluation.md +0 -0
  74. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/02-ci-pipeline.md +0 -0
  75. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/03-evalboard-local.md +0 -0
  76. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/04-writing-a-task.md +0 -0
  77. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/05-comparing-models.md +0 -0
  78. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/06-use-docker-isolation.md +0 -0
  79. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/docs/tutorials/README.md +0 -0
  80. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/.gitignore +0 -0
  81. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/README.md +0 -0
  82. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  83. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/col-help.tsx +0 -0
  84. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  85. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/harness-badge.tsx +0 -0
  86. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/scroll-table.tsx +0 -0
  87. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/search-box.tsx +0 -0
  88. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/unit-toggle.tsx +0 -0
  89. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/version-list.tsx +0 -0
  90. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_components/window-selector.tsx +0 -0
  91. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_overview/daily-chart.tsx +0 -0
  92. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_overview/tag-rail.tsx +0 -0
  93. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  94. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/_overview/window-summary.tsx +0 -0
  95. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/api/download/route.ts +0 -0
  96. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/api/file/route.ts +0 -0
  97. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
  98. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/api/refresh/route.ts +0 -0
  99. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/error.tsx +0 -0
  100. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/globals.css +0 -0
  101. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/icon.png +0 -0
  102. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/layout.tsx +0 -0
  103. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/page.tsx +0 -0
  104. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/path-to-ga/page.tsx +0 -0
  105. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
  106. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/trends/actions.ts +0 -0
  107. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/trends/page.tsx +0 -0
  108. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/trends/trends-view.tsx +0 -0
  109. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  110. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/watchlist/page.tsx +0 -0
  111. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  112. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/next-env.d.ts +0 -0
  113. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/next.config.mjs +0 -0
  114. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/package.json +0 -0
  115. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/pnpm-lock.yaml +0 -0
  116. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/postcss.config.mjs +0 -0
  117. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/public/harness/antigravity.png +0 -0
  118. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/public/harness/claude-code.png +0 -0
  119. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/public/harness/codex.png +0 -0
  120. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/public/uipath.png +0 -0
  121. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/tailwind.config.ts +0 -0
  122. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/tsconfig.json +0 -0
  123. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/vitest.config.ts +0 -0
  124. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/evalboard/vitest.setup.ts +0 -0
  125. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/default.yaml +0 -0
  126. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/early-stop-ab.yaml +0 -0
  127. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/model-comparison.yaml +0 -0
  128. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/permissions-smoke.yaml +0 -0
  129. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/plugin-comparison.yaml +0 -0
  130. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/prompt-mutations-example.yaml +0 -0
  131. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/experiments/smoke_variants.yaml +0 -0
  132. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/osv-scanner.toml +0 -0
  133. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/.gitattributes +0 -0
  134. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/__init__.py +0 -0
  135. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/_logging.py +0 -0
  136. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/registry.py +0 -0
  137. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/agents/watchdog.py +0 -0
  138. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/analysis.py +0 -0
  139. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/__init__.py +0 -0
  140. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/aggregate_command.py +0 -0
  141. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/console.py +0 -0
  142. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/evaluate_command.py +0 -0
  143. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/plan_command.py +0 -0
  144. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/report_command.py +0 -0
  145. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/run_command.py +0 -0
  146. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/run_helpers.py +0 -0
  147. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  148. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/cli/utils.py +0 -0
  149. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/config.py +0 -0
  150. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/__init__.py +0 -0
  151. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  152. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/agent_judge.py +0 -0
  153. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/base.py +0 -0
  154. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/classification_match.py +0 -0
  155. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/command_executed.py +0 -0
  156. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  157. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/file_check.py +0 -0
  158. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/file_contains.py +0 -0
  159. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/file_exists.py +0 -0
  160. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  161. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/json_check.py +0 -0
  162. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/llm_judge.py +0 -0
  163. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/reference_comparison.py +0 -0
  164. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/run_command.py +0 -0
  165. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/criteria/uipath_eval.py +0 -0
  166. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/__init__.py +0 -0
  167. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/agent.py +0 -0
  168. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/budget.py +0 -0
  169. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/categories.py +0 -0
  170. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/categorization.py +0 -0
  171. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/executor.py +0 -0
  172. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/judge.py +0 -0
  173. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/retry.py +0 -0
  174. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/errors/timeout.py +0 -0
  175. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/__init__.py +0 -0
  176. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/checker.py +0 -0
  177. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  178. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  179. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/judge_context.py +0 -0
  180. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/judge_models.py +0 -0
  181. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  182. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/judge_usage.py +0 -0
  183. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/sub_agent.py +0 -0
  184. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/summaries.py +0 -0
  185. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  186. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/formatting.py +0 -0
  187. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/isolation/__init__.py +0 -0
  188. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/isolation/docker_runner.py +0 -0
  189. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/logging_config.py +0 -0
  190. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/__init__.py +0 -0
  191. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/agent_config.py +0 -0
  192. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/container_paths.py +0 -0
  193. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/criteria.py +0 -0
  194. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/enums.py +0 -0
  195. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/experiment.py +0 -0
  196. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/judge.py +0 -0
  197. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/judge_defaults.py +0 -0
  198. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/limits.py +0 -0
  199. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/merge_strategy.py +0 -0
  200. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/mutations.py +0 -0
  201. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/results.py +0 -0
  202. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/routing.py +0 -0
  203. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/sandbox.py +0 -0
  204. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/tasks.py +0 -0
  205. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/telemetry.py +0 -0
  206. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/models/templates.py +0 -0
  207. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/__init__.py +0 -0
  208. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/batch.py +0 -0
  209. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/config.py +0 -0
  210. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/config_merge.py +0 -0
  211. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/early_stop.py +0 -0
  212. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/evaluation.py +0 -0
  213. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/experiment.py +0 -0
  214. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/overrides.py +0 -0
  215. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/orchestration/task_loader.py +0 -0
  216. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/path_utils.py +0 -0
  217. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/plugins.py +0 -0
  218. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/py.typed +0 -0
  219. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/reports.py +0 -0
  220. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/reports_experiment.py +0 -0
  221. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/reports_html.py +0 -0
  222. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/reports_stats.py +0 -0
  223. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/resources/__init__.py +0 -0
  224. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  225. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/resources/tags.yaml +0 -0
  226. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/sandbox.py +0 -0
  227. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/__init__.py +0 -0
  228. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/ast_similarity.py +0 -0
  229. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/complexity.py +0 -0
  230. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/quality.py +0 -0
  231. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/signature_similarity.py +0 -0
  232. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/similarity.py +0 -0
  233. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/scoring/token_similarity.py +0 -0
  234. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/simulation/__init__.py +0 -0
  235. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/simulation/termination.py +0 -0
  236. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/simulation/user_simulator.py +0 -0
  237. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/streaming/__init__.py +0 -0
  238. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/streaming/callbacks.py +0 -0
  239. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/streaming/collector.py +0 -0
  240. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/streaming/events.py +0 -0
  241. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/streaming/renderers.py +0 -0
  242. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/streaming/wire.py +0 -0
  243. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/telemetry.py +0 -0
  244. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/src/coder_eval/utils.py +0 -0
  245. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/README.md +0 -0
  246. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agentless_smoke_test.yaml +0 -0
  247. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/antigravity_hello_world.yaml +0 -0
  248. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  249. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/claude_hello_world.yaml +0 -0
  250. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  251. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  252. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/claude_subagent_test.yaml +0 -0
  253. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  254. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_hello_world.yaml +0 -0
  255. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_parallel_commands.yaml +0 -0
  256. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  257. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_skills_test.yaml +0 -0
  258. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_string_utils.yaml +0 -0
  259. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/codex_subagent_test.yaml +0 -0
  260. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  261. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/agents/subagent_merge_sort.yaml +0 -0
  262. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/byod_smoke_test.yaml +0 -0
  263. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dataset_example.yaml +0 -0
  264. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/datasets/sentiment.jsonl +0 -0
  265. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  266. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  267. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  268. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  269. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  270. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  271. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/fibonacci_with_template.yaml +0 -0
  272. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/hello_date.yaml +0 -0
  273. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/inline_starter_example.yaml +0 -0
  274. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/internal/session_resumption.yaml +0 -0
  275. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/mock_path_dirs_smoke.yaml +0 -0
  276. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  277. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  278. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
  279. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  280. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  281. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  282. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  283. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  284. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  285. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  286. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  287. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  288. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/README.md +0 -0
  289. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  290. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  291. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  292. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  293. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  294. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  295. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  296. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  297. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  298. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  299. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/sentiment_classification.yaml +0 -0
  300. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_agent_judge.yaml +0 -0
  301. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_budget_exceeded.yaml +0 -0
  302. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  303. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_llm_judge.yaml +0 -0
  304. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_negative_path.yaml +0 -0
  305. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_task_timeout.yaml +0 -0
  306. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/smoke_variants.yaml +0 -0
  307. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/test_sandbox.yaml +0 -0
  308. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tasks/token_check.yaml +0 -0
  309. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/templates/byod_smoke_test/Dockerfile +0 -0
  310. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/templates/fibonacci-starter/README.md +0 -0
  311. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/templates/fibonacci-starter/src/main.py +0 -0
  312. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/templates/fibonacci-starter/tests/test_main.py +0 -0
  313. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/__init__.py +0 -0
  314. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/__init__.py +0 -0
  315. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/__init__.py +0 -0
  316. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  317. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  318. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  319. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  320. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  321. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  322. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  323. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  324. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  325. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  326. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  327. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  328. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  329. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  330. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  331. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  332. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  333. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  334. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  335. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  336. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  337. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  338. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  339. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  340. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  341. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  342. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/run_full.md +0 -0
  343. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
  344. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/_path_helpers.py +0 -0
  345. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/conftest.py +0 -0
  346. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/__init__.py +0 -0
  347. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  348. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  349. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  350. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  351. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/__init__.py +0 -0
  352. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/__init__.py +0 -0
  353. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/base.py +0 -0
  354. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  355. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  356. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  357. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  358. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  359. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  360. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  361. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  362. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  363. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce023_no_proxy_shim_import.py +0 -0
  364. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  365. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/ce025_live_verdict_consistency.py +0 -0
  366. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_agent_timing_access.py +0 -0
  367. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  368. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  369. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_silent_except.py +0 -0
  370. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  371. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  372. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  373. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  374. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/open_explicit_encoding.py +0 -0
  375. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  376. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/register_criterion_required.py +0 -0
  377. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  378. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  379. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/runner.py +0 -0
  380. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/lint/violation.py +0 -0
  381. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent.py +0 -0
  382. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_config_no_timing_fields.py +0 -0
  383. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_config_optional_type.py +0 -0
  384. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_config_registry_dispatch.py +0 -0
  385. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_config_sdk_decoupling.py +0 -0
  386. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_golden_master.py +0 -0
  387. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_judge_criterion.py +0 -0
  388. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_telemetry.py +0 -0
  389. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_telemetry_advanced.py +0 -0
  390. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agent_timeout.py +0 -0
  391. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_agentless.py +0 -0
  392. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_aggregate.py +0 -0
  393. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_antigravity_agent.py +0 -0
  394. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_byoa_plugin.py +0 -0
  395. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_byoa_plugin_live.py +0 -0
  396. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_byod_feature.py +0 -0
  397. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_checker_logging.py +0 -0
  398. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_classification_match.py +0 -0
  399. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_claude_settings_enforcement_live.py +0 -0
  400. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cleanup_preservation_guard.py +0 -0
  401. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cli_backend_flag.py +0 -0
  402. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cli_empty_glob.py +0 -0
  403. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cli_sdk_options.py +0 -0
  404. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cli_set_overrides.py +0 -0
  405. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cli_telemetry.py +0 -0
  406. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_cli_type_flag.py +0 -0
  407. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_code_review_bugs.py +0 -0
  408. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_codex_agent_live.py +0 -0
  409. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_codex_agent_unit.py +0 -0
  410. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_codex_token_mapping.py +0 -0
  411. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_command_executed.py +0 -0
  412. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_command_statistics.py +0 -0
  413. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_command_telemetry_result_data.py +0 -0
  414. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_commands_efficiency.py +0 -0
  415. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_config_lineage.py +0 -0
  416. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_config_merge_engine.py +0 -0
  417. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_config_precedence.py +0 -0
  418. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_continuous_scoring.py +0 -0
  419. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_criterion_result_round_trip.py +0 -0
  420. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_custom_lint.py +0 -0
  421. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_dataset_expansion.py +0 -0
  422. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_debug_logging.py +0 -0
  423. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_docker_build_failure.py +0 -0
  424. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_docker_runner_container_death.py +0 -0
  425. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_docker_runner_mounts.py +0 -0
  426. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_docker_runner_stream_limit.py +0 -0
  427. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_docker_wildcard_env.py +0 -0
  428. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_docker_workdir_live.py +0 -0
  429. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_driver_resolver.py +0 -0
  430. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_error_handling.py +0 -0
  431. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_evaluate_command.py +0 -0
  432. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_evaluator.py +0 -0
  433. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_event_collector.py +0 -0
  434. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_experiment_cli.py +0 -0
  435. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_experiment_loader.py +0 -0
  436. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_experiment_models.py +0 -0
  437. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_experiment_reports.py +0 -0
  438. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_experiment_resolver.py +0 -0
  439. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_experiment_runner.py +0 -0
  440. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_file_check.py +0 -0
  441. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_file_contains_scoring.py +0 -0
  442. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_formatting.py +0 -0
  443. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_git_clone_failure.py +0 -0
  444. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_heartbeat_watchdog.py +0 -0
  445. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_ignore_patterns_negation.py +0 -0
  446. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_image_from_dockerfiles.py +0 -0
  447. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_integration.py +0 -0
  448. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_json_check.py +0 -0
  449. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_judge_anthropic.py +0 -0
  450. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_judge_bedrock.py +0 -0
  451. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_judge_burn_in_live.py +0 -0
  452. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_judge_context_builder.py +0 -0
  453. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_judge_models.py +0 -0
  454. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_judge_persistence.py +0 -0
  455. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_lint_no_top_level_run_limits.py +0 -0
  456. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_lint_runner.py +0 -0
  457. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_llm_judge_criterion.py +0 -0
  458. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_log_tail_buffer.py +0 -0
  459. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_logging.py +0 -0
  460. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_logging_isolation.py +0 -0
  461. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_merge_characterization.py +0 -0
  462. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_merge_strategy_annotations.py +0 -0
  463. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_merge_unification.py +0 -0
  464. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_models.py +0 -0
  465. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_mutations.py +0 -0
  466. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_new_criteria.py +0 -0
  467. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_node_env_config.py +0 -0
  468. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_optional_dependencies.py +0 -0
  469. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_orchestrator_error_log_tail.py +0 -0
  470. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_orchestrator_telemetry.py +0 -0
  471. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_overrides_engine.py +0 -0
  472. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_parallel.py +0 -0
  473. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_path_utils.py +0 -0
  474. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_plan_command.py +0 -0
  475. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_plugin_processing.py +0 -0
  476. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_plugins.py +0 -0
  477. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_post_run.py +0 -0
  478. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_pr_review_workflow.py +0 -0
  479. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_pre_run.py +0 -0
  480. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_preservation_mode.py +0 -0
  481. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_pricing_registry.py +0 -0
  482. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reference_comparison_scoring.py +0 -0
  483. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reference_evaluator.py +0 -0
  484. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reference_missing_file.py +0 -0
  485. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reference_models.py +0 -0
  486. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reference_orchestrator.py +0 -0
  487. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_registry.py +0 -0
  488. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_replicate_stats.py +0 -0
  489. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_report_command.py +0 -0
  490. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reports.py +0 -0
  491. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reports_experiment.py +0 -0
  492. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reports_html.py +0 -0
  493. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_reports_stats.py +0 -0
  494. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_resolve_task_files.py +0 -0
  495. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_resume.py +0 -0
  496. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_retry_logic_comprehensive.py +0 -0
  497. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_routing.py +0 -0
  498. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_run_command_stdout.py +0 -0
  499. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_run_limits_models.py +0 -0
  500. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_run_limits_orchestrator.py +0 -0
  501. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_run_limits_resolver.py +0 -0
  502. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_runtime_tool_versions.py +0 -0
  503. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sandbox.py +0 -0
  504. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sandbox_layer_builder.py +0 -0
  505. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sandbox_optional.py +0 -0
  506. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sandbox_security.py +0 -0
  507. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sandbox_symlink_preservation.py +0 -0
  508. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sandbox_templates.py +0 -0
  509. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_scorers.py +0 -0
  510. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_scoring_quality.py +0 -0
  511. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sdk_option_classification.py +0 -0
  512. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_simulation_config.py +0 -0
  513. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_simulation_termination.py +0 -0
  514. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_simulation_trials.py +0 -0
  515. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_agent_integration.py +0 -0
  516. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_batch.py +0 -0
  517. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_callbacks.py +0 -0
  518. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_cli.py +0 -0
  519. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_events.py +0 -0
  520. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_orchestrator.py +0 -0
  521. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_renderers.py +0 -0
  522. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_streaming_wire.py +0 -0
  523. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_sub_agent_runner.py +0 -0
  524. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_success_criterion_union.py +0 -0
  525. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_suite_rollup.py +0 -0
  526. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_summaries.py +0 -0
  527. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_tags.py +0 -0
  528. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_task_definition_unknown_fields.py +0 -0
  529. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_teardown_interrupt.py +0 -0
  530. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_telemetry.py +0 -0
  531. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_template_env_expansion.py +0 -0
  532. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_threshold_enforcement.py +0 -0
  533. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_timeout_batch.py +0 -0
  534. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_timeout_categorization.py +0 -0
  535. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_timeout_exceptions.py +0 -0
  536. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_timeout_models.py +0 -0
  537. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_timeout_orchestrator.py +0 -0
  538. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_token_usage.py +0 -0
  539. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_uipath_eval.py +0 -0
  540. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_utils.py +0 -0
  541. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_utterance_extraction.py +0 -0
  542. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_variant_prompt_file.py +0 -0
  543. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_verdict_tool.py +0 -0
  544. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_watchdog.py +0 -0
  545. {coder_eval-0.8.5 → coder_eval-0.8.7rc10}/tests/test_yaml_migration.py +0 -0
@@ -13,6 +13,13 @@ name: Release
13
13
  # and push.
14
14
  # (Continuous :latest / :sha- agent images still publish on every main push via
15
15
  # docker-publish.yml -- only the versioned release artifacts gate on this run.)
16
+ #
17
+ # PRERELEASE mode (dispatched from a NON-main branch): instead of bumping and
18
+ # pushing main, stamp a throwaway `<next-patch>rc<run#>` version, then build and
19
+ # publish the wheel to public PyPI + a `:<version>` GHCR image. It does NOT move
20
+ # `:latest`, tag, commit, or push to main. This lets a branch be dry-run on the
21
+ # ADO nightly infra before merge (pinned via the pipeline's `coderEvalVersion`).
22
+ # The `bump` input is ignored off main. On `main` the behavior is unchanged.
16
23
 
17
24
  on:
18
25
  workflow_dispatch:
@@ -47,9 +54,9 @@ jobs:
47
54
  runs-on: ubuntu-latest
48
55
  timeout-minutes: 15
49
56
  outputs:
50
- # Exposed so the downstream publish-pypi job can gate on a real release
51
- # having been cut (empty => no version bumped => skip PyPI publish).
52
- version: ${{ steps.release.outputs.version }}
57
+ # Exposed so the downstream publish-pypi job gates on a version having been
58
+ # produced (real release on main, or a stamped prerelease on a branch).
59
+ version: ${{ steps.ver.outputs.version }}
53
60
  env:
54
61
  # The self-hosted `uipath-ubuntu-latest` runners enforce a minimum
55
62
  # package-age safe-chain check on uv installs; on GitHub-hosted runners
@@ -58,8 +65,13 @@ jobs:
58
65
  SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS: "openai-codex-cli-bin,openai-codex"
59
66
 
60
67
  steps:
68
+ # Only a real release (main) needs the app token: semantic-release pushes the
69
+ # bump commit + tag to the ruleset-protected main branch, and only this app
70
+ # has the bypass. A prerelease from a branch never commits or pushes, so it
71
+ # skips the token and checks out with the default GITHUB_TOKEN.
61
72
  - name: Mint release app token
62
73
  id: app-token
74
+ if: github.ref == 'refs/heads/main'
63
75
  uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
64
76
  with:
65
77
  app-id: ${{ secrets.RELEASE_APP_ID }}
@@ -70,8 +82,9 @@ jobs:
70
82
  with:
71
83
  fetch-depth: 0 # semantic-release needs full history for tags + changelog
72
84
  # Persisted in .git config so semantic-release's push to main is
73
- # authenticated as the app (which bypasses the branch ruleset).
74
- token: ${{ steps.app-token.outputs.token }}
85
+ # authenticated as the app (which bypasses the branch ruleset). Falls back
86
+ # to the default token for a prerelease (no push, read-only checkout).
87
+ token: ${{ steps.app-token.outputs.token || github.token }}
75
88
 
76
89
  - name: Set up Python 3.13
77
90
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
@@ -83,11 +96,38 @@ jobs:
83
96
  with:
84
97
  enable-cache: true
85
98
 
99
+ # Release mode is chosen by the dispatched ref: main => real release (the
100
+ # semantic-release path below); any other branch => prerelease (stamp a
101
+ # throwaway rc version, publish, never touch main). Keying off the ref (not a
102
+ # new input) keeps this dispatchable from a branch — a new input would have to
103
+ # exist on the default branch first to be accepted.
104
+ - name: Determine release mode
105
+ id: mode
106
+ env:
107
+ REF: ${{ github.ref }}
108
+ RUN_NUMBER: ${{ github.run_number }}
109
+ run: |
110
+ set -euo pipefail
111
+ if [ "$REF" = "refs/heads/main" ]; then
112
+ echo "prerelease=false" >> "$GITHUB_OUTPUT"
113
+ echo "Mode: RELEASE (main)"
114
+ else
115
+ # Next patch of the current version, suffixed with the run number so
116
+ # repeated dispatches never collide on PyPI. An exact `==` pin installs
117
+ # it even though pip/uv skip prereleases by default.
118
+ NEXT=$(python3 -c 'import re,tomllib; v=tomllib.load(open("pyproject.toml","rb"))["project"]["version"]; m=re.match(r"(\d+)\.(\d+)\.(\d+)",v); print("{}.{}.{}".format(int(m[1]),int(m[2]),int(m[3])+1))')
119
+ PRE="${NEXT}rc${RUN_NUMBER}"
120
+ echo "prerelease=true" >> "$GITHUB_OUTPUT"
121
+ echo "version=${PRE}" >> "$GITHUB_OUTPUT"
122
+ echo "Mode: PRERELEASE ${PRE}"
123
+ fi
124
+
86
125
  - name: Install build + release tools
87
126
  run: uv tool install python-semantic-release && uv tool install twine
88
127
 
89
128
  - name: Run semantic-release (bump + tag, no push yet)
90
129
  id: release
130
+ if: steps.mode.outputs.prerelease != 'true'
91
131
  env:
92
132
  GH_TOKEN: ${{ steps.app-token.outputs.token }}
93
133
  # Passed via env (not interpolated into the script) per GitHub's
@@ -105,8 +145,45 @@ jobs:
105
145
  # A dispatch always cuts a release; report the just-published version.
106
146
  echo "version=$($PSR version --print)" >> "$GITHUB_OUTPUT"
107
147
 
148
+ # PRERELEASE: stamp the rc version into the two canonical spots (mirrors
149
+ # publish-testpypi.yml), then refresh uv.lock so the Dockerfile's
150
+ # `uv export --frozen` accepts the bumped project version. No commit is made —
151
+ # the working tree is what `uv build` and the image build below consume.
152
+ - name: Stamp prerelease version
153
+ if: steps.mode.outputs.prerelease == 'true'
154
+ env:
155
+ PRE_VERSION: ${{ steps.mode.outputs.version }}
156
+ run: |
157
+ set -euo pipefail
158
+ python3 - <<'PY'
159
+ import os, re, pathlib
160
+ version = os.environ["PRE_VERSION"]
161
+ for path, key in (("pyproject.toml", "version"), ("src/coder_eval/__init__.py", "__version__")):
162
+ p = pathlib.Path(path)
163
+ new, n = re.subn(rf'(?m)^{key}\s*=\s*".+?"$', f'{key} = "{version}"', p.read_text(), count=1)
164
+ if n != 1:
165
+ raise SystemExit(f"version pattern did not match {path} (matched {n})")
166
+ p.write_text(new)
167
+ print(f"Stamped prerelease version: {version}")
168
+ PY
169
+ uv lock
170
+
171
+ # Single source of truth for the steps below: the real release version (main)
172
+ # or the stamped prerelease version (branch).
173
+ - name: Resolve published version
174
+ id: ver
175
+ env:
176
+ REL: ${{ steps.release.outputs.version }}
177
+ PRE: ${{ steps.mode.outputs.version }}
178
+ run: |
179
+ set -euo pipefail
180
+ V="${REL:-$PRE}"
181
+ if [ -z "$V" ]; then echo "no version resolved" >&2; exit 1; fi
182
+ echo "version=$V" >> "$GITHUB_OUTPUT"
183
+ echo "Publishing version: $V"
184
+
108
185
  - name: Regenerate uv.lock and amend release commit
109
- if: steps.release.outputs.version != ''
186
+ if: steps.mode.outputs.prerelease != 'true' && steps.release.outputs.version != ''
110
187
  run: |
111
188
  uv lock
112
189
  if ! git diff --quiet uv.lock; then
@@ -119,43 +196,64 @@ jobs:
119
196
  fi
120
197
 
121
198
  - name: Push release commit and tags
122
- if: steps.release.outputs.version != ''
199
+ if: steps.mode.outputs.prerelease != 'true' && steps.release.outputs.version != ''
123
200
  run: git push origin main "v${{ steps.release.outputs.version }}"
124
201
 
125
202
  - name: Build wheel + sdist
126
- if: steps.release.outputs.version != ''
203
+ if: steps.ver.outputs.version != ''
127
204
  run: uv build
128
205
 
129
206
  # Hand the exact built artifacts to the publish-pypi job. Publishing to
130
207
  # public PyPI runs in its own environment-gated job (OIDC), so it must
131
208
  # consume these files rather than rebuild them.
132
209
  - name: Upload dist for PyPI publish
133
- if: steps.release.outputs.version != ''
210
+ if: steps.ver.outputs.version != ''
134
211
  uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
135
212
  with:
136
213
  name: release-dist
137
214
  path: dist/
138
215
  if-no-files-found: error
139
216
 
140
- # Build + push the agent image HERE, in the same job that cut the release,
141
- # so the `:<version>` tag is built from the BUMPED pyproject (the version
142
- # only exists after the semantic-release step above). docker-publish.yml
143
- # runs on the triggering commit, BEFORE the bump, so it can never tag the
144
- # release version -- this is the authoritative versioned image. It also
145
- # repoints `:latest` to the exact release artifact.
217
+ # Build + push the agent image HERE, in the same job that produced the
218
+ # version, so the `:<version>` tag is built from the correct pyproject (bumped
219
+ # by semantic-release on main, or the stamped rc on a prerelease).
220
+ # docker-publish.yml runs on the triggering commit, BEFORE a main bump, so it
221
+ # can never tag the release version -- this is the authoritative versioned
222
+ # image. A real release also repoints `:latest`; a prerelease publishes only
223
+ # its `:<version>` tag (see Compute image tags).
146
224
  - name: Lowercase owner for GHCR
147
- if: steps.release.outputs.version != ''
225
+ if: steps.ver.outputs.version != ''
148
226
  id: img
149
227
  run: echo "owner_lc=$(echo '${{ github.repository_owner }}' | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_OUTPUT"
150
228
 
229
+ # `:<version>` always; `:latest` only for a real release. A prerelease must
230
+ # not move `:latest`, which the nightly treats as tip-of-main.
231
+ - name: Compute image tags
232
+ if: steps.ver.outputs.version != ''
233
+ id: tags
234
+ env:
235
+ OWNER: ${{ steps.img.outputs.owner_lc }}
236
+ VERSION: ${{ steps.ver.outputs.version }}
237
+ IS_PRERELEASE: ${{ steps.mode.outputs.prerelease }}
238
+ run: |
239
+ set -euo pipefail
240
+ {
241
+ echo "tags<<EOF"
242
+ echo "ghcr.io/${OWNER}/coder-eval-agent:${VERSION}"
243
+ if [ "$IS_PRERELEASE" != "true" ]; then
244
+ echo "ghcr.io/${OWNER}/coder-eval-agent:latest"
245
+ fi
246
+ echo "EOF"
247
+ } >> "$GITHUB_OUTPUT"
248
+
151
249
  - name: Set up Docker Buildx
152
250
  continue-on-error: true # GHCR image is internal/best-effort; don't block PyPI
153
- if: steps.release.outputs.version != ''
251
+ if: steps.ver.outputs.version != ''
154
252
  uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
155
253
 
156
254
  - name: Log in to GHCR
157
255
  continue-on-error: true # GHCR image is internal/best-effort; don't block PyPI
158
- if: steps.release.outputs.version != ''
256
+ if: steps.ver.outputs.version != ''
159
257
  uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
160
258
  with:
161
259
  registry: ghcr.io
@@ -164,17 +262,15 @@ jobs:
164
262
 
165
263
  - name: Build and push versioned agent image
166
264
  continue-on-error: true # GHCR image is internal/best-effort; don't block PyPI
167
- if: steps.release.outputs.version != ''
265
+ if: steps.ver.outputs.version != ''
168
266
  uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
169
267
  with:
170
268
  context: .
171
269
  file: docker/Dockerfile
172
270
  push: true
173
- tags: |
174
- ghcr.io/${{ steps.img.outputs.owner_lc }}/coder-eval-agent:${{ steps.release.outputs.version }}
175
- ghcr.io/${{ steps.img.outputs.owner_lc }}/coder-eval-agent:latest
271
+ tags: ${{ steps.tags.outputs.tags }}
176
272
  build-args: |
177
- CODER_EVAL_VERSION=${{ steps.release.outputs.version }}
273
+ CODER_EVAL_VERSION=${{ steps.ver.outputs.version }}
178
274
  secrets: |
179
275
  "uv_index_username=${{ secrets.UV_INDEX_UIPATH_USERNAME }}"
180
276
  "uv_index_password=${{ secrets.UV_INDEX_UIPATH_PASSWORD }}"
@@ -2,6 +2,15 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.8.6 (2026-07-20)
6
+
7
+ ### Features
8
+
9
+ - Add Sonnet 5 + GPT-5.6 pricing; default antigravity to gemini-3.5-flash
10
+ ([#31](https://github.com/UiPath/coder_eval/pull/31),
11
+ [`4c40acd`](https://github.com/UiPath/coder_eval/commit/4c40acd64482e9ffcec66b61ac2aab57b5c89f6f))
12
+
13
+
5
14
  ## v0.8.5 (2026-07-20)
6
15
 
7
16
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coder-eval
3
- Version: 0.8.5
3
+ Version: 0.8.7rc10
4
4
  Summary: Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity) with sandboxed, reproducible YAML task suites.
5
5
  Project-URL: Homepage, https://github.com/UiPath/coder_eval
6
6
  Project-URL: Repository, https://github.com/UiPath/coder_eval
@@ -26,7 +26,7 @@ Requires-Python: >=3.13
26
26
  Requires-Dist: anthropic>=0.86.0
27
27
  Requires-Dist: anyio>=4.13.0
28
28
  Requires-Dist: azure-monitor-opentelemetry-exporter<1.1.0,>=1.0.0b30
29
- Requires-Dist: claude-agent-sdk>=0.2.82
29
+ Requires-Dist: claude-agent-sdk>=0.2.124
30
30
  Requires-Dist: click>=8.3.3
31
31
  Requires-Dist: jmespath>=1.1.0
32
32
  Requires-Dist: jsonschema>=4.26.0
@@ -41,9 +41,9 @@ Requires-Dist: starlette>=1.3.1
41
41
  Requires-Dist: tqdm>=4.67.3
42
42
  Requires-Dist: typer>=0.24.1
43
43
  Provides-Extra: antigravity
44
- Requires-Dist: google-antigravity==0.1.5; extra == 'antigravity'
44
+ Requires-Dist: google-antigravity==0.1.7; extra == 'antigravity'
45
45
  Provides-Extra: codex
46
- Requires-Dist: openai-codex>=0.1.0b3; extra == 'codex'
46
+ Requires-Dist: openai-codex>=0.144.4; extra == 'codex'
47
47
  Provides-Extra: dev
48
48
  Requires-Dist: bandit[toml]>=1.9.4; extra == 'dev'
49
49
  Requires-Dist: mcp>=1.28.1; extra == 'dev'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "coder-eval"
3
- version = "0.8.5"
3
+ version = "0.8.7rc10"
4
4
  description = "Evaluate, benchmark, and A/B-test AI coding agents (Claude Code, Codex, Gemini/Antigravity) with sandboxed, reproducible YAML task suites."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -34,7 +34,7 @@ dependencies = [
34
34
  "rich>=14.3.3",
35
35
  "python-dotenv>=1.2.2",
36
36
  "anthropic>=0.86.0",
37
- "claude-agent-sdk>=0.2.82",
37
+ "claude-agent-sdk>=0.2.124",
38
38
  "anyio>=4.13.0",
39
39
  "radon>=6.0.1",
40
40
  "tqdm>=4.67.3",
@@ -85,19 +85,24 @@ uipath = [
85
85
  # Without this extra, the framework still installs and runs; Codex-dependent
86
86
  # code paths fail at dispatch with a clear hint pointing back here.
87
87
  codex = [
88
- "openai-codex>=0.1.0b3",
88
+ "openai-codex>=0.144.4",
89
89
  ]
90
90
  # Optional extra that enables Antigravity agent support:
91
91
  # - AntigravityAgent implementation using Google's official google-antigravity SDK
92
92
  # (drives the bundled `localharness` binary, authenticated via GEMINI_API_KEY).
93
93
  # Pinned exactly: the harness binary is a dominant non-model driver of eval results,
94
94
  # so it travels with the coder_eval release tag and is bumped deliberately (mirrors
95
- # the claude-code CLI / codex cli-bin pins). The wheel ships platform-specific
96
- # (manylinux x86_64 + aarch64, macOS, Windows), so CI/Linux/Docker installs work.
95
+ # the claude-code CLI / codex cli-bin pins).
96
+ # glibc note — verify before bumping: the wheel's manylinux_2_17 tag is NOT a
97
+ # reliable floor; the bundled `localharness` ELF can require a newer glibc than the
98
+ # tag advertises. Eval agents run on Ubuntu 22.04 (glibc 2.35), so the pinned build
99
+ # must load there. 0.1.7 links without DT_RELR (max required symbol GLIBC_2.26) and
100
+ # loads on 2.35+; confirm any future pin does too (readelf -d | grep RELR must be
101
+ # empty / max GLIBC symbol <= the oldest target's glibc).
97
102
  # Without this extra the framework still installs and runs; Antigravity-dependent
98
103
  # code paths fail at start() with a clear hint pointing back here.
99
104
  antigravity = [
100
- "google-antigravity==0.1.5",
105
+ "google-antigravity==0.1.7",
101
106
  ]
102
107
 
103
108
  [project.scripts]
@@ -129,12 +134,14 @@ packages = ["src/coder_eval"]
129
134
  allow-direct-references = true
130
135
 
131
136
  [tool.uv]
132
- # openai-codex 0.1.0b3 hardpins `openai-codex-cli-bin==0.137.0a4`, a
133
- # PRE-RELEASE. Because that pin is transitive (not referenced directly by us),
134
- # uv won't select it without an explicit opt-in. Naming it here as an override
135
- # both enables the pre-release and documents the pinned cli-bin build; 0.137.0a4
136
- # publishes manylinux wheels (x86_64 + aarch64), so CI/Linux installs work.
137
- override-dependencies = ["openai-codex-cli-bin==0.137.0a4"]
137
+ # openai-codex 0.144.4 hardpins `openai-codex-cli-bin==0.144.4` (a stable
138
+ # release; the SDK version now tracks the codex CLI version line). Naming it
139
+ # here documents and holds the pinned cli-bin build — the harness binary is a
140
+ # dominant non-model driver of eval results, so it travels with the coder_eval
141
+ # release tag and is bumped deliberately (mirrors the antigravity localharness
142
+ # and claude-code CLI pins). 0.144.4 publishes manylinux wheels (x86_64 +
143
+ # aarch64), so CI/Linux installs work.
144
+ override-dependencies = ["openai-codex-cli-bin==0.144.4"]
138
145
 
139
146
  constraint-dependencies = [
140
147
  # Fix known CVEs in transitive dependencies
@@ -1,3 +1,3 @@
1
1
  """coder_eval - A framework for evaluating AI coding agents."""
2
2
 
3
- __version__ = "0.8.5"
3
+ __version__ = "0.8.7rc10"
@@ -167,6 +167,7 @@ class Agent[ConfigT: BaseAgentConfig](ABC):
167
167
  *,
168
168
  env_path_prepend: list[str] | None = None,
169
169
  plugin_tools_dir: str | None = None,
170
+ sandbox_managed: bool = False,
170
171
  ) -> None:
171
172
  """Initialize and start the agent.
172
173
 
@@ -180,6 +181,10 @@ class Agent[ConfigT: BaseAgentConfig](ABC):
180
181
  instead of walking up from CWD. An external ``PLUGIN_TOOLS_DIR`` in
181
182
  the process environment still wins. Implementations that don't shell
182
183
  out may ignore this argument.
184
+ sandbox_managed: True when coder_eval itself provides this run's isolation
185
+ boundary (the ephemeral host tempdir it created for the task). Agents
186
+ that run their own in-process OS sandbox may use this to skip it as
187
+ redundant; agents without one may ignore this argument.
183
188
  """
184
189
  pass
185
190
 
@@ -93,10 +93,10 @@ def _harness_spawn_lock() -> asyncio.Lock:
93
93
 
94
94
 
95
95
  # Recommended Gemini coding model when a task pins no ``agent.model`` and neither
96
- # ``--model`` nor ``ANTIGRAVITY_MODEL`` is set. Gemini 3.1 Pro is the current
97
- # flagship agentic-coding model (the earlier ``gemini-3-pro-preview`` is retired);
98
- # ``medium`` thinking is its recommended daily-driver default.
99
- _DEFAULT_MODEL = "gemini-3.1-pro-preview"
96
+ # ``--model`` nor ``ANTIGRAVITY_MODEL`` is set. Gemini 3.5 Flash is Antigravity 2.0's
97
+ # default coding model (2026-05) — it outperforms the older Gemini 3.1 Pro on coding /
98
+ # agentic benchmarks while running faster; ``medium`` thinking is its daily-driver default.
99
+ _DEFAULT_MODEL = "gemini-3.5-flash"
100
100
 
101
101
  # Antigravity builtin tool name -> canonical Claude-ish tool name, so cross-agent
102
102
  # success criteria (command_executed / commands_efficiency / skill_triggered) and
@@ -290,9 +290,14 @@ class AntigravityAgent(Agent[AntigravityAgentConfig]):
290
290
  *,
291
291
  env_path_prepend: list[str] | None = None,
292
292
  plugin_tools_dir: str | None = None,
293
+ sandbox_managed: bool = False,
293
294
  ) -> None:
294
295
  """Initialize and start the Antigravity agent's local harness session.
295
296
 
297
+ (``sandbox_managed`` is accepted for interface parity with the base
298
+ ``Agent.start`` and ignored: the Antigravity harness has no in-process
299
+ OS sandbox to drop.)
300
+
296
301
  Args:
297
302
  working_directory: Path to the sandbox working directory. The primary
298
303
  ``workspace`` so file writes (and run_command) operate there —
@@ -692,6 +692,7 @@ class ClaudeCodeAgent(Agent[ClaudeCodeAgentConfig]):
692
692
  *,
693
693
  env_path_prepend: list[str] | None = None,
694
694
  plugin_tools_dir: str | None = None,
695
+ sandbox_managed: bool = False,
695
696
  ) -> None:
696
697
  """Initialize and start the Claude Code agent.
697
698
 
@@ -701,6 +702,9 @@ class ClaudeCodeAgent(Agent[ClaudeCodeAgentConfig]):
701
702
  subprocess (typically the resolved ``SandboxConfig.mock_path_dirs``).
702
703
  plugin_tools_dir: Canonical ``node_modules/@uipath`` to export as
703
704
  ``PLUGIN_TOOLS_DIR``. An external env-var pin still wins.
705
+ sandbox_managed: Accepted for interface parity with the base
706
+ ``Agent.start`` and ignored — Claude Code runs the tempdir path
707
+ with no in-agent OS sandbox to drop.
704
708
  """
705
709
  self.working_directory = Path(working_directory)
706
710
  self._env_path_prepend = list(env_path_prepend or [])