verifiers 0.3.2.dev117__tar.gz → 0.3.2.dev119__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.dev117 → verifiers-0.3.2.dev119}/PKG-INFO +1 -1
  2. verifiers-0.3.2.dev119/verifiers/__init__.py +9 -0
  3. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/mcp/launch.py +113 -59
  4. verifiers-0.3.2.dev117/verifiers/__init__.py +0 -14
  5. verifiers-0.3.2.dev117/verifiers/cli/commands/init.py +0 -6
  6. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/.gitignore +0 -0
  7. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/LICENSE +0 -0
  8. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/README.md +0 -0
  9. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/pyproject.toml +0 -0
  10. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/conftest.py +0 -0
  11. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  12. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/duet_v1.py +0 -0
  13. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  14. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  15. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  16. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  17. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/echo_v1.py +0 -0
  18. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/pyproject.toml +0 -0
  19. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  20. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_color_codeword_tasks.py +0 -0
  21. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_configs.py +0 -0
  22. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_e2e.py +0 -0
  23. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_envs.py +0 -0
  24. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_graph.py +0 -0
  25. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_judges.py +0 -0
  26. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_platform_run.py +0 -0
  27. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_scoring.py +0 -0
  28. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_serve_delta.py +0 -0
  29. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_taskset.py +0 -0
  30. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/tests/v1/test_trace.py +0 -0
  31. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/__init__.py +0 -0
  32. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/acp/__init__.py +0 -0
  33. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/acp/runner.py +0 -0
  34. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/agent.py +0 -0
  35. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/__init__.py +0 -0
  36. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  37. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/dashboard/base.py +0 -0
  38. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/dashboard/eval.py +0 -0
  39. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/dashboard/replay.py +0 -0
  40. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/dashboard/validate.py +0 -0
  41. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/debug.py +0 -0
  42. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/eval/__init__.py +0 -0
  43. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/eval/hint.py +0 -0
  44. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/eval/main.py +0 -0
  45. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/eval/resume.py +0 -0
  46. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/eval/runner.py +0 -0
  47. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/gepa.py +0 -0
  48. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/init.py +0 -0
  49. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/output.py +0 -0
  50. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/replay.py +0 -0
  51. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/resolve.py +0 -0
  52. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/resume.py +0 -0
  53. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/cli/validate.py +0 -0
  54. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/clients/__init__.py +0 -0
  55. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/clients/base.py +0 -0
  56. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/clients/client.py +0 -0
  57. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/clients/eval.py +0 -0
  58. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/clients/train.py +0 -0
  59. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/__init__.py +0 -0
  60. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/agent.py +0 -0
  61. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/__init__.py +0 -0
  62. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/debug.py +0 -0
  63. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/env.py +0 -0
  64. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/eval.py +0 -0
  65. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/init.py +0 -0
  66. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/replay.py +0 -0
  67. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/cli/validate.py +0 -0
  68. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/client.py +0 -0
  69. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/env.py +0 -0
  70. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/harness.py +0 -0
  71. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/judge.py +0 -0
  72. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/retries.py +0 -0
  73. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/runtime.py +0 -0
  74. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/serve.py +0 -0
  75. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/task.py +0 -0
  76. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/configs/taskset.py +0 -0
  77. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/dialects/__init__.py +0 -0
  78. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/dialects/anthropic.py +0 -0
  79. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/dialects/base.py +0 -0
  80. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/dialects/chat.py +0 -0
  81. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/dialects/responses.py +0 -0
  82. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/env.py +0 -0
  83. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/__init__.py +0 -0
  84. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  85. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  86. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  87. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/best_of_n/env.py +0 -0
  88. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  89. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  90. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  91. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  92. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/single_agent/env.py +0 -0
  93. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  94. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/envs/user_sim/env.py +0 -0
  95. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/episode.py +0 -0
  96. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/errors.py +0 -0
  97. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/gepa/__init__.py +0 -0
  98. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/gepa/adapter.py +0 -0
  99. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/gepa/config.py +0 -0
  100. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/gepa/dataset.py +0 -0
  101. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/gepa/reflection.py +0 -0
  102. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/gepa/runner.py +0 -0
  103. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/graph.py +0 -0
  104. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harness.py +0 -0
  105. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/__init__.py +0 -0
  106. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  107. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/bash/harness.py +0 -0
  108. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  109. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  110. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  111. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  112. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  113. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  114. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/codex/harness.py +0 -0
  115. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  116. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  117. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  118. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  119. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  120. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  121. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  122. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  123. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/node.py +0 -0
  124. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/null/__init__.py +0 -0
  125. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/null/harness.py +0 -0
  126. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  127. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  128. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  129. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/pi/harness.py +0 -0
  130. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  131. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  132. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  133. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  134. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  135. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  136. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  137. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  138. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  139. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/utils/core.py +0 -0
  140. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/utils/install.py +0 -0
  141. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/utils/launch.py +0 -0
  142. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  143. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/__init__.py +0 -0
  144. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/base.py +0 -0
  145. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/pool.py +0 -0
  146. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/server.py +0 -0
  147. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/tool.py +0 -0
  148. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  149. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/tunnel/base.py +0 -0
  150. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/tunnel/custom.py +0 -0
  151. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/interception/tunnel/prime.py +0 -0
  152. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/judge.py +0 -0
  153. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/judges/__init__.py +0 -0
  154. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/judges/reference.py +0 -0
  155. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/judges/reference.txt +0 -0
  156. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/judges/rubric.py +0 -0
  157. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/judges/rubric.txt +0 -0
  158. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/mcp/__init__.py +0 -0
  159. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/mcp/server.py +0 -0
  160. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/mcp/toolset.py +0 -0
  161. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/rollout.py +0 -0
  162. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/__init__.py +0 -0
  163. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/apptainer.py +0 -0
  164. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/base.py +0 -0
  165. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/container.py +0 -0
  166. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  167. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/docker/egress.py +0 -0
  168. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/limiters.py +0 -0
  169. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/modal.py +0 -0
  170. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/prime.py +0 -0
  171. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/runtimes/subprocess.py +0 -0
  172. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/semantic.py +0 -0
  173. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/__init__.py +0 -0
  174. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/client.py +0 -0
  175. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/delta.py +0 -0
  176. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/encoding.py +0 -0
  177. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/pool.py +0 -0
  178. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/server.py +0 -0
  179. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/serve/types.py +0 -0
  180. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/session.py +0 -0
  181. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/state.py +0 -0
  182. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/task.py +0 -0
  183. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/taskset.py +0 -0
  184. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/__init__.py +0 -0
  185. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  186. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/harbor/env.py +0 -0
  187. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  188. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  189. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  190. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  191. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  192. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  193. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  194. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  195. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  196. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  197. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  198. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  199. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  200. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  201. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/trace.py +0 -0
  202. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/types.py +0 -0
  203. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/__init__.py +0 -0
  204. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/aio.py +0 -0
  205. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/artifacts.py +0 -0
  206. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/compile.py +0 -0
  207. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/decorators.py +0 -0
  208. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/format.py +0 -0
  209. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/generic.py +0 -0
  210. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/git.py +0 -0
  211. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/image.py +0 -0
  212. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/interrupt.py +0 -0
  213. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/loaders.py +0 -0
  214. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/logging.py +0 -0
  215. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/memory.py +0 -0
  216. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/paths.py +0 -0
  217. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/platform.py +0 -0
  218. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/prime.py +0 -0
  219. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/retries.py +0 -0
  220. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/verifiers/v1/utils/score.py +0 -0
  221. {verifiers-0.3.2.dev117 → verifiers-0.3.2.dev119}/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.dev117
