verifiers 0.3.2.dev161__tar.gz → 0.3.2.dev163__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.dev161 → verifiers-0.3.2.dev163}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/pool.py +41 -38
  3. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/harbor/taskset.py +9 -4
  4. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/.gitignore +0 -0
  5. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/LICENSE +0 -0
  6. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/README.md +0 -0
  7. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/pyproject.toml +0 -0
  8. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/conftest.py +0 -0
  9. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  10. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/duet_v1.py +0 -0
  11. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  12. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  13. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  14. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  15. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/echo_v1.py +0 -0
  16. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/pyproject.toml +0 -0
  17. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  18. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_color_codeword_tasks.py +0 -0
  19. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_configs.py +0 -0
  20. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_e2e.py +0 -0
  21. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_envs.py +0 -0
  22. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_graph.py +0 -0
  23. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_judges.py +0 -0
  24. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_platform_run.py +0 -0
  25. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_scoring.py +0 -0
  26. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_serve_delta.py +0 -0
  27. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_taskset.py +0 -0
  28. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/tests/v1/test_trace.py +0 -0
  29. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/__init__.py +0 -0
  30. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/__init__.py +0 -0
  31. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/acp/__init__.py +0 -0
  32. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/acp/runner.py +0 -0
  33. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/agent.py +0 -0
  34. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/__init__.py +0 -0
  35. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  36. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/dashboard/base.py +0 -0
  37. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/dashboard/eval.py +0 -0
  38. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/dashboard/replay.py +0 -0
  39. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/dashboard/validate.py +0 -0
  40. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/debug.py +0 -0
  41. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/eval/__init__.py +0 -0
  42. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/eval/hint.py +0 -0
  43. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/eval/main.py +0 -0
  44. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/eval/resume.py +0 -0
  45. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/eval/runner.py +0 -0
  46. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/gepa.py +0 -0
  47. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/init.py +0 -0
  48. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/output.py +0 -0
  49. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/replay.py +0 -0
  50. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/resolve.py +0 -0
  51. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/resume.py +0 -0
  52. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/cli/validate.py +0 -0
  53. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/clients/__init__.py +0 -0
  54. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/clients/base.py +0 -0
  55. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/clients/client.py +0 -0
  56. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/clients/eval.py +0 -0
  57. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/clients/train.py +0 -0
  58. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/__init__.py +0 -0
  59. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/agent.py +0 -0
  60. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/__init__.py +0 -0
  61. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/debug.py +0 -0
  62. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/env.py +0 -0
  63. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/eval.py +0 -0
  64. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/init.py +0 -0
  65. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/replay.py +0 -0
  66. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/cli/validate.py +0 -0
  67. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/client.py +0 -0
  68. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/env.py +0 -0
  69. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/harness.py +0 -0
  70. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/judge.py +0 -0
  71. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/retries.py +0 -0
  72. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/runtime.py +0 -0
  73. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/select.py +0 -0
  74. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/serve.py +0 -0
  75. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/task.py +0 -0
  76. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/configs/taskset.py +0 -0
  77. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/dialects/__init__.py +0 -0
  78. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/dialects/anthropic.py +0 -0
  79. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/dialects/base.py +0 -0
  80. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/dialects/chat.py +0 -0
  81. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/dialects/responses.py +0 -0
  82. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/env.py +0 -0
  83. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/__init__.py +0 -0
  84. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  85. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  86. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  87. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/best_of_n/env.py +0 -0
  88. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  89. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  90. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  91. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  92. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/single_agent/env.py +0 -0
  93. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  94. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/envs/user_sim/env.py +0 -0
  95. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/episode.py +0 -0
  96. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/errors.py +0 -0
  97. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/gepa/__init__.py +0 -0
  98. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/gepa/adapter.py +0 -0
  99. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/gepa/config.py +0 -0
  100. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/gepa/dataset.py +0 -0
  101. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/gepa/reflection.py +0 -0
  102. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/gepa/runner.py +0 -0
  103. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/graph.py +0 -0
  104. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harness.py +0 -0
  105. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/__init__.py +0 -0
  106. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  107. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/bash/harness.py +0 -0
  108. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  109. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  110. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  111. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  112. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  113. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  114. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  115. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/codex/harness.py +0 -0
  116. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  117. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  118. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  119. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  120. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  121. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  122. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  123. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  124. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/node.py +0 -0
  125. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/null/__init__.py +0 -0
  126. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/null/harness.py +0 -0
  127. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  128. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  129. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  130. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  131. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/pi/harness.py +0 -0
  132. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  133. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  134. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  135. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  136. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  137. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  138. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  139. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  140. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  141. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/utils/core.py +0 -0
  142. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/utils/install.py +0 -0
  143. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/utils/launch.py +0 -0
  144. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  145. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/__init__.py +0 -0
  146. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/base.py +0 -0
  147. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/pool.py +0 -0
  148. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/server.py +0 -0
  149. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  150. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/tunnel/base.py +0 -0
  151. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/tunnel/custom.py +0 -0
  152. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/interception/tunnel/prime.py +0 -0
  153. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/judge.py +0 -0
  154. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/judges/__init__.py +0 -0
  155. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/judges/reference.py +0 -0
  156. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/judges/reference.txt +0 -0
  157. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/judges/rubric.py +0 -0
  158. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/judges/rubric.txt +0 -0
  159. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/mcp/__init__.py +0 -0
  160. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/mcp/launch.py +0 -0
  161. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/mcp/server.py +0 -0
  162. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/mcp/toolset.py +0 -0
  163. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/rollout.py +0 -0
  164. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/__init__.py +0 -0
  165. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/apptainer.py +0 -0
  166. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/base.py +0 -0
  167. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/container.py +0 -0
  168. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  169. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/docker/egress.py +0 -0
  170. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/limiters.py +0 -0
  171. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/modal.py +0 -0
  172. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/prime.py +0 -0
  173. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/runtimes/subprocess.py +0 -0
  174. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/semantic.py +0 -0
  175. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/__init__.py +0 -0
  176. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/client.py +0 -0
  177. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/delta.py +0 -0
  178. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/encoding.py +0 -0
  179. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/server.py +0 -0
  180. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/serve/types.py +0 -0
  181. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/session.py +0 -0
  182. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/state.py +0 -0
  183. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/task.py +0 -0
  184. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/taskset.py +0 -0
  185. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/__init__.py +0 -0
  186. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  187. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/harbor/compose.py +0 -0
  188. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/harbor/env.py +0 -0
  189. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  190. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  191. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  192. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  193. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  194. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  195. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  196. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  197. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  198. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  199. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/trace.py +0 -0
  200. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/types.py +0 -0
  201. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/__init__.py +0 -0
  202. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/aio.py +0 -0
  203. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/artifacts.py +0 -0
  204. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/compile.py +0 -0
  205. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/decorators.py +0 -0
  206. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/format.py +0 -0
  207. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/generic.py +0 -0
  208. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/git.py +0 -0
  209. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/image.py +0 -0
  210. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/interrupt.py +0 -0
  211. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/loaders.py +0 -0
  212. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/logging.py +0 -0
  213. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/memory.py +0 -0
  214. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/paths.py +0 -0
  215. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/platform.py +0 -0
  216. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/prime.py +0 -0
  217. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/retries.py +0 -0
  218. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/scope.py +0 -0
  219. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/score.py +0 -0
  220. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/verifiers/v1/utils/trace_store.py +0 -0
  221. {verifiers-0.3.2.dev161 → verifiers-0.3.2.dev163}/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.dev161
