verifiers 0.4.1.dev18__tar.gz → 0.4.1.dev19__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 (260) hide show
  1. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/PKG-INFO +1 -1
  2. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/client.py +24 -18
  3. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/.gitignore +0 -0
  4. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/LICENSE +0 -0
  5. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/README.md +0 -0
  6. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/pyproject.toml +0 -0
  7. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/conftest.py +0 -0
  8. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/agent_user_harness_v1.py +0 -0
  9. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/agent_user_v1.py +0 -0
  10. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/counter_tool_v1.py +0 -0
  11. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/duet_v1.py +0 -0
  12. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/echo_acp_resume_v1.py +0 -0
  13. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/echo_agentic_v1.py +0 -0
  14. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/echo_tool_v1.py +0 -0
  15. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/echo_user_sim_v1.py +0 -0
  16. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/echo_v1.py +0 -0
  17. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/network_policy_v1.py +0 -0
  18. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/pyproject.toml +0 -0
  19. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/skill_codeword_v1.py +0 -0
  20. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/skills/project-codeword/SKILL.md +0 -0
  21. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/fixtures/tool_response_image_v1.py +0 -0
  22. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/grid.py +0 -0
  23. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_agent_user.py +0 -0
  24. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_agentic_judge.py +0 -0
  25. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_compose_scoring.py +0 -0
  26. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_examples.py +0 -0
  27. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_limits.py +0 -0
  28. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_multi_agent.py +0 -0
  29. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_multi_turn.py +0 -0
  30. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_multi_turn_tool.py +0 -0
  31. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_multimodal_tool.py +0 -0
  32. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_network_policy.py +0 -0
  33. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_resume_tool.py +0 -0
  34. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_rubric_judge.py +0 -0
  35. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_shared_tool.py +0 -0
  36. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_single_turn.py +0 -0
  37. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_skills.py +0 -0
  38. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_stateful_tool.py +0 -0
  39. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_user_echo.py +0 -0
  40. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/integration/test_user_sim.py +0 -0
  41. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/cli/test_replay.py +0 -0
  42. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/conftest.py +0 -0
  43. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/harnesses/test_core.py +0 -0
  44. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/harnesses/test_rlm.py +0 -0
  45. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/interception/test_tunnel.py +0 -0
  46. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/judges/conftest.py +0 -0
  47. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/judges/test_judge.py +0 -0
  48. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/judges/test_reference.py +0 -0
  49. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/judges/test_rubric.py +0 -0
  50. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/runtimes/test_e2b.py +0 -0
  51. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/serve/test_client.py +0 -0
  52. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/serve/test_delta.py +0 -0
  53. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/serve/test_pool.py +0 -0
  54. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/test_agent.py +0 -0
  55. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/test_graph.py +0 -0
  56. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/test_semantic.py +0 -0
  57. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/test_task.py +0 -0
  58. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/test_taskset.py +0 -0
  59. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/test_trace.py +0 -0
  60. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/utils/test_compile.py +0 -0
  61. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/utils/test_loaders.py +0 -0
  62. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/utils/test_platform.py +0 -0
  63. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/tests/unit/utils/test_score.py +0 -0
  64. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/__init__.py +0 -0
  65. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/__init__.py +0 -0
  66. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/acp/__init__.py +0 -0
  67. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/acp/runner.py +0 -0
  68. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/agent.py +0 -0
  69. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/__init__.py +0 -0
  70. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  71. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/dashboard/base.py +0 -0
  72. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/dashboard/eval.py +0 -0
  73. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/dashboard/replay.py +0 -0
  74. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/dashboard/validate.py +0 -0
  75. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/debug.py +0 -0
  76. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/eval/__init__.py +0 -0
  77. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/eval/hint.py +0 -0
  78. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/eval/main.py +0 -0
  79. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/eval/resume.py +0 -0
  80. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/eval/runner.py +0 -0
  81. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/gepa.py +0 -0
  82. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/output.py +0 -0
  83. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/replay.py +0 -0
  84. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/resolve.py +0 -0
  85. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/resume.py +0 -0
  86. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/cli/validate.py +0 -0
  87. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/clients/__init__.py +0 -0
  88. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/clients/base.py +0 -0
  89. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/clients/client.py +0 -0
  90. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/clients/eval.py +0 -0
  91. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/clients/train.py +0 -0
  92. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/__init__.py +0 -0
  93. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/agent.py +0 -0
  94. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/cli/__init__.py +0 -0
  95. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/cli/debug.py +0 -0
  96. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/cli/env.py +0 -0
  97. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/cli/eval.py +0 -0
  98. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/cli/replay.py +0 -0
  99. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/cli/validate.py +0 -0
  100. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/client.py +0 -0
  101. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/env.py +0 -0
  102. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/harness.py +0 -0
  103. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/judge.py +0 -0
  104. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/retries.py +0 -0
  105. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/runtime.py +0 -0
  106. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/scoring.py +0 -0
  107. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/select.py +0 -0
  108. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/serve.py +0 -0
  109. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/task.py +0 -0
  110. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/configs/taskset.py +0 -0
  111. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/dialects/__init__.py +0 -0
  112. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/dialects/anthropic.py +0 -0
  113. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/dialects/base.py +0 -0
  114. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/dialects/chat.py +0 -0
  115. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/dialects/responses.py +0 -0
  116. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/env.py +0 -0
  117. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/__init__.py +0 -0
  118. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  119. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  120. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  121. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/best_of_n/env.py +0 -0
  122. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  123. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/single_agent/env.py +0 -0
  124. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  125. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/envs/user_sim/env.py +0 -0
  126. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/episode.py +0 -0
  127. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/errors.py +0 -0
  128. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/gepa/__init__.py +0 -0
  129. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/gepa/adapter.py +0 -0
  130. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/gepa/config.py +0 -0
  131. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/gepa/dataset.py +0 -0
  132. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/gepa/reflection.py +0 -0
  133. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/gepa/runner.py +0 -0
  134. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/grading.py +0 -0
  135. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/graph.py +0 -0
  136. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harness.py +0 -0
  137. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/__init__.py +0 -0
  138. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  139. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/bash/harness.py +0 -0
  140. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  141. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  142. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  143. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  144. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  145. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  146. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
  147. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/codex/harness.py +0 -0
  148. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  149. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  150. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  151. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  152. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  153. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  154. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  155. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  156. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/node.py +0 -0
  157. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/null/__init__.py +0 -0
  158. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/null/harness.py +0 -0
  159. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  160. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  161. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  162. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
  163. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/pi/harness.py +0 -0
  164. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
  165. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
  166. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  167. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  168. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  169. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  170. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  171. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/utils/__init__.py +0 -0
  172. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/utils/compaction.py +0 -0
  173. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/utils/core.py +0 -0
  174. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/utils/install.py +0 -0
  175. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/utils/launch.py +0 -0
  176. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/harnesses/utils/mcp.py +0 -0
  177. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/__init__.py +0 -0
  178. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/base.py +0 -0
  179. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/pool.py +0 -0
  180. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/server.py +0 -0
  181. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  182. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/tunnel/base.py +0 -0
  183. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/tunnel/custom.py +0 -0
  184. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/interception/tunnel/prime.py +0 -0
  185. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judge.py +0 -0
  186. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judges/__init__.py +0 -0
  187. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judges/decision.py +0 -0
  188. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judges/reference.py +0 -0
  189. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judges/reference.txt +0 -0
  190. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judges/rubric.py +0 -0
  191. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/judges/rubric.txt +0 -0
  192. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/mcp/__init__.py +0 -0
  193. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/mcp/launch.py +0 -0
  194. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/mcp/server.py +0 -0
  195. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/mcp/toolset.py +0 -0
  196. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/rollout.py +0 -0
  197. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/__init__.py +0 -0
  198. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/apptainer.py +0 -0
  199. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/base.py +0 -0
  200. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/compose.py +0 -0
  201. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/container.py +0 -0
  202. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/deployment.py +0 -0
  203. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  204. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/docker/egress.py +0 -0
  205. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/e2b.py +0 -0
  206. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/limiters.py +0 -0
  207. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/modal.py +0 -0
  208. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/prime.py +0 -0
  209. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/runtime.py +0 -0
  210. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/strategies.py +0 -0
  211. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/runtimes/subprocess.py +0 -0
  212. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/semantic.py +0 -0
  213. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/__init__.py +0 -0
  214. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/delta.py +0 -0
  215. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/encoding.py +0 -0
  216. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/pool.py +0 -0
  217. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/server.py +0 -0
  218. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/serve/types.py +0 -0
  219. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/session.py +0 -0
  220. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/state.py +0 -0
  221. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/task.py +0 -0
  222. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/taskset.py +0 -0
  223. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/__init__.py +0 -0
  224. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  225. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  226. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
  227. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  228. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  229. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  230. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  231. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  232. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  233. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  234. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  235. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  236. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/trace.py +0 -0
  237. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/types.py +0 -0
  238. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/__init__.py +0 -0
  239. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/aio.py +0 -0
  240. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/artifacts.py +0 -0
  241. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/compile.py +0 -0
  242. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/decorators.py +0 -0
  243. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/env.py +0 -0
  244. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/eval.py +0 -0
  245. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/format.py +0 -0
  246. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/generic.py +0 -0
  247. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/git.py +0 -0
  248. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/image.py +0 -0
  249. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/interrupt.py +0 -0
  250. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/loaders.py +0 -0
  251. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/logging.py +0 -0
  252. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/memory.py +0 -0
  253. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/paths.py +0 -0
  254. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/platform.py +0 -0
  255. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/prime.py +0 -0
  256. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/retries.py +0 -0
  257. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/scope.py +0 -0
  258. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/score.py +0 -0
  259. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/trace_store.py +0 -0
  260. {verifiers-0.4.1.dev18 → verifiers-0.4.1.dev19}/verifiers/v1/utils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: verifiers
