verifiers 0.3.2.dev73__tar.gz → 0.3.2.dev75__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.dev73 → verifiers-0.3.2.dev75}/PKG-INFO +2 -2
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/pyproject.toml +1 -1
- verifiers-0.3.2.dev75/tests/v1/test_platform_run.py +104 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/eval.py +14 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/platform.py +21 -7
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/.gitignore +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/LICENSE +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/README.md +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/conftest.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/duet_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/echo_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/pyproject.toml +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_color_codeword_tasks.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_configs.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_e2e.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_envs.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_graph.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_judges.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_scoring.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/tests/v1/test_trace.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/cli/commands/init.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/agent.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/init.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/init.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/isolated_verifier/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/isolated_verifier/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/shared_agentic_judge/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/episode.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/errors.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/graph.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/pool/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/pool/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/utils/compaction.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/utils/core.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/utils/install.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/utils/launch.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/utils/mcp.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/tool.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/judge.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/semantic.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/session.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/state.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/task.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/harbor/env.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/lean/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/lean/scoring.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/lean/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/trace.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/types.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/loaders.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/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.dev75
|
|
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
|
|
@@ -35,7 +35,7 @@ Requires-Dist: msgpack>=1.1.2
|
|
|
35
35
|
Requires-Dist: numpy>=2.1.0
|
|
36
36
|
Requires-Dist: openai<3.0.0,>=2.54.0
|
|
37
37
|
Requires-Dist: prime-pydantic-config[toml]>=0.4.3
|
|
38
|
-
Requires-Dist: prime-runs>=0.1.
|
|
38
|
+
Requires-Dist: prime-runs>=0.1.2
|
|
39
39
|
Requires-Dist: prime-sandboxes>=0.2.39
|
|
40
40
|
Requires-Dist: prime-tunnel>=0.1.8
|
|
41
41
|
Requires-Dist: pydantic>=2.12.3
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""`open_run`: the eval's run on the platform, and `run.attach` for hosted evaluations."""
|
|
2
|
+
|
|
3
|
+
import prime_runs as pr
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from verifiers.v1.configs.cli.eval import EvalConfig
|
|
7
|
+
from verifiers.v1.utils import platform
|
|
8
|
+
from verifiers.v1.utils.platform import PushState, open_run
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class _FakeRun:
|
|
12
|
+
"""Stands in for `pr.Run`: an id, a URL, nothing else the tests reach for."""
|
|
13
|
+
|
|
14
|
+
def __init__(self, run_id: str, mode: str) -> None:
|
|
15
|
+
self.id = run_id
|
|
16
|
+
self.mode = mode
|
|
17
|
+
self.url = (
|
|
18
|
+
None if mode == "disabled" else f"https://app.example/evaluations/{run_id}"
|
|
19
|
+
)
|
|
20
|
+
self.finished = False
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@pytest.fixture
|
|
24
|
+
def init_calls(monkeypatch):
|
|
25
|
+
"""Record every `pr.init` call; the fake returns a run keyed by the attach id."""
|
|
26
|
+
calls: list[dict] = []
|
|
27
|
+
|
|
28
|
+
def fake_init(**kwargs):
|
|
29
|
+
calls.append(kwargs)
|
|
30
|
+
return _FakeRun(kwargs.get("id") or "eval-created", kwargs["mode"])
|
|
31
|
+
|
|
32
|
+
monkeypatch.setattr(platform.pr, "init", fake_init)
|
|
33
|
+
monkeypatch.delenv(pr.MODE_ENV, raising=False)
|
|
34
|
+
return calls
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_attach_needs_push():
|
|
38
|
+
with pytest.raises(ValueError, match="needs push"):
|
|
39
|
+
EvalConfig(run={"attach": "eval-hosted"}, push=False)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def test_a_run_without_attach_is_created_on_the_platform(init_calls):
|
|
43
|
+
config = EvalConfig(push=True)
|
|
44
|
+
state = PushState()
|
|
45
|
+
|
|
46
|
+
run = open_run(config, state, num_examples=3)
|
|
47
|
+
|
|
48
|
+
assert init_calls[0]["mode"] == "online"
|
|
49
|
+
assert init_calls[0]["id"] is None
|
|
50
|
+
assert run.id == config.run.id == "eval-created"
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_attach_hands_the_launchers_id_to_the_sdk(init_calls):
|
|
54
|
+
config = EvalConfig(run={"attach": "eval-hosted"})
|
|
55
|
+
state = PushState()
|
|
56
|
+
|
|
57
|
+
run = open_run(config, state, num_examples=3)
|
|
58
|
+
|
|
59
|
+
assert init_calls[0]["mode"] == "online"
|
|
60
|
+
assert init_calls[0]["id"] == "eval-hosted"
|
|
61
|
+
# The launcher's id is the run's one id: traces and the run dir carry it too.
|
|
62
|
+
assert run.id == config.run.id == "eval-hosted"
|
|
63
|
+
assert state.error is None
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_a_failed_attach_fails_the_eval_instead_of_falling_back(monkeypatch):
|
|
67
|
+
def refuse(**kwargs):
|
|
68
|
+
raise pr.UnauthorizedError("bad key")
|
|
69
|
+
|
|
70
|
+
monkeypatch.setattr(platform.pr, "init", refuse)
|
|
71
|
+
monkeypatch.delenv(pr.MODE_ENV, raising=False)
|
|
72
|
+
config = EvalConfig(run={"attach": "eval-hosted"})
|
|
73
|
+
|
|
74
|
+
with pytest.raises(RuntimeError, match="could not attach to run 'eval-hosted'"):
|
|
75
|
+
open_run(config, PushState(), num_examples=3)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def test_a_failed_open_without_attach_still_falls_back_to_a_local_run(monkeypatch):
|
|
79
|
+
calls: list[dict] = []
|
|
80
|
+
|
|
81
|
+
def flaky(**kwargs):
|
|
82
|
+
calls.append(kwargs)
|
|
83
|
+
if kwargs["mode"] == "online":
|
|
84
|
+
raise pr.UnauthorizedError("bad key")
|
|
85
|
+
return _FakeRun("local-run", kwargs["mode"])
|
|
86
|
+
|
|
87
|
+
monkeypatch.setattr(platform.pr, "init", flaky)
|
|
88
|
+
monkeypatch.delenv(pr.MODE_ENV, raising=False)
|
|
89
|
+
state = PushState()
|
|
90
|
+
|
|
91
|
+
run = open_run(EvalConfig(push=True), state, num_examples=3)
|
|
92
|
+
|
|
93
|
+
assert [call["mode"] for call in calls] == ["online", "disabled"]
|
|
94
|
+
assert run.mode == "disabled"
|
|
95
|
+
assert state.error is not None and "UnauthorizedError" in state.error
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def test_the_sdk_kill_switch_refuses_an_attach(init_calls, monkeypatch):
|
|
99
|
+
monkeypatch.setenv(pr.MODE_ENV, "disabled")
|
|
100
|
+
config = EvalConfig(run={"attach": "eval-hosted"})
|
|
101
|
+
|
|
102
|
+
with pytest.raises(RuntimeError, match="PRIME_RUNS_MODE=disabled"):
|
|
103
|
+
open_run(config, PushState(), num_examples=3)
|
|
104
|
+
assert init_calls == []
|
|
@@ -48,6 +48,12 @@ class RunConfig(BaseConfig):
|
|
|
48
48
|
"""Run directory name — the run writes to `output_dir / dir`. Defaults to `run.name`;
|
|
49
49
|
set it only when the directory should differ from the display name."""
|
|
50
50
|
|
|
51
|
+
attach: str | None = None
|
|
52
|
+
"""Stream into a run the launcher already created on the platform instead of opening a
|
|
53
|
+
new one — its evaluation id. Hosted evaluations pass the sandbox's `$EVALUATION_ID`
|
|
54
|
+
here; the platform owns that run's record and status, and a run that cannot be
|
|
55
|
+
attached to is an error rather than a local fallback. Requires `push`."""
|
|
56
|
+
|
|
51
57
|
_id: str | None = PrivateAttr(default=None)
|
|
52
58
|
|
|
53
59
|
@property
|
|
@@ -145,3 +151,11 @@ class EvalConfig(BaseConfig):
|
|
|
145
151
|
if self.run.dir is None:
|
|
146
152
|
self.run.dir = self.run.name
|
|
147
153
|
return self
|
|
154
|
+
|
|
155
|
+
@model_validator(mode="after")
|
|
156
|
+
def attach_needs_push(self):
|
|
157
|
+
if self.run.attach and not self.push:
|
|
158
|
+
raise ValueError(
|
|
159
|
+
"run.attach names a run on the platform, so it needs push (drop --no-push)"
|
|
160
|
+
)
|
|
161
|
+
return self
|
|
@@ -45,7 +45,10 @@ class PushState:
|
|
|
45
45
|
def open_run(config: EvalConfig, state: PushState, *, num_examples: int) -> pr.Run:
|
|
46
46
|
"""Open the run this eval streams into, before the first rollout, and give the
|
|
47
47
|
config the run's id. A run that cannot be opened is logged and replaced by a
|
|
48
|
-
disabled one; the eval goes on.
|
|
48
|
+
disabled one; the eval goes on. With `run.attach` the run already exists on the
|
|
49
|
+
platform (a hosted evaluation's launcher created it and is waiting on it), so
|
|
50
|
+
there is no local fallback: failing to attach fails the eval."""
|
|
51
|
+
attach = config.run.attach
|
|
49
52
|
identity: dict[str, Any] = {
|
|
50
53
|
"name": config.run.name,
|
|
51
54
|
# Resolved by name via the hub's get-or-create; no taskset, nothing to attach to.
|
|
@@ -61,12 +64,23 @@ def open_run(config: EvalConfig, state: PushState, *, num_examples: int) -> pr.R
|
|
|
61
64
|
},
|
|
62
65
|
}
|
|
63
66
|
if config.push and os.getenv(pr.MODE_ENV, "").strip().lower() == "disabled":
|
|
67
|
+
if attach:
|
|
68
|
+
raise RuntimeError(
|
|
69
|
+
f"run.attach={attach!r} names a run on the platform, but "
|
|
70
|
+
f"{pr.MODE_ENV}=disabled would keep this eval local"
|
|
71
|
+
)
|
|
64
72
|
# The SDK's own kill switch; the explicit `mode="online"` below would override it.
|
|
65
73
|
logger.info("--push: %s=disabled; running without a platform run", pr.MODE_ENV)
|
|
66
74
|
elif config.push:
|
|
67
75
|
try:
|
|
68
|
-
state.run = pr.init(mode="online", **identity)
|
|
69
|
-
except Exception as e:
|
|
76
|
+
state.run = pr.init(mode="online", id=attach, **identity)
|
|
77
|
+
except Exception as e:
|
|
78
|
+
if attach:
|
|
79
|
+
# The launcher's run would sit at running until it times out; a local
|
|
80
|
+
# run nobody reads is not a substitute.
|
|
81
|
+
raise RuntimeError(
|
|
82
|
+
f"--run.attach: could not attach to run {attach!r} ({type(e).__name__}: {e})"
|
|
83
|
+
) from e
|
|
70
84
|
logger.warning(
|
|
71
85
|
"--push: could not open the run (%s: %s); running without it",
|
|
72
86
|
type(e).__name__,
|
|
@@ -152,13 +166,13 @@ def _close(
|
|
|
152
166
|
|
|
153
167
|
|
|
154
168
|
def _losses(run: pr.Run) -> str | None:
|
|
155
|
-
"""What the
|
|
156
|
-
|
|
157
|
-
parts
|
|
169
|
+
"""What the run could not finish or store, or `None`."""
|
|
170
|
+
parts = list(run.errors)
|
|
171
|
+
parts.extend(
|
|
158
172
|
f"{count} record(s) not stored by the {sink} sink"
|
|
159
173
|
for sink, count in sorted(run.failed_records.items())
|
|
160
174
|
if count
|
|
161
|
-
|
|
175
|
+
)
|
|
162
176
|
if run.dropped_records:
|
|
163
177
|
parts.append(f"{run.dropped_records} record(s) never queued (uploader overrun)")
|
|
164
178
|
return "; ".join(parts) or None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/envs/isolated_verifier/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/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.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/browser_use/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/browser_use/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/browser_use/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/claude_code/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/claude_code/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/hermes_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/hermes_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/hermes_agent/program.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/kimi_code/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/mini_swe_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/mini_swe_agent/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/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.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/prime_agent/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/prime_agent/harness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/terminus_2/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/verifiers/v1/harnesses/terminus_2/harness.py
RENAMED
|
File without changes
|
{verifiers-0.3.2.dev73 → verifiers-0.3.2.dev75}/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.dev73 → verifiers-0.3.2.dev75}/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
|
|
File without changes
|
|
File without changes
|