verifiers 0.2.2.dev8__tar.gz → 0.2.2.dev10__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 (407) hide show
  1. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/PKG-INFO +1 -1
  2. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/duet_v1.py +1 -1
  3. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_e2e.py +4 -4
  4. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/agent.py +1 -1
  5. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/dashboard/eval.py +5 -5
  6. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/eval/runner.py +1 -1
  7. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/eval.py +1 -1
  8. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/env.py +11 -11
  9. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/agentic_judge/env.py +1 -1
  10. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/best_of_n/env.py +1 -1
  11. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/episode.py +2 -2
  12. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/gepa/adapter.py +2 -2
  13. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/retries.py +4 -4
  14. verifiers-0.2.2.dev8/tests/AGENTS.md +0 -5
  15. verifiers-0.2.2.dev8/verifiers/envs/AGENTS.md +0 -72
  16. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/.gitignore +0 -0
  17. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/LICENSE +0 -0
  18. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/README.md +0 -0
  19. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/pyproject.toml +0 -0
  20. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/__init__.py +0 -0
  21. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/conftest.py +0 -0
  22. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_browser_env.py +0 -0
  23. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_build_script.py +0 -0
  24. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_cli_agent_env.py +0 -0
  25. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_client_auth_errors.py +0 -0
  26. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_client_config.py +0 -0
  27. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_client_multimodal_types.py +0 -0
  28. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_composable_env.py +0 -0
  29. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_context_token_metrics.py +0 -0
  30. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_decorator_ranks.py +0 -0
  31. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_endpoint_registry.py +0 -0
  32. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_env_group.py +0 -0
  33. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_env_server.py +0 -0
  34. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_environment.py +0 -0
  35. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_environment_extra.py +0 -0
  36. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_error_chain.py +0 -0
  37. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_eval_display.py +0 -0
  38. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_eval_utils.py +0 -0
  39. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_gepa_cli.py +0 -0
  40. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_gepa_utils.py +0 -0
  41. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_gym_env.py +0 -0
  42. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_harbor_env_mcp.py +0 -0
  43. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_imports.py +0 -0
  44. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_init_script.py +0 -0
  45. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_install_utils.py +0 -0
  46. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_interception_utils.py +0 -0
  47. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_logging.py +0 -0
  48. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_math_rubric.py +0 -0
  49. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_maybe_think_parser.py +0 -0
  50. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_message_utils.py +0 -0
  51. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_message_utils_multimodal.py +0 -0
  52. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_multiturn_env.py +0 -0
  53. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_nemorl_client.py +0 -0
  54. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_openai_chat_completions_token_client.py +0 -0
  55. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_openai_responses_client.py +0 -0
  56. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_opencode_rlm_env.py +0 -0
  57. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_openenv_client.py +0 -0
  58. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_parser.py +0 -0
  59. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_path_utils.py +0 -0
  60. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_per_turn_timing.py +0 -0
  61. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_pricing_utils.py +0 -0
  62. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_prime_plugin.py +0 -0
  63. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_renderer_client.py +0 -0
  64. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_renderer_e2e.py +0 -0
  65. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_rlm_composable_env.py +0 -0
  66. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_rubric.py +0 -0
  67. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_rubric_group.py +0 -0
  68. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_sandbox_debug_env.py +0 -0
  69. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_sandbox_env.py +0 -0
  70. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_sandbox_mixin.py +0 -0
  71. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_save_utils.py +0 -0
  72. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_setup_script.py +0 -0
  73. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_singleturn_env.py +0 -0
  74. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_stateful_tool_env.py +0 -0
  75. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_think_parser.py +0 -0
  76. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_tool_env.py +0 -0
  77. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_tool_utils.py +0 -0
  78. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_trajectory_processing.py +0 -0
  79. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_tui_info_formatting.py +0 -0
  80. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_types.py +0 -0
  81. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/test_xml_parser.py +0 -0
  82. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/conftest.py +0 -0
  83. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  84. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  85. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/echo_multi_v0.py +0 -0
  86. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  87. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  88. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/echo_v0.py +0 -0
  89. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/echo_v1.py +0 -0
  90. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/pyproject.toml +0 -0
  91. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  92. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_color_codeword_tasks.py +0 -0
  93. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_configs.py +0 -0
  94. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_envs.py +0 -0
  95. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_graph.py +0 -0
  96. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_judges.py +0 -0
  97. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_legacy.py +0 -0
  98. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_scoring.py +0 -0
  99. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_taskset.py +0 -0
  100. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/tests/v1/test_trace.py +0 -0
  101. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/__init__.py +0 -0
  102. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/__init__.py +0 -0
  103. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/__init__.py +0 -0
  104. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/build.py +0 -0
  105. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/eval.py +0 -0
  106. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/gepa.py +0 -0
  107. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/init.py +0 -0
  108. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/install.py +0 -0
  109. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/commands/setup.py +0 -0
  110. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/plugins/__init__.py +0 -0
  111. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/plugins/prime.py +0 -0
  112. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/cli/tui.py +0 -0
  113. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/__init__.py +0 -0
  114. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/anthropic_messages_client.py +0 -0
  115. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/client.py +0 -0
  116. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
  117. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/openai_chat_completions_client.py +0 -0
  118. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
  119. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/openai_completions_client.py +0 -0
  120. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/openai_responses_client.py +0 -0
  121. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/clients/renderer_client.py +0 -0
  122. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/decorators.py +0 -0
  123. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/__init__.py +0 -0
  124. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/env_group.py +0 -0
  125. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/environment.py +0 -0
  126. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/README.md +0 -0
  127. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/__init__.py +0 -0
  128. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/cli_agent_env.py +0 -0
  129. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/README.md +0 -0
  130. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/__init__.py +0 -0
  131. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/_filter.py +0 -0
  132. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/composable_env.py +0 -0
  133. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/harness.py +0 -0
  134. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
  135. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  136. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
  137. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
  138. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
  139. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
  140. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
  141. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/task.py +0 -0
  142. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
  143. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  144. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  145. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  146. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  147. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
  148. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  149. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
  150. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  151. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  152. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
  153. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  154. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  155. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  156. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  157. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  158. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  159. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  160. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  161. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  162. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  163. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  164. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  165. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  166. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  167. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  168. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  169. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  170. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  171. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  172. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  173. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  174. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  175. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  176. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/gym_env.py +0 -0
  177. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
  178. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/harbor_env/env.py +0 -0
  179. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
  180. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/mcp_env.py +0 -0
  181. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/opencode_env.py +0 -0
  182. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
  183. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
  184. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
  185. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/utils/__init__.py +0 -0
  186. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/utils/file_locks.py +0 -0
  187. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
  188. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/README.md +0 -0
  189. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/__init__.py +0 -0
  190. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/README.md +0 -0
  191. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
  192. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
  193. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
  194. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
  195. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  196. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  197. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/openenv_env.py +0 -0
  198. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
  199. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/integrations/textarena_env.py +0 -0
  200. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/multiturn_env.py +0 -0
  201. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/python_env.py +0 -0
  202. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/sandbox_env.py +0 -0
  203. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/singleturn_env.py +0 -0
  204. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/stateful_tool_env.py +0 -0
  205. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/envs/tool_env.py +0 -0
  206. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/errors.py +0 -0
  207. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/gepa/__init__.py +0 -0
  208. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/gepa/adapter.py +0 -0
  209. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/gepa/config.py +0 -0
  210. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/gepa/display.py +0 -0
  211. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/gepa/gepa_utils.py +0 -0
  212. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/parsers/__init__.py +0 -0
  213. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/parsers/maybe_think_parser.py +0 -0
  214. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/parsers/parser.py +0 -0
  215. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/parsers/think_parser.py +0 -0
  216. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/parsers/xml_parser.py +0 -0
  217. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/rubrics/__init__.py +0 -0
  218. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
  219. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/rubrics/judge_rubric.py +0 -0
  220. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/rubrics/math_rubric.py +0 -0
  221. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/rubrics/rubric.py +0 -0
  222. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/rubrics/rubric_group.py +0 -0
  223. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/__init__.py +0 -0
  224. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/build.py +0 -0
  225. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/eval.py +0 -0
  226. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/gepa.py +0 -0
  227. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/init.py +0 -0
  228. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/install.py +0 -0
  229. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/setup.py +0 -0
  230. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/scripts/tui.py +0 -0
  231. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/__init__.py +0 -0
  232. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/client/env_client.py +0 -0
  233. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/client/zmq_env_client.py +0 -0
  234. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/server/__init__.py +0 -0
  235. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/server/env_router.py +0 -0
  236. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/server/env_server.py +0 -0
  237. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/server/env_worker.py +0 -0
  238. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/server/zmq_env_server.py +0 -0
  239. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/serve/types.py +0 -0
  240. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/types.py +0 -0
  241. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/__init__.py +0 -0
  242. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/async_utils.py +0 -0
  243. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/client_utils.py +0 -0
  244. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/config_utils.py +0 -0
  245. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/data_utils.py +0 -0
  246. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/display_utils.py +0 -0
  247. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/env_config_utils.py +0 -0
  248. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/env_utils.py +0 -0
  249. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/error_utils.py +0 -0
  250. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/eval_display.py +0 -0
  251. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/eval_utils.py +0 -0
  252. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/heartbeat.py +0 -0
  253. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/import_utils.py +0 -0
  254. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/install_utils.py +0 -0
  255. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/interception_utils.py +0 -0
  256. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/logging_utils.py +0 -0
  257. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/message_utils.py +0 -0
  258. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/metric_utils.py +0 -0
  259. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/path_utils.py +0 -0
  260. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/pricing_utils.py +0 -0
  261. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/process_utils.py +0 -0
  262. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/response_utils.py +0 -0
  263. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/save_utils.py +0 -0
  264. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/serve_utils.py +0 -0
  265. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/thread_utils.py +0 -0
  266. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/threaded_sandbox_client.py +0 -0
  267. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/tool_utils.py +0 -0
  268. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/usage_utils.py +0 -0
  269. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/utils/version_utils.py +0 -0
  270. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/__init__.py +0 -0
  271. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/__init__.py +0 -0
  272. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  273. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/dashboard/base.py +0 -0
  274. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/dashboard/replay.py +0 -0
  275. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/dashboard/validate.py +0 -0
  276. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/debug.py +0 -0
  277. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/eval/__init__.py +0 -0
  278. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/eval/main.py +0 -0
  279. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/eval/resume.py +0 -0
  280. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/gepa.py +0 -0
  281. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/init.py +0 -0
  282. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/output.py +0 -0
  283. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/replay.py +0 -0
  284. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/resolve.py +0 -0
  285. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/serve.py +0 -0
  286. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/cli/validate.py +0 -0
  287. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/clients/__init__.py +0 -0
  288. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/clients/client.py +0 -0
  289. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/clients/config.py +0 -0
  290. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/clients/eval.py +0 -0
  291. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/clients/train.py +0 -0
  292. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/__init__.py +0 -0
  293. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/debug.py +0 -0
  294. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/env.py +0 -0
  295. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/init.py +0 -0
  296. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/replay.py +0 -0
  297. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/serve.py +0 -0
  298. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/configs/validate.py +0 -0
  299. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/decorators.py +0 -0
  300. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/dialects/__init__.py +0 -0
  301. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/dialects/anthropic.py +0 -0
  302. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/dialects/base.py +0 -0
  303. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/dialects/chat.py +0 -0
  304. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/dialects/responses.py +0 -0
  305. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/__init__.py +0 -0
  306. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  307. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  308. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  309. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/envs/single_agent/env.py +0 -0
  310. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/errors.py +0 -0
  311. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/gepa/__init__.py +0 -0
  312. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/gepa/config.py +0 -0
  313. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/gepa/dataset.py +0 -0
  314. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/gepa/reflection.py +0 -0
  315. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/gepa/runner.py +0 -0
  316. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/graph.py +0 -0
  317. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harness.py +0 -0
  318. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/__init__.py +0 -0
  319. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  320. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/bash/harness.py +0 -0
  321. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/bash/program.py +0 -0
  322. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  323. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  324. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  325. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/codex/harness.py +0 -0
  326. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  327. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  328. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  329. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  330. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  331. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/null/__init__.py +0 -0
  332. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/null/harness.py +0 -0
  333. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/null/program.py +0 -0
  334. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  335. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/pi/harness.py +0 -0
  336. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/pool/__init__.py +0 -0
  337. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/pool/harness.py +0 -0
  338. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  339. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  340. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  341. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  342. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  343. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/__init__.py +0 -0
  344. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/base.py +0 -0
  345. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/pool.py +0 -0
  346. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/server.py +0 -0
  347. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  348. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/tunnel/base.py +0 -0
  349. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/tunnel/custom.py +0 -0
  350. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/interception/tunnel/prime.py +0 -0
  351. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/judge.py +0 -0
  352. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/judges/__init__.py +0 -0
  353. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/judges/reference.py +0 -0
  354. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/judges/reference.txt +0 -0
  355. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/judges/rubric.py +0 -0
  356. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/judges/rubric.txt +0 -0
  357. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/legacy.py +0 -0
  358. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/loaders.py +0 -0
  359. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/mcp/__init__.py +0 -0
  360. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/mcp/launch.py +0 -0
  361. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/mcp/server.py +0 -0
  362. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/mcp/toolset.py +0 -0
  363. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/mcp/user.py +0 -0
  364. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/push.py +0 -0
  365. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/rollout.py +0 -0
  366. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/__init__.py +0 -0
  367. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/base.py +0 -0
  368. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/docker.py +0 -0
  369. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/limiters.py +0 -0
  370. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/modal.py +0 -0
  371. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/prime.py +0 -0
  372. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/runtimes/subprocess.py +0 -0
  373. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/scoring.py +0 -0
  374. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/serve/__init__.py +0 -0
  375. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/serve/client.py +0 -0
  376. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/serve/pool.py +0 -0
  377. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/serve/server.py +0 -0
  378. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/serve/types.py +0 -0
  379. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/session.py +0 -0
  380. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/state.py +0 -0
  381. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/task.py +0 -0
  382. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/taskset.py +0 -0
  383. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/__init__.py +0 -0
  384. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  385. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  386. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  387. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  388. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  389. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  390. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  391. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  392. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  393. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/trace.py +0 -0
  394. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/types.py +0 -0
  395. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/__init__.py +0 -0
  396. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/aio.py +0 -0
  397. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/compile.py +0 -0
  398. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/format.py +0 -0
  399. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/generic.py +0 -0
  400. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/git.py +0 -0
  401. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/image.py +0 -0
  402. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/install.py +0 -0
  403. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/interrupt.py +0 -0
  404. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/logging.py +0 -0
  405. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/memory.py +0 -0
  406. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/sampling.py +0 -0
  407. {verifiers-0.2.2.dev8 → verifiers-0.2.2.dev10}/verifiers/v1/utils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.2.2.dev8
