verifiers 0.3.2.dev147__tar.gz → 0.3.2.dev149__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.dev147 → verifiers-0.3.2.dev149}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/agent.py +3 -12
  3. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/agent.py +9 -8
  4. verifiers-0.3.2.dev149/verifiers/v1/harnesses/node.py +91 -0
  5. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/harbor/taskset.py +4 -4
  6. verifiers-0.3.2.dev147/verifiers/v1/harnesses/node.py +0 -49
  7. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/.gitignore +0 -0
  8. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/LICENSE +0 -0
  9. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/README.md +0 -0
  10. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/pyproject.toml +0 -0
  11. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/conftest.py +0 -0
  12. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  13. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/duet_v1.py +0 -0
  14. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  15. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  16. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  17. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  18. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/echo_v1.py +0 -0
  19. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/pyproject.toml +0 -0
  20. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  21. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_color_codeword_tasks.py +0 -0
  22. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_configs.py +0 -0
  23. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_e2e.py +0 -0
  24. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_envs.py +0 -0
  25. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_graph.py +0 -0
  26. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_judges.py +0 -0
  27. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_platform_run.py +0 -0
  28. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_scoring.py +0 -0
  29. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_serve_delta.py +0 -0
  30. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_taskset.py +0 -0
  31. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/tests/v1/test_trace.py +0 -0
  32. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/__init__.py +0 -0
  33. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/__init__.py +0 -0
  34. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/acp/__init__.py +0 -0
  35. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/acp/runner.py +0 -0
  36. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/__init__.py +0 -0
  37. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  38. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/dashboard/base.py +0 -0
  39. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/dashboard/eval.py +0 -0
  40. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/dashboard/replay.py +0 -0
  41. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/dashboard/validate.py +0 -0
  42. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/debug.py +0 -0
  43. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/eval/__init__.py +0 -0
  44. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/eval/hint.py +0 -0
  45. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/eval/main.py +0 -0
  46. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/eval/resume.py +0 -0
  47. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/eval/runner.py +0 -0
  48. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/gepa.py +0 -0
  49. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/init.py +0 -0
  50. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/output.py +0 -0
  51. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/replay.py +0 -0
  52. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/resolve.py +0 -0
  53. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/resume.py +0 -0
  54. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/cli/validate.py +0 -0
  55. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/clients/__init__.py +0 -0
  56. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/clients/base.py +0 -0
  57. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/clients/client.py +0 -0
  58. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/clients/eval.py +0 -0
  59. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/clients/train.py +0 -0
  60. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/__init__.py +0 -0
  61. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/__init__.py +0 -0
  62. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/debug.py +0 -0
  63. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/env.py +0 -0
  64. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/eval.py +0 -0
  65. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/init.py +0 -0
  66. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/replay.py +0 -0
  67. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/cli/validate.py +0 -0
  68. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/client.py +0 -0
  69. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/env.py +0 -0
  70. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/harness.py +0 -0
  71. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/judge.py +0 -0
  72. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/retries.py +0 -0
  73. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/runtime.py +0 -0
  74. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/serve.py +0 -0
  75. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/task.py +0 -0
  76. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/configs/taskset.py +0 -0
  77. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/dialects/__init__.py +0 -0
  78. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/dialects/anthropic.py +0 -0
  79. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/dialects/base.py +0 -0
  80. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/dialects/chat.py +0 -0
  81. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/dialects/responses.py +0 -0
  82. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/env.py +0 -0
  83. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/__init__.py +0 -0
  84. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  85. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  86. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  87. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/best_of_n/env.py +0 -0
  88. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  89. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  90. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  91. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  92. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/single_agent/env.py +0 -0
  93. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  94. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/envs/user_sim/env.py +0 -0
  95. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/episode.py +0 -0
  96. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/errors.py +0 -0
  97. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/gepa/__init__.py +0 -0
  98. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/gepa/adapter.py +0 -0
  99. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/gepa/config.py +0 -0
  100. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/gepa/dataset.py +0 -0
  101. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/gepa/reflection.py +0 -0
  102. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/gepa/runner.py +0 -0
  103. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/graph.py +0 -0
  104. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harness.py +0 -0
  105. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/__init__.py +0 -0
  106. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  107. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/bash/harness.py +0 -0
  108. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  109. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  110. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  111. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  112. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  113. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  114. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  115. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/codex/harness.py +0 -0
  116. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  117. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  118. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  119. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  120. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  121. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  122. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  123. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  124. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/null/__init__.py +0 -0
  125. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/null/harness.py +0 -0
  126. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  127. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  128. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  129. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  130. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/pi/harness.py +0 -0
  131. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  132. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  133. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  134. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  135. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  136. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  137. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  138. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  139. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  140. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/utils/core.py +0 -0
  141. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/utils/install.py +0 -0
  142. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/utils/launch.py +0 -0
  143. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  144. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/__init__.py +0 -0
  145. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/base.py +0 -0
  146. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/pool.py +0 -0
  147. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/server.py +0 -0
  148. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  149. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/tunnel/base.py +0 -0
  150. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/tunnel/custom.py +0 -0
  151. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/interception/tunnel/prime.py +0 -0
  152. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/judge.py +0 -0
  153. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/judges/__init__.py +0 -0
  154. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/judges/reference.py +0 -0
  155. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/judges/reference.txt +0 -0
  156. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/judges/rubric.py +0 -0
  157. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/judges/rubric.txt +0 -0
  158. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/mcp/__init__.py +0 -0
  159. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/mcp/launch.py +0 -0
  160. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/mcp/server.py +0 -0
  161. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/mcp/toolset.py +0 -0
  162. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/rollout.py +0 -0
  163. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/__init__.py +0 -0
  164. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/apptainer.py +0 -0
  165. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/base.py +0 -0
  166. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/container.py +0 -0
  167. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  168. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/docker/egress.py +0 -0
  169. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/limiters.py +0 -0
  170. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/modal.py +0 -0
  171. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/prime.py +0 -0
  172. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/runtimes/subprocess.py +0 -0
  173. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/semantic.py +0 -0
  174. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/__init__.py +0 -0
  175. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/client.py +0 -0
  176. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/delta.py +0 -0
  177. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/encoding.py +0 -0
  178. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/pool.py +0 -0
  179. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/server.py +0 -0
  180. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/serve/types.py +0 -0
  181. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/session.py +0 -0
  182. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/state.py +0 -0
  183. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/task.py +0 -0
  184. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/taskset.py +0 -0
  185. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/__init__.py +0 -0
  186. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  187. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/harbor/compose.py +0 -0
  188. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/harbor/env.py +0 -0
  189. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  190. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  191. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  192. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  193. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  194. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  195. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  196. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  197. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  198. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  199. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/trace.py +0 -0
  200. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/types.py +0 -0
  201. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/__init__.py +0 -0
  202. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/aio.py +0 -0
  203. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/artifacts.py +0 -0
  204. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/compile.py +0 -0
  205. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/decorators.py +0 -0
  206. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/format.py +0 -0
  207. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/generic.py +0 -0
  208. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/git.py +0 -0
  209. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/image.py +0 -0
  210. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/interrupt.py +0 -0
  211. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/loaders.py +0 -0
  212. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/logging.py +0 -0
  213. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/memory.py +0 -0
  214. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/paths.py +0 -0
  215. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/platform.py +0 -0
  216. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/prime.py +0 -0
  217. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/retries.py +0 -0
  218. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/scope.py +0 -0
  219. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/score.py +0 -0
  220. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/verifiers/v1/utils/trace_store.py +0 -0
  221. {verifiers-0.3.2.dev147 → verifiers-0.3.2.dev149}/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.dev147
