verifiers 0.3.2.dev33__tar.gz → 0.3.2.dev35__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/PKG-INFO +2 -2
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/pyproject.toml +1 -1
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/__init__.py +2 -2
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/clients/train.py +3 -3
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/graph.py +28 -31
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/bash/harness.py +2 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/null/harness.py +2 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/utils/launch.py +6 -5
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/trace.py +10 -13
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/types.py +24 -11
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/.gitignore +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/LICENSE +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/README.md +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/conftest.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_configs.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_envs.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_graph.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_judges.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/tests/v1/test_trace.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/agent.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/episode.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/errors.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/pool/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/utils/compaction.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/utils/core.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/utils/mcp.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/tool.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/judge.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/semantic.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/session.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/state.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/task.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/harbor/env.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/loaders.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/platform.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/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.dev35
|
|
4
4
|
Summary: Verifiers: Environments for LLM Reinforcement Learning
|
|
5
5
|
Project-URL: Homepage, https://github.com/primeintellect-ai/verifiers
|
|
6
6
|
Project-URL: Documentation, https://github.com/primeintellect-ai/verifiers
|
|
@@ -37,7 +37,7 @@ Requires-Dist: prime-sandboxes>=0.2.39
|
|
|
37
37
|
Requires-Dist: prime-tunnel>=0.1.8
|
|
38
38
|
Requires-Dist: pydantic>=2.12.3
|
|
39
39
|
Requires-Dist: pyzmq>=27.1.0
|
|
40
|
-
Requires-Dist: renderers[multimodal]>=0.1.
|
|
40
|
+
Requires-Dist: renderers[multimodal]>=0.1.12.dev2
|
|
41
41
|
Requires-Dist: rich>=11.0.0
|
|
42
42
|
Requires-Dist: tenacity>=8.5.0
|
|
43
43
|
Requires-Dist: tomli-w>=1.0.0
|
|
@@ -46,7 +46,7 @@ dependencies = [
|
|
|
46
46
|
"uvloop>=0.21.0; sys_platform != 'win32' and sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'",
|
|
47
47
|
"loguru>=0.7.0",
|
|
48
48
|
"tomli-w>=1.0.0",
|
|
49
|
-
"renderers[multimodal]>=0.1.
|
|
49
|
+
"renderers[multimodal]>=0.1.12.dev2",
|
|
50
50
|
"typing_extensions>=4.12.2",
|
|
51
51
|
"mcp==2.0.0",
|
|
52
52
|
]
|
|
@@ -116,7 +116,6 @@ from verifiers.v1.types import (
|
|
|
116
116
|
ContentPart,
|
|
117
117
|
ImageUrlContentPart,
|
|
118
118
|
ImageUrlSource,
|
|
119
|
-
KeptTokens,
|
|
120
119
|
Message,
|
|
121
120
|
MessageContent,
|
|
122
121
|
Messages,
|
|
@@ -124,6 +123,7 @@ from verifiers.v1.types import (
|
|
|
124
123
|
Response,
|
|
125
124
|
Sampling,
|
|
126
125
|
SamplingConfig,
|
|
126
|
+
SamplingMask,
|
|
127
127
|
SystemMessage,
|
|
128
128
|
TextContentPart,
|
|
129
129
|
Tool,
|
|
@@ -249,7 +249,7 @@ __all__ = [ # noqa: RUF022 - grouped by public API area
|
|
|
249
249
|
"MessageNode",
|
|
250
250
|
"Branch",
|
|
251
251
|
"TurnTokens",
|
|
252
|
-
"
|
|
252
|
+
"SamplingMask",
|
|
253
253
|
"Timing",
|
|
254
254
|
"TimeSpan",
|
|
255
255
|
"TimeSplit",
|
|
@@ -23,9 +23,9 @@ from verifiers.v1.graph import PendingTurn
|
|
|
23
23
|
from verifiers.v1.types import (
|
|
24
24
|
AssistantMessage,
|
|
25
25
|
FinishReason,
|
|
26
|
-
KeptTokens,
|
|
27
26
|
Response,
|
|
28
27
|
SamplingConfig,
|
|
28
|
+
SamplingMask,
|
|
29
29
|
Tool,
|
|
30
30
|
ToolCall,
|
|
31
31
|
TurnTokens,
|
|
@@ -161,8 +161,8 @@ def response_from_generate(
|
|
|
161
161
|
multi_modal_data=result.get("multi_modal_data"),
|
|
162
162
|
mm_token_type_id_map=mm_token_type_id_map,
|
|
163
163
|
routed_experts=result.get("routed_experts"),
|
|
164
|
-
|
|
165
|
-
if (
|
|
164
|
+
sampling_mask=SamplingMask.from_sampling_mask(mask)
|
|
165
|
+
if (mask := result.get("sampling_mask"))
|
|
166
166
|
else None,
|
|
167
167
|
),
|
|
168
168
|
)
|
|
@@ -35,9 +35,9 @@ from renderers.base import MultiModalData, PlaceholderRange, RenderedTokens
|
|
|
35
35
|
from verifiers.v1.semantic import ParentLink
|
|
36
36
|
from verifiers.v1.types import (
|
|
37
37
|
AssistantMessage,
|
|
38
|
-
KeptTokens,
|
|
39
38
|
Message,
|
|
40
39
|
Response,
|
|
40
|
+
SamplingMask,
|
|
41
41
|
TextContentPart,
|
|
42
42
|
Tool,
|
|
43
43
|
ToolMessage,
|
|
@@ -141,12 +141,12 @@ class MessageNode(BaseModel):
|
|
|
141
141
|
the turn's `generate` payload by `_attribute_routed_experts`; `Branch.routed_experts`
|
|
142
142
|
concatenates these along the path into the trainer's router-replay input. Rides the wire as
|
|
143
143
|
a raw-bytes `__nd__` dict; kept off disk by the dump-site `exclude` in prime-rl."""
|
|
144
|
-
|
|
145
|
-
"""
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
144
|
+
sampling_mask: SkipJsonSchema[SamplingMask | None] = None
|
|
145
|
+
"""Sampling masks for this node's sampled tokens.
|
|
146
|
+
|
|
147
|
+
`ids` stores the flat token ids and `counts` stores each token's row size. Assistant
|
|
148
|
+
nodes only. The arrays serialize as raw-byte `__nd__` dictionaries.
|
|
149
|
+
"""
|
|
150
150
|
|
|
151
151
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
152
152
|
|
|
@@ -208,27 +208,26 @@ class MessageNode(BaseModel):
|
|
|
208
208
|
return _decode_ndarray(value)
|
|
209
209
|
raise TypeError(f"cannot build ndarray field from {type(value).__name__}")
|
|
210
210
|
|
|
211
|
-
@field_serializer("
|
|
212
|
-
def
|
|
213
|
-
|
|
214
|
-
if kept is None:
|
|
211
|
+
@field_serializer("sampling_mask")
|
|
212
|
+
def serialize_sampling_mask(self, mask: SamplingMask | None) -> dict | None:
|
|
213
|
+
if mask is None:
|
|
215
214
|
return None
|
|
216
215
|
return {
|
|
217
|
-
"ids": _encode_ndarray(
|
|
218
|
-
"counts": _encode_ndarray(
|
|
216
|
+
"ids": _encode_ndarray(mask.ids),
|
|
217
|
+
"counts": _encode_ndarray(mask.counts),
|
|
219
218
|
}
|
|
220
219
|
|
|
221
|
-
@field_validator("
|
|
220
|
+
@field_validator("sampling_mask", mode="before")
|
|
222
221
|
@classmethod
|
|
223
|
-
def
|
|
224
|
-
if value is None or isinstance(value,
|
|
222
|
+
def deserialize_sampling_mask(cls, value: Any) -> SamplingMask | None:
|
|
223
|
+
if value is None or isinstance(value, SamplingMask):
|
|
225
224
|
return value
|
|
226
225
|
if isinstance(value, dict):
|
|
227
|
-
return
|
|
226
|
+
return SamplingMask(
|
|
228
227
|
ids=_decode_ndarray(value["ids"]),
|
|
229
228
|
counts=_decode_ndarray(value["counts"]),
|
|
230
229
|
)
|
|
231
|
-
raise TypeError(f"cannot build
|
|
230
|
+
raise TypeError(f"cannot build SamplingMask from {type(value).__name__}")
|
|
232
231
|
|
|
233
232
|
|
|
234
233
|
def _canonical_tool_arguments(arguments: str) -> str:
|
|
@@ -612,21 +611,18 @@ def _attribute_routed_experts(
|
|
|
612
611
|
off = end
|
|
613
612
|
|
|
614
613
|
|
|
615
|
-
def
|
|
616
|
-
trace: Trace, assistant_id: int, payload:
|
|
614
|
+
def _attribute_sampling_mask(
|
|
615
|
+
trace: Trace, assistant_id: int, payload: SamplingMask | None
|
|
617
616
|
) -> None:
|
|
618
|
-
"""Attach
|
|
619
|
-
covers exactly the turn's completion tokens, so no path arithmetic). A payload
|
|
620
|
-
that doesn't line up with the node's sampled tokens is dropped, not misaligned."""
|
|
617
|
+
"""Attach a completion-aligned sampling mask to the assistant node."""
|
|
621
618
|
if payload is None:
|
|
622
619
|
return
|
|
623
|
-
counts = np.frombuffer(binascii.a2b_base64(payload.counts), dtype=np.int32)
|
|
624
|
-
ids = np.frombuffer(binascii.a2b_base64(payload.ids), dtype=np.int32)
|
|
625
620
|
node = trace.nodes[assistant_id]
|
|
626
|
-
if len(counts) != sum(node.mask) or int(counts.sum()) != len(
|
|
621
|
+
if len(payload.counts) != sum(node.mask) or int(payload.counts.sum()) != len(
|
|
622
|
+
payload.ids
|
|
623
|
+
):
|
|
627
624
|
return
|
|
628
|
-
|
|
629
|
-
node.kept_tokens = KeptTokens(ids=ids.copy(), counts=counts.copy())
|
|
625
|
+
node.sampling_mask = payload
|
|
630
626
|
|
|
631
627
|
|
|
632
628
|
def _commit_turn(turn: PendingTurn, response: Response) -> int:
|
|
@@ -775,9 +771,10 @@ def _commit_turn(turn: PendingTurn, response: Response) -> int:
|
|
|
775
771
|
trace, new_node_ids, path_len, tokens.routed_experts if tokens else None
|
|
776
772
|
)
|
|
777
773
|
|
|
778
|
-
#
|
|
779
|
-
|
|
780
|
-
|
|
774
|
+
# Sampling masks are completion-aligned, so only the sampled node carries them.
|
|
775
|
+
_attribute_sampling_mask(
|
|
776
|
+
trace, assistant_id, tokens.sampling_mask if tokens else None
|
|
777
|
+
)
|
|
781
778
|
|
|
782
779
|
return assistant_id
|
|
783
780
|
|
|
@@ -8,6 +8,7 @@ from verifiers.v1.configs.harness import HarnessConfig
|
|
|
8
8
|
from verifiers.v1.harness import Harness
|
|
9
9
|
from verifiers.v1.harnesses.utils.launch import (
|
|
10
10
|
CHAT_PROGRAM_SOURCE,
|
|
11
|
+
MCP_CHAT_PROGRAM_SOURCE,
|
|
11
12
|
launch_chat_program,
|
|
12
13
|
)
|
|
13
14
|
from verifiers.v1.runtimes import ProgramResult, Runtime
|
|
@@ -121,6 +122,7 @@ class BashHarness(Harness[BashHarnessConfig]):
|
|
|
121
122
|
mcp_urls,
|
|
122
123
|
system_prompt,
|
|
123
124
|
prompt,
|
|
125
|
+
source_with_mcp=MCP_CHAT_PROGRAM_SOURCE,
|
|
124
126
|
extra_args=args,
|
|
125
127
|
env=env,
|
|
126
128
|
activate=False,
|
|
@@ -3,6 +3,7 @@ from verifiers.v1.configs.harness import HarnessConfig
|
|
|
3
3
|
from verifiers.v1.harness import Harness
|
|
4
4
|
from verifiers.v1.harnesses.utils.launch import (
|
|
5
5
|
CHAT_PROGRAM_SOURCE,
|
|
6
|
+
MCP_CHAT_PROGRAM_SOURCE,
|
|
6
7
|
launch_chat_program,
|
|
7
8
|
)
|
|
8
9
|
from verifiers.v1.runtimes import ProgramResult, Runtime
|
|
@@ -46,4 +47,5 @@ class NullHarness(Harness[NullHarnessConfig]):
|
|
|
46
47
|
mcp_urls,
|
|
47
48
|
system_prompt,
|
|
48
49
|
prompt,
|
|
50
|
+
source_with_mcp=MCP_CHAT_PROGRAM_SOURCE,
|
|
49
51
|
)
|
|
@@ -24,14 +24,13 @@ def bundle_program(program: str, *modules: ModuleType) -> str:
|
|
|
24
24
|
# The shared Null/Bash chat program is the utils modules themselves: `core` ends with
|
|
25
25
|
# the `__main__` entry point, so the program text is only the script metadata. Secrets
|
|
26
26
|
# use argv so tools do not inherit them.
|
|
27
|
-
|
|
27
|
+
CHAT_PROGRAM = (
|
|
28
28
|
'# /// script\n# requires-python = ">=3.10"\n'
|
|
29
29
|
'# dependencies = ["openai", "mcp==2.0.0", "httpx", "httpx2", "tenacity"]\n'
|
|
30
|
-
"# ///\n"
|
|
31
|
-
mcp,
|
|
32
|
-
compaction,
|
|
33
|
-
core,
|
|
30
|
+
"# ///\n"
|
|
34
31
|
)
|
|
32
|
+
CHAT_PROGRAM_SOURCE = bundle_program(CHAT_PROGRAM, compaction, core)
|
|
33
|
+
MCP_CHAT_PROGRAM_SOURCE = bundle_program(CHAT_PROGRAM, mcp, compaction, core)
|
|
35
34
|
|
|
36
35
|
|
|
37
36
|
async def launch_chat_program(
|
|
@@ -46,6 +45,7 @@ async def launch_chat_program(
|
|
|
46
45
|
system_prompt: str | None,
|
|
47
46
|
prompt: str | Messages | None,
|
|
48
47
|
*,
|
|
48
|
+
source_with_mcp: str | None = None,
|
|
49
49
|
extra_args: Sequence[str] = (),
|
|
50
50
|
env: dict[str, str] | None = None,
|
|
51
51
|
activate: bool = True,
|
|
@@ -60,6 +60,7 @@ async def launch_chat_program(
|
|
|
60
60
|
if system_prompt:
|
|
61
61
|
args.append(f"--system-prompt={system_prompt}")
|
|
62
62
|
if mcp_urls:
|
|
63
|
+
source = source_with_mcp or source
|
|
63
64
|
args.append(
|
|
64
65
|
"--mcp-config="
|
|
65
66
|
+ json.dumps(
|
|
@@ -29,10 +29,10 @@ from verifiers.v1.task import DataT, WireTaskData
|
|
|
29
29
|
from verifiers.v1.types import (
|
|
30
30
|
AssistantMessage,
|
|
31
31
|
FinishReason,
|
|
32
|
-
KeptTokens,
|
|
33
32
|
Message,
|
|
34
33
|
Messages,
|
|
35
34
|
Sampling,
|
|
35
|
+
SamplingMask,
|
|
36
36
|
Tool,
|
|
37
37
|
ToolMessage,
|
|
38
38
|
Usage,
|
|
@@ -48,7 +48,7 @@ EXCLUDE_FIELDS: dict = {
|
|
|
48
48
|
"__all__": {
|
|
49
49
|
"multi_modal_data",
|
|
50
50
|
"routed_experts",
|
|
51
|
-
"
|
|
51
|
+
"sampling_mask",
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -343,28 +343,25 @@ class Branch(BaseModel):
|
|
|
343
343
|
return merged if merged.shape[0] == total else None
|
|
344
344
|
|
|
345
345
|
@property
|
|
346
|
-
def
|
|
347
|
-
"""
|
|
348
|
-
|
|
349
|
-
if all(n.kept_tokens is None for n in self.nodes):
|
|
346
|
+
def sampling_mask(self) -> SamplingMask | None:
|
|
347
|
+
"""Sampling masks aligned to this branch's token ids."""
|
|
348
|
+
if all(n.sampling_mask is None for n in self.nodes):
|
|
350
349
|
return None
|
|
351
|
-
#
|
|
352
|
-
# tokens before setting the field, so this is a straight scatter+concat
|
|
353
|
-
# (a corrupted node would fail loudly on the scatter shape mismatch).
|
|
350
|
+
# Attribution validates each mask against the node's sampled positions.
|
|
354
351
|
ids_parts: list[np.ndarray] = []
|
|
355
352
|
counts_parts: list[np.ndarray] = []
|
|
356
353
|
for node in self.nodes:
|
|
357
354
|
counts = np.zeros(len(node.mask), dtype=np.int32)
|
|
358
|
-
if node.
|
|
359
|
-
counts[np.nonzero(node.mask)[0]] = node.
|
|
360
|
-
ids_parts.append(node.
|
|
355
|
+
if node.sampling_mask is not None and len(node.sampling_mask.counts):
|
|
356
|
+
counts[np.nonzero(node.mask)[0]] = node.sampling_mask.counts
|
|
357
|
+
ids_parts.append(node.sampling_mask.ids)
|
|
361
358
|
counts_parts.append(counts)
|
|
362
359
|
ids = (
|
|
363
360
|
np.concatenate(ids_parts).astype(np.int32, copy=False)
|
|
364
361
|
if ids_parts
|
|
365
362
|
else np.zeros(0, dtype=np.int32)
|
|
366
363
|
)
|
|
367
|
-
return
|
|
364
|
+
return SamplingMask(ids=ids, counts=np.concatenate(counts_parts))
|
|
368
365
|
|
|
369
366
|
@property
|
|
370
367
|
def usage(self) -> Usage | None:
|
|
@@ -2,6 +2,7 @@ from collections.abc import Iterable
|
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from typing import Annotated, Any, Literal
|
|
4
4
|
|
|
5
|
+
import numpy as np
|
|
5
6
|
from pydantic import AliasChoices, BaseModel, ConfigDict, Field
|
|
6
7
|
from renderers.base import MultiModalData
|
|
7
8
|
from typing_extensions import TypedDict
|
|
@@ -184,16 +185,30 @@ class RoutedExperts(TypedDict):
|
|
|
184
185
|
|
|
185
186
|
|
|
186
187
|
@dataclass
|
|
187
|
-
class
|
|
188
|
-
"""
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
188
|
+
class SamplingMask:
|
|
189
|
+
"""Sampling masks stored as flat int32 `ids` and `counts` arrays.
|
|
190
|
+
|
|
191
|
+
Each row contains the token ids that survived sampling filters for one completion
|
|
192
|
+
token. Row boundaries are recovered from `counts`.
|
|
193
|
+
"""
|
|
193
194
|
|
|
194
195
|
ids: Any
|
|
195
196
|
counts: Any
|
|
196
197
|
|
|
198
|
+
@classmethod
|
|
199
|
+
def from_sampling_mask(cls, sampling_mask: list[list[int]]) -> "SamplingMask":
|
|
200
|
+
counts = np.fromiter(
|
|
201
|
+
(len(row) for row in sampling_mask),
|
|
202
|
+
dtype=np.int32,
|
|
203
|
+
count=len(sampling_mask),
|
|
204
|
+
)
|
|
205
|
+
ids = (
|
|
206
|
+
np.concatenate([np.asarray(row, dtype=np.int32) for row in sampling_mask])
|
|
207
|
+
if int(counts.sum())
|
|
208
|
+
else np.empty(0, dtype=np.int32)
|
|
209
|
+
)
|
|
210
|
+
return cls(ids=ids, counts=counts)
|
|
211
|
+
|
|
197
212
|
|
|
198
213
|
class TurnTokens(BaseModel):
|
|
199
214
|
"""Training tokens from renderer tokenization or provider-returned token IDs."""
|
|
@@ -221,11 +236,9 @@ class TurnTokens(BaseModel):
|
|
|
221
236
|
# per token), attributed per node by the turn's `commit` into `MessageNode.routed_experts`,
|
|
222
237
|
# then dropped. None unless the engine ran with `enable_return_routed_experts`.
|
|
223
238
|
routed_experts: RoutedExperts | None = Field(default=None, exclude=True)
|
|
224
|
-
# Transient carrier (excluded):
|
|
225
|
-
#
|
|
226
|
-
|
|
227
|
-
# `enable_return_kept_tokens`.
|
|
228
|
-
kept_tokens: KeptTokens | None = Field(default=None, exclude=True)
|
|
239
|
+
# Transient carrier (excluded): per-completion-token sampling masks,
|
|
240
|
+
# attributed to the assistant node by the turn's `commit`, then dropped.
|
|
241
|
+
sampling_mask: SamplingMask | None = Field(default=None, exclude=True)
|
|
229
242
|
|
|
230
243
|
|
|
231
244
|
class Response(BaseModel):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev33 → verifiers-0.3.2.dev35}/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
|
{verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/browser_use/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/browser_use/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev33 → verifiers-0.3.2.dev35}/verifiers/v1/harnesses/browser_use/program.py
RENAMED
|
File without changes
|