verifiers 0.3.2.dev42__tar.gz → 0.3.2.dev44__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.dev42 → verifiers-0.3.2.dev44}/PKG-INFO +1 -1
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/pyproject.toml +0 -34
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_configs.py +2 -8
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/agent.py +1 -7
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/eval/main.py +3 -5
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/gepa.py +1 -1
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/output.py +4 -7
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/episode.py +7 -2
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/graph.py +32 -1
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harness.py +0 -25
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/prime_agent/harness.py +0 -1
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/mcp/launch.py +2 -8
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/mcp/server.py +0 -3
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/trace.py +11 -4
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/.gitignore +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/LICENSE +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/README.md +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/conftest.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_envs.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_graph.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_judges.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/tests/v1/test_trace.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/errors.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/pool/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/utils/compaction.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/utils/core.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/utils/launch.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/utils/mcp.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/tool.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/judge.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/semantic.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/session.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/state.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/task.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/harbor/env.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/types.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/loaders.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/platform.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/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.dev44
|
|
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
|
|
@@ -107,33 +107,6 @@ required-version = ">=0.11.1"
|
|
|
107
107
|
exclude-newer = "7 days"
|
|
108
108
|
default-groups = ["dev", "examples"]
|
|
109
109
|
|
|
110
|
-
# NeMo Gym declares its full platform stack; this integration only starts resource servers.
|
|
111
|
-
[[tool.uv.dependency-metadata]]
|
|
112
|
-
name = "nemo-gym"
|
|
113
|
-
version = "0.4.0"
|
|
114
|
-
requires-python = ">=3.12"
|
|
115
|
-
requires-dist = [
|
|
116
|
-
"aiohttp>=3.14.1",
|
|
117
|
-
"fastapi",
|
|
118
|
-
"gprof2dot",
|
|
119
|
-
"hydra-core",
|
|
120
|
-
"itsdangerous",
|
|
121
|
-
"mcp>=1.27,<2",
|
|
122
|
-
"omegaconf",
|
|
123
|
-
"openai>=2.9",
|
|
124
|
-
"orjson",
|
|
125
|
-
"pandas",
|
|
126
|
-
"pydantic",
|
|
127
|
-
"pydot",
|
|
128
|
-
"ray>=2.55.1",
|
|
129
|
-
"requests",
|
|
130
|
-
"rich",
|
|
131
|
-
"typing-extensions",
|
|
132
|
-
"uvicorn",
|
|
133
|
-
"wandb",
|
|
134
|
-
"yappi",
|
|
135
|
-
]
|
|
136
|
-
|
|
137
110
|
[[tool.uv.index]]
|
|
138
111
|
name = "pypi"
|
|
139
112
|
url = "https://pypi.org/simple"
|
|
@@ -244,8 +217,6 @@ addopts = [
|
|
|
244
217
|
]
|
|
245
218
|
markers = [
|
|
246
219
|
"e2e: marks end-to-end eval-run tests (need a model API key; skipped without one)",
|
|
247
|
-
"integration: marks tests as integration tests",
|
|
248
|
-
"slow: marks slow-running tests (deselect with -m 'not slow')",
|
|
249
220
|
# v1 e2e matrix axes — select subsets with `-m` (see tests/v1/conftest.py). A mark is applied
|
|
250
221
|
# per axis, so it matches every case touching that value on any axis.
|
|
251
222
|
"subprocess: v1 e2e cases touching the subprocess (host) runtime",
|
|
@@ -264,11 +235,7 @@ markers = [
|
|
|
264
235
|
"pi: v1 e2e cases on the pi harness",
|
|
265
236
|
"pool: v1 e2e cases on the pool harness",
|
|
266
237
|
"codex: v1 e2e cases on the codex harness",
|
|
267
|
-
"unit: marks tests as unit tests",
|
|
268
238
|
"asyncio: marks tests as async tests",
|
|
269
|
-
"parsers: marks tests for parser components",
|
|
270
|
-
"rubrics: marks tests for rubric components",
|
|
271
|
-
"environments: marks tests for environment components",
|
|
272
239
|
]
|
|
273
240
|
filterwarnings = [
|
|
274
241
|
"ignore::DeprecationWarning",
|
|
@@ -276,7 +243,6 @@ filterwarnings = [
|
|
|
276
243
|
"ignore::UserWarning:transformers.*",
|
|
277
244
|
"ignore:The 'repr' attribute.*:UserWarning:pydantic.*",
|
|
278
245
|
"ignore:The 'frozen' attribute.*:UserWarning:pydantic.*",
|
|
279
|
-
"ignore:.*is.*with.*str.*literal:SyntaxWarning:cellpylib.*",
|
|
280
246
|
]
|
|
281
247
|
asyncio_mode = "auto"
|
|
282
248
|
norecursedirs = [".git", ".tox", "dist", "build", "*.egg", "__pycache__"]
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"""Every checked-in v1 eval config parses.
|
|
2
2
|
|
|
3
3
|
Mirrors prime-rl's config test: glob the configs and assert each validates into its config
|
|
4
|
-
type. The root `configs/*.toml` are the `uv run eval @ <file>` v1 configs (EvalConfig)
|
|
5
|
-
`endpoints.toml` isn't an eval config, and `configs/eval|rl|gepa/` are the legacy
|
|
6
|
-
`vf-eval` / training formats (different, non-v1 config classes), so both are out of scope here.
|
|
4
|
+
type. The root `configs/*.toml` are the `uv run eval @ <file>` v1 configs (EvalConfig).
|
|
7
5
|
"""
|
|
8
6
|
|
|
9
7
|
import tomllib
|
|
@@ -13,11 +11,7 @@ import pytest
|
|
|
13
11
|
|
|
14
12
|
from verifiers.v1.configs.cli.eval import EvalConfig
|
|
15
13
|
|
|
16
|
-
CONFIGS = sorted(
|
|
17
|
-
p
|
|
18
|
-
for p in (Path(__file__).resolve().parents[2] / "configs").glob("*.toml")
|
|
19
|
-
if p.name != "endpoints.toml"
|
|
20
|
-
)
|
|
14
|
+
CONFIGS = sorted((Path(__file__).resolve().parents[2] / "configs").glob("*.toml"))
|
|
21
15
|
|
|
22
16
|
|
|
23
17
|
@pytest.mark.parametrize("path", CONFIGS, ids=lambda p: p.name)
|
|
@@ -9,7 +9,7 @@ server; un-entered, each run brings its own."""
|
|
|
9
9
|
|
|
10
10
|
import asyncio
|
|
11
11
|
import logging
|
|
12
|
-
from collections.abc import AsyncIterator, Callable,
|
|
12
|
+
from collections.abc import AsyncIterator, Callable, Mapping
|
|
13
13
|
from contextlib import asynccontextmanager, nullcontext
|
|
14
14
|
from dataclasses import dataclass
|
|
15
15
|
from typing import Self
|
|
@@ -733,9 +733,3 @@ class Agents:
|
|
|
733
733
|
f"{sorted(agents) if agents else []}"
|
|
734
734
|
)
|
|
735
735
|
return agents[name]
|
|
736
|
-
|
|
737
|
-
def __iter__(self) -> Iterator[Agent]:
|
|
738
|
-
return iter(self._agents.values())
|
|
739
|
-
|
|
740
|
-
def __len__(self) -> int:
|
|
741
|
-
return len(self._agents)
|
|
@@ -46,11 +46,9 @@ def main(argv: list[str] | None = None) -> None:
|
|
|
46
46
|
narrow_config(EvalConfig, argv)
|
|
47
47
|
) # full option help, narrowed to the given ids
|
|
48
48
|
return
|
|
49
|
-
# An env-block flag
|
|
50
|
-
#
|
|
51
|
-
typed_axis = any(
|
|
52
|
-
a.startswith(("--env.", "--taskset.", "--harness.", "--serve.")) for a in argv
|
|
53
|
-
)
|
|
49
|
+
# An env-block flag skips the usage gate so the typed parse renders its
|
|
50
|
+
# did-you-mean instead of a bare usage line.
|
|
51
|
+
typed_axis = any(a.startswith(("--env.", "--serve.")) for a in argv)
|
|
54
52
|
if (
|
|
55
53
|
not extract_id(argv, "env.taskset")
|
|
56
54
|
and not references_config_file(argv)
|
|
@@ -42,7 +42,7 @@ def main(argv: list[str] | None = None) -> None:
|
|
|
42
42
|
narrow_config(GEPAConfig, argv)
|
|
43
43
|
) # full option help, narrowed to the given ids
|
|
44
44
|
return
|
|
45
|
-
typed_axis = any(a.startswith(
|
|
45
|
+
typed_axis = any(a.startswith("--env.") for a in argv)
|
|
46
46
|
if (
|
|
47
47
|
not extract_id(argv, "env.taskset")
|
|
48
48
|
and not references_config_file(argv)
|
|
@@ -72,13 +72,10 @@ def attempt_log_file(run_dir: Path) -> Path:
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
def saved_config_path(run_dir: Path) -> Path | None:
|
|
75
|
-
"""The run's saved resolved config (`configs/resolved/<cli>.json
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if candidates:
|
|
80
|
-
return candidates[0]
|
|
81
|
-
return None
|
|
75
|
+
"""The run's saved resolved config (`configs/resolved/<cli>.json`), None if absent."""
|
|
76
|
+
config_dir = run_dir / CONFIG_DIR / RESOLVED_DIR
|
|
77
|
+
candidates = sorted(config_dir.glob("*.json")) if config_dir.is_dir() else []
|
|
78
|
+
return candidates[0] if candidates else None
|
|
82
79
|
|
|
83
80
|
|
|
84
81
|
# Compiling an adapter is the expensive part; run output reuses only a few model classes.
|
|
@@ -6,6 +6,7 @@ from typing import Annotated, Any, Generic, Literal, Self
|
|
|
6
6
|
from pydantic import BaseModel, Field, model_validator
|
|
7
7
|
|
|
8
8
|
from verifiers.v1.configs.agent import WireAgentConfig
|
|
9
|
+
from verifiers.v1.graph import RECORD_FLOAT_DECIMALS
|
|
9
10
|
from verifiers.v1.state import State, StateT
|
|
10
11
|
from verifiers.v1.task import DataT, WireTaskData
|
|
11
12
|
from verifiers.v1.trace import EXCLUDE_FIELDS, AgentConfigT, Error, Trace, TraceTask
|
|
@@ -146,12 +147,16 @@ class Episode(BaseModel, Generic[DataT, StateT, AgentConfigT]):
|
|
|
146
147
|
grouped.setdefault(trace.agent.name, []).append(trace)
|
|
147
148
|
return grouped
|
|
148
149
|
|
|
149
|
-
def to_record(
|
|
150
|
-
|
|
150
|
+
def to_record(
|
|
151
|
+
self, float_decimals: int | None = RECORD_FLOAT_DECIMALS
|
|
152
|
+
) -> dict[str, Any]:
|
|
153
|
+
"""JSON record without raw trace tensors, which remain on the msgpack wire.
|
|
154
|
+
Per-token float streams are rounded to `float_decimals` (`None` keeps every digit)."""
|
|
151
155
|
return self.model_dump(
|
|
152
156
|
mode="json",
|
|
153
157
|
exclude={"traces": {"__all__": EXCLUDE_FIELDS}},
|
|
154
158
|
exclude_none=True,
|
|
159
|
+
context={"float_decimals": float_decimals},
|
|
155
160
|
)
|
|
156
161
|
|
|
157
162
|
|
|
@@ -28,7 +28,14 @@ from dataclasses import dataclass
|
|
|
28
28
|
from typing import TYPE_CHECKING, Any
|
|
29
29
|
|
|
30
30
|
import numpy as np
|
|
31
|
-
from pydantic import
|
|
31
|
+
from pydantic import (
|
|
32
|
+
BaseModel,
|
|
33
|
+
ConfigDict,
|
|
34
|
+
Field,
|
|
35
|
+
FieldSerializationInfo,
|
|
36
|
+
field_serializer,
|
|
37
|
+
field_validator,
|
|
38
|
+
)
|
|
32
39
|
from pydantic.json_schema import SkipJsonSchema
|
|
33
40
|
from renderers.base import MultiModalData, PlaceholderRange, RenderedTokens
|
|
34
41
|
|
|
@@ -65,6 +72,14 @@ def _decode_ndarray(d: dict) -> np.ndarray:
|
|
|
65
72
|
return np.frombuffer(d["data"], dtype=np.dtype(d["dtype"])).reshape(d["shape"])
|
|
66
73
|
|
|
67
74
|
|
|
75
|
+
RECORD_FLOAT_DECIMALS = 4
|
|
76
|
+
"""Default precision of per-token float streams in JSON records (`to_record`). Full-precision
|
|
77
|
+
digits are noise to every record reader and the least compressible bytes of a trace; four
|
|
78
|
+
decimals leave a logprob within 1e-4 of what the trainer saw. `to_record(float_decimals=...)`
|
|
79
|
+
overrides it per dump (`None` keeps every digit). The msgpack wire (`mode="python"`) keeps
|
|
80
|
+
full precision — training never reads the record."""
|
|
81
|
+
|
|
82
|
+
|
|
68
83
|
class MessageNode(BaseModel):
|
|
69
84
|
"""One message in the graph: a message plus the tokens it adds to the cumulative
|
|
70
85
|
sequence. Concatenating a root→leaf path's nodes reconstructs that branch's full token
|
|
@@ -150,6 +165,22 @@ class MessageNode(BaseModel):
|
|
|
150
165
|
|
|
151
166
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
152
167
|
|
|
168
|
+
@field_serializer(
|
|
169
|
+
"logprobs",
|
|
170
|
+
"advantages",
|
|
171
|
+
"reference_logprobs",
|
|
172
|
+
"trainer_logprobs",
|
|
173
|
+
"entropies",
|
|
174
|
+
when_used="json",
|
|
175
|
+
)
|
|
176
|
+
def serialize_record_floats(
|
|
177
|
+
self, values: list[float] | None, info: FieldSerializationInfo
|
|
178
|
+
) -> list[float] | None:
|
|
179
|
+
decimals = (info.context or {}).get("float_decimals", RECORD_FLOAT_DECIMALS)
|
|
180
|
+
if values is None or decimals is None:
|
|
181
|
+
return values
|
|
182
|
+
return [round(value, decimals) for value in values]
|
|
183
|
+
|
|
153
184
|
@field_serializer("multi_modal_data")
|
|
154
185
|
def serialize_multi_modal_data(self, mmd: MultiModalData | None) -> dict | None:
|
|
155
186
|
"""`MultiModalData` -> msgpack-safe dict so the pixel tensors ride the wire; numpy
|
|
@@ -117,31 +117,6 @@ class Harness(ABC, Generic[ConfigT]):
|
|
|
117
117
|
# `write` moves bytes, not modes; restore the execute bits scripts need.
|
|
118
118
|
await runtime.run(["chmod", "+x", *executables], {})
|
|
119
119
|
|
|
120
|
-
async def run(
|
|
121
|
-
self,
|
|
122
|
-
ctx: ModelContext,
|
|
123
|
-
trace: Trace,
|
|
124
|
-
runtime: Runtime,
|
|
125
|
-
endpoint: str,
|
|
126
|
-
secret: str,
|
|
127
|
-
mcp_urls: dict[str, str],
|
|
128
|
-
data: TaskData,
|
|
129
|
-
messages: Messages | None = None,
|
|
130
|
-
) -> None:
|
|
131
|
-
"""Run ONE segment of the exchange without retaining a process: the program
|
|
132
|
-
from launch (or, with `messages`, the user's next turn(s) via `resume`) until
|
|
133
|
-
it yields. The rollout loop owns the exchange across segments."""
|
|
134
|
-
async with boundary(HarnessError, f"harness {self.config.id!r}"):
|
|
135
|
-
if messages is None:
|
|
136
|
-
result = await self.launch(
|
|
137
|
-
ctx, trace, runtime, endpoint, secret, mcp_urls, data
|
|
138
|
-
)
|
|
139
|
-
else:
|
|
140
|
-
result = await self.resume(
|
|
141
|
-
ctx, trace, runtime, endpoint, secret, mcp_urls, data, messages
|
|
142
|
-
)
|
|
143
|
-
await self._check_result(trace, runtime, result)
|
|
144
|
-
|
|
145
120
|
async def _check_result(
|
|
146
121
|
self, trace: Trace, runtime: Runtime, result: ProgramResult
|
|
147
122
|
) -> None:
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/prime_agent/harness.py
RENAMED
|
@@ -97,7 +97,6 @@ class PrimeAgentHarnessConfig(HarnessConfig):
|
|
|
97
97
|
class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
|
|
98
98
|
APPENDS_SYSTEM_PROMPT = True
|
|
99
99
|
SUPPORTS_MCP = True
|
|
100
|
-
SUPPORTS_RESUME = True
|
|
101
100
|
SUPPORTS_SKILLS = True
|
|
102
101
|
|
|
103
102
|
def acp_turn_result(self, trace: Trace, result: ACPTurn) -> None:
|
|
@@ -201,9 +201,8 @@ async def _install_in_sandbox(server: ServerBase, runtime: Runtime) -> str:
|
|
|
201
201
|
await runtime.write(env_remote, env_data)
|
|
202
202
|
venv = str(PurePosixPath(workdir) / ".vf-venv")
|
|
203
203
|
root_q, temp_q, cache_q, venv_q = map(shlex.quote, (root, temp, cache, venv))
|
|
204
|
-
extras = ",".join(type(server).EXTRAS)
|
|
205
204
|
vf_source = shlex.quote(vf_remote)
|
|
206
|
-
env_source = shlex.quote(env_remote
|
|
205
|
+
env_source = shlex.quote(env_remote)
|
|
207
206
|
setup = (
|
|
208
207
|
f"set -e; mkdir -p {root_q} {temp_q} {cache_q}; "
|
|
209
208
|
f"export TMPDIR={temp_q} UV_CACHE_DIR={cache_q}; "
|
|
@@ -279,12 +278,7 @@ async def serve_in_runtime(
|
|
|
279
278
|
env["MCP_PORT_FILE"] = port_file
|
|
280
279
|
python = sys.executable
|
|
281
280
|
if runtime.type != "subprocess":
|
|
282
|
-
|
|
283
|
-
# environment. Let those servers bypass redundant per-launch source
|
|
284
|
-
# uploads and installation while preserving the existing default.
|
|
285
|
-
python = getattr(type(server), "RUNTIME_PYTHON", None)
|
|
286
|
-
if python is None:
|
|
287
|
-
python = await _install_in_sandbox(server, runtime)
|
|
281
|
+
python = await _install_in_sandbox(server, runtime)
|
|
288
282
|
command = [python, "-m", type(server).__module__]
|
|
289
283
|
if runtime.type != "subprocess":
|
|
290
284
|
# Providers may invoke uv after the install shell exits, so preserve its PATH.
|
|
@@ -134,9 +134,6 @@ class ServerBase(Generic[ConfigT, StateT]):
|
|
|
134
134
|
tools bare (no `<server>_` prefix); name collisions across servers are then the taskset
|
|
135
135
|
author's concern."""
|
|
136
136
|
|
|
137
|
-
EXTRAS: ClassVar[tuple[str, ...]] = ()
|
|
138
|
-
"""Package extras the server's module needs, applied at sandbox install."""
|
|
139
|
-
|
|
140
137
|
def __init__(self, config: ConfigT) -> None:
|
|
141
138
|
self.config = config
|
|
142
139
|
self._state_cls = state_cls(type(self))
|
|
@@ -18,7 +18,7 @@ if TYPE_CHECKING:
|
|
|
18
18
|
from verifiers.v1 import graph
|
|
19
19
|
from verifiers.v1.configs.agent import AgentConfig, WireAgentConfig
|
|
20
20
|
from verifiers.v1.errors import ProviderError
|
|
21
|
-
from verifiers.v1.graph import MessageNode
|
|
21
|
+
from verifiers.v1.graph import RECORD_FLOAT_DECIMALS, MessageNode
|
|
22
22
|
from verifiers.v1.runtimes import RuntimeInfo
|
|
23
23
|
from verifiers.v1.semantic import (
|
|
24
24
|
ACPInfo,
|
|
@@ -728,9 +728,16 @@ class Trace(BaseModel, Generic[DataT, StateT, AgentConfigT]):
|
|
|
728
728
|
self.ok = False
|
|
729
729
|
self.stop("error")
|
|
730
730
|
|
|
731
|
-
def to_record(
|
|
732
|
-
|
|
733
|
-
|
|
731
|
+
def to_record(
|
|
732
|
+
self, float_decimals: int | None = RECORD_FLOAT_DECIMALS
|
|
733
|
+
) -> dict[str, Any]:
|
|
734
|
+
"""JSON record without raw tensors, which remain available on the msgpack wire.
|
|
735
|
+
Per-token float streams are rounded to `float_decimals` (`None` keeps every digit)."""
|
|
736
|
+
return self.model_dump(
|
|
737
|
+
mode="json",
|
|
738
|
+
exclude=EXCLUDE_FIELDS,
|
|
739
|
+
context={"float_decimals": float_decimals},
|
|
740
|
+
)
|
|
734
741
|
|
|
735
742
|
|
|
736
743
|
WireTrace = Trace[WireTaskData, State, WireAgentConfig]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev42 → verifiers-0.3.2.dev44}/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
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/browser_use/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/browser_use/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/browser_use/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/claude_code/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/claude_code/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/hermes_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/hermes_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/hermes_agent/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/kimi_code/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/mini_swe_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/mini_swe_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/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.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/prime_agent/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/terminus_2/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/verifiers/v1/harnesses/terminus_2/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/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
|
{verifiers-0.3.2.dev42 → verifiers-0.3.2.dev44}/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
|