verifiers 0.2.1.dev52__tar.gz → 0.2.1.dev54__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.dev52 → verifiers-0.2.1.dev54}/PKG-INFO +1 -1
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/pyproject.toml +1 -3
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_browser_env.py +0 -92
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_install_utils.py +1 -1
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_envs.py +4 -6
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/README.md +0 -13
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/install.py +6 -6
- verifiers-0.2.1.dev52/tests/test_envs.py +0 -195
- verifiers-0.2.1.dev52/tests/test_wordle_env.py +0 -22
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/.gitignore +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/LICENSE +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/README.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/AGENTS.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/conftest.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_build_script.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_client_config.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_composable_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_env_group.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_env_server.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_environment.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_environment_extra.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_error_chain.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_eval_display.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_eval_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_gym_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_imports.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_init_script.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_interception_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_logging.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_math_rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_message_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_openenv_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_path_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_renderer_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_rubric_group.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_save_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_setup_script.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_think_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_tool_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_tool_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_types.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/test_xml_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/conftest.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/echo_multi_v0.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/echo_v0.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_configs.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_graph.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_judges.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_legacy.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/tests/v1/test_trace.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/cli/tui.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/openai_completions_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/openai_responses_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/clients/renderer_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/decorators.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/AGENTS.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/env_group.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/environment.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/README.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/task.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/gym_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/README.md +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/multiturn_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/sandbox_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/stateful_tool_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/tool_env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/errors.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/gepa/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/gepa/adapter.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/gepa/config.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/gepa/display.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/gepa/gepa_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/parsers/parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/parsers/think_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/parsers/xml_parser.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/rubrics/judge_rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/rubrics/math_rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/rubrics/rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/build.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/eval.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/gepa.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/init.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/setup.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/client/env_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/server/env_router.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/server/env_worker.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/serve/types.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/types.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/async_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/client_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/data_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/display_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/env_config_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/env_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/error_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/eval_display.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/eval_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/heartbeat.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/install_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/interception_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/logging_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/message_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/metric_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/process_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/save_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/thread_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/usage_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/utils/version_utils.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/serve.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/clients/config.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/debug.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/eval.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/init.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/replay.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/configs/validate.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/decorators.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/env.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/episode.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/errors.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/graph.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/default/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/default/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/default/program.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/null/program.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/judge.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/legacy.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/loaders.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/mcp/user.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/push.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/retries.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/docker.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/scoring.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/session.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/state.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/task.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/trace.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/types.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/install.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/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.dev54
|
|
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
|
|
@@ -80,7 +80,7 @@ examples = [
|
|
|
80
80
|
"compact",
|
|
81
81
|
"gsm8k-v1", "glossary-v1", "deepwiki-v1", "wiki-search-v1", "code-golf-v1",
|
|
82
82
|
"reverse-text-v1", "color-codeword-v1",
|
|
83
|
-
"wordle-v1", "alphabet-sort-v1", "scratchpad-v1",
|
|
83
|
+
"wordle-v1", "alphabet-sort-v1", "scratchpad-v1",
|
|
84
84
|
]
|
|
85
85
|
|
|
86
86
|
[project.optional-dependencies]
|
|
@@ -143,12 +143,10 @@ wiki-search-v1 = { path = "environments/wiki_search_v1", editable = true }
|
|
|
143
143
|
gsm8k-v1 = { path = "environments/gsm8k_v1", editable = true }
|
|
144
144
|
code-golf-v1 = { path = "environments/code_golf_v1", editable = true }
|
|
145
145
|
reverse-text-v1 = { path = "environments/reverse_text_v1", editable = true }
|
|
146
|
-
reverse-text = { path = "environments/reverse_text", editable = true }
|
|
147
146
|
wordle-v1 = { path = "environments/wordle_v1", editable = true }
|
|
148
147
|
color-codeword-v1 = { path = "environments/color_codeword_v1", editable = true }
|
|
149
148
|
alphabet-sort-v1 = { path = "environments/alphabet_sort_v1", editable = true }
|
|
150
149
|
scratchpad-v1 = { path = "environments/scratchpad_v1", editable = true }
|
|
151
|
-
mmmu-v1 = { path = "environments/mmmu_v1", editable = true }
|
|
152
150
|
|
|
153
151
|
[tool.uv.exclude-newer-package]
|
|
154
152
|
# PrimeIntellect-published on PyPI (trusted publisher)
|
|
@@ -452,98 +452,6 @@ class TestDOMModeLLMConfig:
|
|
|
452
452
|
assert config is None
|
|
453
453
|
|
|
454
454
|
|
|
455
|
-
# ============================================================================
|
|
456
|
-
# Example Environment Tests
|
|
457
|
-
# ============================================================================
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
class TestExampleDatasets:
|
|
461
|
-
"""Tests for example environment datasets."""
|
|
462
|
-
|
|
463
|
-
def test_dom_example_dataset_structure(self):
|
|
464
|
-
"""Test DOM example dataset has correct structure."""
|
|
465
|
-
from environments.browser_dom_example.browser_dom_example import (
|
|
466
|
-
create_example_dataset,
|
|
467
|
-
)
|
|
468
|
-
|
|
469
|
-
dataset = create_example_dataset()
|
|
470
|
-
|
|
471
|
-
assert "question" in dataset.column_names
|
|
472
|
-
assert "answer" in dataset.column_names
|
|
473
|
-
assert "start_url" in dataset.column_names
|
|
474
|
-
assert "task_id" in dataset.column_names
|
|
475
|
-
assert len(dataset) >= 1
|
|
476
|
-
|
|
477
|
-
def test_cua_example_dataset_structure(self):
|
|
478
|
-
"""Test CUA example dataset has correct structure."""
|
|
479
|
-
from environments.browser_cua_example.browser_cua_example import (
|
|
480
|
-
create_example_dataset,
|
|
481
|
-
)
|
|
482
|
-
|
|
483
|
-
dataset = create_example_dataset()
|
|
484
|
-
|
|
485
|
-
assert "question" in dataset.column_names
|
|
486
|
-
assert "answer" in dataset.column_names
|
|
487
|
-
assert "start_url" in dataset.column_names
|
|
488
|
-
assert "task_id" in dataset.column_names
|
|
489
|
-
assert len(dataset) >= 1
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
class TestJudgeAnswer:
|
|
493
|
-
"""Tests for judge_answer reward function."""
|
|
494
|
-
|
|
495
|
-
@pytest.mark.asyncio
|
|
496
|
-
async def test_judge_answer_returns_1_for_yes(self):
|
|
497
|
-
"""Test that judge_answer returns 1.0 when judge says yes."""
|
|
498
|
-
from environments.browser_dom_example.browser_dom_example import judge_answer
|
|
499
|
-
|
|
500
|
-
async def mock_judge(prompt, completion, answer, state):
|
|
501
|
-
return "yes, the answer is correct"
|
|
502
|
-
|
|
503
|
-
result = await judge_answer(
|
|
504
|
-
judge=mock_judge,
|
|
505
|
-
prompt="What is 2+2?",
|
|
506
|
-
completion=[{"role": "assistant", "content": "The answer is 4"}],
|
|
507
|
-
answer="4",
|
|
508
|
-
state={},
|
|
509
|
-
)
|
|
510
|
-
assert result == 1.0
|
|
511
|
-
|
|
512
|
-
@pytest.mark.asyncio
|
|
513
|
-
async def test_judge_answer_returns_0_for_no(self):
|
|
514
|
-
"""Test that judge_answer returns 0.0 when judge says no."""
|
|
515
|
-
from environments.browser_dom_example.browser_dom_example import judge_answer
|
|
516
|
-
|
|
517
|
-
async def mock_judge(prompt, completion, answer, state):
|
|
518
|
-
return "no, the answer is incorrect"
|
|
519
|
-
|
|
520
|
-
result = await judge_answer(
|
|
521
|
-
judge=mock_judge,
|
|
522
|
-
prompt="What is 2+2?",
|
|
523
|
-
completion=[{"role": "assistant", "content": "The answer is 5"}],
|
|
524
|
-
answer="4",
|
|
525
|
-
state={},
|
|
526
|
-
)
|
|
527
|
-
assert result == 0.0
|
|
528
|
-
|
|
529
|
-
@pytest.mark.asyncio
|
|
530
|
-
async def test_judge_answer_case_insensitive(self):
|
|
531
|
-
"""Test that judge response check is case insensitive."""
|
|
532
|
-
from environments.browser_dom_example.browser_dom_example import judge_answer
|
|
533
|
-
|
|
534
|
-
async def mock_judge(prompt, completion, answer, state):
|
|
535
|
-
return "YES"
|
|
536
|
-
|
|
537
|
-
result = await judge_answer(
|
|
538
|
-
judge=mock_judge,
|
|
539
|
-
prompt="test",
|
|
540
|
-
completion="test",
|
|
541
|
-
answer="test",
|
|
542
|
-
state={},
|
|
543
|
-
)
|
|
544
|
-
assert result == 1.0
|
|
545
|
-
|
|
546
|
-
|
|
547
455
|
# ============================================================================
|
|
548
456
|
# Constants Tests
|
|
549
457
|
# ============================================================================
|
|
@@ -73,7 +73,7 @@ class TestIsHubEnv:
|
|
|
73
73
|
assert is_hub_env("gsm8k") is False
|
|
74
74
|
|
|
75
75
|
def test_local_env_relative_path(self):
|
|
76
|
-
assert is_hub_env("./environments/
|
|
76
|
+
assert is_hub_env("./environments/gsm8k_v1") is False
|
|
77
77
|
|
|
78
78
|
def test_local_env_absolute_path(self):
|
|
79
79
|
assert is_hub_env("/path/to/gsm8k") is False
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
"""Smoke-eval every
|
|
1
|
+
"""Smoke-eval every V1 example taskset in `environments/` through the `eval` CLI.
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
harness, not a taskset); SWE/container tasksets need a docker/prime runtime and are covered by
|
|
7
|
-
the dedicated v1 e2e tests instead.
|
|
3
|
+
Each `_v1` taskset runs with its required harness for one short, capped rollout, so a broken
|
|
4
|
+
example taskset fails CI. `compact` is excluded (it's a harness, not a taskset);
|
|
5
|
+
SWE/container tasksets need a docker/prime runtime and are covered by dedicated V1 e2e tests.
|
|
8
6
|
"""
|
|
9
7
|
|
|
10
8
|
import os
|
{verifiers-0.2.1.dev52 → verifiers-0.2.1.dev54}/verifiers/envs/integrations/browser_env/README.md
RENAMED
|
@@ -139,16 +139,3 @@ CUA execution options:
|
|
|
139
139
|
1. **Prebuilt image** (default): fastest startup
|
|
140
140
|
2. **Binary upload** (`use_prebuilt_image=False`): custom server workflows
|
|
141
141
|
3. **Manual local server** (`use_sandbox=False`): local development/debugging
|
|
142
|
-
|
|
143
|
-
## Example Environments
|
|
144
|
-
|
|
145
|
-
For complete reference implementations, see:
|
|
146
|
-
|
|
147
|
-
- **DOM example:** `environments/browser_dom_example/`
|
|
148
|
-
- `environments/browser_dom_example/browser_dom_example.py`
|
|
149
|
-
- `environments/browser_dom_example/README.md`
|
|
150
|
-
- **CUA example:** `environments/browser_cua_example/`
|
|
151
|
-
- `environments/browser_cua_example/browser_cua_example.py`
|
|
152
|
-
- `environments/browser_cua_example/README.md`
|
|
153
|
-
|
|
154
|
-
These examples show end-to-end `load_environment()` setup, evaluation commands, and recommended runtime flags.
|
|
@@ -17,9 +17,9 @@ Usage:
|
|
|
17
17
|
|
|
18
18
|
Examples:
|
|
19
19
|
vf-install primeintellect/gsm8k # Install from Hub
|
|
20
|
-
vf-install gsm8k
|
|
21
|
-
vf-install gsm8k -p /path/to/envs
|
|
22
|
-
vf-install gsm8k -r
|
|
20
|
+
vf-install gsm8k-v1 # Install from ./environments/gsm8k_v1
|
|
21
|
+
vf-install gsm8k-v1 -p /path/to/envs # Install from custom local path
|
|
22
|
+
vf-install gsm8k-v1 -r # Install from GitHub repo
|
|
23
23
|
"""
|
|
24
24
|
|
|
25
25
|
|
|
@@ -30,9 +30,9 @@ def main():
|
|
|
30
30
|
epilog="""
|
|
31
31
|
Examples:
|
|
32
32
|
vf-install primeintellect/gsm8k Install from Environments Hub
|
|
33
|
-
vf-install gsm8k
|
|
34
|
-
vf-install gsm8k -p /path/to/envs
|
|
35
|
-
vf-install gsm8k -r
|
|
33
|
+
vf-install gsm8k-v1 Install from ./environments/gsm8k_v1
|
|
34
|
+
vf-install gsm8k-v1 -p /path/to/envs Install from custom local path
|
|
35
|
+
vf-install gsm8k-v1 -r Install from GitHub repo
|
|
36
36
|
""",
|
|
37
37
|
)
|
|
38
38
|
parser.add_argument(
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import subprocess
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
|
|
5
|
-
import pytest
|
|
6
|
-
import tomllib
|
|
7
|
-
|
|
8
|
-
# Timeout in seconds for each subprocess step
|
|
9
|
-
INSTALL_TIMEOUT = 600 # 10 minutes for venv creation + package install
|
|
10
|
-
IMPORT_TIMEOUT = 120 # 2 minutes for importing a package
|
|
11
|
-
LOAD_TIMEOUT = 300 # 5 minutes for loading an environment (may download datasets)
|
|
12
|
-
EVAL_TIMEOUT = 600 # 10 minutes for running vf-eval with -n 1 -r 1
|
|
13
|
-
|
|
14
|
-
SKIPPED_ENVS = [
|
|
15
|
-
# Requires fix for completion dataset setup
|
|
16
|
-
# uv run pytest tests/test_envs.py -vv -k continuation_quality
|
|
17
|
-
#
|
|
18
|
-
# example_id = input_item["example_id"]
|
|
19
|
-
# ~~~~~~~~~~^^^^^^^^^^^^^^
|
|
20
|
-
# KeyError: 'example_id'
|
|
21
|
-
"continuation_quality",
|
|
22
|
-
# Different project structure (uses src/ layout, no pyproject.toml at root)
|
|
23
|
-
"mcp_env",
|
|
24
|
-
# Requires BROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID, MODEL_API_KEY
|
|
25
|
-
"browser_dom_example",
|
|
26
|
-
# Requires BROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID, and running CUA server
|
|
27
|
-
"browser_cua_example",
|
|
28
|
-
# Uses prime-tunnel which is still experimental and has low usage limits
|
|
29
|
-
"opencode_harbor",
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
SKIPPED_ENV_LOADING_ENVS = [
|
|
33
|
-
# OpenEnv datasets are built by resetting seeds in sandbox-backed env servers.
|
|
34
|
-
# Skip generic load checks here and cover via dedicated OpenEnv tests.
|
|
35
|
-
"openenv_echo",
|
|
36
|
-
"openenv_textarena",
|
|
37
|
-
# R2E-Gym pulls a full image-backed SWE taskset; cover it with dedicated v1 tests.
|
|
38
|
-
"rlm_swe_v1",
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def get_environments() -> list[Path]:
|
|
43
|
-
"""Get all subdirectories of `environments/`, or only changed environments if CHANGED_ENVS is set."""
|
|
44
|
-
all_envs = list(x for x in Path("environments").iterdir() if x.is_dir())
|
|
45
|
-
|
|
46
|
-
# Filter out skipped environments
|
|
47
|
-
all_envs = [env for env in all_envs if env.name not in SKIPPED_ENVS]
|
|
48
|
-
|
|
49
|
-
# These are v0 smoke tests (vf.load_environment + vf-eval). The v1 plugins (the `_v1`
|
|
50
|
-
# tasksets + the `compact` harness) are id-referenced and covered by tests/v1/test_envs.py.
|
|
51
|
-
all_envs = [
|
|
52
|
-
env
|
|
53
|
-
for env in all_envs
|
|
54
|
-
if not env.name.endswith("_v1") and env.name != "compact"
|
|
55
|
-
]
|
|
56
|
-
|
|
57
|
-
# Filter environments if CHANGED_ENVS is set (for PRs)
|
|
58
|
-
changed_envs = os.getenv("CHANGED_ENVS")
|
|
59
|
-
if changed_envs == "none":
|
|
60
|
-
return []
|
|
61
|
-
if changed_envs:
|
|
62
|
-
changed_list = [e.strip() for e in changed_envs.split(",") if e.strip()]
|
|
63
|
-
if changed_list:
|
|
64
|
-
all_envs = [env for env in all_envs if env.name in changed_list]
|
|
65
|
-
|
|
66
|
-
return all_envs
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
@pytest.mark.parametrize("env_dir", get_environments(), ids=lambda x: x.name)
|
|
70
|
-
def test_pyproject_exists(env_dir: Path):
|
|
71
|
-
"""Test that the pyproject.toml file exists for the given environment directory."""
|
|
72
|
-
assert (env_dir / "pyproject.toml").exists(), "pyproject.toml does not exist"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
@pytest.mark.parametrize("env_dir", get_environments(), ids=lambda x: x.name)
|
|
76
|
-
def test_pyproject_has_metadata(env_dir: Path):
|
|
77
|
-
"""Test that the pyproject.toml file has the required metadata."""
|
|
78
|
-
with open(env_dir / "pyproject.toml", "rb") as f:
|
|
79
|
-
pyproject = tomllib.load(f)
|
|
80
|
-
assert "name" in pyproject["project"], "pyproject.toml does not have a name"
|
|
81
|
-
assert "version" in pyproject["project"], "pyproject.toml does not have a version"
|
|
82
|
-
assert "description" in pyproject["project"], (
|
|
83
|
-
"pyproject.toml does not have a description"
|
|
84
|
-
)
|
|
85
|
-
assert pyproject["project"]["description"] != "Your environment description here", (
|
|
86
|
-
"Still uses placeholder description"
|
|
87
|
-
)
|
|
88
|
-
assert "tags" in pyproject["project"], "pyproject.toml does not have tags"
|
|
89
|
-
assert pyproject["project"]["tags"] != ["placeholder-tag", "train", "eval"], (
|
|
90
|
-
"Still uses placeholder tags"
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
@pytest.mark.parametrize("env_dir", get_environments(), ids=lambda x: x.name)
|
|
95
|
-
def test_readme_exists(env_dir: Path):
|
|
96
|
-
"""Test that the README.md file exists for the given environment directory."""
|
|
97
|
-
assert (env_dir / "README.md").exists(), "README.md does not exist"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@pytest.mark.slow
|
|
101
|
-
@pytest.mark.parametrize("env_dir", get_environments(), ids=lambda x: x.name)
|
|
102
|
-
def test_env(env_dir: Path, tmp_path_factory: pytest.TempPathFactory):
|
|
103
|
-
"""Test environment in a fresh venv with local verifiers installed first."""
|
|
104
|
-
if env_dir.name in SKIPPED_ENVS:
|
|
105
|
-
pytest.skip(f"Skipping {env_dir.name}")
|
|
106
|
-
if env_dir.name in SKIPPED_ENV_LOADING_ENVS:
|
|
107
|
-
pytest.skip(f"Skipping dedicated-runtime smoke test for {env_dir.name}")
|
|
108
|
-
tmp_venv_dir = tmp_path_factory.mktemp(f"venv_{env_dir.name}")
|
|
109
|
-
repo_root = Path(__file__).parent.parent
|
|
110
|
-
cmd = (
|
|
111
|
-
f"cd {tmp_venv_dir} && uv venv --clear && source .venv/bin/activate && "
|
|
112
|
-
"uv pip install "
|
|
113
|
-
f"{repo_root.as_posix()} && "
|
|
114
|
-
"uv pip install "
|
|
115
|
-
f"{env_dir.absolute().as_posix()}"
|
|
116
|
-
)
|
|
117
|
-
try:
|
|
118
|
-
process = subprocess.run(
|
|
119
|
-
cmd,
|
|
120
|
-
shell=True,
|
|
121
|
-
executable="/bin/bash",
|
|
122
|
-
capture_output=True,
|
|
123
|
-
text=True,
|
|
124
|
-
timeout=INSTALL_TIMEOUT,
|
|
125
|
-
)
|
|
126
|
-
except subprocess.TimeoutExpired:
|
|
127
|
-
pytest.fail(f"Timed out after {INSTALL_TIMEOUT}s installing {env_dir.name}")
|
|
128
|
-
assert process.returncode == 0, (
|
|
129
|
-
f"Failed to create virtual environment: {process.stderr}"
|
|
130
|
-
)
|
|
131
|
-
|
|
132
|
-
help_test_can_import_env(tmp_venv_dir, env_dir)
|
|
133
|
-
help_test_can_load_env(tmp_venv_dir, env_dir)
|
|
134
|
-
help_test_can_eval_env(tmp_venv_dir, env_dir)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
def help_test_can_import_env(tmp_venv_dir: Path, env_dir: Path):
|
|
138
|
-
"""Test that the environment can be imported as a package."""
|
|
139
|
-
import_cmd = f"cd {tmp_venv_dir} && source .venv/bin/activate && uv run python -c 'import {env_dir.name}'"
|
|
140
|
-
try:
|
|
141
|
-
process = subprocess.run(
|
|
142
|
-
import_cmd,
|
|
143
|
-
shell=True,
|
|
144
|
-
executable="/bin/bash",
|
|
145
|
-
capture_output=True,
|
|
146
|
-
text=True,
|
|
147
|
-
timeout=IMPORT_TIMEOUT,
|
|
148
|
-
)
|
|
149
|
-
except subprocess.TimeoutExpired:
|
|
150
|
-
pytest.fail(f"Timed out after {IMPORT_TIMEOUT}s importing {env_dir.name}")
|
|
151
|
-
assert process.returncode == 0, "Failed to import environment"
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
def help_test_can_load_env(tmp_venv_dir: Path, env_dir: Path):
|
|
155
|
-
"""Test that the environment can be loaded."""
|
|
156
|
-
load_cmd = f"""cd {tmp_venv_dir} && source .venv/bin/activate && uv run python -c 'import verifiers as vf; vf.load_environment("{env_dir.name}")'"""
|
|
157
|
-
try:
|
|
158
|
-
process = subprocess.run(
|
|
159
|
-
load_cmd,
|
|
160
|
-
shell=True,
|
|
161
|
-
executable="/bin/bash",
|
|
162
|
-
capture_output=True,
|
|
163
|
-
text=True,
|
|
164
|
-
timeout=LOAD_TIMEOUT,
|
|
165
|
-
)
|
|
166
|
-
except subprocess.TimeoutExpired:
|
|
167
|
-
pytest.fail(f"Timed out after {LOAD_TIMEOUT}s loading {env_dir.name}")
|
|
168
|
-
assert process.returncode == 0, "Failed to load environment"
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
def help_test_can_eval_env(tmp_venv_dir: Path, env_dir: Path):
|
|
172
|
-
"""Test that the environment can be run via vf-eval."""
|
|
173
|
-
if os.getenv("PRIME_API_KEY"):
|
|
174
|
-
model_flags = "-m openai/gpt-4.1-mini -b https://api.pinference.ai/api/v1 -k PRIME_API_KEY"
|
|
175
|
-
elif os.getenv("OPENAI_API_KEY"):
|
|
176
|
-
model_flags = "-m gpt-4.1-mini -b https://api.openai.com/v1 -k OPENAI_API_KEY"
|
|
177
|
-
else:
|
|
178
|
-
pytest.skip("Skipping vf-eval smoke test because no API key is configured")
|
|
179
|
-
|
|
180
|
-
eval_cmd = (
|
|
181
|
-
f"cd {tmp_venv_dir} && source .venv/bin/activate && "
|
|
182
|
-
f"uv run vf-eval {env_dir.name} {model_flags} -n 1 -r 1 -t 512"
|
|
183
|
-
)
|
|
184
|
-
try:
|
|
185
|
-
process = subprocess.run(
|
|
186
|
-
eval_cmd,
|
|
187
|
-
shell=True,
|
|
188
|
-
executable="/bin/bash",
|
|
189
|
-
capture_output=True,
|
|
190
|
-
text=True,
|
|
191
|
-
timeout=EVAL_TIMEOUT,
|
|
192
|
-
)
|
|
193
|
-
except subprocess.TimeoutExpired:
|
|
194
|
-
pytest.fail(f"Timed out after {EVAL_TIMEOUT}s evaluating {env_dir.name}")
|
|
195
|
-
assert process.returncode == 0, "Failed to evaluate environment"
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
|
|
3
|
-
import pytest
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def test_wordle_load_environment_reads_system_prompt_path(tmp_path, monkeypatch):
|
|
7
|
-
pytest.importorskip("nltk")
|
|
8
|
-
pytest.importorskip("textarena")
|
|
9
|
-
from environments.wordle import wordle
|
|
10
|
-
|
|
11
|
-
class CapturingTextArenaEnv:
|
|
12
|
-
def __init__(self, **kwargs):
|
|
13
|
-
self.kwargs = kwargs
|
|
14
|
-
|
|
15
|
-
prompt = "Optimized Wordle prompt.\n\nPreserve exact text.\n"
|
|
16
|
-
prompt_path = tmp_path / "system_prompt.txt"
|
|
17
|
-
prompt_path.write_text(prompt, encoding="utf-8")
|
|
18
|
-
monkeypatch.setattr(wordle, "TextArenaEnv", CapturingTextArenaEnv)
|
|
19
|
-
|
|
20
|
-
env = wordle.load_environment(path_to_system_prompt=Path(prompt_path))
|
|
21
|
-
|
|
22
|
-
assert env.kwargs["system_prompt"] == prompt
|
|
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.dev52 → verifiers-0.2.1.dev54}/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
|