verifiers 0.2.1.dev59__tar.gz → 0.2.1.dev61__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 (394) hide show
  1. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/PKG-INFO +1 -1
  2. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/pyproject.toml +1 -1
  3. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/conftest.py +4 -4
  4. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/__init__.py +4 -0
  5. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/dashboard/eval.py +15 -5
  6. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/debug.py +1 -0
  7. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/init.py +1 -1
  8. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/dialects/chat.py +1 -1
  9. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/env.py +2 -2
  10. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harness.py +1 -1
  11. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/__init__.py +3 -3
  12. verifiers-0.2.1.dev61/verifiers/v1/harnesses/bash/__init__.py +6 -0
  13. {verifiers-0.2.1.dev59/verifiers/v1/harnesses/default → verifiers-0.2.1.dev61/verifiers/v1/harnesses/bash}/harness.py +3 -3
  14. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/legacy.py +18 -3
  15. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/loaders.py +2 -2
  16. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/rollout.py +1 -0
  17. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/trace.py +32 -1
  18. verifiers-0.2.1.dev59/verifiers/v1/harnesses/default/__init__.py +0 -6
  19. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/.gitignore +0 -0
  20. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/LICENSE +0 -0
  21. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/README.md +0 -0
  22. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/AGENTS.md +0 -0
  23. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/__init__.py +0 -0
  24. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/conftest.py +0 -0
  25. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_browser_env.py +0 -0
  26. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_build_script.py +0 -0
  27. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_cli_agent_env.py +0 -0
  28. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_client_auth_errors.py +0 -0
  29. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_client_config.py +0 -0
  30. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_client_multimodal_types.py +0 -0
  31. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_composable_env.py +0 -0
  32. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_context_token_metrics.py +0 -0
  33. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_decorator_ranks.py +0 -0
  34. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_endpoint_registry.py +0 -0
  35. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_env_group.py +0 -0
  36. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_env_server.py +0 -0
  37. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_environment.py +0 -0
  38. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_environment_extra.py +0 -0
  39. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_error_chain.py +0 -0
  40. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_eval_display.py +0 -0
  41. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_eval_utils.py +0 -0
  42. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_gepa_cli.py +0 -0
  43. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_gepa_utils.py +0 -0
  44. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_gym_env.py +0 -0
  45. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_harbor_env_mcp.py +0 -0
  46. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_imports.py +0 -0
  47. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_init_script.py +0 -0
  48. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_install_utils.py +0 -0
  49. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_interception_utils.py +0 -0
  50. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_logging.py +0 -0
  51. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_math_rubric.py +0 -0
  52. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_maybe_think_parser.py +0 -0
  53. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_message_utils.py +0 -0
  54. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_message_utils_multimodal.py +0 -0
  55. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_multiturn_env.py +0 -0
  56. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_nemorl_client.py +0 -0
  57. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_openai_chat_completions_token_client.py +0 -0
  58. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_openai_responses_client.py +0 -0
  59. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_opencode_rlm_env.py +0 -0
  60. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_openenv_client.py +0 -0
  61. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_parser.py +0 -0
  62. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_path_utils.py +0 -0
  63. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_per_turn_timing.py +0 -0
  64. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_pricing_utils.py +0 -0
  65. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_prime_plugin.py +0 -0
  66. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_renderer_client.py +0 -0
  67. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_renderer_e2e.py +0 -0
  68. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_rlm_composable_env.py +0 -0
  69. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_rubric.py +0 -0
  70. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_rubric_group.py +0 -0
  71. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_sandbox_debug_env.py +0 -0
  72. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_sandbox_env.py +0 -0
  73. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_sandbox_mixin.py +0 -0
  74. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_save_utils.py +0 -0
  75. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_setup_script.py +0 -0
  76. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_singleturn_env.py +0 -0
  77. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_stateful_tool_env.py +0 -0
  78. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_think_parser.py +0 -0
  79. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_tool_env.py +0 -0
  80. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_tool_utils.py +0 -0
  81. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_trajectory_processing.py +0 -0
  82. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_tui_info_formatting.py +0 -0
  83. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_types.py +0 -0
  84. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/test_xml_parser.py +0 -0
  85. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  86. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  87. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/echo_multi_v0.py +0 -0
  88. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  89. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  90. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/echo_v0.py +0 -0
  91. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/echo_v1.py +0 -0
  92. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/pyproject.toml +0 -0
  93. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  94. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_color_codeword_tasks.py +0 -0
  95. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_configs.py +0 -0
  96. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_e2e.py +0 -0
  97. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_envs.py +0 -0
  98. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_graph.py +0 -0
  99. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_judges.py +0 -0
  100. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_legacy.py +0 -0
  101. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_scoring.py +0 -0
  102. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_taskset.py +0 -0
  103. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/tests/v1/test_trace.py +0 -0
  104. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/__init__.py +0 -0
  105. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/__init__.py +0 -0
  106. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/__init__.py +0 -0
  107. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/build.py +0 -0
  108. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/eval.py +0 -0
  109. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/gepa.py +0 -0
  110. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/init.py +0 -0
  111. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/install.py +0 -0
  112. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/commands/setup.py +0 -0
  113. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/plugins/__init__.py +0 -0
  114. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/plugins/prime.py +0 -0
  115. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/cli/tui.py +0 -0
  116. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/__init__.py +0 -0
  117. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/anthropic_messages_client.py +0 -0
  118. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/client.py +0 -0
  119. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
  120. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/openai_chat_completions_client.py +0 -0
  121. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
  122. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/openai_completions_client.py +0 -0
  123. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/openai_responses_client.py +0 -0
  124. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/clients/renderer_client.py +0 -0
  125. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/decorators.py +0 -0
  126. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/AGENTS.md +0 -0
  127. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/__init__.py +0 -0
  128. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/env_group.py +0 -0
  129. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/environment.py +0 -0
  130. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/README.md +0 -0
  131. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/__init__.py +0 -0
  132. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/cli_agent_env.py +0 -0
  133. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/README.md +0 -0
  134. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/__init__.py +0 -0
  135. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/_filter.py +0 -0
  136. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/composable_env.py +0 -0
  137. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/harness.py +0 -0
  138. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
  139. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  140. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
  141. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
  142. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
  143. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
  144. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
  145. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/task.py +0 -0
  146. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
  147. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  148. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  149. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  150. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  151. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
  152. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  153. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
  154. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  155. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  156. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
  157. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  158. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  159. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  160. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  161. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  162. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  163. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  164. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  165. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  166. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  167. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  168. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  169. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  170. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  171. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  172. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  173. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  174. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  175. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  176. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  177. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  178. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  179. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  180. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/gym_env.py +0 -0
  181. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
  182. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/harbor_env/env.py +0 -0
  183. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
  184. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/mcp_env.py +0 -0
  185. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/opencode_env.py +0 -0
  186. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
  187. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
  188. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
  189. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/utils/__init__.py +0 -0
  190. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/utils/file_locks.py +0 -0
  191. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
  192. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/README.md +0 -0
  193. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/__init__.py +0 -0
  194. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/README.md +0 -0
  195. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
  196. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
  197. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
  198. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
  199. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  200. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  201. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/openenv_env.py +0 -0
  202. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
  203. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/integrations/textarena_env.py +0 -0
  204. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/multiturn_env.py +0 -0
  205. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/python_env.py +0 -0
  206. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/sandbox_env.py +0 -0
  207. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/singleturn_env.py +0 -0
  208. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/stateful_tool_env.py +0 -0
  209. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/envs/tool_env.py +0 -0
  210. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/errors.py +0 -0
  211. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/gepa/__init__.py +0 -0
  212. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/gepa/adapter.py +0 -0
  213. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/gepa/config.py +0 -0
  214. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/gepa/display.py +0 -0
  215. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/gepa/gepa_utils.py +0 -0
  216. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/parsers/__init__.py +0 -0
  217. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/parsers/maybe_think_parser.py +0 -0
  218. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/parsers/parser.py +0 -0
  219. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/parsers/think_parser.py +0 -0
  220. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/parsers/xml_parser.py +0 -0
  221. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/rubrics/__init__.py +0 -0
  222. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
  223. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/rubrics/judge_rubric.py +0 -0
  224. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/rubrics/math_rubric.py +0 -0
  225. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/rubrics/rubric.py +0 -0
  226. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/rubrics/rubric_group.py +0 -0
  227. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/__init__.py +0 -0
  228. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/build.py +0 -0
  229. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/eval.py +0 -0
  230. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/gepa.py +0 -0
  231. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/init.py +0 -0
  232. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/install.py +0 -0
  233. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/setup.py +0 -0
  234. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/scripts/tui.py +0 -0
  235. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/__init__.py +0 -0
  236. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/client/env_client.py +0 -0
  237. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/client/zmq_env_client.py +0 -0
  238. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/server/__init__.py +0 -0
  239. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/server/env_router.py +0 -0
  240. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/server/env_server.py +0 -0
  241. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/server/env_worker.py +0 -0
  242. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/server/zmq_env_server.py +0 -0
  243. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/serve/types.py +0 -0
  244. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/types.py +0 -0
  245. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/__init__.py +0 -0
  246. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/async_utils.py +0 -0
  247. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/client_utils.py +0 -0
  248. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/config_utils.py +0 -0
  249. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/data_utils.py +0 -0
  250. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/display_utils.py +0 -0
  251. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/env_config_utils.py +0 -0
  252. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/env_utils.py +0 -0
  253. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/error_utils.py +0 -0
  254. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/eval_display.py +0 -0
  255. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/eval_utils.py +0 -0
  256. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/heartbeat.py +0 -0
  257. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/import_utils.py +0 -0
  258. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/install_utils.py +0 -0
  259. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/interception_utils.py +0 -0
  260. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/logging_utils.py +0 -0
  261. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/message_utils.py +0 -0
  262. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/metric_utils.py +0 -0
  263. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/path_utils.py +0 -0
  264. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/pricing_utils.py +0 -0
  265. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/process_utils.py +0 -0
  266. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/response_utils.py +0 -0
  267. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/save_utils.py +0 -0
  268. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/serve_utils.py +0 -0
  269. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/thread_utils.py +0 -0
  270. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/threaded_sandbox_client.py +0 -0
  271. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/tool_utils.py +0 -0
  272. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/usage_utils.py +0 -0
  273. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/utils/version_utils.py +0 -0
  274. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/__init__.py +0 -0
  275. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  276. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/dashboard/base.py +0 -0
  277. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/dashboard/replay.py +0 -0
  278. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/dashboard/validate.py +0 -0
  279. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/eval/__init__.py +0 -0
  280. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/eval/main.py +0 -0
  281. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/eval/resume.py +0 -0
  282. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/eval/runner.py +0 -0
  283. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/gepa.py +0 -0
  284. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/output.py +0 -0
  285. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/replay.py +0 -0
  286. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/resolve.py +0 -0
  287. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/serve.py +0 -0
  288. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/cli/validate.py +0 -0
  289. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/clients/__init__.py +0 -0
  290. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/clients/client.py +0 -0
  291. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/clients/config.py +0 -0
  292. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/clients/eval.py +0 -0
  293. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/clients/train.py +0 -0
  294. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/__init__.py +0 -0
  295. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/debug.py +0 -0
  296. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/eval.py +0 -0
  297. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/init.py +0 -0
  298. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/replay.py +0 -0
  299. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/serve.py +0 -0
  300. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/configs/validate.py +0 -0
  301. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/decorators.py +0 -0
  302. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/dialects/__init__.py +0 -0
  303. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/dialects/anthropic.py +0 -0
  304. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/dialects/base.py +0 -0
  305. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/dialects/responses.py +0 -0
  306. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/episode.py +0 -0
  307. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/errors.py +0 -0
  308. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/gepa/__init__.py +0 -0
  309. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/gepa/adapter.py +0 -0
  310. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/gepa/config.py +0 -0
  311. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/gepa/dataset.py +0 -0
  312. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/gepa/reflection.py +0 -0
  313. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/gepa/runner.py +0 -0
  314. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/graph.py +0 -0
  315. {verifiers-0.2.1.dev59/verifiers/v1/harnesses/default → verifiers-0.2.1.dev61/verifiers/v1/harnesses/bash}/program.py +0 -0
  316. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  317. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  318. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  319. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/codex/harness.py +0 -0
  320. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  321. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  322. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  323. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  324. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  325. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/null/__init__.py +0 -0
  326. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/null/harness.py +0 -0
  327. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/null/program.py +0 -0
  328. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  329. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/pi/harness.py +0 -0
  330. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  331. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  332. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  333. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  334. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  335. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/__init__.py +0 -0
  336. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/base.py +0 -0
  337. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/pool.py +0 -0
  338. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/server.py +0 -0
  339. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  340. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/tunnel/base.py +0 -0
  341. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/tunnel/custom.py +0 -0
  342. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/interception/tunnel/prime.py +0 -0
  343. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/judge.py +0 -0
  344. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/judges/__init__.py +0 -0
  345. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/judges/reference.py +0 -0
  346. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/judges/reference.txt +0 -0
  347. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/judges/rubric.py +0 -0
  348. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/judges/rubric.txt +0 -0
  349. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/mcp/__init__.py +0 -0
  350. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/mcp/launch.py +0 -0
  351. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/mcp/server.py +0 -0
  352. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/mcp/toolset.py +0 -0
  353. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/mcp/user.py +0 -0
  354. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/push.py +0 -0
  355. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/retries.py +0 -0
  356. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/__init__.py +0 -0
  357. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/base.py +0 -0
  358. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/docker.py +0 -0
  359. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/limiters.py +0 -0
  360. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/modal.py +0 -0
  361. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/prime.py +0 -0
  362. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/runtimes/subprocess.py +0 -0
  363. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/scoring.py +0 -0
  364. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/serve/__init__.py +0 -0
  365. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/serve/client.py +0 -0
  366. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/serve/pool.py +0 -0
  367. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/serve/server.py +0 -0
  368. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/serve/types.py +0 -0
  369. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/session.py +0 -0
  370. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/state.py +0 -0
  371. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/task.py +0 -0
  372. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/taskset.py +0 -0
  373. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/__init__.py +0 -0
  374. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  375. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  376. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  377. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  378. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  379. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  380. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  381. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  382. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  383. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/types.py +0 -0
  384. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/__init__.py +0 -0
  385. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/aio.py +0 -0
  386. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/format.py +0 -0
  387. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/generic.py +0 -0
  388. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/image.py +0 -0
  389. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/install.py +0 -0
  390. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/interrupt.py +0 -0
  391. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/logging.py +0 -0
  392. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/memory.py +0 -0
  393. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/verifiers/v1/utils/sampling.py +0 -0
  394. {verifiers-0.2.1.dev59 → verifiers-0.2.1.dev61}/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.1.dev59
