verifiers 0.2.1.dev47__tar.gz → 0.2.1.dev49__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.dev47 → verifiers-0.2.1.dev49}/PKG-INFO +2 -2
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/pyproject.toml +1 -1
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/conftest.py +6 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/conftest.py +10 -8
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_e2e.py +2 -2
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/dashboard/eval.py +8 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/__init__.py +6 -0
- verifiers-0.2.1.dev49/verifiers/v1/harnesses/claude_code/__init__.py +6 -0
- verifiers-0.2.1.dev49/verifiers/v1/harnesses/claude_code/harness.py +102 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/prime.py +20 -1
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/.gitignore +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/LICENSE +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/AGENTS.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_browser_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_build_script.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_client_config.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_composable_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_env_group.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_env_server.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_environment.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_environment_extra.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_envs.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_error_chain.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_eval_display.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_eval_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_gym_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_imports.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_init_script.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_install_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_interception_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_logging.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_math_rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_message_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_openenv_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_path_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_renderer_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_rubric_group.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_save_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_setup_script.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_think_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_tool_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_tool_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_types.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_wordle_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/test_xml_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/echo_multi_v0.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/echo_v0.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_configs.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_envs.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_graph.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_judges.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_legacy.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/tests/v1/test_trace.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/cli/tui.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_completions_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_responses_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/renderer_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/decorators.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/AGENTS.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/env_group.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/environment.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/task.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/openseeker/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/openseeker/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/openseeker/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/api_tools/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/api_tools/tool_pdf.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/eval_toolkit.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/evaluator.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/llm_client/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/llm_client/base_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/prompts/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/prompts/cache_prompts.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/cache_filesys.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/load_eval_script.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/misc.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/tool_visit.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/url_tools.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/verification_tree.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/open_ended.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/quest/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/search/search_tasksets.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/gym_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/multiturn_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/sandbox_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/stateful_tool_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/tool_env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/errors.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/gepa/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/gepa/adapter.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/gepa/config.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/gepa/display.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/gepa/gepa_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/parsers/parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/parsers/think_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/parsers/xml_parser.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/rubrics/judge_rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/rubrics/math_rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/rubrics/rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/build.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/eval.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/gepa.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/init.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/install.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/setup.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/client/env_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/server/env_router.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/server/env_worker.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/serve/types.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/types.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/async_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/client_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/data_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/display_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/env_config_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/env_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/error_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/eval_display.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/eval_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/heartbeat.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/install_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/interception_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/logging_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/message_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/metric_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/process_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/save_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/thread_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/usage_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/utils/version_utils.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/serve.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/clients/config.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/debug.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/eval.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/init.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/replay.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/configs/validate.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/decorators.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/env.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/episode.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/errors.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/graph.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/default/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/default/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/default/program.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/null/program.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/judge.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/legacy.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/loaders.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/mcp/user.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/push.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/retries.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/docker.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/scoring.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/session.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/state.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/task.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/trace.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/types.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/install.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/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.dev49
|
|
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
|
|
@@ -35,7 +35,7 @@ Requires-Dist: numpy
|
|
|
35
35
|
Requires-Dist: openai-agents>=0.0.7
|
|
36
36
|
Requires-Dist: openai>=1.108.1
|
|
37
37
|
Requires-Dist: prime-pydantic-config[toml]>=0.3.0.dev86
|
|
38
|
-
Requires-Dist: prime-sandboxes>=0.2.
|
|
38
|
+
Requires-Dist: prime-sandboxes>=0.2.31
|
|
39
39
|
Requires-Dist: prime-tunnel>=0.1.8
|
|
40
40
|
Requires-Dist: pydantic>=2.11.9
|
|
41
41
|
Requires-Dist: pyzmq>=27.1.0
|
|
@@ -39,6 +39,12 @@ from verifiers.types import (
|
|
|
39
39
|
from verifiers.utils.save_utils import state_to_output
|
|
40
40
|
|
|
41
41
|
|
|
42
|
+
def pytest_configure(config) -> None:
|
|
43
|
+
config.addinivalue_line(
|
|
44
|
+
"markers", "claude_code: v1 e2e cases on the claude-code harness"
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
42
48
|
@pytest.fixture
|
|
43
49
|
def basic_parser():
|
|
44
50
|
"""Return a basic Parser instance."""
|
|
@@ -20,10 +20,11 @@ Every matrix value carries a pytest mark, so subsets select with `-m`:
|
|
|
20
20
|
uv run pytest tests/v1 -n auto -m modal # only modal (needs local setup)
|
|
21
21
|
|
|
22
22
|
Marks: runtimes `subprocess` / `docker` / `prime` / `modal`, placement `colocated`,
|
|
23
|
-
harnesses `null` / `default` / `rlm` / `kimi_code` / `codex`. A mark is applied per
|
|
24
|
-
selects every case touching that value on ANY axis; for one exact combination use `-k`
|
|
25
|
-
id (e.g. `-k "harness-in-docker-with-tool-in-subprocess"`). prime/modal provision real
|
|
26
|
-
sandboxes (slow, infra-flaky, need setup), so they're local-only — CI runs
|
|
23
|
+
harnesses `null` / `default` / `rlm` / `kimi_code` / `codex` / `claude_code`. A mark is applied per
|
|
24
|
+
axis, so it selects every case touching that value on ANY axis; for one exact combination use `-k`
|
|
25
|
+
on the test id (e.g. `-k "harness-in-docker-with-tool-in-subprocess"`). prime/modal provision real
|
|
26
|
+
remote sandboxes (slow, infra-flaky, need setup), so they're local-only — CI runs
|
|
27
|
+
`-m "not prime and not modal"`.
|
|
27
28
|
"""
|
|
28
29
|
|
|
29
30
|
import os
|
|
@@ -104,10 +105,10 @@ def tool_runtime(request) -> dict:
|
|
|
104
105
|
|
|
105
106
|
|
|
106
107
|
# Harnesses, composed with the runtime fixtures, each carrying its harness mark (`-m default`, ...).
|
|
107
|
-
# Built-ins are bundled in the `harnesses` package; the agent CLIs (`rlm` / `kimi-code` / `codex`
|
|
108
|
-
# install their dependencies at rollout. `compact` (an example harness) and
|
|
109
|
-
# the host tmux) are excluded. `test_agentic` skips `null` (a chat loop with no
|
|
110
|
-
# `test_single_turn` skips
|
|
108
|
+
# Built-ins are bundled in the `harnesses` package; the agent CLIs (`rlm` / `kimi-code` / `codex` /
|
|
109
|
+
# `claude-code`) install their dependencies at rollout. `compact` (an example harness) and
|
|
110
|
+
# `terminus-2` (drives the host tmux) are excluded. `test_agentic` skips `null` (a chat loop with no
|
|
111
|
+
# shell); `test_single_turn` skips the coding agents, which are unreliable on a no-op echo.
|
|
111
112
|
@pytest.fixture(
|
|
112
113
|
params=[
|
|
113
114
|
pytest.param("null", marks=pytest.mark.null, id="null"),
|
|
@@ -115,6 +116,7 @@ def tool_runtime(request) -> dict:
|
|
|
115
116
|
pytest.param("rlm", marks=pytest.mark.rlm, id="rlm"),
|
|
116
117
|
pytest.param("kimi-code", marks=pytest.mark.kimi_code, id="kimi-code"),
|
|
117
118
|
pytest.param("codex", marks=pytest.mark.codex, id="codex"),
|
|
119
|
+
pytest.param("claude-code", marks=pytest.mark.claude_code, id="claude-code"),
|
|
118
120
|
]
|
|
119
121
|
)
|
|
120
122
|
def harness(request) -> str:
|
|
@@ -6,8 +6,8 @@ import pytest
|
|
|
6
6
|
@pytest.mark.e2e
|
|
7
7
|
async def test_single_turn(run_v1, harness, harness_runtime, tmp_path):
|
|
8
8
|
"""Single-turn (echo a short phrase back)."""
|
|
9
|
-
if harness
|
|
10
|
-
pytest.skip("
|
|
9
|
+
if harness in {"codex", "claude-code"}:
|
|
10
|
+
pytest.skip("coding agents are not reliable on a no-op echo chat task")
|
|
11
11
|
(trace,) = await run_v1(
|
|
12
12
|
"echo-v1",
|
|
13
13
|
harness=harness,
|
|
@@ -41,6 +41,7 @@ _LABEL_WIDTH = len("timeouts")
|
|
|
41
41
|
_STYLE = {
|
|
42
42
|
"pending": "dim",
|
|
43
43
|
"boot": "orange3",
|
|
44
|
+
"build": "dark_orange",
|
|
44
45
|
"setup": "yellow",
|
|
45
46
|
"running": "cyan",
|
|
46
47
|
"finalize": "magenta",
|
|
@@ -51,6 +52,7 @@ _STYLE = {
|
|
|
51
52
|
_MARK_LABEL = {
|
|
52
53
|
"pending": "pending",
|
|
53
54
|
"boot": "boot",
|
|
55
|
+
"build": "build",
|
|
54
56
|
"setup": "setup",
|
|
55
57
|
"running": "rollout",
|
|
56
58
|
"finalize": "finalize",
|
|
@@ -445,6 +447,12 @@ def Rows(groups: list[list[Rollout]], now: float, runtime_type: str) -> Table:
|
|
|
445
447
|
stop = f"{stop} (truncated)".strip()
|
|
446
448
|
else:
|
|
447
449
|
state, result, stop = rollout.phase, "", ""
|
|
450
|
+
# A boot stuck on a first-use platform image build reads differently from a
|
|
451
|
+
# normal boot — it can sit here for ~10 minutes (prime runtime only).
|
|
452
|
+
if state == Phase.BOOT and (
|
|
453
|
+
getattr(t.runtime, "image_cached", None) is False
|
|
454
|
+
):
|
|
455
|
+
state = "build"
|
|
448
456
|
runtime_id = t.runtime.id if t.runtime is not None else None
|
|
449
457
|
runtime = f"{runtime_type}({runtime_id})" if runtime_id else runtime_type
|
|
450
458
|
turns = t.num_turns
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
from verifiers.v1.harnesses.claude_code import (
|
|
2
|
+
ClaudeCodeHarness,
|
|
3
|
+
ClaudeCodeHarnessConfig,
|
|
4
|
+
)
|
|
1
5
|
from verifiers.v1.harnesses.codex import CodexHarness, CodexHarnessConfig
|
|
2
6
|
from verifiers.v1.harnesses.default import DefaultHarness, DefaultHarnessConfig
|
|
3
7
|
from verifiers.v1.harnesses.kimi_code import KimiCodeHarness, KimiCodeHarnessConfig
|
|
@@ -11,6 +15,8 @@ from verifiers.v1.harnesses.rlm import RLMHarness, RLMHarnessConfig
|
|
|
11
15
|
from verifiers.v1.harnesses.terminus_2 import Terminus2Harness, Terminus2HarnessConfig
|
|
12
16
|
|
|
13
17
|
__all__ = [
|
|
18
|
+
"ClaudeCodeHarness",
|
|
19
|
+
"ClaudeCodeHarnessConfig",
|
|
14
20
|
"CodexHarness",
|
|
15
21
|
"CodexHarnessConfig",
|
|
16
22
|
"DefaultHarness",
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""Run Claude Code against interception as an Anthropic Messages client."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import shlex
|
|
5
|
+
|
|
6
|
+
from pydantic import Field
|
|
7
|
+
|
|
8
|
+
from verifiers.v1.clients import ModelContext
|
|
9
|
+
from verifiers.v1.harness import Harness, HarnessConfig
|
|
10
|
+
from verifiers.v1.runtimes import ProgramResult, Runtime
|
|
11
|
+
from verifiers.v1.trace import Trace
|
|
12
|
+
|
|
13
|
+
CLAUDE_HOME = "/tmp/vf-claude-code-{version}"
|
|
14
|
+
CLAUDE_BIN = f"{CLAUDE_HOME}/.local/bin/claude"
|
|
15
|
+
CLAUDE_CONFIG_DIR = ".vf-claude"
|
|
16
|
+
INSTALL = """
|
|
17
|
+
set -e
|
|
18
|
+
command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null)
|
|
19
|
+
curl -fsSL https://claude.ai/install.sh | HOME={home} bash -s {version}
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ClaudeCodeHarnessConfig(HarnessConfig):
|
|
24
|
+
version: str = Field(default="2.1.207", pattern=r"^[A-Za-z0-9._+-]+$")
|
|
25
|
+
"""Claude Code release to install; pinned for reproducibility."""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ClaudeCodeHarness(Harness[ClaudeCodeHarnessConfig]):
|
|
29
|
+
APPENDS_SYSTEM_PROMPT = True
|
|
30
|
+
SUPPORTS_MCP = True
|
|
31
|
+
# images would require streaming inputs
|
|
32
|
+
SUPPORTS_MESSAGE_PROMPT = False
|
|
33
|
+
|
|
34
|
+
async def setup(self, runtime: Runtime) -> None:
|
|
35
|
+
home = CLAUDE_HOME.format(version=self.config.version)
|
|
36
|
+
binary = CLAUDE_BIN.format(version=self.config.version)
|
|
37
|
+
script = INSTALL.format(version=self.config.version, home=home)
|
|
38
|
+
# Cache the pinned binary across local rollouts; Linux has flock, macOS has lockf.
|
|
39
|
+
install = shlex.quote(f"[ -x {binary} ] || ({script})")
|
|
40
|
+
guarded = (
|
|
41
|
+
f"mkdir -p {home} && "
|
|
42
|
+
f'"$(command -v flock || command -v lockf)" {home}/install.lock '
|
|
43
|
+
f"bash -o pipefail -c {install}"
|
|
44
|
+
)
|
|
45
|
+
result = await runtime.run(["sh", "-c", guarded], self.config.resolved_env)
|
|
46
|
+
if result.exit_code != 0:
|
|
47
|
+
detail = (result.stderr or result.stdout).strip()[-500:]
|
|
48
|
+
raise RuntimeError(f"Claude Code install failed: {detail}")
|
|
49
|
+
|
|
50
|
+
async def launch(
|
|
51
|
+
self,
|
|
52
|
+
ctx: ModelContext,
|
|
53
|
+
trace: Trace,
|
|
54
|
+
runtime: Runtime,
|
|
55
|
+
endpoint: str,
|
|
56
|
+
secret: str,
|
|
57
|
+
mcp_urls: dict[str, str],
|
|
58
|
+
) -> ProgramResult:
|
|
59
|
+
system_prompt, instruction = self.resolve_prompt(trace.task.data)
|
|
60
|
+
if ctx.client.base_url == "https://api.pinference.ai/api/v1":
|
|
61
|
+
# remove the /v1 from pinference
|
|
62
|
+
ctx.client.base_url = ctx.client.base_url.removesuffix("/v1")
|
|
63
|
+
env = {
|
|
64
|
+
**self.config.resolved_env,
|
|
65
|
+
# Claude appends /v1/messages; give it the interception root, not the model endpoint.
|
|
66
|
+
"ANTHROPIC_BASE_URL": endpoint.removesuffix("/v1"),
|
|
67
|
+
"ANTHROPIC_API_KEY": secret,
|
|
68
|
+
"CLAUDE_CONFIG_DIR": CLAUDE_CONFIG_DIR,
|
|
69
|
+
"DISABLE_AUTOUPDATER": "1",
|
|
70
|
+
"IS_SANDBOX": "1",
|
|
71
|
+
}
|
|
72
|
+
argv = [
|
|
73
|
+
CLAUDE_BIN.format(version=self.config.version),
|
|
74
|
+
"--print",
|
|
75
|
+
"--bare",
|
|
76
|
+
"--dangerously-skip-permissions",
|
|
77
|
+
"--no-session-persistence",
|
|
78
|
+
"--model",
|
|
79
|
+
ctx.model,
|
|
80
|
+
]
|
|
81
|
+
if system_prompt:
|
|
82
|
+
argv += ["--append-system-prompt", system_prompt]
|
|
83
|
+
argv += [
|
|
84
|
+
arg
|
|
85
|
+
for tool in self.config.disabled_tools or []
|
|
86
|
+
for arg in ("--disallowedTools", tool)
|
|
87
|
+
]
|
|
88
|
+
mcp = {
|
|
89
|
+
"mcpServers": {
|
|
90
|
+
name: {"type": "http", "url": url} for name, url in mcp_urls.items()
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
mcp_path = f"{CLAUDE_CONFIG_DIR}/mcp.json"
|
|
94
|
+
await runtime.write(mcp_path, json.dumps(mcp).encode())
|
|
95
|
+
argv += [
|
|
96
|
+
"--mcp-config",
|
|
97
|
+
mcp_path,
|
|
98
|
+
"--strict-mcp-config",
|
|
99
|
+
"--",
|
|
100
|
+
instruction or "",
|
|
101
|
+
]
|
|
102
|
+
return await runtime.run_program(argv, env)
|
|
@@ -37,6 +37,10 @@ MAX_LIFETIME = 24 * 60 * 60
|
|
|
37
37
|
class PrimeConfig(BaseConfig):
|
|
38
38
|
type: Literal["prime"] = "prime"
|
|
39
39
|
image: str = "python:3.11-slim"
|
|
40
|
+
"""Docker image to run. Any pullable ref works: on the first use of an image, the
|
|
41
|
+
platform auto-builds what the sandbox needs from it (a VM image for `vm` sandboxes,
|
|
42
|
+
~10 minutes) and caches the result, so later sandboxes on the same ref start in
|
|
43
|
+
seconds."""
|
|
40
44
|
workdir: str = "/app"
|
|
41
45
|
network_access: bool = True
|
|
42
46
|
vm: bool = False
|
|
@@ -74,7 +78,9 @@ class PrimeConfig(BaseConfig):
|
|
|
74
78
|
|
|
75
79
|
|
|
76
80
|
class PrimeRuntimeInfo(PrimeConfig, BaseRuntimeInfo):
|
|
77
|
-
|
|
81
|
+
image_cached: bool | None = None
|
|
82
|
+
"""Whether the platform already had the image at create (None until then). False means
|
|
83
|
+
a first-use auto-build ran while this sandbox waited to start."""
|
|
78
84
|
|
|
79
85
|
|
|
80
86
|
class PrimeRuntime(Runtime):
|
|
@@ -134,6 +140,19 @@ class PrimeRuntime(Runtime):
|
|
|
134
140
|
)
|
|
135
141
|
)
|
|
136
142
|
self.info.id = sandbox.id
|
|
143
|
+
# The create response says whether the platform already has the image:
|
|
144
|
+
# `pending_image_build_id` set means a first-use auto-build is running and the
|
|
145
|
+
# sandbox stays PENDING until it finishes (`wait_for_creation` gives that phase
|
|
146
|
+
# its own budget, separate from the normal boot attempts).
|
|
147
|
+
self.info.image_cached = sandbox.pending_image_build_id is None
|
|
148
|
+
if not self.info.image_cached:
|
|
149
|
+
logger.warning(
|
|
150
|
+
"prime: image %s isn't cached on the platform - auto-building it "
|
|
151
|
+
"(sandbox %s waits for the build; first use of an image can take "
|
|
152
|
+
"~10 minutes, later runs start in seconds)",
|
|
153
|
+
self.config.image,
|
|
154
|
+
self.info.id,
|
|
155
|
+
)
|
|
137
156
|
await self._client.wait_for_creation(self.info.id)
|
|
138
157
|
logger.info(
|
|
139
158
|
"prime: sandbox %s up (image=%s)", self.info.id, self.config.image
|
|
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.dev47 → verifiers-0.2.1.dev49}/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
|
|
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.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/anthropic_messages_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/nemorl_chat_completions_client.py
RENAMED
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_chat_completions_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_completions_client.py
RENAMED
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/clients/openai_responses_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
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/cli_agent_env.py
RENAMED
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/README.md
RENAMED
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.2.1.dev47 → verifiers-0.2.1.dev49}/verifiers/envs/experimental/composable/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|