verifiers 0.3.2.dev40__tar.gz → 0.3.2.dev42__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 (211) hide show
  1. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/openclaw/harness.py +59 -15
  3. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/rlm/harness.py +6 -3
  4. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/.gitignore +0 -0
  5. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/LICENSE +0 -0
  6. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/README.md +0 -0
  7. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/pyproject.toml +0 -0
  8. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/conftest.py +0 -0
  9. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  10. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/duet_v1.py +0 -0
  11. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  12. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  13. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  14. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  15. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/echo_v1.py +0 -0
  16. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/pyproject.toml +0 -0
  17. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  18. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_color_codeword_tasks.py +0 -0
  19. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_configs.py +0 -0
  20. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_e2e.py +0 -0
  21. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_envs.py +0 -0
  22. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_graph.py +0 -0
  23. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_judges.py +0 -0
  24. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_scoring.py +0 -0
  25. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_taskset.py +0 -0
  26. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/tests/v1/test_trace.py +0 -0
  27. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/__init__.py +0 -0
  28. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/__init__.py +0 -0
  29. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/acp/__init__.py +0 -0
  30. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/acp/runner.py +0 -0
  31. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/agent.py +0 -0
  32. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/__init__.py +0 -0
  33. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  34. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/dashboard/base.py +0 -0
  35. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/dashboard/eval.py +0 -0
  36. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/dashboard/replay.py +0 -0
  37. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/dashboard/validate.py +0 -0
  38. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/debug.py +0 -0
  39. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/eval/__init__.py +0 -0
  40. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/eval/main.py +0 -0
  41. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/eval/resume.py +0 -0
  42. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/eval/runner.py +0 -0
  43. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/gepa.py +0 -0
  44. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/init.py +0 -0
  45. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/output.py +0 -0
  46. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/replay.py +0 -0
  47. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/resolve.py +0 -0
  48. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/resume.py +0 -0
  49. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/cli/validate.py +0 -0
  50. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/clients/__init__.py +0 -0
  51. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/clients/base.py +0 -0
  52. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/clients/client.py +0 -0
  53. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/clients/eval.py +0 -0
  54. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/clients/train.py +0 -0
  55. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/__init__.py +0 -0
  56. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/agent.py +0 -0
  57. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/__init__.py +0 -0
  58. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/debug.py +0 -0
  59. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/env.py +0 -0
  60. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/eval.py +0 -0
  61. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/init.py +0 -0
  62. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/replay.py +0 -0
  63. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/cli/validate.py +0 -0
  64. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/client.py +0 -0
  65. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/env.py +0 -0
  66. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/harness.py +0 -0
  67. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/judge.py +0 -0
  68. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/retries.py +0 -0
  69. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/runtime.py +0 -0
  70. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/serve.py +0 -0
  71. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/task.py +0 -0
  72. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/configs/taskset.py +0 -0
  73. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/dialects/__init__.py +0 -0
  74. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/dialects/anthropic.py +0 -0
  75. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/dialects/base.py +0 -0
  76. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/dialects/chat.py +0 -0
  77. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/dialects/responses.py +0 -0
  78. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/env.py +0 -0
  79. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/__init__.py +0 -0
  80. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  81. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  82. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  83. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/best_of_n/env.py +0 -0
  84. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  85. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  86. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/single_agent/env.py +0 -0
  87. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  88. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/envs/user_sim/env.py +0 -0
  89. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/episode.py +0 -0
  90. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/errors.py +0 -0
  91. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/gepa/__init__.py +0 -0
  92. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/gepa/adapter.py +0 -0
  93. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/gepa/config.py +0 -0
  94. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/gepa/dataset.py +0 -0
  95. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/gepa/reflection.py +0 -0
  96. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/gepa/runner.py +0 -0
  97. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/graph.py +0 -0
  98. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harness.py +0 -0
  99. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/__init__.py +0 -0
  100. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  101. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/bash/harness.py +0 -0
  102. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  103. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  104. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  105. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  106. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  107. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  108. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/codex/harness.py +0 -0
  109. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  110. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  111. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  112. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  113. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  114. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  115. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  116. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  117. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/node.py +0 -0
  118. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/null/__init__.py +0 -0
  119. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/null/harness.py +0 -0
  120. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  121. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  122. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/pi/harness.py +0 -0
  123. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/pool/__init__.py +0 -0
  124. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/pool/harness.py +0 -0
  125. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  126. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  127. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  128. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  129. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  130. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  131. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  132. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  133. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/utils/core.py +0 -0
  134. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/utils/launch.py +0 -0
  135. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  136. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/__init__.py +0 -0
  137. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/base.py +0 -0
  138. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/pool.py +0 -0
  139. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/server.py +0 -0
  140. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/tool.py +0 -0
  141. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  142. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/tunnel/base.py +0 -0
  143. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/tunnel/custom.py +0 -0
  144. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/interception/tunnel/prime.py +0 -0
  145. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/judge.py +0 -0
  146. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/judges/__init__.py +0 -0
  147. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/judges/reference.py +0 -0
  148. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/judges/reference.txt +0 -0
  149. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/judges/rubric.py +0 -0
  150. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/judges/rubric.txt +0 -0
  151. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/mcp/__init__.py +0 -0
  152. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/mcp/launch.py +0 -0
  153. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/mcp/server.py +0 -0
  154. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/mcp/toolset.py +0 -0
  155. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/rollout.py +0 -0
  156. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/__init__.py +0 -0
  157. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/base.py +0 -0
  158. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  159. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/docker/egress.py +0 -0
  160. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/limiters.py +0 -0
  161. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/modal.py +0 -0
  162. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/prime.py +0 -0
  163. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/runtimes/subprocess.py +0 -0
  164. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/semantic.py +0 -0
  165. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/serve/__init__.py +0 -0
  166. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/serve/client.py +0 -0
  167. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/serve/encoding.py +0 -0
  168. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/serve/pool.py +0 -0
  169. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/serve/server.py +0 -0
  170. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/serve/types.py +0 -0
  171. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/session.py +0 -0
  172. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/state.py +0 -0
  173. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/task.py +0 -0
  174. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/taskset.py +0 -0
  175. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/__init__.py +0 -0
  176. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  177. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/harbor/env.py +0 -0
  178. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  179. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  180. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  181. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  182. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  183. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  184. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  185. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  186. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  187. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  188. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  189. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  190. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  191. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/trace.py +0 -0
  192. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/types.py +0 -0
  193. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/__init__.py +0 -0
  194. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/aio.py +0 -0
  195. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/artifacts.py +0 -0
  196. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/compile.py +0 -0
  197. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/decorators.py +0 -0
  198. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/format.py +0 -0
  199. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/generic.py +0 -0
  200. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/git.py +0 -0
  201. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/image.py +0 -0
  202. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/interrupt.py +0 -0
  203. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/loaders.py +0 -0
  204. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/logging.py +0 -0
  205. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/memory.py +0 -0
  206. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/paths.py +0 -0
  207. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/platform.py +0 -0
  208. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/prime.py +0 -0
  209. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/retries.py +0 -0
  210. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/verifiers/v1/utils/score.py +0 -0
  211. {verifiers-0.3.2.dev40 → verifiers-0.3.2.dev42}/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.dev40
