verifiers 0.3.2.dev157__tar.gz → 0.3.2.dev158__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 (222) hide show
  1. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/__init__.py +2 -2
  3. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/env.py +5 -30
  4. verifiers-0.3.2.dev158/verifiers/v1/utils/generic.py +105 -0
  5. verifiers-0.3.2.dev157/verifiers/v1/utils/generic.py +0 -53
  6. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/.gitignore +0 -0
  7. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/LICENSE +0 -0
  8. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/README.md +0 -0
  9. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/pyproject.toml +0 -0
  10. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/conftest.py +0 -0
  11. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  12. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/duet_v1.py +0 -0
  13. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  14. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  15. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  16. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  17. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/echo_v1.py +0 -0
  18. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/pyproject.toml +0 -0
  19. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  20. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_color_codeword_tasks.py +0 -0
  21. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_configs.py +0 -0
  22. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_e2e.py +0 -0
  23. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_envs.py +0 -0
  24. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_graph.py +0 -0
  25. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_judges.py +0 -0
  26. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_platform_run.py +0 -0
  27. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_scoring.py +0 -0
  28. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_serve_delta.py +0 -0
  29. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_taskset.py +0 -0
  30. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/tests/v1/test_trace.py +0 -0
  31. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/__init__.py +0 -0
  32. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/acp/__init__.py +0 -0
  33. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/acp/runner.py +0 -0
  34. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/agent.py +0 -0
  35. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/__init__.py +0 -0
  36. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  37. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/dashboard/base.py +0 -0
  38. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/dashboard/eval.py +0 -0
  39. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/dashboard/replay.py +0 -0
  40. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/dashboard/validate.py +0 -0
  41. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/debug.py +0 -0
  42. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/eval/__init__.py +0 -0
  43. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/eval/hint.py +0 -0
  44. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/eval/main.py +0 -0
  45. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/eval/resume.py +0 -0
  46. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/eval/runner.py +0 -0
  47. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/gepa.py +0 -0
  48. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/init.py +0 -0
  49. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/output.py +0 -0
  50. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/replay.py +0 -0
  51. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/resolve.py +0 -0
  52. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/resume.py +0 -0
  53. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/cli/validate.py +0 -0
  54. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/clients/__init__.py +0 -0
  55. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/clients/base.py +0 -0
  56. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/clients/client.py +0 -0
  57. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/clients/eval.py +0 -0
  58. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/clients/train.py +0 -0
  59. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/__init__.py +0 -0
  60. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/agent.py +0 -0
  61. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/__init__.py +0 -0
  62. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/debug.py +0 -0
  63. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/eval.py +0 -0
  64. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/init.py +0 -0
  65. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/replay.py +0 -0
  66. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/cli/validate.py +0 -0
  67. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/client.py +0 -0
  68. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/env.py +0 -0
  69. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/harness.py +0 -0
  70. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/judge.py +0 -0
  71. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/retries.py +0 -0
  72. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/runtime.py +0 -0
  73. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/select.py +0 -0
  74. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/serve.py +0 -0
  75. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/task.py +0 -0
  76. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/configs/taskset.py +0 -0
  77. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/dialects/__init__.py +0 -0
  78. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/dialects/anthropic.py +0 -0
  79. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/dialects/base.py +0 -0
  80. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/dialects/chat.py +0 -0
  81. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/dialects/responses.py +0 -0
  82. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/env.py +0 -0
  83. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/__init__.py +0 -0
  84. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  85. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  86. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  87. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/best_of_n/env.py +0 -0
  88. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  89. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  90. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  91. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  92. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/single_agent/env.py +0 -0
  93. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  94. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/envs/user_sim/env.py +0 -0
  95. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/episode.py +0 -0
  96. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/errors.py +0 -0
  97. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/gepa/__init__.py +0 -0
  98. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/gepa/adapter.py +0 -0
  99. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/gepa/config.py +0 -0
  100. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/gepa/dataset.py +0 -0
  101. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/gepa/reflection.py +0 -0
  102. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/gepa/runner.py +0 -0
  103. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/graph.py +0 -0
  104. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harness.py +0 -0
  105. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/__init__.py +0 -0
  106. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  107. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/bash/harness.py +0 -0
  108. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  109. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  110. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  111. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  112. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  113. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  114. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  115. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/codex/harness.py +0 -0
  116. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  117. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  118. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  119. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  120. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  121. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  122. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  123. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  124. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/node.py +0 -0
  125. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/null/__init__.py +0 -0
  126. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/null/harness.py +0 -0
  127. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  128. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  129. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  130. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  131. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/pi/harness.py +0 -0
  132. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  133. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  134. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  135. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  136. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  137. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  138. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  139. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  140. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  141. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/utils/core.py +0 -0
  142. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/utils/install.py +0 -0
  143. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/utils/launch.py +0 -0
  144. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  145. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/__init__.py +0 -0
  146. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/base.py +0 -0
  147. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/pool.py +0 -0
  148. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/server.py +0 -0
  149. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  150. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/tunnel/base.py +0 -0
  151. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/tunnel/custom.py +0 -0
  152. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/interception/tunnel/prime.py +0 -0
  153. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/judge.py +0 -0
  154. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/judges/__init__.py +0 -0
  155. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/judges/reference.py +0 -0
  156. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/judges/reference.txt +0 -0
  157. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/judges/rubric.py +0 -0
  158. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/judges/rubric.txt +0 -0
  159. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/mcp/__init__.py +0 -0
  160. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/mcp/launch.py +0 -0
  161. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/mcp/server.py +0 -0
  162. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/mcp/toolset.py +0 -0
  163. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/rollout.py +0 -0
  164. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/__init__.py +0 -0
  165. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/apptainer.py +0 -0
  166. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/base.py +0 -0
  167. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/container.py +0 -0
  168. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  169. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/docker/egress.py +0 -0
  170. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/limiters.py +0 -0
  171. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/modal.py +0 -0
  172. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/prime.py +0 -0
  173. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/runtimes/subprocess.py +0 -0
  174. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/semantic.py +0 -0
  175. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/__init__.py +0 -0
  176. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/client.py +0 -0
  177. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/delta.py +0 -0
  178. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/encoding.py +0 -0
  179. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/pool.py +0 -0
  180. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/server.py +0 -0
  181. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/serve/types.py +0 -0
  182. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/session.py +0 -0
  183. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/state.py +0 -0
  184. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/task.py +0 -0
  185. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/taskset.py +0 -0
  186. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/__init__.py +0 -0
  187. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  188. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/harbor/compose.py +0 -0
  189. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/harbor/env.py +0 -0
  190. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  191. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  192. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  193. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  194. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  195. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  196. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  197. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  198. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  199. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  200. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  201. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/trace.py +0 -0
  202. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/types.py +0 -0
  203. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/__init__.py +0 -0
  204. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/aio.py +0 -0
  205. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/artifacts.py +0 -0
  206. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/compile.py +0 -0
  207. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/decorators.py +0 -0
  208. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/format.py +0 -0
  209. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/git.py +0 -0
  210. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/image.py +0 -0
  211. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/interrupt.py +0 -0
  212. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/loaders.py +0 -0
  213. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/logging.py +0 -0
  214. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/memory.py +0 -0
  215. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/paths.py +0 -0
  216. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/platform.py +0 -0
  217. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/prime.py +0 -0
  218. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/retries.py +0 -0
  219. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/scope.py +0 -0
  220. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/score.py +0 -0
  221. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/verifiers/v1/utils/trace_store.py +0 -0
  222. {verifiers-0.3.2.dev157 → verifiers-0.3.2.dev158}/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.dev157