3
+ Version: 0.2.2.dev10
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
@@ -3,7 +3,7 @@
3
3
  The multi-agent fixture for the v1 e2e suite (resolved by id `duet-v1`): an
4
4
  `Env` subclass exported alongside its taskset, with two roles ("a", a trainable
5
5
  seat on the run's model; "b", pinned untrainable), a `run()` that fans both out on
6
- the task, and a `finalize()` that records a sibling-dependent signal. One eval rollout
6
+ the task, and a `finalize()` that records a sibling-dependent signal. One episode
7
7
  should land one record carrying two role-stamped traces.
8
8
  """
9
9
 
@@ -265,8 +265,8 @@ async def test_agentic(run_v1, harness, harness_runtime, tmp_path):
265
265
  @pytest.mark.e2e
266
266
  async def test_multi_agent_env(run_v1, tmp_path):
267
267
  """An `Env` subclass shipped with its taskset (duet-v1): two roles run the
268
- task, `score()` episodes a sibling-dependent metric, and one eval rollout lands one
269
- episode carrying two role-stamped traces."""
268
+ task, `score()` episodes a sibling-dependent metric, and one episode carries
269
+ two role-stamped traces."""
270
270
  import json
271
271
 
272
272
  traces = await run_v1(
@@ -275,7 +275,7 @@ async def test_multi_agent_env(run_v1, tmp_path):
275
275
  output_dir=tmp_path,
276
276
  max_turns=2,
277
277
  )
278
- assert len(traces) == 2 # one env-rollout, one trace per role
278
+ assert len(traces) == 2 # one episode, one trace per role
279
279
  assert sorted(t.agent_name for t in traces) == ["a", "b"]
280
280
  (b,) = [t for t in traces if t.agent_name == "b"]
281
281
  assert b.trainable is False
@@ -305,7 +305,7 @@ async def test_env_id_best_of_n(run_v1, tmp_path):
305
305
  output_dir=tmp_path,
306
306
  max_turns=2,
307
307
  )
