verifiers 0.3.1.dev10__tar.gz → 0.3.1.dev12__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 (448) hide show
  1. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/PKG-INFO +1 -1
  2. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/pyproject.toml +24 -18
  3. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/conftest.py +4 -34
  4. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_color_codeword_tasks.py +1 -1
  5. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_configs.py +1 -2
  6. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_e2e.py +3 -3
  7. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_envs.py +11 -9
  8. verifiers-0.3.1.dev12/tests/v1/test_scoring.py +101 -0
  9. verifiers-0.3.1.dev12/verifiers/__init__.py +103 -0
  10. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/build.py +1 -1
  11. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/eval.py +1 -1
  12. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/gepa.py +1 -1
  13. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/init.py +1 -1
  14. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/install.py +1 -1
  15. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/setup.py +1 -1
  16. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/tui.py +1 -1
  17. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/__init__.py +25 -25
  18. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/__init__.py +13 -11
  19. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/anthropic_messages_client.py +4 -4
  20. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/client.py +2 -2
  21. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/nemorl_chat_completions_client.py +2 -2
  22. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/openai_chat_completions_client.py +4 -4
  23. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/openai_chat_completions_token_client.py +3 -3
  24. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/openai_completions_client.py +5 -5
  25. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/openai_responses_client.py +5 -5
  26. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/clients/renderer_client.py +5 -5
  27. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/env_group.py +5 -5
  28. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/environment.py +20 -20
  29. verifiers-0.3.1.dev12/verifiers/legacy/envs/experimental/__init__.py +36 -0
  30. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/cli_agent_env.py +7 -7
  31. verifiers-0.3.1.dev12/verifiers/legacy/envs/experimental/composable/__init__.py +29 -0
  32. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/composable_env.py +8 -8
  33. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/harness.py +2 -2
  34. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/harnesses/__init__.py +3 -3
  35. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/harnesses/mini_swe_agent.py +1 -1
  36. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/harnesses/opencode.py +3 -3
  37. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/harnesses/rlm.py +4 -4
  38. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/sandbox_debug_env.py +3 -3
  39. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/task.py +5 -5
  40. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/__init__.py +8 -6
  41. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/cp/cp_task.py +3 -3
  42. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/harbor/cli_gym.py +3 -3
  43. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/harbor/harbor.py +2 -2
  44. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/harbor/terminal_lego.py +2 -2
  45. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/math/math_task.py +7 -5
  46. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +2 -2
  47. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/openswe/taskset.py +2 -2
  48. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +2 -2
  49. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +2 -2
  50. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +2 -2
  51. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +3 -3
  52. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +3 -3
  53. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +2 -2
  54. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_tasksets.py +10 -10
  55. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/gym_env.py +3 -3
  56. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/harbor_env/env.py +2 -2
  57. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/harbor_env/mcp.py +1 -1
  58. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/mcp_env.py +2 -2
  59. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/opencode_env.py +5 -5
  60. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/opencode_qa_env.py +2 -2
  61. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/opencode_rlm_env.py +8 -5
  62. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/sandbox_mixin.py +4 -4
  63. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/utils/__init__.py +2 -2
  64. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/utils/git_checkout_cache.py +2 -2
  65. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/__init__.py +1 -1
  66. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/browser_env.py +1 -1
  67. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/modes/base.py +1 -1
  68. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/modes/cua_mode.py +1 -1
  69. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/modes/dom_mode.py +1 -1
  70. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/openenv_env.py +4 -4
  71. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/reasoninggym_env.py +1 -1
  72. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/textarena_env.py +1 -1
  73. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/multiturn_env.py +5 -5
  74. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/python_env.py +2 -2
  75. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/sandbox_env.py +2 -2
  76. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/singleturn_env.py +1 -1
  77. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/stateful_tool_env.py +3 -3
  78. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/tool_env.py +4 -4
  79. verifiers-0.3.1.dev12/verifiers/legacy/gepa/__init__.py +14 -0
  80. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/gepa/adapter.py +7 -7
  81. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/gepa/config.py +1 -1
  82. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/gepa/display.py +1 -1
  83. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/gepa/gepa_utils.py +1 -0
  84. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/parsers/maybe_think_parser.py +1 -1
  85. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/parsers/parser.py +1 -1
  86. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/parsers/think_parser.py +2 -2
  87. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/parsers/xml_parser.py +2 -2
  88. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/rubrics/experimental/hybrid_math_rubric.py +5 -5
  89. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/rubrics/judge_rubric.py +4 -4
  90. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/rubrics/math_rubric.py +6 -6
  91. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/rubrics/rubric.py +5 -5
  92. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/rubrics/rubric_group.py +2 -2
  93. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/eval.py +6 -6
  94. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/gepa.py +11 -11
  95. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/init.py +2 -2
  96. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/install.py +1 -1
  97. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/__init__.py +7 -7
  98. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/client/env_client.py +3 -3
  99. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/client/zmq_env_client.py +4 -4
  100. verifiers-0.3.1.dev12/verifiers/legacy/serve/server/__init__.py +11 -0
  101. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/server/env_router.py +5 -5
  102. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/server/env_server.py +6 -6
  103. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/server/env_worker.py +9 -9
  104. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/server/zmq_env_server.py +1 -1
  105. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/serve/types.py +1 -1
  106. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/types.py +3 -3
  107. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/async_utils.py +5 -5
  108. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/client_utils.py +2 -2
  109. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/display_utils.py +1 -1
  110. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/env_utils.py +3 -3
  111. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/error_utils.py +2 -2
  112. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/eval_display.py +6 -6
  113. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/eval_utils.py +17 -14
  114. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/interception_utils.py +6 -4
  115. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/logging_utils.py +4 -4
  116. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/message_utils.py +2 -2
  117. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/metric_utils.py +1 -1
  118. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/path_utils.py +1 -1
  119. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/pricing_utils.py +1 -1
  120. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/response_utils.py +1 -1
  121. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/save_utils.py +10 -8
  122. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/threaded_sandbox_client.py +1 -1
  123. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/tool_utils.py +1 -1
  124. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/usage_utils.py +1 -1
  125. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/version_utils.py +1 -1
  126. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/__init__.py +9 -3
  127. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/dashboard/eval.py +6 -1
  128. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/eval/main.py +7 -21
  129. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/eval/resume.py +12 -24
  130. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/eval/runner.py +33 -100
  131. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/gepa.py +1 -7
  132. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/init.py +3 -13
  133. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/output.py +3 -3
  134. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/resume.py +2 -5
  135. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/env.py +3 -4
  136. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/eval.py +4 -34
  137. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/init.py +0 -2
  138. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/client.py +1 -1
  139. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/env.py +3 -4
  140. verifiers-0.3.1.dev12/verifiers/v1/configs/task.py +64 -0
  141. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/episode.py +1 -1
  142. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/gepa/dataset.py +3 -3
  143. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/rollout.py +2 -4
  144. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/limiters.py +1 -1
  145. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/serve/__init__.py +0 -8
  146. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/serve/client.py +4 -35
  147. verifiers-0.3.1.dev12/verifiers/v1/serve/encoding.py +65 -0
  148. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/serve/pool.py +17 -38
  149. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/serve/server.py +4 -41
  150. verifiers-0.3.1.dev12/verifiers/v1/serve/types.py +44 -0
  151. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/task.py +23 -4
  152. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/types.py +1 -1
  153. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/install.py +1 -1
  154. verifiers-0.3.1.dev12/verifiers/v1/utils/install_utils.py +239 -0
  155. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/loaders.py +58 -1
  156. verifiers-0.3.1.dev12/verifiers/v1/utils/paths.py +13 -0
  157. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/platform.py +2 -2
  158. verifiers-0.3.1.dev12/verifiers/v1/utils/prime_config.py +19 -0
  159. verifiers-0.3.1.dev10/tests/v1/fixtures/echo_multi_v0.py +0 -54
  160. verifiers-0.3.1.dev10/tests/v1/fixtures/echo_v0.py +0 -33
  161. verifiers-0.3.1.dev10/tests/v1/test_legacy.py +0 -44
  162. verifiers-0.3.1.dev10/tests/v1/test_scoring.py +0 -31
  163. verifiers-0.3.1.dev10/verifiers/envs/experimental/__init__.py +0 -36
  164. verifiers-0.3.1.dev10/verifiers/envs/experimental/composable/__init__.py +0 -29
  165. verifiers-0.3.1.dev10/verifiers/gepa/__init__.py +0 -14
  166. verifiers-0.3.1.dev10/verifiers/serve/server/__init__.py +0 -11
  167. verifiers-0.3.1.dev10/verifiers/v1/configs/legacy.py +0 -24
  168. verifiers-0.3.1.dev10/verifiers/v1/configs/task.py +0 -32
  169. verifiers-0.3.1.dev10/verifiers/v1/legacy.py +0 -580
  170. verifiers-0.3.1.dev10/verifiers/v1/serve/types.py +0 -86
  171. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/.gitignore +0 -0
  172. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/LICENSE +0 -0
  173. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/README.md +0 -0
  174. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/__init__.py +0 -0
  175. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/conftest.py +0 -0
  176. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_browser_env.py +0 -0
  177. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_build_script.py +0 -0
  178. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_cli_agent_env.py +0 -0
  179. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_client_auth_errors.py +0 -0
  180. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_client_config.py +0 -0
  181. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_client_multimodal_types.py +0 -0
  182. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_composable_env.py +0 -0
  183. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_context_token_metrics.py +0 -0
  184. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_decorator_ranks.py +0 -0
  185. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_endpoint_registry.py +0 -0
  186. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_env_group.py +0 -0
  187. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_env_server.py +0 -0
  188. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_environment.py +0 -0
  189. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_environment_extra.py +0 -0
  190. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_error_chain.py +0 -0
  191. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_eval_display.py +0 -0
  192. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_eval_utils.py +0 -0
  193. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_gepa_cli.py +0 -0
  194. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_gepa_utils.py +0 -0
  195. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_gym_env.py +0 -0
  196. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_harbor_env_mcp.py +0 -0
  197. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_imports.py +0 -0
  198. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_init_script.py +0 -0
  199. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_install_utils.py +0 -0
  200. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_interception_utils.py +0 -0
  201. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_logging.py +0 -0
  202. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_math_rubric.py +0 -0
  203. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_maybe_think_parser.py +0 -0
  204. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_message_utils.py +0 -0
  205. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_message_utils_multimodal.py +0 -0
  206. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_multiturn_env.py +0 -0
  207. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_nemorl_client.py +0 -0
  208. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_openai_chat_completions_token_client.py +0 -0
  209. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_openai_responses_client.py +0 -0
  210. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_opencode_rlm_env.py +0 -0
  211. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_openenv_client.py +0 -0
  212. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_parser.py +0 -0
  213. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_path_utils.py +0 -0
  214. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_per_turn_timing.py +0 -0
  215. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_pricing_utils.py +0 -0
  216. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_prime_plugin.py +0 -0
  217. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_renderer_client.py +0 -0
  218. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_renderer_e2e.py +0 -0
  219. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_rlm_composable_env.py +0 -0
  220. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_rubric.py +0 -0
  221. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_rubric_group.py +0 -0
  222. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_sandbox_debug_env.py +0 -0
  223. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_sandbox_env.py +0 -0
  224. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_sandbox_mixin.py +0 -0
  225. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_save_utils.py +0 -0
  226. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_setup_script.py +0 -0
  227. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_singleturn_env.py +0 -0
  228. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_stateful_tool_env.py +0 -0
  229. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_think_parser.py +0 -0
  230. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_tool_env.py +0 -0
  231. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_tool_utils.py +0 -0
  232. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_trajectory_processing.py +0 -0
  233. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_tui_info_formatting.py +0 -0
  234. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_types.py +0 -0
  235. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/test_xml_parser.py +0 -0
  236. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  237. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/duet_v1.py +0 -0
  238. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  239. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  240. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  241. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  242. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/echo_v1.py +0 -0
  243. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/pyproject.toml +0 -0
  244. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  245. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_graph.py +0 -0
  246. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_judges.py +0 -0
  247. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_taskset.py +0 -0
  248. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/tests/v1/test_trace.py +0 -0
  249. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/__init__.py +0 -0
  250. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/commands/__init__.py +0 -0
  251. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/plugins/__init__.py +0 -0
  252. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/cli/plugins/prime.py +0 -0
  253. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/decorators.py +0 -0
  254. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/__init__.py +0 -0
  255. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/README.md +0 -0
  256. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/README.md +0 -0
  257. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/_filter.py +0 -0
  258. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/harnesses/prompt.txt +0 -0
  259. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/swe_debug_env.py +0 -0
  260. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  261. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  262. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  263. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  264. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/README.md +0 -0
  265. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  266. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  267. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  268. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  269. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  270. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  271. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  272. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  273. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  274. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  275. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  276. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  277. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  278. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  279. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/harbor_env/__init__.py +0 -0
  280. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/experimental/utils/file_locks.py +0 -0
  281. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/README.md +0 -0
  282. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/__init__.py +0 -0
  283. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/README.md +0 -0
  284. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/envs/integrations/browser_env/modes/__init__.py +0 -0
  285. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/errors.py +0 -0
  286. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/parsers/__init__.py +0 -0
  287. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/rubrics/__init__.py +0 -0
  288. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/__init__.py +0 -0
  289. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/build.py +0 -0
  290. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/setup.py +0 -0
  291. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/scripts/tui.py +0 -0
  292. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/__init__.py +0 -0
  293. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/config_utils.py +0 -0
  294. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/data_utils.py +0 -0
  295. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/env_config_utils.py +0 -0
  296. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/heartbeat.py +0 -0
  297. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/import_utils.py +0 -0
  298. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/install_utils.py +0 -0
  299. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/process_utils.py +0 -0
  300. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/serve_utils.py +0 -0
  301. {verifiers-0.3.1.dev10/verifiers → verifiers-0.3.1.dev12/verifiers/legacy}/utils/thread_utils.py +0 -0
  302. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/acp/__init__.py +0 -0
  303. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/acp/runner.py +0 -0
  304. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/agent.py +0 -0
  305. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/__init__.py +0 -0
  306. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  307. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/dashboard/base.py +0 -0
  308. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/dashboard/replay.py +0 -0
  309. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/dashboard/validate.py +0 -0
  310. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/debug.py +0 -0
  311. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/eval/__init__.py +0 -0
  312. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/replay.py +0 -0
  313. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/resolve.py +0 -0
  314. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/cli/validate.py +0 -0
  315. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/clients/__init__.py +0 -0
  316. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/clients/base.py +0 -0
  317. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/clients/client.py +0 -0
  318. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/clients/eval.py +0 -0
  319. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/clients/train.py +0 -0
  320. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/__init__.py +0 -0
  321. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/agent.py +0 -0
  322. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/__init__.py +0 -0
  323. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/debug.py +0 -0
  324. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/replay.py +0 -0
  325. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/cli/validate.py +0 -0
  326. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/harness.py +0 -0
  327. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/judge.py +0 -0
  328. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/retries.py +0 -0
  329. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/serve.py +0 -0
  330. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/configs/taskset.py +0 -0
  331. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/dialects/__init__.py +0 -0
  332. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/dialects/anthropic.py +0 -0
  333. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/dialects/base.py +0 -0
  334. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/dialects/chat.py +0 -0
  335. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/dialects/responses.py +0 -0
  336. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/env.py +0 -0
  337. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/__init__.py +0 -0
  338. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  339. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  340. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  341. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/best_of_n/env.py +0 -0
  342. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  343. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  344. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/single_agent/env.py +0 -0
  345. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  346. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/envs/user_sim/env.py +0 -0
  347. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/errors.py +0 -0
  348. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/gepa/__init__.py +0 -0
  349. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/gepa/adapter.py +0 -0
  350. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/gepa/config.py +0 -0
  351. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/gepa/reflection.py +0 -0
  352. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/gepa/runner.py +0 -0
  353. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/graph.py +0 -0
  354. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harness.py +0 -0
  355. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/__init__.py +0 -0
  356. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  357. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/bash/harness.py +0 -0
  358. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/bash/program.py +0 -0
  359. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  360. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  361. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  362. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  363. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  364. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  365. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/codex/harness.py +0 -0
  366. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  367. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  368. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  369. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  370. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  371. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  372. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  373. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  374. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/node.py +0 -0
  375. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/null/__init__.py +0 -0
  376. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/null/harness.py +0 -0
  377. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/null/program.py +0 -0
  378. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  379. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  380. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  381. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/pi/harness.py +0 -0
  382. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/pool/__init__.py +0 -0
  383. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/pool/harness.py +0 -0
  384. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  385. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  386. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  387. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  388. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  389. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/__init__.py +0 -0
  390. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/base.py +0 -0
  391. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/pool.py +0 -0
  392. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/server.py +0 -0
  393. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  394. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/tunnel/base.py +0 -0
  395. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/tunnel/custom.py +0 -0
  396. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/interception/tunnel/prime.py +0 -0
  397. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/judge.py +0 -0
  398. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/judges/__init__.py +0 -0
  399. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/judges/reference.py +0 -0
  400. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/judges/reference.txt +0 -0
  401. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/judges/rubric.py +0 -0
  402. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/judges/rubric.txt +0 -0
  403. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/mcp/__init__.py +0 -0
  404. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/mcp/launch.py +0 -0
  405. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/mcp/server.py +0 -0
  406. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/mcp/toolset.py +0 -0
  407. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/__init__.py +0 -0
  408. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/base.py +0 -0
  409. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  410. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/docker/egress.py +0 -0
  411. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/modal.py +0 -0
  412. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/prime.py +0 -0
  413. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/runtimes/subprocess.py +0 -0
  414. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/session.py +0 -0
  415. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/state.py +0 -0
  416. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/taskset.py +0 -0
  417. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/__init__.py +0 -0
  418. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  419. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/harbor/env.py +0 -0
  420. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  421. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  422. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  423. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  424. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  425. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  426. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  427. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  428. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  429. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  430. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  431. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  432. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  433. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/trace.py +0 -0
  434. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/__init__.py +0 -0
  435. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/aio.py +0 -0
  436. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/artifacts.py +0 -0
  437. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/compile.py +0 -0
  438. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/decorators.py +0 -0
  439. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/format.py +0 -0
  440. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/generic.py +0 -0
  441. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/git.py +0 -0
  442. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/image.py +0 -0
  443. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/interrupt.py +0 -0
  444. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/logging.py +0 -0
  445. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/memory.py +0 -0
  446. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/retries.py +0 -0
  447. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/verifiers/v1/utils/score.py +0 -0
  448. {verifiers-0.3.1.dev10 → verifiers-0.3.1.dev12}/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.dev10
