verifiers 0.4.1.dev22__tar.gz → 0.4.1.dev24__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 (263) hide show
  1. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/PKG-INFO +1 -1
  2. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/conftest.py +1 -0
  3. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_examples.py +35 -12
  4. verifiers-0.4.1.dev24/tests/integration/test_rubric_judge.py +40 -0
  5. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/rollout.py +2 -1
  6. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/deployment.py +0 -6
  7. verifiers-0.4.1.dev22/tests/integration/test_rubric_judge.py +0 -31
  8. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/.gitignore +0 -0
  9. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/LICENSE +0 -0
  10. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/README.md +0 -0
  11. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/pyproject.toml +0 -0
  12. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/agent_user_harness_v1.py +0 -0
  13. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/agent_user_v1.py +0 -0
  14. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/counter_tool_v1.py +0 -0
  15. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/duet_v1.py +0 -0
  16. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/echo_acp_resume_v1.py +0 -0
  17. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/echo_agentic_v1.py +0 -0
  18. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/echo_tool_v1.py +0 -0
  19. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/echo_user_sim_v1.py +0 -0
  20. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/echo_v1.py +0 -0
  21. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/network_policy_v1.py +0 -0
  22. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/pyproject.toml +0 -0
  23. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/skill_codeword_v1.py +0 -0
  24. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/skills/project-codeword/SKILL.md +0 -0
  25. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/fixtures/tool_response_image_v1.py +0 -0
  26. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/grid.py +0 -0
  27. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_agent_user.py +0 -0
  28. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_agentic_judge.py +0 -0
  29. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_compose_scoring.py +0 -0
  30. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_limits.py +0 -0
  31. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_multi_agent.py +0 -0
  32. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_multi_turn.py +0 -0
  33. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_multi_turn_tool.py +0 -0
  34. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_multimodal_tool.py +0 -0
  35. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_network_policy.py +0 -0
  36. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_resume_tool.py +0 -0
  37. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_sampling.py +0 -0
  38. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_shared_tool.py +0 -0
  39. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_single_turn.py +0 -0
  40. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_skills.py +0 -0
  41. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_stateful_tool.py +0 -0
  42. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_user_echo.py +0 -0
  43. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/integration/test_user_sim.py +0 -0
  44. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/cli/test_replay.py +0 -0
  45. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/conftest.py +0 -0
  46. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/harnesses/test_core.py +0 -0
  47. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/harnesses/test_rlm.py +0 -0
  48. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/interception/test_tunnel.py +0 -0
  49. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/judges/conftest.py +0 -0
  50. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/judges/test_judge.py +0 -0
  51. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/judges/test_reference.py +0 -0
  52. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/judges/test_rubric.py +0 -0
  53. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/runtimes/test_e2b.py +0 -0
  54. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/serve/test_client.py +0 -0
  55. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/serve/test_delta.py +0 -0
  56. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/serve/test_pool.py +0 -0
  57. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_agent.py +0 -0
  58. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_dialects.py +0 -0
  59. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_graph.py +0 -0
  60. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_semantic.py +0 -0
  61. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_task.py +0 -0
  62. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_taskset.py +0 -0
  63. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/test_trace.py +0 -0
  64. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/utils/test_compile.py +0 -0
  65. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/utils/test_loaders.py +0 -0
  66. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/utils/test_platform.py +0 -0
  67. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/tests/unit/utils/test_score.py +0 -0
  68. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/__init__.py +0 -0
  69. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/__init__.py +0 -0
  70. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/acp/__init__.py +0 -0
  71. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/acp/runner.py +0 -0
  72. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/agent.py +0 -0
  73. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/__init__.py +0 -0
  74. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  75. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/dashboard/base.py +0 -0
  76. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/dashboard/eval.py +0 -0
  77. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/dashboard/replay.py +0 -0
  78. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/dashboard/validate.py +0 -0
  79. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/debug.py +0 -0
  80. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/eval/__init__.py +0 -0
  81. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/eval/hint.py +0 -0
  82. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/eval/main.py +0 -0
  83. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/eval/resume.py +0 -0
  84. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/eval/runner.py +0 -0
  85. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/gepa.py +0 -0
  86. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/output.py +0 -0
  87. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/replay.py +0 -0
  88. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/resolve.py +0 -0
  89. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/resume.py +0 -0
  90. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/cli/validate.py +0 -0
  91. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/clients/__init__.py +0 -0
  92. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/clients/base.py +0 -0
  93. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/clients/client.py +0 -0
  94. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/clients/eval.py +0 -0
  95. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/clients/train.py +0 -0
  96. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/__init__.py +0 -0
  97. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/agent.py +0 -0
  98. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/cli/__init__.py +0 -0
  99. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/cli/debug.py +0 -0
  100. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/cli/env.py +0 -0
  101. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/cli/eval.py +0 -0
  102. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/cli/replay.py +0 -0
  103. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/cli/validate.py +0 -0
  104. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/client.py +0 -0
  105. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/env.py +0 -0
  106. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/harness.py +0 -0
  107. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/judge.py +0 -0
  108. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/retries.py +0 -0
  109. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/runtime.py +0 -0
  110. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/scoring.py +0 -0
  111. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/select.py +0 -0
  112. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/serve.py +0 -0
  113. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/task.py +0 -0
  114. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/configs/taskset.py +0 -0
  115. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/dialects/__init__.py +0 -0
  116. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/dialects/anthropic.py +0 -0
  117. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/dialects/base.py +0 -0
  118. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/dialects/chat.py +0 -0
  119. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/dialects/responses.py +0 -0
  120. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/env.py +0 -0
  121. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/__init__.py +0 -0
  122. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  123. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  124. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  125. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/best_of_n/env.py +0 -0
  126. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  127. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/single_agent/env.py +0 -0
  128. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  129. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/envs/user_sim/env.py +0 -0
  130. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/episode.py +0 -0
  131. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/errors.py +0 -0
  132. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/gepa/__init__.py +0 -0
  133. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/gepa/adapter.py +0 -0
  134. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/gepa/config.py +0 -0
  135. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/gepa/dataset.py +0 -0
  136. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/gepa/reflection.py +0 -0
  137. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/gepa/runner.py +0 -0
  138. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/grading.py +0 -0
  139. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/graph.py +0 -0
  140. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harness.py +0 -0
  141. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/__init__.py +0 -0
  142. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  143. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/bash/harness.py +0 -0
  144. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  145. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  146. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  147. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  148. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  149. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  150. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  151. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/codex/harness.py +0 -0
  152. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  153. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  154. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  155. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  156. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  157. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  158. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  159. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  160. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/node.py +0 -0
  161. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/null/__init__.py +0 -0
  162. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/null/harness.py +0 -0
  163. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  164. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  165. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  166. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  167. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/pi/harness.py +0 -0
  168. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  169. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  170. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  171. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  172. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  173. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  174. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  175. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  176. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  177. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/utils/core.py +0 -0
  178. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/utils/install.py +0 -0
  179. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/utils/launch.py +0 -0
  180. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  181. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/__init__.py +0 -0
  182. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/base.py +0 -0
  183. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/pool.py +0 -0
  184. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/server.py +0 -0
  185. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  186. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/tunnel/base.py +0 -0
  187. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/tunnel/custom.py +0 -0
  188. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/interception/tunnel/prime.py +0 -0
  189. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judge.py +0 -0
  190. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judges/__init__.py +0 -0
  191. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judges/decision.py +0 -0
  192. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judges/reference.py +0 -0
  193. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judges/reference.txt +0 -0
  194. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judges/rubric.py +0 -0
  195. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/judges/rubric.txt +0 -0
  196. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/mcp/__init__.py +0 -0
  197. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/mcp/launch.py +0 -0
  198. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/mcp/server.py +0 -0
  199. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/mcp/toolset.py +0 -0
  200. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/__init__.py +0 -0
  201. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/apptainer.py +0 -0
  202. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/base.py +0 -0
  203. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/compose.py +0 -0
  204. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/container.py +0 -0
  205. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  206. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/docker/egress.py +0 -0
  207. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/e2b.py +0 -0
  208. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/limiters.py +0 -0
  209. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/modal.py +0 -0
  210. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/prime.py +0 -0
  211. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/runtime.py +0 -0
  212. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/strategies.py +0 -0
  213. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/runtimes/subprocess.py +0 -0
  214. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/semantic.py +0 -0
  215. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/__init__.py +0 -0
  216. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/client.py +0 -0
  217. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/delta.py +0 -0
  218. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/encoding.py +0 -0
  219. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/pool.py +0 -0
  220. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/server.py +0 -0
  221. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/serve/types.py +0 -0
  222. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/session.py +0 -0
  223. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/state.py +0 -0
  224. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/task.py +0 -0
  225. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/taskset.py +0 -0
  226. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/__init__.py +0 -0
  227. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  228. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  229. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  230. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  231. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  232. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  233. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  234. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  235. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  236. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  237. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  238. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  239. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/trace.py +0 -0
  240. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/types.py +0 -0
  241. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/__init__.py +0 -0
  242. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/aio.py +0 -0
  243. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/artifacts.py +0 -0
  244. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/compile.py +0 -0
  245. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/decorators.py +0 -0
  246. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/env.py +0 -0
  247. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/eval.py +0 -0
  248. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/format.py +0 -0
  249. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/generic.py +0 -0
  250. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/git.py +0 -0
  251. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/image.py +0 -0
  252. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/interrupt.py +0 -0
  253. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/loaders.py +0 -0
  254. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/logging.py +0 -0
  255. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/memory.py +0 -0
  256. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/paths.py +0 -0
  257. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/platform.py +0 -0
  258. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/prime.py +0 -0
  259. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/retries.py +0 -0
  260. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/scope.py +0 -0
  261. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/score.py +0 -0
  262. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/verifiers/v1/utils/trace_store.py +0 -0
  263. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev24}/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.dev22
