verifiers 0.1.15.dev163__tar.gz → 0.1.15.dev165__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.dev163 → verifiers-0.1.15.dev165}/PKG-INFO +1 -1
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_composable_env.py +7 -12
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_harbor_cli.py +24 -27
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_mini_swe_agent.py +10 -14
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_rlm_swe.py +3 -3
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/__init__.py +4 -2
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +54 -15
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/opencode.py +4 -21
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/harness.py +5 -1
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/.gitignore +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/LICENSE +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/pyproject.toml +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/AGENTS.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/conftest.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_browser_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_build_script.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_cli_agent_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_client_auth_errors.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_client_config.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_context_token_metrics.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_decorator_ranks.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_env_group.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_env_server.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_environment.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_environment_extra.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_envs.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_error_chain.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_eval_cli.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_eval_display.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_eval_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_gepa_cli.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_gym_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_imports.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_init_script.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_install_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_interception_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_langchain_deep_agents_wikispeedia.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_lean_task.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_logging.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_math_rubric.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_mcp_search_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_message_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_nemorl_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_openai_chat_completions_token_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_opencode_harbor.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_opencode_rlm_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_openenv_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_path_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_renderer_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_renderer_e2e.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_rlm_composable_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_rubric.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_rubric_group.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_sandbox_mixin.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_save_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_setup_script.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_think_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_tool_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_tool_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_types.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_bfcl.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_config_extension.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_empty_completions.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_endpoint_protocols.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_example_counts.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_group_reward_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_nemo_gym_harness.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_openenv_taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_openreward_taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_replay_harness.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_runtime_lifecycle.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_scoring_functions.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_taskset_bindings.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_taskset_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_v1_textarena_taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_wiki_search_v1.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_wordle_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_wordle_v1_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/tests/test_xml_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/AGENTS.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/build.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/eval.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/gepa.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/install.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/plugins/prime.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/cli/tui.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/anthropic_messages_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/nemorl_chat_completions_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/openai_chat_completions_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/openai_chat_completions_token_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/openai_completions_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/openai_responses_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/clients/renderer_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/decorators.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/AGENTS.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/env_group.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/environment.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/cli_agent_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/_filter.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/composable_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harness.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/harnesses/rlm.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/swe_debug_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/task.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/lean/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/lean/lean_task.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/gym_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/harbor_env/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/harbor_env/env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/harbor_env/mcp.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/mcp_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/opencode_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/opencode_rlm_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/sandbox_mixin.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/utils/file_locks.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/experimental/utils/git_checkout_cache.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/base.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/openenv_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/reasoninggym_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/integrations/textarena_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/multiturn_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/sandbox_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/stateful_tool_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/envs/tool_env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/errors.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/gepa/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/gepa/adapter.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/gepa/config.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/gepa/display.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/gepa/gepa_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/parsers/maybe_think_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/parsers/parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/parsers/think_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/parsers/xml_parser.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/inference/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/inference/client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/inference/server.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/config.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/orchestrator.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/trainer.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rl/trainer/utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rubrics/experimental/hybrid_math_rubric.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rubrics/judge_rubric.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rubrics/math_rubric.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rubrics/rubric.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/build.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/eval.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/gepa.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/init.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/install.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/rl.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/setup.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/train.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/scripts/vllm.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/client/env_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/client/zmq_env_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/server/env_router.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/server/env_worker.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/serve/types.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/types.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/async_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/client_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/data_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/display_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/env_config_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/env_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/error_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/eval_display.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/eval_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/heartbeat.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/install_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/interception_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/logging_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/message_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/metric_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/process_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/save_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/thread_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/threaded_sandbox_client.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/usage_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/utils/version_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/ENVIRONMENT_BEST_PRACTICES.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/README.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/RE_MIGRATION.md +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/artifact.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/config.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/env.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/model.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/program.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/runtime.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/runtime_handles.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/sandbox.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/state.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/task.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/toolset.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/types.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/user.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/binding_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/config_callable_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/config_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/endpoint_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/json_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/judge_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/lifecycle_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/logging_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/mcp_proxy_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/mcp_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/object_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/program_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/prompt_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/runtime_owner_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/runtime_registry.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/sandbox_program_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/sandbox_python_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/sandbox_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/scoring_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/serialization_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/task_freeze_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/taskset_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/tool_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/toolset_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/trajectory_utils.py +0 -0
- {verifiers-0.1.15.dev163 → verifiers-0.1.15.dev165}/verifiers/v1/utils/usage_utils.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.dev165
|
|
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
|
|
@@ -193,25 +193,20 @@ def test_taskset_repr():
|
|
|
193
193
|
assert "3" in repr(ts)
|
|
194
194
|
|
|
195
195
|
|
|
196
|
-
def
|
|
197
|
-
setup = build_mini_swe_agent_install_script(
|
|
196
|
+
def test_composable_mini_swe_agent_install_script_uses_pip_requirement():
|
|
197
|
+
setup = build_mini_swe_agent_install_script()
|
|
198
198
|
|
|
199
|
-
assert
|
|
200
|
-
|
|
201
|
-
in setup
|
|
202
|
-
)
|
|
203
|
-
assert "mini-swe-agent==mini-swe-agent" not in setup
|
|
199
|
+
assert "mini-swe-agent==2.2.8" in setup
|
|
200
|
+
assert "files.pythonhosted.org" not in setup
|
|
204
201
|
|
|
205
202
|
|
|
206
|
-
def
|
|
203
|
+
def test_composable_opencode_install_script_owns_release_download():
|
|
207
204
|
setup = build_opencode_install_script(
|
|
208
|
-
release=" PrimeIntellect-ai/opencode ",
|
|
209
205
|
install_ripgrep=False,
|
|
210
206
|
)
|
|
211
207
|
|
|
212
|
-
assert "
|
|
213
|
-
assert "
|
|
214
|
-
assert "releases/download/vPrimeIntellect-ai/opencode" not in setup
|
|
208
|
+
assert "PrimeIntellect-ai/opencode/releases/download/v1.1.63-rl2" in setup
|
|
209
|
+
assert "tar -xzf /tmp/opencode.tar.gz" in setup
|
|
215
210
|
|
|
216
211
|
|
|
217
212
|
@pytest.mark.asyncio
|
|
@@ -25,10 +25,10 @@ from harnesses import (
|
|
|
25
25
|
Terminus2Config,
|
|
26
26
|
Terminus2ProgramConfig,
|
|
27
27
|
)
|
|
28
|
-
from harnesses.pi import
|
|
28
|
+
from harnesses.pi import PI_DEFAULT_VERSION
|
|
29
29
|
from harnesses.terminus_2 import (
|
|
30
30
|
TERMINUS_2_DEFAULT_API_BASE_URL,
|
|
31
|
-
|
|
31
|
+
TERMINUS_2_DEFAULT_VERSION,
|
|
32
32
|
TERMINUS_2_DEFAULT_MODEL_NAME,
|
|
33
33
|
Terminus2,
|
|
34
34
|
)
|
|
@@ -268,7 +268,7 @@ def test_opencode_config_owns_opencode_harness_fields() -> None:
|
|
|
268
268
|
max_turns=2,
|
|
269
269
|
)
|
|
270
270
|
)
|
|
271
|
-
program = cast(dict[str, object], harness.
|
|
271
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
272
272
|
command = cast(list[object], program["command"])
|
|
273
273
|
mcp_setup = cast(dict[str, object], program["channels"])["mcp"]
|
|
274
274
|
setup = cast(str, program["setup"])
|
|
@@ -287,33 +287,34 @@ def test_opencode_config_owns_opencode_harness_fields() -> None:
|
|
|
287
287
|
|
|
288
288
|
|
|
289
289
|
@pytest.mark.parametrize(
|
|
290
|
-
"
|
|
290
|
+
"version",
|
|
291
|
+
["PrimeIntellect-ai/opencode@latest", " PrimeIntellect-ai/opencode "],
|
|
291
292
|
)
|
|
292
|
-
def
|
|
293
|
+
def test_opencode_latest_version_uses_latest_download_url(
|
|
294
|
+
version: str,
|
|
295
|
+
) -> None:
|
|
293
296
|
harness = OpenCode(
|
|
294
297
|
config=OpenCodeConfig(
|
|
298
|
+
version=version,
|
|
295
299
|
program=OpenCodeProgramConfig(
|
|
296
|
-
release=release,
|
|
297
300
|
install_ripgrep=False,
|
|
298
|
-
)
|
|
301
|
+
),
|
|
299
302
|
)
|
|
300
303
|
)
|
|
301
|
-
program = cast(dict[str, object], harness.
|
|
304
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
302
305
|
setup = cast(str, program["setup"])
|
|
303
306
|
|
|
304
307
|
assert "OPENCODE_RELEASE_REPO=PrimeIntellect-ai/opencode" in setup
|
|
305
308
|
assert "OPENCODE_RELEASE_PATH=releases/latest/download" in setup
|
|
306
309
|
|
|
307
310
|
|
|
308
|
-
def
|
|
311
|
+
def test_opencode_custom_version_uses_versioned_release() -> None:
|
|
309
312
|
harness = OpenCode(
|
|
310
313
|
config=OpenCodeConfig(
|
|
311
|
-
|
|
312
|
-
release="Example/open-code@v2.0.0",
|
|
313
|
-
)
|
|
314
|
+
version="Example/open-code@v2.0.0",
|
|
314
315
|
)
|
|
315
316
|
)
|
|
316
|
-
program = cast(dict[str, object], harness.
|
|
317
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
317
318
|
setup = cast(str, program["setup"])
|
|
318
319
|
|
|
319
320
|
assert "OPENCODE_RELEASE_REPO=Example/open-code" in setup
|
|
@@ -339,7 +340,7 @@ def test_packaged_command_harnesses_defer_partial_program_overrides(
|
|
|
339
340
|
"args": ["--caller"],
|
|
340
341
|
}
|
|
341
342
|
harness = harness_cls(config=config_cls(program=override))
|
|
342
|
-
program = cast(dict[str, object], harness.
|
|
343
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
343
344
|
env = cast(dict[str, object], program["env"])
|
|
344
345
|
setup = cast(list[object], program["setup"])
|
|
345
346
|
args = cast(list[object], program["args"])
|
|
@@ -363,7 +364,7 @@ def test_packaged_command_harness_config_program_patch_precedence() -> None:
|
|
|
363
364
|
program=MiniSWEAgentProgramConfig(env={"OPENAI_MODEL": "caller-model"})
|
|
364
365
|
)
|
|
365
366
|
)
|
|
366
|
-
program = cast(dict[str, object], harness.
|
|
367
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
367
368
|
env = cast(dict[str, object], program["env"])
|
|
368
369
|
|
|
369
370
|
assert env["OPENAI_MODEL"] == "caller-model"
|
|
@@ -385,16 +386,16 @@ def test_packaged_command_harness_config_program_rejects_owned_keys(
|
|
|
385
386
|
|
|
386
387
|
def test_pi_harness_writes_intercepted_model_and_mcp_config() -> None:
|
|
387
388
|
harness = Pi()
|
|
388
|
-
program = cast(dict[str, object], harness.
|
|
389
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
389
390
|
setup = cast(str, program["setup"])
|
|
390
391
|
channels = cast(dict[str, object], program["channels"])
|
|
391
392
|
mcp_setup = cast(str, channels["mcp"])
|
|
392
393
|
|
|
393
394
|
assert "apt-get -o Acquire::Retries=3 update" in setup
|
|
394
395
|
assert "apt-get -o Acquire::Retries=3 install" in setup
|
|
395
|
-
assert harness.config.
|
|
396
|
-
assert
|
|
397
|
-
assert f"npm install -g --ignore-scripts {
|
|
396
|
+
assert harness.config.version == PI_DEFAULT_VERSION
|
|
397
|
+
assert PI_DEFAULT_VERSION == "@earendil-works/pi-coding-agent@latest"
|
|
398
|
+
assert f"npm install -g --ignore-scripts {PI_DEFAULT_VERSION}" in setup
|
|
398
399
|
assert "mariozechner" not in setup
|
|
399
400
|
assert '"baseUrl": "${OPENAI_BASE_URL}"' in mcp_setup
|
|
400
401
|
assert '"api": "openai-completions"' in mcp_setup
|
|
@@ -404,13 +405,9 @@ def test_pi_harness_writes_intercepted_model_and_mcp_config() -> None:
|
|
|
404
405
|
assert f'"command": "{SANDBOX_PYTHON}"' in mcp_setup
|
|
405
406
|
|
|
406
407
|
|
|
407
|
-
def
|
|
408
|
-
harness = Pi(
|
|
409
|
-
|
|
410
|
-
program=PiProgramConfig(package="@anthropic-ai/claude-code@1.2.3")
|
|
411
|
-
)
|
|
412
|
-
)
|
|
413
|
-
program = cast(dict[str, object], harness.config.program.data())
|
|
408
|
+
def test_pi_harness_preserves_scoped_npm_versions() -> None:
|
|
409
|
+
harness = Pi(config=PiConfig(version="@anthropic-ai/claude-code@1.2.3"))
|
|
410
|
+
program = cast(dict[str, object], harness.program_config.data())
|
|
414
411
|
setup = cast(str, program["setup"])
|
|
415
412
|
|
|
416
413
|
assert "npm install -g --ignore-scripts @anthropic-ai/claude-code@1.2.3" in setup
|
|
@@ -445,7 +442,7 @@ def test_terminus_2_harness_builds_sandbox_program() -> None:
|
|
|
445
442
|
|
|
446
443
|
run_script = cast(str, command[2])
|
|
447
444
|
assert "TERMINUS_2_WORKDIR=/workspace" in run_script
|
|
448
|
-
assert f"--with {
|
|
445
|
+
assert f"--with {TERMINUS_2_DEFAULT_VERSION}" in run_script
|
|
449
446
|
assert "git+https://github.com" not in run_script
|
|
450
447
|
assert "max_turns=7" in run_script
|
|
451
448
|
|
|
@@ -68,7 +68,7 @@ def test_mini_swe_agent_builds_sandbox_program():
|
|
|
68
68
|
),
|
|
69
69
|
)
|
|
70
70
|
)
|
|
71
|
-
program = cast(dict[str, Any], harness.
|
|
71
|
+
program = cast(dict[str, Any], harness.program_config.data())
|
|
72
72
|
command = cast(list[str], program["command"])
|
|
73
73
|
script = command[-1]
|
|
74
74
|
|
|
@@ -86,12 +86,12 @@ def test_mini_swe_agent_builds_sandbox_program():
|
|
|
86
86
|
assert "mini_swe_agent_log" in cast(dict[str, object], program["artifacts"])
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
@pytest.mark.parametrize("
|
|
90
|
-
def
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
)
|
|
94
|
-
program = cast(dict[str, Any], harness.
|
|
89
|
+
@pytest.mark.parametrize("version", ["mini-swe-agent@latest", " mini-swe-agent "])
|
|
90
|
+
def test_mini_swe_agent_latest_version_uses_unpinned_pip_requirement(
|
|
91
|
+
version: str,
|
|
92
|
+
):
|
|
93
|
+
harness = MiniSWEAgent(config=MiniSWEAgentConfig(version=version))
|
|
94
|
+
program = cast(dict[str, Any], harness.program_config.data())
|
|
95
95
|
setup = cast(str, program["setup"])
|
|
96
96
|
|
|
97
97
|
assert (
|
|
@@ -100,13 +100,9 @@ def test_mini_swe_agent_latest_package_uses_unpinned_pip_requirement(package: st
|
|
|
100
100
|
)
|
|
101
101
|
|
|
102
102
|
|
|
103
|
-
def
|
|
104
|
-
harness = MiniSWEAgent(
|
|
105
|
-
|
|
106
|
-
program=MiniSWEAgentProgramConfig(package="mini-swe-agent@2.2.7")
|
|
107
|
-
)
|
|
108
|
-
)
|
|
109
|
-
program = cast(dict[str, Any], harness.config.program.data())
|
|
103
|
+
def test_mini_swe_agent_pinned_version_uses_pip_requirement():
|
|
104
|
+
harness = MiniSWEAgent(config=MiniSWEAgentConfig(version="mini-swe-agent@2.2.7"))
|
|
105
|
+
program = cast(dict[str, Any], harness.program_config.data())
|
|
110
106
|
setup = cast(str, program["setup"])
|
|
111
107
|
|
|
112
108
|
assert "mini-swe-agent==2.2.7" in setup
|
|
@@ -81,8 +81,8 @@ def test_rlm_harness_accepts_typed_config_surface():
|
|
|
81
81
|
config=RLMConfig(
|
|
82
82
|
program=RLMProgramConfig(
|
|
83
83
|
local_checkout="/tmp/checkout",
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
tools=["bash", "edit"],
|
|
85
|
+
exec_timeout=11,
|
|
86
86
|
env_vars={"CUSTOM": "1"},
|
|
87
87
|
)
|
|
88
88
|
)
|
|
@@ -90,7 +90,7 @@ def test_rlm_harness_accepts_typed_config_surface():
|
|
|
90
90
|
program = as_dict(harness.config.program)
|
|
91
91
|
program_env = as_dict(program["env"])
|
|
92
92
|
|
|
93
|
-
assert harness.config.program.
|
|
93
|
+
assert harness.config.program.tools == ["bash", "edit"]
|
|
94
94
|
assert program_env["RLM_TOOLS"] == "bash,edit"
|
|
95
95
|
assert program_env["RLM_EXEC_TIMEOUT"] == "11"
|
|
96
96
|
assert program_env["CUSTOM"] == "1"
|
|
@@ -9,7 +9,8 @@ from verifiers.envs.experimental.composable.harnesses.rlm import (
|
|
|
9
9
|
)
|
|
10
10
|
from verifiers.envs.experimental.composable.harnesses.opencode import (
|
|
11
11
|
DEFAULT_DISABLED_TOOLS,
|
|
12
|
-
|
|
12
|
+
DEFAULT_RELEASE_REPO,
|
|
13
|
+
DEFAULT_RELEASE_VERSION,
|
|
13
14
|
DEFAULT_SYSTEM_PROMPT,
|
|
14
15
|
OPENCODE_INSTALL_SCRIPT,
|
|
15
16
|
build_install_script as build_opencode_install_script,
|
|
@@ -39,7 +40,8 @@ __all__ = [
|
|
|
39
40
|
"build_opencode_run_command",
|
|
40
41
|
"OPENCODE_INSTALL_SCRIPT",
|
|
41
42
|
"DEFAULT_DISABLED_TOOLS",
|
|
42
|
-
"
|
|
43
|
+
"DEFAULT_RELEASE_REPO",
|
|
44
|
+
"DEFAULT_RELEASE_VERSION",
|
|
43
45
|
"DEFAULT_SYSTEM_PROMPT",
|
|
44
46
|
"mini_swe_agent_harness",
|
|
45
47
|
"build_mini_swe_agent_install_script",
|
|
@@ -3,18 +3,15 @@
|
|
|
3
3
|
from pathlib import PurePosixPath
|
|
4
4
|
import shlex
|
|
5
5
|
|
|
6
|
-
from harnesses.mini_swe_agent import (
|
|
7
|
-
MINI_SWE_AGENT_DEFAULT_PACKAGE,
|
|
8
|
-
build_mini_swe_agent_install_script as build_packaged_mini_swe_agent_install_script,
|
|
9
|
-
)
|
|
10
|
-
|
|
11
6
|
DEFAULT_INSTALL_DIR = "/opt/mini-swe-agent"
|
|
12
7
|
DEFAULT_PREFIX_DIR = f"{DEFAULT_INSTALL_DIR}/prefix"
|
|
13
8
|
DEFAULT_SITE_PACKAGES_DIR = f"{DEFAULT_PREFIX_DIR}/site-packages"
|
|
9
|
+
DEFAULT_UV_SITE_PACKAGES_DIR = f"{DEFAULT_INSTALL_DIR}/uv-site-packages"
|
|
14
10
|
DEFAULT_MINI_BINARY = f"{DEFAULT_PREFIX_DIR}/bin/mini"
|
|
15
11
|
MINI_SWE_AGENT_CLI_PACKAGE = "mini-swe-agent"
|
|
16
12
|
MINI_SWE_AGENT_CLI_VERSION = "2.2.8"
|
|
17
|
-
|
|
13
|
+
MINI_SWE_AGENT_PYTHON_VERSION = "3.11"
|
|
14
|
+
UV_PACKAGE_VERSION = "0.11.7"
|
|
18
15
|
DEFAULT_INSTRUCTION_PATH = "/mini-swe-agent/prompt.txt"
|
|
19
16
|
DEFAULT_SYSTEM_PROMPT_PATH = "/mini-swe-agent/system.txt"
|
|
20
17
|
DEFAULT_LOG_DIR = "/logs/agent"
|
|
@@ -27,14 +24,59 @@ DEFAULT_ENVIRONMENT_TIMEOUT = 120
|
|
|
27
24
|
|
|
28
25
|
|
|
29
26
|
def build_mini_swe_agent_install_script(
|
|
30
|
-
package: str = DEFAULT_PACKAGE,
|
|
31
27
|
prefix_dir: str = DEFAULT_PREFIX_DIR,
|
|
28
|
+
install_python: bool = True,
|
|
32
29
|
) -> str:
|
|
33
30
|
"""Build the shell script that installs mini-SWE-agent."""
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
install_tools = ""
|
|
32
|
+
if install_python:
|
|
33
|
+
# Acquire::Retries=3 mitigates transient archive.ubuntu.com CDN sync
|
|
34
|
+
# mismatches that fail fresh-sandbox apt-get update mid-rollout.
|
|
35
|
+
install_tools = """\
|
|
36
|
+
export DEBIAN_FRONTEND=noninteractive
|
|
37
|
+
if ! command -v python3 >/dev/null 2>&1 || ! python3 -m pip --version >/dev/null 2>&1; then
|
|
38
|
+
apt-get -o Acquire::Retries=3 update -qq
|
|
39
|
+
apt-get -o Acquire::Retries=3 install -y -qq python3 python3-pip ca-certificates
|
|
40
|
+
fi
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
quoted_prefix_dir = shlex.quote(prefix_dir)
|
|
44
|
+
site_packages_dir = f"{prefix_dir}/site-packages"
|
|
45
|
+
package_requirement = f"{MINI_SWE_AGENT_CLI_PACKAGE}=={MINI_SWE_AGENT_CLI_VERSION}"
|
|
46
|
+
quoted_site_packages_dir = shlex.quote(site_packages_dir)
|
|
47
|
+
quoted_install_dir = shlex.quote(DEFAULT_INSTALL_DIR)
|
|
48
|
+
quoted_uv_site_packages_dir = shlex.quote(DEFAULT_UV_SITE_PACKAGES_DIR)
|
|
49
|
+
quoted_package_requirement = shlex.quote(package_requirement)
|
|
50
|
+
return f"""\
|
|
51
|
+
set -e
|
|
52
|
+
{install_tools}
|
|
53
|
+
rm -rf {quoted_prefix_dir}
|
|
54
|
+
mkdir -p {quoted_install_dir} {quoted_prefix_dir}/bin {quoted_site_packages_dir} {quoted_uv_site_packages_dir} {shlex.quote(DEFAULT_LOG_DIR)} /mini-swe-agent
|
|
55
|
+
export PIP_CONFIG_FILE=/dev/null
|
|
56
|
+
export PIP_INDEX_URL=https://pypi.org/simple
|
|
57
|
+
export PIP_BREAK_SYSTEM_PACKAGES=1
|
|
58
|
+
unset PIP_EXTRA_INDEX_URL
|
|
59
|
+
PYTHON_BIN="$(command -v python3)"
|
|
60
|
+
MINI_SWE_AGENT_PYTHON="$PYTHON_BIN"
|
|
61
|
+
if ! "$PYTHON_BIN" -c 'import sys; raise SystemExit(sys.version_info < (3, 10))'; then
|
|
62
|
+
"$PYTHON_BIN" -m pip install --quiet --target {quoted_uv_site_packages_dir} uv=={UV_PACKAGE_VERSION}
|
|
63
|
+
env PYTHONPATH={quoted_uv_site_packages_dir} "$PYTHON_BIN" -m uv python install {MINI_SWE_AGENT_PYTHON_VERSION}
|
|
64
|
+
MINI_SWE_AGENT_PYTHON="$(env PYTHONPATH={quoted_uv_site_packages_dir} "$PYTHON_BIN" -m uv python find {MINI_SWE_AGENT_PYTHON_VERSION})"
|
|
65
|
+
fi
|
|
66
|
+
if [ "$MINI_SWE_AGENT_PYTHON" = "$PYTHON_BIN" ]; then
|
|
67
|
+
"$PYTHON_BIN" -m pip install --quiet --target {quoted_site_packages_dir} {quoted_package_requirement}
|
|
68
|
+
else
|
|
69
|
+
env PYTHONPATH={quoted_uv_site_packages_dir} "$PYTHON_BIN" -m uv pip install --python "$MINI_SWE_AGENT_PYTHON" --target {quoted_site_packages_dir} {quoted_package_requirement}
|
|
70
|
+
fi
|
|
71
|
+
echo "$MINI_SWE_AGENT_PYTHON" > {quoted_prefix_dir}/python
|
|
72
|
+
cat > {quoted_prefix_dir}/bin/mini <<'EOF'
|
|
73
|
+
#!/usr/bin/env sh
|
|
74
|
+
export PYTHONPATH={shlex.quote(site_packages_dir)}:${{PYTHONPATH:-}}
|
|
75
|
+
exec "$(cat {quoted_prefix_dir}/python)" -m minisweagent.run.mini "$@"
|
|
76
|
+
EOF
|
|
77
|
+
chmod +x {quoted_prefix_dir}/bin/mini
|
|
78
|
+
test -x {quoted_prefix_dir}/bin/mini
|
|
79
|
+
"""
|
|
38
80
|
|
|
39
81
|
|
|
40
82
|
def build_mini_swe_agent_run_command(
|
|
@@ -133,7 +175,6 @@ def mini_swe_agent_harness(
|
|
|
133
175
|
system_prompt_path: str = DEFAULT_SYSTEM_PROMPT_PATH,
|
|
134
176
|
log_path: str = DEFAULT_LOG_PATH,
|
|
135
177
|
trajectory_path: str = DEFAULT_TRAJECTORY_PATH,
|
|
136
|
-
package: str = DEFAULT_PACKAGE,
|
|
137
178
|
config_spec: str = DEFAULT_CONFIG_SPEC,
|
|
138
179
|
model_class: str = DEFAULT_MODEL_CLASS,
|
|
139
180
|
environment_timeout: int = DEFAULT_ENVIRONMENT_TIMEOUT,
|
|
@@ -152,9 +193,7 @@ def mini_swe_agent_harness(
|
|
|
152
193
|
# The system prompt is passed through ComposableEnv as a file and injected
|
|
153
194
|
# into mini's agent.system_template at runtime.
|
|
154
195
|
return Harness(
|
|
155
|
-
install_script=build_mini_swe_agent_install_script(
|
|
156
|
-
package=package,
|
|
157
|
-
),
|
|
196
|
+
install_script=build_mini_swe_agent_install_script(),
|
|
158
197
|
run_command=build_mini_swe_agent_run_command(
|
|
159
198
|
agent_workdir=agent_workdir,
|
|
160
199
|
instruction_path=instruction_path,
|
|
@@ -13,11 +13,10 @@ import json
|
|
|
13
13
|
import shlex
|
|
14
14
|
from pathlib import Path, PurePosixPath
|
|
15
15
|
|
|
16
|
-
from harnesses.utils import split_versioned_agent_spec
|
|
17
|
-
|
|
18
16
|
# ── Defaults ─────────────────────────────────────────────────────────────
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
DEFAULT_RELEASE_REPO = "PrimeIntellect-ai/opencode"
|
|
19
|
+
DEFAULT_RELEASE_VERSION = "1.1.63-rl2"
|
|
21
20
|
DEFAULT_SYSTEM_PROMPT = (Path(__file__).parent / "prompt.txt").read_text()
|
|
22
21
|
|
|
23
22
|
DEFAULT_DISABLED_TOOLS = [
|
|
@@ -47,7 +46,6 @@ DEFAULT_DISABLED_TOOLS = [
|
|
|
47
46
|
|
|
48
47
|
|
|
49
48
|
def build_install_script(
|
|
50
|
-
release: str = DEFAULT_RELEASE,
|
|
51
49
|
install_ripgrep: bool = True,
|
|
52
50
|
) -> str:
|
|
53
51
|
"""Build the shell script that installs OpenCode in a sandbox."""
|
|
@@ -56,15 +54,6 @@ def build_install_script(
|
|
|
56
54
|
if install_ripgrep
|
|
57
55
|
else ""
|
|
58
56
|
)
|
|
59
|
-
release_repo, release_version = split_versioned_agent_spec(release)
|
|
60
|
-
release_path = "releases/latest/download"
|
|
61
|
-
if release_version and release_version != "latest":
|
|
62
|
-
release_tag = (
|
|
63
|
-
release_version
|
|
64
|
-
if release_version.startswith("v")
|
|
65
|
-
else f"v{release_version}"
|
|
66
|
-
)
|
|
67
|
-
release_path = f"releases/download/{release_tag}"
|
|
68
57
|
# Acquire::Retries=3 mitigates transient archive.ubuntu.com CDN sync mismatches
|
|
69
58
|
# (e.g. "File has unexpected size ... Mirror sync in progress?"). See launchpad
|
|
70
59
|
# bug #1876035. apt's default retries is 0, so one bad fetch fails the rollout.
|
|
@@ -73,9 +62,6 @@ set -e
|
|
|
73
62
|
apt-get -o Acquire::Retries=3 update -qq && apt-get -o Acquire::Retries=3 install -y -qq curl tar > /dev/null 2>&1
|
|
74
63
|
{rg_install}
|
|
75
64
|
|
|
76
|
-
OPENCODE_RELEASE_REPO={shlex.quote(release_repo)}
|
|
77
|
-
OPENCODE_RELEASE_PATH={shlex.quote(release_path)}
|
|
78
|
-
|
|
79
65
|
case "$(uname -m)" in
|
|
80
66
|
x86_64) OPENCODE_ARCH=x64 ;;
|
|
81
67
|
aarch64|arm64) OPENCODE_ARCH=arm64 ;;
|
|
@@ -83,7 +69,7 @@ case "$(uname -m)" in
|
|
|
83
69
|
esac
|
|
84
70
|
|
|
85
71
|
OPENCODE_ASSET="opencode-linux-$OPENCODE_ARCH.tar.gz"
|
|
86
|
-
OPENCODE_RELEASE_URL="https://github.com/$
|
|
72
|
+
OPENCODE_RELEASE_URL="https://github.com/{DEFAULT_RELEASE_REPO}/releases/download/v{DEFAULT_RELEASE_VERSION}/$OPENCODE_ASSET"
|
|
87
73
|
|
|
88
74
|
mkdir -p "$HOME/.opencode/bin"
|
|
89
75
|
if [ -x "$HOME/.opencode/bin/opencode" ]; then
|
|
@@ -248,7 +234,6 @@ def opencode_harness(
|
|
|
248
234
|
agent_workdir: str = "/app",
|
|
249
235
|
allow_git: bool = False,
|
|
250
236
|
disable_compaction: bool = True,
|
|
251
|
-
release: str = DEFAULT_RELEASE,
|
|
252
237
|
instruction_path: str = "/opencode/prompt.txt",
|
|
253
238
|
system_prompt_path: str = "/opencode/system.txt",
|
|
254
239
|
log_path: str = "/opencode/logs.txt",
|
|
@@ -275,9 +260,7 @@ def opencode_harness(
|
|
|
275
260
|
system_prompt = task_system_prompt
|
|
276
261
|
|
|
277
262
|
return Harness(
|
|
278
|
-
install_script=build_install_script(
|
|
279
|
-
release=release,
|
|
280
|
-
),
|
|
263
|
+
install_script=build_install_script(),
|
|
281
264
|
run_command=build_opencode_run_command(
|
|
282
265
|
agent_workdir=agent_workdir,
|
|
283
266
|
prompt_path=instruction_path,
|
|
@@ -106,6 +106,7 @@ class HarnessConfig(LifecycleConfig):
|
|
|
106
106
|
)
|
|
107
107
|
program: ProgramConfig = ProgramConfig()
|
|
108
108
|
model: ModelConfig = ModelConfig()
|
|
109
|
+
version: str | None = None
|
|
109
110
|
system_prompt: SystemPrompt = None
|
|
110
111
|
system_prompt_strategy: SystemPromptStrategy = "HT"
|
|
111
112
|
sandbox: SandboxConfig | None = None
|
|
@@ -189,7 +190,7 @@ class Harness(RuntimeOwnerMixin[ConfigT], Generic[ConfigT]):
|
|
|
189
190
|
):
|
|
190
191
|
raise TypeError("harness_id must be a string.")
|
|
191
192
|
self.harness_id = resolved_harness_id or type(self).__name__
|
|
192
|
-
self.program_config = self.config
|
|
193
|
+
self.program_config = self.load_program_config(self.config)
|
|
193
194
|
system_prompt_value = self.load_system_prompt(self.config)
|
|
194
195
|
self.system_prompt = normalize_system_prompt(
|
|
195
196
|
system_prompt_value, field_name="harness.system_prompt"
|
|
@@ -220,6 +221,9 @@ class Harness(RuntimeOwnerMixin[ConfigT], Generic[ConfigT]):
|
|
|
220
221
|
def load_system_prompt(self, config: ConfigT) -> SystemPrompt:
|
|
221
222
|
return config.system_prompt
|
|
222
223
|
|
|
224
|
+
def load_program_config(self, config: ConfigT) -> ProgramConfig:
|
|
225
|
+
return config.program.resolve()
|
|
226
|
+
|
|
223
227
|
def load_sandbox(self, config: SandboxConfig | None) -> SandboxConfig | None:
|
|
224
228
|
sandbox = self.program_config.sandbox
|
|
225
229
|
if sandbox is None or sandbox is False:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev163 → verifiers-0.1.15.dev165}/tests/test_langchain_deep_agents_wikispeedia.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
|