verifiers 0.3.1.dev42__tar.gz → 0.3.1.dev44__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 (438) hide show
  1. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/PKG-INFO +2 -2
  2. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/pyproject.toml +1 -1
  3. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_judges.py +2 -2
  4. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/dashboard/eval.py +1 -2
  5. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/eval.py +1 -2
  6. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/harness.py +2 -3
  7. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/judge.py +3 -4
  8. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/taskset.py +2 -3
  9. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/types.py +3 -11
  10. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/loaders.py +4 -17
  11. verifiers-0.3.1.dev42/verifiers/v1/utils/install.py +0 -39
  12. verifiers-0.3.1.dev42/verifiers/v1/utils/install_utils.py +0 -239
  13. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/.gitignore +0 -0
  14. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/LICENSE +0 -0
  15. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/README.md +0 -0
  16. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/__init__.py +0 -0
  17. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/conftest.py +0 -0
  18. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_browser_env.py +0 -0
  19. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_build_script.py +0 -0
  20. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_cli_agent_env.py +0 -0
  21. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_client_auth_errors.py +0 -0
  22. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_client_config.py +0 -0
  23. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_client_multimodal_types.py +0 -0
  24. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_composable_env.py +0 -0
  25. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_context_token_metrics.py +0 -0
  26. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_decorator_ranks.py +0 -0
  27. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_endpoint_registry.py +0 -0
  28. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_env_group.py +0 -0
  29. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_env_server.py +0 -0
  30. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_environment.py +0 -0
  31. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_environment_extra.py +0 -0
  32. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_error_chain.py +0 -0
  33. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_eval_display.py +0 -0
  34. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_eval_utils.py +0 -0
  35. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_gepa_cli.py +0 -0
  36. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_gepa_utils.py +0 -0
  37. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_gym_env.py +0 -0
  38. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_harbor_env_mcp.py +0 -0
  39. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_imports.py +0 -0
  40. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_init_script.py +0 -0
  41. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_install_utils.py +0 -0
  42. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_interception_utils.py +0 -0
  43. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_logging.py +0 -0
  44. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_math_rubric.py +0 -0
  45. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_maybe_think_parser.py +0 -0
  46. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_message_utils.py +0 -0
  47. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_message_utils_multimodal.py +0 -0
  48. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_multiturn_env.py +0 -0
  49. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_nemorl_client.py +0 -0
  50. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_openai_chat_completions_token_client.py +0 -0
  51. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_openai_responses_client.py +0 -0
  52. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_opencode_rlm_env.py +0 -0
  53. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_openenv_client.py +0 -0
  54. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_parser.py +0 -0
  55. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_path_utils.py +0 -0
  56. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_per_turn_timing.py +0 -0
  57. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_pricing_utils.py +0 -0
  58. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_prime_plugin.py +0 -0
  59. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_renderer_client.py +0 -0
  60. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_renderer_e2e.py +0 -0
  61. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_rlm_composable_env.py +0 -0
  62. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_rubric.py +0 -0
  63. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_rubric_group.py +0 -0
  64. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_sandbox_debug_env.py +0 -0
  65. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_sandbox_env.py +0 -0
  66. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_sandbox_mixin.py +0 -0
  67. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_save_utils.py +0 -0
  68. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_setup_script.py +0 -0
  69. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_singleturn_env.py +0 -0
  70. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_stateful_tool_env.py +0 -0
  71. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_think_parser.py +0 -0
  72. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_tool_env.py +0 -0
  73. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_tool_utils.py +0 -0
  74. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_trajectory_processing.py +0 -0
  75. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_tui_info_formatting.py +0 -0
  76. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_types.py +0 -0
  77. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/test_xml_parser.py +0 -0
  78. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/conftest.py +0 -0
  79. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  80. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/duet_v1.py +0 -0
  81. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  82. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  83. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  84. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  85. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/echo_v1.py +0 -0
  86. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/pyproject.toml +0 -0
  87. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  88. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_color_codeword_tasks.py +0 -0
  89. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_configs.py +0 -0
  90. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_e2e.py +0 -0
  91. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_envs.py +0 -0
  92. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_graph.py +0 -0
  93. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_scoring.py +0 -0
  94. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_taskset.py +0 -0
  95. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/tests/v1/test_trace.py +0 -0
  96. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/__init__.py +0 -0
  97. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/__init__.py +0 -0
  98. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/__init__.py +0 -0
  99. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/build.py +0 -0
  100. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/eval.py +0 -0
  101. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/gepa.py +0 -0
  102. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/init.py +0 -0
  103. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/install.py +0 -0
  104. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/commands/setup.py +0 -0
  105. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/plugins/__init__.py +0 -0
  106. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/plugins/prime.py +0 -0
  107. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/cli/tui.py +0 -0
  108. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/__init__.py +0 -0
  109. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/__init__.py +0 -0
  110. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/anthropic_messages_client.py +0 -0
  111. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/client.py +0 -0
  112. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/nemorl_chat_completions_client.py +0 -0
  113. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/openai_chat_completions_client.py +0 -0
  114. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/openai_chat_completions_token_client.py +0 -0
  115. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/openai_completions_client.py +0 -0
  116. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/openai_responses_client.py +0 -0
  117. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/clients/renderer_client.py +0 -0
  118. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/decorators.py +0 -0
  119. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/__init__.py +0 -0
  120. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/env_group.py +0 -0
  121. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/environment.py +0 -0
  122. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/README.md +0 -0
  123. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/__init__.py +0 -0
  124. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/cli_agent_env.py +0 -0
  125. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/README.md +0 -0
  126. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/__init__.py +0 -0
  127. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/_filter.py +0 -0
  128. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/composable_env.py +0 -0
  129. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/harness.py +0 -0
  130. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/harnesses/__init__.py +0 -0
  131. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  132. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/harnesses/opencode.py +0 -0
  133. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/harnesses/prompt.txt +0 -0
  134. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/harnesses/rlm.py +0 -0
  135. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/sandbox_debug_env.py +0 -0
  136. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/swe_debug_env.py +0 -0
  137. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/task.py +0 -0
  138. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/__init__.py +0 -0
  139. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  140. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  141. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  142. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  143. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
  144. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  145. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
  146. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  147. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  148. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/README.md +0 -0
  149. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  150. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  151. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  152. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  153. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  154. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  155. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  156. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  157. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  158. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  159. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  160. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  161. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  162. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  163. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  164. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  165. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  166. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  167. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  168. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  169. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  170. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  171. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  172. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/gym_env.py +0 -0
  173. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/harbor_env/__init__.py +0 -0
  174. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/harbor_env/env.py +0 -0
  175. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/harbor_env/mcp.py +0 -0
  176. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/mcp_env.py +0 -0
  177. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/opencode_env.py +0 -0
  178. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/opencode_qa_env.py +0 -0
  179. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/opencode_rlm_env.py +0 -0
  180. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/sandbox_mixin.py +0 -0
  181. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/utils/__init__.py +0 -0
  182. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/utils/file_locks.py +0 -0
  183. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/experimental/utils/git_checkout_cache.py +0 -0
  184. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/README.md +0 -0
  185. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/__init__.py +0 -0
  186. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/README.md +0 -0
  187. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/__init__.py +0 -0
  188. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/browser_env.py +0 -0
  189. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/modes/__init__.py +0 -0
  190. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/modes/base.py +0 -0
  191. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  192. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  193. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/openenv_env.py +0 -0
  194. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/reasoninggym_env.py +0 -0
  195. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/integrations/textarena_env.py +0 -0
  196. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/multiturn_env.py +0 -0
  197. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/python_env.py +0 -0
  198. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/sandbox_env.py +0 -0
  199. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/singleturn_env.py +0 -0
  200. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/stateful_tool_env.py +0 -0
  201. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/envs/tool_env.py +0 -0
  202. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/errors.py +0 -0
  203. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/gepa/__init__.py +0 -0
  204. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/gepa/adapter.py +0 -0
  205. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/gepa/config.py +0 -0
  206. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/gepa/display.py +0 -0
  207. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/gepa/gepa_utils.py +0 -0
  208. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/parsers/__init__.py +0 -0
  209. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/parsers/maybe_think_parser.py +0 -0
  210. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/parsers/parser.py +0 -0
  211. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/parsers/think_parser.py +0 -0
  212. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/parsers/xml_parser.py +0 -0
  213. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/rubrics/__init__.py +0 -0
  214. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/rubrics/experimental/hybrid_math_rubric.py +0 -0
  215. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/rubrics/judge_rubric.py +0 -0
  216. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/rubrics/math_rubric.py +0 -0
  217. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/rubrics/rubric.py +0 -0
  218. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/rubrics/rubric_group.py +0 -0
  219. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/__init__.py +0 -0
  220. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/build.py +0 -0
  221. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/eval.py +0 -0
  222. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/gepa.py +0 -0
  223. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/init.py +0 -0
  224. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/install.py +0 -0
  225. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/setup.py +0 -0
  226. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/scripts/tui.py +0 -0
  227. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/__init__.py +0 -0
  228. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/client/env_client.py +0 -0
  229. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/client/zmq_env_client.py +0 -0
  230. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/server/__init__.py +0 -0
  231. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/server/env_router.py +0 -0
  232. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/server/env_server.py +0 -0
  233. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/server/env_worker.py +0 -0
  234. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/server/zmq_env_server.py +0 -0
  235. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/serve/types.py +0 -0
  236. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/types.py +0 -0
  237. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/__init__.py +0 -0
  238. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/async_utils.py +0 -0
  239. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/client_utils.py +0 -0
  240. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/config_utils.py +0 -0
  241. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/data_utils.py +0 -0
  242. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/display_utils.py +0 -0
  243. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/env_config_utils.py +0 -0
  244. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/env_utils.py +0 -0
  245. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/error_utils.py +0 -0
  246. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/eval_display.py +0 -0
  247. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/eval_utils.py +0 -0
  248. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/heartbeat.py +0 -0
  249. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/import_utils.py +0 -0
  250. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/install_utils.py +0 -0
  251. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/interception_utils.py +0 -0
  252. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/logging_utils.py +0 -0
  253. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/message_utils.py +0 -0
  254. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/metric_utils.py +0 -0
  255. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/path_utils.py +0 -0
  256. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/pricing_utils.py +0 -0
  257. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/process_utils.py +0 -0
  258. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/response_utils.py +0 -0
  259. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/save_utils.py +0 -0
  260. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/serve_utils.py +0 -0
  261. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/thread_utils.py +0 -0
  262. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/threaded_sandbox_client.py +0 -0
  263. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/tool_utils.py +0 -0
  264. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/usage_utils.py +0 -0
  265. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/legacy/utils/version_utils.py +0 -0
  266. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/__init__.py +0 -0
  267. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/acp/__init__.py +0 -0
  268. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/acp/runner.py +0 -0
  269. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/agent.py +0 -0
  270. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/__init__.py +0 -0
  271. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  272. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/dashboard/base.py +0 -0
  273. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/dashboard/replay.py +0 -0
  274. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/dashboard/validate.py +0 -0
  275. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/debug.py +0 -0
  276. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/eval/__init__.py +0 -0
  277. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/eval/main.py +0 -0
  278. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/eval/resume.py +0 -0
  279. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/eval/runner.py +0 -0
  280. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/gepa.py +0 -0
  281. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/init.py +0 -0
  282. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/output.py +0 -0
  283. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/replay.py +0 -0
  284. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/resolve.py +0 -0
  285. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/resume.py +0 -0
  286. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/cli/validate.py +0 -0
  287. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/clients/__init__.py +0 -0
  288. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/clients/base.py +0 -0
  289. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/clients/client.py +0 -0
  290. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/clients/eval.py +0 -0
  291. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/clients/train.py +0 -0
  292. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/__init__.py +0 -0
  293. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/agent.py +0 -0
  294. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/__init__.py +0 -0
  295. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/debug.py +0 -0
  296. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/env.py +0 -0
  297. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/init.py +0 -0
  298. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/replay.py +0 -0
  299. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/cli/validate.py +0 -0
  300. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/client.py +0 -0
  301. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/env.py +0 -0
  302. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/retries.py +0 -0
  303. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/runtime.py +0 -0
  304. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/serve.py +0 -0
  305. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/configs/task.py +0 -0
  306. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/dialects/__init__.py +0 -0
  307. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/dialects/anthropic.py +0 -0
  308. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/dialects/base.py +0 -0
  309. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/dialects/chat.py +0 -0
  310. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/dialects/responses.py +0 -0
  311. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/env.py +0 -0
  312. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/__init__.py +0 -0
  313. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  314. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  315. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  316. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/best_of_n/env.py +0 -0
  317. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  318. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  319. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/single_agent/env.py +0 -0
  320. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  321. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/envs/user_sim/env.py +0 -0
  322. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/episode.py +0 -0
  323. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/errors.py +0 -0
  324. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/gepa/__init__.py +0 -0
  325. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/gepa/adapter.py +0 -0
  326. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/gepa/config.py +0 -0
  327. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/gepa/dataset.py +0 -0
  328. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/gepa/reflection.py +0 -0
  329. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/gepa/runner.py +0 -0
  330. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/graph.py +0 -0
  331. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harness.py +0 -0
  332. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/__init__.py +0 -0
  333. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  334. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/bash/harness.py +0 -0
  335. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/bash/program.py +0 -0
  336. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  337. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  338. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  339. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  340. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  341. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  342. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/codex/harness.py +0 -0
  343. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  344. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  345. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  346. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  347. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  348. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  349. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  350. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  351. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/node.py +0 -0
  352. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/null/__init__.py +0 -0
  353. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/null/harness.py +0 -0
  354. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/null/program.py +0 -0
  355. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  356. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  357. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  358. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/pi/harness.py +0 -0
  359. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/pool/__init__.py +0 -0
  360. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/pool/harness.py +0 -0
  361. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  362. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  363. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  364. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  365. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  366. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/__init__.py +0 -0
  367. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/base.py +0 -0
  368. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/pool.py +0 -0
  369. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/server.py +0 -0
  370. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/tool.py +0 -0
  371. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  372. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/tunnel/base.py +0 -0
  373. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/tunnel/custom.py +0 -0
  374. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/interception/tunnel/prime.py +0 -0
  375. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/judge.py +0 -0
  376. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/judges/__init__.py +0 -0
  377. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/judges/reference.py +0 -0
  378. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/judges/reference.txt +0 -0
  379. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/judges/rubric.py +0 -0
  380. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/judges/rubric.txt +0 -0
  381. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/mcp/__init__.py +0 -0
  382. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/mcp/launch.py +0 -0
  383. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/mcp/server.py +0 -0
  384. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/mcp/toolset.py +0 -0
  385. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/rollout.py +0 -0
  386. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/__init__.py +0 -0
  387. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/base.py +0 -0
  388. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  389. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/docker/egress.py +0 -0
  390. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/limiters.py +0 -0
  391. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/modal.py +0 -0
  392. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/prime.py +0 -0
  393. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/runtimes/subprocess.py +0 -0
  394. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/serve/__init__.py +0 -0
  395. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/serve/client.py +0 -0
  396. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/serve/encoding.py +0 -0
  397. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/serve/pool.py +0 -0
  398. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/serve/server.py +0 -0
  399. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/serve/types.py +0 -0
  400. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/session.py +0 -0
  401. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/state.py +0 -0
  402. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/task.py +0 -0
  403. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/taskset.py +0 -0
  404. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/__init__.py +0 -0
  405. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  406. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/harbor/env.py +0 -0
  407. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  408. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  409. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  410. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  411. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  412. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  413. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  414. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  415. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  416. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  417. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  418. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  419. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  420. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/trace.py +0 -0
  421. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/__init__.py +0 -0
  422. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/aio.py +0 -0
  423. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/artifacts.py +0 -0
  424. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/compile.py +0 -0
  425. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/decorators.py +0 -0
  426. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/format.py +0 -0
  427. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/generic.py +0 -0
  428. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/git.py +0 -0
  429. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/image.py +0 -0
  430. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/interrupt.py +0 -0
  431. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/logging.py +0 -0
  432. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/memory.py +0 -0
  433. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/paths.py +0 -0
  434. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/platform.py +0 -0
  435. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/prime.py +0 -0
  436. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/retries.py +0 -0
  437. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/score.py +0 -0
  438. {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev44}/verifiers/v1/utils/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.3.1.dev42