3
- Version: 0.4.1.dev18
3
+ Version: 0.4.1.dev19
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
@@ -39,9 +39,12 @@ from verifiers.v1.types import SamplingConfig
39
39
  logger = logging.getLogger(__name__)
40
40
 
41
41
  ResponseT = TypeVar("ResponseT", bound=BaseResponse)
42
+ DecodedT = TypeVar("DecodedT")
42
43
 
43
44
 
44
45
  class EnvClient:
46
+ """Receive streamed episodes with bounded worker decoding."""
47
+
45
48
  def __init__(self, address: str = "tcp://127.0.0.1:5000") -> None:
46
49
  self.address = address
47
50
  self.ctx = zmq.asyncio.Context()
@@ -51,7 +54,7 @@ class EnvClient:
51
54
  self.socket.setsockopt(zmq.RCVHWM, 0)
52
55
  self.socket.connect(address)
53
56
  self._pending: dict[str, asyncio.Future[bytes]] = {}
54
- self._deltas: dict[str, Callable[[bytes], None]] = {}
57
+ self._deltas: dict[str, Callable[[dict], None]] = {}
55
58
  # Strong refs to in-flight fire-and-forget cancels: the loop only
56
59
  # holds weak references to tasks, so an unreferenced one can be
57
60
  # garbage-collected before it ever sends
