verifiers 0.2.1.dev55__tar.gz → 0.2.1.dev57__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 (391) hide show
  1. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/PKG-INFO +1 -1
  2. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/__init__.py +12 -0
  3. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/eval/runner.py +4 -1
  4. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/dialects/responses.py +18 -6
  5. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/graph.py +4 -3
  6. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harness.py +8 -2
  7. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/rollout.py +9 -1
  8. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/trace.py +72 -1
  9. verifiers-0.2.1.dev57/verifiers/v1/utils/version.py +43 -0
  10. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/.gitignore +0 -0
  11. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/LICENSE +0 -0
  12. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/README.md +0 -0
  13. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/pyproject.toml +0 -0
  14. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/AGENTS.md +0 -0
  15. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/__init__.py +0 -0
  16. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/conftest.py +0 -0
  17. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_browser_env.py +0 -0
  18. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_build_script.py +0 -0
  19. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_cli_agent_env.py +0 -0
  20. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_client_auth_errors.py +0 -0
  21. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_client_config.py +0 -0
  22. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_client_multimodal_types.py +0 -0
  23. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_composable_env.py +0 -0
  24. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_context_token_metrics.py +0 -0
  25. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_decorator_ranks.py +0 -0
  26. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_endpoint_registry.py +0 -0
  27. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_env_group.py +0 -0
  28. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_env_server.py +0 -0
  29. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_environment.py +0 -0
  30. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_environment_extra.py +0 -0
  31. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_error_chain.py +0 -0
  32. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_eval_display.py +0 -0
  33. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_eval_utils.py +0 -0
  34. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_gepa_cli.py +0 -0
  35. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_gepa_utils.py +0 -0
  36. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_gym_env.py +0 -0
  37. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_harbor_env_mcp.py +0 -0
  38. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_imports.py +0 -0
  39. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_init_script.py +0 -0
  40. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_install_utils.py +0 -0
  41. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_interception_utils.py +0 -0
  42. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_logging.py +0 -0
  43. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_math_rubric.py +0 -0
  44. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_maybe_think_parser.py +0 -0
  45. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_message_utils.py +0 -0
  46. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_message_utils_multimodal.py +0 -0
  47. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_multiturn_env.py +0 -0
  48. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_nemorl_client.py +0 -0
  49. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_openai_chat_completions_token_client.py +0 -0
  50. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_openai_responses_client.py +0 -0
  51. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_opencode_rlm_env.py +0 -0
  52. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_openenv_client.py +0 -0
  53. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_parser.py +0 -0
  54. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_path_utils.py +0 -0
  55. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_per_turn_timing.py +0 -0
  56. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_pricing_utils.py +0 -0
  57. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_prime_plugin.py +0 -0
  58. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_renderer_client.py +0 -0
  59. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_renderer_e2e.py +0 -0
  60. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_rlm_composable_env.py +0 -0
  61. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_rubric.py +0 -0
  62. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_rubric_group.py +0 -0
  63. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_sandbox_debug_env.py +0 -0
  64. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_sandbox_env.py +0 -0
  65. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_sandbox_mixin.py +0 -0
  66. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_save_utils.py +0 -0
  67. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_setup_script.py +0 -0
  68. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_singleturn_env.py +0 -0
  69. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_stateful_tool_env.py +0 -0
  70. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_think_parser.py +0 -0
  71. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_tool_env.py +0 -0
  72. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_tool_utils.py +0 -0
  73. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_trajectory_processing.py +0 -0
  74. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_tui_info_formatting.py +0 -0
  75. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_types.py +0 -0
  76. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/test_xml_parser.py +0 -0
  77. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/conftest.py +0 -0
  78. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  79. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  80. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/echo_multi_v0.py +0 -0
  81. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  82. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  83. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/echo_v0.py +0 -0
  84. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/echo_v1.py +0 -0
  85. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/pyproject.toml +0 -0
  86. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  87. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_color_codeword_tasks.py +0 -0
  88. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_configs.py +0 -0
  89. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_e2e.py +0 -0
  90. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_envs.py +0 -0
  91. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_graph.py +0 -0
  92. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_judges.py +0 -0
  93. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_legacy.py +0 -0
  94. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_scoring.py +0 -0
  95. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_taskset.py +0 -0
  96. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/tests/v1/test_trace.py +0 -0
  97. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/__init__.py +0 -0
  98. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/__init__.py +0 -0
  99. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/__init__.py +0 -0
  100. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/build.py +0 -0
  101. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/eval.py +0 -0
  102. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/gepa.py +0 -0
  103. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/init.py +0 -0
  104. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/install.py +0 -0
  105. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/commands/setup.py +0 -0
  106. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/plugins/__init__.py +0 -0
  107. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/plugins/prime.py +0 -0
  108. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/cli/tui.py +0 -0
  109. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/__init__.py +0 -0
  110. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/anthropic_messages_client.py +0 -0
  111. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/client.py +0 -0
  112. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
  113. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/openai_chat_completions_client.py +0 -0
  114. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
  115. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/openai_completions_client.py +0 -0
  116. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/openai_responses_client.py +0 -0
  117. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/clients/renderer_client.py +0 -0
  118. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/decorators.py +0 -0
  119. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/AGENTS.md +0 -0
  120. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/__init__.py +0 -0
  121. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/env_group.py +0 -0
  122. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/environment.py +0 -0
  123. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/README.md +0 -0
  124. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/__init__.py +0 -0
  125. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/cli_agent_env.py +0 -0
  126. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/README.md +0 -0
  127. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/__init__.py +0 -0
  128. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/_filter.py +0 -0
  129. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/composable_env.py +0 -0
  130. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/harness.py +0 -0
  131. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
  132. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  133. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
  134. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
  135. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
  136. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
  137. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
  138. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/task.py +0 -0
  139. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
  140. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  141. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  142. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  143. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  144. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
  145. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  146. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
  147. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  148. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  149. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
  150. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  151. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  152. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  153. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  154. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  155. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  156. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  157. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  158. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  159. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  160. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  161. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  162. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  163. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  164. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  165. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  166. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  167. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  168. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  169. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  170. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  171. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  172. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  173. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/gym_env.py +0 -0
  174. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
  175. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/harbor_env/env.py +0 -0
  176. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
  177. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/mcp_env.py +0 -0
  178. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/opencode_env.py +0 -0
  179. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
  180. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
  181. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
  182. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/utils/__init__.py +0 -0
  183. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/utils/file_locks.py +0 -0
  184. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
  185. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/README.md +0 -0
  186. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/__init__.py +0 -0
  187. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/README.md +0 -0
  188. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
  189. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
  190. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
  191. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
  192. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  193. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  194. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/openenv_env.py +0 -0
  195. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
  196. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/integrations/textarena_env.py +0 -0
  197. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/multiturn_env.py +0 -0
  198. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/python_env.py +0 -0
  199. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/sandbox_env.py +0 -0
  200. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/singleturn_env.py +0 -0
  201. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/stateful_tool_env.py +0 -0
  202. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/envs/tool_env.py +0 -0
  203. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/errors.py +0 -0
  204. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/gepa/__init__.py +0 -0
  205. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/gepa/adapter.py +0 -0
  206. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/gepa/config.py +0 -0
  207. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/gepa/display.py +0 -0
  208. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/gepa/gepa_utils.py +0 -0
  209. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/parsers/__init__.py +0 -0
  210. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/parsers/maybe_think_parser.py +0 -0
  211. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/parsers/parser.py +0 -0
  212. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/parsers/think_parser.py +0 -0
  213. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/parsers/xml_parser.py +0 -0
  214. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/rubrics/__init__.py +0 -0
  215. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
  216. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/rubrics/judge_rubric.py +0 -0
  217. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/rubrics/math_rubric.py +0 -0
  218. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/rubrics/rubric.py +0 -0
  219. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/rubrics/rubric_group.py +0 -0
  220. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/__init__.py +0 -0
  221. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/build.py +0 -0
  222. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/eval.py +0 -0
  223. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/gepa.py +0 -0
  224. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/init.py +0 -0
  225. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/install.py +0 -0
  226. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/setup.py +0 -0
  227. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/scripts/tui.py +0 -0
  228. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/__init__.py +0 -0
  229. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/client/env_client.py +0 -0
  230. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/client/zmq_env_client.py +0 -0
  231. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/server/__init__.py +0 -0
  232. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/server/env_router.py +0 -0
  233. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/server/env_server.py +0 -0
  234. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/server/env_worker.py +0 -0
  235. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/server/zmq_env_server.py +0 -0
  236. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/serve/types.py +0 -0
  237. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/types.py +0 -0
  238. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/__init__.py +0 -0
  239. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/async_utils.py +0 -0
  240. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/client_utils.py +0 -0
  241. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/config_utils.py +0 -0
  242. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/data_utils.py +0 -0
  243. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/display_utils.py +0 -0
  244. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/env_config_utils.py +0 -0
  245. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/env_utils.py +0 -0
  246. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/error_utils.py +0 -0
  247. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/eval_display.py +0 -0
  248. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/eval_utils.py +0 -0
  249. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/heartbeat.py +0 -0
  250. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/import_utils.py +0 -0
  251. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/install_utils.py +0 -0
  252. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/interception_utils.py +0 -0
  253. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/logging_utils.py +0 -0
  254. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/message_utils.py +0 -0
  255. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/metric_utils.py +0 -0
  256. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/path_utils.py +0 -0
  257. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/pricing_utils.py +0 -0
  258. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/process_utils.py +0 -0
  259. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/response_utils.py +0 -0
  260. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/save_utils.py +0 -0
  261. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/serve_utils.py +0 -0
  262. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/thread_utils.py +0 -0
  263. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/threaded_sandbox_client.py +0 -0
  264. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/tool_utils.py +0 -0
  265. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/usage_utils.py +0 -0
  266. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/utils/version_utils.py +0 -0
  267. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/__init__.py +0 -0
  268. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  269. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/dashboard/base.py +0 -0
  270. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/dashboard/eval.py +0 -0
  271. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/dashboard/replay.py +0 -0
  272. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/dashboard/validate.py +0 -0
  273. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/debug.py +0 -0
  274. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/eval/__init__.py +0 -0
  275. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/eval/main.py +0 -0
  276. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/eval/resume.py +0 -0
  277. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/gepa.py +0 -0
  278. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/init.py +0 -0
  279. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/output.py +0 -0
  280. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/replay.py +0 -0
  281. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/resolve.py +0 -0
  282. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/serve.py +0 -0
  283. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/cli/validate.py +0 -0
  284. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/clients/__init__.py +0 -0
  285. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/clients/client.py +0 -0
  286. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/clients/config.py +0 -0
  287. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/clients/eval.py +0 -0
  288. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/clients/train.py +0 -0
  289. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/__init__.py +0 -0
  290. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/debug.py +0 -0
  291. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/eval.py +0 -0
  292. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/init.py +0 -0
  293. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/replay.py +0 -0
  294. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/serve.py +0 -0
  295. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/configs/validate.py +0 -0
  296. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/decorators.py +0 -0
  297. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/dialects/__init__.py +0 -0
  298. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/dialects/anthropic.py +0 -0
  299. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/dialects/base.py +0 -0
  300. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/dialects/chat.py +0 -0
  301. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/env.py +0 -0
  302. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/episode.py +0 -0
  303. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/errors.py +0 -0
  304. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/gepa/__init__.py +0 -0
  305. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/gepa/adapter.py +0 -0
  306. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/gepa/config.py +0 -0
  307. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/gepa/dataset.py +0 -0
  308. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/gepa/reflection.py +0 -0
  309. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/gepa/runner.py +0 -0
  310. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/__init__.py +0 -0
  311. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  312. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  313. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  314. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/codex/harness.py +0 -0
  315. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/default/__init__.py +0 -0
  316. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/default/harness.py +0 -0
  317. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/default/program.py +0 -0
  318. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  319. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  320. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  321. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  322. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  323. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/null/__init__.py +0 -0
  324. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/null/harness.py +0 -0
  325. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/null/program.py +0 -0
  326. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  327. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/pi/harness.py +0 -0
  328. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  329. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  330. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  331. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  332. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  333. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/__init__.py +0 -0
  334. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/base.py +0 -0
  335. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/pool.py +0 -0
  336. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/server.py +0 -0
  337. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  338. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/tunnel/base.py +0 -0
  339. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/tunnel/custom.py +0 -0
  340. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/interception/tunnel/prime.py +0 -0
  341. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/judge.py +0 -0
  342. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/judges/__init__.py +0 -0
  343. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/judges/reference.py +0 -0
  344. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/judges/reference.txt +0 -0
  345. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/judges/rubric.py +0 -0
  346. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/judges/rubric.txt +0 -0
  347. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/legacy.py +0 -0
  348. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/loaders.py +0 -0
  349. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/mcp/__init__.py +0 -0
  350. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/mcp/launch.py +0 -0
  351. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/mcp/server.py +0 -0
  352. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/mcp/toolset.py +0 -0
  353. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/mcp/user.py +0 -0
  354. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/push.py +0 -0
  355. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/retries.py +0 -0
  356. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/__init__.py +0 -0
  357. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/base.py +0 -0
  358. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/docker.py +0 -0
  359. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/limiters.py +0 -0
  360. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/modal.py +0 -0
  361. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/prime.py +0 -0
  362. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/runtimes/subprocess.py +0 -0
  363. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/scoring.py +0 -0
  364. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/serve/__init__.py +0 -0
  365. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/serve/client.py +0 -0
  366. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/serve/pool.py +0 -0
  367. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/serve/server.py +0 -0
  368. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/serve/types.py +0 -0
  369. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/session.py +0 -0
  370. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/state.py +0 -0
  371. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/task.py +0 -0
  372. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/taskset.py +0 -0
  373. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/__init__.py +0 -0
  374. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  375. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  376. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  377. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  378. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  379. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  380. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  381. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/types.py +0 -0
  382. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/__init__.py +0 -0
  383. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/aio.py +0 -0
  384. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/format.py +0 -0
  385. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/generic.py +0 -0
  386. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/image.py +0 -0
  387. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/install.py +0 -0
  388. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/interrupt.py +0 -0
  389. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/logging.py +0 -0
  390. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/memory.py +0 -0
  391. {verifiers-0.2.1.dev55 → verifiers-0.2.1.dev57}/verifiers/v1/utils/sampling.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.2.1.dev55
