verifiers 0.1.15.dev8__tar.gz → 0.1.15.dev9__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 (321) hide show
  1. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/PKG-INFO +10 -6
  2. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/README.md +9 -5
  3. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_envs.py +7 -3
  4. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_imports.py +20 -0
  5. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_rlm_env.py +1 -40
  6. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_tool_utils.py +11 -6
  7. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_config_extension.py +196 -714
  8. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_harbor_cli.py +5 -0
  9. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_taskset_bindings.py +84 -2
  10. verifiers-0.1.15.dev9/tests/test_v1_textarena_taskset.py +219 -0
  11. verifiers-0.1.15.dev9/tests/test_wordle_v1_env.py +118 -0
  12. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/__init__.py +7 -7
  13. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/renderer_client.py +0 -13
  14. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/env_group.py +0 -16
  15. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/environment.py +0 -11
  16. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/sandbox_env.py +1 -5
  17. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/gepa/display.py +2 -2
  18. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rubrics/rubric.py +0 -21
  19. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/init.py +36 -45
  20. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/async_utils.py +0 -8
  21. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/client_utils.py +0 -7
  22. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/data_utils.py +0 -52
  23. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/display_utils.py +1 -23
  24. verifiers-0.1.15.dev9/verifiers/utils/env_utils.py +259 -0
  25. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/error_utils.py +0 -10
  26. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/message_utils.py +0 -6
  27. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/thread_utils.py +0 -12
  28. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/tool_utils.py +1 -0
  29. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/ENVIRONMENT_BEST_PRACTICES.md +54 -53
  30. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/README.md +56 -64
  31. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/RE_MIGRATION.md +23 -16
  32. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/__init__.py +12 -3
  33. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/config.py +5 -129
  34. verifiers-0.1.15.dev9/verifiers/v1/env.py +180 -0
  35. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/harness.py +11 -13
  36. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/command.py +1 -1
  37. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/configs.py +1 -1
  38. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/mini_swe_agent.py +3 -3
  39. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/opencode.py +3 -3
  40. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/pi.py +4 -4
  41. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/rlm.py +3 -2
  42. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/terminus_2.py +3 -3
  43. verifiers-0.1.15.dev9/verifiers/v1/packages/tasksets/__init__.py +17 -0
  44. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/tasksets/harbor.py +4 -2
  45. verifiers-0.1.15.dev9/verifiers/v1/packages/tasksets/textarena.py +153 -0
  46. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/runtime.py +42 -10
  47. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/taskset.py +11 -9
  48. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/types.py +1 -1
  49. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/config_utils.py +2 -68
  50. verifiers-0.1.15.dev9/verifiers/v1/utils/object_utils.py +59 -0
  51. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/runtime_owner_utils.py +1 -6
  52. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/scoring_utils.py +0 -13
  53. verifiers-0.1.15.dev8/verifiers/utils/env_utils.py +0 -195
  54. verifiers-0.1.15.dev8/verifiers/utils/tunnel_utils.py +0 -266
  55. verifiers-0.1.15.dev8/verifiers/v1/env.py +0 -351
  56. verifiers-0.1.15.dev8/verifiers/v1/packages/tasksets/__init__.py +0 -3
  57. verifiers-0.1.15.dev8/verifiers/v1/utils/component_utils.py +0 -136
  58. verifiers-0.1.15.dev8/verifiers/v1/utils/object_utils.py +0 -52
  59. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/.gitignore +0 -0
  60. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/LICENSE +0 -0
  61. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/pyproject.toml +0 -0
  62. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/AGENTS.md +0 -0
  63. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/README.md +0 -0
  64. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/__init__.py +0 -0
  65. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/conftest.py +0 -0
  66. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_browser_env.py +0 -0
  67. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_build_script.py +0 -0
  68. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_cli_agent_env.py +0 -0
  69. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_client_auth_errors.py +0 -0
  70. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_client_config.py +0 -0
  71. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_client_multimodal_types.py +0 -0
  72. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_composable_env.py +0 -0
  73. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_context_token_metrics.py +0 -0
  74. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_decorator_ranks.py +0 -0
  75. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_endpoint_registry.py +0 -0
  76. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_env_group.py +0 -0
  77. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_env_server.py +0 -0
  78. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_environment.py +0 -0
  79. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_environment_extra.py +0 -0
  80. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_error_chain.py +0 -0
  81. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_eval_cli.py +0 -0
  82. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_eval_display.py +0 -0
  83. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_eval_utils.py +0 -0
  84. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_gepa_cli.py +0 -0
  85. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_gepa_utils.py +0 -0
  86. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_gym_env.py +0 -0
  87. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_harbor_env_mcp.py +0 -0
  88. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_install_utils.py +0 -0
  89. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_interception_utils.py +0 -0
  90. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_langchain_deep_agents_wikispeedia.py +0 -0
  91. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_lean_task.py +0 -0
  92. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_logging.py +0 -0
  93. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_math_rubric.py +0 -0
  94. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_maybe_think_parser.py +0 -0
  95. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_mcp_search_env.py +0 -0
  96. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_message_utils.py +0 -0
  97. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_message_utils_multimodal.py +0 -0
  98. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_multiturn_env.py +0 -0
  99. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_nemorl_client.py +0 -0
  100. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_openai_chat_completions_token_client.py +0 -0
  101. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_openai_responses_client.py +0 -0
  102. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_opencode_harbor.py +0 -0
  103. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_opencode_rlm_env.py +0 -0
  104. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_openenv_client.py +0 -0
  105. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_parser.py +0 -0
  106. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_path_utils.py +0 -0
  107. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_per_turn_timing.py +0 -0
  108. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_pricing_utils.py +0 -0
  109. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_prime_plugin.py +0 -0
  110. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_renderer_client.py +0 -0
  111. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_renderer_e2e.py +0 -0
  112. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_rlm_composable_env.py +0 -0
  113. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_rubric.py +0 -0
  114. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_rubric_group.py +0 -0
  115. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_sandbox_env.py +0 -0
  116. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_sandbox_mixin.py +0 -0
  117. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_save_utils.py +0 -0
  118. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_setup_script.py +0 -0
  119. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_singleturn_env.py +0 -0
  120. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_stateful_tool_env.py +0 -0
  121. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_think_parser.py +0 -0
  122. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_tool_env.py +0 -0
  123. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_trajectory_processing.py +0 -0
  124. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_tui_info_formatting.py +0 -0
  125. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_types.py +0 -0
  126. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_bfcl.py +0 -0
  127. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_empty_completions.py +0 -0
  128. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_endpoint_protocols.py +0 -0
  129. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_example_counts.py +0 -0
  130. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_group_reward_env.py +0 -0
  131. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_mini_swe_agent.py +0 -0
  132. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_rlm_swe.py +0 -0
  133. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_runtime_lifecycle.py +0 -0
  134. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_v1_scoring_functions.py +0 -0
  135. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_wiki_search_v1.py +0 -0
  136. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_wordle_env.py +0 -0
  137. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/tests/test_xml_parser.py +0 -0
  138. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/AGENTS.md +0 -0
  139. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/__init__.py +0 -0
  140. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/__init__.py +0 -0
  141. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/build.py +0 -0
  142. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/eval.py +0 -0
  143. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/gepa.py +0 -0
  144. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/init.py +0 -0
  145. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/install.py +0 -0
  146. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/commands/setup.py +0 -0
  147. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/plugins/__init__.py +0 -0
  148. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/plugins/prime.py +0 -0
  149. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/cli/tui.py +0 -0
  150. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/__init__.py +0 -0
  151. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/anthropic_messages_client.py +0 -0
  152. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/client.py +0 -0
  153. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
  154. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/openai_chat_completions_client.py +0 -0
  155. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
  156. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/openai_completions_client.py +0 -0
  157. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/clients/openai_responses_client.py +0 -0
  158. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/decorators.py +0 -0
  159. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/AGENTS.md +0 -0
  160. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/__init__.py +0 -0
  161. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/README.md +0 -0
  162. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/__init__.py +0 -0
  163. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/cli_agent_env.py +0 -0
  164. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/README.md +0 -0
  165. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/__init__.py +0 -0
  166. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/_filter.py +0 -0
  167. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/composable_env.py +0 -0
  168. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/harness.py +0 -0
  169. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
  170. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  171. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
  172. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
  173. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
  174. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
  175. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/task.py +0 -0
  176. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
  177. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  178. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  179. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  180. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  181. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  182. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/lean/__init__.py +0 -0
  183. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/lean/lean_task.py +0 -0
  184. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  185. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  186. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  187. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/_test_patch.py +0 -0
  188. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/create_fix_patch.sh +0 -0
  189. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/log_parser.py +0 -0
  190. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe.py +0 -0
  191. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/openswe.py +0 -0
  192. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym.py +0 -0
  193. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench.py +0 -0
  194. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego.py +0 -0
  195. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2.py +0 -0
  196. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2_log_parsers.py +0 -0
  197. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith.py +0 -0
  198. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  199. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/gym_env.py +0 -0
  200. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
  201. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/harbor_env/env.py +0 -0
  202. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
  203. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/mcp_env.py +0 -0
  204. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/opencode_env.py +0 -0
  205. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
  206. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
  207. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/rlm_env.py +0 -0
  208. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
  209. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/utils/__init__.py +0 -0
  210. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/utils/file_locks.py +0 -0
  211. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
  212. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/README.md +0 -0
  213. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/__init__.py +0 -0
  214. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/README.md +0 -0
  215. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
  216. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
  217. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
  218. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
  219. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  220. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  221. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/openenv_env.py +0 -0
  222. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
  223. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/integrations/textarena_env.py +0 -0
  224. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/multiturn_env.py +0 -0
  225. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/python_env.py +0 -0
  226. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/singleturn_env.py +0 -0
  227. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/stateful_tool_env.py +0 -0
  228. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/envs/tool_env.py +0 -0
  229. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/errors.py +0 -0
  230. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/gepa/__init__.py +0 -0
  231. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/gepa/adapter.py +0 -0
  232. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/gepa/config.py +0 -0
  233. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/gepa/gepa_utils.py +0 -0
  234. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/parsers/__init__.py +0 -0
  235. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/parsers/maybe_think_parser.py +0 -0
  236. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/parsers/parser.py +0 -0
  237. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/parsers/think_parser.py +0 -0
  238. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/parsers/xml_parser.py +0 -0
  239. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/README.md +0 -0
  240. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/__init__.py +0 -0
  241. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/inference/__init__.py +0 -0
  242. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/inference/client.py +0 -0
  243. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/inference/server.py +0 -0
  244. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/trainer/__init__.py +0 -0
  245. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/trainer/config.py +0 -0
  246. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/trainer/orchestrator.py +0 -0
  247. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/trainer/trainer.py +0 -0
  248. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rl/trainer/utils.py +0 -0
  249. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rubrics/__init__.py +0 -0
  250. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
  251. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rubrics/judge_rubric.py +0 -0
  252. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rubrics/math_rubric.py +0 -0
  253. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/rubrics/rubric_group.py +0 -0
  254. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/__init__.py +0 -0
  255. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/build.py +0 -0
  256. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/eval.py +0 -0
  257. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/gepa.py +0 -0
  258. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/install.py +0 -0
  259. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/rl.py +0 -0
  260. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/setup.py +0 -0
  261. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/train.py +0 -0
  262. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/tui.py +0 -0
  263. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/scripts/vllm.py +0 -0
  264. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/__init__.py +0 -0
  265. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/client/env_client.py +0 -0
  266. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/client/zmq_env_client.py +0 -0
  267. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/server/__init__.py +0 -0
  268. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/server/env_router.py +0 -0
  269. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/server/env_server.py +0 -0
  270. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/server/env_worker.py +0 -0
  271. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/server/zmq_env_server.py +0 -0
  272. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/serve/types.py +0 -0
  273. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/types.py +0 -0
  274. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/__init__.py +0 -0
  275. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/config_utils.py +0 -0
  276. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/env_config_utils.py +0 -0
  277. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/eval_display.py +0 -0
  278. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/eval_utils.py +0 -0
  279. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/heartbeat.py +0 -0
  280. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/import_utils.py +0 -0
  281. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/install_utils.py +0 -0
  282. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/interception_utils.py +0 -0
  283. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/logging_utils.py +0 -0
  284. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/metric_utils.py +0 -0
  285. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/path_utils.py +0 -0
  286. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/pricing_utils.py +0 -0
  287. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/process_utils.py +0 -0
  288. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/response_utils.py +0 -0
  289. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/save_utils.py +0 -0
  290. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/serve_utils.py +0 -0
  291. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/threaded_sandbox_client.py +0 -0
  292. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/usage_utils.py +0 -0
  293. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/utils/version_utils.py +0 -0
  294. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/__init__.py +0 -0
  295. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/packages/harnesses/__init__.py +0 -0
  296. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/state.py +0 -0
  297. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/task.py +0 -0
  298. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/toolset.py +0 -0
  299. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/user.py +0 -0
  300. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/__init__.py +0 -0
  301. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/artifact_utils.py +0 -0
  302. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/binding_utils.py +0 -0
  303. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/config_callable_utils.py +0 -0
  304. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/endpoint_utils.py +0 -0
  305. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/json_utils.py +0 -0
  306. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/judge_utils.py +0 -0
  307. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/lifecycle_utils.py +0 -0
  308. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/mcp_proxy_utils.py +0 -0
  309. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/mcp_utils.py +0 -0
  310. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/program_utils.py +0 -0
  311. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/prompt_utils.py +0 -0
  312. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/runtime_registry.py +0 -0
  313. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/sandbox_program_utils.py +0 -0
  314. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/sandbox_utils.py +0 -0
  315. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/serialization_utils.py +0 -0
  316. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/task_freeze_utils.py +0 -0
  317. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/taskset_utils.py +0 -0
  318. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/timing_utils.py +0 -0
  319. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/tool_utils.py +0 -0
  320. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/trajectory_utils.py +0 -0
  321. {verifiers-0.1.15.dev8 → verifiers-0.1.15.dev9}/verifiers/v1/utils/usage_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: verifiers