308
- assert len(traces) == 2 # one env-rollout, two attempts
308
+ assert len(traces) == 2 # one episode, two attempts
309
309
  assert all(t.agent_name == "agent" and t.ok for t in traces)
310
310
  assert any(t.metrics["best"] == 1.0 for t in traces)
311
311
  assert all(t.metrics["pass_at_n"] == 1.0 for t in traces) # echo always passes
@@ -350,7 +350,7 @@ class Agent:
350
350
 
351
351
 
352
352
  class _EpisodeAgent(Agent):
353
- """One role's `Agent` for one env-rollout, built fresh per episode (a cheap
353
+ """One role's `Agent` for one episode, built fresh each time (a cheap
354
354
  bundle of references — expensive resources are env-owned and borrowed, so no
355
355
  state spans concurrent episodes): traces get their agent standing the moment
356
356
  they're created, finished ones land in `completed` (the episode's traces),
@@ -291,7 +291,7 @@ def Progress(
291
291
  ) -> Group:
292
292
  # On resume, `slots` includes the previous session's kept rollouts (as finished slots), so
293
293
  # progress, reward, err, and the breakdown cover the whole run, not just this session's.
294
- done = [s for s in slots if s.done] # fully scored env-rollouts
294
+ done = [s for s in slots if s.done] # fully scored episodes
295
295
  done_traces = [t for s in done for t in s.traces]
