verifiers 0.2.2.dev33__tar.gz → 0.2.2.dev35__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/PKG-INFO +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/pyproject.toml +5 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/conftest.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_browser_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_cli_agent_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_client_auth_errors.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_composable_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_context_token_metrics.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_decorator_ranks.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_env_server.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_environment_extra.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_gepa_cli.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_imports.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_nemorl_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_openai_chat_completions_token_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_opencode_rlm_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_openenv_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_renderer_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_renderer_e2e.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_rlm_composable_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_rubric.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_sandbox_mixin.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_save_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_tool_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/duet_v1.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_acp_resume_v1.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_user_sim_v1.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_v1.py +5 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_envs.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_judges.py +15 -6
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_scoring.py +5 -7
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/build.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/eval.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/gepa.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/init.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/install.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/plugins/prime.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/anthropic_messages_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/nemorl_chat_completions_client.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/openai_chat_completions_client.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/openai_chat_completions_token_client.py +4 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/openai_completions_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/openai_responses_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/renderer_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/decorators.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/env_group.py +8 -6
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/environment.py +5 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/cli_agent_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/README.md +10 -8
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/_filter.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/composable_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/harness.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/harnesses/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/harnesses/mini_swe_agent.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/harnesses/rlm.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/sandbox_debug_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/swe_debug_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/task.py +5 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/cp/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/cp/cp_task.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/cp/test_utils.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/harbor/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/harbor/harbor.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/harbor/terminal_lego.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/math/math_task.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/openswe/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/shared/test_patch.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/taskset.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/gym_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/harbor_env/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/harbor_env/env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/harbor_env/mcp.py +6 -6
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/mcp_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/opencode_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/opencode_rlm_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/sandbox_mixin.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/utils/file_locks.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/utils/git_checkout_cache.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/README.md +12 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/modes/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/modes/base.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/modes/cua_mode.py +14 -12
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/modes/dom_mode.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/openenv_env.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/reasoninggym_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/textarena_env.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/multiturn_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/sandbox_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/stateful_tool_env.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/tool_env.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/errors.py +3 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/gepa/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/gepa/adapter.py +4 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/gepa/gepa_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/parsers/maybe_think_parser.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/parsers/parser.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/parsers/think_parser.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/parsers/xml_parser.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/rubrics/experimental/hybrid_math_rubric.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/rubrics/judge_rubric.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/rubrics/math_rubric.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/rubrics/rubric.py +10 -8
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/build.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/eval.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/gepa.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/install.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/setup.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/__init__.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/client/env_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/client/zmq_env_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/server/env_router.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/server/env_worker.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/types.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/types.py +4 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/async_utils.py +4 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/client_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/data_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/display_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/env_config_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/env_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/error_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/eval_display.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/eval_utils.py +6 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/heartbeat.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/install_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/interception_utils.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/logging_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/message_utils.py +7 -5
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/metric_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/process_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/save_utils.py +4 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/thread_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/threaded_sandbox_client.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/usage_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/version_utils.py +2 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/__init__.py +45 -31
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/agent.py +26 -31
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/debug.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/eval/resume.py +2 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/init.py +5 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/validate.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/clients/train.py +1 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/env.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/retries.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/task.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/decorators.py +2 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/dialects/chat.py +2 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/env.py +6 -8
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/agentic_judge/env.py +5 -5
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/gepa/adapter.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/gepa/reflection.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/gepa/runner.py +15 -15
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harness.py +2 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/bash/program.py +9 -5
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/codex/harness.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/pi/harness.py +6 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/pool/harness.py +7 -5
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/rlm/harness.py +5 -5
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/terminus_2/program.py +3 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/server.py +8 -8
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/judge.py +8 -10
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/judges/rubric.py +9 -9
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/legacy.py +2 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/loaders.py +8 -9
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/mcp/server.py +3 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/push.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/retries.py +2 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/rollout.py +9 -10
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/base.py +3 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/docker/__init__.py +1 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/docker/egress.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/limiters.py +2 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/modal.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/prime.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/subprocess.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/scoring.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/serve/client.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/task.py +4 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/harbor/taskset.py +8 -7
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/lean/taskset.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/openenv/taskset.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/trace.py +2 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/aio.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/compile.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/git.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/version.py +1 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/.gitignore +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/LICENSE +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/README.md +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_build_script.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_client_config.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_client_multimodal_types.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_endpoint_registry.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_env_group.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_environment.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_error_chain.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_eval_display.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_eval_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_gepa_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_gym_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_harbor_env_mcp.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_init_script.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_install_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_interception_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_logging.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_math_rubric.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_maybe_think_parser.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_message_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_message_utils_multimodal.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_multiturn_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_openai_responses_client.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_parser.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_path_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_per_turn_timing.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_pricing_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_prime_plugin.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_rubric_group.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_sandbox_debug_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_sandbox_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_setup_script.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_singleturn_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_stateful_tool_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_think_parser.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_tool_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_trajectory_processing.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_tui_info_formatting.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_types.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/test_xml_parser.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/conftest.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_multi_v0.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/echo_v0.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_configs.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_graph.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_legacy.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/tests/v1/test_trace.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/commands/setup.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/plugins/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/cli/tui.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/README.md +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/harnesses/opencode.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/harnesses/prompt.txt +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/harbor/cli_gym.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/math/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/README.md +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/multi_swe/extract_fix_patch.sh +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/openswe/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/r2e_gym/log_parser.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/scale_swe/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/shared/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_bench/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_lego/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_rebench_v2/log_parsers.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_smith/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/tasksets/swe/swe_tasksets.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/opencode_qa_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/utils/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/README.md +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/integrations/browser_env/browser_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/python_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/singleturn_env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/gepa/config.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/gepa/display.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/parsers/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/rubrics/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/rubrics/rubric_group.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/init.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/scripts/tui.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/server/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/server/env_server.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/serve/server/zmq_env_server.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/config_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/import_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/path_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/pricing_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/response_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/serve_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/utils/tool_utils.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/acp/_runner.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/dashboard/eval.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/eval/main.py +4 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/eval/runner.py +4 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/replay.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/cli/serve.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/clients/__init__.py +4 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/clients/config.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/clients/eval.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/__init__.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/debug.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/serve.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/cli/validate.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/dialects/__init__.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/single_agent/env.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/episode.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/errors.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/graph.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/__init__.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/bash/harness.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/mini_swe_agent/harness.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/null/harness.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/null/program.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/harnesses/terminus_2/harness.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/__init__.py +8 -8
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/tunnel/__init__.py +4 -4
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/judges/__init__.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/mcp/__init__.py +3 -3
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/runtimes/__init__.py +13 -13
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/serve/__init__.py +5 -5
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/serve/types.py +1 -1
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/session.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/state.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/lean/__init__.py +2 -2
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/types.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/install.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/v1/utils/sampling.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.dev35
|
|
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
|
|
@@ -57,9 +57,9 @@ dependencies = [
|
|
|
57
57
|
|
|
58
58
|
[dependency-groups]
|
|
59
59
|
dev = [
|
|
60
|
-
"ruff>=0.
|
|
60
|
+
"ruff>=0.16.0",
|
|
61
61
|
"pre-commit>=2.19.0",
|
|
62
|
-
"ty>=0.0.
|
|
62
|
+
"ty>=0.0.63",
|
|
63
63
|
"pytest>=7.0.0,<9.1.0",
|
|
64
64
|
"pytest-asyncio>=0.21.0",
|
|
65
65
|
"pytest-cov>=4.0.0",
|
|
@@ -135,6 +135,9 @@ scratchpad-v1 = { path = "environments/scratchpad_v1", editable = true }
|
|
|
135
135
|
kuhn-poker-v1 = { path = "environments/kuhn_poker_v1", editable = true }
|
|
136
136
|
|
|
137
137
|
[tool.uv.exclude-newer-package]
|
|
138
|
+
# Bounded cutoffs for the explicitly requested tool upgrades.
|
|
139
|
+
ruff = "2026-07-27"
|
|
140
|
+
ty = "2026-07-27"
|
|
138
141
|
# PrimeIntellect-published on PyPI (trusted publisher)
|
|
139
142
|
prime-tunnel = false
|
|
140
143
|
prime-sandboxes = false
|
|
@@ -9,10 +9,10 @@ should land one record carrying two role-stamped traces.
|
|
|
9
9
|
|
|
10
10
|
import asyncio
|
|
11
11
|
|
|
12
|
-
import verifiers.v1 as vf
|
|
13
|
-
|
|
14
12
|
from echo_v1 import EchoTaskset, lenient_match
|
|
15
13
|
|
|
14
|
+
import verifiers.v1 as vf
|
|
15
|
+
|
|
16
16
|
|
|
17
17
|
class DuetEnvConfig(vf.EnvConfig):
|
|
18
18
|
# Both seats pin the lean `null` chat loop.
|
|
@@ -42,4 +42,4 @@ class DuetTaskset(EchoTaskset):
|
|
|
42
42
|
pass
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
__all__ = ["
|
|
45
|
+
__all__ = ["DuetEnv", "DuetTaskset"]
|
|
@@ -6,6 +6,8 @@ the model's reply. It's a fixture taskset for the v1 e2e suite (in tests/v1/fixt
|
|
|
6
6
|
by id `echo-v1` via pytest's `pythonpath`).
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
from pydantic import Field
|
|
10
|
+
|
|
9
11
|
import verifiers.v1 as vf
|
|
10
12
|
|
|
11
13
|
SYSTEM = "Repeat the user's message back to them exactly, with no extra words."
|
|
@@ -39,7 +41,9 @@ class EchoTask(vf.Task[EchoData]):
|
|
|
39
41
|
|
|
40
42
|
|
|
41
43
|
class EchoConfig(vf.TasksetConfig):
|
|
42
|
-
phrases: list[str] =
|
|
44
|
+
phrases: list[str] = Field(
|
|
45
|
+
default_factory=lambda: ["hello world", "ping", "verifiers"]
|
|
46
|
+
)
|
|
43
47
|
|
|
44
48
|
|
|
45
49
|
class EchoTaskset(vf.Taskset[EchoTask, EchoConfig]):
|
|
@@ -72,7 +72,9 @@ def test_eval(taskset: str):
|
|
|
72
72
|
"--sampling.max-tokens", "512", "--rich", "false",
|
|
73
73
|
] # fmt: skip
|
|
74
74
|
try:
|
|
75
|
-
proc = subprocess.run(
|
|
75
|
+
proc = subprocess.run(
|
|
76
|
+
cmd, capture_output=True, text=True, timeout=EVAL_TIMEOUT, check=False
|
|
77
|
+
)
|
|
76
78
|
except subprocess.TimeoutExpired:
|
|
77
79
|
pytest.fail(f"Timed out after {EVAL_TIMEOUT}s evaluating {taskset}")
|
|
78
80
|
assert proc.returncode == 0, (
|
|
@@ -6,6 +6,7 @@ import json
|
|
|
6
6
|
import re
|
|
7
7
|
|
|
8
8
|
import pytest
|
|
9
|
+
from pydantic import Field
|
|
9
10
|
|
|
10
11
|
import verifiers.v1 as vf
|
|
11
12
|
from verifiers.v1.graph import MessageNode
|
|
@@ -72,7 +73,9 @@ def fake_judge_model(monkeypatch):
|
|
|
72
73
|
"reason": "cites Paris" if "Paris" in text else "no Paris",
|
|
73
74
|
"verdict": "yes" if "Paris" in text else "no",
|
|
74
75
|
}
|
|
75
|
-
for name, text in re.findall(
|
|
76
|
+
for name, text in re.findall(
|
|
77
|
+
r"^- ([^:]+): (.+)$", messages, re.MULTILINE
|
|
78
|
+
)
|
|
76
79
|
]
|
|
77
80
|
response = JudgeResponse(
|
|
78
81
|
text=json.dumps({"verdicts": verdicts}),
|
|
@@ -167,7 +170,12 @@ def test_judges_reject_shared_reward_keys():
|
|
|
167
170
|
|
|
168
171
|
# class-level DEFAULTS are held to the same rule (they bypass the before-hook)
|
|
169
172
|
class TwoDefaults(vf.TaskConfig):
|
|
170
|
-
judges: vf.Judges =
|
|
173
|
+
judges: vf.Judges = Field(
|
|
174
|
+
default_factory=lambda: [
|
|
175
|
+
vf.ReferenceJudgeConfig(),
|
|
176
|
+
vf.ReferenceJudgeConfig(),
|
|
177
|
+
]
|
|
178
|
+
)
|
|
171
179
|
|
|
172
180
|
with pytest.raises(ValueError, match="share a reward key"):
|
|
173
181
|
TwoDefaults()
|
|
@@ -227,7 +235,8 @@ async def test_reference_score(fake_judge_model):
|
|
|
227
235
|
|
|
228
236
|
async def test_reference_score_messages_prompt(fake_judge_model):
|
|
229
237
|
# A Messages-form prompt still reaches the judge as text (via TaskData.prompt_text).
|
|
230
|
-
from verifiers.v1.types import TextContentPart
|
|
238
|
+
from verifiers.v1.types import TextContentPart
|
|
239
|
+
from verifiers.v1.types import UserMessage as UM
|
|
231
240
|
|
|
232
241
|
task = QAData(
|
|
233
242
|
idx=0,
|
|
@@ -400,7 +409,7 @@ async def test_reference_empty_response_short_circuits(fake_judge_model):
|
|
|
400
409
|
async def test_reference_list_answer(fake_judge_model):
|
|
401
410
|
# A list-valued answer field is judged as multiple acceptable answers, one per line.
|
|
402
411
|
class MultiTask(vf.TaskData):
|
|
403
|
-
aliases: list[str] =
|
|
412
|
+
aliases: list[str] = Field(default_factory=list)
|
|
404
413
|
|
|
405
414
|
task = MultiTask(idx=0, prompt="q?", aliases=["Paris", "Lutetia"])
|
|
406
415
|
trace = make_trace()
|
|
@@ -569,11 +578,11 @@ async def test_rubric_off_menu_answer_raises(tmp_path, monkeypatch):
|
|
|
569
578
|
|
|
570
579
|
def test_rubric_choices_validation(tmp_path):
|
|
571
580
|
with pytest.raises(ValueError, match="at least two"):
|
|
572
|
-
rubric_judge(
|
|
581
|
+
_ = rubric_judge(
|
|
573
582
|
tmp_path, body='[[criteria]]\nname = "x"\ntext = "t"\nchoices = ["only"]\n'
|
|
574
583
|
).criteria
|
|
575
584
|
with pytest.raises(ValueError, match="duplicate options"):
|
|
576
|
-
rubric_judge(
|
|
585
|
+
_ = rubric_judge(
|
|
577
586
|
tmp_path,
|
|
578
587
|
body='[[criteria]]\nname = "x"\ntext = "t"\nchoices = ["a", "a"]\n',
|
|
579
588
|
).criteria
|
|
@@ -10,13 +10,11 @@ def test_compare_stdout_results_keeps_numeric_tolerance() -> None:
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def test_parse_pytest_outcomes_strips_xfail_xpass_reasons() -> None:
|
|
13
|
-
output =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"PASSED tests/test_mod.py::test_ok",
|
|
19
|
-
]
|
|
13
|
+
output = (
|
|
14
|
+
"XFAIL tests/test_mod.py::test_xfail - known bug - still tracked\n"
|
|
15
|
+
"XPASS tests/test_mod.py::test_xpass - always xfail - unexpectedly passed\n"
|
|
16
|
+
"FAILED tests/test_mod.py::test_param[a - b] - assert left - right\n"
|
|
17
|
+
"PASSED tests/test_mod.py::test_ok"
|
|
20
18
|
)
|
|
21
19
|
|
|
22
20
|
assert vf.parse_pytest_outcomes(output) == {
|
{verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/nemorl_chat_completions_client.py
RENAMED
|
@@ -108,8 +108,8 @@ def _attach_trajectory_tokens_to_prompt(
|
|
|
108
108
|
continue
|
|
109
109
|
msg = prompt[i]
|
|
110
110
|
if (prompt_ids := tokens.get("prompt_ids")) is not None:
|
|
111
|
-
msg.prompt_token_ids = list(prompt_ids)
|
|
111
|
+
msg.prompt_token_ids = list(prompt_ids) # ty:ignore[invalid-assignment]
|
|
112
112
|
if (completion_ids := tokens.get("completion_ids")) is not None:
|
|
113
|
-
msg.generation_token_ids = list(completion_ids)
|
|
113
|
+
msg.generation_token_ids = list(completion_ids) # ty:ignore[invalid-assignment]
|
|
114
114
|
if (completion_logprobs := tokens.get("completion_logprobs")) is not None:
|
|
115
|
-
msg.generation_log_probs = list(completion_logprobs)
|
|
115
|
+
msg.generation_log_probs = list(completion_logprobs) # ty:ignore[invalid-assignment]
|
{verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/clients/openai_chat_completions_client.py
RENAMED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# ruff: noqa
|
|
2
|
+
|
|
1
3
|
import functools
|
|
2
4
|
from collections.abc import Iterable, Mapping
|
|
3
5
|
from typing import Any, TypeAlias, cast
|
|
@@ -231,7 +233,7 @@ class OpenAIChatCompletionsClient(
|
|
|
231
233
|
role="assistant",
|
|
232
234
|
content=cast(Any, normalize_content(message.content)),
|
|
233
235
|
tool_calls=cast(Any, oai_tool_calls),
|
|
234
|
-
reasoning_content=message.reasoning_content, # type: ignore[arg-type]
|
|
236
|
+
reasoning_content=message.reasoning_content, # type: ignore[arg-type] # ty:ignore[invalid-key]
|
|
235
237
|
)
|
|
236
238
|
elif isinstance(message, ToolMessage):
|
|
237
239
|
return ChatCompletionToolMessageParam(
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# ruff: noqa
|
|
2
|
+
|
|
1
3
|
from collections.abc import Mapping
|
|
2
4
|
from typing import Any, Optional, cast
|
|
3
5
|
|
|
@@ -288,7 +290,7 @@ class OpenAIChatCompletionsTokenClient(OpenAIChatCompletionsClient):
|
|
|
288
290
|
if tool_call_ids:
|
|
289
291
|
dummy_assistant: OpenAIChatMessage = ChatCompletionAssistantMessageParam(
|
|
290
292
|
role="assistant",
|
|
291
|
-
reasoning_content="", # type: ignore[typeddict-unknown-key]
|
|
293
|
+
reasoning_content="", # type: ignore[typeddict-unknown-key] # ty:ignore[invalid-key]
|
|
292
294
|
tool_calls=[
|
|
293
295
|
ChatCompletionMessageFunctionToolCallParam(
|
|
294
296
|
id=tc_id,
|
|
@@ -301,7 +303,7 @@ class OpenAIChatCompletionsTokenClient(OpenAIChatCompletionsClient):
|
|
|
301
303
|
else:
|
|
302
304
|
dummy_assistant: OpenAIChatMessage = ChatCompletionAssistantMessageParam(
|
|
303
305
|
role="assistant",
|
|
304
|
-
reasoning_content="", # type: ignore[typeddict-unknown-key]
|
|
306
|
+
reasoning_content="", # type: ignore[typeddict-unknown-key] # ty:ignore[invalid-key]
|
|
305
307
|
content="x",
|
|
306
308
|
)
|
|
307
309
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# ruff: noqa
|
|
2
|
+
|
|
1
3
|
import json
|
|
2
4
|
from collections.abc import Mapping
|
|
3
5
|
from typing import TYPE_CHECKING, Any, cast, final
|
|
@@ -292,7 +294,7 @@ class EnvGroup(vf.Environment):
|
|
|
292
294
|
return dataset
|
|
293
295
|
|
|
294
296
|
@final
|
|
295
|
-
async def run_rollout( # type: ignore[override]
|
|
297
|
+
async def run_rollout( # type: ignore[override] # ty:ignore[override-of-final-method]
|
|
296
298
|
self,
|
|
297
299
|
input: RolloutInput,
|
|
298
300
|
client: Client | ClientConfig,
|
|
@@ -328,10 +330,10 @@ class EnvGroup(vf.Environment):
|
|
|
328
330
|
state_columns,
|
|
329
331
|
env.env_client,
|
|
330
332
|
)
|
|
331
|
-
return _set_info_route(output, route) # type: ignore[return-value]
|
|
333
|
+
return _set_info_route(output, route) # type: ignore[return-value] # ty:ignore[invalid-return-type]
|
|
332
334
|
|
|
333
335
|
@final
|
|
334
|
-
async def run_group( # type: ignore[override]
|
|
336
|
+
async def run_group( # type: ignore[override] # ty:ignore[override-of-final-method]
|
|
335
337
|
self,
|
|
336
338
|
group_inputs: list[RolloutInput],
|
|
337
339
|
client: Client | ClientConfig,
|
|
@@ -340,7 +342,7 @@ class EnvGroup(vf.Environment):
|
|
|
340
342
|
max_retries: int = 0,
|
|
341
343
|
state_columns: list[str] | None = None,
|
|
342
344
|
env_client: EnvClient | None = None,
|
|
343
|
-
) -> list[vf.RolloutOutput]:
|
|
345
|
+
) -> list[vf.RolloutOutput]: # ty:ignore[invalid-method-override]
|
|
344
346
|
target_env_client = env_client or self.env_client
|
|
345
347
|
if target_env_client is not None:
|
|
346
348
|
if not isinstance(client, ClientConfig):
|
|
@@ -381,7 +383,7 @@ class EnvGroup(vf.Environment):
|
|
|
381
383
|
state_columns,
|
|
382
384
|
env.env_client,
|
|
383
385
|
)
|
|
384
|
-
return [_set_info_route(output, route) for output in outputs] # type: ignore[return-value]
|
|
386
|
+
return [_set_info_route(output, route) for output in outputs] # type: ignore[return-value] # ty:ignore[invalid-return-type]
|
|
385
387
|
|
|
386
388
|
@final
|
|
387
389
|
async def rollout(
|
|
@@ -415,7 +417,7 @@ class EnvGroup(vf.Environment):
|
|
|
415
417
|
child_input["info"] = info
|
|
416
418
|
else:
|
|
417
419
|
child_input.pop("info", None)
|
|
418
|
-
return env_name, child_input, route # type: ignore[return-value]
|
|
420
|
+
return env_name, child_input, route # type: ignore[return-value] # ty:ignore[invalid-return-type]
|
|
419
421
|
|
|
420
422
|
def _input_env_route(self, input: RolloutInput) -> tuple[str, ...]:
|
|
421
423
|
info = _info_dict(input.get("info"))
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# ruff: noqa
|
|
2
|
+
|
|
1
3
|
import asyncio
|
|
2
4
|
import atexit
|
|
3
5
|
import json
|
|
@@ -160,7 +162,7 @@ class Environment(ABC):
|
|
|
160
162
|
|
|
161
163
|
if dataset is not None:
|
|
162
164
|
if callable(dataset):
|
|
163
|
-
self.dataset_source: DatasetBuilder | None = cast(
|
|
165
|
+
self.dataset_source: DatasetBuilder | None = cast( # ty:ignore[unsupported-operator]
|
|
164
166
|
DatasetBuilder, dataset
|
|
165
167
|
)
|
|
166
168
|
else:
|
|
@@ -171,7 +173,7 @@ class Environment(ABC):
|
|
|
171
173
|
|
|
172
174
|
if eval_dataset is not None:
|
|
173
175
|
if callable(eval_dataset):
|
|
174
|
-
self.eval_dataset_source: DatasetBuilder | None = cast(
|
|
176
|
+
self.eval_dataset_source: DatasetBuilder | None = cast( # ty:ignore[unsupported-operator]
|
|
175
177
|
DatasetBuilder, eval_dataset
|
|
176
178
|
)
|
|
177
179
|
else:
|
|
@@ -292,7 +294,7 @@ class Environment(ABC):
|
|
|
292
294
|
if few_shot:
|
|
293
295
|
messages.extend(few_shot)
|
|
294
296
|
messages.append({"role": "user", "content": prompt_str})
|
|
295
|
-
return messages
|
|
297
|
+
return messages # ty:ignore[invalid-return-type]
|
|
296
298
|
|
|
297
299
|
if answer_key == "answer":
|
|
298
300
|
dataset = dataset.map(
|
{verifiers-0.2.2.dev33 → verifiers-0.2.2.dev35}/verifiers/envs/experimental/composable/README.md
RENAMED
|
@@ -30,13 +30,13 @@ from verifiers.envs.experimental.composable.harnesses.opencode import opencode_h
|
|
|
30
30
|
from verifiers.envs.experimental.composable import ComposableEnv
|
|
31
31
|
|
|
32
32
|
# Create a taskset
|
|
33
|
-
taskset = R2EGymTaskSet()
|
|
33
|
+
taskset = R2EGymTaskSet() # 4578 SWE instances
|
|
34
34
|
|
|
35
35
|
# Explore instances
|
|
36
|
-
task = taskset[0]
|
|
37
|
-
task.prompt
|
|
38
|
-
task.sandbox_spec
|
|
39
|
-
task.sandbox_spec.image
|
|
36
|
+
task = taskset[0] # one Task
|
|
37
|
+
task.prompt # the problem statement
|
|
38
|
+
task.sandbox_spec # SandboxSpec(image=..., cpu=4, ...)
|
|
39
|
+
task.sandbox_spec.image # per-instance docker image
|
|
40
40
|
|
|
41
41
|
# Slice and filter
|
|
42
42
|
small = taskset.take(100)
|
|
@@ -46,9 +46,9 @@ filtered = taskset.filter(lambda ex: ...)
|
|
|
46
46
|
results = await taskset.validate(
|
|
47
47
|
concurrency=50,
|
|
48
48
|
out_path="outputs/validate.jsonl",
|
|
49
|
-
max_retries=2,
|
|
49
|
+
max_retries=2, # retry on vf.InfraError
|
|
50
50
|
sandbox_client_max_workers=100, # optional sandbox client worker cap override
|
|
51
|
-
resume=True,
|
|
51
|
+
resume=True, # skip indices already in out_path
|
|
52
52
|
)
|
|
53
53
|
|
|
54
54
|
# Run with an agent
|
|
@@ -135,7 +135,9 @@ class MySWERubric(vf.Rubric):
|
|
|
135
135
|
sandbox_client = state["sandbox_client"]
|
|
136
136
|
sandbox_id = state["sandbox_id"]
|
|
137
137
|
# Run tests in the sandbox
|
|
138
|
-
test_output = await self.taskset._run_tests(
|
|
138
|
+
test_output = await self.taskset._run_tests(
|
|
139
|
+
sandbox_client, sandbox_id, state, ...
|
|
140
|
+
)
|
|
139
141
|
return float(self.taskset._calculate_reward(test_output, info))
|
|
140
142
|
|
|
141
143
|
@vf.cleanup
|