verifiers 0.1.15.dev406__tar.gz → 0.1.15.dev408__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.1.15.dev406 → verifiers-0.1.15.dev408}/PKG-INFO +1 -1
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/dashboard/eval.py +65 -1
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harness.py +14 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash/harness.py +5 -3
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash_edit/harness.py +5 -3
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/codex/harness.py +1 -1
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/default/harness.py +5 -3
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/kimi_code/harness.py +1 -1
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/mini_swe_agent/harness.py +3 -3
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/rlm/harness.py +2 -2
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/terminus_2/harness.py +3 -3
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/utils/format.py +9 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/.gitignore +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/LICENSE +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/pyproject.toml +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/AGENTS.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/conftest.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_browser_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_build_script.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_client_config.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_composable_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_env_group.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_env_server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_environment.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_environment_extra.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_envs.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_error_chain.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_eval_display.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_eval_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_gym_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_imports.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_init_script.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_install_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_interception_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_logging.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_math_rubric.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_message_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_openenv_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_path_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_renderer_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_rubric.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_rubric_group.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_save_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_setup_script.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_think_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_tool_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_tool_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_types.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_wordle_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/test_xml_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/conftest.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/echo_multi_v0.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/echo_v0.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_configs.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_envs.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_graph.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_legacy.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/test_trace.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/AGENTS.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/cli/tui.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/openai_completions_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/openai_responses_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/renderer_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/decorators.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/AGENTS.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/env_group.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/environment.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/harnesses/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/sandbox_debug_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/task.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/openseeker/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/openseeker/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/openseeker/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/api_tools/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/api_tools/tool_pdf.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/eval_toolkit.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/evaluator.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/llm_client/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/llm_client/base_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/prompts/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/prompts/cache_prompts.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/cache_filesys.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/load_eval_script.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/misc.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/tool_visit.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/utils/url_tools.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/obj_task_eval/verification_tree.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/open_ended.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/quest/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/redsearcher/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/search/search_tasksets.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/gym_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/multiturn_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/sandbox_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/stateful_tool_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/envs/tool_env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/errors.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/gepa/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/gepa/adapter.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/gepa/config.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/gepa/display.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/gepa/gepa_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/parsers/parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/parsers/think_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/parsers/xml_parser.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/inference/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/inference/client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/inference/server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/trainer/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/trainer/config.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/trainer/orchestrator.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/trainer/trainer.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rl/trainer/utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rubrics/judge_rubric.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rubrics/math_rubric.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rubrics/rubric.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/build.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/eval.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/gepa.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/init.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/install.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/rl.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/setup.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/train.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/scripts/vllm.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/client/env_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/server/env_router.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/server/env_worker.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/serve/types.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/types.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/async_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/client_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/data_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/display_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/env_config_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/env_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/error_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/eval_display.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/eval_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/heartbeat.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/install_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/interception_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/logging_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/message_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/metric_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/process_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/save_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/thread_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/usage_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/utils/version_utils.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/ARCHITECTURE.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/GUIDE.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/README.md +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/serve.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/clients/config.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/configs/eval.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/configs/init.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/configs/validate.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/decorators.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/env.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/episode.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/errors.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/graph.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash/program.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash_edit/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash_edit/program.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/default/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/default/program.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/judge.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/legacy.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/loaders.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/mcp/multiplex.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/mcp/user.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/retries.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/docker.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/state.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/task.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/trace.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/types.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/utils/install.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/utils/memory.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.1.15.
|
|
3
|
+
Version: 0.1.15.dev408
|
|
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
|
|
@@ -13,6 +13,7 @@ above a rule.
|
|
|
13
13
|
import contextlib
|
|
14
14
|
import time
|
|
15
15
|
|
|
16
|
+
from pydantic import BaseModel
|
|
16
17
|
from rich.console import Console, Group
|
|
17
18
|
from rich.markup import escape
|
|
18
19
|
from rich.progress_bar import ProgressBar
|
|
@@ -26,7 +27,12 @@ from verifiers.v1.configs.eval import EvalConfig
|
|
|
26
27
|
from verifiers.v1.rollout import Phase, Rollout
|
|
27
28
|
from verifiers.v1.trace import Trace
|
|
28
29
|
from verifiers.v1.types import Usage
|
|
29
|
-
from verifiers.v1.utils.format import
|
|
30
|
+
from verifiers.v1.utils.format import (
|
|
31
|
+
format_count,
|
|
32
|
+
format_mean,
|
|
33
|
+
format_override,
|
|
34
|
+
format_time,
|
|
35
|
+
)
|
|
30
36
|
from verifiers.utils.pricing_utils import format_cost_usd
|
|
31
37
|
|
|
32
38
|
# For sizing pages to the terminal: detects the real terminal height/width each access (the live
|
|
@@ -121,6 +127,54 @@ def _warning(config: EvalConfig) -> Text | None:
|
|
|
121
127
|
return None
|
|
122
128
|
|
|
123
129
|
|
|
130
|
+
def overrides(
|
|
131
|
+
config: BaseModel,
|
|
132
|
+
default: BaseModel | None = None,
|
|
133
|
+
skip: frozenset[str] = frozenset(),
|
|
134
|
+
) -> list[str]:
|
|
135
|
+
"""`field=value` segments for the fields the *user* customized, sorted, diffed against each
|
|
136
|
+
field's declared default. Not `model_fields_set`: a `--resume` run reloads its config via
|
|
137
|
+
`model_validate(config.toml)`, and that toml is dumped with `exclude_none` (every field), so
|
|
138
|
+
`model_fields_set` would flag them all. `default` is the reference instance, threaded through
|
|
139
|
+
recursion so a pinned nested default (a taskset's `user=UserConfig(colocated=True)`) reads as
|
|
140
|
+
unchanged. `skip` holds dotted paths (`harness.runtime.type`)."""
|
|
141
|
+
segments: list[str] = []
|
|
142
|
+
fields = type(config).model_fields
|
|
143
|
+
for field in sorted(fields):
|
|
144
|
+
if field in skip:
|
|
145
|
+
continue
|
|
146
|
+
value = getattr(config, field)
|
|
147
|
+
# `get_default` returns `PydanticUndefined` for a required field, so it always reads as set.
|
|
148
|
+
field_def = (
|
|
149
|
+
fields[field].get_default(call_default_factory=True)
|
|
150
|
+
if default is None
|
|
151
|
+
else getattr(default, field, None)
|
|
152
|
+
)
|
|
153
|
+
if isinstance(value, BaseModel): # nested config: flatten as `field.<sub>`
|
|
154
|
+
child_skip = frozenset(
|
|
155
|
+
s[len(field) + 1 :] for s in skip if s.startswith(f"{field}.")
|
|
156
|
+
)
|
|
157
|
+
# A switched discriminator (e.g. subprocess→docker) is an override the per-field diff
|
|
158
|
+
# misses — within the new class `type` equals its own default — so surface it.
|
|
159
|
+
class_changed = type(value) is not type(field_def)
|
|
160
|
+
if (
|
|
161
|
+
class_changed
|
|
162
|
+
and "type" not in child_skip
|
|
163
|
+
and (discriminator := getattr(value, "type", None)) is not None
|
|
164
|
+
):
|
|
165
|
+
segments.append(f"{field}.type={format_override(discriminator)}")
|
|
166
|
+
# A switched class is a new shape, so diff against its own defaults, not the instance.
|
|
167
|
+
segments.extend(
|
|
168
|
+
f"{field}.{seg}"
|
|
169
|
+
for seg in overrides(
|
|
170
|
+
value, default=None if class_changed else field_def, skip=child_skip
|
|
171
|
+
)
|
|
172
|
+
)
|
|
173
|
+
elif value != field_def:
|
|
174
|
+
segments.append(f"{field}={format_override(value)}")
|
|
175
|
+
return segments
|
|
176
|
+
|
|
177
|
+
|
|
124
178
|
def Overview(config: EvalConfig) -> Table:
|
|
125
179
|
sampling = ", ".join(
|
|
126
180
|
f"{k}={v}" for k, v in config.sampling.model_dump(exclude_none=True).items()
|
|
@@ -134,6 +188,16 @@ def Overview(config: EvalConfig) -> Table:
|
|
|
134
188
|
)
|
|
135
189
|
model = f"{config.model} ({sampling})" if sampling else config.model
|
|
136
190
|
grid.add_row("model", f"{model} via {config.client.base_url}")
|
|
191
|
+
# Non-default knobs the user set, one row each when non-empty. `escape` the cell: an override
|
|
192
|
+
# value (or our `[...]`/`{...}` delimiters) can carry Rich markup that would otherwise be
|
|
193
|
+
# parsed as styling and dropped. `id` is in the `env` row; harness `runtime.type` too (hidden
|
|
194
|
+
# here), but only for the harness — a taskset's `user.runtime.type` has no other display.
|
|
195
|
+
if taskset_over := overrides(config.taskset, skip=frozenset({"id"})):
|
|
196
|
+
grid.add_row("taskset", escape(" · ".join(taskset_over)))
|
|
197
|
+
if harness_over := overrides(
|
|
198
|
+
config.harness, skip=frozenset({"id", "runtime.type"})
|
|
199
|
+
):
|
|
200
|
+
grid.add_row("harness", escape(" · ".join(harness_over)))
|
|
137
201
|
limits, timeouts = _aligned([_limits(config), _timeouts(config)])
|
|
138
202
|
grid.add_row("limits", limits)
|
|
139
203
|
grid.add_row("timeouts", timeouts)
|
|
@@ -8,6 +8,7 @@ runtime and the interception server are owned by the Rollout.
|
|
|
8
8
|
|
|
9
9
|
import asyncio
|
|
10
10
|
import logging
|
|
11
|
+
import os
|
|
11
12
|
from abc import ABC, abstractmethod
|
|
12
13
|
from collections.abc import Mapping
|
|
13
14
|
from typing import ClassVar, Generic, TypeVar
|
|
@@ -50,6 +51,11 @@ class HarnessConfig(BaseConfig):
|
|
|
50
51
|
env: dict[str, str] = Field(default_factory=dict)
|
|
51
52
|
"""Additional environment variables for the harness program. Harness-owned endpoint,
|
|
52
53
|
authentication, and model variables take precedence."""
|
|
54
|
+
forward_env: list[str] = Field(default_factory=list)
|
|
55
|
+
"""Names of environment variables to forward into the harness program's runtime, for
|
|
56
|
+
secrets that must not be written into a checked-in config. Resolved from `os.environ` at
|
|
57
|
+
launch — names absent from the environment are skipped, and an explicit `env` value takes
|
|
58
|
+
precedence over a forwarded one."""
|
|
53
59
|
disabled_tools: list[str] | None = None
|
|
54
60
|
"""Harness-specific tool names to disable."""
|
|
55
61
|
|
|
@@ -58,6 +64,14 @@ class HarnessConfig(BaseConfig):
|
|
|
58
64
|
"""The harness's package name (the id with any org / version stripped)."""
|
|
59
65
|
return env_name(self.id)
|
|
60
66
|
|
|
67
|
+
@property
|
|
68
|
+
def resolved_env(self) -> dict[str, str]:
|
|
69
|
+
"""`env` merged with the `forward_env` variables present in the current process
|
|
70
|
+
environment (explicit `env` wins). This is the environment the harness program runs
|
|
71
|
+
with; harnesses pass it to the runtime instead of `env` directly."""
|
|
72
|
+
forwarded = {k: os.environ[k] for k in self.forward_env if k in os.environ}
|
|
73
|
+
return {**forwarded, **self.env}
|
|
74
|
+
|
|
61
75
|
|
|
62
76
|
ConfigT = TypeVar("ConfigT", bound=HarnessConfig)
|
|
63
77
|
|
|
@@ -33,7 +33,7 @@ class BashHarness(Harness[BashHarnessConfig]):
|
|
|
33
33
|
SUPPORTS_MESSAGE_PROMPT = True
|
|
34
34
|
|
|
35
35
|
async def setup(self, runtime: Runtime) -> None:
|
|
36
|
-
await runtime.prepare_uv_script(PROGRAM_SOURCE, self.config.
|
|
36
|
+
await runtime.prepare_uv_script(PROGRAM_SOURCE, self.config.resolved_env)
|
|
37
37
|
|
|
38
38
|
async def launch(
|
|
39
39
|
self,
|
|
@@ -46,7 +46,7 @@ class BashHarness(Harness[BashHarnessConfig]):
|
|
|
46
46
|
) -> ProgramResult:
|
|
47
47
|
system_prompt, prompt = self.resolve_prompt(trace.task)
|
|
48
48
|
system_prompt = "\n\n".join(p for p in (BASH_SYSTEM_PROMPT, system_prompt) if p)
|
|
49
|
-
env = {**self.config.
|
|
49
|
+
env = {**self.config.resolved_env}
|
|
50
50
|
args = [
|
|
51
51
|
f"--base-url={endpoint}",
|
|
52
52
|
f"--api-key={secret}",
|
|
@@ -73,5 +73,7 @@ class BashHarness(Harness[BashHarnessConfig]):
|
|
|
73
73
|
args.append(f"--prompt={prompt}")
|
|
74
74
|
elif prompt is not None:
|
|
75
75
|
env["INITIAL_MESSAGES"] = json.dumps([message_to_wire(m) for m in prompt])
|
|
76
|
-
program = await runtime.prepare_uv_script(
|
|
76
|
+
program = await runtime.prepare_uv_script(
|
|
77
|
+
PROGRAM_SOURCE, self.config.resolved_env
|
|
78
|
+
)
|
|
77
79
|
return await runtime.run_program([*program, *args], env)
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/bash_edit/harness.py
RENAMED
|
@@ -39,7 +39,7 @@ class BashEditHarness(Harness[BashEditHarnessConfig]):
|
|
|
39
39
|
SUPPORTS_MESSAGE_PROMPT = True
|
|
40
40
|
|
|
41
41
|
async def setup(self, runtime: Runtime) -> None:
|
|
42
|
-
await runtime.prepare_uv_script(PROGRAM_SOURCE, self.config.
|
|
42
|
+
await runtime.prepare_uv_script(PROGRAM_SOURCE, self.config.resolved_env)
|
|
43
43
|
|
|
44
44
|
async def launch(
|
|
45
45
|
self,
|
|
@@ -54,7 +54,7 @@ class BashEditHarness(Harness[BashEditHarnessConfig]):
|
|
|
54
54
|
system_prompt = "\n\n".join(
|
|
55
55
|
p for p in (BASH_EDIT_SYSTEM_PROMPT, system_prompt) if p
|
|
56
56
|
)
|
|
57
|
-
env = {**self.config.
|
|
57
|
+
env = {**self.config.resolved_env}
|
|
58
58
|
args = [
|
|
59
59
|
f"--base-url={endpoint}",
|
|
60
60
|
f"--api-key={secret}",
|
|
@@ -81,5 +81,7 @@ class BashEditHarness(Harness[BashEditHarnessConfig]):
|
|
|
81
81
|
args.append(f"--prompt={prompt}")
|
|
82
82
|
elif prompt is not None:
|
|
83
83
|
env["INITIAL_MESSAGES"] = json.dumps([message_to_wire(m) for m in prompt])
|
|
84
|
-
program = await runtime.prepare_uv_script(
|
|
84
|
+
program = await runtime.prepare_uv_script(
|
|
85
|
+
PROGRAM_SOURCE, self.config.resolved_env
|
|
86
|
+
)
|
|
85
87
|
return await runtime.run_program([*program, *args], env)
|
|
@@ -75,7 +75,7 @@ class CodexHarness(Harness[CodexHarnessConfig]):
|
|
|
75
75
|
_, prompt = self.resolve_prompt(trace.task)
|
|
76
76
|
# codex authenticates to the interception server with the session secret (its provider
|
|
77
77
|
# api key) and posts Responses calls to `{endpoint}/responses`.
|
|
78
|
-
env = {**self.config.
|
|
78
|
+
env = {**self.config.resolved_env, KEY_VAR: secret}
|
|
79
79
|
# Values are Codex feature names such as `shell_tool`; Codex owns validation.
|
|
80
80
|
# https://developers.openai.com/codex/config-reference#features
|
|
81
81
|
tool_config = [
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/default/harness.py
RENAMED
|
@@ -30,7 +30,7 @@ class DefaultHarness(Harness[DefaultHarnessConfig]):
|
|
|
30
30
|
SUPPORTS_MESSAGE_PROMPT = True
|
|
31
31
|
|
|
32
32
|
async def setup(self, runtime: Runtime) -> None:
|
|
33
|
-
await runtime.prepare_uv_script(PROGRAM_SOURCE, self.config.
|
|
33
|
+
await runtime.prepare_uv_script(PROGRAM_SOURCE, self.config.resolved_env)
|
|
34
34
|
|
|
35
35
|
async def launch(
|
|
36
36
|
self,
|
|
@@ -42,7 +42,7 @@ class DefaultHarness(Harness[DefaultHarnessConfig]):
|
|
|
42
42
|
mcp_urls: dict[str, str],
|
|
43
43
|
) -> ProgramResult:
|
|
44
44
|
system_prompt, prompt = self.resolve_prompt(trace.task)
|
|
45
|
-
env = {**self.config.
|
|
45
|
+
env = {**self.config.resolved_env}
|
|
46
46
|
args = [
|
|
47
47
|
f"--base-url={endpoint}",
|
|
48
48
|
f"--api-key={secret}",
|
|
@@ -70,5 +70,7 @@ class DefaultHarness(Harness[DefaultHarnessConfig]):
|
|
|
70
70
|
args.append(f"--prompt={prompt}")
|
|
71
71
|
elif prompt is not None:
|
|
72
72
|
env["INITIAL_MESSAGES"] = json.dumps([message_to_wire(m) for m in prompt])
|
|
73
|
-
program = await runtime.prepare_uv_script(
|
|
73
|
+
program = await runtime.prepare_uv_script(
|
|
74
|
+
PROGRAM_SOURCE, self.config.resolved_env
|
|
75
|
+
)
|
|
74
76
|
return await runtime.run_program([*program, *args], env)
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/kimi_code/harness.py
RENAMED
|
@@ -73,7 +73,7 @@ class KimiCodeHarness(Harness[KimiCodeHarnessConfig]):
|
|
|
73
73
|
) -> ProgramResult:
|
|
74
74
|
_, prompt = self.resolve_prompt(trace.task)
|
|
75
75
|
env = {
|
|
76
|
-
**self.config.
|
|
76
|
+
**self.config.resolved_env,
|
|
77
77
|
"KIMI_CODE_HOME": KIMI_HOME,
|
|
78
78
|
"KIMI_MODEL_NAME": ctx.model,
|
|
79
79
|
"KIMI_MODEL_API_KEY": secret,
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/mini_swe_agent/harness.py
RENAMED
|
@@ -23,7 +23,7 @@ class MiniSWEAgentHarness(Harness[MiniSWEAgentHarnessConfig]):
|
|
|
23
23
|
|
|
24
24
|
async def setup(self, runtime: Runtime) -> None:
|
|
25
25
|
source = PROGRAM_SOURCE.replace("{version}", self.config.version)
|
|
26
|
-
await runtime.prepare_uv_script(source, self.config.
|
|
26
|
+
await runtime.prepare_uv_script(source, self.config.resolved_env)
|
|
27
27
|
|
|
28
28
|
async def launch(
|
|
29
29
|
self,
|
|
@@ -66,9 +66,9 @@ class MiniSWEAgentHarness(Harness[MiniSWEAgentHarnessConfig]):
|
|
|
66
66
|
f"model.model_kwargs.api_key={secret}",
|
|
67
67
|
]
|
|
68
68
|
env = {
|
|
69
|
-
**self.config.
|
|
69
|
+
**self.config.resolved_env,
|
|
70
70
|
"MSWEA_CONFIGURED": "true",
|
|
71
71
|
"MSWEA_SILENT_STARTUP": "true",
|
|
72
72
|
}
|
|
73
|
-
program = await runtime.prepare_uv_script(source, self.config.
|
|
73
|
+
program = await runtime.prepare_uv_script(source, self.config.resolved_env)
|
|
74
74
|
return await runtime.run_program([*program, *args], env)
|
|
@@ -72,7 +72,7 @@ class RLMHarness(Harness[RLMHarnessConfig]):
|
|
|
72
72
|
logger.info("rlm: ensuring rlm is installed (version=%s)", self.config.version)
|
|
73
73
|
ensure = shlex.quote(f"[ -x {RLM_BIN} ] || ({install})")
|
|
74
74
|
guarded = f"mkdir -p {RLM_DIR} && flock {RLM_DIR}/install.lock sh -c {ensure}"
|
|
75
|
-
env = {**self.config.
|
|
75
|
+
env = {**self.config.resolved_env, "RLM_HOME": RLM_HOME}
|
|
76
76
|
result = await runtime.run(["sh", "-c", guarded], env)
|
|
77
77
|
if result.exit_code != 0:
|
|
78
78
|
raise RuntimeError(f"rlm install failed: {result.stderr.strip()[-500:]}")
|
|
@@ -88,7 +88,7 @@ class RLMHarness(Harness[RLMHarnessConfig]):
|
|
|
88
88
|
) -> ProgramResult:
|
|
89
89
|
system_prompt, prompt = self.resolve_prompt(trace.task)
|
|
90
90
|
env = {
|
|
91
|
-
**self.config.
|
|
91
|
+
**self.config.resolved_env,
|
|
92
92
|
"RLM_BASE_URL": endpoint,
|
|
93
93
|
"RLM_API_KEY": secret,
|
|
94
94
|
"RLM_MODEL": ctx.model,
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/v1/harnesses/terminus_2/harness.py
RENAMED
|
@@ -35,7 +35,7 @@ class Terminus2Harness(Harness[Terminus2HarnessConfig]):
|
|
|
35
35
|
"(--harness.runtime.type docker|prime|modal)."
|
|
36
36
|
)
|
|
37
37
|
source = PROGRAM_SOURCE.replace("{version}", self.config.version)
|
|
38
|
-
await runtime.prepare_uv_script(source, self.config.
|
|
38
|
+
await runtime.prepare_uv_script(source, self.config.resolved_env)
|
|
39
39
|
|
|
40
40
|
async def launch(
|
|
41
41
|
self,
|
|
@@ -55,7 +55,7 @@ class Terminus2Harness(Harness[Terminus2HarnessConfig]):
|
|
|
55
55
|
)
|
|
56
56
|
tmux_dir = f"/tmp/vf-terminus-2-{trace.id}"
|
|
57
57
|
env = {
|
|
58
|
-
**self.config.
|
|
58
|
+
**self.config.resolved_env,
|
|
59
59
|
"TMUX_TMPDIR": tmux_dir,
|
|
60
60
|
}
|
|
61
61
|
args = [
|
|
@@ -67,7 +67,7 @@ class Terminus2Harness(Harness[Terminus2HarnessConfig]):
|
|
|
67
67
|
]
|
|
68
68
|
try:
|
|
69
69
|
source = PROGRAM_SOURCE.replace("{version}", self.config.version)
|
|
70
|
-
program = await runtime.prepare_uv_script(source, self.config.
|
|
70
|
+
program = await runtime.prepare_uv_script(source, self.config.resolved_env)
|
|
71
71
|
return await runtime.run_program([*program, *args], env)
|
|
72
72
|
finally:
|
|
73
73
|
# Harbor normally destroys its whole sandbox; this adapter borrows the
|
|
@@ -34,6 +34,15 @@ def format_count(n: int) -> str:
|
|
|
34
34
|
return f"{n / 1e6:.1f}M"
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
def format_override(value: object) -> str:
|
|
38
|
+
"""A value as one compact segment: dict `{k=v,k=v}`, list/tuple `[a,b]`, else `str`."""
|
|
39
|
+
if isinstance(value, dict):
|
|
40
|
+
return "{" + ",".join(f"{k}={v}" for k, v in value.items()) + "}"
|
|
41
|
+
if isinstance(value, (list, tuple)):
|
|
42
|
+
return "[" + ",".join(str(v) for v in value) + "]"
|
|
43
|
+
return str(value)
|
|
44
|
+
|
|
45
|
+
|
|
37
46
|
def format_mean(
|
|
38
47
|
traces: list[Trace], value: Callable[[Trace], float], digits: int = 2
|
|
39
48
|
) -> str:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.1.15.dev406 → verifiers-0.1.15.dev408}/tests/v1/fixtures/tool_response_image_v1.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
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/anthropic_messages_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/openai_completions_client.py
RENAMED
|
File without changes
|
{verifiers-0.1.15.dev406 → verifiers-0.1.15.dev408}/verifiers/clients/openai_responses_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|