296
296
  # Score aggregates read the policy's traces: auxiliary roles (a judge's verdict
297
297
  # run, a modeled user) are `trainable=False` and carry no rewards, so counting
@@ -300,7 +300,7 @@ def Progress(
300
300
  scored = [t for t in done_traces if t.trainable] or done_traces
301
301
  total = len(slots)
302
302
  # Headline reward = mean over non-errored traces; when any errored, `format_mean` appends
303
- # the global avg (errored count as 0) in parens. `err` is the share of env-rollouts that
303
+ # the global avg (errored count as 0) in parens. `err` is the share of episodes that
304
304
  # ended not-ok (a trace errored, or the env's rollout()/score() hook itself failed).
305
305
  reward = format_mean(scored, lambda t: t.reward)
306
306
  err = (
@@ -477,7 +477,7 @@ def _stage(trace: Trace) -> str:
477
477
  """The stage a live (not-yet-done) rollout is in, derived from its trace's timing
478
478
  spans — the engine opens and closes each span exactly at the stage transitions, so
479
479
  the current stage is the latest span started but not yet ended. A completed trace
480
- whose slot isn't done is waiting on its env-rollout's other traces (and the env's
480
+ whose slot isn't done is waiting on its episode's other traces (and the env's
481
481
  `score()`) — that's scoring."""
482
482
  if trace.is_completed:
483
483
  return "scoring"
@@ -531,7 +531,7 @@ def _brace(i: int, size: int) -> str:
531
531
 
532
532
  def Rows(groups: list[list[RunSlot]], now: float, runtime_type: str) -> Table:
533
533
  # (brace, state, left sections, result, time); a slot contributes one row per live
534
- # trace (a multi-agent env-rollout shows each role's trace), braced per task.
534
+ # trace (a multi-agent episode shows each role's trace), braced per task.
535
535
  rows: list[tuple[str, str, list[str], str, str]] = []
536
536
  for group in groups:
537
537
  group_rows: list[tuple[str, list[str], str, str]] = []
@@ -572,7 +572,7 @@ def Rows(groups: list[list[RunSlot]], now: float, runtime_type: str) -> Table:
572
572
  ): # flag a clipped rollout next to its stop condition
573
573
  stop = f"{stop} (truncated)".strip()
574
574
  elif t.is_completed and (err := t.error) is not None:
575
- # An errored trace whose env-rollout is still running its other
575
+ # An errored trace whose episode is still running its other
576
576
  # traces (or `score()`) is already a failure — show it, don't
577
577
  # let it sit as "scoring" until the whole episode lands.
578
578
  state, result, stop = "error", err.type, ""
@@ -1,4 +1,4 @@
1
- """The eval runner: fan env-rollouts out with bounded concurrency."""
1
+ """The eval runner: fan episodes out with bounded concurrency."""
2
2
 
3
3
  import asyncio
4
4
  import contextlib
@@ -33,7 +33,7 @@ class EvalConfig(EnvServerConfig):
33
33
  "group_size", "rollouts_per_example", "num_rollouts", "r"
34
34
  ),
