verifiers 0.3.2.dev129__tar.gz → 0.3.2.dev130__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 (218) hide show
  1. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/harbor/taskset.py +52 -39
  3. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/.gitignore +0 -0
  4. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/LICENSE +0 -0
  5. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/README.md +0 -0
  6. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/pyproject.toml +0 -0
  7. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/conftest.py +0 -0
  8. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  9. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/duet_v1.py +0 -0
  10. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  11. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  12. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  13. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  14. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/echo_v1.py +0 -0
  15. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/pyproject.toml +0 -0
  16. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  17. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_color_codeword_tasks.py +0 -0
  18. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_configs.py +0 -0
  19. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_e2e.py +0 -0
  20. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_envs.py +0 -0
  21. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_graph.py +0 -0
  22. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_judges.py +0 -0
  23. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_platform_run.py +0 -0
  24. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_scoring.py +0 -0
  25. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_serve_delta.py +0 -0
  26. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_taskset.py +0 -0
  27. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/tests/v1/test_trace.py +0 -0
  28. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/__init__.py +0 -0
  29. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/__init__.py +0 -0
  30. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/acp/__init__.py +0 -0
  31. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/acp/runner.py +0 -0
  32. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/agent.py +0 -0
  33. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/__init__.py +0 -0
  34. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  35. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/dashboard/base.py +0 -0
  36. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/dashboard/eval.py +0 -0
  37. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/dashboard/replay.py +0 -0
  38. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/dashboard/validate.py +0 -0
  39. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/debug.py +0 -0
  40. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/eval/__init__.py +0 -0
  41. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/eval/hint.py +0 -0
  42. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/eval/main.py +0 -0
  43. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/eval/resume.py +0 -0
  44. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/eval/runner.py +0 -0
  45. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/gepa.py +0 -0
  46. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/init.py +0 -0
  47. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/output.py +0 -0
  48. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/replay.py +0 -0
  49. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/resolve.py +0 -0
  50. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/resume.py +0 -0
  51. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/cli/validate.py +0 -0
  52. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/clients/__init__.py +0 -0
  53. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/clients/base.py +0 -0
  54. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/clients/client.py +0 -0
  55. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/clients/eval.py +0 -0
  56. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/clients/train.py +0 -0
  57. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/__init__.py +0 -0
  58. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/agent.py +0 -0
  59. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/__init__.py +0 -0
  60. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/debug.py +0 -0
  61. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/env.py +0 -0
  62. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/eval.py +0 -0
  63. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/init.py +0 -0
  64. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/replay.py +0 -0
  65. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/cli/validate.py +0 -0
  66. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/client.py +0 -0
  67. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/env.py +0 -0
  68. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/harness.py +0 -0
  69. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/judge.py +0 -0
  70. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/retries.py +0 -0
  71. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/runtime.py +0 -0
  72. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/serve.py +0 -0
  73. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/task.py +0 -0
  74. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/configs/taskset.py +0 -0
  75. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/dialects/__init__.py +0 -0
  76. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/dialects/anthropic.py +0 -0
  77. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/dialects/base.py +0 -0
  78. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/dialects/chat.py +0 -0
  79. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/dialects/responses.py +0 -0
  80. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/env.py +0 -0
  81. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/__init__.py +0 -0
  82. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  83. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  84. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  85. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/best_of_n/env.py +0 -0
  86. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  87. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  88. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  89. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  90. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/single_agent/env.py +0 -0
  91. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  92. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/envs/user_sim/env.py +0 -0
  93. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/episode.py +0 -0
  94. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/errors.py +0 -0
  95. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/gepa/__init__.py +0 -0
  96. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/gepa/adapter.py +0 -0
  97. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/gepa/config.py +0 -0
  98. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/gepa/dataset.py +0 -0
  99. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/gepa/reflection.py +0 -0
  100. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/gepa/runner.py +0 -0
  101. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/graph.py +0 -0
  102. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harness.py +0 -0
  103. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/__init__.py +0 -0
  104. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  105. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/bash/harness.py +0 -0
  106. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  107. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  108. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  109. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  110. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  111. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  112. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  113. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/codex/harness.py +0 -0
  114. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  115. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  116. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  117. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  118. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  119. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  120. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  121. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  122. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/node.py +0 -0
  123. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/null/__init__.py +0 -0
  124. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/null/harness.py +0 -0
  125. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  126. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  127. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  128. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  129. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/pi/harness.py +0 -0
  130. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  131. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  132. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  133. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  134. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  135. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  136. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  137. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  138. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  139. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/utils/core.py +0 -0
  140. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/utils/install.py +0 -0
  141. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/utils/launch.py +0 -0
  142. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  143. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/__init__.py +0 -0
  144. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/base.py +0 -0
  145. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/pool.py +0 -0
  146. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/server.py +0 -0
  147. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  148. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/tunnel/base.py +0 -0
  149. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/tunnel/custom.py +0 -0
  150. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/interception/tunnel/prime.py +0 -0
  151. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/judge.py +0 -0
  152. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/judges/__init__.py +0 -0
  153. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/judges/reference.py +0 -0
  154. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/judges/reference.txt +0 -0
  155. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/judges/rubric.py +0 -0
  156. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/judges/rubric.txt +0 -0
  157. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/mcp/__init__.py +0 -0
  158. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/mcp/launch.py +0 -0
  159. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/mcp/server.py +0 -0
  160. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/mcp/toolset.py +0 -0
  161. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/rollout.py +0 -0
  162. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/__init__.py +0 -0
  163. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/apptainer.py +0 -0
  164. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/base.py +0 -0
  165. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/container.py +0 -0
  166. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  167. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/docker/egress.py +0 -0
  168. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/limiters.py +0 -0
  169. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/modal.py +0 -0
  170. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/prime.py +0 -0
  171. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/runtimes/subprocess.py +0 -0
  172. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/semantic.py +0 -0
  173. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/__init__.py +0 -0
  174. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/client.py +0 -0
  175. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/delta.py +0 -0
  176. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/encoding.py +0 -0
  177. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/pool.py +0 -0
  178. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/server.py +0 -0
  179. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/serve/types.py +0 -0
  180. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/session.py +0 -0
  181. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/state.py +0 -0
  182. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/task.py +0 -0
  183. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/taskset.py +0 -0
  184. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/__init__.py +0 -0
  185. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  186. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/harbor/env.py +0 -0
  187. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  188. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  189. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  190. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  191. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  192. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  193. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  194. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  195. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  196. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  197. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/trace.py +0 -0
  198. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/types.py +0 -0
  199. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/__init__.py +0 -0
  200. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/aio.py +0 -0
  201. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/artifacts.py +0 -0
  202. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/compile.py +0 -0
  203. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/decorators.py +0 -0
  204. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/format.py +0 -0
  205. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/generic.py +0 -0
  206. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/git.py +0 -0
  207. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/image.py +0 -0
  208. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/interrupt.py +0 -0
  209. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/loaders.py +0 -0
  210. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/logging.py +0 -0
  211. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/memory.py +0 -0
  212. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/paths.py +0 -0
  213. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/platform.py +0 -0
  214. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/prime.py +0 -0
  215. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/retries.py +0 -0
  216. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/scope.py +0 -0
  217. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/verifiers/v1/utils/score.py +0 -0
  218. {verifiers-0.3.2.dev129 → verifiers-0.3.2.dev130}/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.dev129
