verifiers 0.3.2.dev135__tar.gz → 0.3.2.dev136__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.3.2.dev135 → verifiers-0.3.2.dev136}/PKG-INFO +1 -1
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_e2e.py +35 -2
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/core.py +33 -5
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/.gitignore +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/LICENSE +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/README.md +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/pyproject.toml +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/conftest.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_configs.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_envs.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_graph.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_judges.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_platform_run.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_serve_delta.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/test_trace.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/agent.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/eval/hint.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/episode.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/errors.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/graph.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/compaction.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/install.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/launch.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/mcp.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/judge.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/apptainer.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/container.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/semantic.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/delta.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/session.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/state.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/task.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/harbor/env.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/trace.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/types.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/loaders.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/platform.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/scope.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.3.2.
|
|
3
|
+
Version: 0.3.2.dev136
|
|
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
|
|
@@ -20,7 +20,8 @@ def pair(a: str, b: str, id: str, *extra_marks):
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
@pytest.mark.asyncio
|
|
23
|
-
|
|
23
|
+
@pytest.mark.parametrize("interruption", [None, "disconnect", "timeout", "eof"])
|
|
24
|
+
async def test_chat_harness_preserves_streamed_reasoning(interruption):
|
|
24
25
|
import json
|
|
25
26
|
|
|
26
27
|
import httpx
|
|
@@ -61,10 +62,36 @@ async def test_chat_harness_preserves_streamed_reasoning():
|
|
|
61
62
|
content = "".join(f"data: {json.dumps(event)}\n\n" for event in events)
|
|
62
63
|
content += "data: [DONE]\n\n"
|
|
63
64
|
|
|
65
|
+
requests = []
|
|
66
|
+
streams = []
|
|
67
|
+
|
|
68
|
+
class CompletionStream(httpx.AsyncByteStream):
|
|
69
|
+
closed = False
|
|
70
|
+
|
|
71
|
+
def __init__(self, request, interrupted):
|
|
72
|
+
self.request = request
|
|
73
|
+
self.interrupted = interrupted
|
|
74
|
+
|
|
75
|
+
async def __aiter__(self):
|
|
76
|
+
if self.interrupted:
|
|
77
|
+
yield f"data: {json.dumps(chunk('discard this attempt'))}\n\n".encode()
|
|
78
|
+
if interruption == "disconnect":
|
|
79
|
+
raise httpx.ReadError("connection reset", request=self.request)
|
|
80
|
+
if interruption == "timeout":
|
|
81
|
+
raise httpx.ReadTimeout("read timed out", request=self.request)
|
|
82
|
+
return
|
|
83
|
+
yield content.encode()
|
|
84
|
+
|
|
85
|
+
async def aclose(self):
|
|
86
|
+
self.closed = True
|
|
87
|
+
|
|
64
88
|
async def respond(request: httpx.Request) -> httpx.Response:
|
|
89
|
+
requests.append(request)
|
|
90
|
+
stream = CompletionStream(request, interruption and len(requests) == 1)
|
|
91
|
+
streams.append(stream)
|
|
65
92
|
return httpx.Response(
|
|
66
93
|
200,
|
|
67
|
-
|
|
94
|
+
stream=stream,
|
|
68
95
|
headers={"content-type": "text/event-stream"},
|
|
69
96
|
request=request,
|
|
70
97
|
)
|
|
@@ -77,6 +104,12 @@ async def test_chat_harness_preserves_streamed_reasoning():
|
|
|
77
104
|
)
|
|
78
105
|
completion = await chat(client, "test-model", [], [])
|
|
79
106
|
|
|
107
|
+
assert len(requests) == (2 if interruption else 1)
|
|
108
|
+
assert [r.headers["x-stainless-retry-count"] for r in requests] == (
|
|
109
|
+
["0", "1"] if interruption else ["0"]
|
|
110
|
+
)
|
|
111
|
+
assert all(r.content == requests[0].content for r in requests)
|
|
112
|
+
assert all(stream.closed for stream in streams)
|
|
80
113
|
message = completion.choices[0].message.model_dump(exclude_none=True)
|
|
81
114
|
assert message["role"] == "assistant"
|
|
82
115
|
assert message["reasoning"] == "Plan: call ls"
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
import argparse
|
|
4
4
|
import asyncio
|
|
5
5
|
import json
|
|
6
|
+
import logging
|
|
7
|
+
import random
|
|
6
8
|
import subprocess
|
|
7
9
|
from contextlib import AsyncExitStack
|
|
8
10
|
from pathlib import Path
|
|
9
11
|
from typing import TYPE_CHECKING
|
|
10
12
|
|
|
11
13
|
import httpx
|
|
12
|
-
from openai import APIStatusError, AsyncOpenAI, omit
|
|
14
|
+
from openai import APIConnectionError, APIStatusError, AsyncOpenAI, omit
|
|
13
15
|
from openai.lib.streaming.chat import AsyncChatCompletionStream
|
|
14
16
|
|
|
15
17
|
if TYPE_CHECKING:
|
|
@@ -245,9 +247,32 @@ async def chat(
|
|
|
245
247
|
kwargs["tools"] = tools
|
|
246
248
|
if tools and tool_choice is not None:
|
|
247
249
|
kwargs["tool_choice"] = tool_choice
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
250
|
+
for attempt in range(client.max_retries + 1):
|
|
251
|
+
# Reuse the interception server's body-digest replay guard on stream retries.
|
|
252
|
+
headers = {"x-stainless-retry-count": str(attempt)} if attempt else omit
|
|
253
|
+
raw_stream = await client.chat.completions.create(
|
|
254
|
+
**kwargs,
|
|
255
|
+
stream=True,
|
|
256
|
+
stream_options={"include_usage": True},
|
|
257
|
+
extra_headers=headers,
|
|
258
|
+
)
|
|
259
|
+
# The SDK retries request setup; only stream consumption is retried here.
|
|
260
|
+
try:
|
|
261
|
+
return await _read_chat_completion(raw_stream)
|
|
262
|
+
except (APIConnectionError, httpx.TransportError) as error:
|
|
263
|
+
cause = error.__cause__ or error
|
|
264
|
+
if attempt == client.max_retries:
|
|
265
|
+
raise
|
|
266
|
+
logging.getLogger(__name__).warning(
|
|
267
|
+
"Retrying interrupted model stream (%s/%s): %r",
|
|
268
|
+
attempt + 1,
|
|
269
|
+
client.max_retries,
|
|
270
|
+
cause,
|
|
271
|
+
)
|
|
272
|
+
await asyncio.sleep(min(0.5 * 2**attempt, 8.0) * random.uniform(0.75, 1.0))
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
async def _read_chat_completion(raw_stream):
|
|
251
276
|
# Accumulate native deltas without auto-parsing tool arguments or treating
|
|
252
277
|
# finish_reason="length" as an exception: compaction owns that decision.
|
|
253
278
|
async with AsyncChatCompletionStream(
|
|
@@ -271,7 +296,10 @@ async def chat(
|
|
|
271
296
|
or not completion.choices
|
|
272
297
|
or any(choice.finish_reason is None for choice in completion.choices)
|
|
273
298
|
):
|
|
274
|
-
raise
|
|
299
|
+
raise APIConnectionError(
|
|
300
|
+
message="Model stream ended before a completion finished",
|
|
301
|
+
request=raw_stream.response.request,
|
|
302
|
+
)
|
|
275
303
|
for choice in completion.choices:
|
|
276
304
|
overrides = message_overrides.setdefault(choice.index, {})
|
|
277
305
|
overrides.setdefault("role", "assistant")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.3.2.dev135 → verifiers-0.3.2.dev136}/tests/v1/fixtures/tool_response_image_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/agentic_judge/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/isolated_verifier/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/isolated_verifier/env.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/shared_agentic_judge/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/envs/single_agent/__init__.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
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/browser_use/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/browser_use/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/browser_use/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/claude_code/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/claude_code/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/hermes_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/hermes_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/hermes_agent/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/kimi_code/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/kimi_code/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/mini_swe_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/mini_swe_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/mini_swe_agent/program.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/openclaw/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/openclaw/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/prime_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/prime_agent/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/terminus_2/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/terminus_2/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/terminus_2/program.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/harnesses/utils/compaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/tunnel/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/interception/tunnel/custom.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/nemo_gym/response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/textarena/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev135 → verifiers-0.3.2.dev136}/verifiers/v1/tasksets/textarena/taskset.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
|