3
+ Version: 0.3.2.dev149
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
@@ -57,22 +57,13 @@ __all__ = ["Agent", "AgentConfig", "Agents", "TimeoutConfig", "make_agent"]
57
57
  logger = logging.getLogger(__name__)
58
58
 
59
59
 
60
- DEFAULT_ROLLOUT_TIMEOUT = 4 * 3600.0
61
- """Agent solve-attempt budget when neither the eval config nor the task sets one."""
62
-
63
-
64
60
  def resolve_rollout_timeouts(timeout: TimeoutConfig, task: Task) -> RolloutTimeouts:
65
61
  """Apply an agent's stage-timeout precedence to one task."""
66
- agent_timeout = (
67
- timeout.rollout if timeout.rollout is not None else task.data.timeout.agent
68
- )
69
- if agent_timeout is None:
70
- agent_timeout = DEFAULT_ROLLOUT_TIMEOUT
71
- elif agent_timeout == 0:
72
- agent_timeout = None # explicit: unbounded
73
62
  return RolloutTimeouts(
74
63
  setup=timeout.setup if timeout.setup is not None else task.data.timeout.setup,
75
- agent=agent_timeout,
64
+ agent=(
65
+ timeout.rollout if timeout.rollout is not None else task.data.timeout.agent
66
+ ),
76
67
  finalize=(
77
68
  timeout.finalize
78
69
  if timeout.finalize is not None
@@ -2,7 +2,7 @@
2
2
 
3
3
  from typing import Any
4
4
 
5
- from pydantic import BaseModel, SerializeAsAny, model_validator
5
+ from pydantic import BaseModel, Field, SerializeAsAny, model_validator
6
6
  from pydantic_config import BaseConfig
7
7
 
8
8
  from verifiers.v1.clients import ClientConfig
@@ -14,16 +14,17 @@ from verifiers.v1.utils.generic import deep_merge
14
14
 
15
15
 
16
16
  class TimeoutConfig(BaseConfig):
17
- """Timeout (in seconds) for different phases of an agent's run."""
17
+ """Timeout (in seconds) for different phases of an agent's run. Each unset
18
+ stage takes the task's own timeout for it, else runs with no limit."""
18
19
 
19
- setup: float | None = None # one shared budget: task setup + provisioning
20
+ # one shared budget: task setup + provisioning
21
+ setup: float | None = Field(None, gt=0)
20
22
  """Timeout (in seconds) for task/harness setup through session preparation."""
21
- rollout: float | None = None
22
- """Timeout (in seconds) for the agent's solve attempt. Unset: the task's own
23
- timeout, else 4 hours. `0` disables the timeout."""
24
- finalize: float | None = None
23
+ rollout: float | None = Field(None, gt=0)
24
+ """Timeout (in seconds) for the agent's solve attempt."""
25
+ finalize: float | None = Field(None, gt=0)
25
26
  """Timeout (in seconds) for the task + harness finalize hooks."""
26
- scoring: float | None = None
27
+ scoring: float | None = Field(None, gt=0)
27
28
  """Timeout (in seconds) for the task + harness metrics + scoring hooks."""
28
29
 
29
30
 
@@ -0,0 +1,91 @@
1
+ from verifiers.v1.harnesses.utils.install import ensure_installed
2
+ from verifiers.v1.runtimes import Runtime
3
+
4
+ NODE_DIR = "/var/tmp/vf-node"
5
+ NODE_BIN_DIR = f"{NODE_DIR}/bin"
6
+ NODE_VERSION = "22.19.0"
7
+
8
+ INSTALL = r"""
9
+ set -e
10
+ node=/var/tmp/vf-node
11
+ node_ok() { "$node/bin/node" -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 && b>=19 ? 0 : 1)'; }
12
+
13
+ if [ -f /etc/alpine-release ]; then
14
+ apk add --no-cache curl ca-certificates nodejs-current npm >/dev/null
15
+ if ! node -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 && b>=19 ? 0 : 1)'; then
16
+ sed -E -i 's/v[0-9]+\.[0-9]+/v3.22/g' /etc/apk/repositories
17
+ apk upgrade --available --no-cache >/dev/null
18
+ apk add --no-cache nodejs-current npm >/dev/null
19
+ fi
20
+ mkdir -p "$node/bin"
21
+ ln -sf "$(command -v node)" "$node/bin/node"
22
+ ln -sf "$(command -v npm)" "$node/bin/npm"
23
+ else
24
+ if ! command -v curl >/dev/null 2>&1 \
25
+ && ! (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null); then
26
+ (
27
+ # Task images can have source-only repositories. Bootstrap from signed
28
+ # distro repositories with temporary sources and indexes, leaving the task's intact.
29
+ . /etc/os-release
30
+ case "$ID" in
31
+ debian)
32
+ mirror=http://deb.debian.org/debian
33
+ security_mirror=http://security.debian.org/debian-security ;;
34
+ ubuntu)
35
+ case "$(dpkg --print-architecture)" in
36
+ amd64|i386)
37
+ mirror=http://archive.ubuntu.com/ubuntu
38
+ security_mirror=http://security.ubuntu.com/ubuntu ;;
39
+ *)
40
+ mirror=http://ports.ubuntu.com/ubuntu-ports
41
+ security_mirror=$mirror ;;
42
+ esac ;;
43
+ *) echo "cannot bootstrap curl on $ID" >&2; exit 1 ;;
44
+ esac
45
+ apt_dir=$(mktemp -d)
46
+ trap 'rm -rf "$apt_dir"' EXIT
47
+ chmod 755 "$apt_dir"
48
+ mkdir -p "$apt_dir/lists/partial"
49
+ set -- -o "Dir::Etc::sourcelist=$apt_dir/sources.list" -o Dir::Etc::sourceparts=- \
50
+ -o "Dir::State::lists=$apt_dir/lists" -o Dir::Cache::pkgcache= -o Dir::Cache::srcpkgcache=
51
+ suites=${VERSION_CODENAME:?}
52
+ # Testing and unstable share os-release; sid may be needed to match installed libcurl.
53
+ if [ "$ID" = debian ] && [ -z "${VERSION_ID:-}" ]; then suites="$suites sid"; fi
54
+ for suite in $suites; do
55
+ printf 'deb %s %s main\n' "$mirror" "$suite" > "$apt_dir/sources.list"
56
+ # Release images can already have libcurl from updates/security.
57
+ if [ -n "${VERSION_ID:-}" ]; then
58
+ printf 'deb %s %s main\n' "$mirror" "$suite-updates" \
59
+ "$security_mirror" "$suite-security" >> "$apt_dir/sources.list"
60
+ fi
61
+ apt-get "$@" update -qq \
62
+ && apt-get "$@" install -y -qq --no-install-recommends curl ca-certificates >/dev/null \
63
+ && exit 0
64
+ done
65
+ exit 1
66
+ )
67
+ fi
68
+ case "$(uname -s)" in Linux) node_os=linux ;; Darwin) node_os=darwin ;; *) echo "unsupported os: $(uname -s)" >&2; exit 1 ;; esac
69
+ if [ ! -x "$node/bin/node" ] || [ "$("$node/bin/node" --version 2>/dev/null)" != "v$VF_NODE_VERSION" ]; then
70
+ case "$(uname -m)" in aarch64|arm64) node_arch=arm64 ;; *) node_arch=x64 ;; esac
71
+ rm -rf "$node"
72
+ mkdir -p "$node"
73
+ curl -fsSL "https://nodejs.org/dist/v$VF_NODE_VERSION/node-v$VF_NODE_VERSION-${node_os}-${node_arch}.tar.gz" \
74
+ | tar -xz -C "$node" --strip-components=1
75
+ fi
76
+ fi
77
+ node_ok || { echo "ACP adapters require Node.js 22.19 or newer" >&2; exit 1; }
78
+ """
79
+
80
+
81
+ async def ensure_node(runtime: Runtime) -> None:
82
+ """Install the shared Node runtime used by ACP adapter harnesses."""
83
+ # The install replaces NODE_DIR wholesale, so the lock lives beside it.
84
+ await ensure_installed(
85
+ runtime,
86
+ directory=NODE_DIR,
87
+ lock=f"{NODE_DIR}.install.lock",
88
+ install=INSTALL,
89
+ env={"VF_NODE_VERSION": NODE_VERSION},
90
+ label="Node.js",
91
+ )
@@ -77,10 +77,10 @@ class HarborConfig(TasksetConfig):
77
77
  tasks: list[str] | None = None
78
78
  """Optional subset of task names to load (None = all)."""
79
79
  ignore_timeouts: bool = True
80
- """Drop each task's declared agent and verifier timeouts so rollouts use the
81
- run-level `--timeout.*` limits or their defaults (4 h for the agent; `--timeout.rollout 0`
82
- runs unbounded). Task timeouts are authored against Harbor's runtime and confound
83
- model capability with inference speed; set False to apply them anyway."""
80
+ """Drop each task's declared agent and verifier timeouts so rollouts use only the
81
+ run-level `--timeout.*` limits (none by default). Task timeouts are authored
82
+ against Harbor's runtime and confound model capability with inference speed; set
83
+ False to apply them anyway."""
84
84
  timeout_multiplier: float = Field(1.0, gt=0)
85
85
  """Scale each task's agent and verifier timeouts. Only applies with
86
86
  `ignore_timeouts=False`."""
@@ -1,49 +0,0 @@
1
- from verifiers.v1.harnesses.utils.install import ensure_installed
2
- from verifiers.v1.runtimes import Runtime
3
-
4
- NODE_DIR = "/var/tmp/vf-node"
5
- NODE_BIN_DIR = f"{NODE_DIR}/bin"
6
- NODE_VERSION = "22.19.0"
7
-
8
- INSTALL = r"""
9
- set -e
10
- node=/var/tmp/vf-node
11
- node_ok() { "$node/bin/node" -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 && b>=19 ? 0 : 1)'; }
12
-
13
- if [ -f /etc/alpine-release ]; then
14
- apk add --no-cache curl ca-certificates nodejs-current npm >/dev/null
15
- if ! node -e 'const [a,b]=process.versions.node.split(".").map(Number); process.exit(a>22 || a===22 && b>=19 ? 0 : 1)'; then
16
- sed -E -i 's/v[0-9]+\.[0-9]+/v3.22/g' /etc/apk/repositories
17
- apk upgrade --available --no-cache >/dev/null
18
- apk add --no-cache nodejs-current npm >/dev/null
19
- fi
20
- mkdir -p "$node/bin"
21
- ln -sf "$(command -v node)" "$node/bin/node"
22
- ln -sf "$(command -v npm)" "$node/bin/npm"
23
- else
24
- command -v curl >/dev/null 2>&1 \
25
- || { apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null; }
26
- case "$(uname -s)" in Linux) node_os=linux ;; Darwin) node_os=darwin ;; *) echo "unsupported os: $(uname -s)" >&2; exit 1 ;; esac
27
- if [ ! -x "$node/bin/node" ] || [ "$("$node/bin/node" --version 2>/dev/null)" != "v$VF_NODE_VERSION" ]; then
28
- case "$(uname -m)" in aarch64|arm64) node_arch=arm64 ;; *) node_arch=x64 ;; esac
29
- rm -rf "$node"
30
- mkdir -p "$node"
31
- curl -fsSL "https://nodejs.org/dist/v$VF_NODE_VERSION/node-v$VF_NODE_VERSION-${node_os}-${node_arch}.tar.gz" \
32
- | tar -xz -C "$node" --strip-components=1
33
- fi
34
- fi
35
- node_ok || { echo "ACP adapters require Node.js 22.19 or newer" >&2; exit 1; }
36
- """
37
-
38
-
39
- async def ensure_node(runtime: Runtime) -> None:
40
- """Install the shared Node runtime used by ACP adapter harnesses."""
41
- # The install replaces NODE_DIR wholesale, so the lock lives beside it.
42
- await ensure_installed(
43
- runtime,
44
- directory=NODE_DIR,
45
- lock=f"{NODE_DIR}.install.lock",
46
- install=INSTALL,
47
- env={"VF_NODE_VERSION": NODE_VERSION},
48
- label="Node.js",
49
- )