3
+ Version: 0.3.1.dev12
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
@@ -76,10 +76,10 @@ dev = [
76
76
  # from this repo. The built-in tasksets/harnesses ship inside verifiers (verifiers/v1/...).
77
77
  examples = [
78
78
  "compact",
79
- "gsm8k-v1", "glossary-v1", "deepwiki-v1", "wiki-search-v1", "code-golf-v1",
80
- "proposer-solver-v1", "reverse-text-v1", "color-codeword-v1",
81
- "wordle-v1", "openenv-wordle-v1", "alphabet-sort-v1", "scratchpad-v1",
82
- "kuhn-poker-v1",
79
+ "gsm8k", "glossary", "deepwiki", "wiki-search", "code-golf",
80
+ "proposer-solver", "reverse-text", "color-codeword",
81
+ "wordle", "openenv-wordle", "alphabet-sort", "scratchpad",
82
+ "kuhn-poker",
83
83
  ]
84
84
 
85
85
  [project.optional-dependencies]
@@ -151,19 +151,19 @@ default = true
151
151
 
152
152
  [tool.uv.sources]
153
153
  compact = { path = "environments/compact", editable = true }
154
- glossary-v1 = { path = "environments/glossary_v1", editable = true }
155
- deepwiki-v1 = { path = "environments/deepwiki_v1", editable = true }
156
- wiki-search-v1 = { path = "environments/wiki_search_v1", editable = true }
157
- gsm8k-v1 = { path = "environments/gsm8k_v1", editable = true }
158
- code-golf-v1 = { path = "environments/code_golf_v1", editable = true }
159
- proposer-solver-v1 = { path = "environments/proposer_solver_v1", editable = true }
160
- reverse-text-v1 = { path = "environments/reverse_text_v1", editable = true }
161
- wordle-v1 = { path = "environments/wordle_v1", editable = true }
162
- openenv-wordle-v1 = { path = "environments/openenv_wordle_v1", editable = true }
163
- color-codeword-v1 = { path = "environments/color_codeword_v1", editable = true }
164
- alphabet-sort-v1 = { path = "environments/alphabet_sort_v1", editable = true }
165
- scratchpad-v1 = { path = "environments/scratchpad_v1", editable = true }
166
- kuhn-poker-v1 = { path = "environments/kuhn_poker_v1", editable = true }
154
+ glossary = { path = "environments/glossary", editable = true }
155
+ deepwiki = { path = "environments/deepwiki", editable = true }
156
+ wiki-search = { path = "environments/wiki_search", editable = true }
157
+ gsm8k = { path = "environments/gsm8k", editable = true }
158
+ code-golf = { path = "environments/code_golf", editable = true }
159
+ proposer-solver = { path = "environments/proposer_solver", editable = true }
160
+ reverse-text = { path = "environments/reverse_text", editable = true }
161
+ wordle = { path = "environments/wordle", editable = true }
162
+ openenv-wordle = { path = "environments/openenv_wordle", editable = true }
163
+ color-codeword = { path = "environments/color_codeword", editable = true }
164
+ alphabet-sort = { path = "environments/alphabet_sort", editable = true }
165
+ scratchpad = { path = "environments/scratchpad", editable = true }
166
+ kuhn-poker = { path = "environments/kuhn_poker", editable = true }
167
167
 
168
168
  [tool.uv.exclude-newer-package]
169
169
  # Bounded cutoffs for the explicitly requested tool upgrades.
@@ -238,6 +238,12 @@ Documentation = "https://github.com/primeintellect-ai/verifiers"
238
238
  Repository = "https://github.com/primeintellect-ai/verifiers.git"
239
239
  Issues = "https://github.com/primeintellect-ai/verifiers/issues"
240
240
 
241
+ [tool.ruff.lint.isort]
242
+ # The legacy tree answers at both verifiers.* and verifiers.legacy.* (the
243
+ # package-root alias); path probing would classify the moved submodules as
244
+ # third-party, so pin the whole namespace first-party.
245
+ known-first-party = ["verifiers"]
246
+
241
247
  [tool.pytest.ini_options]
242
248
  minversion = "7.0"
243
249
  testpaths = ["tests"]
@@ -300,7 +306,7 @@ redundant-cast = "ignore"
300
306
  exclude = ["environments", "verifiers/v1"]
301
307
 
302
308
  [[tool.ty.overrides]]
303
- include = ["verifiers/envs/experimental/composable/tasksets/**"]
309
+ include = ["verifiers/legacy/envs/experimental/composable/tasksets/**"]
304
310
 
305
311
  [tool.ty.overrides.rules]
306
312
  unresolved-import = "ignore"
@@ -5,8 +5,7 @@ settings that still exercise the path, then assert on the resulting `Trace`(s)
5
5
  not unit tests of individual components. They need a model API key (`PRIME_API_KEY`);
6
6
  without one the `e2e`-marked tests skip (config parsing still runs).
7
7
 
8
- `run_v1` / `run_v0` mirror the eval CLI's two paths (`run_eval` for a v1 taskset,
9
- `run_legacy_eval` for a v0 env). Placement coverage (harness x harness runtime x tool
8
+ `run_v1` mirrors the eval CLI's server path (`run_eval`). Placement coverage (harness x harness runtime x tool
10
9
  server runtime) is PAIRWISE, not a full cross product: each test carries a curated list of