3
+ Version: 0.2.1.dev57
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
@@ -100,12 +100,18 @@ from verifiers.v1.mcp import (
100
100
  )
101
101
  from verifiers.v1.graph import MessageNode
102
102
  from verifiers.v1.trace import (
103
+ TRACE_VERSION,
104
+ AgentInfo,
103
105
  Branch,
104
106
  Error,
107
+ EvalRunInfo,
108
+ RunInfo,
105
109
  TimeSpan,
106
110
  Timing,
107
111
  Trace,
108
112
  TraceTask,
113
+ TrainRunInfo,
114
+ VersionInfo,
109
115
  WireTrace,
110
116
  )
111
117
  from verifiers.v1.types import (
@@ -162,6 +168,12 @@ __all__ = [
162
168
  "Trace",
163
169
  "TraceTask",
164
170
  "WireTrace",
171
+ "TRACE_VERSION",
172
+ "AgentInfo",
173
+ "RunInfo",
174
+ "EvalRunInfo",
175
+ "TrainRunInfo",
176
+ "VersionInfo",
165
177
  "State",
166
178
  "StateT",
167
179
  "MessageNode",
@@ -12,7 +12,7 @@ from verifiers.v1.cli.dashboard import dashboard
12
12
  from verifiers.v1.cli.output import append_trace, output_path, save_config
13
13
  from verifiers.v1.decorators import discover_decorated
14
14
  from verifiers.v1.env import Environment
15
- from verifiers.v1.trace import Trace
15
+ from verifiers.v1.trace import EvalRunInfo, Trace
16
16
  from verifiers.v1.utils.sampling import sample
17
17
 
18
18
  logger = logging.getLogger(__name__)
@@ -67,6 +67,7 @@ async def run_eval(env: Environment, config: EvalConfig) -> list[Trace]:
67
67
  write_lock = asyncio.Lock()
68
68
 
69
69
  async def on_complete(trace: Trace) -> None:
70
+ trace.stamp(EvalRunInfo(id=config.uuid))
70
71
  await append_trace(out, trace, write_lock)
71
72
 
72
73
  # Shared tool servers (if any) come up once here and their URLs flow into every rollout
@@ -221,6 +222,7 @@ async def run_eval_server(config: EvalConfig) -> list[Trace]:
221
222
  sampling=config.sampling,
222
223
  )
223
224
  for trace in traces:
225
+ trace.stamp(EvalRunInfo(id=config.uuid))
224
226
  await append_trace(out, trace, write_lock)
225
227
  return traces
226
228
 
@@ -232,6 +234,7 @@ async def run_eval_server(config: EvalConfig) -> list[Trace]:
232
234
  model=config.model,
233
235
  sampling=config.sampling,
234
236
  )
