verifiers 0.4.1.dev31__tar.gz → 0.4.1.dev33__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 (271) hide show
  1. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/PKG-INFO +1 -1
  2. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/pyproject.toml +1 -0
  3. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/grid.py +1 -0
  4. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/__init__.py +3 -0
  5. verifiers-0.4.1.dev33/verifiers/v1/harnesses/deepseek/__init__.py +6 -0
  6. verifiers-0.4.1.dev33/verifiers/v1/harnesses/deepseek/gate.mjs +11 -0
  7. verifiers-0.4.1.dev33/verifiers/v1/harnesses/deepseek/harness.py +148 -0
  8. verifiers-0.4.1.dev33/verifiers/v1/harnesses/deepseek/usage.mjs +75 -0
  9. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judges/decision.py +1 -1
  10. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/.gitignore +0 -0
  11. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/LICENSE +0 -0
  12. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/README.md +0 -0
  13. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/conftest.py +0 -0
  14. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/agent_user_harness_v1.py +0 -0
  15. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/agent_user_v1.py +0 -0
  16. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/counter_tool_v1.py +0 -0
  17. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/duet_v1.py +0 -0
  18. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/echo_acp_resume_v1.py +0 -0
  19. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/echo_agentic_v1.py +0 -0
  20. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/echo_tool_compose/docker-compose.yaml +0 -0
  21. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/echo_tool_v1.py +0 -0
  22. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/echo_user_sim_v1.py +0 -0
  23. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/echo_v1.py +0 -0
  24. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/network_policy_v1.py +0 -0
  25. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/pyproject.toml +0 -0
  26. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/skill_codeword_v1.py +0 -0
  27. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/skills/project-codeword/SKILL.md +0 -0
  28. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/fixtures/tool_response_image_v1.py +0 -0
  29. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_agent_user.py +0 -0
  30. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_agentic_judge.py +0 -0
  31. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_compose_scoring.py +0 -0
  32. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_examples.py +0 -0
  33. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_limits.py +0 -0
  34. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_multi_agent.py +0 -0
  35. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_multi_turn.py +0 -0
  36. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_multi_turn_tool.py +0 -0
  37. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_multimodal_tool.py +0 -0
  38. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_network_policy.py +0 -0
  39. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_resume_tool.py +0 -0
  40. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_rubric_judge.py +0 -0
  41. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_sampling.py +0 -0
  42. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_shared_tool.py +0 -0
  43. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_single_turn.py +0 -0
  44. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_skills.py +0 -0
  45. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_stateful_tool.py +0 -0
  46. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_user_echo.py +0 -0
  47. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/integration/test_user_sim.py +0 -0
  48. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/cli/test_replay.py +0 -0
  49. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/conftest.py +0 -0
  50. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/harnesses/test_core.py +0 -0
  51. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/harnesses/test_rlm.py +0 -0
  52. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/interception/test_tunnel.py +0 -0
  53. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/judges/conftest.py +0 -0
  54. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/judges/test_judge.py +0 -0
  55. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/judges/test_reference.py +0 -0
  56. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/judges/test_rubric.py +0 -0
  57. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/runtimes/test_e2b.py +0 -0
  58. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/serve/test_client.py +0 -0
  59. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/serve/test_delta.py +0 -0
  60. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/serve/test_pool.py +0 -0
  61. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_agent.py +0 -0
  62. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_dialects.py +0 -0
  63. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_graph.py +0 -0
  64. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_semantic.py +0 -0
  65. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_task.py +0 -0
  66. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_taskset.py +0 -0
  67. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/test_trace.py +0 -0
  68. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/utils/test_compile.py +0 -0
  69. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/utils/test_loaders.py +0 -0
  70. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/utils/test_platform.py +0 -0
  71. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/tests/unit/utils/test_score.py +0 -0
  72. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/__init__.py +0 -0
  73. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/__init__.py +0 -0
  74. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/acp/__init__.py +0 -0
  75. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/acp/runner.py +0 -0
  76. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/agent.py +0 -0
  77. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/__init__.py +0 -0
  78. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  79. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/dashboard/base.py +0 -0
  80. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/dashboard/eval.py +0 -0
  81. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/dashboard/replay.py +0 -0
  82. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/dashboard/validate.py +0 -0
  83. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/debug.py +0 -0
  84. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/eval/__init__.py +0 -0
  85. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/eval/hint.py +0 -0
  86. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/eval/main.py +0 -0
  87. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/eval/resume.py +0 -0
  88. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/eval/runner.py +0 -0
  89. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/gepa.py +0 -0
  90. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/output.py +0 -0
  91. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/replay.py +0 -0
  92. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/resolve.py +0 -0
  93. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/resume.py +0 -0
  94. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/cli/validate.py +0 -0
  95. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/clients/__init__.py +0 -0
  96. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/clients/base.py +0 -0
  97. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/clients/client.py +0 -0
  98. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/clients/eval.py +0 -0
  99. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/clients/train.py +0 -0
  100. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/__init__.py +0 -0
  101. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/agent.py +0 -0
  102. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/cli/__init__.py +0 -0
  103. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/cli/debug.py +0 -0
  104. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/cli/env.py +0 -0
  105. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/cli/eval.py +0 -0
  106. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/cli/replay.py +0 -0
  107. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/cli/validate.py +0 -0
  108. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/client.py +0 -0
  109. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/env.py +0 -0
  110. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/harness.py +0 -0
  111. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/judge.py +0 -0
  112. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/retries.py +0 -0
  113. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/runtime.py +0 -0
  114. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/scoring.py +0 -0
  115. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/select.py +0 -0
  116. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/serve.py +0 -0
  117. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/task.py +0 -0
  118. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/configs/taskset.py +0 -0
  119. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/dialects/__init__.py +0 -0
  120. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/dialects/anthropic.py +0 -0
  121. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/dialects/base.py +0 -0
  122. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/dialects/chat.py +0 -0
  123. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/dialects/responses.py +0 -0
  124. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/env.py +0 -0
  125. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/__init__.py +0 -0
  126. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  127. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  128. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  129. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/best_of_n/env.py +0 -0
  130. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  131. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/single_agent/env.py +0 -0
  132. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  133. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/envs/user_sim/env.py +0 -0
  134. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/episode.py +0 -0
  135. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/errors.py +0 -0
  136. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/gepa/__init__.py +0 -0
  137. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/gepa/adapter.py +0 -0
  138. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/gepa/config.py +0 -0
  139. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/gepa/dataset.py +0 -0
  140. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/gepa/reflection.py +0 -0
  141. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/gepa/runner.py +0 -0
  142. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/grading.py +0 -0
  143. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/graph.py +0 -0
  144. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harness.py +0 -0
  145. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  146. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/bash/harness.py +0 -0
  147. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  148. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  149. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  150. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  151. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  152. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  153. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  154. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/codex/harness.py +0 -0
  155. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  156. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  157. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  158. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  159. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  160. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  161. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  162. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  163. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/node.py +0 -0
  164. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/null/__init__.py +0 -0
  165. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/null/harness.py +0 -0
  166. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  167. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  168. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/opencode/__init__.py +0 -0
  169. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/opencode/harness.py +0 -0
  170. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/opencode/mcp-ready.js +0 -0
  171. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  172. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  173. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/pi/harness.py +0 -0
  174. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  175. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  176. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  177. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  178. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  179. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  180. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  181. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  182. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  183. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/core.py +0 -0
  184. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/install.py +0 -0
  185. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/launch.py +0 -0
  186. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  187. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/harnesses/utils/replay.py +0 -0
  188. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/__init__.py +0 -0
  189. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/base.py +0 -0
  190. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/pool.py +0 -0
  191. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/server.py +0 -0
  192. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  193. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/tunnel/base.py +0 -0
  194. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/tunnel/custom.py +0 -0
  195. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/interception/tunnel/prime.py +0 -0
  196. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judge.py +0 -0
  197. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judges/__init__.py +0 -0
  198. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judges/reference.py +0 -0
  199. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judges/reference.txt +0 -0
  200. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judges/rubric.py +0 -0
  201. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/judges/rubric.txt +0 -0
  202. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/mcp/__init__.py +0 -0
  203. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/mcp/launch.py +0 -0
  204. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/mcp/server.py +0 -0
  205. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/mcp/toolset.py +0 -0
  206. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/rollout.py +0 -0
  207. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/__init__.py +0 -0
  208. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/apptainer.py +0 -0
  209. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/base.py +0 -0
  210. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/compose.py +0 -0
  211. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/container.py +0 -0
  212. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/deployment.py +0 -0
  213. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  214. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/docker/egress.py +0 -0
  215. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/e2b.py +0 -0
  216. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/limiters.py +0 -0
  217. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/modal.py +0 -0
  218. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/prime.py +0 -0
  219. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/runtime.py +0 -0
  220. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/strategies.py +0 -0
  221. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/runtimes/subprocess.py +0 -0
  222. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/semantic.py +0 -0
  223. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/__init__.py +0 -0
  224. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/client.py +0 -0
  225. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/delta.py +0 -0
  226. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/encoding.py +0 -0
  227. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/pool.py +0 -0
  228. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/server.py +0 -0
  229. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/serve/types.py +0 -0
  230. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/session.py +0 -0
  231. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/state.py +0 -0
  232. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/task.py +0 -0
  233. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/taskset.py +0 -0
  234. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/__init__.py +0 -0
  235. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  236. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  237. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  238. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  239. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  240. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  241. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  242. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  243. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  244. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  245. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  246. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  247. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/trace.py +0 -0
  248. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/types.py +0 -0
  249. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/__init__.py +0 -0
  250. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/aio.py +0 -0
  251. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/artifacts.py +0 -0
  252. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/compile.py +0 -0
  253. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/decorators.py +0 -0
  254. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/env.py +0 -0
  255. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/eval.py +0 -0
  256. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/format.py +0 -0
  257. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/generic.py +0 -0
  258. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/git.py +0 -0
  259. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/image.py +0 -0
  260. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/interrupt.py +0 -0
  261. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/loaders.py +0 -0
  262. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/logging.py +0 -0
  263. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/memory.py +0 -0
  264. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/paths.py +0 -0
  265. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/platform.py +0 -0
  266. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/prime.py +0 -0
  267. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/retries.py +0 -0
  268. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/scope.py +0 -0
  269. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/score.py +0 -0
  270. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/trace_store.py +0 -0
  271. {verifiers-0.4.1.dev31 → verifiers-0.4.1.dev33}/verifiers/v1/utils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: verifiers