@@ -68,7 +71,7 @@ class EnvClient:
68
71
  # handler that raises is logged and skipped rather than allowed to end the loop.
69
72
  while True:
70
73
  try:
71
- frames = await self.socket.recv_multipart()
74
+ frames = await self.socket.recv_multipart(copy=False)
72
75
  except asyncio.CancelledError:
73
76
  break
74
77
  try:
@@ -77,16 +80,23 @@ class EnvClient:
77
80
  f"expected [request_id, kind, data], got {len(frames)} frames - "
78
81
  "is the env server speaking the same serve protocol?"
79
82
  )
80
- request_id_bytes, kind, data = frames
81
- request_id = request_id_bytes.decode()
83
+ request_id_frame, kind_frame, data_frame = frames
84
+ request_id = request_id_frame.bytes.decode()
85
+ kind = kind_frame.bytes
82
86
  if kind == b"delta":
83
87
  on_delta = self._deltas.get(request_id)
84
88
  if on_delta is not None:
85
- on_delta(data)
89
+ # The view retains its ZMQ frame while a cancelled worker finishes.
90
+ delta = await self._decode(
91
+ unpack, data_frame.buffer.toreadonly()
92
+ )
93
+ # Cancellation may remove the handler while the worker decodes.
94
+ if self._deltas.get(request_id) is on_delta:
95
+ on_delta(delta)
86
96
  continue