237
+ trace.stamp(EvalRunInfo(id=config.uuid))
235
238
  await append_trace(out, trace, write_lock)
236
239
  return [trace]
237
240
 
@@ -21,10 +21,6 @@ from openai.types.responses import (
21
21
  ResponseUsage,
22
22
  )
23
23
  from openai.types.responses.response_input_param import FunctionCallOutput
24
- from openai.types.responses.response_usage import (
25
- InputTokensDetails,
26
- OutputTokensDetails,
27
- )
28
24
  from pydantic import BaseModel, ConfigDict
29
25
 
30
26
  from verifiers.v1.dialects.base import Dialect, StreamParser, iter_sse_reverse
@@ -58,11 +54,27 @@ _TERMINAL_MARKERS = tuple(
58
54
  _SAMPLING_KEYS = frozenset({"temperature", "top_p", "max_output_tokens", "max_tokens"})
59
55
 
60
56
 
57
+ class ProviderUsageInputTokensDetails(BaseModel):
58
+ """Permissive input token details: OpenAI-compatible providers may omit fields
59
+ the pinned SDK declares required (e.g. ``cache_write_tokens``)."""
60
+
61
+ model_config = ConfigDict(extra="allow")
62
+ cache_write_tokens: int | None = None
63
+ cached_tokens: int | None = None
64
+
65
+
66
+ class ProviderUsageOutputTokensDetails(BaseModel):
67
+ """Permissive output token details: providers may omit ``reasoning_tokens``."""
68
+
69
+ model_config = ConfigDict(extra="allow")
70
+ reasoning_tokens: int | None = None
71
+
72
+
61
73
  class ProviderUsage(ResponseUsage):
62
74
  """Responses usage with optional detail objects for OpenAI-compatible providers."""
63
75
 
64
- input_tokens_details: InputTokensDetails | None = None
65
- output_tokens_details: OutputTokensDetails | None = None
76
+ input_tokens_details: ProviderUsageInputTokensDetails | None = None
77
+ output_tokens_details: ProviderUsageOutputTokensDetails | None = None
66
78
 
67
79
 
68
80
  class OpenAIResponse(BaseModel):
@@ -26,6 +26,7 @@ from typing import TYPE_CHECKING, Any
26
26
 
27
27
  import numpy as np
28
28
  from pydantic import ConfigDict, Field, field_serializer, field_validator
29
+ from pydantic.json_schema import SkipJsonSchema
29
30
  from renderers.base import MultiModalData, PlaceholderRange, RenderedTokens
30
31
 
31
32
  from verifiers.v1.types import (
@@ -105,7 +106,7 @@ class MessageNode(StrictBaseModel):
105
106
  `mask`; empty for input messages."""
106
107
  finish_reason: FinishReason = None
107
108
  """The response's finish reason (assistant nodes only) — kept for truncation detection."""
108
- multi_modal_data: MultiModalData | None = None
109
+ multi_modal_data: SkipJsonSchema[MultiModalData | None] = None
109
110
  """The renderer items for the images this message's content introduces (pixel tensors,
110
111
  grids, hashes, placeholders) — the only carrier of the pixels from the env server to the
111
112
  trainer. `Branch.multi_modal_data` concatenates them along the path into the training
@@ -114,13 +115,13 @@ class MessageNode(StrictBaseModel):
114
115
  usage: Usage | None = None
115
116
  """Provider-reported token usage for this message's response (assistant nodes). Preserved
116
117
  on the wire and on disk, including cache-read tokens when the provider reports them."""
117
- routed_experts: np.ndarray | None = None
118
+ routed_experts: SkipJsonSchema[np.ndarray | None] = None
118
119
  """This node's slice of the MoE expert-routing array — uint8 `[len(token_ids), layers,
119
120
  top_k]`, the expert ids inference selected for exactly this node's tokens. Attributed from
120
121
  the turn's `generate` payload by `_attribute_routed_experts`; `Branch.routed_experts`
121
122
  concatenates these along the path into the trainer's router-replay input. Rides the wire as
122
123
  a raw-bytes `__nd__` dict; kept off disk by the dump-site `exclude` in prime-rl."""
123
- kept_tokens: KeptTokens | None = None
124
+ kept_tokens: SkipJsonSchema[KeptTokens | None] = None
124
125
  """Kept-set sampling masks for this node's sampled tokens, decoded: `ids` flat int32
125
126
  in position order, `counts` the per-token kept-set sizes (aligned with `logprobs`;
126
127
  0 = no mask). Assistant nodes only; consumed via `Branch.kept_tokens` for
@@ -1,8 +1,10 @@
1
+ from __future__ import annotations
2
+
1
3
  import logging
2
4
  import os
3
5
  from abc import ABC, abstractmethod
4
6
  from collections.abc import Mapping
5
- from typing import ClassVar, Generic, TypeVar
7
+ from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar
6
8
 
7
9
  from pydantic import Field
8
10
  from pydantic_config import BaseConfig
@@ -18,9 +20,13 @@ from verifiers.v1.runtimes import (
18
20
  SubprocessConfig,
19
21
  )
20
22
  from verifiers.v1.task import TaskData
21
- from verifiers.v1.trace import Trace
22
23
  from verifiers.v1.types import ID, Messages
23
24
 
25
+ if TYPE_CHECKING:
26
+ # Annotation-only: trace.py embeds HarnessConfig (AgentInfo), so the runtime
27
+ # import goes trace -> harness, not the other way around.
28
+ from verifiers.v1.trace import Trace
29
+
24
30
  logger = logging.getLogger(__name__)
25
31
 
26
32
 
@@ -5,6 +5,7 @@ from collections.abc import AsyncIterator
5
5
  from contextlib import asynccontextmanager
6
6
  from enum import StrEnum
7
7
 
8
+ from verifiers import __version__
8
9
  from verifiers.v1.harness import Harness
9
10
  from verifiers.v1.clients import ModelContext
10
11
  from verifiers.v1.decorators import discover_decorated, invoke
@@ -30,7 +31,8 @@ from verifiers.v1.runtimes import (
30
31
  from verifiers.v1.mcp import SharedToolServer, serve_tools, serve_user
31
32
  from verifiers.v1.state import state_cls
32
33
  from verifiers.v1.task import Task
33
- from verifiers.v1.trace import TraceTask, Trace
34
+ from verifiers.v1.trace import AgentInfo, Trace, TraceTask, VersionInfo
35
+ from verifiers.v1.utils.version import verifiers_commit
34
36
 
35
37
  logger = logging.getLogger(__name__)
36
38
 
@@ -109,6 +111,12 @@ class Rollout:
109
111
  trace: Trace = Trace(
110
112
  task=TraceTask(type=type(self.task).__name__, data=self.task.data),
111
113
  state=state_cls(type(self.task))(),
114
+ verifiers=VersionInfo(version=__version__, commit=verifiers_commit()),
115
+ agent=AgentInfo(
116
+ model=self.ctx.model,
117
+ sampling=self.ctx.sampling,
118
+ harness=self.harness.config,
119
+ ),
112
120
  )
113
121
  self.trace = trace # expose for the --rich dashboard
114
122
  self.phase = Phase.BOOT # leaving the queue: the runtime boots now
@@ -5,7 +5,7 @@ import time
5
5
  import traceback
6
6
  import uuid
7
7
  from collections.abc import Mapping
8
- from typing import TYPE_CHECKING, Any, Generic, TypeVar
8
+ from typing import TYPE_CHECKING, Annotated, Any, Generic, Literal, TypeVar
9
9
 
10
10
  import numpy as np
11
11
  from pydantic import Field, PrivateAttr
@@ -17,6 +17,7 @@ if TYPE_CHECKING:
17
17
  from verifiers.v1 import graph
18
18
  from verifiers.v1.errors import ProviderError
19
19
  from verifiers.v1.graph import MessageNode
20
+ from verifiers.v1.harness import HarnessConfig
20
21
  from verifiers.v1.runtimes import RuntimeInfo
21
22
  from verifiers.v1.state import State, StateT
22
23
  from verifiers.v1.task import DataT, WireTaskData
@@ -24,6 +25,7 @@ from verifiers.v1.types import (
24
25
  AssistantMessage,
25
26
  KeptTokens,
26
27
  Messages,
28
+ SamplingConfig,
27
29
  StrictBaseModel,
28
30
  Tool,
29
31
  ToolMessage,
@@ -212,6 +214,59 @@ _NODE_DUMP_EXCLUDE: dict = {
212
214
  """Raw tensor fields kept on the msgpack wire but excluded from JSON records."""
213
215
 
214
216
 
217
+ TRACE_VERSION = 1
218
+ """Version of the trace record schema (see `Trace.model_json_schema()`). Bumped on
219
+ breaking shape changes; optional-with-default fields are additive and don't bump it."""
220
+
221
+
222
+ class EvalRunInfo(StrictBaseModel):
223
+ """An eval run, stamped by the consumer (the eval CLI / a trainer's inline eval)."""
224
+
225
+ type: Literal["eval"] = "eval"
226
+ id: str | None = None
227
+ """The producing run: the eval CLI stamps its run uuid (a resumed eval counts as
228
+ a new run; kept traces keep their original id), trainers stamp their own."""
229
+ step: int | None = None
230
+ """The training step an inline eval was triggered at, stamped by the trainer;
231
+ None for a standalone eval (the eval CLI doesn't set it)."""
232
+
233
+
234
+ class TrainRunInfo(StrictBaseModel):
235
+ """A training run, stamped by the trainer."""
236
+
237
+ type: Literal["train"] = "train"
238
+ id: str | None = None
239
+ """The trainer's run identifier."""
240
+ step: int | None = None
241
+ """The training step this rollout belongs to."""
242
+
243
+
244
+ RunInfo = Annotated[EvalRunInfo | TrainRunInfo, Field(discriminator="type")]
245
+ """The run a trace belongs to, discriminated on `type`."""
246
+
247
+
248
+ class VersionInfo(StrictBaseModel):
249
+ """The verifiers build that produced this trace."""
250
+
251
+ version: str
252
+ """The installed verifiers package version."""
253
+ commit: str | None = None
254
+ """The verifiers git commit, when resolvable (a git-pinned install or a source
255
+ checkout); None otherwise (e.g. a PyPI wheel)."""
256
+
257
+
258
+ class AgentInfo(StrictBaseModel):
259
+ """The agent that produced this trace's sampled turns."""
260
+
261
+ model: str
262
+ """The model identifier requested from the client."""
263
+ sampling: SamplingConfig | None = None
264
+ """The resolved sampling settings the rollout ran with."""
265
+ harness: HarnessConfig | None = None
266
+ """The driving harness's config. Typed as the base config, so a custom harness's
267
+ extra fields don't serialize — records round-trip without importing the harness."""
268
+
269
+
215
270
  class TraceTask(StrictBaseModel, Generic[DataT]):
216
271
  """The task as recorded on the trace: the row (`data`, the wire half — fully typed,
217
272
  flows into scoring) plus the Task class name that produced the rollout (`type`) —
@@ -234,6 +289,15 @@ class Trace(StrictBaseModel, Generic[DataT, StateT]):
234
289
  """The task being solved: its class name (`task.type`) + its row (`task.data`)."""
235
290
  runtime: RuntimeInfo | None = None
236
291
  """The runtime's full config plus its provisioned resource ID."""
292
+ version: int = TRACE_VERSION
293
+ """The trace record schema this trace serializes as."""
294
+ verifiers: VersionInfo | None = None
295
+ """The verifiers build that produced this trace, stamped at rollout start —
296
+ replayed/re-read traces keep the build that originally produced them."""
297
+ run: RunInfo | None = None
298
+ """The run this trace belongs to (eval or train), consumer-stamped."""
299
+ agent: AgentInfo | None = None
300
+ """The agent (model, sampling, harness) that produced the sampled turns."""
237
301
  nodes: list[MessageNode] = Field(default_factory=list)
238
302
  """The message graph; branches are derived views and storage stays linear in turns."""
239
303
  tools: list[Tool] | None = None
@@ -414,6 +478,13 @@ class Trace(StrictBaseModel, Generic[DataT, StateT]):
414
478
  )
415
479
  self.rewards[name] = contribution
416
480
 
481
+ def stamp(self, run: RunInfo | None = None, **info: Any) -> None:
482
+ """Stamp identity only the consumer knows (the eval CLI / a trainer) onto the
483
+ trace; anything beyond `run` lands in `info`."""
484
+ if run is not None:
485
+ self.run = run
486
+ self.info.update(info)
487
+
417
488
  def stop(self, condition: str = "done") -> None:
418
489
  self.is_completed = True
419
490
  if self.stop_condition is None:
@@ -0,0 +1,43 @@
1
+ """Build provenance: the installed verifiers package's git commit, when resolvable."""
2
+
3
+ import json
4
+ import subprocess
5
+ from functools import cache
6
+ from importlib.metadata import PackageNotFoundError, distribution
7
+ from pathlib import Path
8
+
9
+
10
+ @cache
11
+ def verifiers_commit() -> str | None:
12
+ """The git commit of the installed verifiers, when resolvable: a git-pinned
13
+ install records it in `direct_url.json` (`vcs_info.commit_id`); an editable or
14
+ source checkout answers `git rev-parse`. None otherwise (e.g. a PyPI wheel)."""
15
+ try:
16
+ direct_url = distribution("verifiers").read_text("direct_url.json")
17
+ if direct_url:
18
+ commit = json.loads(direct_url).get("vcs_info", {}).get("commit_id")
19
+ if commit:
20
+ return commit
21
+ except (PackageNotFoundError, ValueError):
22
+ pass
23
+ package_dir = Path(__file__).resolve().parents[2]
24
+ try:
25
+ result = subprocess.run(
26
+ ["git", "-C", str(package_dir), "rev-parse", "--show-toplevel", "HEAD"],
27
+ capture_output=True,
28
+ text=True,
29
+ timeout=5,
30
+ )
31
+ except (OSError, subprocess.TimeoutExpired):
32
+ return None
33
+ if result.returncode != 0:
34
+ return None
35
+ lines = result.stdout.splitlines()
36
+ if len(lines) != 2:
37
+ return None
38
+ toplevel, commit = lines
39
+ # git discovers `.git` upward, so an installed package in a venv inside an
40
+ # unrelated git project would answer with that project's repo.
41
+ if Path(toplevel).resolve() != package_dir.parent:
42
+ return None
43
+ return commit or None
File without changes