verifiers 0.3.2.dev152__tar.gz → 0.3.2.dev153__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 (221) hide show
  1. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/conftest.py +4 -1
  3. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/acp/__init__.py +7 -1
  4. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/acp/runner.py +3 -3
  5. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/errors.py +6 -1
  6. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harness.py +11 -1
  7. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/rlm/harness.py +1 -1
  8. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/utils/core.py +31 -19
  9. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/.gitignore +0 -0
  10. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/LICENSE +0 -0
  11. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/README.md +0 -0
  12. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/pyproject.toml +0 -0
  13. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  14. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/duet_v1.py +0 -0
  15. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  16. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  17. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  18. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  19. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/echo_v1.py +0 -0
  20. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/pyproject.toml +0 -0
  21. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  22. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_color_codeword_tasks.py +0 -0
  23. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_configs.py +0 -0
  24. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_e2e.py +0 -0
  25. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_envs.py +0 -0
  26. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_graph.py +0 -0
  27. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_judges.py +0 -0
  28. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_platform_run.py +0 -0
  29. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_scoring.py +0 -0
  30. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_serve_delta.py +0 -0
  31. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_taskset.py +0 -0
  32. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/tests/v1/test_trace.py +0 -0
  33. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/__init__.py +0 -0
  34. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/__init__.py +0 -0
  35. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/agent.py +0 -0
  36. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/__init__.py +0 -0
  37. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  38. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/dashboard/base.py +0 -0
  39. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/dashboard/eval.py +0 -0
  40. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/dashboard/replay.py +0 -0
  41. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/dashboard/validate.py +0 -0
  42. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/debug.py +0 -0
  43. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/eval/__init__.py +0 -0
  44. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/eval/hint.py +0 -0
  45. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/eval/main.py +0 -0
  46. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/eval/resume.py +0 -0
  47. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/eval/runner.py +0 -0
  48. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/gepa.py +0 -0
  49. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/init.py +0 -0
  50. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/output.py +0 -0
  51. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/replay.py +0 -0
  52. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/resolve.py +0 -0
  53. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/resume.py +0 -0
  54. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/cli/validate.py +0 -0
  55. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/clients/__init__.py +0 -0
  56. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/clients/base.py +0 -0
  57. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/clients/client.py +0 -0
  58. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/clients/eval.py +0 -0
  59. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/clients/train.py +0 -0
  60. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/__init__.py +0 -0
  61. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/agent.py +0 -0
  62. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/__init__.py +0 -0
  63. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/debug.py +0 -0
  64. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/env.py +0 -0
  65. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/eval.py +0 -0
  66. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/init.py +0 -0
  67. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/replay.py +0 -0
  68. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/cli/validate.py +0 -0
  69. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/client.py +0 -0
  70. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/env.py +0 -0
  71. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/harness.py +0 -0
  72. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/judge.py +0 -0
  73. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/retries.py +0 -0
  74. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/runtime.py +0 -0
  75. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/select.py +0 -0
  76. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/serve.py +0 -0
  77. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/task.py +0 -0
  78. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/configs/taskset.py +0 -0
  79. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/dialects/__init__.py +0 -0
  80. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/dialects/anthropic.py +0 -0
  81. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/dialects/base.py +0 -0
  82. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/dialects/chat.py +0 -0
  83. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/dialects/responses.py +0 -0
  84. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/env.py +0 -0
  85. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/__init__.py +0 -0
  86. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  87. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  88. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  89. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/best_of_n/env.py +0 -0
  90. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  91. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  92. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  93. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  94. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/single_agent/env.py +0 -0
  95. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  96. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/envs/user_sim/env.py +0 -0
  97. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/episode.py +0 -0
  98. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/gepa/__init__.py +0 -0
  99. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/gepa/adapter.py +0 -0
  100. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/gepa/config.py +0 -0
  101. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/gepa/dataset.py +0 -0
  102. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/gepa/reflection.py +0 -0
  103. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/gepa/runner.py +0 -0
  104. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/graph.py +0 -0
  105. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/__init__.py +0 -0
  106. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  107. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/bash/harness.py +0 -0
  108. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  109. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  110. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  111. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  112. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  113. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  114. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  115. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/codex/harness.py +0 -0
  116. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  117. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  118. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  119. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  120. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  121. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  122. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  123. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  124. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/node.py +0 -0
  125. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/null/__init__.py +0 -0
  126. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/null/harness.py +0 -0
  127. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  128. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  129. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  130. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  131. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/pi/harness.py +0 -0
  132. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  133. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  134. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  135. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  136. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  137. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  138. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  139. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  140. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/utils/install.py +0 -0
  141. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/utils/launch.py +0 -0
  142. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  143. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/__init__.py +0 -0
  144. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/base.py +0 -0
  145. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/pool.py +0 -0
  146. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/server.py +0 -0
  147. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  148. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/tunnel/base.py +0 -0
  149. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/tunnel/custom.py +0 -0
  150. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/interception/tunnel/prime.py +0 -0
  151. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/judge.py +0 -0
  152. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/judges/__init__.py +0 -0
  153. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/judges/reference.py +0 -0
  154. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/judges/reference.txt +0 -0
  155. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/judges/rubric.py +0 -0
  156. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/judges/rubric.txt +0 -0
  157. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/mcp/__init__.py +0 -0
  158. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/mcp/launch.py +0 -0
  159. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/mcp/server.py +0 -0
  160. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/mcp/toolset.py +0 -0
  161. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/rollout.py +0 -0
  162. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/__init__.py +0 -0
  163. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/apptainer.py +0 -0
  164. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/base.py +0 -0
  165. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/container.py +0 -0
  166. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  167. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/docker/egress.py +0 -0
  168. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/limiters.py +0 -0
  169. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/modal.py +0 -0
  170. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/prime.py +0 -0
  171. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/runtimes/subprocess.py +0 -0
  172. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/semantic.py +0 -0
  173. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/__init__.py +0 -0
  174. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/client.py +0 -0
  175. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/delta.py +0 -0
  176. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/encoding.py +0 -0
  177. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/pool.py +0 -0
  178. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/server.py +0 -0
  179. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/serve/types.py +0 -0
  180. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/session.py +0 -0
  181. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/state.py +0 -0
  182. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/task.py +0 -0
  183. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/taskset.py +0 -0
  184. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/__init__.py +0 -0
  185. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  186. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/harbor/compose.py +0 -0
  187. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/harbor/env.py +0 -0
  188. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  189. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  190. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  191. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  192. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  193. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  194. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  195. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  196. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  197. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  198. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  199. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/trace.py +0 -0
  200. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/types.py +0 -0
  201. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/__init__.py +0 -0
  202. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/aio.py +0 -0
  203. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/artifacts.py +0 -0
  204. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/compile.py +0 -0
  205. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/decorators.py +0 -0
  206. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/format.py +0 -0
  207. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/generic.py +0 -0
  208. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/git.py +0 -0
  209. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/image.py +0 -0
  210. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/interrupt.py +0 -0
  211. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/loaders.py +0 -0
  212. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/logging.py +0 -0
  213. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/memory.py +0 -0
  214. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/paths.py +0 -0
  215. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/platform.py +0 -0
  216. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/prime.py +0 -0
  217. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/retries.py +0 -0
  218. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/scope.py +0 -0
  219. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/score.py +0 -0
  220. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/trace_store.py +0 -0
  221. {verifiers-0.3.2.dev152 → verifiers-0.3.2.dev153}/verifiers/v1/utils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: verifiers