3
+ Version: 0.3.2.dev158
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
@@ -15,7 +15,6 @@ from verifiers.v1.clients import (
15
15
  )
16
16
  from verifiers.v1.configs.agent import AgentConfig
17
17
  from verifiers.v1.configs.cli.env import (
18
- merge_env_defaults,
19
18
  narrowed_env_annotation,
20
19
  resolve_env_field,
21
20
  )
@@ -153,6 +152,7 @@ from verifiers.v1.utils.decorators import (
153
152
  stop,
154
153
  tool,
155
154
  )
155
+ from verifiers.v1.utils.generic import merge_defaults
156
156
  from verifiers.v1.utils.git import (
157
157
  PATCH_CAP_BYTES as PATCH_CAP_BYTES,
158
158
  )
@@ -321,7 +321,7 @@ __all__ = [ # noqa: RUF022 - grouped by public API area
321
321
  "SharedEnvConfig",
322
322
  "ServeConfig",
323
323
  "resolve_env_field",
324
- "merge_env_defaults",
324
+ "merge_defaults",
325
325
  "narrowed_env_annotation",
326
326
  "SingleAgentEnvConfig",
327
327
  "AgentConfig",
@@ -1,5 +1,6 @@
1
1
  """Run-config plumbing around the `[env]` block: narrowing the `env` field of
2
- every config that owns one, and layering shared env defaults under it.
2
+ every config that owns one. `merge_defaults` (`utils/generic.py`) layers shared env
3
+ defaults under it.
3
4
 
4
5
  A run composes the blocks it needs — `[env]` (what runs, `configs/env.py`),
5
6
  `[serve]` (how it's hosted, `configs/serve.py`) — plus its own fields. Nothing here is a base class: the eval
@@ -10,11 +11,11 @@ single_agent_env_config)`. The `SerializeAsAny` is load-bearing: pydantic serial
10
11
  by declared type, so a plain `EnvConfig` silently drops a narrowed subclass's agents
11
12
  and knobs from `model_dump()` — the env-server wire's payload."""
12
13
 
13
- from pydantic import BaseModel, ValidationError
14
+ from pydantic import ValidationError
14
15
  from pydantic_config import BaseConfig
15
16
 
16
- from verifiers.v1.configs.env import EnvConfig, SharedEnvConfig
17
- from verifiers.v1.utils.generic import deep_merge, prefix_validation_error
17
+ from verifiers.v1.configs.env import EnvConfig
18
+ from verifiers.v1.utils.generic import prefix_validation_error
18
19
 
19
20
 
20
21
  def resolve_env_field(data: dict, narrowed: "type[EnvConfig] | None" = None) -> dict:
@@ -45,32 +46,6 @@ def resolve_env_field(data: dict, narrowed: "type[EnvConfig] | None" = None) ->
45
46
  return data
46
47
 
47
48
 
48
- def merge_env_defaults(defaults: SharedEnvConfig, env: dict | None) -> dict:
49
- """A raw `env` block over `defaults`, the knobs that several envs of one run share
50
- (e.g. the retries of every eval source). Only the fields set in `defaults` apply,
51
- and the env's own values win. A subtree whose `id`/`type` differs from the
52
- default's is the env's alone, so one plugin's knobs never leak into another's."""
53
- return deep_merge(_dump_set(defaults), env or {})
54
-
55
-
56
- def _dump_set(config: BaseModel) -> dict:
57
- """`config`'s set fields, including those set on a sub-config after construction
58
- (which leaves the parent's field unmarked). Each dumped sub-config keeps its
59
- `id`/`type` even at the default: `deep_merge` detects a plugin switch only when
60
- both sides name it."""
61
- dump = {}
62
- for name in type(config).model_fields:
63
- value = getattr(config, name)
64
- if isinstance(value, BaseModel):
65
- nested = _dump_set(value)
66
- if nested or name in config.model_fields_set:
67
- keys = [k for k in ("id", "type") if k in type(value).model_fields]
68
- dump[name] = {**{k: getattr(value, k) for k in keys}, **nested}
69
- elif name in config.model_fields_set:
70
- dump[name] = config.model_dump(include={name})[name]
71
- return dump
72
-
73
-
74
49
  def narrowed_env_annotation(cls) -> "type[EnvConfig] | None":
75
50
  """The env field's annotation when the CLI pre-narrowed it (`narrow_config`
76
51
  swaps in a concrete subclass). The base declaration reads as `EnvConfig` itself
@@ -0,0 +1,105 @@
1
+ """Generic helpers shared across v1 modules."""
2
+
3
+ from typing import TypeVar, get_args, get_origin
4
+
5
+ from pydantic import BaseModel, ValidationError
6
+
7
+ T = TypeVar("T")
8
+
9
+
10
+ def prefix_validation_error(e: ValidationError, prefix: tuple) -> ValidationError:
11
+ """`e` with `prefix` prepended to every error's loc. A sub-model validated
12
+ inside a `mode="before"` validator surfaces its errors at the validator's own
13
+ loc, so without re-raising prefixed the CLI renders a flag path missing the
14
+ segments the user actually typed."""
15
+ return ValidationError.from_exception_data(
16
+ e.title,
17
+ [
18
+ {**err, "loc": prefix + tuple(err["loc"])}
19
+ for err in e.errors(include_url=False)
20
+ ],
21
+ )
22
+
23
+
24
+ def deep_merge(base: dict, override: dict) -> dict:
25
+ """`override` onto `base`, recursing into dicts, so a partial nested override
26
+ keeps the untouched keys of the declared default. An override that switches a
27
+ subtree's discriminator (`id`/`type`) replaces the subtree wholesale — the old
28
+ plugin's fields must not leak into the new type's validation."""
29
+ merged = dict(base)
30
+ for key, value in override.items():
31
+ if isinstance(value, dict) and isinstance(merged.get(key), dict):
32
+ switched = any(
33
+ k in value and k in merged[key] and value[k] != merged[key][k]
34
+ for k in ("id", "type")
35
+ )
36
+ merged[key] = value if switched else deep_merge(merged[key], value)
37
+ else:
38
+ merged[key] = value
39
+ return merged
40
+
41
+
42
+ def merge_defaults(defaults: BaseModel, raw: dict | None) -> dict:
43
+ """Fill in a raw config block with the values that `defaults` sets, e.g. a
44
+ group's shared knobs under each member's own block.
45
+
46
+ - Only fields that were set on `defaults` are filled in; its plain defaults are not.
47
+ - Nested blocks are filled in key by key; a value already in `raw` is kept.
48
+ - If `raw` names a different `id`/`type` for a block (at any depth), that block is
49
+ taken from `raw` alone, so one plugin's fields never leak into another's.
50
+
51
+ For example, with `defaults` set to `algo = {type = "grpo", kl = 0.1}`:
52
+ `{}` becomes `{type = "grpo", kl = 0.1}`, `{kl = 0.5}` becomes
53
+ `{type = "grpo", kl = 0.5}`, and `{type = "max_rl"}` stays `{type = "max_rl"}`.
54
+ """
55
+ # `deep_merge` detects an `id`/`type` switch only on nested blocks, so wrap the
56
+ # block once to detect a switch of the block itself too.
57
+ identity = {
58
+ k: getattr(defaults, k)
59
+ for k in ("id", "type")
60
+ if k in type(defaults).model_fields
61
+ }
62
+ block = {**identity, **_dump_set(defaults)}
63
+ return deep_merge({"block": block}, {"block": raw or {}})["block"]
64
+
65
+
66
+ def _dump_set(config: BaseModel) -> dict:
67
+ """The fields set on `config`, including extra fields, as a nested dict. A
68
+ sub-config the parent did not set still counts when its own fields changed after
69
+ construction (pydantic then leaves the parent's field unmarked), but not when it
70
+ only matches the field's default, which may itself be built with arguments. A
71
+ dumped sub-config always includes its `id`/`type`, because `deep_merge` detects a
72
+ switch only when both sides name it."""
73
+ dump = {}
74
+ for name, field in type(config).model_fields.items():
75
+ value = getattr(config, name)
76
+ if isinstance(value, BaseModel):
77
+ nested = _dump_set(value)
78
+ if name not in config.model_fields_set:
79
+ default = field.get_default(
80
+ call_default_factory=True, validated_data=config.__dict__
81
+ )
82
+ if isinstance(default, BaseModel) and nested == _dump_set(default):
83
+ continue
84
+ if nested or name in config.model_fields_set:
85
+ keys = [k for k in ("id", "type") if k in type(value).model_fields]
86
+ dump[name] = {**{k: getattr(value, k) for k in keys}, **nested}
87
+ elif name in config.model_fields_set:
88
+ dump[name] = config.model_dump(include={name})[name]
89
+ # Extra fields of an `extra="allow"` model exist only because they were set.
90
+ dump.update(config.model_dump(include=set(config.model_extra or {})))
91
+ return dump
92
+
93
+
94
+ def concrete_type(
95
+ cls: type, bound: type[T], *, origin: type | None = None
96
+ ) -> type[T] | None:
97
+ """Find a concrete bounded type through `cls`'s MRO, most-derived first."""
98
+ for klass in cls.__mro__:
99
+ for base in getattr(klass, "__orig_bases__", ()):
100
+ if origin is not None and get_origin(base) is not origin:
101
+ continue
102
+ for arg in get_args(base):
103
+ if isinstance(arg, type) and issubclass(arg, bound):
104
+ return arg
105
+ return None
@@ -1,53 +0,0 @@
1
- """Generic helpers shared across v1 modules."""
2
-
3
- from typing import TypeVar, get_args, get_origin
4
-
5
- from pydantic import ValidationError
6
-
7
- T = TypeVar("T")
8
-
9
-
10
- def prefix_validation_error(e: ValidationError, prefix: tuple) -> ValidationError:
11
- """`e` with `prefix` prepended to every error's loc. A sub-model validated
12
- inside a `mode="before"` validator surfaces its errors at the validator's own
13
- loc, so without re-raising prefixed the CLI renders a flag path missing the
14
- segments the user actually typed."""
15
- return ValidationError.from_exception_data(
16
- e.title,
17
- [
18
- {**err, "loc": prefix + tuple(err["loc"])}
19
- for err in e.errors(include_url=False)
20
- ],
21
- )
22
-
23
-
24
- def deep_merge(base: dict, override: dict) -> dict:
25
- """`override` onto `base`, recursing into dicts, so a partial nested override
26
- keeps the untouched keys of the declared default. An override that switches a
27
- subtree's discriminator (`id`/`type`) replaces the subtree wholesale — the old
28
- plugin's fields must not leak into the new type's validation."""
29
- merged = dict(base)
30
- for key, value in override.items():
31
- if isinstance(value, dict) and isinstance(merged.get(key), dict):
32
- switched = any(
33
- k in value and k in merged[key] and value[k] != merged[key][k]
34
- for k in ("id", "type")
35
- )
36
- merged[key] = value if switched else deep_merge(merged[key], value)
37
- else:
38
- merged[key] = value
39
- return merged
40
-
41
-
42
- def concrete_type(
43
- cls: type, bound: type[T], *, origin: type | None = None
44
- ) -> type[T] | None:
45
- """Find a concrete bounded type through `cls`'s MRO, most-derived first."""
46
- for klass in cls.__mro__:
47
- for base in getattr(klass, "__orig_bases__", ()):
48
- if origin is not None and get_origin(base) is not origin:
49
- continue
50
- for arg in get_args(base):
51
- if isinstance(arg, type) and issubclass(arg, bound):
52
- return arg
53
- return None