35
35
  )
36
- """Independent env-rollouts per task — the trainer's group size."""
36
+ """Independent episodes per task — the trainer's group size."""
37
37
  shuffle: bool = Field(False, validation_alias=AliasChoices("shuffle", "s"))
38
38
  """Shuffle tasks before taking the first `num_tasks`."""
39
39
  max_concurrent: int | None = Field(
@@ -1,4 +1,4 @@
1
- """Compose a taskset, its agents, and how one task becomes one env-rollout."""
1
+ """Compose a taskset, its agents, and how one task becomes one episode."""
2
2
 
3
3
  import asyncio
4
4
  import contextlib
@@ -196,7 +196,7 @@ def _as_error(e: Exception) -> Error:
196
196
 
197
197
  @dataclass
198
198
  class RunSlot:
199
- """One planned env-rollout, observable while it happens: `traces` collects the
199
+ """One planned episode, observable while it happens: `traces` collects the
200
200
  current attempt (a retry restarts the list), `episode`/`done` land when final."""
201
201
 
202
202
  task: Task
@@ -218,7 +218,7 @@ ConfigT = TypeVar("ConfigT", bound=EnvConfig)
218
218
 
219
219
 
220
220
  class Env(ABC, Generic[ConfigT]):
221
- """A taskset, the agents that play it, and how one task becomes one env-rollout.
221
+ """A taskset, the agents that play it, and how one task becomes one episode.
222
222
 
223
223
  Abstract: every run gets a concrete subclass — `SingleAgentEnv` for every plain
224
224
  taskset. A multi-agent env declares each role as an `AgentConfig` field on an
@@ -298,10 +298,10 @@ class Env(ABC, Generic[ConfigT]):
298
298
 
299
299
  @abstractmethod
300
300
  async def run(self, task: Task, agents: Agents) -> None:
301
- """One env-rollout: how the agents interact on `task`, returning nothing —
301
+ """One episode: how the agents interact on `task`, returning nothing —
302
302
  every finished run joins the episode automatically, stamped with its seat's
303
303
  standing. An agent-run failure is data on its trace (this hook decides what
304
- it means); an exception raised here is the env-rollout itself failing."""
304
+ it means); an exception raised here is the episode itself failing."""
305
305
 
306
306
  async def finalize(self, task: Task, episode: Episode) -> None:
307
307
  """Cross-agent judgement — THE programmable judgement surface: plain