3
+ Version: 0.3.2.dev119
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
@@ -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"
@@ -5,13 +5,16 @@ import contextlib
5
5
  import logging
6
6
  import secrets
7
7
  import shlex
8
+ import shutil
8
9
  import subprocess
9
10
  import sys
11
+ import sysconfig
10
12
  import tempfile
11
13
  import uuid
12
14
  from collections.abc import AsyncIterator
13
15
  from dataclasses import dataclass, field
14
16
  from functools import cache
17
+ from importlib.metadata import PathDistribution, distribution, packages_distributions
15
18
  from pathlib import Path, PurePosixPath
16
19
  from typing import TYPE_CHECKING
17
20
  from urllib.parse import parse_qsl, urlencode, urlsplit, urlunsplit
@@ -39,11 +42,11 @@ if TYPE_CHECKING:
39
42
 
40
43
  logger = logging.getLogger(__name__)
41
44
 
42
- _SDIST_BUILD_TIMEOUT_SECONDS = 300
45
+ _PACKAGE_BUILD_TIMEOUT_SECONDS = 300
43
46
 
44
47
 
45
48
  @dataclass
46
- class _SdistBuildState:
49
+ class _PackageBuildState:
47
50
  lock: asyncio.Lock = field(default_factory=asyncio.Lock)
