verifiers 0.3.2.dev116__tar.gz → 0.3.2.dev118__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.dev116 → verifiers-0.3.2.dev118}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_trace.py +7 -2
  3. verifiers-0.3.2.dev118/verifiers/__init__.py +9 -0
  4. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/rollout.py +3 -1
  5. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/prime.py +19 -8
  6. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/task.py +3 -1
  7. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/harbor/taskset.py +7 -2
  8. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/artifacts.py +6 -3
  9. verifiers-0.3.2.dev116/verifiers/__init__.py +0 -14
  10. verifiers-0.3.2.dev116/verifiers/cli/commands/init.py +0 -6
  11. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/.gitignore +0 -0
  12. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/LICENSE +0 -0
  13. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/README.md +0 -0
  14. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/pyproject.toml +0 -0
  15. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/conftest.py +0 -0
  16. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  17. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/duet_v1.py +0 -0
  18. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  19. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  20. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  21. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  22. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/echo_v1.py +0 -0
  23. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/pyproject.toml +0 -0
  24. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  25. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_color_codeword_tasks.py +0 -0
  26. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_configs.py +0 -0
  27. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_e2e.py +0 -0
  28. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_envs.py +0 -0
  29. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_graph.py +0 -0
  30. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_judges.py +0 -0
  31. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_platform_run.py +0 -0
  32. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_scoring.py +0 -0
  33. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_serve_delta.py +0 -0
  34. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/tests/v1/test_taskset.py +0 -0
  35. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/__init__.py +0 -0
  36. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/acp/__init__.py +0 -0
  37. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/acp/runner.py +0 -0
  38. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/agent.py +0 -0
  39. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/__init__.py +0 -0
  40. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  41. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/dashboard/base.py +0 -0
  42. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/dashboard/eval.py +0 -0
  43. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/dashboard/replay.py +0 -0
  44. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/dashboard/validate.py +0 -0
  45. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/debug.py +0 -0
  46. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/eval/__init__.py +0 -0
  47. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/eval/hint.py +0 -0
  48. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/eval/main.py +0 -0
  49. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/eval/resume.py +0 -0
  50. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/eval/runner.py +0 -0
  51. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/gepa.py +0 -0
  52. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/init.py +0 -0
  53. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/output.py +0 -0
  54. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/replay.py +0 -0
  55. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/resolve.py +0 -0
  56. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/resume.py +0 -0
  57. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/cli/validate.py +0 -0
  58. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/clients/__init__.py +0 -0
  59. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/clients/base.py +0 -0
  60. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/clients/client.py +0 -0
  61. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/clients/eval.py +0 -0
  62. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/clients/train.py +0 -0
  63. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/__init__.py +0 -0
  64. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/agent.py +0 -0
  65. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/__init__.py +0 -0
  66. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/debug.py +0 -0
  67. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/env.py +0 -0
  68. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/eval.py +0 -0
  69. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/init.py +0 -0
  70. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/replay.py +0 -0
  71. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/cli/validate.py +0 -0
  72. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/client.py +0 -0
  73. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/env.py +0 -0
  74. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/harness.py +0 -0
  75. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/judge.py +0 -0
  76. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/retries.py +0 -0
  77. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/runtime.py +0 -0
  78. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/serve.py +0 -0
  79. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/task.py +0 -0
  80. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/configs/taskset.py +0 -0
  81. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/dialects/__init__.py +0 -0
  82. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/dialects/anthropic.py +0 -0
  83. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/dialects/base.py +0 -0
  84. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/dialects/chat.py +0 -0
  85. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/dialects/responses.py +0 -0
  86. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/env.py +0 -0
  87. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/__init__.py +0 -0
  88. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  89. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  90. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  91. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/best_of_n/env.py +0 -0
  92. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  93. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  94. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  95. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  96. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/single_agent/env.py +0 -0
  97. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  98. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/envs/user_sim/env.py +0 -0
  99. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/episode.py +0 -0
  100. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/errors.py +0 -0
  101. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/gepa/__init__.py +0 -0
  102. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/gepa/adapter.py +0 -0
  103. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/gepa/config.py +0 -0
  104. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/gepa/dataset.py +0 -0
  105. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/gepa/reflection.py +0 -0
  106. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/gepa/runner.py +0 -0
  107. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/graph.py +0 -0
  108. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harness.py +0 -0
  109. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/__init__.py +0 -0
  110. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  111. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/bash/harness.py +0 -0
  112. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  113. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  114. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  115. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  116. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  117. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  118. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/codex/harness.py +0 -0
  119. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  120. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  121. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  122. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  123. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  124. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  125. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  126. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  127. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/node.py +0 -0
  128. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/null/__init__.py +0 -0
  129. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/null/harness.py +0 -0
  130. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  131. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  132. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  133. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/pi/harness.py +0 -0
  134. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  135. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  136. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  137. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  138. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  139. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  140. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  141. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  142. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  143. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/utils/core.py +0 -0
  144. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/utils/install.py +0 -0
  145. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/utils/launch.py +0 -0
  146. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  147. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/__init__.py +0 -0
  148. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/base.py +0 -0
  149. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/pool.py +0 -0
  150. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/server.py +0 -0
  151. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/tool.py +0 -0
  152. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  153. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/tunnel/base.py +0 -0
  154. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/tunnel/custom.py +0 -0
  155. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/interception/tunnel/prime.py +0 -0
  156. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/judge.py +0 -0
  157. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/judges/__init__.py +0 -0
  158. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/judges/reference.py +0 -0
  159. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/judges/reference.txt +0 -0
  160. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/judges/rubric.py +0 -0
  161. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/judges/rubric.txt +0 -0
  162. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/mcp/__init__.py +0 -0
  163. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/mcp/launch.py +0 -0
  164. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/mcp/server.py +0 -0
  165. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/mcp/toolset.py +0 -0
  166. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/__init__.py +0 -0
  167. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/apptainer.py +0 -0
  168. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/base.py +0 -0
  169. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/container.py +0 -0
  170. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  171. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/docker/egress.py +0 -0
  172. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/limiters.py +0 -0
  173. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/modal.py +0 -0
  174. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/runtimes/subprocess.py +0 -0
  175. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/semantic.py +0 -0
  176. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/__init__.py +0 -0
  177. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/client.py +0 -0
  178. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/delta.py +0 -0
  179. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/encoding.py +0 -0
  180. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/pool.py +0 -0
  181. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/server.py +0 -0
  182. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/serve/types.py +0 -0
  183. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/session.py +0 -0
  184. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/state.py +0 -0
  185. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/taskset.py +0 -0
  186. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/__init__.py +0 -0
  187. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  188. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/harbor/env.py +0 -0
  189. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  190. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  191. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  192. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  193. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  194. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  195. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  196. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  197. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  198. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  199. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  200. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  201. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  202. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/trace.py +0 -0
  203. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/types.py +0 -0
  204. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/__init__.py +0 -0
  205. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/aio.py +0 -0
  206. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/compile.py +0 -0
  207. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/decorators.py +0 -0
  208. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/format.py +0 -0
  209. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/generic.py +0 -0
  210. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/git.py +0 -0
  211. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/image.py +0 -0
  212. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/interrupt.py +0 -0
  213. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/loaders.py +0 -0
  214. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/logging.py +0 -0
  215. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/memory.py +0 -0
  216. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/paths.py +0 -0
  217. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/platform.py +0 -0
  218. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/prime.py +0 -0
  219. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/retries.py +0 -0
  220. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/verifiers/v1/utils/score.py +0 -0
  221. {verifiers-0.3.2.dev116 → verifiers-0.3.2.dev118}/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.dev116