3
- Version: 0.3.2.dev152
3
+ Version: 0.3.2.dev153
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
@@ -155,7 +155,10 @@ def _eval_config(
155
155
  runtime_cfg = dict(runtime)
156
156
  _configure_prime_runtimes(runtime_cfg)
157
157
  env_cfg.setdefault("agent", {})["runtime"] = runtime_cfg
158
- retries = {"max_retries": 2, "include": ["ProviderError", "HarnessError"]}
158
+ retries = {
159
+ "max_retries": 2,
160
+ "include": ["ProviderError", "InterceptionError", "HarnessError"],
161
+ }
159
162
  env_cfg.setdefault("retries", retries)
160
163
  # Per-run caps live on the seats: resolve the env's declared roles and cap
161
164
  # each one (a test's own seat dict wins over the shared defaults).
@@ -13,7 +13,7 @@ from pydantic import BaseModel, ConfigDict, Field
13
13
 
14
14
  from verifiers.v1.clients import ModelContext
15
15
  from verifiers.v1.configs.harness import HarnessConfig
16
- from verifiers.v1.errors import HarnessError
16
+ from verifiers.v1.errors import HarnessError, InterceptionError
17
17
  from verifiers.v1.harness import Harness, HarnessSession
18
18
  from verifiers.v1.runtimes import ProgramResult, Runtime, RuntimeProcess
19
19
  from verifiers.v1.semantic import (
@@ -308,6 +308,12 @@ class ACPHarnessSession(HarnessSession):
308
308
  detail = response.get("error") or "ACP session request failed"
309
309
  if stderr := self._stderr():
310
310
  detail = f"{detail}\n\nACP process stderr:\n{stderr}"
311
+ error_data = response.get("error_data")
312
+ if (
313
+ isinstance(error_data, dict)
314
+ and error_data.get("kind") == "model_transport"
315
+ ):
316
+ raise InterceptionError(detail)
311
317
  raise RuntimeError(detail)
312
318
  harness = cast(ACPHarness, self.harness)
313
319
  harness._consume_protocol_metadata(self.trace, turn.response_metadata)
@@ -224,9 +224,6 @@ async def prompt(
224
224
  if client.stop_reason != "cancelled":
225
225
  raise
226
226
  await connection.cancel(session_id=session_id)
227
- except RequestError as error:
228
- detail = error.data.get("details") if isinstance(error.data, dict) else None
229
- raise RuntimeError(detail or str(error)) from error
230
227
  finally:
231
228
  client.prompt_task = None
232
229
  return client.turn_result()
@@ -377,6 +374,9 @@ async def serve_stream() -> None:
377
374
  "ok": False,
378
375
  "error": f"{type(error).__name__}: {error}",
379
376
  }
377
+ if isinstance(error, RequestError) and isinstance(error.data, dict):
378
+ response["error"] = error.data.get("details") or str(error)
379
+ response["error_data"] = error.data
380
380
  if operation == "prompt":
381
381
  response["result"] = asdict(session.client.turn_result())
382
382
  write_packet(sys.stdout.buffer, response)
@@ -42,6 +42,11 @@ class ProviderError(RolloutError):
42
42
  self.status_code = status_code
43
43
 
44
44
 
45
+ MODEL_TRANSPORT_ERROR_EXIT_CODE = 97
46
+ """Reserved harness exit code for an exhausted model transport failure.
47
+ `Harness._check_result` maps it to `InterceptionError`."""
48
+
49
+
45
50
  class HarnessError(RolloutError):
46
51
  """The harness failed to install or launch, or its agent process exited unsuccessfully."""
47
52
 
@@ -65,7 +70,7 @@ class TaskError(RolloutError):
65
70
 
66
71
 
67
72
  class InterceptionError(RolloutError):
68
- """The host interception server (model calls + `/state` + `/task` channels) couldn't be reached."""
73
+ """Communication with the host interception server failed."""
69
74
 
70
75
 
71
76
  class TunnelError(InterceptionError):
@@ -9,7 +9,13 @@ from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar
9
9
 
10
10
  from verifiers.v1.clients import ModelContext
11
11
  from verifiers.v1.configs.harness import HarnessConfig, skill_destination
12
- from verifiers.v1.errors import HarnessError, SandboxError, boundary
12
+ from verifiers.v1.errors import (
13
+ MODEL_TRANSPORT_ERROR_EXIT_CODE,
14
+ HarnessError,
15
+ InterceptionError,
16
+ SandboxError,
17
+ boundary,
18
+ )
13
19
  from verifiers.v1.runtimes import ProgramResult, Runtime
14
20
  from verifiers.v1.task import TaskData
15
21
  from verifiers.v1.types import Messages
@@ -178,6 +184,10 @@ copy_failed=$(
178
184
  f"runtime died under harness {self.config.id!r} "
179
185
  f"(exit {result.exit_code}): {detail}"
180
186
  )
187
+ if result.exit_code == MODEL_TRANSPORT_ERROR_EXIT_CODE:
188
+ raise InterceptionError(
189
+ f"harness {self.config.id!r} model connection to interception failed: {detail}"
190
+ )
181
191
  raise HarnessError(
182
192
  f"harness {self.config.id!r} exited {result.exit_code}: {detail}"
183
193
  )
@@ -69,7 +69,7 @@ class CompactionConfig(BaseConfig):
69
69
 
70
70
  class RLMHarnessConfig(HarnessConfig):
71
71
  version: str = Field(
72
- default="ec0335baa434eb726146e330be391ee92bf3a0c8", min_length=1
72
+ default="38c44a06fdef484a19d8d6c4e5697100971f9ecd", min_length=1
73
73
  )
74
74
  """Git ref (branch, tag, or commit) of nano-rlm to install. Must know every
75
75
  field this harness puts on the wire, i.e. be at least the default ref."""
@@ -5,6 +5,7 @@ import asyncio
5
5
  import json
6
6
  import logging
7
7
  import subprocess
8
+ import traceback
8
9
  from contextlib import AsyncExitStack
9
10
  from pathlib import Path
10
11
  from typing import TYPE_CHECKING
@@ -39,6 +40,10 @@ if TYPE_CHECKING:
39
40
  )
40
41
  from verifiers.v1.harnesses.utils.mcp import call_mcp, connect_mcp # noqa: TC004
41
42
 
43
+ # Mirror of verifiers.v1.errors.MODEL_TRANSPORT_ERROR_EXIT_CODE;
44
+ # this bundled script cannot import verifiers.
45
+ MODEL_TRANSPORT_ERROR_EXIT_CODE = 97
46
+
42
47
  SERPER_URL = "https://google.serper.dev/search"
43
48
 
44
49
  BASH_TOOL = {
@@ -260,25 +265,32 @@ async def chat(
260
265
  kwargs["tools"] = tools
261
266
  if tools and tool_choice is not None:
262
267
  kwargs["tool_choice"] = tool_choice
263
- async for attempt in AsyncRetrying(
264
- retry=retry_if_exception_type((APIConnectionError, httpx.TransportError)),
265
- stop=stop_after_attempt(client.max_retries + 1),
266
- wait=wait_random_exponential(multiplier=0.5, max=8.0),
267
- before_sleep=before_sleep_log(logging.getLogger(__name__), logging.WARNING),
268
- reraise=True,
269
- ):
270
- # Reuse the interception server's body-digest replay guard on stream retries.
271
- retry_count = attempt.retry_state.attempt_number - 1
272
- headers = {"x-stainless-retry-count": str(retry_count)} if retry_count else omit
273
- raw_stream = await client.chat.completions.create(
274
- **kwargs,
275
- stream=True,
276
- stream_options={"include_usage": True},
277
- extra_headers=headers,
278
- )
279
- # The SDK retries request setup; only stream consumption is retried here.
280
- with attempt:
281
- return await _read_chat_completion(raw_stream)
268
+ try:
269
+ async for attempt in AsyncRetrying(
270
+ retry=retry_if_exception_type((APIConnectionError, httpx.TransportError)),
271
+ stop=stop_after_attempt(client.max_retries + 1),
272
+ wait=wait_random_exponential(multiplier=0.5, max=8.0),
273
+ before_sleep=before_sleep_log(logging.getLogger(__name__), logging.WARNING),
274
+ reraise=True,
275
+ ):
276
+ # Reuse the interception server's body-digest replay guard on stream retries.
277
+ retry_count = attempt.retry_state.attempt_number - 1
278
+ headers = (
279
+ {"x-stainless-retry-count": str(retry_count)} if retry_count else omit
280
+ )
281
+ raw_stream = await client.chat.completions.create(
282
+ **kwargs,
283
+ stream=True,
284
+ stream_options={"include_usage": True},
285
+ extra_headers=headers,
286
+ )
287
+ # The SDK retries request setup; only stream consumption is retried here.
288
+ with attempt:
289
+ return await _read_chat_completion(raw_stream)
290
+ except (APIConnectionError, httpx.TransportError) as error:
291
+ # Preserve the original transport error in stderr for the host's diagnostic.
292
+ traceback.print_exc()
293
+ raise SystemExit(MODEL_TRANSPORT_ERROR_EXIT_CODE) from error
282
294
 
283
295
 
284
296
  async def _read_chat_completion(raw_stream):