3
+ Version: 0.2.1.dev61
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
@@ -252,7 +252,7 @@ markers = [
252
252
  "modal: v1 e2e cases touching the modal runtime (local-only setup; excluded in CI)",
253
253
  "colocated: v1 e2e cases with a user/tool server colocated in the harness runtime",
254
254
  "null: v1 e2e cases on the null harness",
255
- "default: v1 e2e cases on the default harness",
255
+ "bash: v1 e2e cases on the bash harness",
256
256
  "rlm: v1 e2e cases on the rlm harness",
257
257
  "kimi_code: v1 e2e cases on the kimi-code harness",
258
258
  "codex: v1 e2e cases on the codex harness",
@@ -15,12 +15,12 @@ Every matrix value carries a pytest mark, so subsets select with `-m`:
15
15
  uv run pytest tests/v1 -n auto # the whole matrix (needs modal setup)
16
16
  uv run pytest tests/v1 -n auto -m "not prime and not modal" # the CI matrix (host + docker only)
17
17
  uv run pytest tests/v1 -n auto -m docker # any case touching the docker runtime
18
- uv run pytest tests/v1 -n auto -m default # only the default harness
18
+ uv run pytest tests/v1 -n auto -m bash # only the bash harness
19
19
  uv run pytest tests/v1 -n auto -m prime # only prime (real sandboxes; local)
20
20
  uv run pytest tests/v1 -n auto -m modal # only modal (needs local setup)
21
21
 
22
22
  Marks: runtimes `subprocess` / `docker` / `prime` / `modal`, placement `colocated`,
23
- harnesses `null` / `default` / `rlm` / `kimi_code` / `codex` / `claude_code`. A mark is applied per
23
+ harnesses `null` / `bash` / `rlm` / `kimi_code` / `codex` / `claude_code`. A mark is applied per
24
24
  axis, so it selects every case touching that value on ANY axis; for one exact combination use `-k`
25
25
  on the test id (e.g. `-k "harness-in-docker-with-tool-in-subprocess"`). prime/modal provision real
26
26
  remote sandboxes (slow, infra-flaky, need setup), so they're local-only — CI runs
@@ -104,7 +104,7 @@ def tool_runtime(request) -> dict:
104
104
  return {"runtime": {"type": request.param}}
105
105
 
106
106
 
107
- # Harnesses, composed with the runtime fixtures, each carrying its harness mark (`-m default`, ...).
107
+ # Harnesses, composed with the runtime fixtures, each carrying its harness mark (`-m bash`, ...).
108
108
  # Built-ins are bundled in the `harnesses` package; the agent CLIs (`rlm` / `kimi-code` / `codex` /
109
109
  # `claude-code`) install their dependencies at rollout. `compact` (an example harness) and
110
110
  # `terminus-2` (drives the host tmux) are excluded. `test_agentic` skips `null` (a chat loop with no
@@ -112,7 +112,7 @@ def tool_runtime(request) -> dict:
112
112
  @pytest.fixture(
113
113
  params=[
114
114
  pytest.param("null", marks=pytest.mark.null, id="null"),
115
- pytest.param("default", marks=pytest.mark.default, id="default"),
115
+ pytest.param("bash", marks=pytest.mark.bash, id="bash"),
116
116
  pytest.param("rlm", marks=pytest.mark.rlm, id="rlm"),
117
117
  pytest.param("kimi-code", marks=pytest.mark.kimi_code, id="kimi-code"),
118
118
  pytest.param("codex", marks=pytest.mark.codex, id="codex"),
@@ -105,9 +105,11 @@ from verifiers.v1.trace import (
105
105
  Branch,
106
106
  Error,
107
107
  EvalRunInfo,
108
+ GenerationSpan,
108
109
  ModelCall,
109
110
  RunInfo,
110
111
  TimeSpan,
112
+ TimeSplit,
111
113
  Timing,
112
114
  Trace,
113
115
  TraceTask,
@@ -184,6 +186,8 @@ __all__ = [
184
186
  "KeptTokens",
185
187
  "Timing",
186
188
  "TimeSpan",
189
+ "TimeSplit",
190
+ "GenerationSpan",
187
191
  "Error",
188
192
  # decorators
189
193
  "stop",
@@ -300,6 +300,7 @@ def _breakdown(done: list[Trace]) -> Table | None:
300
300
  have_cost = have_cached = have_reasoning = have_judge = False
301
301
  phase_secs: dict[str, float] = {}
302
302
  phase_count: dict[str, int] = {}
303
+ model_secs = harness_secs = 0.0
303
304
  for trace in done:
304
305
  prompt, completion, cached, reasoning, _ = _tokens(trace)
305
306
  total_in += prompt
@@ -326,6 +327,8 @@ def _breakdown(done: list[Trace]) -> Table | None:
326
327
  if span.end: # phase was timed for this rollout
327
328
  phase_secs[phase] = phase_secs.get(phase, 0.0) + span.duration
328
329
  phase_count[phase] = phase_count.get(phase, 0) + 1
330
+ model_secs += trace.timing.generation.model.duration
331
+ harness_secs += trace.timing.generation.harness.duration
329
332
  if (
330
333
  total_in
331
334
  or total_out
@@ -353,11 +356,18 @@ def _breakdown(done: list[Trace]) -> Table | None:
353
356
  cost += f" + {format_cost_usd(total_judge_cost)} judge"
354
357
  usage.append(cost)
355
358
  grid.add_row("usage", " · ".join(usage))
356
- time_segments = [
357
- f"{phase} {format_time(phase_secs[phase] / phase_count[phase])}"
358
- for phase in ("boot", "setup", "generation", "finalize", "scoring")
359
- if phase_count.get(phase)
360
- ]
359
+ time_segments = []
360
+ for phase in ("boot", "setup", "generation", "finalize", "scoring"):
361
+ count = phase_count.get(phase)
362
+ if not count:
363
+ continue
364
+ segment = f"{phase} {format_time(phase_secs[phase] / count)}"
365
+ if phase == "generation":
366
+ segment += (
367
+ f" (model {format_time(model_secs / count)}"
368
+ f" + harness {format_time(harness_secs / count)})"
369
+ )
370
+ time_segments.append(segment)
361
371
  if time_segments:
362
372
  grid.add_row("time", " · ".join(time_segments))
363
373
  return grid if grid.row_count else None
@@ -243,6 +243,7 @@ async def debug_task(task: Task, config: DebugConfig) -> tuple[Trace, bool]:
243
243
  except Exception as e:
244
244
  record_debug_error(trace, debug, e, setup_timeout, config.timeout.total)
245
245
  finally:
246
+ trace.split_generation()
246
247
  trace.info["debug"] = debug
247
248
  try:
248
249
  await runtime.stop()
@@ -235,7 +235,7 @@ A v1 verifiers environment, scaffolded with `init`.
235
235
 
236
236
  ```bash
237
237
  uv pip install -e . # install this package (or register it in your project)
238
- uv run eval {dash} -n 3 # evaluate a few tasks with the default harness
238
+ uv run eval {dash} -n 3 # evaluate a few tasks with the bash harness
239
239
  ```
240
240
 
241
241
  ## Layout
@@ -125,7 +125,7 @@ def parse_tools(raw: list[dict] | None) -> list[Tool] | None:
125
125
 
126
126
 
127
127
  # --- vf -> chat wire ----------------------------------------------------------
128
- # `message_to_wire` (chat-only): used by `extend` (user-sim turn injection), the default harness
128
+ # `message_to_wire` (chat-only): used by `extend` (user-sim turn injection), the bash harness
129
129
  # (a Messages prompt), and the train client (its generate request). The proxy preserves its parsed
130
130
  # native JSON independently and does not use this serializer.
131
131
 
@@ -87,11 +87,11 @@ def pool_serve_kwargs(pool: StaticPoolConfig | ElasticPoolConfig) -> dict:
87
87
  class EnvConfig(BaseConfig):
88
88
  """The taskset that loads tasks and the harness that runs them."""
89
89
 
90
- # SerializeAsAny: these hold resolved subclasses (e.g. MathConfig, DefaultHarnessConfig);
90
+ # SerializeAsAny: these hold resolved subclasses (e.g. MathConfig, BashHarnessConfig);
91
91
  # without it model_dump() narrows to the base type and drops the subclass fields, so the
92
92
  # env-server subconfig the orchestrator writes would lose taskset/harness-specific knobs.
93
93
  taskset: SerializeAsAny[TasksetConfig] = TasksetConfig()
94
- harness: SerializeAsAny[HarnessConfig] = HarnessConfig(id="default")
94
+ harness: SerializeAsAny[HarnessConfig] = HarnessConfig(id="bash")
95
95
  timeout: TimeoutConfig = TimeoutConfig()
96
96
  retries: RetryConfig = RetryConfig()
97
97
  max_turns: int | None = None
@@ -31,7 +31,7 @@ logger = logging.getLogger(__name__)
31
31
 
32
32
 
33
33
  class HarnessConfig(BaseConfig):
34
- id: ID = "default"
34
+ id: ID = "bash"
35
35
  """Local package or Hub `org/name[@version]`, set through `--harness.id`."""
36
36
  runtime: RuntimeConfig = SubprocessConfig()
37
37
  """Runtime for the harness program; tool servers choose their placement separately."""
@@ -1,9 +1,9 @@
1
+ from verifiers.v1.harnesses.bash import BashHarness, BashHarnessConfig
1
2
  from verifiers.v1.harnesses.claude_code import (
2
3
  ClaudeCodeHarness,
3
4
  ClaudeCodeHarnessConfig,
4
5
  )
5
6
  from verifiers.v1.harnesses.codex import CodexHarness, CodexHarnessConfig
6
- from verifiers.v1.harnesses.default import DefaultHarness, DefaultHarnessConfig
7
7
  from verifiers.v1.harnesses.kimi_code import KimiCodeHarness, KimiCodeHarnessConfig
8
8
  from verifiers.v1.harnesses.mini_swe_agent import (
9
9
  MiniSWEAgentHarness,
@@ -15,12 +15,12 @@ from verifiers.v1.harnesses.rlm import RLMHarness, RLMHarnessConfig
15
15
  from verifiers.v1.harnesses.terminus_2 import Terminus2Harness, Terminus2HarnessConfig
16
16
 
17
17
  __all__ = [
18
+ "BashHarness",
19
+ "BashHarnessConfig",
18
20
  "ClaudeCodeHarness",
19
21
  "ClaudeCodeHarnessConfig",
20
22
  "CodexHarness",
21
23
  "CodexHarnessConfig",
22
- "DefaultHarness",
23
- "DefaultHarnessConfig",
24
24
  "KimiCodeHarness",
25
25
  "KimiCodeHarnessConfig",
26
26
  "NullHarness",
@@ -0,0 +1,6 @@
1
+ from verifiers.v1.harnesses.bash.harness import (
2
+ BashHarness,
3
+ BashHarnessConfig,
4
+ )
5
+
6
+ __all__ = ["BashHarness", "BashHarnessConfig"]
@@ -25,7 +25,7 @@ SEARCH_PROMPT = (
25
25
  )
26
26
 
27
27
 
28
- class DefaultHarnessConfig(HarnessConfig):
28
+ class BashHarnessConfig(HarnessConfig):
29
29
  edit: bool = True
30
30
  """Offer the local `edit` tool (single-occurrence string replacement in a file) alongside
31
31
  `bash`. On by default; set `--harness.edit false` for a bash-only agent."""
@@ -36,7 +36,7 @@ class DefaultHarnessConfig(HarnessConfig):
36
36
  the agent's `bash` subprocesses don't inherit it."""
37
37
 
38
38
 
39
- class DefaultHarness(Harness[DefaultHarnessConfig]):
39
+ class BashHarness(Harness[BashHarnessConfig]):
40
40
  APPENDS_SYSTEM_PROMPT = True
41
41
  SUPPORTS_MCP = True
42
42
  SUPPORTS_USER_SIM = True
@@ -86,7 +86,7 @@ class DefaultHarness(Harness[DefaultHarnessConfig]):
86
86
  serper_key = os.environ.get("SERPER_API_KEY")
87
87
  if not serper_key:
88
88
  raise ValueError(
89
- "default search=true requires SERPER_API_KEY in the eval environment "
89
+ "bash search=true requires SERPER_API_KEY in the eval environment "
90
90
  "(the host env or --harness.env)"
91
91
  )
92
92
  args += ["--search", f"--serper-key={serper_key}"]
@@ -32,7 +32,16 @@ from verifiers.v1.serve.types import (
32
32
  )
33
33
  from verifiers.v1.task import WireTaskData
34
34
  from verifiers.v1 import graph
35
- from verifiers.v1.trace import Error, ModelCall, TimeSpan, Timing, Trace, TraceTask
35
+ from verifiers.v1.trace import (
36
+ Error,
37
+ GenerationSpan,
38
+ ModelCall,
39
+ TimeSpan,
40
+ TimeSplit,
41
+ Timing,
42
+ Trace,
43
+ TraceTask,
44
+ )
36
45
  from verifiers.v1.types import (
37
46
  AssistantMessage,
38
47
  Response,
@@ -185,7 +194,8 @@ def _to_v1_tokens(raw: Any) -> TurnTokens | None:
185
194
 
186
195
  def _timing(raw: Any) -> Timing:
187
196
  """Map the v0 timing record's generation/scoring durations onto a v1 ``Timing``
188
- (we only have durations, so each span is encoded as start=0, end=duration)."""
197
+ (we only have durations, so each span is encoded as start=0, end=duration).
198
+ v0's per-turn ``model``/``env`` span collections carry the generation split."""
189
199
 
190
200
  def _dur(node: Any) -> float:
191
201
  if isinstance(node, dict):
@@ -198,7 +208,12 @@ def _timing(raw: Any) -> Timing:
198
208
 
199
209
  raw = raw or {}
200
210
  return Timing(
201
- generation=TimeSpan(start=0.0, end=_dur(raw.get("generation"))),
211
+ generation=GenerationSpan(
212
+ start=0.0,
213
+ end=_dur(raw.get("generation")),
214
+ model=TimeSplit(duration=_dur(raw.get("model"))),
215
+ harness=TimeSplit(duration=_dur(raw.get("env"))),
216
+ ),
202
217
  scoring=TimeSpan(start=0.0, end=_dur(raw.get("scoring"))),
203
218
  )
204
219
 
@@ -98,12 +98,12 @@ def judge_class(judge_id: str) -> type[Judge]:
98
98
 
99
99
  def default_harness_id(taskset_id: str) -> str:
100
100
  if not taskset_id:
101
- return "default"
101
+ return "bash"
102
102
  try:
103
103
  module = import_taskset(taskset_id)
104
104
  _plugin_class(module, Harness, "harness")
105
105
  except (ModuleNotFoundError, TypeError, AttributeError):
106
- return "default"
106
+ return "bash"
107
107
  return taskset_id
108
108
 
109
109
 
@@ -249,6 +249,7 @@ class Rollout:
249
249
  ):
250
250
  if span.start and not span.end:
251
251
  span.end = now
252
+ trace.split_generation()
252
253
  try:
253
254
  await runtime.stop()
254
255
  except Exception:
@@ -49,11 +49,30 @@ class TimeSpan(StrictBaseModel):
49
49
  return max(0.0, self.end - self.start) if self.end else 0.0
50
50
 
51
51
 
52
+ class TimeSplit(StrictBaseModel):
53
+ """A span's share attributed to one side of a split: disjoint sub-intervals summed
54
+ into a duration, so there is no single start/end. Serialized, unlike a span's
55
+ derived `duration`, since it cannot be recomputed from two timestamps."""
56
+
57
+ duration: float = 0.0
58
+
59
+
60
+ class GenerationSpan(TimeSpan):
61
+ """The generation span plus its split into time inside model calls (`model`) vs.
62
+ outside them (`harness`: harness logic, tools, user simulation). Stamped from the
63
+ recorded model calls' spans by `Trace.split_generation` when the span closes, with
64
+ `model.duration + harness.duration == duration` — concurrent calls (subagent forks)
65
+ are clamped to the span, saturating the model share."""
66
+
67
+ model: TimeSplit = Field(default_factory=TimeSplit)
68
+ harness: TimeSplit = Field(default_factory=TimeSplit)
69
+
70
+
52
71
  class Timing(StrictBaseModel):
53
72
  start: float = Field(default_factory=time.time)
54
73
  boot: TimeSpan = Field(default_factory=TimeSpan)
55
74
  setup: TimeSpan = Field(default_factory=TimeSpan)
56
- generation: TimeSpan = Field(default_factory=TimeSpan)
75
+ generation: GenerationSpan = Field(default_factory=GenerationSpan)
57
76
  finalize: TimeSpan = Field(default_factory=TimeSpan)
58
77
  scoring: TimeSpan = Field(default_factory=TimeSpan)
59
78
 
@@ -537,6 +556,18 @@ class Trace(StrictBaseModel, Generic[DataT, StateT]):
537
556
  if self.stop_condition is None:
538
557
  self.stop_condition = condition
539
558
 
559
+ def split_generation(self) -> None:
560
+ """Stamp the closed generation span's model/harness split: model time is the
561
+ sum of the recorded calls' spans (clamped to the span), harness the complement.
562
+ Every path that closes the span calls this — a span without model calls (e.g.
563
+ a debug action) is all harness time."""
564
+ gen = self.timing.generation
565
+ if not gen.end:
566
+ return
567
+ model = sum(call.time.duration for call in self.calls)
568
+ gen.model.duration = min(model, gen.duration)
569
+ gen.harness.duration = gen.duration - gen.model.duration
570
+
540
571
  def capture_error(self, error: Exception) -> None:
541
572
  self.errors.append(
542
573
  Error(
@@ -1,6 +0,0 @@
1
- from verifiers.v1.harnesses.default.harness import (
2
- DefaultHarness,
3
- DefaultHarnessConfig,
4
- )
5
-
6
- __all__ = ["DefaultHarness", "DefaultHarnessConfig"]
File without changes