verifiers 0.2.2.dev84__tar.gz → 0.2.2.dev86__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 (429) hide show
  1. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/PKG-INFO +1 -1
  2. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_agentic_v1.py +8 -0
  3. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_e2e.py +56 -12
  4. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/agentic_judge/__init__.py +2 -2
  5. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/agentic_judge/env.py +48 -36
  6. verifiers-0.2.2.dev86/verifiers/v1/envs/shared_agentic_judge/__init__.py +6 -0
  7. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/base.py +5 -7
  8. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/docker/__init__.py +8 -1
  9. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/prime.py +16 -13
  10. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/.gitignore +0 -0
  11. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/LICENSE +0 -0
  12. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/README.md +0 -0
  13. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/pyproject.toml +0 -0
  14. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/__init__.py +0 -0
  15. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/conftest.py +0 -0
  16. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_browser_env.py +0 -0
  17. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_build_script.py +0 -0
  18. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_cli_agent_env.py +0 -0
  19. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_client_auth_errors.py +0 -0
  20. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_client_config.py +0 -0
  21. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_client_multimodal_types.py +0 -0
  22. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_composable_env.py +0 -0
  23. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_context_token_metrics.py +0 -0
  24. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_decorator_ranks.py +0 -0
  25. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_endpoint_registry.py +0 -0
  26. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_env_group.py +0 -0
  27. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_env_server.py +0 -0
  28. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_environment.py +0 -0
  29. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_environment_extra.py +0 -0
  30. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_error_chain.py +0 -0
  31. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_eval_display.py +0 -0
  32. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_eval_utils.py +0 -0
  33. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_gepa_cli.py +0 -0
  34. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_gepa_utils.py +0 -0
  35. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_gym_env.py +0 -0
  36. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_harbor_env_mcp.py +0 -0
  37. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_imports.py +0 -0
  38. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_init_script.py +0 -0
  39. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_install_utils.py +0 -0
  40. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_interception_utils.py +0 -0
  41. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_logging.py +0 -0
  42. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_math_rubric.py +0 -0
  43. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_maybe_think_parser.py +0 -0
  44. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_message_utils.py +0 -0
  45. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_message_utils_multimodal.py +0 -0
  46. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_multiturn_env.py +0 -0
  47. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_nemorl_client.py +0 -0
  48. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_openai_chat_completions_token_client.py +0 -0
  49. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_openai_responses_client.py +0 -0
  50. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_opencode_rlm_env.py +0 -0
  51. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_openenv_client.py +0 -0
  52. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_parser.py +0 -0
  53. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_path_utils.py +0 -0
  54. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_per_turn_timing.py +0 -0
  55. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_pricing_utils.py +0 -0
  56. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_prime_plugin.py +0 -0
  57. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_renderer_client.py +0 -0
  58. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_renderer_e2e.py +0 -0
  59. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_rlm_composable_env.py +0 -0
  60. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_rubric.py +0 -0
  61. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_rubric_group.py +0 -0
  62. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_sandbox_debug_env.py +0 -0
  63. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_sandbox_env.py +0 -0
  64. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_sandbox_mixin.py +0 -0
  65. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_save_utils.py +0 -0
  66. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_setup_script.py +0 -0
  67. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_singleturn_env.py +0 -0
  68. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_stateful_tool_env.py +0 -0
  69. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_think_parser.py +0 -0
  70. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_tool_env.py +0 -0
  71. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_tool_utils.py +0 -0
  72. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_trajectory_processing.py +0 -0
  73. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_tui_info_formatting.py +0 -0
  74. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_types.py +0 -0
  75. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/test_xml_parser.py +0 -0
  76. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/conftest.py +0 -0
  77. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  78. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/duet_v1.py +0 -0
  79. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  80. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_multi_v0.py +0 -0
  81. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  82. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  83. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_v0.py +0 -0
  84. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/echo_v1.py +0 -0
  85. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/pyproject.toml +0 -0
  86. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  87. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_color_codeword_tasks.py +0 -0
  88. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_configs.py +0 -0
  89. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_envs.py +0 -0
  90. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_graph.py +0 -0
  91. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_judges.py +0 -0
  92. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_legacy.py +0 -0
  93. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_scoring.py +0 -0
  94. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_taskset.py +0 -0
  95. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/tests/v1/test_trace.py +0 -0
  96. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/__init__.py +0 -0
  97. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/__init__.py +0 -0
  98. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/__init__.py +0 -0
  99. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/build.py +0 -0
  100. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/eval.py +0 -0
  101. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/gepa.py +0 -0
  102. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/init.py +0 -0
  103. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/install.py +0 -0
  104. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/commands/setup.py +0 -0
  105. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/plugins/__init__.py +0 -0
  106. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/plugins/prime.py +0 -0
  107. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/cli/tui.py +0 -0
  108. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/__init__.py +0 -0
  109. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/anthropic_messages_client.py +0 -0
  110. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/client.py +0 -0
  111. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
  112. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/openai_chat_completions_client.py +0 -0
  113. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
  114. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/openai_completions_client.py +0 -0
  115. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/openai_responses_client.py +0 -0
  116. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/clients/renderer_client.py +0 -0
  117. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/decorators.py +0 -0
  118. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/__init__.py +0 -0
  119. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/env_group.py +0 -0
  120. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/environment.py +0 -0
  121. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/README.md +0 -0
  122. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/__init__.py +0 -0
  123. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/cli_agent_env.py +0 -0
  124. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/README.md +0 -0
  125. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/__init__.py +0 -0
  126. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/_filter.py +0 -0
  127. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/composable_env.py +0 -0
  128. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/harness.py +0 -0
  129. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
  130. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  131. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
  132. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
  133. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
  134. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
  135. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
  136. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/task.py +0 -0
  137. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
  138. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  139. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  140. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  141. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  142. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
  143. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  144. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
  145. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  146. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  147. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
  148. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  149. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  150. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  151. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  152. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  153. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  154. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  155. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  156. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  157. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  158. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  159. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  160. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  161. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  162. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  163. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  164. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  165. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  166. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  167. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  168. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  169. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  170. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  171. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/gym_env.py +0 -0
  172. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
  173. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/harbor_env/env.py +0 -0
  174. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
  175. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/mcp_env.py +0 -0
  176. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/opencode_env.py +0 -0
  177. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
  178. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
  179. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
  180. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/utils/__init__.py +0 -0
  181. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/utils/file_locks.py +0 -0
  182. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
  183. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/README.md +0 -0
  184. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/__init__.py +0 -0
  185. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/README.md +0 -0
  186. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
  187. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
  188. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
  189. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
  190. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  191. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  192. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/openenv_env.py +0 -0
  193. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
  194. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/integrations/textarena_env.py +0 -0
  195. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/multiturn_env.py +0 -0
  196. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/python_env.py +0 -0
  197. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/sandbox_env.py +0 -0
  198. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/singleturn_env.py +0 -0
  199. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/stateful_tool_env.py +0 -0
  200. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/envs/tool_env.py +0 -0
  201. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/errors.py +0 -0
  202. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/gepa/__init__.py +0 -0
  203. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/gepa/adapter.py +0 -0
  204. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/gepa/config.py +0 -0
  205. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/gepa/display.py +0 -0
  206. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/gepa/gepa_utils.py +0 -0
  207. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/parsers/__init__.py +0 -0
  208. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/parsers/maybe_think_parser.py +0 -0
  209. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/parsers/parser.py +0 -0
  210. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/parsers/think_parser.py +0 -0
  211. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/parsers/xml_parser.py +0 -0
  212. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/rubrics/__init__.py +0 -0
  213. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
  214. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/rubrics/judge_rubric.py +0 -0
  215. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/rubrics/math_rubric.py +0 -0
  216. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/rubrics/rubric.py +0 -0
  217. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/rubrics/rubric_group.py +0 -0
  218. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/__init__.py +0 -0
  219. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/build.py +0 -0
  220. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/eval.py +0 -0
  221. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/gepa.py +0 -0
  222. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/init.py +0 -0
  223. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/install.py +0 -0
  224. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/setup.py +0 -0
  225. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/scripts/tui.py +0 -0
  226. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/__init__.py +0 -0
  227. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/client/env_client.py +0 -0
  228. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/client/zmq_env_client.py +0 -0
  229. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/server/__init__.py +0 -0
  230. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/server/env_router.py +0 -0
  231. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/server/env_server.py +0 -0
  232. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/server/env_worker.py +0 -0
  233. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/server/zmq_env_server.py +0 -0
  234. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/serve/types.py +0 -0
  235. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/types.py +0 -0
  236. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/__init__.py +0 -0
  237. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/async_utils.py +0 -0
  238. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/client_utils.py +0 -0
  239. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/config_utils.py +0 -0
  240. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/data_utils.py +0 -0
  241. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/display_utils.py +0 -0
  242. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/env_config_utils.py +0 -0
  243. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/env_utils.py +0 -0
  244. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/error_utils.py +0 -0
  245. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/eval_display.py +0 -0
  246. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/eval_utils.py +0 -0
  247. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/heartbeat.py +0 -0
  248. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/import_utils.py +0 -0
  249. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/install_utils.py +0 -0
  250. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/interception_utils.py +0 -0
  251. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/logging_utils.py +0 -0
  252. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/message_utils.py +0 -0
  253. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/metric_utils.py +0 -0
  254. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/path_utils.py +0 -0
  255. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/pricing_utils.py +0 -0
  256. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/process_utils.py +0 -0
  257. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/response_utils.py +0 -0
  258. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/save_utils.py +0 -0
  259. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/serve_utils.py +0 -0
  260. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/thread_utils.py +0 -0
  261. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/threaded_sandbox_client.py +0 -0
  262. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/tool_utils.py +0 -0
  263. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/usage_utils.py +0 -0
  264. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/utils/version_utils.py +0 -0
  265. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/__init__.py +0 -0
  266. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/acp/__init__.py +0 -0
  267. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/acp/_runner.py +0 -0
  268. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/agent.py +0 -0
  269. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/__init__.py +0 -0
  270. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  271. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/dashboard/base.py +0 -0
  272. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/dashboard/eval.py +0 -0
  273. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/dashboard/replay.py +0 -0
  274. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/dashboard/validate.py +0 -0
  275. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/debug.py +0 -0
  276. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/eval/__init__.py +0 -0
  277. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/eval/main.py +0 -0
  278. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/eval/resume.py +0 -0
  279. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/eval/runner.py +0 -0
  280. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/gepa.py +0 -0
  281. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/init.py +0 -0
  282. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/output.py +0 -0
  283. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/replay.py +0 -0
  284. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/resolve.py +0 -0
  285. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/cli/validate.py +0 -0
  286. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/clients/__init__.py +0 -0
  287. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/clients/base.py +0 -0
  288. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/clients/client.py +0 -0
  289. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/clients/eval.py +0 -0
  290. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/clients/train.py +0 -0
  291. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/__init__.py +0 -0
  292. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/agent.py +0 -0
  293. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/__init__.py +0 -0
  294. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/debug.py +0 -0
  295. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/env.py +0 -0
  296. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/eval.py +0 -0
  297. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/init.py +0 -0
  298. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/replay.py +0 -0
  299. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/cli/validate.py +0 -0
  300. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/client.py +0 -0
  301. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/env.py +0 -0
  302. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/harness.py +0 -0
  303. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/judge.py +0 -0
  304. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/legacy.py +0 -0
  305. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/retries.py +0 -0
  306. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/serve.py +0 -0
  307. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/task.py +0 -0
  308. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/configs/taskset.py +0 -0
  309. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/dialects/__init__.py +0 -0
  310. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/dialects/anthropic.py +0 -0
  311. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/dialects/base.py +0 -0
  312. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/dialects/chat.py +0 -0
  313. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/dialects/responses.py +0 -0
  314. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/env.py +0 -0
  315. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/__init__.py +0 -0
  316. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  317. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/best_of_n/env.py +0 -0
  318. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  319. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/single_agent/env.py +0 -0
  320. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  321. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/envs/user_sim/env.py +0 -0
  322. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/episode.py +0 -0
  323. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/errors.py +0 -0
  324. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/gepa/__init__.py +0 -0
  325. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/gepa/adapter.py +0 -0
  326. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/gepa/config.py +0 -0
  327. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/gepa/dataset.py +0 -0
  328. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/gepa/reflection.py +0 -0
  329. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/gepa/runner.py +0 -0
  330. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/graph.py +0 -0
  331. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harness.py +0 -0
  332. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/__init__.py +0 -0
  333. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  334. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/bash/harness.py +0 -0
  335. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/bash/program.py +0 -0
  336. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  337. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  338. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  339. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  340. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  341. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  342. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/codex/harness.py +0 -0
  343. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  344. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  345. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  346. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  347. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  348. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  349. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  350. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  351. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/null/__init__.py +0 -0
  352. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/null/harness.py +0 -0
  353. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/null/program.py +0 -0
  354. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  355. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  356. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  357. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/pi/harness.py +0 -0
  358. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/pool/__init__.py +0 -0
  359. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/pool/harness.py +0 -0
  360. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  361. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  362. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  363. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  364. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  365. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/__init__.py +0 -0
  366. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/base.py +0 -0
  367. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/pool.py +0 -0
  368. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/server.py +0 -0
  369. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  370. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/tunnel/base.py +0 -0
  371. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/tunnel/custom.py +0 -0
  372. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/interception/tunnel/prime.py +0 -0
  373. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/judge.py +0 -0
  374. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/judges/__init__.py +0 -0
  375. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/judges/reference.py +0 -0
  376. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/judges/reference.txt +0 -0
  377. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/judges/rubric.py +0 -0
  378. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/judges/rubric.txt +0 -0
  379. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/legacy.py +0 -0
  380. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/mcp/__init__.py +0 -0
  381. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/mcp/launch.py +0 -0
  382. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/mcp/server.py +0 -0
  383. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/mcp/toolset.py +0 -0
  384. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/rollout.py +0 -0
  385. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/__init__.py +0 -0
  386. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/docker/egress.py +0 -0
  387. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/limiters.py +0 -0
  388. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/modal.py +0 -0
  389. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/runtimes/subprocess.py +0 -0
  390. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/serve/__init__.py +0 -0
  391. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/serve/client.py +0 -0
  392. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/serve/pool.py +0 -0
  393. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/serve/server.py +0 -0
  394. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/serve/types.py +0 -0
  395. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/session.py +0 -0
  396. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/state.py +0 -0
  397. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/task.py +0 -0
  398. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/taskset.py +0 -0
  399. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/__init__.py +0 -0
  400. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  401. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/harbor/env.py +0 -0
  402. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  403. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  404. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  405. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  406. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  407. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  408. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  409. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  410. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/trace.py +0 -0
  411. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/types.py +0 -0
  412. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/__init__.py +0 -0
  413. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/aio.py +0 -0
  414. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/artifacts.py +0 -0
  415. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/compile.py +0 -0
  416. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/decorators.py +0 -0
  417. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/format.py +0 -0
  418. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/generic.py +0 -0
  419. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/git.py +0 -0
  420. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/image.py +0 -0
  421. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/install.py +0 -0
  422. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/interrupt.py +0 -0
  423. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/loaders.py +0 -0
  424. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/logging.py +0 -0
  425. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/memory.py +0 -0
  426. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/platform.py +0 -0
  427. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/retries.py +0 -0
  428. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/verifiers/v1/utils/score.py +0 -0
  429. {verifiers-0.2.2.dev84 → verifiers-0.2.2.dev86}/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.dev84
