verifiers 0.2.1.dev37__tar.gz → 0.2.1.dev39__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.
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/PKG-INFO +1 -1
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/__init__.py +3 -0
- verifiers-0.2.1.dev39/verifiers/v1/harnesses/pi/__init__.py +3 -0
- verifiers-0.2.1.dev39/verifiers/v1/harnesses/pi/harness.py +264 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/harbor/taskset.py +4 -5
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/lean/taskset.py +19 -25
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/.gitignore +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/LICENSE +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/pyproject.toml +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/AGENTS.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/conftest.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_browser_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_build_script.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_client_config.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_composable_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_env_group.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_env_server.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_environment.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_environment_extra.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_envs.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_error_chain.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_eval_display.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_eval_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_gym_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_imports.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_init_script.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_install_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_interception_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_logging.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_math_rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_message_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_openenv_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_path_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_renderer_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_rubric_group.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_save_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_setup_script.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_think_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_tool_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_tool_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_types.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_wordle_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_xml_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/conftest.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/echo_multi_v0.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/echo_v0.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_configs.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_envs.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_graph.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_judges.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_legacy.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/v1/test_trace.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/cli/tui.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/openai_completions_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/openai_responses_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/clients/renderer_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/decorators.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/AGENTS.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/env_group.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/environment.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/task.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/openseeker/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/openseeker/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/openseeker/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/api_tools/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/api_tools/tool_pdf.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/eval_toolkit.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/evaluator.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/llm_client/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/llm_client/base_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/prompts/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/prompts/cache_prompts.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/cache_filesys.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/load_eval_script.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/misc.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/tool_visit.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/url_tools.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/verification_tree.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/open_ended.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/quest/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/search/search_tasksets.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/gym_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/multiturn_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/sandbox_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/stateful_tool_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/envs/tool_env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/errors.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/gepa/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/gepa/adapter.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/gepa/config.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/gepa/display.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/gepa/gepa_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/parsers/parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/parsers/think_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/parsers/xml_parser.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/rubrics/judge_rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/rubrics/math_rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/rubrics/rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/build.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/eval.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/gepa.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/init.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/install.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/setup.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/client/env_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/server/env_router.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/server/env_worker.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/serve/types.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/types.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/async_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/client_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/data_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/display_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/env_config_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/env_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/error_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/eval_display.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/eval_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/heartbeat.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/install_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/interception_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/logging_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/message_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/metric_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/process_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/save_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/thread_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/usage_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/utils/version_utils.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/serve.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/clients/config.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/debug.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/eval.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/init.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/replay.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/configs/validate.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/decorators.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/env.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/episode.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/errors.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/graph.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/default/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/default/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/default/program.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/null/program.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/judge.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/legacy.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/loaders.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/mcp/user.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/push.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/retries.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/docker.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/scoring.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/session.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/state.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/task.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/trace.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/types.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/install.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/verifiers/v1/utils/sampling.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.2.1.
|
|
3
|
+
Version: 0.2.1.dev39
|
|
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
|
|
@@ -6,6 +6,7 @@ from verifiers.v1.harnesses.mini_swe_agent import (
|
|
|
6
6
|
MiniSWEAgentHarnessConfig,
|
|
7
7
|
)
|
|
8
8
|
from verifiers.v1.harnesses.null import NullHarness, NullHarnessConfig
|
|
9
|
+
from verifiers.v1.harnesses.pi import PiHarness, PiHarnessConfig
|
|
9
10
|
from verifiers.v1.harnesses.rlm import RLMHarness, RLMHarnessConfig
|
|
10
11
|
from verifiers.v1.harnesses.terminus_2 import Terminus2Harness, Terminus2HarnessConfig
|
|
11
12
|
|
|
@@ -18,6 +19,8 @@ __all__ = [
|
|
|
18
19
|
"KimiCodeHarnessConfig",
|
|
19
20
|
"NullHarness",
|
|
20
21
|
"NullHarnessConfig",
|
|
22
|
+
"PiHarness",
|
|
23
|
+
"PiHarnessConfig",
|
|
21
24
|
"MiniSWEAgentHarness",
|
|
22
25
|
"MiniSWEAgentHarnessConfig",
|
|
23
26
|
"RLMHarness",
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"""Pi reaches interception through a custom OpenAI-compatible provider.
|
|
2
|
+
|
|
3
|
+
Pi intentionally leaves MCP to extensions, so the harness always installs and loads the
|
|
4
|
+
pi-mcp-adapter package.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import base64
|
|
8
|
+
import json
|
|
9
|
+
import logging
|
|
10
|
+
import re
|
|
11
|
+
import shlex
|
|
12
|
+
|
|
13
|
+
from verifiers.v1.clients import ModelContext
|
|
14
|
+
from verifiers.v1.harness import Harness, HarnessConfig
|
|
15
|
+
from verifiers.v1.runtimes import ProgramResult, Runtime
|
|
16
|
+
from verifiers.v1.trace import Trace
|
|
17
|
+
from verifiers.v1.types import SystemMessage, TextContentPart, UserMessage
|
|
18
|
+
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
PROVIDER = "intercept"
|
|
22
|
+
KEY_VAR = "PI_INTERCEPT_KEY"
|
|
23
|
+
VERSION_VAR = "VF_PI_VERSION"
|
|
24
|
+
MCP_VERSION_VAR = "VF_PI_MCP_VERSION"
|
|
25
|
+
HOME_VAR = "VF_PI_ORIGINAL_HOME"
|
|
26
|
+
|
|
27
|
+
PI_DIR = "/tmp/vf-pi"
|
|
28
|
+
PI_BIN = f"{PI_DIR}/pi"
|
|
29
|
+
MCP_VERSION = "2.11.0"
|
|
30
|
+
MCP_ADAPTER = f"{PI_DIR}/mcp/node_modules/pi-mcp-adapter/index.ts"
|
|
31
|
+
|
|
32
|
+
INSTALL = r"""
|
|
33
|
+
set -e
|
|
34
|
+
dir=/tmp/vf-pi
|
|
35
|
+
bin="$dir/pi"
|
|
36
|
+
mcp="$dir/mcp"
|
|
37
|
+
|
|
38
|
+
if ! command -v curl >/dev/null 2>&1 || ! command -v npm >/dev/null 2>&1; then
|
|
39
|
+
{ apt-get update -qq && apt-get install -y -qq curl ca-certificates nodejs npm >/dev/null; } \
|
|
40
|
+
|| apk add --no-cache curl ca-certificates nodejs npm >/dev/null
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
if [ ! -x "$bin" ] || [ "$("$bin" --version 2>/dev/null)" != "$VF_PI_VERSION" ]; then
|
|
44
|
+
case "$(uname -m)" in aarch64|arm64) arch=arm64 ;; *) arch=x64 ;; esac
|
|
45
|
+
curl -fsSL "https://github.com/earendil-works/pi/releases/download/v$VF_PI_VERSION/pi-linux-${arch}.tar.gz" \
|
|
46
|
+
| tar -xz -C "$dir" --strip-components=1
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
[ "$(node -p "require('$mcp/node_modules/pi-mcp-adapter/package.json').version" 2>/dev/null)" = "$VF_PI_MCP_VERSION" ] \
|
|
50
|
+
|| npm install --prefix "$mcp" --ignore-scripts --no-audit --no-fund --omit=dev \
|
|
51
|
+
"pi-mcp-adapter@$VF_PI_MCP_VERSION" >/dev/null
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
# pi-mcp-adapter treats --mcp-config as additive, so isolate its automatic discovery
|
|
55
|
+
# roots, then restore Pi's task environment before agent tools run.
|
|
56
|
+
MCP_WRAPPER = f"""
|
|
57
|
+
export default async function isolatedMcp(pi) {{
|
|
58
|
+
const agentDir = process.env.PI_CODING_AGENT_DIR;
|
|
59
|
+
if (!agentDir) throw new Error("PI_CODING_AGENT_DIR is required");
|
|
60
|
+
|
|
61
|
+
const cwd = process.cwd();
|
|
62
|
+
const home = process.env.{HOME_VAR};
|
|
63
|
+
process.chdir(agentDir);
|
|
64
|
+
process.env.HOME = agentDir;
|
|
65
|
+
try {{
|
|
66
|
+
const {{ default: mcpAdapter }} = await import("{MCP_ADAPTER}");
|
|
67
|
+
const isolatedPi = {{
|
|
68
|
+
...pi,
|
|
69
|
+
on(event, handler) {{
|
|
70
|
+
pi.on(
|
|
71
|
+
event,
|
|
72
|
+
event === "session_start"
|
|
73
|
+
? (event, ctx) => handler(event, {{ ...ctx, cwd: agentDir }})
|
|
74
|
+
: handler,
|
|
75
|
+
);
|
|
76
|
+
}},
|
|
77
|
+
}};
|
|
78
|
+
mcpAdapter(isolatedPi);
|
|
79
|
+
}} finally {{
|
|
80
|
+
process.chdir(cwd);
|
|
81
|
+
if (home === undefined) delete process.env.HOME;
|
|
82
|
+
else process.env.HOME = home;
|
|
83
|
+
delete process.env.{HOME_VAR};
|
|
84
|
+
}}
|
|
85
|
+
}}
|
|
86
|
+
""".strip()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class PiHarnessConfig(HarnessConfig):
|
|
90
|
+
version: str = "0.80.6"
|
|
91
|
+
"""Pi release to install, pinned for reproducibility."""
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
class PiHarness(Harness[PiHarnessConfig]):
|
|
95
|
+
APPENDS_SYSTEM_PROMPT = True
|
|
96
|
+
SUPPORTS_MCP = True
|
|
97
|
+
SUPPORTS_MESSAGE_PROMPT = True
|
|
98
|
+
|
|
99
|
+
async def setup(self, runtime: Runtime) -> None:
|
|
100
|
+
logger.info(
|
|
101
|
+
"pi: ensuring Pi %s and pi-mcp-adapter %s are installed",
|
|
102
|
+
self.config.version,
|
|
103
|
+
MCP_VERSION,
|
|
104
|
+
)
|
|
105
|
+
lock = f"{PI_DIR}/install.lock"
|
|
106
|
+
guarded = (
|
|
107
|
+
f"mkdir -p {PI_DIR} && "
|
|
108
|
+
f'until ln -s "$$" {lock} 2>/dev/null; do '
|
|
109
|
+
f"owner=$(readlink {lock}); "
|
|
110
|
+
f'if ! kill -0 "$owner" 2>/dev/null; then '
|
|
111
|
+
f'[ "$(readlink {lock})" != "$owner" ] || rm -f {lock}; fi; '
|
|
112
|
+
f"sleep 0.1; done; "
|
|
113
|
+
f'trap \'[ "$(readlink {lock})" != "$$" ] || rm -f {lock}\' EXIT; '
|
|
114
|
+
f"sh -c {shlex.quote(INSTALL)}"
|
|
115
|
+
)
|
|
116
|
+
install = await runtime.run(
|
|
117
|
+
["sh", "-c", guarded],
|
|
118
|
+
{VERSION_VAR: self.config.version, MCP_VERSION_VAR: MCP_VERSION},
|
|
119
|
+
)
|
|
120
|
+
if install.exit_code != 0:
|
|
121
|
+
raise RuntimeError(f"pi install failed: {install.stderr.strip()[-500:]}")
|
|
122
|
+
|
|
123
|
+
async def launch(
|
|
124
|
+
self,
|
|
125
|
+
ctx: ModelContext,
|
|
126
|
+
trace: Trace,
|
|
127
|
+
runtime: Runtime,
|
|
128
|
+
endpoint: str,
|
|
129
|
+
secret: str,
|
|
130
|
+
mcp_urls: dict[str, str],
|
|
131
|
+
) -> ProgramResult:
|
|
132
|
+
system_prompt, prompt = self.resolve_prompt(trace.task.data)
|
|
133
|
+
|
|
134
|
+
agent_dir = f"{PI_DIR}/agent-{trace.id}"
|
|
135
|
+
image_args: list[str] = []
|
|
136
|
+
if prompt is not None and not isinstance(prompt, str):
|
|
137
|
+
system_texts = [system_prompt] if system_prompt else []
|
|
138
|
+
texts: list[str] = []
|
|
139
|
+
image_index = 0
|
|
140
|
+
for message in prompt:
|
|
141
|
+
if not isinstance(message, (SystemMessage, UserMessage)):
|
|
142
|
+
raise ValueError(
|
|
143
|
+
"Pi print mode only supports system and user initial messages"
|
|
144
|
+
)
|
|
145
|
+
parts = (
|
|
146
|
+
[TextContentPart(text=message.content)]
|
|
147
|
+
if isinstance(message.content, str)
|
|
148
|
+
else message.content
|
|
149
|
+
)
|
|
150
|
+
for part in parts:
|
|
151
|
+
if isinstance(part, TextContentPart):
|
|
152
|
+
(system_texts if message.role == "system" else texts).append(
|
|
153
|
+
part.text
|
|
154
|
+
)
|
|
155
|
+
continue
|
|
156
|
+
metadata, separator, encoded = part.image_url.url.partition(",")
|
|
157
|
+
media_type, *parameters = metadata.removeprefix("data:").split(";")
|
|
158
|
+
if (
|
|
159
|
+
not separator
|
|
160
|
+
or not metadata.startswith("data:image/")
|
|
161
|
+
or not any(p.lower() == "base64" for p in parameters)
|
|
162
|
+
):
|
|
163
|
+
raise ValueError(
|
|
164
|
+
"Pi image prompts require base64 data:image URLs"
|
|
165
|
+
)
|
|
166
|
+
extension = re.sub(
|
|
167
|
+
r"[^a-zA-Z0-9]+", "_", media_type.removeprefix("image/")
|
|
168
|
+
).strip("_")
|
|
169
|
+
path = (
|
|
170
|
+
f"{agent_dir}/images/image_{image_index}.{extension or 'image'}"
|
|
171
|
+
)
|
|
172
|
+
await runtime.write(path, base64.b64decode(encoded))
|
|
173
|
+
image_args.append(f"@{path}")
|
|
174
|
+
image_index += 1
|
|
175
|
+
system_prompt = "\n\n".join(system_texts) or None
|
|
176
|
+
prompt = "\n\n".join(texts)
|
|
177
|
+
if prompt is None:
|
|
178
|
+
raise ValueError("Pi requires a task prompt (it has no user simulator)")
|
|
179
|
+
|
|
180
|
+
reasoning = ctx.sampling.reasoning_effort not in (
|
|
181
|
+
None,
|
|
182
|
+
"none",
|
|
183
|
+
) or ctx.model.rsplit("/", 1)[-1].startswith(("gpt-5", "o1", "o3", "o4"))
|
|
184
|
+
models = {
|
|
185
|
+
"providers": {
|
|
186
|
+
PROVIDER: {
|
|
187
|
+
"baseUrl": endpoint,
|
|
188
|
+
"api": "openai-completions",
|
|
189
|
+
"apiKey": f"${KEY_VAR}",
|
|
190
|
+
"models": [
|
|
191
|
+
{
|
|
192
|
+
"id": ctx.model,
|
|
193
|
+
"reasoning": reasoning,
|
|
194
|
+
"input": ["text", "image"],
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
prompt_path = f"{agent_dir}/prompt.txt"
|
|
201
|
+
await runtime.write(prompt_path, prompt.encode())
|
|
202
|
+
await runtime.write(f"{agent_dir}/models.json", json.dumps(models).encode())
|
|
203
|
+
|
|
204
|
+
launch = 'exec "$@" < "$0"'
|
|
205
|
+
mcp_args: list[str] = []
|
|
206
|
+
if mcp_urls:
|
|
207
|
+
extension_path = f"{agent_dir}/mcp.js"
|
|
208
|
+
mcp = {
|
|
209
|
+
"mcpServers": {
|
|
210
|
+
name: {"url": url, "lifecycle": "eager"}
|
|
211
|
+
for name, url in mcp_urls.items()
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
await runtime.write(f"{agent_dir}/mcp.json", json.dumps(mcp).encode())
|
|
215
|
+
await runtime.write(extension_path, MCP_WRAPPER.encode())
|
|
216
|
+
mcp_args = [
|
|
217
|
+
"--extension",
|
|
218
|
+
extension_path,
|
|
219
|
+
"--mcp-config",
|
|
220
|
+
f"{agent_dir}/mcp.json",
|
|
221
|
+
]
|
|
222
|
+
# Isolate adapter global discovery before Bun caches HOME.
|
|
223
|
+
launch = f'export {HOME_VAR}="$HOME"; export HOME="$PI_CODING_AGENT_DIR"; {launch}'
|
|
224
|
+
|
|
225
|
+
env = {
|
|
226
|
+
**self.config.resolved_env,
|
|
227
|
+
KEY_VAR: secret,
|
|
228
|
+
"PI_CODING_AGENT_DIR": agent_dir,
|
|
229
|
+
"PI_OFFLINE": "1",
|
|
230
|
+
"PI_TELEMETRY": "0",
|
|
231
|
+
}
|
|
232
|
+
tool_args = (
|
|
233
|
+
["--exclude-tools", ",".join(self.config.disabled_tools)]
|
|
234
|
+
if self.config.disabled_tools
|
|
235
|
+
else []
|
|
236
|
+
)
|
|
237
|
+
system_args = ["--append-system-prompt", system_prompt] if system_prompt else []
|
|
238
|
+
argv = [
|
|
239
|
+
"sh",
|
|
240
|
+
"-c",
|
|
241
|
+
# Pi has no `--` terminator, so the prompt must not be parsed as argv.
|
|
242
|
+
launch,
|
|
243
|
+
prompt_path,
|
|
244
|
+
PI_BIN,
|
|
245
|
+
"--print",
|
|
246
|
+
"--no-session",
|
|
247
|
+
"--no-approve",
|
|
248
|
+
"--offline",
|
|
249
|
+
"--provider",
|
|
250
|
+
PROVIDER,
|
|
251
|
+
"--model",
|
|
252
|
+
ctx.model,
|
|
253
|
+
*mcp_args,
|
|
254
|
+
*tool_args,
|
|
255
|
+
*system_args,
|
|
256
|
+
*image_args,
|
|
257
|
+
]
|
|
258
|
+
try:
|
|
259
|
+
return await runtime.run_program(argv, env)
|
|
260
|
+
finally:
|
|
261
|
+
try:
|
|
262
|
+
await runtime.run(["rm", "-rf", agent_dir], {})
|
|
263
|
+
except Exception:
|
|
264
|
+
logger.warning("failed to clean up Pi agent directory", exc_info=True)
|
|
@@ -18,6 +18,7 @@ import sys
|
|
|
18
18
|
import tarfile
|
|
19
19
|
import tempfile
|
|
20
20
|
import tomllib
|
|
21
|
+
from collections.abc import Iterator
|
|
21
22
|
from functools import lru_cache
|
|
22
23
|
from pathlib import Path
|
|
23
24
|
|
|
@@ -311,7 +312,7 @@ def make_tar(directory: Path) -> bytes:
|
|
|
311
312
|
|
|
312
313
|
|
|
313
314
|
class HarborTaskset(Taskset[HarborTask, HarborConfig]):
|
|
314
|
-
def load(self) ->
|
|
315
|
+
def load(self) -> Iterator[HarborTask]:
|
|
315
316
|
root = dataset_dir(self.config)
|
|
316
317
|
task_dirs = [
|
|
317
318
|
toml_path.parent
|
|
@@ -323,7 +324,5 @@ class HarborTaskset(Taskset[HarborTask, HarborConfig]):
|
|
|
323
324
|
]
|
|
324
325
|
if not task_dirs:
|
|
325
326
|
raise ValueError(f"no harbor tasks found in {root}")
|
|
326
|
-
|
|
327
|
-
HarborTask(parse_task(task_dir, idx, self.config), self.config.task)
|
|
328
|
-
for idx, task_dir in enumerate(task_dirs)
|
|
329
|
-
]
|
|
327
|
+
for idx, task_dir in enumerate(task_dirs):
|
|
328
|
+
yield HarborTask(parse_task(task_dir, idx, self.config), self.config.task)
|
|
@@ -10,6 +10,7 @@ taskset and only supply column mappings.
|
|
|
10
10
|
from __future__ import annotations
|
|
11
11
|
|
|
12
12
|
import shlex
|
|
13
|
+
from collections.abc import Iterator
|
|
13
14
|
|
|
14
15
|
from pydantic_config import BaseConfig
|
|
15
16
|
|
|
@@ -142,7 +143,7 @@ class LeanTask(Task[LeanData, State, LeanTaskConfig]):
|
|
|
142
143
|
|
|
143
144
|
|
|
144
145
|
class LeanTaskset(Taskset[LeanTask, LeanConfig]):
|
|
145
|
-
def load(self) ->
|
|
146
|
+
def load(self) -> Iterator[LeanTask]:
|
|
146
147
|
from datasets import load_dataset
|
|
147
148
|
|
|
148
149
|
config = self.config
|
|
@@ -151,7 +152,6 @@ class LeanTaskset(Taskset[LeanTask, LeanConfig]):
|
|
|
151
152
|
ds.name,
|
|
152
153
|
ds.subset,
|
|
153
154
|
split=ds.split,
|
|
154
|
-
keep_in_memory=True,
|
|
155
155
|
num_proc=8,
|
|
156
156
|
)
|
|
157
157
|
|
|
@@ -169,7 +169,6 @@ class LeanTaskset(Taskset[LeanTask, LeanConfig]):
|
|
|
169
169
|
)
|
|
170
170
|
|
|
171
171
|
resources = TaskResources(cpu=4, memory=4, disk=10)
|
|
172
|
-
tasks: list[LeanTask] = []
|
|
173
172
|
for index, row in enumerate(raw):
|
|
174
173
|
# An empty statement would reduce the signature guard to `:= by`.
|
|
175
174
|
formal_statement = row[ds.statement_column]
|
|
@@ -181,29 +180,24 @@ class LeanTaskset(Taskset[LeanTask, LeanConfig]):
|
|
|
181
180
|
imports = row.get(ds.imports_column) or "import Mathlib"
|
|
182
181
|
gold = row.get(ds.proof_column) or ""
|
|
183
182
|
name = row.get(ds.name_column)
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
formal_proof=gold,
|
|
202
|
-
),
|
|
203
|
-
self.config.task,
|
|
204
|
-
)
|
|
183
|
+
yield LeanTask(
|
|
184
|
+
LeanData(
|
|
185
|
+
idx=index,
|
|
186
|
+
name=str(name) if name else f"task_{index:05d}",
|
|
187
|
+
prompt=self._build_prompt(formal_statement, header),
|
|
188
|
+
system_prompt=config.system_prompt,
|
|
189
|
+
image=config.docker_image,
|
|
190
|
+
workdir=config.task.lean_project_path,
|
|
191
|
+
resources=resources,
|
|
192
|
+
formal_statement=formal_statement,
|
|
193
|
+
header=header,
|
|
194
|
+
imports=imports,
|
|
195
|
+
normalize_mathlib_imports=ds.normalize_mathlib_imports,
|
|
196
|
+
protected_signature=expected_protected_signature(formal_statement),
|
|
197
|
+
formal_proof=gold,
|
|
198
|
+
),
|
|
199
|
+
self.config.task,
|
|
205
200
|
)
|
|
206
|
-
return tasks
|
|
207
201
|
|
|
208
202
|
def _build_prompt(self, formal_statement: str, header: str) -> str:
|
|
209
203
|
cfg = self.config
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.2.1.dev37 → verifiers-0.2.1.dev39}/tests/test_openai_chat_completions_token_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|