@@ -309,11 +309,11 @@ class Env(ABC, Generic[ConfigT]):
309
309
  ran on each trace's own task). `episode.traces` is the flat episode in
310
310
  completion order, each trace's `agent_name` stamp naming its agent; attach
311
311
  signals via `record_reward`/`record_metric`, in program order. A raise
312
- fails the env-rollout (the retryable unit) — validate strictly, never
312
+ fails the episode (the retryable unit) — validate strictly, never
313
313
  record a guess."""
314
314
 
315
315
  def complete(self, episode: Episode) -> bool:
316
- """Whether a finished env-rollout is a valid result — what `--resume` keeps
316
+ """Whether a finished episode is a valid result — what `--resume` keeps
317
317
  vs. redoes (default `episode.ok`). An env whose `run()` tolerates a
318
318
  failed participant overrides this, else resume re-runs accepted rollouts."""
319
319
  return episode.ok
@@ -340,7 +340,7 @@ class Env(ABC, Generic[ConfigT]):
340
340
  on_trace: Callable[[Trace], None] | None,
341
341
  on_discard: Callable[[Trace], None] | None,
342
342
  ) -> Agents:
343
- """One env-rollout's `Agents` — fresh value objects riding the live serving
343
+ """One episode's `Agents` — fresh value objects riding the live serving
344
344
  resources (nothing shared across concurrent episodes); `setup()` sees them first."""
345
345
 
346
346
  def make(name: str, spec: AgentConfig) -> Agent:
@@ -391,7 +391,7 @@ class Env(ABC, Generic[ConfigT]):
391
391
  on_discard: Callable[[Trace], None] | None = None,
392
392
  gate: asyncio.Semaphore | None = None,
393
393
  ) -> Episode:
394
- """One env-rollout of `task`, minted as the wire atom: `setup()` then `run()`
394
+ """One episode of `task`, minted as the wire atom: `setup()` then `run()`
395
395
  over fresh agents, then `finalize()`; `gate` bounds
396
396
  the agent runs, so internal fan-out counts against `--max-concurrent` too.
397
397
  Traces join the episode as runs complete — a hook raising mid-way yields the
@@ -440,7 +440,7 @@ class Env(ABC, Generic[ConfigT]):
440
440
  return episode
441
441
 
442
442
  def slots(self, task: Task, n: int = 1) -> list[RunSlot]:
443
- """Plan `n` independent env-rollouts of `task` (`-r n`): nothing couples them."""
443
+ """Plan `n` independent episodes of `task` (`-r n`): nothing couples them."""
444
444
  if n < 1:
445
445
  raise ValueError("a task needs at least one rollout (n >= 1)")
446
446
  return [RunSlot(task) for _ in range(n)]
@@ -452,7 +452,7 @@ class Env(ABC, Generic[ConfigT]):
452
452
  semaphore: asyncio.Semaphore | None = None,
453
453
  on_complete: Callable[[Episode], Awaitable[None]] | None = None,
454
454
  ) -> Episode:
455
- """Run one planned env-rollout to its finished episode, with whole-episode
455
+ """Run one planned episode to completion, with whole-episode
456
456
  retries per `--env.retries`; `semaphore` gates the agent RUNS, not the
457
457
  episode; `on_complete` (the runners' persistence hook) fires when final."""
458
458
 
@@ -152,7 +152,7 @@ class AgenticJudgeEnv(vf.Env[AgenticJudgeEnvConfig]):
152
152
  async def finalize(self, task: vf.Task, episode: vf.Episode) -> None:
153
153
  """Record the scraped verdict on the SOLVER's trace. Strict on scale: an
154
154
  off-scale score raises (a judge answering `95` must not clamp to full
155
- marks), failing the env-rollout rather than scoring the solver wrong."""
155
+ marks), failing the episode rather than scoring the solver wrong."""
156
156
  by_agent = {t.agent_name: t for t in episode.traces}
157
157
  solution, verdict = by_agent["solver"], by_agent["judge"]
158
158
  data = verdict.info.get("verdict")
@@ -18,7 +18,7 @@ class BestOfNEnvConfig(vf.EnvConfig):
18
18
  # composes with a plain run's `--env.agent.*` flags unchanged.
19
19
  agent: vf.AgentConfig = vf.AgentConfig()
20
20
  n: int = Field(4, ge=1)
21
- """Independent attempts per env-rollout, scored against each other."""
21
+ """Independent attempts per episode, scored against each other."""
22
22
  threshold: float = 1.0
23
23
  """A sibling counts as solved when its task reward reaches this (`pass_at_n`)."""
24
24
 
@@ -1,4 +1,4 @@
1
- """The episode — one env-rollout's traces plus their shared standing, whole."""
1
+ """The episode — one run's traces plus their shared standing, whole."""
2
2
 
3
3
  import uuid
4
4
  from typing import Generic
@@ -12,7 +12,7 @@ from verifiers.v1.types import StrictBaseModel
12
12
 
13
13
 
14
14
  class Episode(StrictBaseModel, Generic[DataT, StateT]):
15
- """One env-rollout, whole: its identity and standing (`id`, `env`, `errors`)
15
+ """One run of a task, whole: its identity and standing (`id`, `env`, `errors`)
16
16
  next to its flat `traces` — the object `finalize()` receives, the engine
17
17
  returns, and the durability envelope: one episode is one `traces.jsonl` line
18
18
  and one serve reply, so it persists and arrives whole or not at all — a torn
@@ -54,7 +54,7 @@ class GEPAAdapter:
54
54
  capture_traces: bool = False,
55
55
  ) -> EvaluationBatch[Episode, Episode]:
56
56
  """Run `candidate`'s system prompt on the tasks named by `batch` (`Task.idx` values)
57
- and score them — one env-rollout and one score per batch entry, so the batch stays
57
+ and score them — one episode and one score per batch entry, so the batch stays
58
58
  aligned however many traces the env's episode holds. Called synchronously by GEPA on
59
59
  the main thread; each batch's rollouts run on the runner's persistent loop via
60
60
  `run_until_complete`."""
@@ -122,7 +122,7 @@ class GEPAAdapter:
122
122
 
123
123
 
124
124
  def _episode_score(episode: Episode) -> float:
125
- """A candidate's score on one env-rollout: the mean reward of the episode's scored
125
+ """A candidate's score on one episode: the mean reward of the episode's scored
126
126
  traces. Seats that recorded no rewards (a reward-less judge) don't dilute the
127
127
  signal; an episode with no scored traces scores 0."""
128
128
  scored = [trace.reward for trace in episode.traces if trace.rewards]
@@ -5,7 +5,7 @@ framework adds targeted retries only where no SDK sits underneath (`retrying()`)
5
5
  Two opt-in whole-run retry atoms sit above that: `Agent.run` reruns ITS OWN rollout
6
6
  while the trace ends with a retryable error (`--env.<agent>.retries` — a flaky
7
7
  grader retries without re-burning the solver), and `run_episode_with_retry` reruns
8
- the entire env-rollout (`--env.retries`) — the coarse fallback for faults no agent
8
+ the entire episode (`--env.retries`) — the coarse fallback for faults no agent
9
9
  owns: the env's own hooks, cross-agent state. Both match by exception type name;
10
10
  both off by default.
11
11
  """
@@ -105,7 +105,7 @@ def trace_should_retry(trace, retry: RetryConfig) -> bool:
105
105
 
106
106
 
107
107
  def episode_should_retry(episode: Episode, retry: RetryConfig) -> bool:
108
- """Whether a finished env-rollout should be retried: any LIVE captured error —
108
+ """Whether a finished episode should be retried: any LIVE captured error —
109
109
  episode-level, or on a trace that ended not-`ok` — is retryable. An `ok` trace's
110
110
  errors are history its own per-agent retry already recovered from, never
111
111
  grounds to re-run the episode. All of a failed trace's captures count, not just
@@ -121,7 +121,7 @@ async def run_episode_with_retry(
121
121
  run: Callable[[], Awaitable[Episode]],
122
122
  retry: RetryConfig,
123
123
  ) -> Episode:
124
- """Run one env-rollout (`run` must mint a fresh episode per call), retrying while
124
+ """Run one episode (each attempt mints a fresh one), retrying while
125
125
  it ends with a retryable error. When the final attempt fails too, the earlier
126
126
  attempts' errors are prepended so the episode shows the full history; a final
