verifiers 0.3.1.dev42__tar.gz → 0.3.1.dev43__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.3.1.dev42 → verifiers-0.3.1.dev43}/PKG-INFO +1 -1
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_judges.py +2 -2
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/dashboard/eval.py +1 -2
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/eval.py +1 -2
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/harness.py +2 -3
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/judge.py +3 -4
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/taskset.py +2 -3
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/types.py +3 -11
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/loaders.py +4 -17
- verifiers-0.3.1.dev42/verifiers/v1/utils/install.py +0 -39
- verifiers-0.3.1.dev42/verifiers/v1/utils/install_utils.py +0 -239
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/.gitignore +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/LICENSE +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/README.md +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/pyproject.toml +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/conftest.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_browser_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_build_script.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_client_config.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_composable_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_env_group.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_env_server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_environment.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_environment_extra.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_error_chain.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_eval_display.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_eval_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_gym_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_imports.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_init_script.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_install_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_interception_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_logging.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_math_rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_message_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_openenv_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_path_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_renderer_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_rubric_group.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_save_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_setup_script.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_think_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_tool_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_tool_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_types.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/test_xml_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/conftest.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_configs.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_envs.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_graph.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/tests/v1/test_trace.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/cli/tui.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/openai_completions_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/openai_responses_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/clients/renderer_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/decorators.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/env_group.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/environment.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/README.md +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/README.md +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/harnesses/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/sandbox_debug_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/task.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/gym_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/README.md +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/multiturn_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/python_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/sandbox_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/singleturn_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/stateful_tool_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/envs/tool_env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/errors.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/gepa/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/gepa/adapter.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/gepa/config.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/gepa/display.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/gepa/gepa_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/parsers/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/parsers/parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/parsers/think_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/parsers/xml_parser.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/rubrics/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/rubrics/judge_rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/rubrics/math_rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/rubrics/rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/rubrics/rubric_group.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/build.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/eval.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/gepa.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/init.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/install.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/setup.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/scripts/tui.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/client/env_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/server/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/server/env_router.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/server/env_server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/server/env_worker.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/serve/types.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/types.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/async_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/client_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/config_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/data_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/display_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/env_config_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/env_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/error_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/eval_display.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/eval_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/heartbeat.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/import_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/install_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/interception_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/logging_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/message_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/metric_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/path_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/pricing_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/process_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/response_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/save_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/serve_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/thread_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/tool_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/usage_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/legacy/utils/version_utils.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/agent.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/episode.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/errors.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/graph.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/bash/program.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/null/program.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/pool/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/tool.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/judge.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/session.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/state.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/task.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/harbor/env.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/trace.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/platform.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.3.1.dev42 → verifiers-0.3.1.dev43}/verifiers/v1/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.3.1.
|
|
3
|
+
Version: 0.3.1.dev43
|
|
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
|
|
@@ -184,7 +184,7 @@ def test_judges_reject_shared_reward_keys():
|
|
|
184
184
|
|
|
185
185
|
|
|
186
186
|
def test_reward_name_fallback():
|
|
187
|
-
# name > id
|
|
187
|
+
# name > id > snake-cased class name (code-level judge with neither).
|
|
188
188
|
class MyQualityJudge(vf.Judge[float]):
|
|
189
189
|
prompt = "{x}"
|
|
190
190
|
|
|
@@ -192,7 +192,7 @@ def test_reward_name_fallback():
|
|
|
192
192
|
vf.ReferenceJudge().reward_name == "reference"
|
|
193
193
|
) # class-name fallback (no id set)
|
|
194
194
|
assert (
|
|
195
|
-
vf.ReferenceJudge(vf.ReferenceJudgeConfig(id="
|
|
195
|
+
vf.ReferenceJudge(vf.ReferenceJudgeConfig(id="my-judge")).reward_name
|
|
196
196
|
== "my-judge"
|
|
197
197
|
)
|
|
198
198
|
assert vf.ReferenceJudge(vf.ReferenceJudgeConfig(name="gold")).reward_name == "gold"
|
|
@@ -24,7 +24,6 @@ from verifiers.v1.utils.format import (
|
|
|
24
24
|
format_override,
|
|
25
25
|
format_time,
|
|
26
26
|
)
|
|
27
|
-
from verifiers.v1.utils.install import env_name
|
|
28
27
|
from verifiers.v1.utils.interrupt import cleaning_up
|
|
29
28
|
|
|
30
29
|
if TYPE_CHECKING:
|
|
@@ -240,7 +239,7 @@ def Overview(config: EvalConfig) -> Table:
|
|
|
240
239
|
taskset = config.env.taskset
|
|
241
240
|
env_label = taskset.name if taskset.id else "no taskset"
|
|
242
241
|
if config.env.id:
|
|
243
|
-
env_label = f"{
|
|
242
|
+
env_label = f"{config.env.id}+{env_label}"
|
|
244
243
|
# One seat story when every seat resolves the same way (the common case); one
|
|
245
244
|
# row per seat when they diverge (a judge on its own harness/runtime).
|
|
246
245
|
runtimes = {role: getattr(config.env, role).runtime.type for role in seats}
|
|
@@ -12,7 +12,6 @@ from verifiers.v1.configs.env import EnvConfig
|
|
|
12
12
|
from verifiers.v1.configs.serve import ServeConfig
|
|
13
13
|
from verifiers.v1.envs.single_agent import SingleAgentEnvConfig
|
|
14
14
|
from verifiers.v1.types import SamplingConfig
|
|
15
|
-
from verifiers.v1.utils.install import env_name
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
def default_run_name(env: EnvConfig, model: str) -> str:
|
|
@@ -24,7 +23,7 @@ def default_run_name(env: EnvConfig, model: str) -> str:
|
|
|
24
23
|
if taskset.id and env.id:
|
|
25
24
|
# Same compounding as `EnvConfig.env_id`: a `best-of-n+gsm8k` run must
|
|
26
25
|
# not share a name with a plain `gsm8k` one.
|
|
27
|
-
name = f"{
|
|
26
|
+
name = f"{env.id}+{name}"
|
|
28
27
|
# Every seat's resolved harness, distinct, in role order.
|
|
29
28
|
harness = "+".join(dict.fromkeys(h.name for h in env.agent_harnesses().values()))
|
|
30
29
|
slug = (
|
|
@@ -9,12 +9,11 @@ from pydantic import ConfigDict, Field, FiniteFloat
|
|
|
9
9
|
from pydantic_config import BaseConfig
|
|
10
10
|
|
|
11
11
|
from verifiers.v1.types import ID
|
|
12
|
-
from verifiers.v1.utils.install import env_name
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class HarnessConfig(BaseConfig):
|
|
16
15
|
id: ID = "bash"
|
|
17
|
-
"""
|
|
16
|
+
"""Installed harness package, set through the seat's
|
|
18
17
|
`--env.<role>.harness.id` (`--env.agent.harness.id` on the single-agent env)."""
|
|
19
18
|
env: dict[str, str] = Field(default_factory=dict)
|
|
20
19
|
"""Extra program variables; harness-owned variables take precedence."""
|
|
@@ -30,7 +29,7 @@ class HarnessConfig(BaseConfig):
|
|
|
30
29
|
|
|
31
30
|
@property
|
|
32
31
|
def name(self) -> str:
|
|
33
|
-
return
|
|
32
|
+
return self.id
|
|
34
33
|
|
|
35
34
|
@property
|
|
36
35
|
def resolved_env(self) -> dict[str, str]:
|
|
@@ -9,7 +9,6 @@ from pydantic import BaseModel, FiniteFloat, SerializeAsAny
|
|
|
9
9
|
|
|
10
10
|
from verifiers.v1.clients import BaseClientConfig
|
|
11
11
|
from verifiers.v1.types import ID, SamplingConfig
|
|
12
|
-
from verifiers.v1.utils.install import env_name
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
class JudgeConfig(BaseClientConfig):
|
|
@@ -29,7 +28,7 @@ Judges = list[SerializeAsAny[JudgeConfig]]
|
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
def judge_key(config: JudgeConfig) -> str:
|
|
32
|
-
return config.name or
|
|
31
|
+
return config.name or config.id
|
|
33
32
|
|
|
34
33
|
|
|
35
34
|
def resolve_judges(entries: Sequence[Any]) -> list[JudgeConfig]:
|
|
@@ -41,7 +40,7 @@ def resolve_judges(entries: Sequence[Any]) -> list[JudgeConfig]:
|
|
|
41
40
|
if not raw.get("id"):
|
|
42
41
|
raise ValueError(
|
|
43
42
|
"each `judges` entry needs an `id` (a judge plugin: `reference`, "
|
|
44
|
-
"`rubric`,
|
|
43
|
+
"`rubric`, or an installed package)"
|
|
45
44
|
)
|
|
46
45
|
resolved.append(judge_config_type(raw["id"]).model_validate(raw))
|
|
47
46
|
return resolved
|
|
@@ -52,7 +51,7 @@ def check_judges(entries: Sequence[JudgeConfig]) -> None:
|
|
|
52
51
|
if not entry.id:
|
|
53
52
|
raise ValueError(
|
|
54
53
|
"each `judges` entry needs an `id` (a judge plugin: `reference`, "
|
|
55
|
-
"`rubric`,
|
|
54
|
+
"`rubric`, or an installed package)"
|
|
56
55
|
)
|
|
57
56
|
keys = [judge_key(entry) for entry in entries]
|
|
58
57
|
if duplicates := {key for key in keys if keys.count(key) > 1}:
|
|
@@ -7,12 +7,11 @@ from pydantic_config import BaseConfig
|
|
|
7
7
|
|
|
8
8
|
from verifiers.v1.configs.task import TaskConfig
|
|
9
9
|
from verifiers.v1.types import ID
|
|
10
|
-
from verifiers.v1.utils.install import env_name
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
class TasksetConfig(BaseConfig):
|
|
14
13
|
id: ID = ""
|
|
15
|
-
"""
|
|
14
|
+
"""Installed taskset package, set with `--env.taskset.id` (or the
|
|
16
15
|
positional `eval <taskset-id>`)."""
|
|
17
16
|
task: SerializeAsAny[TaskConfig] = TaskConfig()
|
|
18
17
|
"""Config passed to each task, under `--env.taskset.task.*`."""
|
|
@@ -22,4 +21,4 @@ class TasksetConfig(BaseConfig):
|
|
|
22
21
|
|
|
23
22
|
@property
|
|
24
23
|
def name(self) -> str:
|
|
25
|
-
return
|
|
24
|
+
return self.id
|
|
@@ -2,7 +2,7 @@ from collections.abc import Iterable
|
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from typing import Annotated, Any, Literal
|
|
4
4
|
|
|
5
|
-
from pydantic import
|
|
5
|
+
from pydantic import AliasChoices, BaseModel, ConfigDict, Field
|
|
6
6
|
from renderers.base import MultiModalData
|
|
7
7
|
from typing_extensions import TypedDict
|
|
8
8
|
|
|
@@ -250,13 +250,5 @@ class SamplingConfig(BaseModel):
|
|
|
250
250
|
Sampling = SamplingConfig
|
|
251
251
|
|
|
252
252
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
if is_hub_env(plugin_id):
|
|
257
|
-
parse_env_id(plugin_id) # raises ValueError on a malformed org/name[@version]
|
|
258
|
-
return plugin_id
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
ID = Annotated[str, AfterValidator(_validate_id)]
|
|
262
|
-
"""Plugin id: `name`, `org/name`, or `org/name@version`."""
|
|
253
|
+
ID = str
|
|
254
|
+
"""Plugin id: the name of an installed package exporting the plugin."""
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"""Resolve taskset, harness, judge, hook, and environment plugins."""
|
|
2
2
|
|
|
3
|
-
import contextvars
|
|
4
3
|
import functools
|
|
5
4
|
import importlib
|
|
6
5
|
import importlib.util
|
|
@@ -25,7 +24,6 @@ from verifiers.v1.judge import Judge, judge_config_cls
|
|
|
25
24
|
from verifiers.v1.task import Task
|
|
26
25
|
from verifiers.v1.taskset import Taskset
|
|
27
26
|
from verifiers.v1.utils.generic import concrete_type, prefix_validation_error
|
|
28
|
-
from verifiers.v1.utils.install import ensure_installed
|
|
29
27
|
|
|
30
28
|
|
|
31
29
|
def builtin_harness_ids() -> list[str]:
|
|
@@ -36,12 +34,6 @@ def builtin_harness_ids() -> list[str]:
|
|
|
36
34
|
return sorted(m.name for m in pkgutil.iter_modules(harnesses.__path__))
|
|
37
35
|
|
|
38
36
|
|
|
39
|
-
skip_plugin_install: contextvars.ContextVar[bool] = contextvars.ContextVar(
|
|
40
|
-
"skip_plugin_install", default=False
|
|
41
|
-
)
|
|
42
|
-
"""Skip installing envs from the Hub during config parse (for callers that read the config but never run the env)."""
|
|
43
|
-
|
|
44
|
-
|
|
45
37
|
def narrow_plugin_field(
|
|
46
38
|
data: dict,
|
|
47
39
|
field: str,
|
|
@@ -66,10 +58,6 @@ def narrow_plugin_field(
|
|
|
66
58
|
f"{field}.id needs an id, and none was given (got {ident!r}); "
|
|
67
59
|
f"pass the id right after the flag{hint}"
|
|
68
60
|
)
|
|
69
|
-
if skip_plugin_install.get():
|
|
70
|
-
# keep the plugin id-only; don't import/install from the Hub
|
|
71
|
-
data[field] = {"id": ident}
|
|
72
|
-
return
|
|
73
61
|
try:
|
|
74
62
|
data[field] = resolve(ident).model_validate({**raw, "id": ident})
|
|
75
63
|
except ValidationError as e:
|
|
@@ -80,7 +68,7 @@ def narrow_plugin_field(
|
|
|
80
68
|
|
|
81
69
|
|
|
82
70
|
def _import_plugin(plugin_id: str, kind: str, group: str) -> ModuleType:
|
|
83
|
-
module =
|
|
71
|
+
module = plugin_id.replace("-", "_").lower()
|
|
84
72
|
namespaced = f"{group}.{module}"
|
|
85
73
|
target = namespaced if importlib.util.find_spec(namespaced) else module
|
|
86
74
|
try:
|
|
@@ -100,8 +88,8 @@ def _import_plugin(plugin_id: str, kind: str, group: str) -> ModuleType:
|
|
|
100
88
|
raise ModuleNotFoundError(
|
|
101
89
|
f"{kind} {plugin_id!r} not found (tried to import {target!r}). {article} {kind} is a "
|
|
102
90
|
f"package exporting its {kind.capitalize()} subclass via `__all__` — the built-in "
|
|
103
|
-
f"ones ship with verifiers in the `{group}` package
|
|
104
|
-
f"
|
|
91
|
+
f"ones ship with verifiers in the `{group}` package; any other package "
|
|
92
|
+
f"must already be installed.{hint}"
|
|
105
93
|
) from e
|
|
106
94
|
|
|
107
95
|
|
|
@@ -160,8 +148,7 @@ def judge_class(judge_id: str) -> type[Judge]:
|
|
|
160
148
|
|
|
161
149
|
|
|
162
150
|
def default_harness_id(taskset_id: str) -> str:
|
|
163
|
-
|
|
164
|
-
if not taskset_id or skip_plugin_install.get():
|
|
151
|
+
if not taskset_id:
|
|
165
152
|
return "bash"
|
|
166
153
|
try:
|
|
167
154
|
module = import_taskset(taskset_id)
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"""Environment/plugin ID helpers and on-demand Hub installation."""
|
|
2
|
-
|
|
3
|
-
import logging
|
|
4
|
-
|
|
5
|
-
from verifiers.v1.utils.install_utils import (
|
|
6
|
-
check_hub_env_installed,
|
|
7
|
-
install_from_hub,
|
|
8
|
-
is_hub_env,
|
|
9
|
-
normalize_package_name,
|
|
10
|
-
parse_env_id,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def env_name(env_id: str) -> str:
|
|
17
|
-
"""The package name — the id with org and version stripped (``org/gsm8k@1.0`` ->
|
|
18
|
-
``gsm8k``). Used for logging, display, and output paths."""
|
|
19
|
-
return parse_env_id(env_id)[1] if is_hub_env(env_id) else env_id
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def env_module(env_id: str) -> str:
|
|
23
|
-
"""The importable module name — `env_name` normalized (hyphens -> underscores)."""
|
|
24
|
-
return normalize_package_name(env_name(env_id))
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def ensure_installed(env_id: str) -> str:
|
|
28
|
-
"""Make `env_id` importable and return its module name.
|
|
29
|
-
|
|
30
|
-
For a hub id (``org/name[@version]``) that isn't installed, install it from the
|
|
31
|
-
Environments Hub — latest, or the pinned version — the same path `prime env install`
|
|
32
|
-
uses. A local id is assumed already importable."""
|
|
33
|
-
if is_hub_env(env_id) and not check_hub_env_installed(env_id):
|
|
34
|
-
logger.info("installing %s from the environments hub", env_id)
|
|
35
|
-
if not install_from_hub(env_id):
|
|
36
|
-
raise ModuleNotFoundError(
|
|
37
|
-
f"could not install {env_id!r} from the environments hub"
|
|
38
|
-
)
|
|
39
|
-
return env_module(env_id)
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
# ruff: noqa
|
|
2
|
-
|
|
3
|
-
import importlib
|
|
4
|
-
import logging
|
|
5
|
-
import subprocess
|
|
6
|
-
import sys
|
|
7
|
-
from importlib.metadata import PackageNotFoundError, version as package_version
|
|
8
|
-
from pathlib import Path
|
|
9
|
-
from typing import Optional
|
|
10
|
-
from urllib.parse import urlparse
|
|
11
|
-
|
|
12
|
-
import requests
|
|
13
|
-
|
|
14
|
-
logger = logging.getLogger(__name__)
|
|
15
|
-
|
|
16
|
-
ENVIRONMENTS_HUB_URL = "https://api.primeintellect.ai/api/v1/environmentshub"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def _uv_pip_cmd(subcommand: str, *args: str) -> list[str]:
|
|
20
|
-
"""Run uv pip against the active Python interpreter for this process."""
|
|
21
|
-
return ["uv", "pip", subcommand, "--python", sys.executable, *args]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def normalize_package_name(name: str) -> str:
|
|
25
|
-
"""Normalize package name according to Python packaging standards."""
|
|
26
|
-
return name.replace("-", "_").lower()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def parse_env_id(env_id: str) -> tuple[str, str, Optional[str]]:
|
|
30
|
-
"""Parse environment ID into (owner, name, version).
|
|
31
|
-
|
|
32
|
-
Args:
|
|
33
|
-
env_id: Environment ID like 'owner/name' or 'owner/name@version'
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
Tuple of (owner, name, version). Version is None if not specified.
|
|
37
|
-
|
|
38
|
-
Raises:
|
|
39
|
-
ValueError: If format is invalid
|
|
40
|
-
"""
|
|
41
|
-
version = None
|
|
42
|
-
if "@" in env_id:
|
|
43
|
-
env_id, version = env_id.rsplit("@", 1)
|
|
44
|
-
|
|
45
|
-
parts = env_id.split("/")
|
|
46
|
-
if len(parts) != 2 or not parts[0] or not parts[1]:
|
|
47
|
-
raise ValueError(
|
|
48
|
-
f"Invalid environment ID: '{env_id}'. Expected format: 'owner/name' or 'owner/name@version'"
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
return parts[0], parts[1], version
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def is_hub_env(env_id: str) -> bool:
|
|
55
|
-
"""Check if env_id refers to a Hub environment (has owner/ prefix)."""
|
|
56
|
-
return "/" in env_id and not env_id.startswith("./") and not env_id.startswith("/")
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def is_installed(env_name: str, version: Optional[str] = None) -> bool:
|
|
60
|
-
"""Check if an environment package is installed.
|
|
61
|
-
|
|
62
|
-
Args:
|
|
63
|
-
env_name: Environment name (without owner prefix)
|
|
64
|
-
version: Optional version to check for
|
|
65
|
-
|
|
66
|
-
Returns:
|
|
67
|
-
True if installed (and version matches if specified)
|
|
68
|
-
"""
|
|
69
|
-
try:
|
|
70
|
-
installed_version = package_version(normalize_package_name(env_name))
|
|
71
|
-
except PackageNotFoundError:
|
|
72
|
-
return False
|
|
73
|
-
return not version or version == "latest" or installed_version == version
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def check_hub_env_installed(env_id: str) -> bool:
|
|
77
|
-
"""Check if a Hub environment is installed.
|
|
78
|
-
|
|
79
|
-
For Hub environments (owner/name format), checks if the package is installed.
|
|
80
|
-
For local environments, returns True (assumes available via env_dir).
|
|
81
|
-
|
|
82
|
-
Args:
|
|
83
|
-
env_id: Environment ID (local name or 'owner/name' or 'owner/name@version')
|
|
84
|
-
|
|
85
|
-
Returns:
|
|
86
|
-
True if environment is available (or is local)
|
|
87
|
-
"""
|
|
88
|
-
if not is_hub_env(env_id):
|
|
89
|
-
return True
|
|
90
|
-
|
|
91
|
-
_, name, version = parse_env_id(env_id)
|
|
92
|
-
return is_installed(name, version)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def install_from_hub(env_id: str) -> bool:
|
|
96
|
-
"""Install an environment from the Environments Hub.
|
|
97
|
-
|
|
98
|
-
Args:
|
|
99
|
-
env_id: Environment ID like 'owner/name' or 'owner/name@version'
|
|
100
|
-
|
|
101
|
-
Returns:
|
|
102
|
-
True if installation succeeded
|
|
103
|
-
"""
|
|
104
|
-
owner, name, version = parse_env_id(env_id)
|
|
105
|
-
version = version or "latest"
|
|
106
|
-
|
|
107
|
-
logger.info(f"Fetching environment details for {owner}/{name}@{version}...")
|
|
108
|
-
|
|
109
|
-
try:
|
|
110
|
-
url = f"{ENVIRONMENTS_HUB_URL}/{owner}/{name}/@{version}"
|
|
111
|
-
response = requests.get(url, timeout=30)
|
|
112
|
-
response.raise_for_status()
|
|
113
|
-
data = response.json()
|
|
114
|
-
details = data.get("data", data)
|
|
115
|
-
except requests.RequestException as e:
|
|
116
|
-
logger.error(f"Failed to fetch environment details: {e}")
|
|
117
|
-
return False
|
|
118
|
-
except ValueError as e:
|
|
119
|
-
logger.error(f"Invalid response from Environments Hub: {e}")
|
|
120
|
-
return False
|
|
121
|
-
|
|
122
|
-
simple_index_url = details.get("simple_index_url")
|
|
123
|
-
wheel_url = details.get("wheel_url")
|
|
124
|
-
if wheel_url:
|
|
125
|
-
try:
|
|
126
|
-
parsed_wheel_url = urlparse(wheel_url)
|
|
127
|
-
if (
|
|
128
|
-
parsed_wheel_url.scheme not in ("http", "https")
|
|
129
|
-
or not parsed_wheel_url.netloc
|
|
130
|
-
):
|
|
131
|
-
wheel_url = None
|
|
132
|
-
except Exception:
|
|
133
|
-
wheel_url = None
|
|
134
|
-
|
|
135
|
-
if not simple_index_url and not wheel_url:
|
|
136
|
-
if details.get("visibility") == "PRIVATE":
|
|
137
|
-
logger.error(
|
|
138
|
-
f"Cannot install private environment '{env_id}'. "
|
|
139
|
-
"Use 'prime env pull' to download and install locally."
|
|
140
|
-
)
|
|
141
|
-
else:
|
|
142
|
-
logger.error(f"No installation method available for '{env_id}'")
|
|
143
|
-
return False
|
|
144
|
-
|
|
145
|
-
pkg_name = normalize_package_name(name)
|
|
146
|
-
|
|
147
|
-
cmd: list[str]
|
|
148
|
-
if simple_index_url:
|
|
149
|
-
if version and version != "latest":
|
|
150
|
-
pkg_spec = f"{pkg_name}=={version}"
|
|
151
|
-
else:
|
|
152
|
-
pkg_spec = pkg_name
|
|
153
|
-
cmd = [
|
|
154
|
-
*_uv_pip_cmd("install"),
|
|
155
|
-
"--upgrade",
|
|
156
|
-
pkg_spec,
|
|
157
|
-
"--extra-index-url",
|
|
158
|
-
simple_index_url,
|
|
159
|
-
]
|
|
160
|
-
else:
|
|
161
|
-
assert wheel_url is not None
|
|
162
|
-
cmd = [*_uv_pip_cmd("install"), "--upgrade", wheel_url]
|
|
163
|
-
|
|
164
|
-
logger.info(f"Installing {env_id}...")
|
|
165
|
-
logger.debug(f"Command: {' '.join(cmd)}")
|
|
166
|
-
|
|
167
|
-
result = subprocess.run(cmd, capture_output=True, text=True)
|
|
168
|
-
|
|
169
|
-
if result.returncode != 0:
|
|
170
|
-
logger.error(f"Installation failed: {result.stderr}")
|
|
171
|
-
return False
|
|
172
|
-
|
|
173
|
-
logger.info(f"Successfully installed {env_id}")
|
|
174
|
-
importlib.invalidate_caches()
|
|
175
|
-
return True
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
def install_from_local(env_name: str, env_dir: str = "./environments") -> bool:
|
|
179
|
-
"""Install an environment from a local directory.
|
|
180
|
-
|
|
181
|
-
Args:
|
|
182
|
-
env_name: Environment name
|
|
183
|
-
env_dir: Path to environments directory
|
|
184
|
-
|
|
185
|
-
Returns:
|
|
186
|
-
True if installation succeeded
|
|
187
|
-
"""
|
|
188
|
-
env_folder = normalize_package_name(env_name)
|
|
189
|
-
env_path = Path(env_dir) / env_folder
|
|
190
|
-
|
|
191
|
-
if not env_path.exists():
|
|
192
|
-
logger.error(f"Local environment not found: {env_path}")
|
|
193
|
-
return False
|
|
194
|
-
|
|
195
|
-
logger.info(f"Installing {env_name} from {env_path}...")
|
|
196
|
-
result = subprocess.run(
|
|
197
|
-
[*_uv_pip_cmd("install"), "-e", str(env_path)],
|
|
198
|
-
capture_output=True,
|
|
199
|
-
text=True,
|
|
200
|
-
)
|
|
201
|
-
|
|
202
|
-
if result.returncode != 0:
|
|
203
|
-
logger.error(f"Installation failed: {result.stderr}")
|
|
204
|
-
return False
|
|
205
|
-
|
|
206
|
-
logger.info(f"Successfully installed {env_name}")
|
|
207
|
-
importlib.invalidate_caches()
|
|
208
|
-
return True
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def install_from_repo(env_name: str, branch: str = "main") -> bool:
|
|
212
|
-
"""Install an environment from the verifiers GitHub repo.
|
|
213
|
-
|
|
214
|
-
Args:
|
|
215
|
-
env_name: Environment name
|
|
216
|
-
branch: Git branch to install from
|
|
217
|
-
|
|
218
|
-
Returns:
|
|
219
|
-
True if installation succeeded
|
|
220
|
-
"""
|
|
221
|
-
env_folder = normalize_package_name(env_name)
|
|
222
|
-
pkg_name = env_folder.replace("_", "-")
|
|
223
|
-
|
|
224
|
-
url = f"git+https://github.com/PrimeIntellect-ai/verifiers.git@{branch}#subdirectory=environments/{env_folder}"
|
|
225
|
-
|
|
226
|
-
logger.info(f"Installing {env_name} from verifiers repo ({branch})...")
|
|
227
|
-
result = subprocess.run(
|
|
228
|
-
[*_uv_pip_cmd("install"), f"{pkg_name} @ {url}"],
|
|
229
|
-
capture_output=True,
|
|
230
|
-
text=True,
|
|
231
|
-
)
|
|
232
|
-
|
|
233
|
-
if result.returncode != 0:
|
|
234
|
-
logger.error(f"Installation failed: {result.stderr}")
|
|
235
|
-
return False
|
|
236
|
-
|
|
237
|
-
logger.info(f"Successfully installed {env_name}")
|
|
238
|
-
importlib.invalidate_caches()
|
|
239
|
-
return True
|
|
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.3.1.dev42 → verifiers-0.3.1.dev43}/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
|