3
+ Version: 0.3.1.dev44
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
@@ -34,7 +34,7 @@ Requires-Dist: msgpack>=1.1.2
34
34
  Requires-Dist: numpy>=2.1.0
35
35
  Requires-Dist: openai-agents>=0.8.2
36
36
  Requires-Dist: openai>=2.9.0
37
- Requires-Dist: prime-pydantic-config[toml]>=0.4.2
37
+ Requires-Dist: prime-pydantic-config[toml]>=0.4.3
38
38
  Requires-Dist: prime-sandboxes>=0.2.37
39
39
  Requires-Dist: prime-tunnel>=0.1.8
40
40
  Requires-Dist: pydantic>=2.12.3
@@ -47,7 +47,7 @@ dependencies = [
47
47
  "setproctitle>=1.3.0",
48
48
  "httpx>=0.27.0",
49
49
  "aiohttp>=3.9.0",
50
- "prime-pydantic-config[toml]>=0.4.2",
50
+ "prime-pydantic-config[toml]>=0.4.3",
51
51
  "uvloop>=0.21.0; sys_platform != 'win32' and sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'",
52
52
  "loguru>=0.7.0",
53
53
  "tomli-w>=1.0.0",
@@ -184,7 +184,7 @@ def test_judges_reject_shared_reward_keys():
184
184
 
185
185
 
186
186
  def test_reward_name_fallback():
187
- # name > id's package name > snake-cased class name (code-level judge with neither).
187
+ # name > id > snake-cased class name (code-level judge with neither).
188
188
  class MyQualityJudge(vf.Judge[float]):
189
189
  prompt = "{x}"
190
190
 
@@ -192,7 +192,7 @@ def test_reward_name_fallback():
192
192
  vf.ReferenceJudge().reward_name == "reference"
193
193
  ) # class-name fallback (no id set)
