verifiers 0.3.2.dev141__tar.gz → 0.3.2.dev143__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 (220) hide show
  1. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/PKG-INFO +1 -1
  2. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/echo_acp_resume_v1.py +5 -2
  3. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/echo_v1.py +5 -3
  4. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/__init__.py +10 -3
  5. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/env.py +30 -4
  6. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/env.py +22 -13
  7. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/taskset.py +10 -4
  8. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/codex/harness.py +4 -3
  9. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/.gitignore +0 -0
  10. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/LICENSE +0 -0
  11. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/README.md +0 -0
  12. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/pyproject.toml +0 -0
  13. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/conftest.py +0 -0
  14. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  15. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/duet_v1.py +0 -0
  16. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  17. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  18. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  19. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/pyproject.toml +0 -0
  20. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  21. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_color_codeword_tasks.py +0 -0
  22. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_configs.py +0 -0
  23. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_e2e.py +0 -0
  24. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_envs.py +0 -0
  25. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_graph.py +0 -0
  26. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_judges.py +0 -0
  27. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_platform_run.py +0 -0
  28. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_scoring.py +0 -0
  29. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_serve_delta.py +0 -0
  30. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_taskset.py +0 -0
  31. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/tests/v1/test_trace.py +0 -0
  32. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/__init__.py +0 -0
  33. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/acp/__init__.py +0 -0
  34. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/acp/runner.py +0 -0
  35. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/agent.py +0 -0
  36. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/__init__.py +0 -0
  37. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  38. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/dashboard/base.py +0 -0
  39. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/dashboard/eval.py +0 -0
  40. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/dashboard/replay.py +0 -0
  41. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/dashboard/validate.py +0 -0
  42. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/debug.py +0 -0
  43. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/eval/__init__.py +0 -0
  44. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/eval/hint.py +0 -0
  45. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/eval/main.py +0 -0
  46. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/eval/resume.py +0 -0
  47. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/eval/runner.py +0 -0
  48. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/gepa.py +0 -0
  49. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/init.py +0 -0
  50. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/output.py +0 -0
  51. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/replay.py +0 -0
  52. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/resolve.py +0 -0
  53. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/resume.py +0 -0
  54. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/cli/validate.py +0 -0
  55. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/clients/__init__.py +0 -0
  56. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/clients/base.py +0 -0
  57. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/clients/client.py +0 -0
  58. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/clients/eval.py +0 -0
  59. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/clients/train.py +0 -0
  60. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/__init__.py +0 -0
  61. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/agent.py +0 -0
  62. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/__init__.py +0 -0
  63. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/debug.py +0 -0
  64. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/eval.py +0 -0
  65. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/init.py +0 -0
  66. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/replay.py +0 -0
  67. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/cli/validate.py +0 -0
  68. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/client.py +0 -0
  69. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/harness.py +0 -0
  70. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/judge.py +0 -0
  71. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/retries.py +0 -0
  72. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/runtime.py +0 -0
  73. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/serve.py +0 -0
  74. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/configs/task.py +0 -0
  75. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/dialects/__init__.py +0 -0
  76. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/dialects/anthropic.py +0 -0
  77. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/dialects/base.py +0 -0
  78. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/dialects/chat.py +0 -0
  79. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/dialects/responses.py +0 -0
  80. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/env.py +0 -0
  81. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/__init__.py +0 -0
  82. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  83. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  84. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  85. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/best_of_n/env.py +0 -0
  86. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
  87. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
  88. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  89. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  90. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/single_agent/env.py +0 -0
  91. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  92. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/envs/user_sim/env.py +0 -0
  93. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/episode.py +0 -0
  94. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/errors.py +0 -0
  95. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/gepa/__init__.py +0 -0
  96. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/gepa/adapter.py +0 -0
  97. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/gepa/config.py +0 -0
  98. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/gepa/dataset.py +0 -0
  99. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/gepa/reflection.py +0 -0
  100. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/gepa/runner.py +0 -0
  101. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/graph.py +0 -0
  102. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harness.py +0 -0
  103. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/__init__.py +0 -0
  104. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  105. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/bash/harness.py +0 -0
  106. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  107. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  108. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  109. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  110. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  111. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  112. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  113. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  114. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  115. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  116. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  117. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  118. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  119. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  120. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  121. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/node.py +0 -0
  122. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/null/__init__.py +0 -0
  123. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/null/harness.py +0 -0
  124. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  125. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  126. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  127. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  128. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/pi/harness.py +0 -0
  129. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  130. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  131. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  132. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  133. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  134. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  135. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  136. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  137. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  138. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/utils/core.py +0 -0
  139. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/utils/install.py +0 -0
  140. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/utils/launch.py +0 -0
  141. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  142. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/__init__.py +0 -0
  143. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/base.py +0 -0
  144. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/pool.py +0 -0
  145. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/server.py +0 -0
  146. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  147. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/tunnel/base.py +0 -0
  148. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/tunnel/custom.py +0 -0
  149. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/interception/tunnel/prime.py +0 -0
  150. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/judge.py +0 -0
  151. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/judges/__init__.py +0 -0
  152. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/judges/reference.py +0 -0
  153. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/judges/reference.txt +0 -0
  154. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/judges/rubric.py +0 -0
  155. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/judges/rubric.txt +0 -0
  156. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/mcp/__init__.py +0 -0
  157. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/mcp/launch.py +0 -0
  158. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/mcp/server.py +0 -0
  159. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/mcp/toolset.py +0 -0
  160. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/rollout.py +0 -0
  161. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/__init__.py +0 -0
  162. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/apptainer.py +0 -0
  163. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/base.py +0 -0
  164. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/container.py +0 -0
  165. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  166. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/docker/egress.py +0 -0
  167. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/limiters.py +0 -0
  168. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/modal.py +0 -0
  169. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/prime.py +0 -0
  170. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/runtimes/subprocess.py +0 -0
  171. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/semantic.py +0 -0
  172. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/__init__.py +0 -0
  173. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/client.py +0 -0
  174. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/delta.py +0 -0
  175. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/encoding.py +0 -0
  176. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/pool.py +0 -0
  177. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/server.py +0 -0
  178. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/serve/types.py +0 -0
  179. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/session.py +0 -0
  180. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/state.py +0 -0
  181. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/task.py +0 -0
  182. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/taskset.py +0 -0
  183. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/__init__.py +0 -0
  184. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  185. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/harbor/compose.py +0 -0
  186. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/harbor/env.py +0 -0
  187. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  188. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  189. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  190. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  191. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  192. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  193. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  194. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  195. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  196. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  197. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  198. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/trace.py +0 -0
  199. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/types.py +0 -0
  200. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/__init__.py +0 -0
  201. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/aio.py +0 -0
  202. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/artifacts.py +0 -0
  203. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/compile.py +0 -0
  204. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/decorators.py +0 -0
  205. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/format.py +0 -0
  206. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/generic.py +0 -0
  207. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/git.py +0 -0
  208. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/image.py +0 -0
  209. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/interrupt.py +0 -0
  210. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/loaders.py +0 -0
  211. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/logging.py +0 -0
  212. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/memory.py +0 -0
  213. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/paths.py +0 -0
  214. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/platform.py +0 -0
  215. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/prime.py +0 -0
  216. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/retries.py +0 -0
  217. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/scope.py +0 -0
  218. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/score.py +0 -0
  219. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/verifiers/v1/utils/trace_store.py +0 -0
  220. {verifiers-0.3.2.dev141 → verifiers-0.3.2.dev143}/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.dev141