3
+ Version: 0.2.2.dev86
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
@@ -31,6 +31,13 @@ class EchoAgenticData(vf.TaskData):
31
31
 
32
32
 
33
33
  class EchoAgenticTask(vf.Task[EchoAgenticData]):
34
+ async def finalize(self, trace: vf.Trace, runtime: Runtime) -> None:
35
+ # Subprocess uses a runtime-owned temporary cwd, not a restorable absolute
36
+ # path; isolated agentic judging requires a container anyway.
37
+ if runtime.type == "subprocess":
38
+ return
39
+ trace.state.artifacts = await vf.collect(runtime, self.data.artifacts)
40
+
34
41
  @vf.reward(weight=1.0)
35
42
  async def wrote_phrase(self, runtime: Runtime) -> float:
36
43
  try:
@@ -57,6 +64,7 @@ class EchoAgenticTaskset(vf.Taskset[EchoAgenticTask, EchoAgenticConfig]):
57
64
  ),
58
65
  system_prompt=SYSTEM,
59
66
  answer=phrase,
67
+ artifacts=[vf.Artifact(source=TARGET)],
60
68
  ),
61
69
  self.config.task,
62
70
  )
@@ -418,24 +418,20 @@ async def test_env_id_best_of_n(run_v1, tmp_path):
418
418
 