127
127
  good attempt returns clean."""
@@ -136,7 +136,7 @@ async def run_episode_with_retry(
136
136
  history.extend(trace.errors)
137
137
  delay = backoff(attempt)
138
138
  logger.warning(
139
- "retrying env-rollout %s (retry %d/%d) in %.1fs after error: %s",
139
+ "retrying episode %s (retry %d/%d) in %.1fs after error: %s",
140
140
  final.id,
141
141
  attempt + 1,
142
142
  retry.max_retries,
@@ -1,5 +0,0 @@
1
- # Testing
2
-
3
- Use `uv run pytest` to run any tests, as it will include other dev dependencies. Running `pytest` directly will NOT include these dependencies.
4
-
5
- See `pyproject.toml` for more details.
@@ -1,72 +0,0 @@
1
- # Environments
2
-
3
- **WIP** -- subject to change.
4
-
5
- ## Overview
6
-
7
- Environment classes are organized into three categories:
8
-
9
- | Category | Location | Description |
10
- |----------|----------|-------------|
11
- | **Core** | `verifiers/envs/` | Stable base classes and sandbox environments |
12
- | **Integrations** | `verifiers/envs/integrations/` | Third-party library wrappers (lazy-loaded, require extras) |
13
- | **Experimental** | `verifiers/envs/experimental/` | Newer environments with sharper edges |
14
-
15
- Avoid storing global state in the environment. Instead, use the state argument to the environment's methods.
16
-
17
- ## Core Environments
18
-
19
- Base classes for building environments:
20
-
21
- - `SingleTurnEnv` - Single response Q&A tasks
22
- - `MultiTurnEnv` - Multi-turn interactions (games, simulations, agents)
23
- - `ToolEnv` - Stateless, idempotent tools passed as Python functions with all arguments exposed to the model. For managing additional state, use `StatefulToolEnv`.
24
- - `StatefulToolEnv` - Tools requiring per-rollout state (e.g. sandbox ID). Use `update_tool_args` to inject state into tool calls. See `sandbox_env.py` for an example.
25
- - `SandboxEnv` - Sandboxed container execution using `prime` sandboxes. All sandbox setup logic should be included in the start command and queued via `setup_state`, but not awaited—await resources only when first needed to overlap provisioning with rollout. See `python_env.py` for an example.
26
- - `PythonEnv` - Persistent Python REPL in sandbox
27
-
28
- ## Integrations
29
-
30
- Third-party library wrappers that require additional dependencies:
31
-
32
- | Environment | Extra | Install Command |
33
- |-------------|-------|-----------------|
34
- | `TextArenaEnv` | `ta` | `uv add 'verifiers[ta]'` |
35
- | `ReasoningGymEnv` | `rg` | `uv add 'verifiers[rg]'` |
36
- | `BrowserEnv` | `browser` | `uv add 'verifiers[browser]'` |
37
-
38
- When developing in the `verifiers` repo:
39
- ```bash
40
- uv sync --extra ta # for TextArenaEnv
41
- uv sync --extra rg # for ReasoningGymEnv
42
- uv sync --extra browser # for BrowserEnv
43
- ```
44
-
45
- ### TextArenaEnv
46
-
47
- Wrapper for text-based TextArena environments (games, simulations). When adding new TextArena environments, investigate the `textarena` source code to determine the observation format. Often you'll want to re-render observations via `feedback_fn`, as `verifiers` doesn't allow overwriting past messages (only concatenation), and many TextArena games return full game state rather than turn-level diffs.
48
-
49
- ### ReasoningGymEnv
50
-
51
- Wrapper for [reasoning-gym](https://github.com/reasoning-gym/reasoning-gym) procedural datasets. Supports single datasets or composite mixtures via `DatasetSpec`.
52
-
53
- ### BrowserEnv
54
-
55
- Browser automation environment using [Browserbase](https://browserbase.com) with two modes:
56
-
57
- **DOM mode** (`mode="dom"`): Natural language browser control via Stagehand SDK.
58
-
59
- **CUA mode** (`mode="cua"`): Vision-based browser control using coordinate-based primitives.
60
-
61
- CUA mode supports automatic sandbox deployment (`use_sandbox=True`, the default), where the CUA server is automatically deployed to a sandbox container. This eliminates the need for manual server setup. The server files are located in `assets/templates/browserbase/cua/` and are uploaded to sandboxes during rollout initialization.
62
-
63
- For local development, set `use_sandbox=False` and start the server manually from `assets/templates/browserbase/cua/`.
64
-
65
- ## Experimental
66
-
67
- See `verifiers/envs/experimental/README.md` for documentation on:
68
- - `GymEnv` - Universal Gym-compatible environment runner
69
- - `MCPEnv` - MCP server integration
70
- - `CliAgentEnv` - Agent code in sandboxes with API call interception
71
- - V1 `vf.Env` / `vf.Taskset` / `vf.Harness` - taskset/harness agent composition
72
- - `HarborEnv` - Harbor-format task loading
File without changes