verifiers 0.3.1.dev31__tar.gz → 0.3.1.dev33__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/PKG-INFO +1 -1
  2. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/echo_v1.py +4 -0
  3. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_e2e.py +2 -0
  4. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_taskset.py +3 -1
  5. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_trace.py +7 -1
  6. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/debug.py +3 -1
  7. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/validate.py +6 -2
  8. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/agent.py +2 -2
  9. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/debug.py +2 -2
  10. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/validate.py +2 -2
  11. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/client.py +1 -1
  12. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/tunnel/prime.py +5 -0
  13. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/rollout.py +1 -0
  14. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/prime.py +3 -1
  15. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/task.py +12 -2
  16. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/trace.py +3 -1
  17. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/platform.py +1 -1
  18. verifiers-0.3.1.dev31/verifiers/v1/utils/prime_config.py → verifiers-0.3.1.dev33/verifiers/v1/utils/prime.py +10 -0
  19. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/.gitignore +0 -0
  20. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/LICENSE +0 -0
  21. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/README.md +0 -0
  22. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/pyproject.toml +0 -0
  23. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/__init__.py +0 -0
  24. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/conftest.py +0 -0
  25. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_browser_env.py +0 -0
  26. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_build_script.py +0 -0
  27. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_cli_agent_env.py +0 -0
  28. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_client_auth_errors.py +0 -0
  29. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_client_config.py +0 -0
  30. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_client_multimodal_types.py +0 -0
  31. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_composable_env.py +0 -0
  32. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_context_token_metrics.py +0 -0
  33. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_decorator_ranks.py +0 -0
  34. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_endpoint_registry.py +0 -0
  35. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_env_group.py +0 -0
  36. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_env_server.py +0 -0
  37. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_environment.py +0 -0
  38. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_environment_extra.py +0 -0
  39. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_error_chain.py +0 -0
  40. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_eval_display.py +0 -0
  41. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_eval_utils.py +0 -0
  42. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_gepa_cli.py +0 -0
  43. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_gepa_utils.py +0 -0
  44. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_gym_env.py +0 -0
  45. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_harbor_env_mcp.py +0 -0
  46. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_imports.py +0 -0
  47. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_init_script.py +0 -0
  48. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_install_utils.py +0 -0
  49. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_interception_utils.py +0 -0
  50. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_logging.py +0 -0
  51. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_math_rubric.py +0 -0
  52. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_maybe_think_parser.py +0 -0
  53. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_message_utils.py +0 -0
  54. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_message_utils_multimodal.py +0 -0
  55. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_multiturn_env.py +0 -0
  56. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_nemorl_client.py +0 -0
  57. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_openai_chat_completions_token_client.py +0 -0
  58. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_openai_responses_client.py +0 -0
  59. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_opencode_rlm_env.py +0 -0
  60. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_openenv_client.py +0 -0
  61. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_parser.py +0 -0
  62. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_path_utils.py +0 -0
  63. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_per_turn_timing.py +0 -0
  64. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_pricing_utils.py +0 -0
  65. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_prime_plugin.py +0 -0
  66. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_renderer_client.py +0 -0
  67. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_renderer_e2e.py +0 -0
  68. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_rlm_composable_env.py +0 -0
  69. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_rubric.py +0 -0
  70. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_rubric_group.py +0 -0
  71. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_sandbox_debug_env.py +0 -0
  72. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_sandbox_env.py +0 -0
  73. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_sandbox_mixin.py +0 -0
  74. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_save_utils.py +0 -0
  75. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_setup_script.py +0 -0
  76. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_singleturn_env.py +0 -0
  77. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_stateful_tool_env.py +0 -0
  78. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_think_parser.py +0 -0
  79. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_tool_env.py +0 -0
  80. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_tool_utils.py +0 -0
  81. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_trajectory_processing.py +0 -0
  82. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_tui_info_formatting.py +0 -0
  83. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_types.py +0 -0
  84. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/test_xml_parser.py +0 -0
  85. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/conftest.py +0 -0
  86. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/counter_tool_v1.py +0 -0
  87. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/duet_v1.py +0 -0
  88. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
  89. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
  90. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/echo_tool_v1.py +0 -0
  91. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
  92. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/pyproject.toml +0 -0
  93. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
  94. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_color_codeword_tasks.py +0 -0
  95. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_configs.py +0 -0
  96. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_envs.py +0 -0
  97. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_graph.py +0 -0
  98. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_judges.py +0 -0
  99. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/tests/v1/test_scoring.py +0 -0
  100. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/__init__.py +0 -0
  101. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/__init__.py +0 -0
  102. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/__init__.py +0 -0
  103. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/build.py +0 -0
  104. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/eval.py +0 -0
  105. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/gepa.py +0 -0
  106. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/init.py +0 -0
  107. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/install.py +0 -0
  108. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/commands/setup.py +0 -0
  109. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/plugins/__init__.py +0 -0
  110. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/plugins/prime.py +0 -0
  111. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/cli/tui.py +0 -0
  112. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/__init__.py +0 -0
  113. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/__init__.py +0 -0
  114. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/anthropic_messages_client.py +0 -0
  115. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/client.py +0 -0
  116. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/nemorl_chat_completions_client.py +0 -0
  117. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/openai_chat_completions_client.py +0 -0
  118. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/openai_chat_completions_token_client.py +0 -0
  119. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/openai_completions_client.py +0 -0
  120. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/openai_responses_client.py +0 -0
  121. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/clients/renderer_client.py +0 -0
  122. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/decorators.py +0 -0
  123. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/__init__.py +0 -0
  124. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/env_group.py +0 -0
  125. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/environment.py +0 -0
  126. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/README.md +0 -0
  127. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/__init__.py +0 -0
  128. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/cli_agent_env.py +0 -0
  129. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/README.md +0 -0
  130. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/__init__.py +0 -0
  131. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/_filter.py +0 -0
  132. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/composable_env.py +0 -0
  133. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/harness.py +0 -0
  134. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/harnesses/__init__.py +0 -0
  135. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
  136. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/harnesses/opencode.py +0 -0
  137. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/harnesses/prompt.txt +0 -0
  138. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/harnesses/rlm.py +0 -0
  139. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/sandbox_debug_env.py +0 -0
  140. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/swe_debug_env.py +0 -0
  141. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/task.py +0 -0
  142. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/__init__.py +0 -0
  143. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
  144. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
  145. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
  146. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
  147. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
  148. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
  149. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
  150. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/math/__init__.py +0 -0
  151. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/math/math_task.py +0 -0
  152. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/README.md +0 -0
  153. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
  154. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
  155. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
  156. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
  157. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
  158. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
  159. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
  160. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
  161. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
  162. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
  163. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
  164. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
  165. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
  166. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
  167. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
  168. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
  169. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
  170. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
  171. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
  172. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
  173. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
  174. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
  175. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
  176. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/gym_env.py +0 -0
  177. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/harbor_env/__init__.py +0 -0
  178. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/harbor_env/env.py +0 -0
  179. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/harbor_env/mcp.py +0 -0
  180. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/mcp_env.py +0 -0
  181. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/opencode_env.py +0 -0
  182. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/opencode_qa_env.py +0 -0
  183. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/opencode_rlm_env.py +0 -0
  184. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/sandbox_mixin.py +0 -0
  185. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/utils/__init__.py +0 -0
  186. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/utils/file_locks.py +0 -0
  187. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/experimental/utils/git_checkout_cache.py +0 -0
  188. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/README.md +0 -0
  189. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/__init__.py +0 -0
  190. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/README.md +0 -0
  191. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/__init__.py +0 -0
  192. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/browser_env.py +0 -0
  193. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/modes/__init__.py +0 -0
  194. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/modes/base.py +0 -0
  195. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/modes/cua_mode.py +0 -0
  196. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/browser_env/modes/dom_mode.py +0 -0
  197. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/openenv_env.py +0 -0
  198. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/reasoninggym_env.py +0 -0
  199. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/integrations/textarena_env.py +0 -0
  200. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/multiturn_env.py +0 -0
  201. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/python_env.py +0 -0
  202. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/sandbox_env.py +0 -0
  203. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/singleturn_env.py +0 -0
  204. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/stateful_tool_env.py +0 -0
  205. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/envs/tool_env.py +0 -0
  206. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/errors.py +0 -0
  207. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/gepa/__init__.py +0 -0
  208. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/gepa/adapter.py +0 -0
  209. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/gepa/config.py +0 -0
  210. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/gepa/display.py +0 -0
  211. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/gepa/gepa_utils.py +0 -0
  212. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/parsers/__init__.py +0 -0
  213. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/parsers/maybe_think_parser.py +0 -0
  214. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/parsers/parser.py +0 -0
  215. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/parsers/think_parser.py +0 -0
  216. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/parsers/xml_parser.py +0 -0
  217. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/rubrics/__init__.py +0 -0
  218. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/rubrics/experimental/hybrid_math_rubric.py +0 -0
  219. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/rubrics/judge_rubric.py +0 -0
  220. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/rubrics/math_rubric.py +0 -0
  221. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/rubrics/rubric.py +0 -0
  222. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/rubrics/rubric_group.py +0 -0
  223. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/__init__.py +0 -0
  224. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/build.py +0 -0
  225. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/eval.py +0 -0
  226. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/gepa.py +0 -0
  227. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/init.py +0 -0
  228. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/install.py +0 -0
  229. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/setup.py +0 -0
  230. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/scripts/tui.py +0 -0
  231. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/__init__.py +0 -0
  232. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/client/env_client.py +0 -0
  233. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/client/zmq_env_client.py +0 -0
  234. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/server/__init__.py +0 -0
  235. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/server/env_router.py +0 -0
  236. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/server/env_server.py +0 -0
  237. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/server/env_worker.py +0 -0
  238. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/server/zmq_env_server.py +0 -0
  239. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/serve/types.py +0 -0
  240. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/types.py +0 -0
  241. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/__init__.py +0 -0
  242. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/async_utils.py +0 -0
  243. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/client_utils.py +0 -0
  244. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/config_utils.py +0 -0
  245. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/data_utils.py +0 -0
  246. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/display_utils.py +0 -0
  247. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/env_config_utils.py +0 -0
  248. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/env_utils.py +0 -0
  249. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/error_utils.py +0 -0
  250. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/eval_display.py +0 -0
  251. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/eval_utils.py +0 -0
  252. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/heartbeat.py +0 -0
  253. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/import_utils.py +0 -0
  254. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/install_utils.py +0 -0
  255. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/interception_utils.py +0 -0
  256. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/logging_utils.py +0 -0
  257. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/message_utils.py +0 -0
  258. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/metric_utils.py +0 -0
  259. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/path_utils.py +0 -0
  260. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/pricing_utils.py +0 -0
  261. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/process_utils.py +0 -0
  262. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/response_utils.py +0 -0
  263. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/save_utils.py +0 -0
  264. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/serve_utils.py +0 -0
  265. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/thread_utils.py +0 -0
  266. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/threaded_sandbox_client.py +0 -0
  267. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/tool_utils.py +0 -0
  268. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/usage_utils.py +0 -0
  269. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/legacy/utils/version_utils.py +0 -0
  270. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/__init__.py +0 -0
  271. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/acp/__init__.py +0 -0
  272. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/acp/runner.py +0 -0
  273. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/agent.py +0 -0
  274. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/__init__.py +0 -0
  275. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/dashboard/__init__.py +0 -0
  276. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/dashboard/base.py +0 -0
  277. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/dashboard/eval.py +0 -0
  278. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/dashboard/replay.py +0 -0
  279. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/dashboard/validate.py +0 -0
  280. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/eval/__init__.py +0 -0
  281. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/eval/main.py +0 -0
  282. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/eval/resume.py +0 -0
  283. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/eval/runner.py +0 -0
  284. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/gepa.py +0 -0
  285. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/init.py +0 -0
  286. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/output.py +0 -0
  287. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/replay.py +0 -0
  288. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/resolve.py +0 -0
  289. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/cli/resume.py +0 -0
  290. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/clients/__init__.py +0 -0
  291. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/clients/base.py +0 -0
  292. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/clients/client.py +0 -0
  293. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/clients/eval.py +0 -0
  294. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/clients/train.py +0 -0
  295. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/__init__.py +0 -0
  296. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/__init__.py +0 -0
  297. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/env.py +0 -0
  298. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/eval.py +0 -0
  299. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/init.py +0 -0
  300. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/cli/replay.py +0 -0
  301. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/env.py +0 -0
  302. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/harness.py +0 -0
  303. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/judge.py +0 -0
  304. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/retries.py +0 -0
  305. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/runtime.py +0 -0
  306. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/serve.py +0 -0
  307. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/task.py +0 -0
  308. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/configs/taskset.py +0 -0
  309. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/dialects/__init__.py +0 -0
  310. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/dialects/anthropic.py +0 -0
  311. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/dialects/base.py +0 -0
  312. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/dialects/chat.py +0 -0
  313. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/dialects/responses.py +0 -0
  314. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/env.py +0 -0
  315. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/__init__.py +0 -0
  316. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
  317. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/agentic_judge/env.py +0 -0
  318. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
  319. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/best_of_n/env.py +0 -0
  320. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
  321. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/single_agent/__init__.py +0 -0
  322. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/single_agent/env.py +0 -0
  323. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/user_sim/__init__.py +0 -0
  324. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/envs/user_sim/env.py +0 -0
  325. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/episode.py +0 -0
  326. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/errors.py +0 -0
  327. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/gepa/__init__.py +0 -0
  328. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/gepa/adapter.py +0 -0
  329. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/gepa/config.py +0 -0
  330. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/gepa/dataset.py +0 -0
  331. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/gepa/reflection.py +0 -0
  332. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/gepa/runner.py +0 -0
  333. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/graph.py +0 -0
  334. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harness.py +0 -0
  335. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/__init__.py +0 -0
  336. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/bash/__init__.py +0 -0
  337. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/bash/harness.py +0 -0
  338. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/bash/program.py +0 -0
  339. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
  340. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
  341. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/browser_use/program.py +0 -0
  342. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
  343. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
  344. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/codex/__init__.py +0 -0
  345. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/codex/harness.py +0 -0
  346. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
  347. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
  348. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
  349. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
  350. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
  351. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
  352. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
  353. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
  354. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/node.py +0 -0
  355. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/null/__init__.py +0 -0
  356. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/null/harness.py +0 -0
  357. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/null/program.py +0 -0
  358. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
  359. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
  360. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/pi/__init__.py +0 -0
  361. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/pi/harness.py +0 -0
  362. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/pool/__init__.py +0 -0
  363. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/pool/harness.py +0 -0
  364. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
  365. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/rlm/harness.py +0 -0
  366. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
  367. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
  368. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
  369. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/__init__.py +0 -0
  370. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/base.py +0 -0
  371. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/pool.py +0 -0
  372. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/server.py +0 -0
  373. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/tool.py +0 -0
  374. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/tunnel/__init__.py +0 -0
  375. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/tunnel/base.py +0 -0
  376. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/interception/tunnel/custom.py +0 -0
  377. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/judge.py +0 -0
  378. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/judges/__init__.py +0 -0
  379. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/judges/reference.py +0 -0
  380. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/judges/reference.txt +0 -0
  381. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/judges/rubric.py +0 -0
  382. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/judges/rubric.txt +0 -0
  383. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/mcp/__init__.py +0 -0
  384. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/mcp/launch.py +0 -0
  385. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/mcp/server.py +0 -0
  386. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/mcp/toolset.py +0 -0
  387. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/__init__.py +0 -0
  388. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/base.py +0 -0
  389. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/docker/__init__.py +0 -0
  390. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/docker/egress.py +0 -0
  391. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/limiters.py +0 -0
  392. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/modal.py +0 -0
  393. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/runtimes/subprocess.py +0 -0
  394. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/serve/__init__.py +0 -0
  395. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/serve/client.py +0 -0
  396. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/serve/encoding.py +0 -0
  397. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/serve/pool.py +0 -0
  398. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/serve/server.py +0 -0
  399. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/serve/types.py +0 -0
  400. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/session.py +0 -0
  401. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/state.py +0 -0
  402. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/taskset.py +0 -0
  403. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/__init__.py +0 -0
  404. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
  405. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/harbor/env.py +0 -0
  406. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
  407. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/lean/__init__.py +0 -0
  408. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/lean/scoring.py +0 -0
  409. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/lean/taskset.py +0 -0
  410. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
  411. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
  412. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
  413. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
  414. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
  415. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
  416. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
  417. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
  418. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
  419. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/types.py +0 -0
  420. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/__init__.py +0 -0
  421. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/aio.py +0 -0
  422. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/artifacts.py +0 -0
  423. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/compile.py +0 -0
  424. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/decorators.py +0 -0
  425. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/format.py +0 -0
  426. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/generic.py +0 -0
  427. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/git.py +0 -0
  428. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/image.py +0 -0
  429. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/install.py +0 -0
  430. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/install_utils.py +0 -0
  431. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/interrupt.py +0 -0
  432. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/loaders.py +0 -0
  433. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/logging.py +0 -0
  434. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/memory.py +0 -0
  435. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/paths.py +0 -0
  436. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/retries.py +0 -0
  437. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/verifiers/v1/utils/score.py +0 -0
  438. {verifiers-0.3.1.dev31 → verifiers-0.3.1.dev33}/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.dev31