3
+ Version: 0.4.1.dev24
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
@@ -27,6 +27,7 @@ CI_MODEL = "internal/deepseek-v4.1-flash"
27
27
  CI_REASONING_EFFORT = "low"
28
28
  # Judge config fields that keep config-plugged judges on the CI model and effort.
29
29
  CI_JUDGE = {"model": CI_MODEL, "sampling": {"reasoning_effort": CI_REASONING_EFFORT}}
30
+ CI_DECISION_JUDGE = {"model": "cloudflare/clef"}
30
31
 
31
32
  # Fixture tasksets (echo-v1, echo-agentic-v1, ...) live in tests/integration/fixtures,
32
33
  # added to the path via `pythonpath` in pyproject so the loader resolves them by id.
@@ -1,7 +1,7 @@
1
1
  """Smoke-eval every example taskset in `environments/` through the `eval` CLI.
2
2
 
3
- Each taskset runs with its required harness for one short, capped rollout, so a broken
4
- example taskset fails CI. `compact` is excluded (it's a harness, not a taskset);
3
+ Each taskset runs with its required harness for capped rollouts, so a broken
4
+ example taskset fails CI. Interception exercises all four of its behaviors. `compact` is excluded (it's a harness, not a taskset);
5
5
  SWE/container tasksets need a docker/prime runtime and are covered by the agentic tests.
6
6
  """
7
7
 
@@ -11,7 +11,7 @@ import subprocess
11
11
  from pathlib import Path
12
12
 
13
13
  import pytest
14
- from conftest import CI_JUDGE, CI_MODEL, CI_REASONING_EFFORT
14
+ from conftest import CI_DECISION_JUDGE, CI_MODEL, CI_REASONING_EFFORT
15
15
  from grid import agent_seats
16
16
 
17
17
  EVAL_TIMEOUT = 600 # 10 minutes for a capped eval (-n 1 -r 1)
@@ -24,18 +24,27 @@ SKIP_EVAL = {
24
24
  "proposer_solver": "the CI model's proposer reasons past the token cap",
25
25
  }
26
26
 
27
- # Point each bundled judge at the CI model and effort.
27
+ # CI explicitly selects the existing decision judge for grading and interception.
28
28
  JUDGE_OVERRIDES = {
29
29
  "interception": [
30
+ "--env.taskset.task.judge.id",
31
+ "decision",
30
32
  "--env.taskset.task.judge.model",
31
- CI_MODEL,
32
- "--env.taskset.task.judge.sampling.reasoning-effort",
33
- CI_REASONING_EFFORT,
33
+ CI_DECISION_JUDGE["model"],
34
34
  ],
35
35
  "wiki_search": [
36
36
  "--env.taskset.task.judges",
37
- # The list replaces the default entry, so restate its `question_field`.
38
- json.dumps([{"id": "wiki-search", "question_field": "question", **CI_JUDGE}]),
37
+ # Replace the reference judge with the existing decision judge in CI.
38
+ json.dumps(
39
+ [
40
+ {
41
+ "id": "decision",
42
+ "question_field": "question",
43
+ "answer_field": "answer",
44
+ **CI_DECISION_JUDGE,
45
+ }
46
+ ]
47
+ ),
39
48
  ],
40
49
  }
41
50
 
@@ -52,8 +61,7 @@ def v1_tasksets() -> list[str]:
52
61
 
53
62
  @pytest.mark.parametrize("taskset", v1_tasksets())
54
63
  def test_eval(taskset: str, tmp_path: Path):
55
- """Run one capped rollout of `taskset` and require every episode to finish ok; a
56
- taskset that bundles a harness uses it by default."""
64
+ """Smoke-eval each example, including all four interception behaviors."""
57
65
  if reason := SKIP_EVAL.get(taskset):
58
66
  pytest.skip(reason)
59
67
  if os.getenv("PRIME_API_KEY"):
@@ -78,10 +86,11 @@ def test_eval(taskset: str, tmp_path: Path):
78
86
  for seat in agent_seats(taskset)
79
87
  for flag in (f"--env.{seat}.max-turns", "16")
80
88
  ]
89
+ num_tasks = "4" if taskset == "interception" else "1"
81
90
  cmd = [
82
91
  "uv", "run", "--no-sync", "vf-eval", taskset,
83
92
  *model,
84
- "-n", "1", "-r", "1", *caps,
93
+ "-n", num_tasks, "-r", "1", *caps,
85
94
  "--sampling.max-tokens", "4096", "--no-rich", "--no-push",
86
95
  "--output-dir", str(tmp_path), "--run.dir", "run",
87
96
  # Recipe envs run their seats one at a time by default; in parallel, a
@@ -107,3 +116,17 @@ def test_eval(taskset: str, tmp_path: Path):
107
116
  for holder in (episode, *episode["traces"])
108
117
  for error in holder.get("errors") or []
109
118
  ]