48
51
  build: asyncio.Task[tuple[str, bytes]] | None = None
49
52
  users: int = 0
@@ -51,7 +54,9 @@ class _SdistBuildState:
51
54
 
52
55
  # Coordination and caching are process-local. Spawned env-server workers each
53
56
  # build once; within an event loop, concurrent rollouts share the completed artifact.
54
- _SDIST_BUILD_STATES: dict[tuple[Path, asyncio.AbstractEventLoop], _SdistBuildState] = {}
57
+ _PACKAGE_BUILD_STATES: dict[
58
+ tuple[Path, asyncio.AbstractEventLoop], _PackageBuildState
59
+ ] = {}
55
60
 
56
61
  # Any HTTP response, including MCP's 406 to a bare GET, proves the server is listening.
57
62
  _PROBE = """
@@ -67,33 +72,100 @@ sys.exit(1)
67
72
  """
68
73
 
69
74
 
70
- def _source_dir(cls: type) -> str | None:
75
+ @cache
76
+ def _package_dir(cls: type) -> str:
71
77
  module = sys.modules.get(cls.__module__)
72
78
  path = getattr(module, "__file__", None)
73
- if not path:
74
- return None
75
- for parent in Path(path).resolve().parents:
76
- if (parent / "pyproject.toml").exists():
77
- return str(parent)
78
- return None
79
+ if path:
80
+ path = Path(path).resolve()
81
+ # An installed wheel owns its recorded files, even when its venv lives
82
+ # inside an unrelated source checkout with a pyproject.toml above it.
83
+ for name in packages_distributions().get(cls.__module__.split(".")[0], []):
84
+ files = distribution(name).files or []
85
+ if any(Path(file.locate()).resolve() == path for file in files):
86
+ for file in files:
87
+ if file.name == "WHEEL" and file.parent.suffix == ".dist-info":
88
+ return str(Path(file.locate()).parent)
89
+ for parent in path.parents:
90
+ if parent.name in {"site-packages", "dist-packages"}:
91
+ break
92
+ if (parent / "pyproject.toml").exists():
93
+ return str(parent)
94
+ raise ToolsetError(
95
+ f"cannot package {cls.__module__!r} for a sandbox: "
96
+ "no installed wheel or source project found"
97
+ )
79
98
 
80
99
 
81
100
  @cache
82
- def _build_sdist(src: Path) -> tuple[str, bytes]:
83
- """Build a project's source distribution through its declared PEP 517 backend."""
84
- with tempfile.TemporaryDirectory(prefix="vf-sdist-") as directory:
101
+ def _build_package(src: Path) -> tuple[str, bytes]:
102
+ """Transfer installed wheel files or build a source project's PEP 517 sdist."""
103
+ with tempfile.TemporaryDirectory(prefix="vf-package-") as directory:
85
104
  out = Path(directory)