3
- Version: 0.1.15.dev8
3
+ Version: 0.1.15.dev9
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
@@ -227,7 +227,8 @@ class MyTasksetConfig(vf.TasksetConfig):
227
227
  split: str = "train"
228
228
 
229
229
 
230
- class MyTaskset(vf.Taskset[MyTasksetConfig]):
230
+ class MyTaskset(vf.Taskset):
231
+ config: MyTasksetConfig
231
232
  _default_rewards = (contains_answer,)
232
233
 
233
234
  def rows(self) -> list[dict[str, object]]:
@@ -242,12 +243,15 @@ class MyTaskset(vf.Taskset[MyTasksetConfig]):
242
243
  return [row for row in rows if row["split"] == self.config.split]
243
244
 
244
245
 
245
- class MyEnvConfig(vf.EnvConfig):
246
- taskset: MyTasksetConfig = MyTasksetConfig()
246
+ def load_taskset(config: MyTasksetConfig) -> MyTaskset:
247
+ assert isinstance(config, MyTasksetConfig)
248
+ return MyTaskset(config=config)
247
249
 
248
250
 
249
- def load_environment(config: MyEnvConfig) -> vf.Env:
250
- return vf.Env(taskset=MyTaskset(config=config.taskset))
251
+ def load_environment(config: vf.EnvConfig) -> vf.Env:
252
+ taskset_config = config.taskset
253
+ assert isinstance(taskset_config, MyTasksetConfig)
254
+ return vf.Env(taskset=load_taskset(taskset_config))
251
255
  ```
252
256
  If no harness is passed, `vf.Env` uses the base endpoint-backed harness. See
253
257
  **[BYO Harness](docs/byo-harness.md)** for the advanced v1 taskset/harness API.
@@ -151,7 +151,8 @@ class MyTasksetConfig(vf.TasksetConfig):
151
151
  split: str = "train"
152
152
 
153
153
 
154
- class MyTaskset(vf.Taskset[MyTasksetConfig]):
154
+ class MyTaskset(vf.Taskset):
155
+ config: MyTasksetConfig
155
156
  _default_rewards = (contains_answer,)
156
157
 
157
158
  def rows(self) -> list[dict[str, object]]:
@@ -166,12 +167,15 @@ class MyTaskset(vf.Taskset[MyTasksetConfig]):
166
167
  return [row for row in rows if row["split"] == self.config.split]
167
168
 
168
169
 
169
- class MyEnvConfig(vf.EnvConfig):
170
- taskset: MyTasksetConfig = MyTasksetConfig()
170
+ def load_taskset(config: MyTasksetConfig) -> MyTaskset:
171
+ assert isinstance(config, MyTasksetConfig)
172
+ return MyTaskset(config=config)
171
173
 
172
174
 
173
- def load_environment(config: MyEnvConfig) -> vf.Env:
174
- return vf.Env(taskset=MyTaskset(config=config.taskset))
175
+ def load_environment(config: vf.EnvConfig) -> vf.Env:
176
+ taskset_config = config.taskset
177
+ assert isinstance(taskset_config, MyTasksetConfig)
178
+ return vf.Env(taskset=load_taskset(taskset_config))
175
179
  ```