194
194
  assert (
195
- vf.ReferenceJudge(vf.ReferenceJudgeConfig(id="org/my-judge@1.0.0")).reward_name
195
+ vf.ReferenceJudge(vf.ReferenceJudgeConfig(id="my-judge")).reward_name
196
196
  == "my-judge"
197
197
  )
198
198
  assert vf.ReferenceJudge(vf.ReferenceJudgeConfig(name="gold")).reward_name == "gold"
@@ -24,7 +24,6 @@ from verifiers.v1.utils.format import (
24
24
  format_override,
25
25
  format_time,
26
26
  )
27
- from verifiers.v1.utils.install import env_name
28
27
  from verifiers.v1.utils.interrupt import cleaning_up
29
28
 
30
29
  if TYPE_CHECKING:
@@ -240,7 +239,7 @@ def Overview(config: EvalConfig) -> Table:
240
239
  taskset = config.env.taskset
241
240
  env_label = taskset.name if taskset.id else "no taskset"
242
241
  if config.env.id:
243
- env_label = f"{env_name(config.env.id)}+{env_label}"
242
+ env_label = f"{config.env.id}+{env_label}"
244
243
  # One seat story when every seat resolves the same way (the common case); one
245
244
  # row per seat when they diverge (a judge on its own harness/runtime).
