coder-eval 0.9.3__tar.gz → 0.9.4__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 (597) hide show
  1. {coder_eval-0.9.3 → coder_eval-0.9.4}/CHANGELOG.md +30 -0
  2. {coder_eval-0.9.3 → coder_eval-0.9.4}/PKG-INFO +1 -1
  3. {coder_eval-0.9.3 → coder_eval-0.9.4}/action.yml +10 -2
  4. {coder_eval-0.9.3 → coder_eval-0.9.4}/litellm/README.md +4 -1
  5. {coder_eval-0.9.3 → coder_eval-0.9.4}/litellm/cost_logger.py +1 -1
  6. {coder_eval-0.9.3 → coder_eval-0.9.4}/litellm/litellm-config.yaml +4 -2
  7. {coder_eval-0.9.3 → coder_eval-0.9.4}/litellm/start-litellm.sh +25 -2
  8. {coder_eval-0.9.3 → coder_eval-0.9.4}/pyproject.toml +1 -1
  9. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/__init__.py +1 -1
  10. coder_eval-0.9.4/tests/test_litellm_config.py +113 -0
  11. {coder_eval-0.9.3 → coder_eval-0.9.4}/uv.lock +1 -1
  12. coder_eval-0.9.3/tests/test_litellm_config.py +0 -57
  13. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-code-review-full.md +0 -0
  14. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-code-review-wf.md +0 -0
  15. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-code-review.md +0 -0
  16. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-create-plan.md +0 -0
  17. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-implement-plan.md +0 -0
  18. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-review.md +0 -0
  19. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-run-analysis.md +0 -0
  20. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/commands/coder-eval-task-create.md +0 -0
  21. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/harness-candidates.md +0 -0
  22. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/shared/axes.md +0 -0
  23. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/shared/multi-model-review.md +0 -0
  24. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/shared/review-rubric.md +0 -0
  25. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/shared/run-layout.md +0 -0
  26. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/workflows/cr-axis.js +0 -0
  27. {coder_eval-0.9.3 → coder_eval-0.9.4}/.claude/workflows/cr-parent.js +0 -0
  28. {coder_eval-0.9.3 → coder_eval-0.9.4}/.env.example +0 -0
  29. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/CODEOWNERS +0 -0
  30. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/ISSUE_TEMPLATE/adopter.yml +0 -0
  31. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  32. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  33. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/code_review.md +0 -0
  34. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/dependabot.yml +0 -0
  35. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/pages-stub/index.html +0 -0
  36. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/scripts/release_notes.py +0 -0
  37. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/claude-pr-review.yml +0 -0
  38. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/codeql.yml +0 -0
  39. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/conventional-commits.yml +0 -0
  40. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/docker-publish.yml +0 -0
  41. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/docs.yml +0 -0
  42. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/pr-checks.yml +0 -0
  43. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/publish-testpypi.yml +0 -0
  44. {coder_eval-0.9.3 → coder_eval-0.9.4}/.github/workflows/release.yml +0 -0
  45. {coder_eval-0.9.3 → coder_eval-0.9.4}/.gitignore +0 -0
  46. {coder_eval-0.9.3 → coder_eval-0.9.4}/.pre-commit-config.yaml +0 -0
  47. {coder_eval-0.9.3 → coder_eval-0.9.4}/.python-version +0 -0
  48. {coder_eval-0.9.3 → coder_eval-0.9.4}/ADOPTERS.md +0 -0
  49. {coder_eval-0.9.3 → coder_eval-0.9.4}/CLAUDE.md +0 -0
  50. {coder_eval-0.9.3 → coder_eval-0.9.4}/CODE_OF_CONDUCT.md +0 -0
  51. {coder_eval-0.9.3 → coder_eval-0.9.4}/CONTRIBUTING.md +0 -0
  52. {coder_eval-0.9.3 → coder_eval-0.9.4}/LICENSE +0 -0
  53. {coder_eval-0.9.3 → coder_eval-0.9.4}/Makefile +0 -0
  54. {coder_eval-0.9.3 → coder_eval-0.9.4}/NOTICE +0 -0
  55. {coder_eval-0.9.3 → coder_eval-0.9.4}/README.md +0 -0
  56. {coder_eval-0.9.3 → coder_eval-0.9.4}/SECURITY.md +0 -0
  57. {coder_eval-0.9.3 → coder_eval-0.9.4}/docker/Dockerfile +0 -0
  58. {coder_eval-0.9.3 → coder_eval-0.9.4}/docker/Dockerfile.runtime +0 -0
  59. {coder_eval-0.9.3 → coder_eval-0.9.4}/docker/coder_eval_entrypoint.sh +0 -0
  60. {coder_eval-0.9.3 → coder_eval-0.9.4}/docker/coder_eval_runtime_entrypoint.sh +0 -0
  61. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/AB_EXPERIMENTS.md +0 -0
  62. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/CI_GATE.md +0 -0
  63. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/DATASETS.md +0 -0
  64. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/DIALOG_MODE.md +0 -0
  65. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/DOCKER_ISOLATION.md +0 -0
  66. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/EXTENDING.md +0 -0
  67. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/REPORT_SCHEMA.md +0 -0
  68. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/TASK_DEFINITION_GUIDE.md +0 -0
  69. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/USER_GUIDE.md +0 -0
  70. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/agents/ANTIGRAVITY.md +0 -0
  71. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/agents/CLAUDE_CODE.md +0 -0
  72. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/agents/CODEX.md +0 -0
  73. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/assets/hero.gif +0 -0
  74. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/comparison.md +0 -0
  75. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/index.md +0 -0
  76. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/llms.txt +0 -0
  77. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/01-first-evaluation.md +0 -0
  78. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/02-ci-pipeline.md +0 -0
  79. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/03-evalboard-local.md +0 -0
  80. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/04-writing-a-task.md +0 -0
  81. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/05-comparing-models.md +0 -0
  82. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/06-use-docker-isolation.md +0 -0
  83. {coder_eval-0.9.3 → coder_eval-0.9.4}/docs/tutorials/README.md +0 -0
  84. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/.gitignore +0 -0
  85. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/README.md +0 -0
  86. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/__tests__/harness-badge.test.tsx +0 -0
  87. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/__tests__/harness-selector.test.tsx +0 -0
  88. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/__tests__/search-box.test.tsx +0 -0
  89. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/col-help.tsx +0 -0
  90. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/collapsible-rail.tsx +0 -0
  91. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/harness-badge.tsx +0 -0
  92. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/harness-selector.tsx +0 -0
  93. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/scroll-table.tsx +0 -0
  94. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/search-box.tsx +0 -0
  95. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/unit-toggle.tsx +0 -0
  96. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_components/version-list.tsx +0 -0
  97. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/__tests__/harness-legend.test.tsx +0 -0
  98. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/__tests__/harness-series.test.ts +0 -0
  99. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/daily-chart.tsx +0 -0
  100. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/harness-legend.tsx +0 -0
  101. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/harness-series.ts +0 -0
  102. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/tag-rail.tsx +0 -0
  103. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/turn-budget-chart.tsx +0 -0
  104. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/_overview/window-summary.tsx +0 -0
  105. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/api/download/route.ts +0 -0
  106. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/api/file/route.ts +0 -0
  107. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/api/refresh/__tests__/route.test.ts +0 -0
  108. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/api/refresh/route.ts +0 -0
  109. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/error.tsx +0 -0
  110. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/globals.css +0 -0
  111. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/icon.png +0 -0
  112. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/layout.tsx +0 -0
  113. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/page.tsx +0 -0
  114. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/path-to-ga/page.tsx +0 -0
  115. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/trends/__tests__/trends-view.test.tsx +0 -0
  116. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/trends/actions.ts +0 -0
  117. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/trends/page.tsx +0 -0
  118. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/trends/trends-view.tsx +0 -0
  119. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/watchlist/__tests__/watchlist-view.test.tsx +0 -0
  120. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/watchlist/page.tsx +0 -0
  121. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/app/watchlist/watchlist-view.tsx +0 -0
  122. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/next-env.d.ts +0 -0
  123. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/next.config.mjs +0 -0
  124. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/package.json +0 -0
  125. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/pnpm-lock.yaml +0 -0
  126. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/postcss.config.mjs +0 -0
  127. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/public/harness/antigravity.png +0 -0
  128. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/public/harness/claude-code.png +0 -0
  129. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/public/harness/codex.png +0 -0
  130. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/public/uipath.png +0 -0
  131. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/tailwind.config.ts +0 -0
  132. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/tsconfig.json +0 -0
  133. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/vitest.config.ts +0 -0
  134. {coder_eval-0.9.3 → coder_eval-0.9.4}/evalboard/vitest.setup.ts +0 -0
  135. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/default.yaml +0 -0
  136. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/early-stop-ab.yaml +0 -0
  137. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/model-comparison.yaml +0 -0
  138. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/permissions-smoke.yaml +0 -0
  139. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/plugin-comparison.yaml +0 -0
  140. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/prompt-mutations-example.yaml +0 -0
  141. {coder_eval-0.9.3 → coder_eval-0.9.4}/experiments/smoke_variants.yaml +0 -0
  142. {coder_eval-0.9.3 → coder_eval-0.9.4}/mkdocs.yml +0 -0
  143. {coder_eval-0.9.3 → coder_eval-0.9.4}/osv-scanner.toml +0 -0
  144. {coder_eval-0.9.3 → coder_eval-0.9.4}/scripts/check_commit_msg.sh +0 -0
  145. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/.gitattributes +0 -0
  146. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agent.py +0 -0
  147. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/__init__.py +0 -0
  148. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/_logging.py +0 -0
  149. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/antigravity_agent.py +0 -0
  150. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/claude_code_agent.py +0 -0
  151. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/codex_agent.py +0 -0
  152. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/noop_agent.py +0 -0
  153. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/registry.py +0 -0
  154. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/agents/watchdog.py +0 -0
  155. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/analysis.py +0 -0
  156. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/__init__.py +0 -0
  157. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/aggregate_command.py +0 -0
  158. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/console.py +0 -0
  159. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/evaluate_command.py +0 -0
  160. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/plan_command.py +0 -0
  161. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/report_command.py +0 -0
  162. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/run_command.py +0 -0
  163. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/run_helpers.py +0 -0
  164. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/run_task_internal_command.py +0 -0
  165. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/cli/utils.py +0 -0
  166. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/config.py +0 -0
  167. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/__init__.py +0 -0
  168. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/_classification_aggregate.py +0 -0
  169. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/agent_judge.py +0 -0
  170. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/base.py +0 -0
  171. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/classification_match.py +0 -0
  172. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/command_executed.py +0 -0
  173. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/commands_efficiency.py +0 -0
  174. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/file_check.py +0 -0
  175. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/file_contains.py +0 -0
  176. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/file_exists.py +0 -0
  177. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/file_matches_regex.py +0 -0
  178. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/json_check.py +0 -0
  179. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/llm_judge.py +0 -0
  180. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/reference_comparison.py +0 -0
  181. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/run_command.py +0 -0
  182. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/skill_triggered.py +0 -0
  183. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/criteria/uipath_eval.py +0 -0
  184. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/__init__.py +0 -0
  185. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/agent.py +0 -0
  186. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/budget.py +0 -0
  187. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/categories.py +0 -0
  188. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/categorization.py +0 -0
  189. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/checker_misuse.py +0 -0
  190. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/executor.py +0 -0
  191. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/judge.py +0 -0
  192. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/retry.py +0 -0
  193. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/errors/timeout.py +0 -0
  194. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/__init__.py +0 -0
  195. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/checker.py +0 -0
  196. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/judge_anthropic.py +0 -0
  197. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/judge_bedrock.py +0 -0
  198. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/judge_context.py +0 -0
  199. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/judge_models.py +0 -0
  200. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/judge_persistence.py +0 -0
  201. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/judge_usage.py +0 -0
  202. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/sub_agent.py +0 -0
  203. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/summaries.py +0 -0
  204. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/evaluation/verdict_tool.py +0 -0
  205. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/formatting.py +0 -0
  206. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/isolation/__init__.py +0 -0
  207. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/isolation/docker_runner.py +0 -0
  208. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/litellm_cost.py +0 -0
  209. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/logging_config.py +0 -0
  210. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/__init__.py +0 -0
  211. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/agent_config.py +0 -0
  212. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/container_paths.py +0 -0
  213. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/criteria.py +0 -0
  214. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/enums.py +0 -0
  215. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/experiment.py +0 -0
  216. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/judge.py +0 -0
  217. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/judge_defaults.py +0 -0
  218. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/limits.py +0 -0
  219. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/merge_strategy.py +0 -0
  220. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/mutations.py +0 -0
  221. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/results.py +0 -0
  222. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/routing.py +0 -0
  223. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/sandbox.py +0 -0
  224. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/tasks.py +0 -0
  225. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/telemetry.py +0 -0
  226. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/models/templates.py +0 -0
  227. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/__init__.py +0 -0
  228. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/batch.py +0 -0
  229. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/config.py +0 -0
  230. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/config_merge.py +0 -0
  231. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/early_stop.py +0 -0
  232. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/evaluation.py +0 -0
  233. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/experiment.py +0 -0
  234. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/overrides.py +0 -0
  235. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestration/task_loader.py +0 -0
  236. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/orchestrator.py +0 -0
  237. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/path_utils.py +0 -0
  238. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/plugins.py +0 -0
  239. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/pricing.py +0 -0
  240. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/py.typed +0 -0
  241. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/reports.py +0 -0
  242. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/reports_experiment.py +0 -0
  243. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/reports_html.py +0 -0
  244. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/reports_junit.py +0 -0
  245. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/reports_stats.py +0 -0
  246. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/resources/__init__.py +0 -0
  247. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/resources/default_ignore_patterns.yaml +0 -0
  248. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/resources/tags.yaml +0 -0
  249. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/sandbox.py +0 -0
  250. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/__init__.py +0 -0
  251. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/ast_similarity.py +0 -0
  252. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/complexity.py +0 -0
  253. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/quality.py +0 -0
  254. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/signature_similarity.py +0 -0
  255. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/similarity.py +0 -0
  256. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/scoring/token_similarity.py +0 -0
  257. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/simulation/__init__.py +0 -0
  258. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/simulation/termination.py +0 -0
  259. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/simulation/user_simulator.py +0 -0
  260. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/streaming/__init__.py +0 -0
  261. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/streaming/callbacks.py +0 -0
  262. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/streaming/collector.py +0 -0
  263. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/streaming/events.py +0 -0
  264. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/streaming/renderers.py +0 -0
  265. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/streaming/wire.py +0 -0
  266. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/telemetry.py +0 -0
  267. {coder_eval-0.9.3 → coder_eval-0.9.4}/src/coder_eval/utils.py +0 -0
  268. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/README.md +0 -0
  269. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agentless_smoke_test.yaml +0 -0
  270. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/antigravity_hello_world.yaml +0 -0
  271. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/antigravity_hello_world_docker.yaml +0 -0
  272. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/claude_hello_world.yaml +0 -0
  273. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/claude_hello_world_docker.yaml +0 -0
  274. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/claude_parallel_single_gen.yaml +0 -0
  275. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/claude_subagent_test.yaml +0 -0
  276. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_disallowed_tools_test.yaml +0 -0
  277. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_hello_world.yaml +0 -0
  278. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_parallel_commands.yaml +0 -0
  279. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_parallel_single_gen.yaml +0 -0
  280. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_skills_test.yaml +0 -0
  281. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_string_utils.yaml +0 -0
  282. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/codex_subagent_test.yaml +0 -0
  283. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/subagent_bash_long_input.yaml +0 -0
  284. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/agents/subagent_merge_sort.yaml +0 -0
  285. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/byod_smoke_test.yaml +0 -0
  286. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dataset_example.yaml +0 -0
  287. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/datasets/sentiment.jsonl +0 -0
  288. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dockerfile_build_example/dockerfile_build_example.yaml +0 -0
  289. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dockerfile_build_example/environment/Dockerfile +0 -0
  290. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dockerfile_build_example/environment/Dockerfile.workdir +0 -0
  291. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dockerfile_build_example/environment/input.txt +0 -0
  292. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dockerfile_build_example/working_dir_auto_example.yaml +0 -0
  293. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/dockerfile_build_example/working_dir_concrete_example.yaml +0 -0
  294. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/early_stop_decision_budget_exceeded.yaml +0 -0
  295. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/early_stop_weighted_high_weight_kills_run.yaml +0 -0
  296. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/early_stop_weighted_low_weight_absorbed.yaml +0 -0
  297. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/fibonacci_with_template.yaml +0 -0
  298. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/hello_date.yaml +0 -0
  299. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/inline_starter_example.yaml +0 -0
  300. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/internal/session_resumption.yaml +0 -0
  301. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/mock_path_dirs_smoke.yaml +0 -0
  302. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/mock_path_dirs_template_dir/mock-cli-bins/README.md +0 -0
  303. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/echo_args +0 -0
  304. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/fixtures/config.json +0 -0
  305. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/mock_path_dirs_template_dir/mock-cli-bins/mocks/say_hello +0 -0
  306. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/mock_path_dirs_template_dir/task.yaml +0 -0
  307. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/python_cli_simulated_judged/echo_simulated_judged.yaml +0 -0
  308. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/3d-scan-calc/3d-scan-calc.yaml +0 -0
  309. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/3d-scan-calc/environment/Dockerfile +0 -0
  310. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/3d-scan-calc/environment/material_density_table.md +0 -0
  311. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/3d-scan-calc/environment/scan_data.stl +0 -0
  312. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/3d-scan-calc/verifier/test.sh +0 -0
  313. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/3d-scan-calc/verifier/test_outputs.py +0 -0
  314. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/README.md +0 -0
  315. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/court-form-filling/court-form-filling.yaml +0 -0
  316. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/court-form-filling/environment/Dockerfile +0 -0
  317. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/court-form-filling/environment/sc100-blank.pdf +0 -0
  318. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/court-form-filling/verifier/test.sh +0 -0
  319. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/court-form-filling/verifier/test_outputs.py +0 -0
  320. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/dialogue-parser/dialogue-parser.yaml +0 -0
  321. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/dialogue-parser/environment/Dockerfile +0 -0
  322. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/dialogue-parser/environment/script.txt +0 -0
  323. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/dialogue-parser/verifier/test.sh +0 -0
  324. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/samples/skillsbench/dialogue-parser/verifier/test_outputs.py +0 -0
  325. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/sentiment_classification.yaml +0 -0
  326. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_agent_judge.yaml +0 -0
  327. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_budget_exceeded.yaml +0 -0
  328. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_cost_budget_exceeded.yaml +0 -0
  329. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_llm_judge.yaml +0 -0
  330. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_negative_path.yaml +0 -0
  331. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_task_timeout.yaml +0 -0
  332. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/smoke_variants.yaml +0 -0
  333. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/test_sandbox.yaml +0 -0
  334. {coder_eval-0.9.3 → coder_eval-0.9.4}/tasks/token_check.yaml +0 -0
  335. {coder_eval-0.9.3 → coder_eval-0.9.4}/templates/byod_smoke_test/Dockerfile +0 -0
  336. {coder_eval-0.9.3 → coder_eval-0.9.4}/templates/fibonacci-starter/README.md +0 -0
  337. {coder_eval-0.9.3 → coder_eval-0.9.4}/templates/fibonacci-starter/src/main.py +0 -0
  338. {coder_eval-0.9.3 → coder_eval-0.9.4}/templates/fibonacci-starter/tests/test_main.py +0 -0
  339. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/__init__.py +0 -0
  340. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/__init__.py +0 -0
  341. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/__init__.py +0 -0
  342. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/_scrub.py +0 -0
  343. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/claude_fixtures.py +0 -0
  344. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/codex_fixtures.py +0 -0
  345. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_a_single_text_turn.json +0 -0
  346. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_b_tool_use_result.json +0 -0
  347. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_c_multi_emission_delta.json +0 -0
  348. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_d_subagent_terminal.json +0 -0
  349. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_e_model_usage_and_backfill.json +0 -0
  350. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_f_orphaned_tool.json +0 -0
  351. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_g_crash_format_placeholder.json +0 -0
  352. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_h1_timeout_process_error.json +0 -0
  353. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_h2_process_error_crash.json +0 -0
  354. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/claude_i_in_loop_deadline_break.json +0 -0
  355. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_a_agent_message_only.json +0 -0
  356. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_b_command_execution.json +0 -0
  357. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_c_reasoning_placeholder.json +0 -0
  358. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_d_cross_flush_is_error.json +0 -0
  359. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_e_orphan_tool.json +0 -0
  360. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_f_collab_fallback.json +0 -0
  361. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_g_items_rebuild.json +0 -0
  362. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/golden_streams/expected/codex_h_no_turn_completed_crash.json +0 -0
  363. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/__init__.py +0 -0
  364. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/_snapshot.py +0 -0
  365. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/experiment_2variant.md +0 -0
  366. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/experiment_3variant.md +0 -0
  367. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/experiment_replicates.md +0 -0
  368. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/run_full.md +0 -0
  369. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_fixtures/report_snapshots/run_minimal.md +0 -0
  370. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/_path_helpers.py +0 -0
  371. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/conftest.py +0 -0
  372. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/__init__.py +0 -0
  373. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/byoa_demo_plugin/byoa_demo.py +0 -0
  374. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/byoa_demo_plugin/pyproject.toml +0 -0
  375. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/mock_agent.py +0 -0
  376. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/tasks/test_task_informational_criterion.yaml +0 -0
  377. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/tasks/test_task_multiple_criteria.yaml +0 -0
  378. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/tasks/test_task_pass.yaml +0 -0
  379. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/fixtures/text_stub_agent.py +0 -0
  380. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/__init__.py +0 -0
  381. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/dead_config_fields.py +0 -0
  382. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/doc_env_parity.py +0 -0
  383. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/doc_examples.py +0 -0
  384. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/doc_indexes.py +0 -0
  385. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/doc_schema_parity.py +0 -0
  386. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/__init__.py +0 -0
  387. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/base.py +0 -0
  388. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce014_merge_strategy_declared.py +0 -0
  389. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce015_create_subprocess_limit.py +0 -0
  390. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce016_no_computed_tokenusage_kwargs.py +0 -0
  391. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce017_models_lazy_agent_imports.py +0 -0
  392. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce018_no_final_status_name_denylist.py +0 -0
  393. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce019_telemetry_non_fatal.py +0 -0
  394. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce020_no_sdk_typed_base_agent_fields.py +0 -0
  395. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce021_guarded_evaluationresult_parse.py +0 -0
  396. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce022_dialog_loop_statement_cap.py +0 -0
  397. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce023_no_proxy_shim_import.py +0 -0
  398. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/ce024_discriminated_unions.py +0 -0
  399. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_agent_timing_access.py +0 -0
  400. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_blocking_io_in_async.py +0 -0
  401. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_cli_imports_in_core.py +0 -0
  402. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_silent_except.py +0 -0
  403. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_submodule_model_imports.py +0 -0
  404. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_top_level_run_limits_access.py +0 -0
  405. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_transcript_regex_in_eval.py +0 -0
  406. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/no_type_name_string_dispatch.py +0 -0
  407. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/open_explicit_encoding.py +0 -0
  408. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/read_text_explicit_encoding.py +0 -0
  409. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/register_criterion_required.py +0 -0
  410. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/subprocess_run_explicit_encoding.py +0 -0
  411. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/rules/yaml_models_forbid_extras.py +0 -0
  412. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/runner.py +0 -0
  413. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/lint/violation.py +0 -0
  414. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_action_version_pin.py +0 -0
  415. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent.py +0 -0
  416. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_config_no_timing_fields.py +0 -0
  417. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_config_optional_type.py +0 -0
  418. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_config_registry_dispatch.py +0 -0
  419. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_config_sdk_decoupling.py +0 -0
  420. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_golden_master.py +0 -0
  421. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_judge_criterion.py +0 -0
  422. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_telemetry.py +0 -0
  423. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_telemetry_advanced.py +0 -0
  424. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agent_timeout.py +0 -0
  425. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_agentless.py +0 -0
  426. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_aggregate.py +0 -0
  427. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_antigravity_agent.py +0 -0
  428. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_byoa_plugin.py +0 -0
  429. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_byoa_plugin_live.py +0 -0
  430. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_byod_feature.py +0 -0
  431. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_check_all_async.py +0 -0
  432. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_checker_logging.py +0 -0
  433. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_classification_match.py +0 -0
  434. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_claude_settings_enforcement_live.py +0 -0
  435. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cleanup_preservation_guard.py +0 -0
  436. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cli_backend_flag.py +0 -0
  437. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cli_empty_glob.py +0 -0
  438. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cli_sdk_options.py +0 -0
  439. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cli_set_overrides.py +0 -0
  440. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cli_telemetry.py +0 -0
  441. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cli_type_flag.py +0 -0
  442. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_code_review_bugs.py +0 -0
  443. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_codex_agent.py +0 -0
  444. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_codex_agent_live.py +0 -0
  445. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_codex_agent_unit.py +0 -0
  446. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_codex_token_mapping.py +0 -0
  447. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_command_executed.py +0 -0
  448. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_command_statistics.py +0 -0
  449. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_command_telemetry_result_data.py +0 -0
  450. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_commands_efficiency.py +0 -0
  451. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_config_lineage.py +0 -0
  452. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_config_merge_engine.py +0 -0
  453. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_config_precedence.py +0 -0
  454. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_continuous_scoring.py +0 -0
  455. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_cost_accounting_paths.py +0 -0
  456. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_criterion_result_round_trip.py +0 -0
  457. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_custom_lint.py +0 -0
  458. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_dataset_expansion.py +0 -0
  459. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_debug_logging.py +0 -0
  460. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_build_failure.py +0 -0
  461. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_litellm_env.py +0 -0
  462. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_runner_container_death.py +0 -0
  463. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_runner_mounts.py +0 -0
  464. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_runner_stream_limit.py +0 -0
  465. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_wildcard_env.py +0 -0
  466. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_docker_workdir_live.py +0 -0
  467. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_driver_resolver.py +0 -0
  468. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_early_stop.py +0 -0
  469. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_error_handling.py +0 -0
  470. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_evaluate_command.py +0 -0
  471. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_evaluator.py +0 -0
  472. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_event_collector.py +0 -0
  473. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_experiment_cli.py +0 -0
  474. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_experiment_loader.py +0 -0
  475. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_experiment_models.py +0 -0
  476. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_experiment_reports.py +0 -0
  477. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_experiment_resolver.py +0 -0
  478. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_experiment_runner.py +0 -0
  479. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_file_check.py +0 -0
  480. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_file_contains_scoring.py +0 -0
  481. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_formatting.py +0 -0
  482. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_git_clone_failure.py +0 -0
  483. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_heartbeat_watchdog.py +0 -0
  484. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_ignore_patterns_negation.py +0 -0
  485. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_image_from_dockerfiles.py +0 -0
  486. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_integration.py +0 -0
  487. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_json_check.py +0 -0
  488. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_judge_anthropic.py +0 -0
  489. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_judge_bedrock.py +0 -0
  490. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_judge_burn_in_live.py +0 -0
  491. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_judge_context_builder.py +0 -0
  492. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_judge_models.py +0 -0
  493. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_judge_persistence.py +0 -0
  494. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_lint_no_top_level_run_limits.py +0 -0
  495. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_lint_runner.py +0 -0
  496. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_litellm_cost.py +0 -0
  497. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_litellm_cost_logger.py +0 -0
  498. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_litellm_route.py +0 -0
  499. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_llm_judge_criterion.py +0 -0
  500. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_log_tail_buffer.py +0 -0
  501. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_logging.py +0 -0
  502. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_logging_isolation.py +0 -0
  503. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_merge_characterization.py +0 -0
  504. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_merge_strategy_annotations.py +0 -0
  505. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_merge_unification.py +0 -0
  506. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_models.py +0 -0
  507. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_mutations.py +0 -0
  508. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_new_criteria.py +0 -0
  509. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_node_env_config.py +0 -0
  510. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_optional_dependencies.py +0 -0
  511. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_orchestrator.py +0 -0
  512. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_orchestrator_error_log_tail.py +0 -0
  513. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_orchestrator_telemetry.py +0 -0
  514. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_overrides_engine.py +0 -0
  515. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_parallel.py +0 -0
  516. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_path_utils.py +0 -0
  517. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_plan_command.py +0 -0
  518. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_plugin_processing.py +0 -0
  519. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_plugins.py +0 -0
  520. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_post_run.py +0 -0
  521. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_pr_review_workflow.py +0 -0
  522. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_pre_run.py +0 -0
  523. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_preservation_mode.py +0 -0
  524. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_pricing_registry.py +0 -0
  525. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reference_comparison_scoring.py +0 -0
  526. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reference_evaluator.py +0 -0
  527. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reference_missing_file.py +0 -0
  528. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reference_models.py +0 -0
  529. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reference_orchestrator.py +0 -0
  530. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_registry.py +0 -0
  531. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_release_notes.py +0 -0
  532. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_replicate_stats.py +0 -0
  533. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_report_command.py +0 -0
  534. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reports.py +0 -0
  535. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reports_experiment.py +0 -0
  536. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reports_html.py +0 -0
  537. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reports_junit.py +0 -0
  538. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reports_stats.py +0 -0
  539. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_reports_stats_nonfinite.py +0 -0
  540. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_resolve_task_files.py +0 -0
  541. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_resume.py +0 -0
  542. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_retry_logic_comprehensive.py +0 -0
  543. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_route_seam_exhaustiveness.py +0 -0
  544. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_routing.py +0 -0
  545. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_run_command_junit.py +0 -0
  546. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_run_command_stdout.py +0 -0
  547. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_run_limits_models.py +0 -0
  548. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_run_limits_orchestrator.py +0 -0
  549. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_run_limits_resolver.py +0 -0
  550. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_run_metrics.py +0 -0
  551. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_runtime_tool_versions.py +0 -0
  552. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sandbox.py +0 -0
  553. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sandbox_layer_builder.py +0 -0
  554. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sandbox_optional.py +0 -0
  555. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sandbox_security.py +0 -0
  556. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sandbox_symlink_preservation.py +0 -0
  557. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sandbox_templates.py +0 -0
  558. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_scorers.py +0 -0
  559. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_scoring_quality.py +0 -0
  560. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sdk_option_classification.py +0 -0
  561. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_simulation_config.py +0 -0
  562. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_simulation_integration.py +0 -0
  563. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_simulation_termination.py +0 -0
  564. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_simulation_trials.py +0 -0
  565. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_skill_triggered.py +0 -0
  566. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_agent_integration.py +0 -0
  567. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_batch.py +0 -0
  568. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_callbacks.py +0 -0
  569. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_cli.py +0 -0
  570. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_events.py +0 -0
  571. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_orchestrator.py +0 -0
  572. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_renderers.py +0 -0
  573. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_streaming_wire.py +0 -0
  574. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_sub_agent_runner.py +0 -0
  575. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_success_criterion_union.py +0 -0
  576. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_suite_rollup.py +0 -0
  577. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_summaries.py +0 -0
  578. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_tags.py +0 -0
  579. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_task_definition_unknown_fields.py +0 -0
  580. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_teardown_interrupt.py +0 -0
  581. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_telemetry.py +0 -0
  582. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_template_env_expansion.py +0 -0
  583. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_threshold_enforcement.py +0 -0
  584. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_timeout_batch.py +0 -0
  585. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_timeout_categorization.py +0 -0
  586. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_timeout_exceptions.py +0 -0
  587. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_timeout_models.py +0 -0
  588. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_timeout_orchestrator.py +0 -0
  589. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_token_usage.py +0 -0
  590. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_uipath_eval.py +0 -0
  591. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_user_simulator.py +0 -0
  592. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_utils.py +0 -0
  593. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_utterance_extraction.py +0 -0
  594. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_variant_prompt_file.py +0 -0
  595. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_verdict_tool.py +0 -0
  596. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_watchdog.py +0 -0
  597. {coder_eval-0.9.3 → coder_eval-0.9.4}/tests/test_yaml_migration.py +0 -0
