verifiers 0.2.2.dev57__tar.gz → 0.2.2.dev59__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.2.dev57 → verifiers-0.2.2.dev59}/PKG-INFO +1 -1
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/conftest.py +3 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/conftest.py +4 -3
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_tool_v1.py +8 -7
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_e2e.py +3 -1
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/env.py +1 -1
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/__init__.py +6 -0
- verifiers-0.2.2.dev59/verifiers/v1/harnesses/hermes_agent/__init__.py +6 -0
- verifiers-0.2.2.dev59/verifiers/v1/harnesses/hermes_agent/harness.py +140 -0
- verifiers-0.2.2.dev59/verifiers/v1/harnesses/hermes_agent/program.py +10 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/task.py +2 -2
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/.gitignore +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/LICENSE +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/README.md +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/pyproject.toml +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_browser_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_build_script.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_client_config.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_composable_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_env_group.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_env_server.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_environment.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_environment_extra.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_error_chain.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_eval_display.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_eval_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_gym_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_imports.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_init_script.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_install_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_interception_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_logging.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_math_rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_message_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_openenv_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_path_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_renderer_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_rubric_group.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_save_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_setup_script.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_think_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_tool_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_tool_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_types.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/test_xml_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_multi_v0.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_v0.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_configs.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_envs.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_graph.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_judges.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_legacy.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/tests/v1/test_trace.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/cli/tui.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_completions_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_responses_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/renderer_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/decorators.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/env_group.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/environment.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/README.md +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/task.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/gym_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/README.md +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/multiturn_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/sandbox_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/stateful_tool_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/tool_env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/errors.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/gepa/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/gepa/adapter.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/gepa/config.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/gepa/display.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/gepa/gepa_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/parsers/parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/parsers/think_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/parsers/xml_parser.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/rubrics/judge_rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/rubrics/math_rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/rubrics/rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/build.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/eval.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/gepa.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/init.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/install.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/setup.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/client/env_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/server/env_router.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/server/env_worker.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/serve/types.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/types.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/async_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/client_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/data_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/display_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/env_config_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/env_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/error_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/eval_display.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/eval_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/heartbeat.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/install_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/interception_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/logging_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/message_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/metric_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/process_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/save_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/thread_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/usage_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/utils/version_utils.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/acp/_runner.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/agent.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/artifacts.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/serve.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/clients/config.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/serve.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/legacy.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/decorators.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/episode.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/errors.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/graph.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/bash/program.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/null/program.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/pool/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/judge.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/legacy.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/loaders.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/push.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/retries.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/scoring.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/session.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/state.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/trace.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/types.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/install.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/sampling.py +0 -0
- {verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/v1/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.dev59
|
|
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
|
|
@@ -45,6 +45,9 @@ def pytest_configure(config) -> None:
|
|
|
45
45
|
config.addinivalue_line(
|
|
46
46
|
"markers", "claude_code: v1 e2e cases on the claude-code harness"
|
|
47
47
|
)
|
|
48
|
+
config.addinivalue_line(
|
|
49
|
+
"markers", "hermes_agent: v1 e2e cases on the hermes-agent harness"
|
|
50
|
+
)
|
|
48
51
|
|
|
49
52
|
|
|
50
53
|
@pytest.fixture
|
|
@@ -25,7 +25,8 @@ Every combination carries its axes' pytest marks, so subsets select with `-m`:
|
|
|
25
25
|
uv run pytest tests/v1 -n auto -m modal # only modal (needs local setup)
|
|
26
26
|
|
|
27
27
|
Marks: runtimes `subprocess` / `docker` / `prime` / `modal`, placement `colocated`,
|
|
28
|
-
harnesses `null` / `bash` / `rlm` / `kimi_code` / `pi` / `pool` / `codex` / `claude_code
|
|
28
|
+
harnesses `null` / `bash` / `rlm` / `kimi_code` / `pi` / `pool` / `codex` / `claude_code` /
|
|
29
|
+
`hermes_agent`.
|
|
29
30
|
A mark is applied per axis, so it selects every case touching that value on ANY axis; for one exact
|
|
30
31
|
combination use `-k` on the test id (e.g. `-k "harness-in-docker-with-tool-in-subprocess"`).
|
|
31
32
|
prime/modal provision real remote sandboxes (slow, infra-flaky, need setup), so they're local-only.
|
|
@@ -69,8 +70,8 @@ def tool_runtime(request) -> dict:
|
|
|
69
70
|
|
|
70
71
|
|
|
71
72
|
# Built-in harnesses are bundled in the `harnesses` package; the agent CLIs (`rlm` /
|
|
72
|
-
# `kimi-code` / `codex` / `claude-code`) install their dependencies at rollout.
|
|
73
|
-
# example harness) and `terminus-2` (drives the host tmux) are excluded from e2e.
|
|
73
|
+
# `kimi-code` / `codex` / `claude-code` / `hermes-agent`) install their dependencies at rollout.
|
|
74
|
+
# `compact` (an example harness) and `terminus-2` (drives the host tmux) are excluded from e2e.
|
|
74
75
|
@pytest.fixture
|
|
75
76
|
def harness(request) -> str:
|
|
76
77
|
return request.param
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"""echo (v1, MCP tool): retrieve a stamped echo from a `vf.Toolset`, then report it.
|
|
2
2
|
|
|
3
|
-
The v1 tool fixture for the e2e matrix. The task
|
|
4
|
-
with one `@vf.tool` method whose placement is
|
|
5
|
-
`--taskset.task.tools.runtime.type`):
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
The v1 tool fixture for the e2e matrix. The task constructs an `EchoToolset`
|
|
4
|
+
(`vf.Toolset`) in `Task.toolsets`, with one `@vf.tool` method whose placement is
|
|
5
|
+
CLI-tunable (`--taskset.task.tools.colocated`, `--taskset.task.tools.runtime.type`):
|
|
6
|
+
it runs colocated in the harness's runtime or in its own runtime, and the harness
|
|
7
|
+
must reach it wherever it lives. The tool stamps its output with a token the prompt
|
|
8
|
+
never reveals, so the reward is 1.0 only if the model actually called the tool —
|
|
9
|
+
trivial when the infra works, impossible when it doesn't. The tool is task-agnostic,
|
|
10
|
+
so it would also serve taskset-scoped (`Taskset.toolsets`).
|
|
10
11
|
"""
|
|
11
12
|
|
|
12
13
|
import verifiers.v1 as vf
|
|
@@ -37,6 +37,7 @@ AGENTIC_PLACEMENTS = [
|
|
|
37
37
|
_pair("kimi-code", "docker", "kimi-code-harness-in-docker"),
|
|
38
38
|
_pair("codex", "docker", "codex-harness-in-docker"),
|
|
39
39
|
_pair("claude-code", "docker", "claude-code-harness-in-docker"),
|
|
40
|
+
_pair("hermes-agent", "docker", "hermes-agent-harness-in-docker"),
|
|
40
41
|
_pair("bash", "prime", "bash-harness-in-prime"),
|
|
41
42
|
_pair("bash", "modal", "bash-harness-in-modal"),
|
|
42
43
|
]
|
|
@@ -54,6 +55,7 @@ USER_RUNTIMES = [
|
|
|
54
55
|
# retain MCP access after resuming. Cover every harness in the local container runtime,
|
|
55
56
|
# plus one remote placement for the sandbox/tunnel boundary.
|
|
56
57
|
ACP_RESUME_PLACEMENTS = [
|
|
58
|
+
_pair("hermes-agent", "docker", "hermes-agent-acp-in-docker"),
|
|
57
59
|
_pair("kimi-code", "docker", "kimi-code-acp-in-docker"),
|
|
58
60
|
_pair("pi", "docker", "pi-acp-in-docker"),
|
|
59
61
|
_pair("pool", "docker", "pool-acp-in-docker"),
|
|
@@ -234,7 +236,7 @@ async def test_tool(run_v1, harness_runtime, tool_runtime, tmp_path):
|
|
|
234
236
|
the harness's runtime, or its own runtime) x the harness `runtime`. The tool stamps
|
|
235
237
|
its output with a token the prompt never reveals, so reward 1.0 proves the tool was
|
|
236
238
|
reachable from wherever the harness runs and actually ran. Eval-wide SHARED servers
|
|
237
|
-
are a different scope (`Taskset.
|
|
239
|
+
are a different scope (`Taskset.toolsets`) with their own env-server-path coverage:
|
|
238
240
|
`test_shared_tool_isolation`."""
|
|
239
241
|
(trace,) = await run_v1(
|
|
240
242
|
"echo-tool-v1",
|
|
@@ -379,7 +379,7 @@ class Env(ABC, Generic[ConfigT]):
|
|
|
379
379
|
def _requires_tunnel(self, shared: dict[str, SharedToolServer]) -> bool:
|
|
380
380
|
"""`requires_tunnel` over the consumers known before any rollout: role
|
|
381
381
|
runtimes, live `shared` servers, and the task class's tool servers
|
|
382
|
-
(
|
|
382
|
+
(`Task.toolsets` is a classmethod, so no task instance is needed)."""
|
|
383
383
|
task_cls = type(self.taskset).task_type()
|
|
384
384
|
configs = [
|
|
385
385
|
server.config for server in task_cls.toolsets(self.taskset.config.task)
|
|
@@ -8,6 +8,10 @@ from verifiers.v1.harnesses.claude_code import (
|
|
|
8
8
|
ClaudeCodeHarnessConfig,
|
|
9
9
|
)
|
|
10
10
|
from verifiers.v1.harnesses.codex import CodexHarness, CodexHarnessConfig
|
|
11
|
+
from verifiers.v1.harnesses.hermes_agent import (
|
|
12
|
+
HermesAgentHarness,
|
|
13
|
+
HermesAgentHarnessConfig,
|
|
14
|
+
)
|
|
11
15
|
from verifiers.v1.harnesses.kimi_code import KimiCodeHarness, KimiCodeHarnessConfig
|
|
12
16
|
from verifiers.v1.harnesses.mini_swe_agent import (
|
|
13
17
|
MiniSWEAgentHarness,
|
|
@@ -28,6 +32,8 @@ __all__ = [
|
|
|
28
32
|
"ClaudeCodeHarnessConfig",
|
|
29
33
|
"CodexHarness",
|
|
30
34
|
"CodexHarnessConfig",
|
|
35
|
+
"HermesAgentHarness",
|
|
36
|
+
"HermesAgentHarnessConfig",
|
|
31
37
|
"KimiCodeHarness",
|
|
32
38
|
"KimiCodeHarnessConfig",
|
|
33
39
|
"MiniSWEAgentHarness",
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"""Run Hermes Agent against interception through its native ACP server."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import logging
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
from pydantic import Field
|
|
8
|
+
|
|
9
|
+
from verifiers.v1.acp import ACP
|
|
10
|
+
from verifiers.v1.clients import ModelContext
|
|
11
|
+
from verifiers.v1.configs.harness import HarnessConfig
|
|
12
|
+
from verifiers.v1.harness import Harness
|
|
13
|
+
from verifiers.v1.runtimes import ProgramResult, Runtime
|
|
14
|
+
from verifiers.v1.task import TaskData
|
|
15
|
+
from verifiers.v1.trace import Trace
|
|
16
|
+
|
|
17
|
+
PROGRAM_SOURCE = (Path(__file__).resolve().parent / "program.py").read_text()
|
|
18
|
+
SKILLS_DIR = ".vf-hermes-skills"
|
|
19
|
+
HERMES_ACP = ACP()
|
|
20
|
+
PROVIDER = "intercept"
|
|
21
|
+
logger = logging.getLogger(__name__)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class HermesAgentHarnessConfig(HarnessConfig):
|
|
25
|
+
version: str = Field(default="0.19.0", pattern=r"^[A-Za-z0-9._+-]+$")
|
|
26
|
+
"""Hermes Agent release to install, pinned for reproducibility."""
|
|
27
|
+
use_bundled_skill: bool = False
|
|
28
|
+
"""Enable Hermes Agent's bundled skill catalog in addition to uploaded skills."""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class HermesAgentHarness(Harness[HermesAgentHarnessConfig]):
|
|
32
|
+
APPENDS_SYSTEM_PROMPT = True
|
|
33
|
+
SUPPORTS_MCP = True
|
|
34
|
+
SUPPORTS_RESUME = True
|
|
35
|
+
SUPPORTS_SKILLS = True
|
|
36
|
+
|
|
37
|
+
async def setup(self, runtime: Runtime) -> None:
|
|
38
|
+
await self.install_skills(runtime, SKILLS_DIR)
|
|
39
|
+
logger.info(
|
|
40
|
+
"hermes-agent: ensuring Hermes Agent %s is installed", self.config.version
|
|
41
|
+
)
|
|
42
|
+
source = PROGRAM_SOURCE.replace("{version}", self.config.version)
|
|
43
|
+
await runtime.prepare_uv_script(source, self.config.resolved_env)
|
|
44
|
+
await HERMES_ACP.setup(self, runtime)
|
|
45
|
+
|
|
46
|
+
async def launch(
|
|
47
|
+
self,
|
|
48
|
+
ctx: ModelContext,
|
|
49
|
+
trace: Trace,
|
|
50
|
+
runtime: Runtime,
|
|
51
|
+
endpoint: str,
|
|
52
|
+
secret: str,
|
|
53
|
+
mcp_urls: dict[str, str],
|
|
54
|
+
data: TaskData,
|
|
55
|
+
) -> ProgramResult:
|
|
56
|
+
if self.config.disabled_tools:
|
|
57
|
+
raise ValueError("Hermes Agent ACP does not support disabling tools")
|
|
58
|
+
|
|
59
|
+
system_prompt, prompt = self.resolve_prompt(data)
|
|
60
|
+
home = self._home(trace)
|
|
61
|
+
model: dict[str, object] = {
|
|
62
|
+
"provider": PROVIDER,
|
|
63
|
+
"default": ctx.model,
|
|
64
|
+
"base_url": endpoint,
|
|
65
|
+
"api_mode": "chat_completions",
|
|
66
|
+
}
|
|
67
|
+
if ctx.sampling.max_tokens is not None:
|
|
68
|
+
model["max_tokens"] = ctx.sampling.max_tokens
|
|
69
|
+
await runtime.write(
|
|
70
|
+
f"{home}/config.yaml",
|
|
71
|
+
json.dumps(
|
|
72
|
+
{
|
|
73
|
+
"model": model,
|
|
74
|
+
# The ACP client already approves tool requests. Avoid routing Hermes'
|
|
75
|
+
# redundant smart-approval model calls through interception as turns.
|
|
76
|
+
"approvals": {"mode": "off"},
|
|
77
|
+
"providers": {
|
|
78
|
+
PROVIDER: {
|
|
79
|
+
"api": endpoint,
|
|
80
|
+
"api_key": secret,
|
|
81
|
+
"transport": "chat_completions",
|
|
82
|
+
"discover_models": False,
|
|
83
|
+
"models": [ctx.model],
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
}
|
|
87
|
+
).encode(),
|
|
88
|
+
)
|
|
89
|
+
if not self.config.use_bundled_skill:
|
|
90
|
+
await runtime.write(
|
|
91
|
+
f"{home}/.no-bundled-skills",
|
|
92
|
+
b"Verifiers supplies evaluation skills explicitly.\n",
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
if self.config.skills:
|
|
96
|
+
skill_home = f"{home}/skills"
|
|
97
|
+
for command in (
|
|
98
|
+
["rm", "-rf", skill_home],
|
|
99
|
+
["cp", "-R", SKILLS_DIR, skill_home],
|
|
100
|
+
):
|
|
101
|
+
copied = await runtime.run(command, {})
|
|
102
|
+
if copied.exit_code != 0:
|
|
103
|
+
raise RuntimeError(
|
|
104
|
+
f"failed to stage Hermes skills: {copied.stderr.strip()[-500:]}"
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
env = {
|
|
108
|
+
**self.config.resolved_env,
|
|
109
|
+
"HERMES_HOME": home,
|
|
110
|
+
"HERMES_ACP_SKIP_CONFIGURED_MCP": "1",
|
|
111
|
+
}
|
|
112
|
+
source = PROGRAM_SOURCE.replace("{version}", self.config.version)
|
|
113
|
+
command = await runtime.prepare_uv_script(source, env)
|
|
114
|
+
calls_before = len(trace.calls)
|
|
115
|
+
result = await HERMES_ACP.run(
|
|
116
|
+
runtime,
|
|
117
|
+
env,
|
|
118
|
+
command,
|
|
119
|
+
prompt,
|
|
120
|
+
mcp_urls=mcp_urls,
|
|
121
|
+
system_prompt=system_prompt,
|
|
122
|
+
session_path=f"{home}/acp-session",
|
|
123
|
+
)
|
|
124
|
+
if not any(call.node is not None for call in trace.calls[calls_before:]):
|
|
125
|
+
detail = (result.stderr or result.stdout).strip()[-500:] or "<no output>"
|
|
126
|
+
raise RuntimeError(
|
|
127
|
+
"Hermes Agent completed without committing a model turn: " + detail
|
|
128
|
+
)
|
|
129
|
+
return result
|
|
130
|
+
|
|
131
|
+
async def cleanup(self, trace: Trace, runtime: Runtime) -> None:
|
|
132
|
+
result = await runtime.run(["rm", "-rf", self._home(trace)], {})
|
|
133
|
+
if result.exit_code != 0:
|
|
134
|
+
raise RuntimeError(
|
|
135
|
+
f"failed to clean up Hermes home: {result.stderr.strip()[-500:]}"
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
@staticmethod
|
|
139
|
+
def _home(trace: Trace) -> str:
|
|
140
|
+
return f"/tmp/vf-hermes/{trace.id}"
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
`TaskData` is the wire half: a frozen pydantic model carrying the data which
|
|
4
4
|
initializes a task instance. Rides on `trace.task.data` in `traces.jsonl`.
|
|
5
5
|
|
|
6
|
-
`Task` is the behavior half: runtime prep (`setup`/`finalize`), tool
|
|
7
|
-
(`
|
|
6
|
+
`Task` is the behavior half: runtime prep (`setup`/`finalize`), tool servers
|
|
7
|
+
(`toolsets`), and scoring (`@reward`/`@metric`) methods.
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
from __future__ import annotations
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.dev57 → verifiers-0.2.2.dev59}/tests/test_openai_chat_completions_token_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/anthropic_messages_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/nemorl_chat_completions_client.py
RENAMED
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_chat_completions_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_completions_client.py
RENAMED
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/clients/openai_responses_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/cli_agent_env.py
RENAMED
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/README.md
RENAMED
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.2.2.dev57 → verifiers-0.2.2.dev59}/verifiers/envs/experimental/composable/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|