246
245
  runtimes = {role: getattr(config.env, role).runtime.type for role in seats}
@@ -12,7 +12,6 @@ from verifiers.v1.configs.env import EnvConfig
12
12
  from verifiers.v1.configs.serve import ServeConfig
13
13
  from verifiers.v1.envs.single_agent import SingleAgentEnvConfig
14
14
  from verifiers.v1.types import SamplingConfig
15
- from verifiers.v1.utils.install import env_name
16
15
 
17
16
 
18
17
  def default_run_name(env: EnvConfig, model: str) -> str:
@@ -24,7 +23,7 @@ def default_run_name(env: EnvConfig, model: str) -> str:
24
23
  if taskset.id and env.id:
25
24
  # Same compounding as `EnvConfig.env_id`: a `best-of-n+gsm8k` run must
26
25
  # not share a name with a plain `gsm8k` one.
27
- name = f"{env_name(env.id)}+{name}"
26
+ name = f"{env.id}+{name}"
28
27
  # Every seat's resolved harness, distinct, in role order.
29
28
  harness = "+".join(dict.fromkeys(h.name for h in env.agent_harnesses().values()))
30
29
  slug = (
@@ -9,12 +9,11 @@ from pydantic import ConfigDict, Field, FiniteFloat
9
9
  from pydantic_config import BaseConfig
10
10
 
11
11
  from verifiers.v1.types import ID
12
- from verifiers.v1.utils.install import env_name
13
12
 
14
13
 
15
14
  class HarnessConfig(BaseConfig):
16
15
  id: ID = "bash"
17
- """Local package or Hub `org/name[@version]`, set through the seat's
16
+ """Installed harness package, set through the seat's
18
17
  `--env.<role>.harness.id` (`--env.agent.harness.id` on the single-agent env)."""
19
18
  env: dict[str, str] = Field(default_factory=dict)
20
19
  """Extra program variables; harness-owned variables take precedence."""
@@ -30,7 +29,7 @@ class HarnessConfig(BaseConfig):
30
29
 
31
30
  @property
32
31
  def name(self) -> str:
33
- return env_name(self.id)
32
+ return self.id
34
33
 
35
34
  @property
36
35
  def resolved_env(self) -> dict[str, str]:
@@ -9,7 +9,6 @@ from pydantic import BaseModel, FiniteFloat, SerializeAsAny
9
9
 
10
10
  from verifiers.v1.clients import BaseClientConfig
11
11
  from verifiers.v1.types import ID, SamplingConfig
12
- from verifiers.v1.utils.install import env_name
13
12
 
14
13
 
15
14
  class JudgeConfig(BaseClientConfig):
@@ -29,7 +28,7 @@ Judges = list[SerializeAsAny[JudgeConfig]]
29
28
 
30
29
 
31
30
  def judge_key(config: JudgeConfig) -> str:
32
- return config.name or env_name(config.id)
31
+ return config.name or config.id
33
32
 
34
33
 
35
34
  def resolve_judges(entries: Sequence[Any]) -> list[JudgeConfig]:
@@ -41,7 +40,7 @@ def resolve_judges(entries: Sequence[Any]) -> list[JudgeConfig]:
41
40
  if not raw.get("id"):
42
41
  raise ValueError(
43
42
  "each `judges` entry needs an `id` (a judge plugin: `reference`, "
44
- "`rubric`, a local package, or a hub `org/name` package)"
43
+ "`rubric`, or an installed package)"
45
44
  )
46
45
  resolved.append(judge_config_type(raw["id"]).model_validate(raw))
47
46
  return resolved
@@ -52,7 +51,7 @@ def check_judges(entries: Sequence[JudgeConfig]) -> None:
52
51
  if not entry.id:
53
52
  raise ValueError(
54
53
  "each `judges` entry needs an `id` (a judge plugin: `reference`, "
55
- "`rubric`, a local package, or a hub `org/name` package)"
54
+ "`rubric`, or an installed package)"
56
55
  )
57
56
  keys = [judge_key(entry) for entry in entries]
58
57
  if duplicates := {key for key in keys if keys.count(key) > 1}:
@@ -7,12 +7,11 @@ from pydantic_config import BaseConfig
7
7
 
8
8
  from verifiers.v1.configs.task import TaskConfig
9
9
  from verifiers.v1.types import ID
10
- from verifiers.v1.utils.install import env_name
11
10
 
12
11
 
13
12
  class TasksetConfig(BaseConfig):
14
13
  id: ID = ""
15
- """Local package or Hub `org/name[@version]`, set with `--env.taskset.id` (or the
14
+ """Installed taskset package, set with `--env.taskset.id` (or the
16
15
  positional `eval <taskset-id>`)."""
17
16
  task: SerializeAsAny[TaskConfig] = TaskConfig()
18
17
  """Config passed to each task, under `--env.taskset.task.*`."""
@@ -22,4 +21,4 @@ class TasksetConfig(BaseConfig):
22
21
 
23
22
  @property
24
23
  def name(self) -> str:
25
- return env_name(self.id)
24
+ return self.id
@@ -2,7 +2,7 @@ from collections.abc import Iterable
2
2
  from dataclasses import dataclass
3
3
  from typing import Annotated, Any, Literal
4
4
 
5
- from pydantic import AfterValidator, AliasChoices, BaseModel, ConfigDict, Field
5
+ from pydantic import AliasChoices, BaseModel, ConfigDict, Field
6
6
  from renderers.base import MultiModalData
7
7
  from typing_extensions import TypedDict
8
8
 
@@ -250,13 +250,5 @@ class SamplingConfig(BaseModel):
250
250
  Sampling = SamplingConfig
251
251
 
252
252
 
253
- def _validate_id(plugin_id: str) -> str:
254
- from verifiers.v1.utils.install_utils import is_hub_env, parse_env_id
255
-
256
- if is_hub_env(plugin_id):
257
- parse_env_id(plugin_id) # raises ValueError on a malformed org/name[@version]
258
- return plugin_id
259
-
260
-
261
- ID = Annotated[str, AfterValidator(_validate_id)]
262
- """Plugin id: `name`, `org/name`, or `org/name@version`."""
253
+ ID = str
254
+ """Plugin id: the name of an installed package exporting the plugin."""
@@ -1,6 +1,5 @@
1
1
  """Resolve taskset, harness, judge, hook, and environment plugins."""
2
2
 
3
- import contextvars
4
3
  import functools
5
4
  import importlib
6
5
  import importlib.util
@@ -25,7 +24,6 @@ from verifiers.v1.judge import Judge, judge_config_cls
25
24
  from verifiers.v1.task import Task
26
25
  from verifiers.v1.taskset import Taskset
27
26
  from verifiers.v1.utils.generic import concrete_type, prefix_validation_error
28
- from verifiers.v1.utils.install import ensure_installed
29
27
 
30
28
 
31
29
  def builtin_harness_ids() -> list[str]:
@@ -36,12 +34,6 @@ def builtin_harness_ids() -> list[str]:
36
34
  return sorted(m.name for m in pkgutil.iter_modules(harnesses.__path__))
37
35
 
38
36
 
39
- skip_plugin_install: contextvars.ContextVar[bool] = contextvars.ContextVar(
40
- "skip_plugin_install", default=False
41
- )
42
- """Skip installing envs from the Hub during config parse (for callers that read the config but never run the env)."""
43
-
44
-
45
37
  def narrow_plugin_field(
46
38
  data: dict,
47
39
  field: str,
@@ -66,10 +58,6 @@ def narrow_plugin_field(
66
58
  f"{field}.id needs an id, and none was given (got {ident!r}); "
67
59
  f"pass the id right after the flag{hint}"
68
60
  )
69
- if skip_plugin_install.get():
70
- # keep the plugin id-only; don't import/install from the Hub
71
- data[field] = {"id": ident}
72
- return
73
61
  try:
74
62
  data[field] = resolve(ident).model_validate({**raw, "id": ident})
75
63
  except ValidationError as e:
@@ -80,7 +68,7 @@ def narrow_plugin_field(
80
68
 
81
69
 
82
70
  def _import_plugin(plugin_id: str, kind: str, group: str) -> ModuleType:
83
- module = ensure_installed(plugin_id)
71
+ module = plugin_id.replace("-", "_").lower()
84
72
  namespaced = f"{group}.{module}"
85
73
  target = namespaced if importlib.util.find_spec(namespaced) else module
86
74
  try:
@@ -100,8 +88,8 @@ def _import_plugin(plugin_id: str, kind: str, group: str) -> ModuleType:
100
88
  raise ModuleNotFoundError(
101
89
  f"{kind} {plugin_id!r} not found (tried to import {target!r}). {article} {kind} is a "
102
90
  f"package exporting its {kind.capitalize()} subclass via `__all__` — the built-in "
103
- f"ones ship with verifiers in the `{group}` package, installed from "
104
- f"the Environments Hub (`org/name`), or authored yourself.{hint}"
91
+ f"ones ship with verifiers in the `{group}` package; any other package "
92
+ f"must already be installed.{hint}"
105
93
  ) from e
106
94
 
107
95
 
@@ -160,8 +148,7 @@ def judge_class(judge_id: str) -> type[Judge]:
160
148
 
161
149
 
162
150
  def default_harness_id(taskset_id: str) -> str:
163
- # In skip mode, don't import the taskset to probe for a bundled harness.
164
- if not taskset_id or skip_plugin_install.get():
151
+ if not taskset_id:
165
152
  return "bash"
166
153
  try:
167
154
  module = import_taskset(taskset_id)
@@ -1,39 +0,0 @@
1
- """Environment/plugin ID helpers and on-demand Hub installation."""
2
-
3
- import logging
4
-
5
- from verifiers.v1.utils.install_utils import (
6
- check_hub_env_installed,
7
- install_from_hub,
8
- is_hub_env,
9
- normalize_package_name,
10
- parse_env_id,
11
- )
12
-
13
- logger = logging.getLogger(__name__)
14
-
15
-
16
- def env_name(env_id: str) -> str:
17
- """The package name — the id with org and version stripped (``org/gsm8k@1.0`` ->
18
- ``gsm8k``). Used for logging, display, and output paths."""
19
- return parse_env_id(env_id)[1] if is_hub_env(env_id) else env_id
20
-
21
-
22
- def env_module(env_id: str) -> str:
23
- """The importable module name — `env_name` normalized (hyphens -> underscores)."""
24
- return normalize_package_name(env_name(env_id))
25
-
26
-
27
- def ensure_installed(env_id: str) -> str:
28
- """Make `env_id` importable and return its module name.
29
-
30
- For a hub id (``org/name[@version]``) that isn't installed, install it from the
31
- Environments Hub — latest, or the pinned version — the same path `prime env install`
32
- uses. A local id is assumed already importable."""
33
- if is_hub_env(env_id) and not check_hub_env_installed(env_id):
34
- logger.info("installing %s from the environments hub", env_id)
35
- if not install_from_hub(env_id):
36
- raise ModuleNotFoundError(
37
- f"could not install {env_id!r} from the environments hub"
38
- )
39
- return env_module(env_id)
@@ -1,239 +0,0 @@
1
- # ruff: noqa
2
-
3
- import importlib
4
- import logging
5
- import subprocess
6
- import sys
7
- from importlib.metadata import PackageNotFoundError, version as package_version
8
- from pathlib import Path
9
- from typing import Optional
10
- from urllib.parse import urlparse
11
-
12
- import requests
13
-
14
- logger = logging.getLogger(__name__)
15
-
16
- ENVIRONMENTS_HUB_URL = "https://api.primeintellect.ai/api/v1/environmentshub"
17
-
18
-
19
- def _uv_pip_cmd(subcommand: str, *args: str) -> list[str]:
20
- """Run uv pip against the active Python interpreter for this process."""
21
- return ["uv", "pip", subcommand, "--python", sys.executable, *args]
22
-
23
-
24
- def normalize_package_name(name: str) -> str:
25
- """Normalize package name according to Python packaging standards."""
26
- return name.replace("-", "_").lower()
27
-
28
-
29
- def parse_env_id(env_id: str) -> tuple[str, str, Optional[str]]:
30
- """Parse environment ID into (owner, name, version).
31
-
32
- Args:
33
- env_id: Environment ID like 'owner/name' or 'owner/name@version'
34
-
35
- Returns:
36
- Tuple of (owner, name, version). Version is None if not specified.
37
-
38
- Raises:
39
- ValueError: If format is invalid
40
- """
41
- version = None
42
- if "@" in env_id:
43
- env_id, version = env_id.rsplit("@", 1)
44
-
45
- parts = env_id.split("/")
46
- if len(parts) != 2 or not parts[0] or not parts[1]:
47
- raise ValueError(
48
- f"Invalid environment ID: '{env_id}'. Expected format: 'owner/name' or 'owner/name@version'"
49
- )
50
-
51
- return parts[0], parts[1], version
52
-
53
-
54
- def is_hub_env(env_id: str) -> bool:
55
- """Check if env_id refers to a Hub environment (has owner/ prefix)."""
56
- return "/" in env_id and not env_id.startswith("./") and not env_id.startswith("/")
57
-
58
-
59
- def is_installed(env_name: str, version: Optional[str] = None) -> bool:
60
- """Check if an environment package is installed.
61
-
62
- Args:
63
- env_name: Environment name (without owner prefix)
64
- version: Optional version to check for
65
-
66
- Returns:
67
- True if installed (and version matches if specified)
68
- """
69
- try:
70
- installed_version = package_version(normalize_package_name(env_name))
71
- except PackageNotFoundError:
72
- return False
73
- return not version or version == "latest" or installed_version == version
74
-
75
-
76
- def check_hub_env_installed(env_id: str) -> bool:
77
- """Check if a Hub environment is installed.
78
-
79
- For Hub environments (owner/name format), checks if the package is installed.
80
- For local environments, returns True (assumes available via env_dir).
81
-
82
- Args:
83
- env_id: Environment ID (local name or 'owner/name' or 'owner/name@version')
84
-
85
- Returns:
86
- True if environment is available (or is local)
87
- """
88
- if not is_hub_env(env_id):
89
- return True
90
-
91
- _, name, version = parse_env_id(env_id)
92
- return is_installed(name, version)
93
-
94
-
95
- def install_from_hub(env_id: str) -> bool:
96
- """Install an environment from the Environments Hub.
97
-
98
- Args:
99
- env_id: Environment ID like 'owner/name' or 'owner/name@version'
100
-
101
- Returns:
102
- True if installation succeeded
103
- """
104
- owner, name, version = parse_env_id(env_id)
105
- version = version or "latest"
106
-
107
- logger.info(f"Fetching environment details for {owner}/{name}@{version}...")
108
-
109
- try:
110
- url = f"{ENVIRONMENTS_HUB_URL}/{owner}/{name}/@{version}"
111
- response = requests.get(url, timeout=30)
112
- response.raise_for_status()
113
- data = response.json()
114
- details = data.get("data", data)
115
- except requests.RequestException as e:
116
- logger.error(f"Failed to fetch environment details: {e}")
117
- return False
118
- except ValueError as e:
119
- logger.error(f"Invalid response from Environments Hub: {e}")
120
- return False
121
-
122
- simple_index_url = details.get("simple_index_url")
123
- wheel_url = details.get("wheel_url")
124
- if wheel_url:
125
- try:
126
- parsed_wheel_url = urlparse(wheel_url)
127
- if (
128
- parsed_wheel_url.scheme not in ("http", "https")
129
- or not parsed_wheel_url.netloc
130
- ):
131
- wheel_url = None
132
- except Exception:
133
- wheel_url = None
134
-
135
- if not simple_index_url and not wheel_url:
136
- if details.get("visibility") == "PRIVATE":
137
- logger.error(
138
- f"Cannot install private environment '{env_id}'. "
139
- "Use 'prime env pull' to download and install locally."
140
- )
141
- else:
142
- logger.error(f"No installation method available for '{env_id}'")
143
- return False
144
-
145
- pkg_name = normalize_package_name(name)
146
-
147
- cmd: list[str]
148
- if simple_index_url:
149
- if version and version != "latest":
150
- pkg_spec = f"{pkg_name}=={version}"
151
- else:
152
- pkg_spec = pkg_name
153
- cmd = [
154
- *_uv_pip_cmd("install"),
155
- "--upgrade",
156
- pkg_spec,
157
- "--extra-index-url",
158
- simple_index_url,
159
- ]
160
- else:
161
- assert wheel_url is not None
162
- cmd = [*_uv_pip_cmd("install"), "--upgrade", wheel_url]
163
-
164
- logger.info(f"Installing {env_id}...")
165
- logger.debug(f"Command: {' '.join(cmd)}")
166
-
167
- result = subprocess.run(cmd, capture_output=True, text=True)
168
-
169
- if result.returncode != 0:
170
- logger.error(f"Installation failed: {result.stderr}")
171
- return False
172
-
173
- logger.info(f"Successfully installed {env_id}")
174
- importlib.invalidate_caches()
175
- return True
176
-
177
-
178
- def install_from_local(env_name: str, env_dir: str = "./environments") -> bool:
179
- """Install an environment from a local directory.
180
-
181
- Args:
182
- env_name: Environment name
183
- env_dir: Path to environments directory
184
-
185
- Returns:
186
- True if installation succeeded
187
- """
188
- env_folder = normalize_package_name(env_name)
189
- env_path = Path(env_dir) / env_folder
190
-
191
- if not env_path.exists():
192
- logger.error(f"Local environment not found: {env_path}")
193
- return False
194
-
195
- logger.info(f"Installing {env_name} from {env_path}...")
196
- result = subprocess.run(
197
- [*_uv_pip_cmd("install"), "-e", str(env_path)],
198
- capture_output=True,
199
- text=True,
200
- )
201
-
202
- if result.returncode != 0:
203
- logger.error(f"Installation failed: {result.stderr}")
204
- return False
205
-
206
- logger.info(f"Successfully installed {env_name}")
207
- importlib.invalidate_caches()
208
- return True
209
-
210
-
211
- def install_from_repo(env_name: str, branch: str = "main") -> bool:
212
- """Install an environment from the verifiers GitHub repo.
213
-
214
- Args:
215
- env_name: Environment name
216
- branch: Git branch to install from
217
-
218
- Returns:
219
- True if installation succeeded
220
- """
221
- env_folder = normalize_package_name(env_name)
222
- pkg_name = env_folder.replace("_", "-")
223
-
224
- url = f"git+https://github.com/PrimeIntellect-ai/verifiers.git@{branch}#subdirectory=environments/{env_folder}"
225
-
226
- logger.info(f"Installing {env_name} from verifiers repo ({branch})...")
227
- result = subprocess.run(
228
- [*_uv_pip_cmd("install"), f"{pkg_name} @ {url}"],
229
- capture_output=True,
230
- text=True,
231
- )
232
-
233
- if result.returncode != 0:
234
- logger.error(f"Installation failed: {result.stderr}")
235
- return False
236
-
237
- logger.info(f"Successfully installed {env_name}")
238
- importlib.invalidate_caches()
239
- return True
File without changes