@@ -2,6 +2,36 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.9.4 (2026-08-04)
6
+
7
+ ### Bug Fixes
8
+
9
+ - **litellm**: Pin litellm[proxy]==1.95.0 + fastapi==0.140.0 for proxy startup
10
+ ([#76](https://github.com/UiPath/coder_eval/pull/76),
11
+ [`f2f8580`](https://github.com/UiPath/coder_eval/commit/f2f85807cff3376b7201d5d5b2f9e1c4874220d9))
12
+
13
+ - **litellm**: Pin proxy deps (litellm 1.95.0 + fastapi 0.140.0) to fix startup crash
14
+ ([#76](https://github.com/UiPath/coder_eval/pull/76),
15
+ [`f2f8580`](https://github.com/UiPath/coder_eval/commit/f2f85807cff3376b7201d5d5b2f9e1c4874220d9))
16
+
17
+ ### Chores
18
+
19
+ - **action**: Rename Marketplace listing to coder_eval, add author
20
+ ([`a9c274d`](https://github.com/UiPath/coder_eval/commit/a9c274d918114df5229b20e9c65a4ce620b9f9ed))
21
+
22
+ ### Documentation
23
+
24
+ - **litellm**: Surface the proxy dep-pin override vars in start script
25
+ ([#76](https://github.com/UiPath/coder_eval/pull/76),
26
+ [`f2f8580`](https://github.com/UiPath/coder_eval/commit/f2f85807cff3376b7201d5d5b2f9e1c4874220d9))
27
+
28
+ ### Refactoring
29
+
30
+ - **litellm**: Address PR review — pin SSOT guard, rename, doc ripple
31
+ ([#76](https://github.com/UiPath/coder_eval/pull/76),
32
+ [`f2f8580`](https://github.com/UiPath/coder_eval/commit/f2f85807cff3376b7201d5d5b2f9e1c4874220d9))
33
+
34
+
5
35
  ## v0.9.3 (2026-08-04)
6
36
 
7
37
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coder-eval
3
- Version: 0.9.3
3
+ Version: 0.9.4
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://coder-eval.com
6
6
  Project-URL: Repository, https://github.com/UiPath/coder_eval
@@ -1,4 +1,12 @@
1
- name: coder-eval
1
+ # `name` is the GitHub Marketplace listing title and must be globally unique
2
+ # across Marketplace actions, users, AND organizations. `coder-eval` is taken by
3
+ # an unrelated squatted org (github.com/coder-eval), so the listing uses the
4
+ # underscored repo name instead. This value is display-only: consumers reference
5
+ # the action by repo path (`uses: UiPath/coder_eval@v0`), never by this name.
6
+ name: coder_eval
7
+ # Matches the authorship the project already declares in pyproject.toml
8
+ # (`authors = [{ name = "UiPath", ... }]`) and NOTICE (`© 2026 UiPath`).
9
+ author: UiPath
2
10
  description: Run coder-eval evaluation tasks as a CI gate, with JUnit XML output and a job-summary report.
3
11
  branding:
4
12
  icon: check-circle
@@ -33,7 +41,7 @@ inputs:
33
41
  version:
34
42
  description: coder-eval version to install from PyPI, or "local" to install from the action checkout
35
43
  required: false
36
- default: "0.9.3" # <-- kept in sync with releases by release.yml
44
+ default: "0.9.4" # <-- kept in sync with releases by release.yml
37
45
  run-dir:
38
46
  description: Run directory (--run-dir)
39
47
  required: false
@@ -55,7 +55,9 @@ bash litellm/start-litellm.sh # foreground on :4000, Ctrl-C to stop
55
55
  ```
56
56
 
57
57
  Overridable via env: `LITELLM_PORT` (default 4000), `LITELLM_CONFIG`, `ENV_FILE`,
58
- `LITELLM_MASTER_KEY`.
58
+ `LITELLM_MASTER_KEY`, and the proxy dep pins `LITELLM_SPEC` / `LITELLM_FASTAPI_SPEC`
59
+ (full pip specifiers, e.g. `litellm[proxy]==1.95.0` / `fastapi==0.140.0` — set both
60
+ together when bumping).
59
61
 
60
62
  ### Point coder_eval at it
61
63
 
@@ -190,4 +192,5 @@ subject to this. Bedrock models are single-provider and not affected.
190
192
  | `LiteLLM proxy not reachable at ...` (coder_eval startup) | Proxy not running — start it, or unset `LITELLM_BASE_URL`. |
191
193
  | `Invalid model name passed in model=...` | Model added to yaml but proxy not restarted — restart it. |
192
194
  | HTTP 401 / "Unable to locate credentials" | Missing `AWS_BEARER_TOKEN_BEDROCK` / `OPENROUTER_API_KEY` in `.env`, or key mismatch between `LITELLM_AUTH_TOKEN` (client) and the proxy's master key. |
195
+ | `ModuleNotFoundError: No module named 'proxy_server'` (masked startup death) | fastapi drifted past 0.140.0 (`get_flat_dependant` removed). Use `start-litellm.sh` (it pins the deps), or run with `--with 'fastapi==0.140.0'`. If overriding `LITELLM_SPEC`, bump `LITELLM_FASTAPI_SPEC` to match. |
193
196
  | evalboard cost column blank for a model | Model missing from `evalboard/lib/pricing.ts`. |
@@ -26,7 +26,7 @@ Register in ``litellm-config.yaml``::
26
26
 
27
27
  This module is intentionally **self-contained** (no ``coder_eval`` import): the
28
28
  proxy may run in its own ephemeral environment
29
- (``uvx --from 'litellm[proxy]' litellm``).
29
+ (``uvx --from 'litellm[proxy]==1.95.0' --with 'fastapi==0.140.0' litellm``).
30
30
  """
31
31
 
32
32
  from __future__ import annotations
@@ -18,8 +18,10 @@
18
18
  # AWS_REGION=eu-north-1 — EU residency (Stockholm).
19
19
  # LITELLM_MASTER_KEY — the virtual key clients present as LITELLM_AUTH_TOKEN.
20
20
  #
21
- # Run manually:
22
- # uvx --from 'litellm[proxy]' litellm --config litellm/litellm-config.yaml --port 4000
21
+ # Run manually (pin fastapi==0.140.0 — a later 0.140.x patch removed a symbol
22
+ # litellm's proxy imports; start-litellm.sh does this for you):
23
+ # uvx --from 'litellm[proxy]==1.95.0' --with 'fastapi==0.140.0' \
24
+ # litellm --config litellm/litellm-config.yaml --port 4000
23
25
 
24
26
  model_list:
25
27
  # DeepSeek V3.2 — cost lead ($0.74 / $2.22 per Mtok).
@@ -12,7 +12,9 @@
12
12
  # Usage:
13
13
  # litellm/start-litellm.sh # foreground; Ctrl-C to stop
14
14
  # Overridable via env:
15
- # LITELLM_PORT (default 4000), LITELLM_CONFIG, ENV_FILE, LITELLM_MASTER_KEY
15
+ # LITELLM_PORT (default 4000), LITELLM_CONFIG, ENV_FILE, LITELLM_MASTER_KEY,
16
+ # LITELLM_SPEC / LITELLM_FASTAPI_SPEC (proxy dep pins — FULL pip specifiers,
17
+ # e.g. 'litellm[proxy]==1.95.0' / 'fastapi==0.140.0'; see the pin comment below)
16
18
  set -euo pipefail
17
19
 
18
20
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
@@ -69,11 +71,31 @@ if [ -z "$AWS_BEARER_TOKEN_BEDROCK" ]; then
69
71
  echo " Set it in .env or 'export AWS_BEARER_TOKEN_BEDROCK=...' before running." >&2
70
72
  exit 1
71
73
  fi
74
+ # Pin the proxy deps. `uvx --from 'litellm[proxy]'` unpinned drifts: litellm 1.95.0
75
+ # declares `fastapi>=0.136.3,<1.0`, so uvx grabs the newest fastapi — but fastapi
76
+ # dropped `get_flat_dependant` (which litellm's proxy still imports) in a 0.140.x
77
+ # PATCH (0.140.0 has it, 0.140.13 doesn't), so a range cap isn't enough and startup
78
+ # dies with a (masked) `ModuleNotFoundError: proxy_server`. Pin fastapi to an exact
79
+ # verified-good version and pin litellm so the sidecar can't silently re-break.
80
+ # Both are FULL pip specifiers; override for an upgrade (set BOTH together):
81
+ # LITELLM_SPEC='litellm[proxy]==<ver>' LITELLM_FASTAPI_SPEC='fastapi==<ver>'.
82
+ LITELLM_SPEC="${LITELLM_SPEC:-litellm[proxy]==1.95.0}"
83
+ LITELLM_FASTAPI_SPEC="${LITELLM_FASTAPI_SPEC:-fastapi==0.140.0}"
84
+ # Fail loud on a bare version (e.g. '0.140.0'): `uvx --with 0.140.0` would die with
85
+ # an opaque 'package not found' instead of a pin error.
86
+ for _spec in "$LITELLM_SPEC" "$LITELLM_FASTAPI_SPEC"; do
87
+ case "$_spec" in
88
+ *[=\<\>~]*) ;;
89
+ *) echo "ERROR: '$_spec' is not a pip specifier (expected e.g. fastapi==0.140.0)." >&2; exit 1 ;;
90
+ esac
91
+ done
92
+
72
93
  echo "config : $CONFIG"
73
94
  echo "region : $AWS_REGION"
74
95
  echo "bedrock tok: set (${#AWS_BEARER_TOKEN_BEDROCK} chars)"
75
96
  echo "master key : $LITELLM_MASTER_KEY"
76
97
  echo "cost log : $LITELLM_COST_LOG"
98
+ echo "proxy deps : $LITELLM_SPEC + $LITELLM_FASTAPI_SPEC"
77
99
 
78
100
  # --- stop any stale proxy on the port (the classic 'creds-less running proxy') ---
79
101
  existing=$(lsof -tiTCP:"$PORT" -sTCP:LISTEN 2>/dev/null || true)
@@ -96,4 +118,5 @@ Set these in coder_eval's .env (or shell) to use it:
96
118
 
97
119
  EOF
98
120
 
99
- exec uvx --from 'litellm[proxy]' litellm --config "$CONFIG" --host 127.0.0.1 --port "$PORT"
121
+ # Launch with the pinned deps resolved above (rationale in the pin comment).
122
+ exec uvx --from "$LITELLM_SPEC" --with "$LITELLM_FASTAPI_SPEC" litellm --config "$CONFIG" --host 127.0.0.1 --port "$PORT"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "coder-eval"
3
- version = "0.9.3"
3
+ version = "0.9.4"
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"
@@ -1,3 +1,3 @@
1
1
  """coder_eval - A framework for evaluating AI coding agents."""
2
2
 
3
- __version__ = "0.9.3"
3
+ __version__ = "0.9.4"
@@ -0,0 +1,113 @@
1
+ """Shape guards for the LiteLLM proxy config (litellm/litellm-config.yaml).
2
+
3
+ A typo in this YAML (a mis-spelled key, a wrong callback path) fails silently at
4
+ proxy startup rather than in CI, so pin the structure the open-weight cost feature
5
+ relies on: `usage.include` + the vetted provider pins per model, and the callback
6
+ registration matching the real symbol in cost_logger.py.
7
+
8
+ Same rationale covers the sidecar dependency pins: `start-litellm.sh` is the SSOT
9
+ for `LITELLM_SPEC` / `LITELLM_FASTAPI_SPEC`, and the pins are restated in the
10
+ config's `# Run manually` comment and the cost_logger docstring. Nothing else
11
+ mechanically checks the shell launcher (no shellcheck hook, no CI job touches
12
+ `litellm/`), so a future pin bump could silently desync those copies and only fail
13
+ at proxy startup — exactly the failure mode the pins exist to fix. These guards
14
+ keep the copies in lockstep and syntax-check the launcher.
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import importlib.util
20
+ import re
21
+ import shutil
22
+ import subprocess
23
+ from pathlib import Path
24
+
25
+ import pytest
26
+ import yaml
27
+
28
+
29
+ _REPO_ROOT = Path(__file__).resolve().parent.parent
30
+ _CONFIG = _REPO_ROOT / "litellm" / "litellm-config.yaml"
31
+ _COST_LOGGER = _REPO_ROOT / "litellm" / "cost_logger.py"
32
+ _START_SCRIPT = _REPO_ROOT / "litellm" / "start-litellm.sh"
33
+
34
+ _CALLBACK = "cost_logger.proxy_handler_instance"
35
+
36
+
37
+ def _load() -> dict:
38
+ return yaml.safe_load(_CONFIG.read_text(encoding="utf-8"))
39
+
40
+
41
+ def _pin_defaults() -> dict[str, str]:
42
+ """Extract the `${VAR:-<default>}` pin defaults from start-litellm.sh (the SSOT)."""
43
+ text = _START_SCRIPT.read_text(encoding="utf-8")
44
+ pins: dict[str, str] = {}
45
+ for var in ("LITELLM_SPEC", "LITELLM_FASTAPI_SPEC"):
46
+ m = re.search(rf'{var}="\$\{{{var}:-(?P<val>[^}}]+)\}}"', text)
47
+ assert m, f"{var} default not found in {_START_SCRIPT.name}"
48
+ pins[var] = m.group("val")
49
+ return pins
50
+
51
+
52
+ class TestLitellmConfigShape:
53
+ def test_cost_callback_registered(self):
54
+ assert _load()["litellm_settings"]["callbacks"] == _CALLBACK
55
+
56
+ def test_openrouter_models_capture_usage_and_pin_providers(self):
57
+ # Derive the OpenRouter set from the config (not a hardcoded literal) so a
58
+ # future openrouter/* entry missing usage.include is caught automatically —
59
+ # otherwise it silently regresses to static pricing.
60
+ models = [m for m in _load()["model_list"] if str(m["litellm_params"]["model"]).startswith("openrouter/")]
61
+ assert models, "no openrouter/* models in litellm-config model_list"
62
+ for model in models:
63
+ extra = model["litellm_params"]["extra_body"]
64
+ # usage.include drives the actual-cost capture (cost_logger reads usage.cost).
65
+ assert extra["usage"]["include"] is True, model["model_name"]
66
+ provider = extra["provider"]
67
+ assert provider["sort"] == "price"
68
+ # allow_fallbacks: true, but bounded to the vetted `only` set (fall over
69
+ # WITHIN the set on saturation; never outside it).
70
+ assert provider["allow_fallbacks"] is True
71
+ assert isinstance(provider["only"], list) and provider["only"]
72
+
73
+ def test_callback_symbol_exists_in_cost_logger(self):
74
+ # The callbacks string above names `cost_logger.proxy_handler_instance`;
75
+ # prove that symbol actually exists so the config and module can't drift.
76
+ module_name, attr = _CALLBACK.split(".")
77
+ spec = importlib.util.spec_from_file_location(module_name, _COST_LOGGER)
78
+ assert spec and spec.loader
79
+ module = importlib.util.module_from_spec(spec)
80
+ spec.loader.exec_module(module)
81
+ assert hasattr(module, attr)
82
+
83
+
84
+ class TestLitellmSidecarPins:
85
+ def test_defaults_are_full_pip_specifiers(self):
86
+ # A bare version (e.g. LITELLM_FASTAPI_SPEC=0.140.13) would become
87
+ # `uvx --with 0.140.13` and fail with an opaque 'package not found' rather
88
+ # than a pin error, so every default must carry a version comparator.
89
+ for var, spec in _pin_defaults().items():
90
+ assert var.endswith("_SPEC"), f"{var} holds a specifier; name it *_SPEC"
91
+ assert re.search(r"[=<>~]=?", spec), f"{var}={spec!r} is not a pip specifier"
92
+
93
+ def test_pins_are_restated_in_every_committed_copy(self):
94
+ # start-litellm.sh is the SSOT; the config's `# Run manually` comment and the
95
+ # cost_logger docstring each restate the invocation. Assert both exact pins
96
+ # appear verbatim in each, so a future bump can't silently desync them.
97
+ pins = _pin_defaults().values()
98
+ config_text = _CONFIG.read_text(encoding="utf-8")
99
+ cost_logger_text = _COST_LOGGER.read_text(encoding="utf-8")
100
+ for pin in pins:
101
+ assert pin in config_text, f"{pin!r} missing from litellm-config.yaml comment"
102
+ assert pin in cost_logger_text, f"{pin!r} missing from cost_logger.py docstring"
103
+
104
+ def test_start_script_has_valid_bash_syntax(self):
105
+ bash = shutil.which("bash")
106
+ if bash is None:
107
+ pytest.skip("bash not available")
108
+ result = subprocess.run(
109
+ [bash, "-n", str(_START_SCRIPT)],
110
+ capture_output=True,
111
+ text=True,
112
+ )
113
+ assert result.returncode == 0, result.stderr
@@ -449,7 +449,7 @@ wheels = [
449
449
 
450
450
  [[package]]
451
451
  name = "coder-eval"
452
- version = "0.9.3"
452
+ version = "0.9.4"
453
453
  source = { editable = "." }
454
454
  dependencies = [
455
455
  { name = "anthropic" },
@@ -1,57 +0,0 @@
1
- """Shape guards for the LiteLLM proxy config (litellm/litellm-config.yaml).
2
-
3
- A typo in this YAML (a mis-spelled key, a wrong callback path) fails silently at
4
- proxy startup rather than in CI, so pin the structure the open-weight cost feature
5
- relies on: `usage.include` + the vetted provider pins per model, and the callback
6
- registration matching the real symbol in cost_logger.py.
7
- """
8
-
9
- from __future__ import annotations
10
-
11
- import importlib.util
12
- from pathlib import Path
13
-
14
- import yaml
15
-
16
-
17
- _REPO_ROOT = Path(__file__).resolve().parent.parent
18
- _CONFIG = _REPO_ROOT / "litellm" / "litellm-config.yaml"
19
- _COST_LOGGER = _REPO_ROOT / "litellm" / "cost_logger.py"
20
-
21
- _CALLBACK = "cost_logger.proxy_handler_instance"
22
-
23
-
24
- def _load() -> dict:
25
- return yaml.safe_load(_CONFIG.read_text(encoding="utf-8"))
26
-
27
-
28
- class TestLitellmConfigShape:
29
- def test_cost_callback_registered(self):
30
- assert _load()["litellm_settings"]["callbacks"] == _CALLBACK
31
-
32
- def test_openrouter_models_capture_usage_and_pin_providers(self):
33
- # Derive the OpenRouter set from the config (not a hardcoded literal) so a
34
- # future openrouter/* entry missing usage.include is caught automatically —
35
- # otherwise it silently regresses to static pricing.
36
- models = [m for m in _load()["model_list"] if str(m["litellm_params"]["model"]).startswith("openrouter/")]
37
- assert models, "no openrouter/* models in litellm-config model_list"
38
- for model in models:
39
- extra = model["litellm_params"]["extra_body"]
40
- # usage.include drives the actual-cost capture (cost_logger reads usage.cost).
41
- assert extra["usage"]["include"] is True, model["model_name"]
42
- provider = extra["provider"]
43
- assert provider["sort"] == "price"
44
- # allow_fallbacks: true, but bounded to the vetted `only` set (fall over
45
- # WITHIN the set on saturation; never outside it).
46
- assert provider["allow_fallbacks"] is True
47
- assert isinstance(provider["only"], list) and provider["only"]
48
-
49
- def test_callback_symbol_exists_in_cost_logger(self):
50
- # The callbacks string above names `cost_logger.proxy_handler_instance`;
51
- # prove that symbol actually exists so the config and module can't drift.
52
- module_name, attr = _CALLBACK.split(".")
53
- spec = importlib.util.spec_from_file_location(module_name, _COST_LOGGER)
54
- assert spec and spec.loader
55
- module = importlib.util.module_from_spec(spec)
56
- spec.loader.exec_module(module)
57
- assert hasattr(module, attr)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes