verifiers 0.4.1.dev22__tar.gz → 0.4.1.dev23__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.dev23}/PKG-INFO +1 -1
  2. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/conftest.py +1 -0
  3. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_examples.py +35 -12
  4. verifiers-0.4.1.dev23/tests/integration/test_rubric_judge.py +40 -0
  5. verifiers-0.4.1.dev22/tests/integration/test_rubric_judge.py +0 -31
  6. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/.gitignore +0 -0
  7. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/LICENSE +0 -0
  8. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/README.md +0 -0
  9. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/pyproject.toml +0 -0
  10. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/agent_user_harness_v1.py +0 -0
  11. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/agent_user_v1.py +0 -0
  12. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/counter_tool_v1.py +0 -0
  13. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/duet_v1.py +0 -0
  14. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/echo_acp_resume_v1.py +0 -0
  15. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/echo_agentic_v1.py +0 -0
  16. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/echo_tool_v1.py +0 -0
  17. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/echo_user_sim_v1.py +0 -0
  18. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/echo_v1.py +0 -0
  19. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/network_policy_v1.py +0 -0
  20. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/pyproject.toml +0 -0
  21. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/skill_codeword_v1.py +0 -0
  22. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/skills/project-codeword/SKILL.md +0 -0
  23. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/fixtures/tool_response_image_v1.py +0 -0
  24. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/grid.py +0 -0
  25. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_agent_user.py +0 -0
  26. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_agentic_judge.py +0 -0
  27. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_compose_scoring.py +0 -0
  28. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_limits.py +0 -0
  29. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_multi_agent.py +0 -0
  30. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_multi_turn.py +0 -0
  31. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_multi_turn_tool.py +0 -0
  32. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_multimodal_tool.py +0 -0
  33. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_network_policy.py +0 -0
  34. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_resume_tool.py +0 -0
  35. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_sampling.py +0 -0
  36. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_shared_tool.py +0 -0
  37. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_single_turn.py +0 -0
  38. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_skills.py +0 -0
  39. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_stateful_tool.py +0 -0
  40. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_user_echo.py +0 -0
  41. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/integration/test_user_sim.py +0 -0
  42. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/cli/test_replay.py +0 -0
  43. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/conftest.py +0 -0
  44. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/harnesses/test_core.py +0 -0
  45. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/harnesses/test_rlm.py +0 -0
  46. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/interception/test_tunnel.py +0 -0
  47. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/judges/conftest.py +0 -0
  48. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/judges/test_judge.py +0 -0
  49. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/judges/test_reference.py +0 -0
  50. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/judges/test_rubric.py +0 -0
  51. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/runtimes/test_e2b.py +0 -0
  52. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/serve/test_client.py +0 -0
  53. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/serve/test_delta.py +0 -0
  54. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/serve/test_pool.py +0 -0
  55. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_agent.py +0 -0
  56. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_dialects.py +0 -0
  57. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_graph.py +0 -0
  58. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_semantic.py +0 -0
  59. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_task.py +0 -0
  60. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_taskset.py +0 -0
  61. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/test_trace.py +0 -0
  62. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/utils/test_compile.py +0 -0
  63. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/utils/test_loaders.py +0 -0
  64. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/utils/test_platform.py +0 -0
  65. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/tests/unit/utils/test_score.py +0 -0
  66. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/__init__.py +0 -0
  67. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/__init__.py +0 -0
  68. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/acp/__init__.py +0 -0
  69. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/acp/runner.py +0 -0
  70. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/agent.py +0 -0
  71. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/__init__.py +0 -0
  72. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  73. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/dashboard/base.py +0 -0
  74. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/dashboard/eval.py +0 -0
  75. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/dashboard/replay.py +0 -0
  76. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/dashboard/validate.py +0 -0
  77. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/debug.py +0 -0
  78. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/eval/__init__.py +0 -0
  79. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/eval/hint.py +0 -0
  80. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/eval/main.py +0 -0
  81. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/eval/resume.py +0 -0
  82. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/eval/runner.py +0 -0
  83. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/gepa.py +0 -0
  84. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/output.py +0 -0
  85. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/replay.py +0 -0
  86. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/resolve.py +0 -0
  87. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/resume.py +0 -0
  88. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/cli/validate.py +0 -0
  89. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/clients/__init__.py +0 -0
  90. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/clients/base.py +0 -0
  91. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/clients/client.py +0 -0
  92. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/clients/eval.py +0 -0
  93. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/clients/train.py +0 -0
  94. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/__init__.py +0 -0
  95. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/agent.py +0 -0
  96. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/cli/__init__.py +0 -0
  97. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/cli/debug.py +0 -0
  98. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/cli/env.py +0 -0
  99. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/cli/eval.py +0 -0
  100. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/cli/replay.py +0 -0
  101. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/cli/validate.py +0 -0
  102. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/client.py +0 -0
  103. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/env.py +0 -0
  104. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/harness.py +0 -0
  105. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/judge.py +0 -0
  106. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/retries.py +0 -0
  107. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/runtime.py +0 -0
  108. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/scoring.py +0 -0
  109. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/select.py +0 -0
  110. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/serve.py +0 -0
  111. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/task.py +0 -0
  112. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/configs/taskset.py +0 -0
  113. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/dialects/__init__.py +0 -0
  114. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/dialects/anthropic.py +0 -0
  115. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/dialects/base.py +0 -0
  116. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/dialects/chat.py +0 -0
  117. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/dialects/responses.py +0 -0
  118. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/env.py +0 -0
  119. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/__init__.py +0 -0
  120. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  121. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  122. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  123. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/best_of_n/env.py +0 -0
  124. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  125. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/single_agent/env.py +0 -0
  126. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  127. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/envs/user_sim/env.py +0 -0
  128. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/episode.py +0 -0
  129. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/errors.py +0 -0
  130. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/gepa/__init__.py +0 -0
  131. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/gepa/adapter.py +0 -0
  132. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/gepa/config.py +0 -0
  133. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/gepa/dataset.py +0 -0
  134. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/gepa/reflection.py +0 -0
  135. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/gepa/runner.py +0 -0
  136. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/grading.py +0 -0
  137. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/graph.py +0 -0
  138. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harness.py +0 -0
  139. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/__init__.py +0 -0
  140. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  141. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/bash/harness.py +0 -0
  142. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  143. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  144. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  145. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  146. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  147. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  148. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  149. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/codex/harness.py +0 -0
  150. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  151. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  152. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  153. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  154. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  155. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  156. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  157. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  158. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/node.py +0 -0
  159. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/null/__init__.py +0 -0
  160. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/null/harness.py +0 -0
  161. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  162. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  163. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  164. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  165. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/pi/harness.py +0 -0
  166. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  167. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  168. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  169. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  170. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  171. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  172. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  173. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  174. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  175. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/utils/core.py +0 -0
  176. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/utils/install.py +0 -0
  177. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/utils/launch.py +0 -0
  178. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  179. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/__init__.py +0 -0
  180. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/base.py +0 -0
  181. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/pool.py +0 -0
  182. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/server.py +0 -0
  183. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  184. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/tunnel/base.py +0 -0
  185. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/tunnel/custom.py +0 -0
  186. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/interception/tunnel/prime.py +0 -0
  187. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judge.py +0 -0
  188. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judges/__init__.py +0 -0
  189. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judges/decision.py +0 -0
  190. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judges/reference.py +0 -0
  191. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judges/reference.txt +0 -0
  192. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judges/rubric.py +0 -0
  193. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/judges/rubric.txt +0 -0
  194. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/mcp/__init__.py +0 -0
  195. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/mcp/launch.py +0 -0
  196. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/mcp/server.py +0 -0
  197. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/mcp/toolset.py +0 -0
  198. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/rollout.py +0 -0
  199. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/__init__.py +0 -0
  200. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/apptainer.py +0 -0
  201. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/base.py +0 -0
  202. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/compose.py +0 -0
  203. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/container.py +0 -0
  204. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/deployment.py +0 -0
  205. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  206. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/docker/egress.py +0 -0
  207. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/e2b.py +0 -0
  208. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/limiters.py +0 -0
  209. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/modal.py +0 -0
  210. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/prime.py +0 -0
  211. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/runtime.py +0 -0
  212. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/strategies.py +0 -0
  213. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/runtimes/subprocess.py +0 -0
  214. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/semantic.py +0 -0
  215. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/__init__.py +0 -0
  216. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/client.py +0 -0
  217. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/delta.py +0 -0
  218. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/encoding.py +0 -0
  219. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/pool.py +0 -0
  220. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/server.py +0 -0
  221. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/serve/types.py +0 -0
  222. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/session.py +0 -0
  223. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/state.py +0 -0
  224. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/task.py +0 -0
  225. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/taskset.py +0 -0
  226. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/__init__.py +0 -0
  227. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  228. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  229. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  230. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  231. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  232. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  233. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  234. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  235. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  236. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  237. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  238. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  239. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/trace.py +0 -0
  240. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/types.py +0 -0
  241. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/__init__.py +0 -0
  242. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/aio.py +0 -0
  243. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/artifacts.py +0 -0
  244. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/compile.py +0 -0
  245. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/decorators.py +0 -0
  246. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/env.py +0 -0
  247. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/eval.py +0 -0
  248. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/format.py +0 -0
  249. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/generic.py +0 -0
  250. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/git.py +0 -0
  251. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/image.py +0 -0
  252. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/interrupt.py +0 -0
  253. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/loaders.py +0 -0
  254. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/logging.py +0 -0
  255. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/memory.py +0 -0
  256. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/paths.py +0 -0
  257. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/platform.py +0 -0
  258. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/prime.py +0 -0
  259. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/retries.py +0 -0
  260. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/scope.py +0 -0
  261. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/score.py +0 -0
  262. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/verifiers/v1/utils/trace_store.py +0 -0
  263. {verifiers-0.4.1.dev22 → verifiers-0.4.1.dev23}/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.dev23
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
@@ -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