3
+ Version: 0.3.1.dev33
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
@@ -30,6 +30,10 @@ class EchoData(vf.TaskData):
30
30
 
31
31
 
32
32
  class EchoTask(vf.Task[EchoData]):
33
+ @property
34
+ def key(self) -> str:
35
+ return f"echo:{self.data.answer}"
36
+
33
37
  @vf.stop
34
38
  async def single_turn(self, trace: vf.Trace) -> bool:
35
39
  return trace.num_turns >= 1
@@ -136,6 +136,8 @@ async def test_single_turn(run_v1, harness, harness_runtime, tmp_path):
136
136
  assert trace.num_turns == 1
137
137
  assert trace.stop_condition == "agent_completed"
138
138
  assert trace.reward == 1.0
139
+ assert trace.task.key == f"echo:{trace.task.data.answer}"
140
+ assert trace.task.hash is not None
139
141
  # The seat's resolved identity rides the trace (policy metadata for trainers).
140
142
  assert trace.agent is not None
141
143
  assert trace.agent.config.sampling.max_tokens == 2048
@@ -37,7 +37,9 @@ def test_head_bounds_an_infinite_taskset() -> None:
37
37
 
38
38
  def test_iteration_materializes_a_finite_taskset() -> None:
39
39
  taskset = FiniteTaskset(vf.TasksetConfig())