3
+ Version: 0.3.2.dev42
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
@@ -20,10 +20,48 @@ logger = logging.getLogger(__name__)
20
20
  # OpenClaw and its bundled Node runtime exceed the small /tmp tmpfs in some VMs.
21
21
  OPENCLAW_DIR = "/var/tmp/vf-openclaw-{version}"
22
22
  OPENCLAW_BIN = f"{OPENCLAW_DIR}/bin/openclaw"
23
- INSTALL = r"""
23
+ SETUP = r"""
24
24
  set -e
25
- command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null)
26
- curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix {dir} --version {version} --no-onboard
25
+ if [ ! -x "$VF_OPENCLAW_BIN" ]; then
26
+ command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null)
27
+ curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh \
28
+ | bash -s -- --prefix "$VF_OPENCLAW_DIR" --version "$VF_OPENCLAW_VERSION" --no-onboard
29
+ fi
30
+ set -- $(find "$VF_OPENCLAW_DIR/tools" -type f -path '*/openclaw/dist/session-accessor.sqlite-transcript-store-*.js')
31
+ [ "$#" -eq 1 ] || { echo "could not locate OpenClaw's transcript sanitizer for replay patch" >&2; exit 1; }
32
+ "$VF_OPENCLAW_DIR/tools/node/bin/node" - "$1" <<'NODE'
33
+ const fs = require("node:fs");
34
+ const file = process.argv[2];
35
+ const stat = fs.statSync(file);
36
+ if (stat.size > 1_000_000) {
37
+ throw new Error("OpenClaw's transcript sanitizer exceeds the replay patch size limit");
38
+ }
39
+ const source = fs.readFileSync(file, "utf8");
40
+ const patches = [
41
+ [
42
+ "const OPAQUE_REPLAY_TOKEN_RE = /^[A-Za-z0-9+/_-]+={0,2}$/;",
43
+ "const OPAQUE_REPLAY_TOKEN_RE = /^[A-Za-z0-9+/_-]+={0,2}(?:[.][A-Za-z0-9+/_-]+={0,2})*$/;",
44
+ ],
45
+ ["\t\tsummary: [],", "\t\tsummary: parsed.summary ?? [],"],
46
+ ];
47
+ let patched = source;
48
+ for (const [before, after] of patches) {
49
+ patched = patched.replaceAll(before, after);
50
+ }
51
+ if (!patches.every(([, after]) => patched.includes(after))) {
52
+ throw new Error("OpenClaw's transcript sanitizer does not match the replay patch");
53
+ }
54
+ if (patched !== source) {
55
+ const temporary = `${file}.${process.pid}.tmp`;
56
+ try {
57
+ // Publish complete bytes at once so live and concurrent setups never see a partial bundle.
58
+ fs.writeFileSync(temporary, patched, { mode: stat.mode });
59
+ fs.renameSync(temporary, file);
60
+ } finally {
61
+ fs.rmSync(temporary, { force: true });
62
+ }
63
+ }
64
+ NODE
27
65
  """
28
66
 
29
67
  OPENCLAW_COMMAND = [
@@ -82,7 +120,7 @@ wait "$acp_pid"
82
120
 
83
121
 
84
122
  class OpenClawHarnessConfig(HarnessConfig):
85
- version: str = Field(default="2026.7.1-2", pattern=r"^[A-Za-z0-9._+-]+$")
123
+ version: str = Field(default="2026.8.1", pattern=r"^[A-Za-z0-9._+-]+$")
86
124
  """OpenClaw release to install, pinned for reproducibility."""
87
125
  use_bundled_skill: bool = True
88
126
  """Enable OpenClaw's bundled skill catalog in addition to uploaded harness skills."""