3
- Version: 0.4.1.dev31
3
+ Version: 0.4.1.dev33
4
4
  Summary: Verifiers: Environments for LLM Reinforcement Learning
5
5
  Project-URL: Homepage, https://github.com/primeintellect-ai/verifiers
6
6
  Project-URL: Documentation, https://github.com/primeintellect-ai/verifiers
@@ -237,6 +237,7 @@ markers = [
237
237
  "claude_code: integration cells on the claude-code harness",
238
238
  "openclaw: integration cells on the OpenClaw harness",
239
239
  "hermes_agent: integration cells on the hermes-agent harness",
240
+ "deepseek: integration cells on the DeepSeek minimal harness",
240
241
  "rlm: integration cells on the rlm harness",
241
242
  "kimi_code: integration cells on the kimi-code harness",
242
243
  "pi: integration cells on the pi harness",
@@ -49,6 +49,7 @@ HARNESSES: list[str | dict] = [
49
49
  "codex",
50
50
  "claude-code",
51
51
  "hermes-agent",
52
+ "deepseek",
52
53
  "kimi-code",
53
54
  "pi",
54
55
  "openclaw",
@@ -8,6 +8,7 @@ from verifiers.v1.harnesses.claude_code import (
8
8
  ClaudeCodeHarnessConfig,
9
9
  )
10
10
  from verifiers.v1.harnesses.codex import CodexHarness, CodexHarnessConfig
11
+ from verifiers.v1.harnesses.deepseek import DeepSeekHarness, DeepSeekHarnessConfig
11
12
  from verifiers.v1.harnesses.hermes_agent import (
12
13
  HermesAgentHarness,
13
14
  HermesAgentHarnessConfig,
@@ -37,6 +38,8 @@ __all__ = [
37
38
  "ClaudeCodeHarnessConfig",
38
39
  "CodexHarness",
39
40
  "CodexHarnessConfig",
41
+ "DeepSeekHarness",
42
+ "DeepSeekHarnessConfig",
40
43
  "HermesAgentHarness",
41
44
  "HermesAgentHarnessConfig",
42
45
  "KimiCodeHarness",
@@ -0,0 +1,6 @@
1
+ from verifiers.v1.harnesses.deepseek.harness import (
2
+ DeepSeekHarness,
3
+ DeepSeekHarnessConfig,
4
+ )
5
+
6
+ __all__ = ["DeepSeekHarness", "DeepSeekHarnessConfig"]
@@ -0,0 +1,11 @@
1
+ // Preserve native policy denials; route every otherwise allowed tool through ACP.
2
+ // The shared ACP runner resolves the call ID against the rollout's tool policy.
3
+ export const name = "vf-tool-gate";
4
+ export const inject = ["tools", "approval"];
5
+
6
+ export function apply(ctx) {
7
+ ctx.on("tools/pre-execute", async (_exec, next) => {
8
+ const decision = await next();
9
+ return decision.kind === "allow" ? { kind: "ask" } : decision;
10
+ });
11
+ }
@@ -0,0 +1,148 @@
1
+ """DeepSeek's minimal coding agent, driven through its native ACP bridge."""
2
+
3
+ import json
4
+ from pathlib import Path
5
+
6
+ from verifiers.v1.acp import ACPConfig, ACPHarness
7
+ from verifiers.v1.clients import ModelContext
8
+ from verifiers.v1.configs.harness import HarnessConfig, PinnedVersion
9
+ from verifiers.v1.harnesses.node import NODE_BIN_DIR, ensure_node
10
+ from verifiers.v1.harnesses.utils.install import ensure_installed, remove_dir
11
+ from verifiers.v1.runtimes import Runtime
12
+ from verifiers.v1.task import TaskData
13
+ from verifiers.v1.trace import Trace
14
+
15
+ DEEPSEEK_DIR = "/var/tmp/vf-deepseek-{version}"
16
+ USAGE_COMPAT = (Path(__file__).parent / "usage.mjs").read_bytes()
17
+ GATE = (Path(__file__).parent / "gate.mjs").read_bytes()
18
+ INSTALL = r"""
19
+ set -e
20
+ export PATH="/var/tmp/vf-node/bin:$PATH"
21
+ npm install --prefix "$VF_DEEPSEEK_DIR" --no-audit --no-fund \
22
+ "@deepseek-ai/dsh@$VF_DEEPSEEK_VERSION" >/dev/null
23
+ touch "$VF_DEEPSEEK_DIR/.ready"
24
+ """
25
+
26
+
27
+ class DeepSeekHarnessConfig(HarnessConfig):
28
+ version: PinnedVersion = "0.2.1-alpha.3"
29
+ """DeepSeek CLI release, pinned to its shipped sdk-minimal composition."""
30
+
31
+
32
+ class DeepSeekHarness(ACPHarness[DeepSeekHarnessConfig]):
33
+ APPENDS_SYSTEM_PROMPT = True
34
+ SUPPORTS_MCP = True
35
+ SUPPORTS_TOOL_INTERCEPTION = True
36
+
37
+ async def setup(self, runtime: Runtime) -> None:
38
+ await ensure_node(runtime)
39
+ directory = DEEPSEEK_DIR.format(version=self.config.version)
40
+ await ensure_installed(
41
+ runtime,
42
+ directory=directory,
43
+ ready=f"test -f {directory}/.ready",
44
+ install=INSTALL,
45
+ env={
46
+ "VF_DEEPSEEK_DIR": directory,
47
+ "VF_DEEPSEEK_VERSION": self.config.version,
48
+ },
49
+ label="DeepSeek Harness",
50
+ )
51
+ await super().setup(runtime)
52
+
53
+ async def prepare_acp(
54
+ self,
55
+ ctx: ModelContext,
56
+ trace: Trace,
57
+ runtime: Runtime,
58
+ endpoint: str,
59
+ secret: str,
60
+ mcp_urls: dict[str, str],
61
+ data: TaskData,
62
+ ) -> ACPConfig:
63
+ if self.config.disabled_tools:
64
+ raise ValueError("DeepSeek minimal ACP does not support disabling tools")
65
+
66
+ home = f"/tmp/vf-deepseek/{trace.id}"
67
+ system_prompt, prompt = self.resolve_prompt(data)
68
+ # Keep the upstream minimal tree; replace only its SDK stdio front door.
69
+ # https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/bundle/sdk-minimal
70
+ patches = [
71
+ {"id": "sdk-app-startup", "disabled": True},
72
+ {"id": "sdk-jsonrpc-server", "disabled": True},
73
+ # Provider metadata is captured by verifiers, not uploaded by DSH.
74
+ {"id": "session-log-deepseek", "disabled": True},
75
+ {"id": "plugin-package-inventory-deepseek", "disabled": True},
76
+ {
77
+ "insert": [
78
+ {
79
+ "id": "acp-app-startup",
80
+ "name": "@deepseek-ai/dsh-acp-app",
81
+ },
82
+ {
83
+ "id": "acp",
84
+ "name": "@deepseek-ai/dsh-acp",
85
+ "inject": ["acpAppStartup"],
86
+ "config": {"provider": "deepseek-official", "model": ctx.model},
87
+ },
88
+ ]
89
+ },
90
+ ]
91
+ if system_prompt:
92
+ patches.append(
93
+ {
94
+ "id": "system-prompt",
95
+ "config": {
96
+ "includeHarnessIdentity": False,
97
+ "includeRuntimeContext": False,
98
+ "personaPrefix": "You are a helpful software engineer assistant."
99
+ + "\n\n"
100
+ + system_prompt,
101
+ },
102
+ }
103
+ )
104
+ patch_path = f"{home}/acp.patch.json"
105
+ # JSON is valid YAML and preserves arbitrary task prompt text verbatim.
106
+ await runtime.write(patch_path, json.dumps(patches).encode())
107
+ usage_path = f"{home}/usage.mjs"
108
+ await runtime.write(usage_path, USAGE_COMPAT)
109
+ return ACPConfig(
110
+ command=[
111
+ f"{NODE_BIN_DIR}/node",
112
+ "--import",
113
+ usage_path,
114
+ f"{DEEPSEEK_DIR.format(version=self.config.version)}/node_modules/@deepseek-ai/dsh/lib/bin.js",
115
+ "--profile",
116
+ "sdk-minimal",
117
+ "--patch",
118
+ patch_path,
119
+ ],
120
+ env={
121
+ **self.config.resolved_env,
122
+ "DSH_HOME": home,
123
+ "DEEPSEEK_BASE_URL": endpoint,
124
+ "DEEPSEEK_API_KEY": secret,
125
+ },
126
+ prompt=prompt,
127
+ )
128
+
129
+ async def gate_tools(
130
+ self, config: ACPConfig, runtime: Runtime, url: str, secret: str
131
+ ) -> None:
132
+ home = config.env["DSH_HOME"]
133
+ gate_path = f"{home}/gate.mjs"
134
+ await runtime.write(gate_path, GATE)
135
+ patch_path = f"{home}/acp.patch.json"
136
+ patches = json.loads(await runtime.read(patch_path))
137
+ patches.append(
138
+ {
139
+ "insert": [
140
+ {"id": "vf-approval", "name": "@deepseek-ai/dsh-user-approval"},
141
+ {"id": "vf-tool-gate", "name": gate_path},
142
+ ]
143
+ }
144
+ )
145
+ await runtime.write(patch_path, json.dumps(patches).encode())
146
+
147
+ async def cleanup(self, trace: Trace, runtime: Runtime) -> None:
148
+ await remove_dir(runtime, f"/tmp/vf-deepseek/{trace.id}", "DeepSeek state")
@@ -0,0 +1,75 @@
1
+ // Some Messages-compatible gateways emit null for unknown cache counts. DSH's
2
+ // parser accepts omitted counts, but rejects null. Keep the last known counts.
3
+ const fetch = globalThis.fetch;
4
+ const base = new URL(process.env.DEEPSEEK_BASE_URL);
5
+ base.pathname = base.pathname.replace(/\/$/, "");
6
+ if (!base.pathname.endsWith("/v1")) base.pathname += "/v1";
7
+ base.pathname += "/messages";
8
+
9
+ function normalize(line) {
10
+ if (!line.startsWith("data:")) return line;
11
+ let data;
12
+ try {
13
+ data = JSON.parse(line.slice(5));
14
+ } catch {
15
+ // Preserve SSE sentinels and non-JSON data for the upstream parser.
16
+ return line;
17
+ }
18
+ let changed = false;
19
+ for (const usage of [data?.usage, data?.message?.usage]) {
20
+ if (!usage) continue;
21
+ for (const key of ["cache_read_input_tokens", "cache_creation_input_tokens"]) {
22
+ if (usage[key] === null) {
23
+ delete usage[key];
24
+ changed = true;
25
+ }
26
+ }
27
+ }
28
+ return changed ? `data: ${JSON.stringify(data)}` : line;
29
+ }
30
+
31
+ globalThis.fetch = async (input, init) => {
32
+ const url = new URL(input instanceof Request ? input.url : input);
33
+ if (url.href === base.href && typeof init?.body === "string") {
34
+ const body = JSON.parse(init.body);
35
+ // DSH enables thinking without a budget; Messages gateways require either
36
+ // a budget or adaptive thinking. Eval sampling overrides apply downstream.
37
+ if (body.thinking?.type === "enabled" && body.thinking.budget_tokens === undefined) {
38
+ body.thinking = {type: "adaptive"};
39
+ init = {...init, body: JSON.stringify(body)};
40
+ }
41
+ }
42
+ const response = await fetch(input, init);
43
+ if (url.href === base.href && !response.ok) {
44
+ const detail = (await response.clone().text()).slice(0, 1000);
45
+ console.error(`DeepSeek Messages HTTP ${response.status}: ${detail}`);
46
+ }
47
+ if (
48
+ url.href !== base.href ||
49
+ !response.body ||
50
+ !response.headers.get("content-type")?.includes("text/event-stream")
51
+ ) return response;
52
+
53
+ let pending = "";
54
+ const body = response.body
55
+ .pipeThrough(new TextDecoderStream())
56
+ .pipeThrough(new TransformStream({
57
+ transform(chunk, controller) {
58
+ pending += chunk;
59
+ const lines = pending.split("\n");
60
+ pending = lines.pop();
61
+ for (const line of lines) controller.enqueue(`${normalize(line)}\n`);
62
+ },
63
+ flush(controller) {
64
+ if (pending) controller.enqueue(normalize(pending));
65
+ },
66
+ }))
67
+ .pipeThrough(new TextEncoderStream());
68
+ const headers = new Headers(response.headers);
69
+ headers.delete("content-length");
70
+ return new Response(body, {
71
+ status: response.status,
72
+ statusText: response.statusText,
73
+ headers,
74
+ });
75
+ };
@@ -21,7 +21,7 @@ from verifiers.v1.types import ID, Usage
21
21
 
22
22
  class DecisionJudgeConfig(JudgeConfig):
23
23
  id: ID = "decision"
24
- model: str = "typesafe-ai/jev"
24
+ model: str = "cloudflare/clef"
25
25
  base_url: str = "https://api.pinference.ai/api/v1/evaluations"
26
26
  """Full URL to POST evaluation requests to."""
27
27
  levels: list[str] = Field(
File without changes