86
- command = [
87
- "uv",
88
- "build",
89
- "--sdist",
90
- "--no-create-gitignore",
91
- "--color",
92
- "never",
93
- "--out-dir",
94
- str(out),
95
- ".",
96
- ]
105
+ if src.suffix == ".dist-info":
106
+ dist = PathDistribution(src)
107
+ files = dist.files
108
+ if not files:
109
+ raise ToolsetError(f"cannot package {src}: missing RECORD")
110
+ package = out / "package"
111
+ scripts = {
112
+ entry.name
113
+ for entry in dist.entry_points
114
+ if entry.group in {"console_scripts", "gui_scripts"}
115
+ }
116
+ for file in files:
117
+ # Installers regenerate entry-point scripts for the target Python.
118
+ if ".." in file.parts or file.is_absolute():
119
+ if (
120
+ file.name in scripts
121
+ and Path(file.locate()).parent.resolve()
122
+ == Path(sysconfig.get_path("scripts")).resolve()
123
+ ):
124
+ continue
125
+ raise ToolsetError(
126
+ f"cannot package {src}: installed file outside site-packages: {file}"
127
+ )
128
+ if file.suffix == ".pyc" or (
129
+ file.parent.name == src.name
130
+ and file.name
131
+ in {
132
+ "RECORD",
133
+ "RECORD.jws",
134
+ "RECORD.p7s",
135
+ "INSTALLER",
136
+ "REQUESTED",
137
+ "direct_url.json",
138
+ "uv_cache.json",
139
+ }
140
+ ):
141
+ continue
142
+ target = package / file
143
+ target.parent.mkdir(parents=True, exist_ok=True)
144
+ shutil.copy2(file.locate(), target)
145
+ command = [
146
+ "uv",
147
+ "tool",
148
+ "run",
149
+ "--from",
150
+ "wheel==0.48.0",
151
+ "wheel",
152
+ "pack",
153
+ "--dest-dir",
154
+ str(out),
155
+ str(package),
156
+ ]
157
+ else:
158
+ command = [
159
+ "uv",
160
+ "build",
161
+ "--sdist",
162
+ "--no-create-gitignore",
163
+ "--color",
164
+ "never",
165
+ "--out-dir",
166
+ str(out),
167
+ ".",
168
+ ]
97
169
  try:
98
170
  # Run from the source root so uv discovers this project's workspace,
99
171
  # uv.toml, indexes, constraints, and Python configuration rather than
@@ -104,49 +176,49 @@ def _build_sdist(src: Path) -> tuple[str, bytes]:
104
176
  capture_output=True,
105
177
  text=True,
106
178
  check=False,
107
- timeout=_SDIST_BUILD_TIMEOUT_SECONDS,
179
+ timeout=_PACKAGE_BUILD_TIMEOUT_SECONDS,
108
180
  )
109
181
  except FileNotFoundError as e:
110
182
  raise ToolsetError(
111
- f"cannot build source distribution for {src}: uv is not installed"
183
+ f"cannot build package for {src}: uv is not installed"
112
184
  ) from e
113
185
  except subprocess.TimeoutExpired as e:
114
186
  raise ToolsetError(
115
- "source distribution build timed out after "
116
- f"{_SDIST_BUILD_TIMEOUT_SECONDS}s for {src}"
187
+ "package build timed out after "
188
+ f"{_PACKAGE_BUILD_TIMEOUT_SECONDS}s for {src}"
117
189
  ) from e
118
190
  if result.returncode != 0:
119
191
  detail = "\n".join(
120
192
  part.strip() for part in (result.stdout, result.stderr) if part.strip()
121
193
  )
122
- raise ToolsetError(
123
- f"source distribution build failed for {src}: {detail[-2000:]}"
124
- )
194
+ raise ToolsetError(f"package build failed for {src}: {detail[-2000:]}")
125
195
  artifacts = [path for path in out.iterdir() if path.is_file()]
126
196
  if len(artifacts) != 1:
127
197
  names = ", ".join(sorted(path.name for path in artifacts)) or "none"
128
198
  raise ToolsetError(
129
- f"build backend for {src} produced {len(artifacts)} source distributions: {names}"
199
+ f"package build for {src} produced {len(artifacts)} distributions: {names}"
130
200
  )
131
201
  artifact = artifacts[0]
132
202
  return artifact.name, artifact.read_bytes()
133
203
 
134
204
 