11
10
  combinations (in test_e2e.py) that hits every axis value and the cross-boundary pairs with
12
11
  distinct networking. The full cross bought flake exposure and CI minutes, not coverage — add
@@ -46,9 +45,8 @@ from verifiers.v1.utils.loaders import load_environment
46
45
 
47
46
  CI_MODEL = "openai/gpt-5.6-luna"
48
47
 
49
- # Fixture tasksets/envs (echo-v1, echo-agentic-v1, echo-v0, echo-multi-v0) live in
50
- # tests/v1/fixtures, added to the path via `pythonpath` in pyproject so the v1 loader and the
51
- # v0 legacy bridge both resolve them by id (no install).
48
+ # Fixture tasksets (echo-v1, echo-agentic-v1) live in tests/v1/fixtures, added to the
49
+ # path via `pythonpath` in pyproject so the loader resolves them by id (no install).
52
50
 
53
51
  # The placement fixtures translate one parametrized value each; the combinations live on
54
52
  # the tests (`indirect=True`), so coverage is a visible, curated list — never an implicit
@@ -84,7 +82,7 @@ def pytest_configure(config) -> None:
84
82
  """Self-launching tool servers run `python -m <module>` in a fresh subprocess, which
85
83
  inherits `PYTHONPATH` but not pytest's in-process `pythonpath`. Put the fixture dir on
86
84
  `PYTHONPATH` so a fixture server module (e.g. `tool_response_image_v1`)
87
- resolves there too — an installed example package (e.g. `glossary_v1`) already would."""
85
+ resolves there too — an installed example package (e.g. `glossary`) already would."""
88
86
  fixtures = str(Path(__file__).parent / "fixtures")
89
87
  existing = os.environ.get("PYTHONPATH", "")
90
88
  if fixtures not in existing.split(os.pathsep):
@@ -231,31 +229,3 @@ async def live_ctx():
231
229
  client=EvalClientConfig(),
232
230
  sampling=SamplingConfig(max_tokens=2048),
233
231
  )
234
-
235
-
236
- @pytest.fixture
237
- def run_v0():
238
- """Run a legacy v0 env through the v1 bridge (the eval CLI's `--legacy.id` path)."""
239
- from verifiers.v1.legacy import run_legacy_eval
240
-
241
- async def _run(
242
- env_id: str,
243
- *,
244
- output_dir: Path,
245
- n: int = 1,
246
- max_tokens: int = 2048,
247
- args: dict | None = None,
248
- ) -> list[Trace]:
249
- config = EvalConfig(
250
- legacy={"id": env_id, "args": args or {}},
251
- model=CI_MODEL,
252
- num_tasks=1,
253
- num_rollouts=n,
254
- sampling={"max_tokens": max_tokens},
255
- rich=False,
256
- output_dir=output_dir,
257
- )
258
- records = await run_legacy_eval(config)
259
- return [t for r in records for t in r.traces]
260
-
261
- return _run
@@ -1,4 +1,4 @@
1
- from color_codeword_v1 import taskset
1
+ from color_codeword import taskset
2
2
 
3
3
 
4
4
  def test_color_images_are_rendered_once(monkeypatch) -> None:
@@ -23,5 +23,4 @@ CONFIGS = sorted(
23
23
  @pytest.mark.parametrize("path", CONFIGS, ids=lambda p: p.name)
24
24
  def test_eval_config_parses(path: Path) -> None:
25
25
  config = EvalConfig.model_validate(tomllib.load(path.open("rb")))
26
- # resolved to a v1 taskset or a v0 env id
27
- assert config.env.taskset.id or config.id
26
+ assert config.env.taskset.id
@@ -301,7 +301,7 @@ async def test_shared_tool_isolation(
301
301
  ):
302
302
  """A shared writable tool isolates state across concurrent rollouts and runtimes."""
303
303
  traces = await run_v1_server(
304
- "scratchpad-v1",
304
+ "scratchpad",
305
305
  harness="null",
306
306
  runtime={"type": harness_runtime},
307
307
  output_dir=tmp_path,
@@ -584,7 +584,7 @@ async def test_kuhn_poker_self_play(run_v1, tmp_path):
584
584
  """The turn-coupled proof env: one Kuhn poker hand, both seats live interactions
585
585
  of the run's own model (self-play), refereed host-side, paid out zero-sum."""
586
586
  traces = await run_v1(
587
- "kuhn-poker-v1",
587
+ "kuhn-poker",
588
588
  harness=None, # both seats pin the null harness themselves
589
589
  output_dir=tmp_path,
590
590
  max_turns=8,
@@ -646,7 +646,7 @@ async def test_replay_round_trip(run_v1, tmp_path):
646
646
 
647
647
  run_dir = tmp_path / "run"
648
648
  (source,) = await run_v1(
649
- "reverse-text-v1",
649
+ "reverse-text",
650
650
  harness="null",
651
651
  runtime={"type": "subprocess"},
652
652
  output_dir=run_dir,
@@ -1,6 +1,6 @@
1
- """Smoke-eval every V1 example taskset in `environments/` through the `eval` CLI.
1
+ """Smoke-eval every example taskset in `environments/` through the `eval` CLI.
2
2
 
3
- Each `_v1` taskset runs with its required harness for one short, capped rollout, so a broken
3
+ Each taskset runs with its required harness for one short, capped rollout, so a broken
4
4
  example taskset fails CI. `compact` is excluded (it's a harness, not a taskset);
5
5
  SWE/container tasksets need a docker/prime runtime and are covered by dedicated V1 e2e tests.
6
6
  """
@@ -18,15 +18,15 @@ EVAL_TIMEOUT = 600 # 10 minutes for a capped eval (-n 1 -r 1)
18
18
  ENVIRONMENTS = Path(__file__).parent.parent.parent / "environments"
19
19
 
20
20
  # V1 tasksets that aren't part of the default CI install.
21
- SKIP_EVAL = {"nemo_gym_weather_v1"}
21
+ SKIP_EVAL = {"nemo_gym_weather"}
22
22
 
23
23
  # Per-run caps are seat fields; recipe envs name their own seats.
24
24
  SEATS: dict[str, tuple[str, ...]] = {
25
- "code_golf_v1": ("golfer",),
26
- "kuhn_poker_v1": ("player0", "player1"),
27
- "openenv_wordle_v1": ("player",),
28
- "proposer_solver_v1": ("proposer", "solver"),
29
- "wordle_v1": ("player",),
25
+ "code_golf": ("golfer",),
26
+ "kuhn_poker": ("player0", "player1"),
27
+ "openenv_wordle": ("player",),
28
+ "proposer_solver": ("proposer", "solver"),
29
+ "wordle": ("player",),
30
30
  }
31
31
 
32
32
 
@@ -34,7 +34,9 @@ def v1_tasksets() -> list[str]:
34
34
  if not ENVIRONMENTS.is_dir():
35
35
  return []
36
36
  return sorted(
37
- d.name for d in ENVIRONMENTS.iterdir() if d.is_dir() and d.name.endswith("_v1")
37
+ d.name
38
+ for d in ENVIRONMENTS.iterdir()
39
+ if d.is_dir() and d.name != "compact" and (d / "pyproject.toml").exists()
38
40
  )
39
41
 
40
42
 
@@ -0,0 +1,101 @@
1
+ import verifiers.v1 as vf
2
+ from verifiers.v1.graph import MessageNode
3
+ from verifiers.v1.types import AssistantMessage, UserMessage
4
+
5
+ PLUGGED_FNS_PY = """
6
+ async def reply_length(trace) -> float:
7
+ return float(len(trace.last_reply or ""))
8
+
9
+
10
+ async def exact_match(task, trace) -> float:
11
+ return float(task.answer in (trace.last_reply or ""))
12
+
13
+
14
+ async def marker(trace) -> float:
15
+ return 0.125
16
+
17
+
18
+ async def two_turns(trace) -> bool:
19
+ return trace.num_turns >= 2
20
+ """
21
+
22
+
23
+ class HookData(vf.TaskData):
24
+ answer: str = ""
25
+
26
+
27
+ class HookTask(vf.Task[HookData]):
28
+ @vf.stop
29
+ async def single_turn(self, trace: vf.Trace) -> bool:
30
+ return trace.num_turns >= 1
31
+
32
+ @vf.reward
33
+ async def lcs(self, trace: vf.Trace) -> float:
34
+ return 0.5
35
+
36
+
37
+ async def test_config_plugged_fns_merge_and_override(tmp_path) -> None:
38
+ fns = tmp_path / "fns.py"
39
+ fns.write_text(PLUGGED_FNS_PY)
40
+ config = vf.TaskConfig(
41
+ stops={"single_turn": vf.DecoratedFunctionConfig(fn=f"{fns}:two_turns")},
42
+ metrics={"reply_length": vf.DecoratedFunctionConfig(fn=f"{fns}:reply_length")},
43
+ rewards={
44
+ "exact_match": vf.RewardFunctionConfig(fn=f"{fns}:exact_match", weight=0.5),
45
+ "lcs": vf.RewardFunctionConfig(fn=f"{fns}:marker", weight=2.0),
46
+ },
47
+ )
48
+ task = HookTask(HookData(idx=0, prompt="abc", answer="cba"), config)
49
+ trace = vf.Trace(
50
+ agent=vf.AgentInfo(config=vf.AgentConfig()),
51
+ task=vf.TraceTask(type="HookTask", data=task.data),
52
+ nodes=[
53
+ MessageNode(parent=None, message=UserMessage(content="abc"), sampled=False),
54
+ MessageNode(
55
+ parent=0, message=AssistantMessage(content="cba"), sampled=True
56
+ ),
57
+ ],
58
+ )
59
+
60
+ # the plugged `single_turn` replaces the decorated one: no stop after one turn
61
+ (stop,) = task.hooks("stop")
62
+ assert stop.__name__ == "single_turn"
63
+ assert not await stop(trace)
64
+
65
+ await task.score(trace)
66
+ # `lcs` scored by the plugged marker (config wins the name clash), config weight
67
+ assert trace.rewards["lcs"].score == 0.125
68
+ assert trace.rewards["lcs"].weight == 2.0
69
+ assert trace.rewards["exact_match"].score == 1.0
70
+ assert trace.rewards["exact_match"].weight == 0.5
71
+ assert trace.metrics["reply_length"] == 3.0
72
+
73
+
74
+ def test_compare_stdout_results_accepts_token_equal_text() -> None:
75
+ assert vf.compare_stdout_results("hello world\n", "hello world\n")
76
+
77
+
78
+ def test_compare_stdout_results_keeps_numeric_tolerance() -> None:
79
+ assert vf.compare_stdout_results("1.0001 2.0\n", "1.0002 2.0009\n")
80
+
81
+
82
+ def test_parse_pytest_outcomes_strips_xfail_xpass_reasons() -> None:
83
+ output = (
84
+ "XFAIL tests/test_mod.py::test_xfail - known bug - still tracked\n"
85
+ "XPASS tests/test_mod.py::test_xpass - always xfail - unexpectedly passed\n"
86
+ "FAILED tests/test_mod.py::test_param[a - b] - assert left - right\n"
87
+ "PASSED tests/test_mod.py::test_ok"
88
+ )
89
+
90
+ assert vf.parse_pytest_outcomes(output) == {
91
+ "tests/test_mod.py::test_xfail": "XFAIL",
92
+ "tests/test_mod.py::test_xpass": "XPASS",
93
+ "tests/test_mod.py::test_param[a - b]": "FAILED",
94
+ "tests/test_mod.py::test_ok": "PASSED",
95
+ }
96
+
97
+
98
+ def test_parse_judge_choice_uses_first_choice_after_verdict_marker() -> None:
99
+ response = "Final Judgment: B because it is a better answer"
100
+
101
+ assert vf.parse_judge_choice(response, choices=("A", "B")) == "B"
@@ -0,0 +1,103 @@
1
+ """The verifiers package root.
2
+
3
+ The v1 stack lives in `verifiers.v1`; the classic (v0) stack lives in
4
+ `verifiers.legacy`. The v0 modules keep answering at their pre-move paths —
5
+ `verifiers.envs`, `verifiers.types`, `import verifiers as vf`, ... — through the
6
+ alias finder below, so importing this package root stays side-effect free (the
7
+ v0 surface only loads when something touches it).
8
+ """
9
+
10
+ import sys
11
+ from importlib import import_module
12
+ from importlib.abc import Loader, MetaPathFinder
13
+ from importlib.machinery import ModuleSpec
14
+ from importlib.metadata import PackageNotFoundError
15
+ from importlib.metadata import version as _version
16
+ from importlib.util import find_spec
17
+ from typing import TYPE_CHECKING
18
+
19
+ try:
20
+ __version__ = _version("verifiers")
21
+ except PackageNotFoundError: # source tree without install metadata
22
+ __version__ = "0.0.0+unknown"
23
+
24
+ # The v0 modules that moved under `verifiers.legacy` and stay importable at
25
+ # their old top-level paths.
26
+ LEGACY_MODULES = frozenset(
27
+ {
28
+ "clients",
29
+ "decorators",
30
+ "envs",
31
+ "errors",
32
+ "gepa",
33
+ "parsers",
34
+ "rubrics",
35
+ "scripts",
36
+ "serve",
37
+ "types",
38
+ "utils",
39
+ }
40
+ )
41
+
42
+
43
+ class LegacyAliasFinder(MetaPathFinder, Loader):
44
+ """Resolve `verifiers.<v0 module>` to `verifiers.legacy.<module>`.
45
+
46
+ The loaded module is the legacy module object itself (one instance, aliased
47
+ in `sys.modules` under both names), so `verifiers.types.State is
48
+ verifiers.legacy.types.State` and pre-move imports — including the absolute
49
+ ones inside the moved code — keep working. Installed at the *front* of
50
+ `sys.meta_path` so the path finder never re-executes an aliased package's
51
+ children under the old name.
52
+ """
53
+
54
+ _prefix = "verifiers."
55
+ _legacy_prefix = "verifiers.legacy."
56
+
57
+ def find_spec(self, fullname, path=None, target=None):
58
+ if not fullname.startswith(self._prefix) or fullname.startswith(
59
+ self._legacy_prefix
60
+ ):
61
+ return None
62
+ tail = fullname.removeprefix(self._prefix)
63
+ if tail.split(".", 1)[0] not in LEGACY_MODULES:
64
+ return None
65
+ try:
66
+ legacy_spec = find_spec(self._legacy_prefix + tail)
67
+ except ModuleNotFoundError:
68
+ legacy_spec = None
69
+ if legacy_spec is None: # unknown submodule: fail like any missing import
70
+ return None
71
+ spec = ModuleSpec(
72
+ fullname,
73
+ self,
74
+ origin=legacy_spec.origin,
75
+ is_package=legacy_spec.submodule_search_locations is not None,
76
+ )
77
+ return spec
78
+
79
+ def create_module(self, spec):
80
+ # The already-initialized legacy module keeps its own __name__/__spec__
81
+ # (`module_from_spec` only fills attributes that are missing).
82
+ return import_module(self._legacy_prefix + spec.name.removeprefix(self._prefix))
83
+
84
+ def exec_module(self, module):
85
+ pass # imported (or in progress) under its legacy name already
86
+
87
+
88
+ if not any(isinstance(finder, LegacyAliasFinder) for finder in sys.meta_path):
89
+ sys.meta_path.insert(0, LegacyAliasFinder())
90
+
91
+
92
+ def __getattr__(name: str):
93
+ """`vf.XMLParser`-style access forwards to the v0 surface in
94
+ `verifiers.legacy` (loaded on first touch). `__all__` forwards too, so
95
+ `from verifiers import *` keeps its pre-move meaning."""
96
+ if name.startswith("_") and name != "__all__":
97
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
98
+ legacy = import_module("verifiers.legacy")
99
+ return getattr(legacy, name)
100
+
101
+
102
+ if TYPE_CHECKING: # static view of the forwarded surface
103
+ from verifiers.legacy import *
@@ -2,7 +2,7 @@
2
2
 
3
3
  """Environment build command module for external hosts."""
4
4
 
5
- from verifiers.scripts.build import main
5
+ from verifiers.legacy.scripts.build import main
6
6
 
7
7
 
8
8
  if __name__ == "__main__":
@@ -2,7 +2,7 @@
2
2
 
3
3
  """Evaluation command module for external hosts."""
4
4
 
5
- from verifiers.scripts.eval import (
5
+ from verifiers.legacy.scripts.eval import (
6
6
  build_extra_headers,
7
7
  build_parser,
8
8
  main,
@@ -2,7 +2,7 @@
2
2
 
3
3
  """GEPA command module for external hosts."""
4
4
 
5
- from verifiers.scripts.gepa import main
5
+ from verifiers.legacy.scripts.gepa import main
6
6
 
7
7
 
8
8
  if __name__ == "__main__":
@@ -2,7 +2,7 @@
2
2
 
3
3
  """Environment initialization command module for external hosts."""
4
4
 
5
- from verifiers.scripts.init import main
5
+ from verifiers.legacy.scripts.init import main
6
6
 
7
7
 
8
8
  if __name__ == "__main__":
@@ -2,7 +2,7 @@
2
2
 
3
3
  """Environment install command module for external hosts."""
4
4
 
5
- from verifiers.scripts.install import main
5
+ from verifiers.legacy.scripts.install import main
6
6
 
7
7
 
8
8
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  """Workspace setup command module for external hosts."""
2
2
 
3
- from verifiers.scripts.setup import main, run_setup
3
+ from verifiers.legacy.scripts.setup import main, run_setup
4
4
 
5
5
  __all__ = ["main", "run_setup"]
6
6
 
@@ -1,6 +1,6 @@
1
1
  """TUI exports for host CLIs."""
2
2
 
3
- from verifiers.scripts.tui import main
3
+ from verifiers.legacy.scripts.tui import main
4
4
 
5
5
  __all__ = ["main"]
6
6
 
@@ -109,39 +109,39 @@ __all__ = [
109
109
  ]
110
110
 
111
111
  _LAZY_IMPORTS = {
112
- "Client": "verifiers.clients.client:Client",
112
+ "Client": "verifiers.legacy.clients.client:Client",
113
113
  "AnthropicMessagesClient": (
114
- "verifiers.clients.anthropic_messages_client:AnthropicMessagesClient"
114
+ "verifiers.legacy.clients.anthropic_messages_client:AnthropicMessagesClient"
115
115
  ),
116
116
  "OpenAIChatCompletionsClient": (
117
- "verifiers.clients.openai_chat_completions_client:OpenAIChatCompletionsClient"
117
+ "verifiers.legacy.clients.openai_chat_completions_client:OpenAIChatCompletionsClient"
118
118
  ),
119
- "RendererClient": ("verifiers.clients.renderer_client:RendererClient"),
119
+ "RendererClient": ("verifiers.legacy.clients.renderer_client:RendererClient"),
120
120
  "OpenAICompletionsClient": (
121
- "verifiers.clients.openai_completions_client:OpenAICompletionsClient"
121
+ "verifiers.legacy.clients.openai_completions_client:OpenAICompletionsClient"
122
122
  ),
123
123
  "OpenAIResponsesClient": (
124
- "verifiers.clients.openai_responses_client:OpenAIResponsesClient"
124
+ "verifiers.legacy.clients.openai_responses_client:OpenAIResponsesClient"
125
125
  ),
126
- "Environment": "verifiers.envs.environment:Environment",
127
- "MultiTurnEnv": "verifiers.envs.multiturn_env:MultiTurnEnv",
128
- "SingleTurnEnv": "verifiers.envs.singleturn_env:SingleTurnEnv",
129
- "StatefulToolEnv": "verifiers.envs.stateful_tool_env:StatefulToolEnv",
130
- "ToolEnv": "verifiers.envs.tool_env:ToolEnv",
131
- "EnvGroup": "verifiers.envs.env_group:EnvGroup",
132
- "JudgeRubric": "verifiers.rubrics.judge_rubric:JudgeRubric",
133
- "load_environment": "verifiers.utils.env_utils:load_environment",
134
- "MathRubric": "verifiers.rubrics.math_rubric:MathRubric",
135
- "SandboxEnv": "verifiers.envs.sandbox_env:SandboxEnv",
136
- "PythonEnv": "verifiers.envs.python_env:PythonEnv",
137
- "GymEnv": "verifiers.envs.experimental.gym_env:GymEnv",
138
- "CliAgentEnv": "verifiers.envs.experimental.cli_agent_env:CliAgentEnv",
139
- "HarborEnv": "verifiers.envs.experimental.harbor_env:HarborEnv",
140
- "MCPEnv": "verifiers.envs.experimental.mcp_env:MCPEnv",
141
- "ReasoningGymEnv": "verifiers.envs.integrations.reasoninggym_env:ReasoningGymEnv",
142
- "TextArenaEnv": "verifiers.envs.integrations.textarena_env:TextArenaEnv",
143
- "BrowserEnv": "verifiers.envs.integrations.browser_env:BrowserEnv",
144
- "OpenEnvEnv": "verifiers.envs.integrations.openenv_env:OpenEnvEnv",
126
+ "Environment": "verifiers.legacy.envs.environment:Environment",
127
+ "MultiTurnEnv": "verifiers.legacy.envs.multiturn_env:MultiTurnEnv",
128
+ "SingleTurnEnv": "verifiers.legacy.envs.singleturn_env:SingleTurnEnv",
129
+ "StatefulToolEnv": "verifiers.legacy.envs.stateful_tool_env:StatefulToolEnv",
130
+ "ToolEnv": "verifiers.legacy.envs.tool_env:ToolEnv",
131
+ "EnvGroup": "verifiers.legacy.envs.env_group:EnvGroup",
132
+ "JudgeRubric": "verifiers.legacy.rubrics.judge_rubric:JudgeRubric",
133
+ "load_environment": "verifiers.legacy.utils.env_utils:load_environment",
134
+ "MathRubric": "verifiers.legacy.rubrics.math_rubric:MathRubric",
135
+ "SandboxEnv": "verifiers.legacy.envs.sandbox_env:SandboxEnv",
136
+ "PythonEnv": "verifiers.legacy.envs.python_env:PythonEnv",
137
+ "GymEnv": "verifiers.legacy.envs.experimental.gym_env:GymEnv",
138
+ "CliAgentEnv": "verifiers.legacy.envs.experimental.cli_agent_env:CliAgentEnv",
139
+ "HarborEnv": "verifiers.legacy.envs.experimental.harbor_env:HarborEnv",
140
+ "MCPEnv": "verifiers.legacy.envs.experimental.mcp_env:MCPEnv",
141
+ "ReasoningGymEnv": "verifiers.legacy.envs.integrations.reasoninggym_env:ReasoningGymEnv",
142
+ "TextArenaEnv": "verifiers.legacy.envs.integrations.textarena_env:TextArenaEnv",
143
+ "BrowserEnv": "verifiers.legacy.envs.integrations.browser_env:BrowserEnv",
144
+ "OpenEnvEnv": "verifiers.legacy.envs.integrations.openenv_env:OpenEnvEnv",
145
145
  }
146
146
 
147
147
 
@@ -1,17 +1,19 @@
1
1
  # ruff: noqa
2
2
 
3
- from verifiers.clients.anthropic_messages_client import AnthropicMessagesClient
4
- from verifiers.clients.client import Client
5
- from verifiers.clients.nemorl_chat_completions_client import (
3
+ from verifiers.legacy.clients.anthropic_messages_client import AnthropicMessagesClient
4
+ from verifiers.legacy.clients.client import Client
5
+ from verifiers.legacy.clients.nemorl_chat_completions_client import (
6
6
  NeMoRLChatCompletionsClient,
7
7
  )
8
- from verifiers.clients.openai_chat_completions_client import OpenAIChatCompletionsClient
9
- from verifiers.clients.openai_chat_completions_token_client import (
8
+ from verifiers.legacy.clients.openai_chat_completions_client import (
9
+ OpenAIChatCompletionsClient,
10
+ )
11
+ from verifiers.legacy.clients.openai_chat_completions_token_client import (
10
12
  OpenAIChatCompletionsTokenClient,
11
13
  )
12
- from verifiers.clients.openai_completions_client import OpenAICompletionsClient
13
- from verifiers.clients.openai_responses_client import OpenAIResponsesClient
14
- from verifiers.types import ClientConfig
14
+ from verifiers.legacy.clients.openai_completions_client import OpenAICompletionsClient
15
+ from verifiers.legacy.clients.openai_responses_client import OpenAIResponsesClient
16
+ from verifiers.legacy.types import ClientConfig
15
17
 
16
18
 
17
19
  def resolve_client(client_or_config: Client | ClientConfig) -> Client:
@@ -31,7 +33,7 @@ def resolve_client(client_or_config: Client | ClientConfig) -> Client:
31
33
  case "openai_responses":
32
34
  return OpenAIResponsesClient(client_or_config)
33
35
  case "renderer":
34
- from verifiers.clients.renderer_client import RendererClient
36
+ from verifiers.legacy.clients.renderer_client import RendererClient
35
37
 
36
38
  return RendererClient(client_or_config)
37
39
  case "anthropic_messages":
@@ -44,10 +46,10 @@ def resolve_client(client_or_config: Client | ClientConfig) -> Client:
44
46
 
45
47
  def __getattr__(name: str):
46
48
  if name == "RendererClient":
47
- from verifiers.clients.renderer_client import RendererClient
49
+ from verifiers.legacy.clients.renderer_client import RendererClient
48
50
 
49
51
  return RendererClient
50
- raise AttributeError(f"module 'verifiers.clients' has no attribute '{name}'")
52
+ raise AttributeError(f"module 'verifiers.legacy.clients' has no attribute '{name}'")
51
53
 
52
54
 
53
55
  __all__ = [
@@ -30,9 +30,9 @@ from anthropic.types import (
30
30
  ToolParam as AnthropicToolParam,
31
31
  )
32
32
 
33
- from verifiers.clients.client import Client
34
- from verifiers.errors import EmptyModelResponseError, OverlongPromptError
35
- from verifiers.types import (
33
+ from verifiers.legacy.clients.client import Client
34
+ from verifiers.legacy.errors import EmptyModelResponseError, OverlongPromptError
35
+ from verifiers.legacy.types import (
36
36
  AssistantMessage,
37
37
  ClientConfig,
38
38
  FinishReason,
@@ -49,7 +49,7 @@ from verifiers.types import (
49
49
  Usage,
50
50
  UserMessage,
51
51
  )
52
- from verifiers.utils.client_utils import setup_anthropic_client
52
+ from verifiers.legacy.utils.client_utils import setup_anthropic_client
53
53
 
54
54
 
55
55
  ANTHROPIC_ADAPTIVE_THINKING_MODELS = {
@@ -13,8 +13,8 @@ from anthropic import (
13
13
  from openai import AuthenticationError as OpenAIAuthenticationError
14
14
  from openai import PermissionDeniedError as OpenAIPermissionDeniedError
15
15
 
16
- from verifiers.errors import Error, ModelError
17
- from verifiers.types import (
16
+ from verifiers.legacy.errors import Error, ModelError
17
+ from verifiers.legacy.types import (
18
18
  ClientConfig,
19
19
  Messages,
20
20
  Response,