119
+ if taskset == "interception" and os.getenv("PRIME_API_KEY"):
120
+ assert len(episodes) == 4
121
+ judged = [
122
+ trace
123
+ for episode in episodes
124
+ for trace in episode["traces"]
125
+ if trace["info"].get("judge_calls")
126
+ ]
127
+ assert len(judged) == 1
128
+ assert (
129
+ judged[0]["info"]["judge_calls"][0]["request"]["model"]
130
+ == CI_DECISION_JUDGE["model"]
131
+ )
132
+ assert judged[0]["response_rewrites"]
@@ -0,0 +1,40 @@
1
+ """Config-plugged judges score the rollout on top of the task's own reward."""
2
+
3
+ import pytest
4
+ from conftest import CI_DECISION_JUDGE, CI_JUDGE
5
+
6
+
7
+ @pytest.mark.parametrize("judge_id", ["rubric", "decision"])
8
+ async def test_rubric_judge(run, tmp_path, judge_id):
9
+ """Keep rubric coverage and exercise Clef through the existing decision judge.
10
+
11
+ Both variants verify config loading, grading, trace records and usage; the
12
+ rubric variant also checks its per-criterion metric.
13
+ """
14
+ rubric = tmp_path / "rubric.toml"
15
+ rubric.write_text(
16
+ "[[criteria]]\n"
17
+ 'name = "always_yes"\n'
18
+ 'text = "Always satisfied — answer yes regardless of the response."\n'
19
+ )
20
+ judge = {
21
+ "id": judge_id,
22
+ **(CI_DECISION_JUDGE if judge_id == "decision" else CI_JUDGE),
23
+ }
24
+ if judge_id == "rubric":
25
+ judge["path"] = str(rubric)
26
+ (episode,) = await run(
27
+ "echo-v1",
28
+ harness="null",
29
+ runtime={"type": "subprocess"},
30
+ taskset_overrides={"task": {"judges": [judge]}},
31
+ max_turns=2,
32
+ )
33
+ (trace,) = episode.traces
34
+ assert trace.ok
35
+ assert trace.rewards[judge_id].score > 0 # the judge's verdict landed in the reward
36
+ if judge_id == "rubric":
37
+ assert trace.metrics["rubric/always_yes"] == 1.0
38
+ assert trace.info["judge_calls"] # the call was recorded onto the trace
39
+ assert trace.info["judge_calls"][0]["request"]["model"] == judge["model"]
40
+ assert trace.extra_usage[-1].prompt_tokens > 0
@@ -311,7 +311,8 @@ class Rollout:
311
311
  self._grading_config = verifier_runtime(
312
312
  self._grader,
313
313
  runtime,
314
- self.deployment.verifier_config(),
314
+ # Solver task requirements must not override the verifier's.
315
+ self.trace.agent.config.runtime,
315
316
  self._scoring_policy,
316
317
  )
317
318
  elif self._scoring_policy.runtime is not None:
@@ -55,9 +55,6 @@ class _DeploymentStrategy:
55
55
  async def prepare_verifier(self, deployment: Deployment) -> None:
56
56
  return
57
57
 
58
- def verifier_config(self, deployment: Deployment) -> RuntimeConfig:
59
- return deployment.backend.config
60
-
61
58
  @asynccontextmanager
62
59
  async def verifier(
63
60
  self, deployment: Deployment, config: RuntimeConfig, env: dict[str, str]
@@ -178,9 +175,6 @@ class Deployment:
178
175
  """
179
176
  await run_shielded(self._strategy.prepare_verifier(self))
180
177
 
181
- def verifier_config(self) -> RuntimeConfig:
182
- return self._strategy.verifier_config(self)
183
-
184
178
  async def stop_execution(self) -> None:
185
179
  await self._strategy.stop_execution(self)
186
180
 
@@ -1,31 +0,0 @@
1
- """A config-plugged rubric judge scores the rollout on top of the task's own reward."""
2
-
3
- from conftest import CI_JUDGE
4
-
5
-
6
- async def test_rubric_judge(run, tmp_path):
7
- """A config-plugged rubric judge scores the rollout on top of the taskset's own reward.
8
-
9
- The single criterion is trivially satisfiable ("answer yes"), so any live judge model
10
- scores it 1.0 — the test asserts the plumbing (config narrowing -> judge call -> reward +
11
- per-criterion metric on the trace), not judge quality."""
12
- rubric = tmp_path / "rubric.toml"
13
- rubric.write_text(
14
- "[[criteria]]\n"
15
- 'name = "always_yes"\n'
16
- 'text = "Always satisfied — answer yes regardless of the response."\n'
17
- )
18
- (episode,) = await run(
19
- "echo-v1",
20
- harness="null",
21
- runtime={"type": "subprocess"},
22
- taskset_overrides={
23
- "task": {"judges": [{"id": "rubric", "path": str(rubric), **CI_JUDGE}]}
24
- },
25
- max_turns=2,
26
- )
27
- (trace,) = episode.traces
28
- assert trace.ok
29
- assert trace.rewards["rubric"].score > 0 # the judge's verdict landed in the reward
30
- assert trace.metrics["rubric/always_yes"] == 1.0
31
- assert trace.info["judge_calls"] # the call was recorded onto the trace
File without changes