419
419
 
420
420
  @pytest.mark.e2e
421
- async def test_env_id_agentic_judge(run_v1, tmp_path):
422
- """The agentic judge over the echo taskset (needs docker): the box is
423
- provisioned once from the solver's runtime policy, the solver plays in it,
424
- the judge lands in the SAME box with the graded trace uploaded,
425
- investigates with real execution, and its parsed verdict
426
- lands on the solver's trace under the spec's reward key. Wiring, not taste:
427
- the judge followed the verdict-file contract — the grade itself is the
428
- model's call. Exercises the config surface too: a policy-only prompt
429
- override (the verdict contract is appended regardless) and
430
- reward-composition weights."""
421
+ async def test_env_id_shared_agentic_judge(run_v1, tmp_path):
422
+ """The shared agentic judge provisions one restricted solver-owned box and
423
+ safely reuses it for the judge's empirical verification."""
431
424
  policy = tmp_path / "judge_policy.txt"
432
425
  policy.write_text("Check EMPIRICALLY that the agent echoed the word back.")
433
426
  traces = await run_v1(
434
427
  "echo-v1",
435
428
  harness=None,
436
429
  env={
437
- "id": "agentic-judge",
438
- "solver": {"harness": {"id": "bash"}, "runtime": {"type": "docker"}},
430
+ "id": "shared-agentic-judge",
431
+ "solver": {
432
+ "harness": {"id": "bash"},
433
+ "runtime": {"type": "docker", "block": ["example.com"]},
434
+ },
439
435
  "judge": {
440
436
  "harness": {"id": "bash"},
441
437
  "max_output_tokens": 8192,
@@ -455,6 +451,8 @@ async def test_env_id_agentic_judge(run_v1, tmp_path):
455
451
  (judge,) = [t for t in traces if t.agent.name == "judge"]
456
452
  assert solver.ok and judge.ok
457
453
  assert judge.agent.trainable is False
454
+ assert solver.agent.runtime is not None and judge.agent.runtime is not None
455
+ assert solver.agent.runtime.id == judge.agent.runtime.id
458
456
  # The task's own reward keeps its raw score; the rescale lands on the weight.
459
457
  assert solver.rewards["echoed"].score == 1.0
460
458
  assert solver.rewards["echoed"].weight == 0.5
@@ -462,6 +460,52 @@ async def test_env_id_agentic_judge(run_v1, tmp_path):
462
460
  assert 0.0 <= solver.rewards["judge"].score <= 1.0
463
461
 
464
462
 
463
+ @pytest.mark.e2e
464
+ async def test_env_id_agentic_judge(run_v1, tmp_path):
465
+ """The isolated agentic judge destroys the restricted solver box, transfers
466
+ its declared artifact, and restores it in a fresh box with the same policy."""
467
+ policy = tmp_path / "isolated_judge_policy.txt"
468
+ policy.write_text(
469
+ "Check EMPIRICALLY that answer.txt contains exactly the requested phrase."
470
+ )
471
+ traces = await run_v1(
472
+ "echo-agentic-v1",
473
+ harness=None,
474
+ env={
475
+ "id": "agentic-judge",
476
+ "solver": {
477
+ "harness": {"id": "bash"},
478
+ "runtime": {"type": "docker", "block": ["example.com"]},
479
+ },
480
+ "judge": {
481
+ "harness": {"id": "bash"},
482
+ "max_output_tokens": 8192,
483
+ },
484
+ "task": {
485
+ "prompt": {"path": str(policy)},
486
+ "hint": "Do not rely on README.md",
487
+ },
488
+ "score": {"task_weight": 0.5},
489
+ },
490
+ output_dir=tmp_path,
491
+ max_turns=10,
492
+ rollout_timeout=600,
493
+ )
494
+ assert sorted(t.agent.name for t in traces) == ["judge", "solver"]
495
+ (solver,) = [t for t in traces if t.agent.name == "solver"]
496
+ (judge,) = [t for t in traces if t.agent.name == "judge"]
497
+ assert solver.ok and judge.ok
498
+ assert judge.agent.trainable is False
499
+ assert solver.agent.runtime is not None and judge.agent.runtime is not None
500
+ assert solver.agent.runtime.id != judge.agent.runtime.id
501
+ assert solver.agent.runtime.type == judge.agent.runtime.type == "docker"
502
+ assert "/app/answer.txt" in solver.state.artifacts
503
+ assert solver.rewards["wrote_phrase"].score == 1.0
504
+ assert solver.rewards["wrote_phrase"].weight == 0.5
505
+ assert isinstance(judge.info.get("verdict"), dict)
506
+ assert 0.0 <= solver.rewards["judge"].score <= 1.0
507
+
508
+
465
509
  @pytest.mark.e2e
466
510
  async def test_env_id_user_sim(run_v1, tmp_path):
467
511
  """The user-sim env over the echo taskset: a modeled user (null harness) opens
@@ -1,16 +1,16 @@
1
1
  from verifiers.v1.envs.agentic_judge.env import (
2
- AgenticJudgeEnv,
3
2
  AgenticJudgeEnvConfig,
4
3
  Criterion,
4
+ IsolatedAgenticJudgeEnv,
5
5
  JudgeTaskConfig,
6
6
  ScoreConfig,
7
7
  TextFile,
8
8
  )
9
9
 
10
10
  __all__ = [
11
- "AgenticJudgeEnv",
12
11
  "AgenticJudgeEnvConfig",
13
12
  "Criterion",
13
+ "IsolatedAgenticJudgeEnv",
14
14
  "JudgeTaskConfig",
15
15
  "ScoreConfig",
16
16
  "TextFile",
@@ -1,16 +1,17 @@
1
- """agentic-judge: a solver plays the task, then a judge verifies the work.
2
-
3
- A reusable env (`--env.id agentic-judge` over any taskset). The solver plays the
4
- task in a container provisioned from its runtime policy; the judge then grades
5
- rubric criteria (`[env.task]`: policy prompt, criteria file) and writes its
6
- verdicts to `/tmp/verdict.json`, with the solver's full trace record uploaded at
7
- `/tmp/trace.json`. `finalize()` validates them strictly onto the solver's trace —
8
- `judge/<name>` metrics plus a weighted-mean `judge` reward, composed with the
9
- taskset's own rewards via `[env.score]` (judge-only by default).
10
-
11
- `--env.share-runtime` controls whether the judge uses the solver's runtime. It is
12
- enabled by default. When disabled, the judge gets a fresh runtime containing the
13
- task's collected artifacts.
1
+ """Agentic judging: a solver plays the task, then a judge verifies the work.
2
+
3
+ Two reusable envs share the grading protocol. `--env.id agentic-judge` provisions
4
+ a fresh box from the solver's runtime policy and restores only the task's collected
5
+ artifacts; `--env.id shared-agentic-judge` explicitly runs the judge in the
6
+ solver's box. The judge grades rubric criteria (`[env.task]`: policy prompt,
7
+ criteria file) and writes its verdicts to `/tmp/verdict.json`, with the solver's
8
+ full trace record uploaded at `/tmp/trace.json`. `finalize()` validates them
9
+ strictly onto the solver's trace `judge/<name>` metrics plus a weighted-mean
10
+ `judge` reward, composed with the taskset's own rewards via `[env.score]`
11
+ (judge-only by default).
12
+
13
+ The environment id selects the runtime boundary; there is no mode boolean whose
14
+ value can disagree with the environment's security and artifact semantics.
14
15
  """
15
16
 
16
17
  import json
@@ -165,6 +166,8 @@ class JudgeTask(vf.Task):
165
166
  image=solved.image,
166
167
  workdir=solved.workdir,
167
168
  resources=solved.resources,
169
+ network_allow=solved.network_allow,
170
+ network_block=solved.network_block,
168
171
  ),
169
172
  files=files,
170
173
  artifacts={} if share_runtime else solution.state.artifacts,
@@ -258,20 +261,22 @@ class AgenticJudgeEnvConfig(vf.EnvConfig):
258
261
  """The solver agent. Its runtime must be a container:
259
262
  `--env.solver.runtime.type docker|prime`."""
260
263
  judge: vf.AgentConfig = vf.AgentConfig()
261
- """The judge agent. Its runtime is ignored when `share_runtime` is enabled;
262
- otherwise it must be a container."""
263
- share_runtime: bool = True
264
- """Whether the judge grades in the solver's runtime."""
264
+ """The judge agent. Its runtime setting is ignored: both judging modes use the
265
+ solver's resolved runtime policy, either by borrowing its box or provisioning a
266
+ fresh equivalent one."""
265
267
  task: JudgeTaskConfig = JudgeTaskConfig()
266
268
  score: ScoreConfig = ScoreConfig()
267
269
 
268
270
 
269
271
  class AgenticJudgeEnv(vf.Env[AgenticJudgeEnvConfig]):
272
+ """Common agentic-judge protocol; subclasses choose the runtime boundary."""
273
+
270
274
  def __init__(self, config: AgenticJudgeEnvConfig) -> None:
271
- if config.share_runtime:
272
- config.judge = config.judge.model_copy(
273
- update={"runtime": config.solver.runtime}
274
- )
275
+ # Both modes use the solver's policy. Shared judging borrows that exact box;
276
+ # isolated judging resolves the mirrored JudgeTask into a fresh equivalent.
277
+ config.judge = config.judge.model_copy(
278
+ update={"runtime": config.solver.runtime}
279
+ )
275
280
  super().__init__(config)
276
281
  self._check_agents()
277
282
  # A missing policy file or a malformed rubric fails here, not mid-episode.
@@ -302,21 +307,6 @@ class AgenticJudgeEnv(vf.Env[AgenticJudgeEnvConfig]):
302
307
  # The judge grades the policy; its tokens are never training data.
303
308
  agents.judge.trainable = False
304
309
 
305
- async def run(self, task: vf.Task, agents: vf.Agents) -> None:
306
- if self.config.share_runtime:
307
- async with agents.solver.provision(task) as box:
308
- solution = await agents.solver.run(task, runtime=box)
309
- judge_task = JudgeTask.from_trace(solution, self.config.task)
310
- await agents.judge.run(judge_task, runtime=box)
311
- return
312
-
313
- solution = await agents.solver.run(task)
314
- if not solution.ok:
315
- return
316
- await agents.judge.run(
317
- JudgeTask.from_trace(solution, self.config.task, share_runtime=False)
318
- )
319
-
320
310
  async def finalize(self, task: vf.Task, episode: vf.Episode) -> None:
321
311
  by_agent = {t.agent.name: t for t in episode.traces}
322
312
  if "judge" not in by_agent:
@@ -334,3 +324,25 @@ class AgenticJudgeEnv(vf.Env[AgenticJudgeEnvConfig]):
334
324
  total = sum(criterion.weight for criterion in criteria)
335
325
  reward = sum(c.weight * scores[c.name] for c in criteria) / total
336
326
  solution.record_reward("judge", reward, weight=self.config.score.judge_weight)
327
+
328
+
329
+ class SharedAgenticJudgeEnv(AgenticJudgeEnv):
330
+ """Judge the solver in its runtime, preserving the complete mutable workspace."""
331
+
332
+ async def run(self, task: vf.Task, agents: vf.Agents) -> None:
333
+ async with agents.solver.provision(task) as box:
334
+ solution = await agents.solver.run(task, runtime=box)
335
+ judge_task = JudgeTask.from_trace(solution, self.config.task)
336
+ await agents.judge.run(judge_task, runtime=box)
337
+
338
+
339
+ class IsolatedAgenticJudgeEnv(AgenticJudgeEnv):
340
+ """Judge only collected artifacts in a fresh box with the solver's policy."""
341
+
342
+ async def run(self, task: vf.Task, agents: vf.Agents) -> None:
343
+ solution = await agents.solver.run(task)
344
+ if not solution.ok:
345
+ return
346
+ await agents.judge.run(
347
+ JudgeTask.from_trace(solution, self.config.task, share_runtime=False)
348
+ )
@@ -0,0 +1,6 @@
1
+ from verifiers.v1.envs.agentic_judge.env import (
2
+ AgenticJudgeEnvConfig,
3
+ SharedAgenticJudgeEnv,
4
+ )
5
+
6
+ __all__ = ["AgenticJudgeEnvConfig", "SharedAgenticJudgeEnv"]
@@ -332,19 +332,17 @@ class Runtime(ABC):
332
332
  return url
333
333
 
334
334
  async def prepare_setup(self) -> None:
335
- """Claim the runtime for trusted setup; restricted runtimes may reject reuse."""
335
+ """Open egress for trusted setup when reusing a restricted runtime."""
336
336
  if not self.network_restricted:
337
337
  return
338
338
  if self._setup_claimed:
339
- raise SandboxError(
340
- f"network-filtered {self.type} runtimes are single-rollout; "
341
- "provision a fresh runtime instead of reusing this one"
342
- )
339
+ await self.prepare_execution(None)
343
340
  self._setup_claimed = True
344
341
 
345
- async def prepare_execution(self, routes: list[str]) -> None:
342
+ async def prepare_execution(self, routes: list[str] | None) -> None:
346
343
  """Last setup step, right before the agent starts. Restricted runtimes enforce
347
- their policy here; `routes` identifies the interception and MCP endpoints."""
344
+ their policy here; `routes` identifies the interception and MCP endpoints.
345
+ None restores unrestricted egress for another trusted setup phase."""
348
346
 
349
347
  @property
350
348
  def network_restricted(self) -> bool:
@@ -233,11 +233,16 @@ class DockerRuntime(Runtime):
233
233
  return url.replace(host, "host.docker.internal", 1)
234
234
  return url
235
235
 
236
- async def prepare_execution(self, routes: list[str]) -> None:
236
+ async def prepare_execution(self, routes: list[str] | None) -> None:
237
237
  """Allow the declared framework routes, then leave the proxy as the only route."""
238
238
  if not self.network_restricted:
239
239
  return
240
240
  assert self._proxy is not None
241
+ if routes is None:
242
+ self._proxy.policy = NetworkPolicy(
243
+ ["*"], [], [HOST_ALIAS], allow_non_global=True
244
+ )
245
+ return
241
246
  framework = [
242
247
  urlsplit(url)._replace(path="", query="", fragment="").geturl()
243
248
  for url in routes
@@ -247,6 +252,8 @@ class DockerRuntime(Runtime):
247
252
  self.config.block,
248
253
  framework,
249
254
  )
255
+ if self._cut:
256
+ return
250
257
  script = (
251
258
  "set -eu; HOST=$1; "
252
259
  "PORT=$2; "
@@ -181,22 +181,25 @@ class PrimeRuntime(Runtime):
181
181
  ) as e: # provisioning failure is one rollout's problem, not the eval's
182
182
  raise SandboxError(f"prime sandbox provisioning failed: {e}") from e
183
183
 
184
- async def prepare_execution(self, routes: list[str]) -> None:
184
+ async def prepare_execution(self, routes: list[str] | None) -> None:
185
185
  """Apply the host policy after setup and wait until the platform enforces it."""
186
186
  if not self.network_restricted:
187
187
  return
188
188
  try:
189
- hosts = list(
190
- dict.fromkeys(
191
- h for h in (urlsplit(route).hostname for route in routes) if h
192
- )
193
- )
194
- if self.config.allow == ["*"]:
195
- policy = {"deny": self.config.block}
189
+ if routes is None:
190
+ policy = {"allow": ["*"]}
196
191
  else:
197
- entries = list(dict.fromkeys([*hosts, *self.config.allow]))
198
- validate_egress_lists(entries, None)
199
- policy = {"allow": entries} if entries else {"deny": ["*"]}
192
+ hosts = list(
193
+ dict.fromkeys(
194
+ h for h in (urlsplit(route).hostname for route in routes) if h
195
+ )
196
+ )
197
+ if self.config.allow == ["*"]:
198
+ policy = {"deny": self.config.block}
199
+ else:
200
+ entries = list(dict.fromkeys([*hosts, *self.config.allow]))
201
+ validate_egress_lists(entries, None)
202
+ policy = {"allow": entries} if entries else {"deny": ["*"]}
200
203
  status = await self._client.set_network(self.info.id, **policy)
201
204
  try:
202
205
  async with asyncio.timeout(60):
@@ -217,8 +220,8 @@ class PrimeRuntime(Runtime):
217
220
  logger.info(
218
221
  "prime: egress policy applied on sandbox %s (allow=%s block=%s)",
219
222
  self.info.id,
220
- self.config.allow,
221
- self.config.block,
223
+ policy.get("allow"),
224
+ policy.get("deny"),
222
225
  )
223
226
 
224
227
  async def run(self, argv: list[str], env: dict[str, str]) -> ProgramResult:
File without changes