verifiers 0.3.2.dev51__tar.gz → 0.3.2.dev53__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.dev51 → verifiers-0.3.2.dev53}/PKG-INFO +1 -1
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_e2e.py +34 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_trace.py +128 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/acp/__init__.py +5 -6
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/rlm/harness.py +5 -1
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/semantic.py +2 -2
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/serve/client.py +6 -2
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/trace.py +22 -6
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/.gitignore +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/LICENSE +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/README.md +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/pyproject.toml +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/conftest.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_configs.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_envs.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_graph.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_judges.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/agent.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/episode.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/errors.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/graph.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/pool/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/utils/compaction.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/utils/core.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/utils/install.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/utils/launch.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/utils/mcp.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/tool.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/judge.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/session.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/state.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/task.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/harbor/env.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/types.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/loaders.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/platform.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/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.dev53
|
|
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
|
|
@@ -5,6 +5,9 @@ combinations a test runs — every axis value at least once plus the cross-bound
|
|
|
5
5
|
with distinct networking — instead of fanning the full cross product. prime/modal rows
|
|
6
6
|
are local-only (their marks are excluded in CI)."""
|
|
7
7
|
|
|
8
|
+
import subprocess
|
|
9
|
+
import sys
|
|
10
|
+
|
|
8
11
|
import pytest
|
|
9
12
|
|
|
10
13
|
mark = pytest.mark
|
|
@@ -675,6 +678,37 @@ async def test_multi_agent_env_server(run_v1_server, tmp_path):
|
|
|
675
678
|
assert trace.metrics["duet"] == 1.0
|
|
676
679
|
|
|
677
680
|
|
|
681
|
+
# `_request` parks a cancelled run's fire-and-forget cancel in `_cancel_tasks` with a
|
|
682
|
+
# `discard` done-callback. One loop turn later the sends have finished but the callbacks
|
|
683
|
+
# are still queued behind us, so `close()` meets a set of finished tasks.
|
|
684
|
+
CLOSE_WITH_FINISHED_CANCELS = """
|
|
685
|
+
import asyncio, uuid
|
|
686
|
+
from verifiers.v1.serve.client import EnvClient
|
|
687
|
+
|
|
688
|
+
async def main():
|
|
689
|
+
client = EnvClient("tcp://127.0.0.1:1")
|
|
690
|
+
for _ in range(3):
|
|
691
|
+
task = asyncio.get_running_loop().create_task(client._send_cancel(uuid.uuid4().hex))
|
|
692
|
+
client._cancel_tasks.add(task)
|
|
693
|
+
task.add_done_callback(client._cancel_tasks.discard)
|
|
694
|
+
await asyncio.sleep(0)
|
|
695
|
+
assert all(task.done() for task in client._cancel_tasks) and client._cancel_tasks
|
|
696
|
+
await client.close()
|
|
697
|
+
|
|
698
|
+
asyncio.run(main())
|
|
699
|
+
"""
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
def test_env_client_close_drains_finished_cancels():
|
|
703
|
+
"""`close()` returns once every fire-and-forget cancel has run, also when all of them
|
|
704
|
+
finished before it looked: the state Ctrl-C leaves behind in served mode. A child
|
|
705
|
+
process bounds the check, since a `close()` that never yields to the loop never lets
|
|
706
|
+
an in-loop timeout fire either."""
|
|
707
|
+
subprocess.run(
|
|
708
|
+
[sys.executable, "-c", CLOSE_WITH_FINISHED_CANCELS], check=True, timeout=30
|
|
709
|
+
)
|
|
710
|
+
|
|
711
|
+
|
|
678
712
|
@pytest.mark.e2e
|
|
679
713
|
async def test_replay_round_trip(run_v1, tmp_path):
|
|
680
714
|
"""eval -> replay -> replay-the-replay. Offline re-scoring must preserve the saved
|
|
@@ -434,6 +434,134 @@ def test_acp_semantic_edge_metadata_is_optional():
|
|
|
434
434
|
assert all(not node.semantic_parents for node in trace.nodes)
|
|
435
435
|
|
|
436
436
|
|
|
437
|
+
def test_acp_derives_compaction_attempt_branch_trainability():
|
|
438
|
+
trace = vf.Trace(
|
|
439
|
+
agent=vf.AgentInfo(config=vf.AgentConfig()),
|
|
440
|
+
task=vf.TraceTask(type="Task", data=vf.TaskData(idx=0, prompt="q")),
|
|
441
|
+
nodes=[
|
|
442
|
+
MessageNode(parent=None, message=UserMessage(content="work")),
|
|
443
|
+
MessageNode(
|
|
444
|
+
parent=0,
|
|
445
|
+
message=AssistantMessage(content="working"),
|
|
446
|
+
sampled=True,
|
|
447
|
+
token_ids=[1],
|
|
448
|
+
mask=[True],
|
|
449
|
+
logprobs=[-0.1],
|
|
450
|
+
),
|
|
451
|
+
MessageNode(parent=1, message=UserMessage(content="summarize")),
|
|
452
|
+
MessageNode(
|
|
453
|
+
parent=2,
|
|
454
|
+
message=AssistantMessage(content="bad tool call"),
|
|
455
|
+
sampled=True,
|
|
456
|
+
token_ids=[2, 3],
|
|
457
|
+
mask=[True, True],
|
|
458
|
+
logprobs=[-0.2, -0.3],
|
|
459
|
+
),
|
|
460
|
+
MessageNode(
|
|
461
|
+
parent=2,
|
|
462
|
+
message=AssistantMessage(content="accepted summary"),
|
|
463
|
+
sampled=True,
|
|
464
|
+
token_ids=[4, 5],
|
|
465
|
+
mask=[True, True],
|
|
466
|
+
logprobs=[-0.4, -0.5],
|
|
467
|
+
),
|
|
468
|
+
MessageNode(parent=0, message=UserMessage(content="compacted context")),
|
|
469
|
+
MessageNode(
|
|
470
|
+
parent=5,
|
|
471
|
+
message=AssistantMessage(content="answer"),
|
|
472
|
+
sampled=True,
|
|
473
|
+
token_ids=[6],
|
|
474
|
+
mask=[True],
|
|
475
|
+
logprobs=[-0.6],
|
|
476
|
+
),
|
|
477
|
+
],
|
|
478
|
+
calls=[
|
|
479
|
+
vf.ModelCall(node=1, acp=vf.ACPInfo(request_id="work")),
|
|
480
|
+
vf.ModelCall(node=3, acp=vf.ACPInfo(request_id="rejected")),
|
|
481
|
+
vf.ModelCall(node=4, acp=vf.ACPInfo(request_id="accepted")),
|
|
482
|
+
vf.ModelCall(node=6, acp=vf.ACPInfo(request_id="resumed")),
|
|
483
|
+
],
|
|
484
|
+
)
|
|
485
|
+
harness = RLMHarness(RLMHarnessConfig(id="rlm"))
|
|
486
|
+
harness._consume_protocol_metadata(
|
|
487
|
+
trace,
|
|
488
|
+
{
|
|
489
|
+
ACP_SEMANTIC_EDGES_METADATA_KEY: {
|
|
490
|
+
"edges": [
|
|
491
|
+
{
|
|
492
|
+
"source_request_id": "work",
|
|
493
|
+
"target_request_id": "rejected",
|
|
494
|
+
"type": "compaction_attempt",
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"source_request_id": "work",
|
|
498
|
+
"target_request_id": "accepted",
|
|
499
|
+
"type": "compaction_attempt",
|
|
500
|
+
},
|
|
501
|
+
]
|
|
502
|
+
},
|
|
503
|
+
},
|
|
504
|
+
)
|
|
505
|
+
|
|
506
|
+
attempts = {branch.nodes[-1].message.content: branch for branch in trace.branches}
|
|
507
|
+
assert attempts["bad tool call"].trainable is False
|
|
508
|
+
assert attempts["accepted summary"].trainable is False
|
|
509
|
+
|
|
510
|
+
harness._consume_protocol_metadata(
|
|
511
|
+
trace,
|
|
512
|
+
{
|
|
513
|
+
ACP_SEMANTIC_EDGES_METADATA_KEY: {
|
|
514
|
+
"edges": [
|
|
515
|
+
{
|
|
516
|
+
"source_request_id": "work",
|
|
517
|
+
"target_request_id": "rejected",
|
|
518
|
+
"type": "compaction_attempt",
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"source_request_id": "work",
|
|
522
|
+
"target_request_id": "accepted",
|
|
523
|
+
"type": "compaction_attempt",
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
"source_request_id": "accepted",
|
|
527
|
+
"target_request_id": "resumed",
|
|
528
|
+
"type": "compaction",
|
|
529
|
+
},
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
},
|
|
533
|
+
)
|
|
534
|
+
|
|
535
|
+
assert trace.nodes[3].sampled is True
|
|
536
|
+
assert trace.nodes[3].mask == [True, True]
|
|
537
|
+
assert trace.nodes[4].mask == [True, True]
|
|
538
|
+
assert trace.nodes[6].mask == [True]
|
|
539
|
+
assert trace.nodes[3].semantic_parents == [
|
|
540
|
+
vf.ParentLink(node=1, type="compaction_attempt")
|
|
541
|
+
]
|
|
542
|
+
assert trace.nodes[4].semantic_parents == [
|
|
543
|
+
vf.ParentLink(node=1, type="compaction_attempt")
|
|
544
|
+
]
|
|
545
|
+
assert trace.nodes[6].semantic_parents == [vf.ParentLink(node=4, type="compaction")]
|
|
546
|
+
assert trace.num_branches == 3
|
|
547
|
+
branches = {branch.nodes[-1].message.content: branch for branch in trace.branches}
|
|
548
|
+
assert branches["bad tool call"].trainable is False
|
|
549
|
+
assert branches["accepted summary"].trainable is True
|
|
550
|
+
assert branches["answer"].trainable is True
|
|
551
|
+
assert branches["bad tool call"].nodes[-2] is trace.nodes[2]
|
|
552
|
+
assert branches["accepted summary"].nodes[-2] is trace.nodes[2]
|
|
553
|
+
|
|
554
|
+
restored = vf.WireTrace.model_validate_json(trace.model_dump_json())
|
|
555
|
+
assert restored.nodes[3].sampled is True
|
|
556
|
+
assert restored.nodes[3].mask == [True, True]
|
|
557
|
+
assert restored.nodes[4].mask == [True, True]
|
|
558
|
+
restored_branches = {
|
|
559
|
+
branch.nodes[-1].message.content: branch for branch in restored.branches
|
|
560
|
+
}
|
|
561
|
+
assert restored_branches["bad tool call"].trainable is False
|
|
562
|
+
assert restored_branches["accepted summary"].trainable is True
|
|
563
|
+
|
|
564
|
+
|
|
437
565
|
def test_semantic_edge_set_rejects_duplicate_self_and_cyclic_edges():
|
|
438
566
|
edge_set = _semantic_edge_set().model_dump(mode="json")
|
|
439
567
|
edge_set["edges"].append(edge_set["edges"][0])
|
|
@@ -78,12 +78,11 @@ class ACPHarness(Harness[ConfigT]):
|
|
|
78
78
|
self, trace: Trace, response_metadata: dict[str, Any]
|
|
79
79
|
) -> None:
|
|
80
80
|
"""Attach optional protocol extensions understood by every ACP harness."""
|
|
81
|
-
if ACP_SEMANTIC_EDGES_METADATA_KEY
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
trace.add_semantic_edges(edge_set)
|
|
81
|
+
if ACP_SEMANTIC_EDGES_METADATA_KEY in response_metadata:
|
|
82
|
+
edge_set = SemanticEdgeSet.model_validate(
|
|
83
|
+
response_metadata[ACP_SEMANTIC_EDGES_METADATA_KEY]
|
|
84
|
+
)
|
|
85
|
+
trace.add_semantic_edges(edge_set)
|
|
87
86
|
|
|
88
87
|
@abstractmethod
|
|
89
88
|
async def prepare_acp(
|
|
@@ -51,10 +51,13 @@ class CompactionConfig(BaseConfig):
|
|
|
51
51
|
max_compactions: PositiveInt | None = None
|
|
52
52
|
"""Compactions per session before the engine stops compacting; `None` =
|
|
53
53
|
nano-rlm's default."""
|
|
54
|
+
max_attempts: PositiveInt | None = None
|
|
55
|
+
"""Summary-generation attempts within one compaction cycle; `None` =
|
|
56
|
+
nano-rlm's default (5)."""
|
|
54
57
|
|
|
55
58
|
|
|
56
59
|
class RLMHarnessConfig(HarnessConfig):
|
|
57
|
-
version: str = Field(default="
|
|
60
|
+
version: str = Field(default="e384006", min_length=1)
|
|
58
61
|
"""Git ref (branch, tag, or commit) of nano-rlm to install. Must know every
|
|
59
62
|
field this harness puts on the wire, i.e. be at least the default ref."""
|
|
60
63
|
max_depth: NonNegativeInt | None = None
|
|
@@ -170,6 +173,7 @@ class RLMHarness(ACPHarness[RLMHarnessConfig]):
|
|
|
170
173
|
policy_knobs["compaction"] = True
|
|
171
174
|
policy_knobs["summarize_at_tokens"] = compaction.summarize_at_tokens
|
|
172
175
|
policy_knobs["max_compactions"] = compaction.max_compactions
|
|
176
|
+
policy_knobs["max_compaction_attempts"] = compaction.max_attempts
|
|
173
177
|
appends = [
|
|
174
178
|
text
|
|
175
179
|
for text in (system_prompt, self.config.append_to_system_prompt)
|
|
@@ -63,8 +63,8 @@ class SemanticEdgeSet(BaseModel):
|
|
|
63
63
|
"""A harness-published set of semantic edges over logical request IDs.
|
|
64
64
|
|
|
65
65
|
Edge labels are intentionally extensible. Initial harnesses use ``continuation``,
|
|
66
|
-
``compaction``, ``subagent_call``, and ``subagent_return``;
|
|
67
|
-
unknown labels.
|
|
66
|
+
``compaction_attempt``, ``compaction``, ``subagent_call``, and ``subagent_return``;
|
|
67
|
+
consumers must preserve unknown labels.
|
|
68
68
|
"""
|
|
69
69
|
|
|
70
70
|
model_config = ConfigDict(extra="forbid", strict=True)
|
|
@@ -187,8 +187,12 @@ class EnvClient:
|
|
|
187
187
|
self._receiver = None
|
|
188
188
|
# Let scheduled fire-and-forget cancels reach the socket first, or a
|
|
189
189
|
# run cancelled right before close() leaves its server-side rollout
|
|
190
|
-
# running.
|
|
190
|
+
# running. Pop before awaiting: awaiting finished tasks never yields
|
|
191
|
+
# (since CPython 3.12 a gather of them completes eagerly), so their
|
|
192
|
+
# queued `discard` callbacks cannot be what empties the set
|
|
191
193
|
while self._cancel_tasks:
|
|
192
|
-
|
|
194
|
+
task = self._cancel_tasks.pop()
|
|
195
|
+
with contextlib.suppress(asyncio.CancelledError):
|
|
196
|
+
await task
|
|
193
197
|
self.socket.close()
|
|
194
198
|
self.ctx.term()
|
|
@@ -20,11 +20,7 @@ from verifiers.v1.configs.agent import AgentConfig, WireAgentConfig
|
|
|
20
20
|
from verifiers.v1.errors import ProviderError
|
|
21
21
|
from verifiers.v1.graph import RECORD_FLOAT_DECIMALS, MessageNode
|
|
22
22
|
from verifiers.v1.runtimes import RuntimeInfo
|
|
23
|
-
from verifiers.v1.semantic import
|
|
24
|
-
ACPInfo,
|
|
25
|
-
ParentLink,
|
|
26
|
-
SemanticEdgeSet,
|
|
27
|
-
)
|
|
23
|
+
from verifiers.v1.semantic import ACPInfo, ParentLink, SemanticEdgeSet
|
|
28
24
|
from verifiers.v1.state import State, StateT
|
|
29
25
|
from verifiers.v1.task import DataT, WireTaskData
|
|
30
26
|
from verifiers.v1.types import (
|
|
@@ -201,6 +197,8 @@ class Branch(BaseModel):
|
|
|
201
197
|
index: int
|
|
202
198
|
nodes: list[MessageNode]
|
|
203
199
|
calls: list[ModelCall] = Field(default_factory=list)
|
|
200
|
+
trainable: bool = True
|
|
201
|
+
"""Whether this physical path contributes a training sample."""
|
|
204
202
|
mm_token_type_id_map: dict[int, int] = Field(default_factory=dict)
|
|
205
203
|
"""The trace's `mm_token_type_id_map`, carried so `mm_token_type_ids` is self-contained."""
|
|
206
204
|
|
|
@@ -492,8 +490,18 @@ class Trace(BaseModel, Generic[DataT, StateT, AgentConfigT]):
|
|
|
492
490
|
|
|
493
491
|
@property
|
|
494
492
|
def branches(self) -> list[Branch]:
|
|
495
|
-
"""One root-to-leaf
|
|
493
|
+
"""One root-to-leaf view per graph leaf, with no duplicated node storage.
|
|
494
|
+
|
|
495
|
+
A compaction attempt is a dangling physical leaf. It is trainable only when
|
|
496
|
+
the final semantic graph shows that the harness resumed from it.
|
|
497
|
+
"""
|
|
496
498
|
by_node = {c.node: c for c in self.calls if c.node is not None}
|
|
499
|
+
accepted_compaction_attempts = {
|
|
500
|
+
link.node
|
|
501
|
+
for node in self.nodes
|
|
502
|
+
for link in node.semantic_parents
|
|
503
|
+
if link.type == "compaction"
|
|
504
|
+
}
|
|
497
505
|
branches: list[Branch] = []
|
|
498
506
|
for i, leaf in enumerate(graph.leaves(self)):
|
|
499
507
|
path: list[int] = []
|
|
@@ -502,11 +510,19 @@ class Trace(BaseModel, Generic[DataT, StateT, AgentConfigT]):
|
|
|
502
510
|
path.append(nid)
|
|
503
511
|
nid = self.nodes[nid].parent
|
|
504
512
|
path.reverse()
|
|
513
|
+
is_compaction_attempt = any(
|
|
514
|
+
link.type == "compaction_attempt"
|
|
515
|
+
for link in self.nodes[leaf].semantic_parents
|
|
516
|
+
)
|
|
505
517
|
branches.append(
|
|
506
518
|
Branch(
|
|
507
519
|
index=i,
|
|
508
520
|
nodes=[self.nodes[n] for n in path],
|
|
509
521
|
calls=[by_node[n] for n in path if n in by_node],
|
|
522
|
+
trainable=(
|
|
523
|
+
not is_compaction_attempt
|
|
524
|
+
or leaf in accepted_compaction_attempts
|
|
525
|
+
),
|
|
510
526
|
mm_token_type_id_map=self.mm_token_type_id_map,
|
|
511
527
|
)
|
|
512
528
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/isolated_verifier/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/envs/shared_agentic_judge/__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
|
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/browser_use/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/browser_use/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/browser_use/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/claude_code/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/claude_code/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/hermes_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/hermes_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/hermes_agent/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/kimi_code/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/mini_swe_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/mini_swe_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/mini_swe_agent/program.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
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/prime_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/prime_agent/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/terminus_2/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/terminus_2/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/harnesses/terminus_2/program.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
|
{verifiers-0.3.2.dev51 → verifiers-0.3.2.dev53}/verifiers/v1/interception/tunnel/__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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|