40
- assert len(list(taskset)) == 10
40
+ tasks = list(taskset)
41
+ assert len(tasks) == 10
42
+ assert all(task.key == task.hash for task in tasks)
41
43
  assert idxs(taskset.head(4)) == [0, 1, 2, 3]
42
44
 
43
45
 
@@ -22,12 +22,18 @@ def test_bare_trace_round_trip():
22
22
  # The minimal trace: a base task, no nodes, no extras — dump and back into a plain Trace.
23
23
  tr = vf.Trace(
24
24
  agent=vf.AgentInfo(config=vf.AgentConfig()),
25
- task=vf.TraceTask(type="Task", data=vf.TaskData(idx=3, prompt="hello")),
25
+ task=vf.TraceTask(
26
+ type="Task",
27
+ data=vf.TaskData(idx=3, prompt="hello"),
28
+ key="dataset/example-3",
29
+ hash="content-digest",
30
+ ),
26
31
  )
27
32
  rt = vf.Trace.model_validate(tr.model_dump())
28
33
  assert rt.id == tr.id
29
34
  assert rt.task.type == "Task"
30
35
  assert rt.task.data.idx == 3 and rt.task.data.prompt == "hello"
36
+ assert rt.task.key == "dataset/example-3" and rt.task.hash == "content-digest"
31
37
  assert rt.num_turns == 0 and rt.num_branches == 0