87
97
  future = self._pending.pop(request_id, None)
88
98
  if future is not None and not future.done():
89
- future.set_result(data)
99
+ future.set_result(data_frame.bytes)
90
100
  except Exception: # keep receiving for the other requests
91
101
  logger.warning("dropping a malformed env-server frame", exc_info=True)
92
102
 
@@ -95,11 +105,11 @@ class EnvClient:
95
105
  request: BaseRequest,
96
106
  response_type: type[ResponseT],
97
107
  timeout: float | None = None,
98
- on_delta: Callable[[bytes], None] | None = None,
108
+ on_delta: Callable[[dict], None] | None = None,
99
109
  ) -> ResponseT:
100
110
  """Send a typed request and validate the reply into `response_type`. A
101
111
  `timeout` is only used for health polling — rollouts run untimed. `on_delta`
102
- receives each `delta` frame the request streams before its reply."""
112
+ receives each decoded `delta` the request streams before its reply."""
103
113
  self._ensure_receiver()
104
114
  request_id = uuid.uuid4().hex
105
115
  future: asyncio.Future[bytes] = asyncio.get_running_loop().create_future()
@@ -134,13 +144,10 @@ class EnvClient:
134
144
  raise RuntimeError(response.error or "env server request failed")
135
145
  return response
136
146
 
137
- async def _validate_episode(self, record: dict) -> WireEpisode:
138
- """Type the assembled record off the loop, one episode at a time: a long
139
- trace is a lot of token spans to validate."""
147
+ async def _decode(self, decode: Callable[..., DecodedT], *args: object) -> DecodedT:
148
+ """Decode off the loop, sharing one slot with final episode validation."""
140
149
  await self._decode_slots.acquire()
141
- decoding = asyncio.create_task(
142
- asyncio.to_thread(WireEpisode.model_validate, record)
143
- )
150
+ decoding = asyncio.create_task(asyncio.to_thread(decode, *args))
144
151
  # Hold the slot until the worker finishes so cancellation cannot overlap decodes.
145
152
  decoding.add_done_callback(lambda _: self._decode_slots.release())
146
153
  try:
@@ -199,8 +206,7 @@ class EnvClient:
199
206
  episode returned is assembled from the same deltas."""
200
207
  assembly = EpisodeAssembly()
201
208
 
202
- def apply(data: bytes) -> None:
203
- delta = unpack(data)
209
+ def apply(delta: dict) -> None:
204
210
  assembly.apply(delta)
205
211
  if on_delta is not None:
206
212
  on_delta(delta)
@@ -216,8 +222,8 @@ class EnvClient:
216
222
  on_delta=apply,
217
223
  )
218
224
  assert response.head is not None
219
- return await self._validate_episode(
220
- assembly.finish(response.head, response.traces)
225
+ return await self._decode(
226
+ WireEpisode.model_validate, assembly.finish(response.head, response.traces)
221
227
  )
222
228
 
223
229
  async def close(self) -> None:
File without changes