3
+ Version: 0.3.2.dev143
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
@@ -52,9 +52,12 @@ class ACPResumeTask(vf.Task[vf.TaskData, vf.State, ACPResumeTaskConfig]):
52
52
  class ACPResumeEnv(vf.SingleAgentEnv):
53
53
  async def run(self, task, agents):
54
54
  async with agents.agent.interaction(task) as interaction:
55
+ # Stated as a fact, not a "do not" instruction: OpenAI's content filter
56
+ # refuses "remember ... do not call tools or store it" as an injection.
55
57
  first = await interaction.turn(
56
- f"Remember the codeword {CODEWORD} for this conversation only. "
57
- "Do not call tools or store it in persistent memory. Reply with exactly READY."
58
+ f"The codeword for this conversation is {CODEWORD}. Keep it in the "
59
+ "conversation context only, without tools or persistent memory. "
60
+ "Reply with exactly READY."
58
61
  )
59
62
  segments = [first]
60
63
  if not first.terminated:
@@ -54,13 +54,15 @@ class EchoTaskset(vf.Taskset[EchoTask, EchoConfig]):
54
54
  def load(self) -> list[EchoTask]:
55
55
  return [
56
56
  # Keep coding-agent harnesses on the direct-response path instead of
57
- # spending this single-turn smoke task on a tool call.
57
+ # spending this single-turn smoke task on a tool call. Phrased as an
58
+ # instruction rather than a prohibition: OpenAI's content filter refuses
59
+ # "Do not call tools ... include this exact phrase" as an injection.
58
60
  EchoTask(
59
61
  EchoData(
60
62
  idx=i,
61
63
  prompt=(
62
- "Do not call tools or execute code. Reply immediately and include "
63
- f"this exact phrase in your final response: {phrase}"
64
+ "Answer directly without using tools or running code. Your reply "
65
+ f"must contain this exact phrase: {phrase}"
64
66
  ),
65
67
  system_prompt=SYSTEM,
66
68
  answer=phrase,
@@ -14,8 +14,12 @@ from verifiers.v1.clients import (
14
14
  resolve_client,
15
15
  )
16
16
  from verifiers.v1.configs.agent import AgentConfig
17
- from verifiers.v1.configs.cli.env import narrowed_env_annotation, resolve_env_field
18
- from verifiers.v1.configs.env import EnvConfig, default_agent_harness
17
+ from verifiers.v1.configs.cli.env import (
18
+ merge_env_defaults,
19
+ narrowed_env_annotation,
20
+ resolve_env_field,
21
+ )
22
+ from verifiers.v1.configs.env import EnvConfig, SharedEnvConfig, default_agent_harness
19
23
  from verifiers.v1.configs.harness import HarnessConfig
20
24
  from verifiers.v1.configs.judge import JudgeConfig, Judges
21
25
  from verifiers.v1.configs.retries import RetryConfig
@@ -30,7 +34,7 @@ from verifiers.v1.configs.task import (
30
34
  RewardFunctionConfig,
31
35
  TaskConfig,
32
36
  )
33
- from verifiers.v1.configs.taskset import TasksetConfig
37
+ from verifiers.v1.configs.taskset import SharedTasksetConfig, TasksetConfig
34
38
  from verifiers.v1.env import Env
35
39
  from verifiers.v1.envs.single_agent import SingleAgentEnv, SingleAgentEnvConfig
36
40
  from verifiers.v1.episode import (
@@ -286,6 +290,7 @@ __all__ = [ # noqa: RUF022 - grouped by public API area
286
290
  "Taskset",
287
291
  "TaskConfig",
288
292
  "TasksetConfig",
293
+ "SharedTasksetConfig",
289
294
  "DecoratedFunctionConfig",
290
295
  "RewardFunctionConfig",
291
296
  "BaseConfig",
@@ -309,8 +314,10 @@ __all__ = [ # noqa: RUF022 - grouped by public API area
309
314
  "Env",
310
315
  "SingleAgentEnv",
311
316
  "EnvConfig",
317
+ "SharedEnvConfig",
312
318
  "ServeConfig",
313
319
  "resolve_env_field",
320
+ "merge_env_defaults",
314
321
  "narrowed_env_annotation",
315
322
  "SingleAgentEnvConfig",
316
323
  "AgentConfig",
@@ -1,5 +1,5 @@
1
1
  """Run-config plumbing around the `[env]` block: narrowing the `env` field of
2
- every config that owns one.
2
+ every config that owns one, and layering shared env defaults under it.
3
3
 
4
4
  A run composes the blocks it needs — `[env]` (what runs, `configs/env.py`),
5
5
  `[serve]` (how it's hosted, `configs/serve.py`) — plus its own fields. Nothing here is a base class: the eval
@@ -10,11 +10,11 @@ single_agent_env_config)`. The `SerializeAsAny` is load-bearing: pydantic serial
10
10
  by declared type, so a plain `EnvConfig` silently drops a narrowed subclass's agents
11
11
  and knobs from `model_dump()` — the env-server wire's payload."""
12
12
 
13
- from pydantic import ValidationError
13
+ from pydantic import BaseModel, ValidationError
14
14
  from pydantic_config import BaseConfig
15
15
 
16
- from verifiers.v1.configs.env import EnvConfig
17
- from verifiers.v1.utils.generic import prefix_validation_error
16
+ from verifiers.v1.configs.env import EnvConfig, SharedEnvConfig
17
+ from verifiers.v1.utils.generic import deep_merge, prefix_validation_error
18
18
 
19
19
 
20
20
  def resolve_env_field(data: dict, narrowed: "type[EnvConfig] | None" = None) -> dict:
@@ -45,6 +45,32 @@ def resolve_env_field(data: dict, narrowed: "type[EnvConfig] | None" = None) ->
45
45
  return data
46
46
 
47
47
 
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
+
48
74
  def narrowed_env_annotation(cls) -> "type[EnvConfig] | None":
49
75
  """The env field's annotation when the CLI pre-narrowed it (`narrow_config`
50
76
  swaps in a concrete subclass). The base declaration reads as `EnvConfig` itself
@@ -1,5 +1,6 @@
1
1
  """An environment's config — the run's single `[env]` block: the seed taskset,
2
- each role as an `AgentConfig` field, and the env-level knobs."""
2
+ each role as an `AgentConfig` field, and the env-level knobs. `SharedEnvConfig` is
3
+ the part every env has."""
3
4
 
4
5
  from typing import get_args
5
6
 
@@ -13,7 +14,7 @@ from verifiers.v1.configs.agent import (
13
14
  )
14
15
  from verifiers.v1.configs.harness import HarnessConfig
15
16
  from verifiers.v1.configs.retries import RetryConfig
16
- from verifiers.v1.configs.taskset import TasksetConfig
17
+ from verifiers.v1.configs.taskset import SharedTasksetConfig, TasksetConfig
17
18
  from verifiers.v1.interception import ElasticInterceptionPoolConfig, InterceptionConfig
18
19
  from verifiers.v1.types import ID
19
20
 
@@ -34,18 +35,12 @@ def _mentions_agent_config(annotation) -> bool:
34
35
  return any(_mentions_agent_config(arg) for arg in get_args(annotation))
35
36
 
36
37
 
37
- class EnvConfig(BaseConfig):
38
- """An environment's config — the run's single `[env]` block, one subclass per
39
- `Env` class (bound via `Env[YourConfig]`): each role is an
40
- `AgentConfig` field with a default instance, plus env-level knobs. The run's `env`
41
- field narrows to it by env `id` (else taskset id) — `--env.<role>.model` addressing."""
38
+ class SharedEnvConfig(BaseConfig):
39
+ """The env knobs every env has, whatever its id and agents — what several envs of
40
+ one run can share. `EnvConfig` adds the env `id`, the taskset `id`, and the agents."""
42
41
 
43
- id: ID = ""
44
- """Which `Env` runs. Empty = the taskset's own, else `SingleAgentEnv`; set
45
- to pair a reusable env with any taskset (an explicit id wins over the bundled)."""
46
- # SerializeAsAny: the env-server wire needs the resolved subclass's fields.
47
- taskset: SerializeAsAny[TasksetConfig] = TasksetConfig()
48
- """The seed taskset — the rows every rollout starts from (`--env.taskset.id`)."""
42
+ taskset: SharedTasksetConfig = SharedTasksetConfig()
43
+ """The taskset knobs every taskset has."""
49
44
  timeout: TimeoutConfig = TimeoutConfig()
50
45
  retries: RetryConfig = RetryConfig()
51
46
  """Whole-EPISODE retries — the coarse fallback for faults no agent owns; a
@@ -63,6 +58,20 @@ class EnvConfig(BaseConfig):
63
58
  interception: InterceptionConfig = ElasticInterceptionPoolConfig()
64
59
  """The interception shape: `elastic` (default), `server`, or `static`."""
65
60
 
61
+
62
+ class EnvConfig(SharedEnvConfig):
63
+ """An environment's config — the run's single `[env]` block, one subclass per
64
+ `Env` class (bound via `Env[YourConfig]`): each role is an
65
+ `AgentConfig` field with a default instance, plus env-level knobs. The run's `env`
66
+ field narrows to it by env `id` (else taskset id) — `--env.<role>.model` addressing."""
67
+
68
+ id: ID = ""
69
+ """Which `Env` runs. Empty = the taskset's own, else `SingleAgentEnv`; set
70
+ to pair a reusable env with any taskset (an explicit id wins over the bundled)."""
71
+ # SerializeAsAny: the env-server wire needs the resolved subclass's fields.
72
+ taskset: SerializeAsAny[TasksetConfig] = TasksetConfig()
73
+ """The seed taskset — the rows every rollout starts from (`--env.taskset.id`)."""
74
+
66
75
  @property
67
76
  def env_id(self) -> str:
68
77
  """The taskset id, prefixed by the paired env id (`best-of-n+gsm8k-v1`)."""
@@ -9,16 +9,22 @@ from verifiers.v1.configs.task import TaskConfig
9
9
  from verifiers.v1.types import ID
10
10
 
11
11
 
12
- class TasksetConfig(BaseConfig):
13
- id: ID = ""
14
- """Installed taskset package, set with `--env.taskset.id` (or the
15
- positional `eval <taskset-id>`)."""
12
+ class SharedTasksetConfig(BaseConfig):
13
+ """The knobs every taskset has, whatever its id — what several tasksets of one run
14
+ can share."""
15
+
16
16
  task: SerializeAsAny[TaskConfig] = TaskConfig()
17
17
  """Config passed to each task, under `--env.taskset.task.*`."""
18
18
  system_prompt: Path | None = None
19
19
  """File whose text overrides each task's `TaskData.system_prompt` on
20
20
  iteration (e.g. a GEPA `best_system_prompt.txt`)."""
21
21
 
22
+
23
+ class TasksetConfig(SharedTasksetConfig):
24
+ id: ID = ""
25
+ """Installed taskset package, set with `--env.taskset.id` (or the
26
+ positional `eval <taskset-id>`)."""
27
+
22
28
  @property
23
29
  def name(self) -> str:
24
30
  return self.id
@@ -61,14 +61,15 @@ class CodexHarness(ACPHarness[CodexHarnessConfig]):
61
61
  SUPPORTS_TOOL_INTERCEPTION = True
62
62
 
63
63
  def acp_turn_result(self, trace: Trace, result: ACPTurn) -> None:
64
- # codex-acp returns terminal failures in metadata with stop_reason=end_turn.
64
+ # codex-acp returns terminal failures in metadata with stop_reason=end_turn; a
65
+ # `warning` is a retry it already recovered from.
65
66
  failure = (
66
67
  result.response_metadata.get("jetbrains", {})
67
68
  .get("air", {})
68
69
  .get("sessionFailure")
69
70
  )
70
- if failure and failure["phase"] == "active":
71
- raise RuntimeError(f"Codex {failure['category']}: {failure['safeMessage']}")
71
+ if failure and failure["severity"] == "error":
72
+ raise RuntimeError(f"Codex {failure['category']}: {failure['title']}")
72
73
 
73
74
  async def setup(self, runtime: Runtime) -> None:
74
75
  await ensure_node(runtime)