32
38
  assert rt.reward == 0.0 and rt.errors == []
33
39
 
@@ -193,7 +193,9 @@ async def run_action(runtime: Runtime, config: DebugConfig) -> dict[str, Any]:
193
193
 
194
194
  async def debug_task(task: Task, config: DebugConfig) -> tuple[Trace, bool]:
195
195
  trace = Trace(
196
- task=TraceTask(type=type(task).__name__, data=task.data, hash=task.hash),
196
+ task=TraceTask(
197
+ type=type(task).__name__, data=task.data, key=task.key, hash=task.hash
198
+ ),
197
199
  state=state_cls(type(task))(),
198
200
  # No agent plays here (no model, no harness): the seat records the
199
201
  # runtime policy, and the provisioned box lands on it below (id, resolved
@@ -247,7 +247,9 @@ async def _run_gold(task: Task, config: ValidateConfig) -> ResultRow:
247
247
  valid, exc = False, None
248
248
  try:
249
249
  trace = Trace(
250
- task=TraceTask(type=type(task).__name__, data=task.data, hash=task.hash),
250
+ task=TraceTask(
251
+ type=type(task).__name__, data=task.data, key=task.key, hash=task.hash
252
+ ),
251
253
  state=state_cls(type(task))(),
252
254
  # No agent runs here — the info only records the runtime policy.
253
255
  agent=vf.AgentInfo(
@@ -288,7 +290,9 @@ async def _run_setup(task: Task, config: ValidateConfig) -> ResultRow:
288
290
  valid, exc = False, None
289
291
  try:
290
292
  trace = Trace(
291
- task=TraceTask(type=type(task).__name__, data=task.data, hash=task.hash),
293
+ task=TraceTask(
294
+ type=type(task).__name__, data=task.data, key=task.key, hash=task.hash
295
+ ),
292
296
  state=state_cls(type(task))(),
293
297
  # No agent runs here — the info only records the runtime policy.
294
298
  agent=vf.AgentInfo(
@@ -6,7 +6,7 @@ from pydantic_config import BaseConfig
6
6
  from verifiers.v1.clients import ClientConfig
7
7
  from verifiers.v1.configs.harness import HarnessConfig, WireHarnessConfig
8
8
  from verifiers.v1.configs.retries import RetryConfig
9
- from verifiers.v1.runtimes import RuntimeConfig, SubprocessConfig
9
+ from verifiers.v1.runtimes import PrimeConfig, RuntimeConfig
10
10
  from verifiers.v1.types import SamplingConfig
11
11
 
12
12
 
@@ -26,7 +26,7 @@ class TimeoutConfig(BaseConfig):
26
26
  class AgentConfig(BaseConfig):
27
27
  harness: SerializeAsAny[HarnessConfig] | None = None
28
28
  """The agent's program (None = the taskset's default harness)."""
29
- runtime: RuntimeConfig = SubprocessConfig()
29
+ runtime: RuntimeConfig = PrimeConfig()
30
30
  """Runtime for the harness program — the policy each run provisions its box
31
31
  from; tool servers choose their placement separately."""
32
32
 
@@ -8,14 +8,14 @@ from pydantic_config import BaseConfig
8
8
 
9
9
  from verifiers.v1.configs.cli.validate import CheckTimeoutConfig
10
10
  from verifiers.v1.configs.taskset import TasksetConfig
11
- from verifiers.v1.runtimes import DockerConfig, RuntimeConfig
11
+ from verifiers.v1.runtimes import PrimeConfig, RuntimeConfig
12
12
 
13
13
 
14
14
  class DebugConfig(BaseConfig):
15
15
  uuid: str = Field(default_factory=lambda: str(uuid4()), exclude=True)
16
16
  """Auto-generated run id, used as the default output directory leaf."""
17
17
  taskset: SerializeAsAny[TasksetConfig] = TasksetConfig()
18
- runtime: RuntimeConfig = DockerConfig()
18
+ runtime: RuntimeConfig = PrimeConfig()
19
19
  """Where each task's setup hook and debug action run."""
20
20
  command: str | None = None
21
21
  """Inline shell command executed as `sh -lc <command>` after setup."""
@@ -7,7 +7,7 @@ from pydantic import AliasChoices, Field, SerializeAsAny, model_validator
7
7
  from pydantic_config import BaseConfig
8
8
 
9
9
  from verifiers.v1.configs.taskset import TasksetConfig
10
- from verifiers.v1.runtimes import DockerConfig, RuntimeConfig
10
+ from verifiers.v1.runtimes import PrimeConfig, RuntimeConfig
11
11
 
12
12
 
13
13
  class CheckTimeoutConfig(BaseConfig):
@@ -23,7 +23,7 @@ class ValidateConfig(BaseConfig):
23
23
  """Auto-generated run id — the default output directory leaf. Excluded from the
24
24
  saved config so re-running it starts a fresh run."""
25
25
  taskset: SerializeAsAny[TasksetConfig] = TasksetConfig()
26
- runtime: RuntimeConfig = DockerConfig()
26
+ runtime: RuntimeConfig = PrimeConfig()
27
27
  """Where each task's validation hooks run."""
28
28
  timeout: CheckTimeoutConfig = CheckTimeoutConfig()
29
29
  only_setup: bool = False
@@ -18,7 +18,7 @@ from pydantic import Field, model_validator
18
18
  from pydantic_config import BaseConfig
19
19
  from renderers import RendererConfig
20
20
 
21
- from verifiers.v1.utils.prime_config import load_prime_config
21
+ from verifiers.v1.utils.prime import load_prime_config
22
22
 
23
23
  DEFAULT_PRIME_INFERENCE_URL = "https://api.pinference.ai/api/v1"
24
24
 
@@ -11,6 +11,7 @@ from typing import Literal
11
11
  from verifiers.v1.interception.tunnel.base import BaseTunnelConfig, Tunnel
12
12
  from verifiers.v1.runtimes.limiters import creation_limiter
13
13
  from verifiers.v1.utils.aio import run_shielded
14
+ from verifiers.v1.utils.prime import ensure_prime_auth
14
15
 
15
16
  # The prime_tunnel service caps tunnel starts at 512/min per API token — a property of the
16
17
  # tunnel service, shared by every process for the user that opens one. One user-global
@@ -27,6 +28,10 @@ class PrimeTunnelConfig(BaseTunnelConfig):
27
28
 
28
29
 
29
30
  class PrimeTunnel(Tunnel[PrimeTunnelConfig]):
31
+ def __init__(self, config: PrimeTunnelConfig | None = None) -> None:
32
+ ensure_prime_auth()
33
+ super().__init__(config)
34
+
30
35
  @contextlib.asynccontextmanager
31
36
  async def expose(self, port: int) -> AsyncIterator[str]:
32
37
  """Bridge the host `port` to a public URL via prime_tunnel (frpc). Tunnel creation
@@ -85,6 +85,7 @@ class Rollout:
85
85
  task=TraceTask(
86
86
  type=type(task).__name__,
87
87
  data=task.data,
88
+ key=task.key,
88
89
  hash=task.hash,
89
90
  ),
90
91
  state=state_cls(type(task))(),
@@ -31,6 +31,7 @@ from verifiers.v1.runtimes.base import (
31
31
  parse_gpu,
32
32
  )
33
33
  from verifiers.v1.runtimes.limiters import creation_limiter
34
+ from verifiers.v1.utils.prime import ensure_prime_auth
34
35
 
35
36
  logger = logging.getLogger(__name__)
36
37
 
@@ -46,7 +47,7 @@ class PrimeConfig(NetworkPolicyConfig):
46
47
  ~10 minutes) and caches the result, so later sandboxes on the same ref start in
47
48
  seconds."""
48
49
  workdir: str = "/app"
49
- vm: bool = False
50
+ vm: bool = True
50
51
  """Run as a micro-VM rather than a container (kernel features / stronger isolation)."""
51
52
  guaranteed: bool = False
52
53
  """Request guaranteed (vs best-effort) capacity."""
@@ -125,6 +126,7 @@ class PrimeRuntime(Runtime):
125
126
  is_local: ClassVar[bool] = False
126
127
 
127
128
  def __init__(self, config: PrimeConfig, name: str | None = None) -> None:
129
+ ensure_prime_auth()
128
130
  super().__init__(name)
129
131
  self.config = config
130
132
  self.info = PrimeRuntimeInfo(**config.model_dump())
@@ -144,10 +144,20 @@ class Task(Generic[DataT, StateT, ConfigT]):
144
144
 
145
145
  @property
146
146
  def hash(self) -> str:
147
- """Content hash of the task's wire data the identity that matches saved
148
- rollouts to tasks; recorded on the trace as `task.hash`."""
147
+ """Content hash of the task's wire data, recorded on the trace as
148
+ ``task.hash``."""
149
149
  return task_key(self.data.model_dump(mode="json", exclude_none=True))
150
150
 
151
+ @property
152
+ def key(self) -> str:
153
+ """Stable task identity, recorded on the trace as ``task.key``.
154
+
155
+ The content hash is the default. Override this when the task data contains
156
+ run-local fields such as an autogenerated ``idx`` and the underlying dataset
157
+ provides a durable identifier. Keys must be unique within a taskset.
158
+ """
159
+ return self.hash
160
+
151
161
  def with_system_prompt(self, system_prompt: str) -> Self:
152
162
  clone = copy.copy(self)
153
163
  clone.data = self.data.model_copy(update={"system_prompt": system_prompt})
@@ -122,8 +122,10 @@ class TraceTask(BaseModel, Generic[DataT]):
122
122
  """The Task class name (`type(task).__name__`)."""
123
123
  data: DataT
124
124
  """The (immutable) row being solved."""
125
+ key: str | None = None
126
+ """Stable task identity (``Task.key``); defaults to the content hash unless overridden."""
125
127
  hash: str | None = None
126
- """Content hash of `data` (`Task.hash`) — the task's identity across runs."""
128
+ """Content hash of ``data`` (``Task.hash``)."""
127
129
 
128
130
 
129
131
  class InterceptRecord(BaseModel):
@@ -17,7 +17,7 @@ import httpx
17
17
  from verifiers.v1.configs.cli.eval import EvalConfig
18
18
  from verifiers.v1.episode import Episode
19
19
  from verifiers.v1.trace import Trace
20
- from verifiers.v1.utils.prime_config import load_prime_config
20
+ from verifiers.v1.utils.prime import load_prime_config
21
21
 
22
22
  logger = logging.getLogger(__name__)
23
23
 
@@ -1,5 +1,6 @@
1
1
  import json
2
2
  import logging
3
+ import os
3
4
  from pathlib import Path
4
5
 
5
6
  logger = logging.getLogger(__name__)
@@ -17,3 +18,12 @@ def load_prime_config() -> dict:
17
18
  except (RuntimeError, json.JSONDecodeError, OSError) as e:
18
19
  logger.warning(f"Failed to load prime config: {e}")
19
20
  return {}
21
+
22
+
23
+ def ensure_prime_auth() -> None:
24
+ """Exit when no Prime API key is configured (`prime login` or `$PRIME_API_KEY`)."""
25
+ if os.getenv("PRIME_API_KEY") or load_prime_config().get("api_key"):
26
+ return
27
+ raise SystemExit(
28
+ "not authenticated with prime - run `prime login` or set $PRIME_API_KEY"
29
+ )
File without changes