3
+ Version: 0.3.2.dev118
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
@@ -10,6 +10,7 @@ import pytest
10
10
 
11
11
  import verifiers.v1 as vf
12
12
  from verifiers.v1.agent import Interaction
13
+ from verifiers.v1.cli.output import write_episode
13
14
  from verifiers.v1.graph import MessageNode
14
15
  from verifiers.v1.harnesses.rlm.harness import (
15
16
  RLM_SESSION_METADATA_KEY,
@@ -144,13 +145,13 @@ def test_bare_trace_round_trip():
144
145
  assert rt.reward == 0.0 and rt.errors == []
145
146
 
146
147
 
147
- def test_custom_task_state_round_trip():
148
+ def test_custom_task_state_round_trip(tmp_path):
148
149
  # Custom data and state round-trip into the same parameterization. Data fields are
149
150
  # typed (not just `model_extra`); `state` is runtime-only and never crosses the wire.
150
151
  tr = vf.Trace[MyTask, MyState](
151
152
  agent=vf.AgentInfo(config=vf.AgentConfig()),
152
153
  task=vf.TraceTask(type="MyTask", data=MyTask(idx=0, prompt="q", answer="gold")),
153
- state=MyState(score=7),
154
+ state=MyState(score=7, artifacts={"/artifact.bin": b"\xff\x00\xfe"}),
154
155
  nodes=[
155
156
  MessageNode(parent=None, message=UserMessage(content="q"), sampled=False),
156
157
  MessageNode(parent=0, message=AssistantMessage(content="a"), sampled=True),
@@ -167,6 +168,10 @@ def test_custom_task_state_round_trip():
167
168
  assert rt.task.type == "MyTask" # the producing class's name survives the wire
168
169
  assert rt.num_turns == 1 and rt.num_branches == 1
169
170
  assert rt.reward == 0.5 # property recomputed from `rewards`
171
+ write_episode(tmp_path, vf.Episode(task=tr.task, traces=[tr], ok=True))
172
+ saved = json.loads((tmp_path / "traces.jsonl").read_bytes())
173
+ assert "state" not in saved["traces"][0]
174
+ assert tr.state.artifacts["/artifact.bin"] == b"\xff\x00\xfe"
170
175
 
171
176
 
172
177
  def test_wire_trace_round_trip():
@@ -0,0 +1,9 @@
1
+ """The verifiers package root; the stack lives in `verifiers.v1` (`import verifiers.v1 as vf`)."""
2
+
3
+ from importlib.metadata import PackageNotFoundError
4
+ from importlib.metadata import version as _version
5
+
6
+ try:
7
+ __version__ = _version("verifiers")
8
+ except PackageNotFoundError: # source tree without install metadata
9
+ __version__ = "0.0.0+unknown"
@@ -485,7 +485,9 @@ class Rollout:
485
485
  )
486
486
  if self._collect_artifacts and not trace.state.artifacts:
487
487
  trace.state.artifacts = await collect(
488
- runtime, self.task.data.artifacts
488
+ runtime,
489
+ self.task.data.artifacts,
490
+ max_bytes=self.task.data.artifact_max_bytes,
489
491
  )
490
492
  now = time.time()
491
493
  trace.timing.finalize.end = now
@@ -1,8 +1,8 @@
1
1
  """Remote Prime VM sandbox runtime."""
2
2
 
3
3
  import asyncio
4
- import base64
5
4
  import contextlib
5
+ import io
6
6
  import logging
7
7
  import math
8
8
  import shlex
@@ -329,19 +329,30 @@ class PrimeRuntime(Runtime):
329
329
  async def _read(self, path: str, max_bytes: int | None = None) -> bytes:
330
330
  if max_bytes is not None:
331
331
  try:
332
- # VM execute_command uses bash and returns the complete output stream.
333
- result = await self._client.execute_command(
332
+ # Stream binary output: execute_command buffers base64 text for the
333
+ # entire file. Bound the source read and the host buffer independently.
334
+ process = await self._client.open_process(
334
335
  self.info.id,
335
- f"set -o pipefail; head -c {max_bytes} -- {shlex.quote(path)} | base64",
336
+ f"head -c {max_bytes} -- {shlex.quote(path)}",
336
337
  working_dir=self.config.workdir,
337
338
  env=self.process_env({}),
338
- timeout=EFFECTIVELY_UNBOUNDED_SECONDS,
339
339
  )
340
+ async with contextlib.aclosing(process):
341
+ with io.BytesIO() as data:
342
+ async for chunk in process.stdout:
343
+ if data.tell() + len(chunk) > max_bytes:
344
+ raise SandboxError(
345
+ "read stream exceeded its byte limit"
346
+ )
347
+ data.write(chunk)
348
+ stderr = b""
349
+ async for chunk in process.stderr:
350
+ stderr = (stderr + chunk)[-500:]
351
+ if await process.wait():
352
+ raise SandboxError(stderr.decode(errors="replace").strip())
353
+ return data.getvalue()
340
354
  except Exception as exc:
341
355
  raise SandboxError(f"read {path!r}: {exc}") from exc
342
- if result.exit_code:
343
- raise SandboxError(f"read {path!r}: {result.stderr.strip()[-500:]}")
344
- return base64.b64decode(result.stdout)
345
356
  # Avoid background-job log limits and base64 overhead by downloading binary data directly.
346
357
  # The temporary file is removed on every exit, and its byte read stays off the event loop.
347
358
  target = (
@@ -25,7 +25,7 @@ from verifiers.v1.configs.task import TaskConfig
25
25
  from verifiers.v1.errors import TaskError, boundary
26
26
  from verifiers.v1.state import StateT
27
27
  from verifiers.v1.types import Messages, content_text
28
- from verifiers.v1.utils.artifacts import Artifact
28
+ from verifiers.v1.utils.artifacts import MAX_ARTIFACT_BYTES, Artifact
29
29
  from verifiers.v1.utils.decorators import (
30
30
  discover_decorated,
31
31
  invoke_all,
@@ -115,6 +115,8 @@ class TaskData(BaseModel):
115
115
  on top of the implicitly collected `/logs/artifacts/` convention dir. Declare
116
116
  runtime outputs that must cross that boundary. A declared path that is missing at
117
117
  collection time fails the rollout."""
118
+ artifact_max_bytes: int = Field(MAX_ARTIFACT_BYTES, gt=0)
119
+ """Total byte limit for collected artifact archives, including the convention dir."""
118
120
 
119
121
  timeout: TaskTimeout = TaskTimeout()
120
122
  resources: TaskResources = TaskResources()
@@ -40,7 +40,7 @@ from verifiers.v1.state import State
40
40
  from verifiers.v1.task import Task, TaskData, TaskResources, TaskTimeout
41
41
  from verifiers.v1.taskset import Taskset
42
42
  from verifiers.v1.trace import Trace
43
- from verifiers.v1.utils.artifacts import Artifact, collect
43
+ from verifiers.v1.utils.artifacts import MAX_ARTIFACT_BYTES, Artifact, collect
44
44
  from verifiers.v1.utils.decorators import reward
45
45
 
46
46
  logger = logging.getLogger(__name__)
@@ -61,6 +61,8 @@ class HarborTaskConfig(TaskConfig):
61
61
 
62
62
 
63
63
  class HarborConfig(TasksetConfig):
64
+ artifact_max_bytes: int = Field(MAX_ARTIFACT_BYTES, gt=0)
65
+ """Total byte limit for artifact archives transferred out of each solver runtime."""
64
66
  task: HarborTaskConfig = HarborTaskConfig()
65
67
  dataset: str = "harbor/hello-world"
66
68
  """A Harbor Hub package id ("org/name" or "org/name@ref"), where ref is a
@@ -272,7 +274,9 @@ class HarborTask(Task[HarborData, State, HarborTaskConfig]):
272
274
  f"{hook.command}\n{detail}"
273
275
  )
274
276
  if not self.scoring_deferred:
275
- trace.state.artifacts = await collect(runtime, self.data.artifacts)
277
+ trace.state.artifacts = await collect(
278
+ runtime, self.data.artifacts, max_bytes=self.data.artifact_max_bytes
279
+ )
276
280
 
277
281
  async def stage_verifier(self, trace: Trace, runtime: Runtime) -> None:
278
282
  if any(
@@ -582,6 +586,7 @@ def parse_task(task_dir: Path, idx: int, harbor_config: HarborConfig) -> HarborD
582
586
  )
583
587
  return HarborData(
584
588
  idx=idx,
589
+ artifact_max_bytes=harbor_config.artifact_max_bytes,
585
590
  name=harbor_task.name,
586
591
  description=task.description if task else None,
587
592
  prompt=harbor_task.instruction.strip(),
@@ -21,7 +21,7 @@ ARTIFACTS_DIR = "/logs/artifacts"
21
21
  """Implicit artifact directory; tasks that write here need no declaration."""
22
22
 
23
23
  MAX_ARTIFACT_BYTES = 32 * 1024 * 1024
24
- """Ceiling per collection. Sized for a delta, not a tree: the grading box boots from the
24
+ """Default ceiling per collection. Sized for a delta, not a tree: the grading box boots from the
25
25
  agent's image, so the repo is already there and only its output has to travel."""
26
26
 
27
27
 
@@ -35,7 +35,10 @@ class Artifact(BaseModel):
35
35
 
36
36
 
37
37
  async def collect(
38
- runtime: Runtime, artifacts: list[Artifact] | None = None
38
+ runtime: Runtime,
39
+ artifacts: list[Artifact] | None = None,
40
+ *,
41
+ max_bytes: int = MAX_ARTIFACT_BYTES,
39
42
  ) -> dict[str, bytes | None]:
40
43
  """Tar the convention dir and every declared path out of `runtime`.
41
44
 
@@ -114,7 +117,7 @@ async def collect(
114
117
  )
115
118
  existence.extend(output.splitlines())
116
119
  collected: dict[str, bytes | None] = {}
117
- budget = MAX_ARTIFACT_BYTES
120
+ budget = max_bytes
118
121
  for artifact, exists in zip(entries, existence, strict=True):
119
122
  source = artifact.source
120
123
  if exists != "1":
@@ -1,14 +0,0 @@
1
- """The verifiers package root.
2
-
3
- The v1 stack lives in `verifiers.v1` (`import verifiers.v1 as vf`). The
4
- classic v0 stack (`verifiers.legacy`, which also answered at its historical
5
- top-level paths — `verifiers.envs`, `verifiers.types`, ...) has been removed.
6
- """
7
-
8
- from importlib.metadata import PackageNotFoundError
9
- from importlib.metadata import version as _version
10
-
11
- try:
12
- __version__ = _version("verifiers")
13
- except PackageNotFoundError: # source tree without install metadata
14
- __version__ = "0.0.0+unknown"
@@ -1,6 +0,0 @@
1
- """Environment initialization command module for external hosts."""
2
-
3
- from verifiers.v1.cli.init import main
4
-
5
- if __name__ == "__main__":
6
- main()