3
+ Version: 0.3.2.dev130
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
@@ -121,9 +121,6 @@ class VerifierConfig(BaseModel):
121
121
  `None` on `HarborData` means shared — grade where the agent worked, which is still
122
122
  Harbor's default and every task that says nothing."""
123
123
 
124
- image: str | None = None
125
- """Pullable ref from `[verifier.environment].docker_image`. None keeps the task's
126
- own image, which is what Harbor's fresh copy of `[environment]` resolves to."""
127
124
  resources: TaskResources = TaskResources()
128
125
  workdir: str | None = None
129
126
  env: dict[str, str] = Field(default_factory=dict)
@@ -159,6 +156,9 @@ class HarborData(TaskData):
159
156
  healthcheck: dict | None = None
160
157
  mcp_servers: list[dict] = Field(default_factory=list)
161
158
  """Task-declared MCP servers, preserved for served-task reconstruction."""
159
+ verifier_image: str | None = None
160
+ """Pullable image for a separate verifier, containing the complete `/tests` suite.
161
+ None keeps the solver image and stages the task package's tests."""
162
162
  verifier_env: dict[str, str] = Field(default_factory=dict)
163
163
  """Raw [verifier.env] entries (literals or `${VAR}`/`${VAR:-default}` templates).
164
164
  Resolved against the host environment at scoring time, like `harbor run` — so a
@@ -297,7 +297,7 @@ class HarborTask(Task[HarborData, State, HarborTaskConfig]):
297
297
  # Harbor's dedicated verifier image owns the complete test suite and its
298
298
  # dependencies. Mixing it with packaged tests can retain obsolete helpers.
299
299
  stage = "test -f /tests/test.sh"
300
- if self.data.verifier is None or self.data.verifier.image is None:
300
+ if self.data.verifier is None or self.data.verifier_image is None:
301
301
  await runtime.write(
302
302
  "/tmp/tests.tgz", make_tar(Path(self.data.task_dir) / "tests")
303
303
  )
@@ -391,10 +391,14 @@ def verifier_box_data(data: HarborData) -> HarborData:
391
391
  return data.model_copy(
392
392
  update={
393
393
  "name": f"{data.name} (verifier)",
394
- "image": verifier.image if verifier.image is not None else data.image,
394
+ "image": data.verifier_image
395
+ if data.verifier_image is not None
396
+ else data.image,
395
397
  "workdir": data.workdir if fresh else verifier.workdir,
396
398
  "resources": data.resources if fresh else verifier.resources,
397
- "upload_environment": data.upload_environment if fresh else False,
399
+ "upload_environment": data.upload_environment
400
+ if fresh and data.verifier_image is None
401
+ else False,
398
402
  "env": dict(verifier.env),
399
403
  "healthcheck": verifier.healthcheck,
400
404
  "skills": [],
@@ -524,27 +528,41 @@ def resolve_image(
524
528
  image: str | None,
525
529
  require_image: bool,
526
530
  ignore_dockerfile: bool = False,
531
+ *,
532
+ verifier: bool = False,
527
533
  ) -> str | None:
528
534
  """Choose a pullable image without silently ignoring a declared Dockerfile.