176
180
  If no harness is passed, `vf.Env` uses the base endpoint-backed harness. See
177
181
  **[BYO Harness](docs/byo-harness.md)** for the advanced v1 taskset/harness API.
@@ -216,10 +216,14 @@ def help_test_can_load_env(tmp_venv_dir: Path, env_dir: Path):
216
216
 
217
217
  def help_test_can_eval_env(tmp_venv_dir: Path, env_dir: Path):
218
218
  """Test that the environment can be run via vf-eval."""
219
- if os.getenv("OPENAI_API_KEY"):
220
- model_flags = "-m gpt-4.1-mini -b https://api.openai.com/v1 -k OPENAI_API_KEY"
221
- elif os.getenv("PRIME_API_KEY"):
219
+ if env_dir.name == "tau2_bench_v1" and not os.getenv("PRIME_API_KEY"):
220
+ pytest.skip(
221
+ "Skipping tau2 default eval because PRIME_API_KEY is not configured"
222
+ )
223
+ if os.getenv("PRIME_API_KEY"):
222
224
  model_flags = "-m openai/gpt-4.1-mini -b https://api.pinference.ai/api/v1 -k PRIME_API_KEY"
225
+ elif os.getenv("OPENAI_API_KEY"):
226
+ model_flags = "-m gpt-4.1-mini -b https://api.openai.com/v1 -k OPENAI_API_KEY"
223
227
  else:
224
228
  pytest.skip("Skipping vf-eval smoke test because no API key is configured")
225
229
 
@@ -1,6 +1,26 @@
1
+ import importlib
2
+ import sys
3
+
1
4
  import verifiers
2
5
 
3
6
 
7
+ def test_v1_taskset_imports_do_not_import_textarena():
8
+ textarena_module = "verifiers.v1.packages.tasksets.textarena"
9
+ sys.modules.pop(textarena_module, None)
10
+
11
+ tasksets = importlib.import_module("verifiers.v1.packages.tasksets")
12
+ tasksets.__dict__.pop("TextArenaTaskset", None)
13
+ tasksets.__dict__.pop("TextArenaTasksetConfig", None)
14
+ importlib.reload(tasksets)
15
+ assert textarena_module not in sys.modules
16
+
17
+ v1 = importlib.import_module("verifiers.v1")
18
+ v1.__dict__.pop("TextArenaTaskset", None)
19
+ v1.__dict__.pop("TextArenaTasksetConfig", None)
20
+ importlib.reload(v1)
21
+ assert textarena_module not in sys.modules
22
+
23
+
4
24
  class TestImports:
5
25
  """Test that all public API imports work correctly.
6
26
  This was inspired by issue #349.
@@ -1467,46 +1467,7 @@ class TestSubLLMTrajectorySteps:
1467
1467
 
1468
1468
 
1469
1469
  # =============================================================================
1470
- # 13. Tunnel Utils (kept for coverage)
1471
- # =============================================================================
1472
-
1473
-
1474
- class TestExtractTunnelUrlFromLine:
1475
- def test_extract_valid_url(self):
1476
- from verifiers.utils.tunnel_utils import extract_tunnel_url_from_line
1477
-
1478
- line = (
1479
- "2024-01-01 12:00:00 INF https://random-words.trycloudflare.com registered"
1480
- )
1481
- url = extract_tunnel_url_from_line(line)
1482
- assert url == "https://random-words.trycloudflare.com"
1483
-
1484
- def test_return_none_for_no_url(self):
1485
- from verifiers.utils.tunnel_utils import extract_tunnel_url_from_line
1486
-
1487
- line = "Starting cloudflared tunnel..."
1488
- url = extract_tunnel_url_from_line(line)
1489
- assert url is None
1490
-
1491
- def test_handle_trailing_characters(self):
1492
- from verifiers.utils.tunnel_utils import extract_tunnel_url_from_line
1493
-
1494
- line = "https://test-tunnel.trycloudflare.com/path?query=1 some text"
1495
- url = extract_tunnel_url_from_line(line)
1496
- assert url is not None
1497
- assert url.startswith("https://")
1498
- assert ".trycloudflare.com" in url
1499
-
1500
- def test_no_https_prefix(self):
1501
- from verifiers.utils.tunnel_utils import extract_tunnel_url_from_line
1502
-
1503
- line = "something.trycloudflare.com without https"
1504
- url = extract_tunnel_url_from_line(line)
1505
- assert url is None
1506
-
1507
-
1508
- # =============================================================================
1509
- # 14. RLM Exception Hierarchy
1470
+ # 13. RLM Exception Hierarchy
1510
1471
  # =============================================================================
1511
1472
 
1512
1473
 
@@ -7,6 +7,10 @@ from pydantic import Field
7
7
  from verifiers.utils.tool_utils import convert_func_to_tool_def
8
8
 
9
9
 
10
+ def tool_dump_without_strict(tool):
11
+ return tool.model_dump(exclude={"strict"}, exclude_none=True)
12
+
13
+
10
14
  class TestToolUtils:
11
15
  """Test cases for the tool_utils module."""
12
16
 
@@ -28,7 +32,8 @@ class TestToolUtils:
28
32
  return 1.0
29
33
 
30
34
  result = convert_func_to_tool_def(test_func)
31
- assert result.model_dump(exclude_none=True) == {
35
+ assert result.strict is True
36
+ assert tool_dump_without_strict(result) == {
32
37
  "name": "test_func",
33
38
  "description": "This is a test function.",
34
39
  "parameters": {
@@ -63,7 +68,7 @@ class TestToolUtils:
63
68
  return 1.0
64
69
 
65
70
  result = convert_func_to_tool_def(test_func)
66
- assert result.model_dump(exclude_none=True) == {
71
+ assert tool_dump_without_strict(result) == {
67
72
  "name": "test_func",
68
73
  "description": "",
69
74
  "parameters": {
@@ -94,7 +99,7 @@ class TestToolUtils:
94
99
  return None
95
100
 
96
101
  result = convert_func_to_tool_def(test_func)
97
- assert result.model_dump(exclude_none=True) == {
102
+ assert tool_dump_without_strict(result) == {
98
103
  "name": "test_func",
99
104
  "description": "",
100
105
  "parameters": {
@@ -121,7 +126,7 @@ class TestToolUtils:
121
126
  return None
122
127
 
123
128
  result = convert_func_to_tool_def(test_func)
124
- assert result.model_dump(exclude_none=True) == {
129
+ assert tool_dump_without_strict(result) == {
125
130
  "name": "test_func",
126
131
  "description": "",
127
132
  "parameters": {
@@ -147,7 +152,7 @@ class TestToolUtils:
147
152
  return None
148
153
 
149
154
  result = convert_func_to_tool_def(test_func)
150
- assert result.model_dump(exclude_none=True) == {
155
+ assert tool_dump_without_strict(result) == {
151
156
  "name": "test_func",
152
157
  "description": "This is a test function.",
153
158
  "parameters": {
@@ -171,7 +176,7 @@ class TestToolUtils:
171
176
  return None
172
177
 
173
178
  result = convert_func_to_tool_def(test_func)
174
- assert result.model_dump(exclude_none=True) == {
179
+ assert tool_dump_without_strict(result) == {
175
180
  "name": "test_func",
176
181
  "description": "Search pages.",
177
182
  "parameters": {