135
- async def _cached_sdist(src: Path) -> tuple[str, bytes]:
205
+ async def _cached_package(src: Path) -> tuple[str, bytes]:
136
206
  """Build once per source without parking waiters in the thread pool."""
137
207
  src = src.resolve()
138
208
  key = (src, asyncio.get_running_loop())
139
- state = _SDIST_BUILD_STATES.get(key)
209
+ state = _PACKAGE_BUILD_STATES.get(key)
140
210
  if state is None:
141
- state = _SdistBuildState()
142
- _SDIST_BUILD_STATES[key] = state
211
+ state = _PackageBuildState()
212
+ _PACKAGE_BUILD_STATES[key] = state
143
213
  state.users += 1
144
214
  try:
145
215
  async with state.lock:
146
216
  # Coordinate before entering the default executor so concurrent
147
217
  # same-source waiters do not occupy executor threads.
148
218
  if state.build is None:
149
- state.build = asyncio.create_task(asyncio.to_thread(_build_sdist, src))
219
+ state.build = asyncio.create_task(
220
+ asyncio.to_thread(_build_package, src)
221
+ )
150
222
  build = state.build
151
223
  try:
152
224
  return await asyncio.shield(build)
@@ -158,29 +230,11 @@ async def _cached_sdist(src: Path) -> tuple[str, bytes]:
158
230
  raise
159
231
  finally:
160
232
  state.users -= 1
161
- if state.users == 0 and _SDIST_BUILD_STATES.get(key) is state:
162
- del _SDIST_BUILD_STATES[key]
163
-
164
-
165
- def _verifiers_root() -> Path:
166
- import verifiers
167
-
168
- root = Path(verifiers.__file__).resolve().parent.parent
169
- if not (root / "pyproject.toml").exists():
170
- raise ToolsetError(
171
- "verifiers is not a source checkout (no pyproject above the package), so it can't be "
172
- "uploaded to a sandbox; run sandboxed servers from a verifiers source install"
173
- )
174
- return root
233
+ if state.users == 0 and _PACKAGE_BUILD_STATES.get(key) is state:
234
+ del _PACKAGE_BUILD_STATES[key]
175
235
 
176
236
 
177
237
  async def _install_in_sandbox(server: ServerBase, runtime: Runtime) -> str:
178
- source_dir = _source_dir(type(server))
179
- if source_dir is None:
180
- raise ToolsetError(
181
- f"server {server.server_name!r} runs in a {runtime.type} runtime but its module is not "
182
- "a local package (no pyproject) — sandbox launch needs a local env package to upload"
183
- )
184
238
  # Prime VMs mount /tmp as a small tmpfs, while the runtime workdir lives on
185
239
  # the VM's root disk. Keep source, build scratch space, and uv's cache on the
186
240
  # durable runtime filesystem so ordinary dependency installs cannot exhaust
@@ -194,7 +248,7 @@ async def _install_in_sandbox(server: ServerBase, runtime: Runtime) -> str:
194
248
  # Colocated servers and borrowed views install into one physical environment.
195
249
  # Serialize its mutations and only remember sources after a successful install.
196
250
  async with runtime._mcp_install_lock:
197
- sources = dict.fromkeys((str(_verifiers_root()), source_dir))
251
+ sources = dict.fromkeys((_package_dir(ServerBase), _package_dir(type(server))))
198
252
  pending = [source for source in sources if source not in runtime._mcp_sources]
199
253
  if not pending:
200
254
  return f"{venv}/bin/python"
@@ -208,7 +262,7 @@ async def _install_in_sandbox(server: ServerBase, runtime: Runtime) -> str:
208
262
  setup += f"{_ENSURE_UV}; uv venv --allow-existing {venv_q}; "
209
263
  # Drain remote writes and installs before cancellation releases the lock.
210
264
  for source in pending:
211
- name, data = await _cached_sdist(Path(source))
265
+ name, data = await _cached_package(Path(source))
212
266
  remote = f"{root}/{name}"
213
267
  await run_shielded(runtime.write(remote, data))
214
268
  setup += f"uv pip install --python {venv_q} {shlex.quote(remote)}; "
@@ -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()