529
535
 
530
- ``None`` tells the runtime to keep the harness image. That is the intended
531
- fallback for tasks with no environment, but would score a Dockerfile task in
532
- the wrong environment unless the user explicitly opts in.
536
+ ``None`` keeps the harness image for the solver, or the solver image for a
537
+ separate verifier. A declared verifier environment without an image implies
538
+ a build from tests/Dockerfile, even if that file is absent.
533
539
  """
534
540
  if image:
535
541
  return image
536
- if (task_dir / "environment" / "Dockerfile").exists():
542
+ section = "verifier.environment" if verifier else "environment"
543
+ dockerfile = "tests/Dockerfile" if verifier else "environment/Dockerfile"
544
+ if verifier or (task_dir / dockerfile).exists():
537
545
  if ignore_dockerfile:
546
+ if verifier:
547
+ logger.warning(
548
+ "%s: [%s] names no docker_image — grading in the agent's "
549
+ "image rather than building %s, so the verifier runs somewhere "
550
+ "the task never declared",
551
+ task_dir.name,
552
+ section,
553
+ dockerfile,
554
+ )
538
555
  return None
539
556
  raise ValueError(
540
- f"{task_dir.name}: environment is a Dockerfile, not a pullable "
541
- "[environment].docker_image — building Dockerfiles isn't supported, so this "
557
+ f"{task_dir.name}: [{section}] needs a pullable docker_image instead of "
558
+ f"building {dockerfile} — building Dockerfiles isn't supported, so this "
542
559
  "task can't run (it would otherwise score against the wrong default image). "
543
- "Pass --env.taskset.ignore-dockerfile to run it on the harness runtime's image instead."
560
+ "Pass --env.taskset.ignore-dockerfile to load it with a fallback image, "
561
+ "then override the task's image or verifier_image with a pre-built image."
544
562
  )
545
563
  if require_image:
546
564
  raise ValueError(
547
- f"{task_dir.name}: no [environment].docker_image and require_image=True"
565
+ f"{task_dir.name}: no [{section}].docker_image and require_image=True"
548
566
  )
549
567
  return None
550
568
 
@@ -559,10 +577,27 @@ def parse_task(task_dir: Path, idx: int, harbor_config: HarborConfig) -> HarborD
559
577
  parsed = harbor_task.config
560
578
  artifacts, hooks, verifier = parse_verifier_extras(task_dir, parsed, harbor_config)
561
579
  environment = parsed.environment
580
+ image = resolve_image(
581
+ task_dir,
582
+ environment.docker_image,
583
+ harbor_config.require_image,
584
+ harbor_config.ignore_dockerfile,
585
+ )
586
+ verifier_image = (
587
+ resolve_image(
588
+ task_dir,
589
+ parsed.verifier.environment.docker_image,
590
+ require_image=True,
591
+ ignore_dockerfile=harbor_config.ignore_dockerfile,
592
+ verifier=True,
593
+ )
594
+ if verifier is not None and parsed.verifier.environment is not None
595
+ else None
596
+ )
562
597
  environment_dir = task_dir / "environment"
563
598
  upload_environment = should_upload_environment_dir(
564
599
  environment_dir,
565
- docker_image=environment.docker_image,
600
+ docker_image=image,
566
601
  )
567
602
  network = parsed.agent.explicit_phase_policy() or environment.resolve_baseline()
568
603
  task, meta = parsed.task, parsed.metadata
@@ -590,12 +625,7 @@ def parse_task(task_dir: Path, idx: int, harbor_config: HarborConfig) -> HarborD
590
625
  name=harbor_task.name,
591
626
  description=task.description if task else None,
592
627
  prompt=harbor_task.instruction.strip(),
593
- image=resolve_image(
594
- task_dir,
595
- environment.docker_image,
596
- harbor_config.require_image,
597
- harbor_config.ignore_dockerfile,
598
- ),
628
+ image=image,
599
629
  workdir=environment.workdir,
600
630
  network_allow=(
601
631
  ["*"]
@@ -622,6 +652,7 @@ def parse_task(task_dir: Path, idx: int, harbor_config: HarborConfig) -> HarborD
622
652
  **environment.model_dump(
623
653
  include={"env", "healthcheck", "mcp_servers"}, mode="json"
624
654
  ),
655
+ verifier_image=verifier_image,
625
656
  verifier_env=parsed.verifier.env,
626
657
  artifacts=artifacts,
627
658
  collect=hooks,
@@ -719,23 +750,6 @@ def parse_verifier_environment(
719
750
  if environment is None: # unreachable while the mode is SEPARATE
720
751
  raise ValueError(f"{task_dir.name}: separate verifier resolved no environment")
721
752
  declared = parsed.verifier.environment is not None
722
-
723
- if declared and environment.docker_image is None:
724
- if not harbor_config.ignore_dockerfile:
725
- raise ValueError(
726
- f"{task_dir.name}: [verifier.environment] names no docker_image, so "
727
- "Harbor would build the verifier image from tests/Dockerfile. Verifiers "
728
- "pulls images and never builds them: build and push it yourself (e.g. "
729
- "`prime images push`) and set [verifier.environment].docker_image to the "
730
- "resulting ref, or pass --taskset.ignore-dockerfile to grade in the "
731
- "agent's image instead."
732
- )
733
- logger.warning(
734
- "%s: [verifier.environment] names no docker_image — grading in the agent's "
735
- "image rather than building tests/Dockerfile, so the verifier runs somewhere "
736
- "the task never declared",
737
- task_dir.name,
738
- )
739
753
  unsupported = [field for field in ("tpu",) if getattr(environment, field, None)]
740
754
  if environment.os != TaskOS.LINUX or unsupported:
741
755
  raise ValueError(
@@ -746,7 +760,6 @@ def parse_verifier_environment(
746
760
 
747
761
  network = parsed.verifier.explicit_phase_policy() or environment.resolve_baseline()
748
762
  return VerifierConfig(
749
- image=environment.docker_image if declared else None,
750
763
  # A declared environment states its own resources; what it leaves out is the
751
764
  # run's default, not the agent task's. A fresh copy is the task's environment,
752
765
  # so it keeps whatever the agent box resolved to.