3
+ Version: 0.3.2.dev163
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
@@ -185,57 +185,60 @@ class EnvServerPool:
185
185
  while True:
186
186
  events = dict(await self._poller.poll())
187
187
  if self.frontend in events:
188
- (
189
- client_id,
190
- request_id,
191
- method,
192
- payload,
193
- ) = await self.frontend.recv_multipart()
194
- if method == b"health":
195
- await self.frontend.send_multipart(
196
- [client_id, request_id, b"reply", _HEALTH]
188
+ frames = await self.frontend.recv_multipart()
189
+ # Drop malformed requests without skipping ready worker replies.
190
+ if len(frames) != 4:
191
+ logger.warning(
192
+ "frontend: dropping malformed request (%d frames, expected 4)",
193
+ len(frames),
197
194
  )
198
- elif method == b"cancel":
199
- # Route the cancel to the worker holding the target run;
200
- # an unknown/finished target (or an unparseable payload
201
- # — one bad frame must not tear down the broker) is
202
- # answered inline
203
- try:
204
- body = msgpack.unpackb(payload, raw=False)
205
- target = str(body.get("request_id", "")).encode()
206
- except Exception: # noqa: BLE001 - one bad frame must not kill the broker
207
- target = b""
208
- target_entry = pending.get(target)
209
- if target_entry is None:
195
+ else:
196
+ client_id, request_id, method, payload = frames
197
+ if method == b"health":
210
198
  await self.frontend.send_multipart(
211
- [client_id, request_id, b"reply", _CANCEL_MISS]
199
+ [client_id, request_id, b"reply", _HEALTH]
212
200
  )
201
+ elif method == b"cancel":
202
+ # Route the cancel to the worker holding the target run;
203
+ # an unknown/finished target (or an unparseable payload
204
+ # — one bad frame must not tear down the broker) is
205
+ # answered inline
206
+ try:
207
+ body = msgpack.unpackb(payload, raw=False)
208
+ target = str(body.get("request_id", "")).encode()
209
+ except Exception: # noqa: BLE001 - one bad frame must not kill the broker
210
+ target = b""
211
+ target_entry = pending.get(target)
212
+ if target_entry is None:
213
+ await self.frontend.send_multipart(
214
+ [client_id, request_id, b"reply", _CANCEL_MISS]
215
+ )
216
+ else:
217
+ worker = target_entry["worker"]
218
+ worker["active"] += 1
219
+ pending[request_id] = {
220
+ "client_id": client_id,
221
+ "worker": worker,
222
+ }
223
+ in_flight += 1
224
+ await worker["dealer"].send_multipart(
225
+ [request_id, method, payload]
226
+ )
213
227
  else:
214
- worker = target_entry["worker"]
228
+ worker = min(self.workers, key=lambda w: w["active"])
215
229
  worker["active"] += 1
216
230
  pending[request_id] = {
217
231
  "client_id": client_id,
218
232
  "worker": worker,
219
233
  }
220
234
  in_flight += 1
235
+ # forward without client_id — the DEALER identity is the worker's
236
+ # `client_id`; we hold the real one in `pending`.
221
237
  await worker["dealer"].send_multipart(
222
238
  [request_id, method, payload]
223
239
  )
224
- else:
225
- worker = min(self.workers, key=lambda w: w["active"])
226
- worker["active"] += 1
227
- pending[request_id] = {
228
- "client_id": client_id,
229
- "worker": worker,
230
- }
231
- in_flight += 1
232
- # forward without client_id — the DEALER identity is the worker's
233
- # `client_id`; we hold the real one in `pending`.
234
- await worker["dealer"].send_multipart(
235
- [request_id, method, payload]
236
- )
237
- if self.elastic:
238
- self._maybe_scale_up(in_flight)
240
+ if self.elastic:
241
+ self._maybe_scale_up(in_flight)
239
242
  for w in self.workers:
240
243
  if w["dealer"] in events:
241
244
  request_id, kind, data = await w["dealer"].recv_multipart(
@@ -372,7 +372,8 @@ class HarborTask(Task[HarborData, State, HarborTaskConfig]):
372
372
  ) -> float | dict[str, float]:
373
373
  # By absolute path, in the runtime's configured workdir: Harbor execs the
374
374
  # script the same way, and scripts do grade the agent's work at `$PWD`.
375
- await runtime.run(
375
+ # The reward file is authoritative even when the script exits nonzero.
376
+ result = await runtime.run(
376
377
  ["bash", "/tests/test.sh"], resolve_env(self.data.verifier_env)
377
378
  )
378
379
  scores = await self.read_reward_json(runtime)
@@ -393,9 +394,13 @@ class HarborTask(Task[HarborData, State, HarborTaskConfig]):
393
394
  .decode()
394
395
  .strip()
395
396
  )
396
- return float(reward or 0)
397
- except (SandboxError, OSError, ValueError):
398
- return 0.0
397
+ return REWARD_JSON_ADAPTER.validate_python(float(reward))
398
+ except (SandboxError, OSError, ValueError) as exc:
399
+ raise TaskError(
400
+ "Harbor verifier produced no valid reward.json or reward.txt "
401
+ f"(exit {result.exit_code}): "
402
+ f"{(result.stderr or result.stdout).strip()[-500:]}"
403
+ ) from exc
399
404
 
400
405
  async def read_reward_json(
401
406
  self, runtime: Runtime