@@ -117,20 +155,27 @@ class OpenClawHarness(ACPHarness[OpenClawHarnessConfig]):
117
155
  await runtime.write(ready_path, b"")
118
156
  directory = OPENCLAW_DIR.format(version=self.config.version)
119
157
  binary = OPENCLAW_BIN.format(version=self.config.version)
120
- script = INSTALL.replace("{version}", self.config.version).replace(
121
- "{dir}", directory
122
- )
123
- ensure = shlex.quote(f"[ -x {binary} ] || ({script})")
158
+ # Borrowed runtimes can share this cache, so one filesystem lock owns both
159
+ # installation and the transcript adjustment.
124
160
  guarded = (
125
- f"mkdir -p {directory} && "
126
- f'"$(command -v flock || command -v lockf)" {directory}/install.lock '
127
- f"bash -o pipefail -c {ensure}"
161
+ f"mkdir -p {shlex.quote(directory)} && "
162
+ f'"$(command -v flock || command -v lockf)" '
163
+ f"{shlex.quote(f'{directory}/install.lock')} "
164
+ f"bash -o pipefail -c {shlex.quote(SETUP)}"
128
165
  )
129
166
  logger.info("openclaw: ensuring OpenClaw %s is installed", self.config.version)
130
- result = await runtime.run(["sh", "-c", guarded], self.config.resolved_env)
167
+ result = await runtime.run(
168
+ ["sh", "-c", guarded],
169
+ {
170
+ **self.config.resolved_env,
171
+ "VF_OPENCLAW_BIN": binary,
172
+ "VF_OPENCLAW_DIR": directory,
173
+ "VF_OPENCLAW_VERSION": self.config.version,
174
+ },
175
+ )
131
176
  if result.exit_code != 0:
132
177
  detail = (result.stderr or result.stdout).strip()[-500:]
133
- raise RuntimeError(f"OpenClaw install failed: {detail}")
178
+ raise RuntimeError(f"OpenClaw setup failed: {detail}")
134
179
  await super().setup(runtime)
135
180
 
136
181
  async def prepare_acp(
@@ -149,8 +194,6 @@ class OpenClawHarness(ACPHarness[OpenClawHarnessConfig]):
149
194
  config_path = f"{state_dir}/openclaw.json"
150
195
  skills_dir = f"{state_dir}/skills"
151
196
  config = {
152
- # Provider state must remain byte-exact within this isolated rollout.
153
- "logging": {"redactSensitive": "off"},
154
197
  "gateway": {
155
198
  "mode": "local",
156
199
  "bind": "loopback",
@@ -180,6 +223,7 @@ class OpenClawHarness(ACPHarness[OpenClawHarnessConfig]):
180
223
  provider: {
181
224
  "baseUrl": endpoint,
182
225
  "apiKey": "${OPENCLAW_INTERCEPT_KEY}",
226
+ "request": {"allowPrivateNetwork": True},
183
227
  }
184
228
  },
185
229
  },
@@ -68,8 +68,8 @@ class RLMHarnessConfig(HarnessConfig):
68
68
  unset defers to nano-rlm's default (on, automatic thresholds, bounded by its
69
69
  default 1M tree-token budget)."""
70
70
  max_concurrent_subagents: PositiveInt | None = None
71
- """Sub-agents running at once per session tree; `None` = nano-rlm's default (4).
72
- nano-rlm requires it to be at least `max_depth`."""
71
+ """Sub-agents running at once per session tree; `None` = nano-rlm's default (4),
72
+ raised to an explicit `max_depth` when needed to keep the policy valid."""
73
73
  max_total_turns: PositiveInt | None = None
74
74
  """Tree-total turn budget (one turn = one work-loop model call, any engine); every
75
75
  engine stops before its next call once spent. `None` = uncapped."""
@@ -152,9 +152,12 @@ class RLMHarness(ACPHarness[RLMHarnessConfig]):
152
152
  system_prompt: str | None,
153
153
  ) -> JsonObject:
154
154
  compaction = self.config.compaction
155
+ max_concurrent_subagents = self.config.max_concurrent_subagents
156
+ if max_concurrent_subagents is None and self.config.max_depth is not None:
157
+ max_concurrent_subagents = max(4, self.config.max_depth)
155
158
  policy_knobs: dict[str, Any] = {
156
159
  "max_depth": self.config.max_depth,
157
- "max_concurrent_subagents": self.config.max_concurrent_subagents,
160
+ "max_concurrent_subagents": max_concurrent_subagents,
158
161
  "max_total_turns": self.config.max_total_turns,
159
162
  "max_total_tokens": self.config.max_total_tokens,
160
163
  "max_tool_output_bytes": self.config.max_tool_output_bytes,
File without changes