verifiers 0.4.1.dev26__tar.gz → 0.4.1.dev27__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.4.1.dev26 → verifiers-0.4.1.dev27}/PKG-INFO +1 -1
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/conftest.py +3 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/grid.py +1 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/__init__.py +3 -0
- verifiers-0.4.1.dev27/verifiers/v1/harnesses/opencode/__init__.py +6 -0
- verifiers-0.4.1.dev27/verifiers/v1/harnesses/opencode/harness.py +141 -0
- verifiers-0.4.1.dev27/verifiers/v1/harnesses/opencode/mcp-ready.js +44 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/.gitignore +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/LICENSE +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/README.md +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/pyproject.toml +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/agent_user_harness_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/agent_user_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/counter_tool_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/duet_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_acp_resume_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_agentic_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_tool_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_user_sim_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/network_policy_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/pyproject.toml +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/skill_codeword_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/skills/project-codeword/SKILL.md +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/tool_response_image_v1.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_agent_user.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_agentic_judge.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_compose_scoring.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_examples.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_limits.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_multi_agent.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_multi_turn.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_multi_turn_tool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_multimodal_tool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_network_policy.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_resume_tool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_rubric_judge.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_sampling.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_shared_tool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_single_turn.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_skills.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_stateful_tool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_user_echo.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/test_user_sim.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/cli/test_replay.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/conftest.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/harnesses/test_core.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/harnesses/test_rlm.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/interception/test_tunnel.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/judges/conftest.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/judges/test_judge.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/judges/test_reference.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/judges/test_rubric.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/runtimes/test_e2b.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/serve/test_client.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/serve/test_delta.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/serve/test_pool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_agent.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_dialects.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_graph.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_semantic.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_task.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/test_trace.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/utils/test_compile.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/utils/test_loaders.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/utils/test_platform.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/unit/utils/test_score.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/acp/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/acp/runner.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/agent.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/dashboard/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/dashboard/base.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/dashboard/eval.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/dashboard/replay.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/dashboard/validate.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/debug.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/eval/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/eval/hint.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/eval/main.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/eval/resume.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/eval/runner.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/gepa.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/output.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/replay.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/resolve.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/resume.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/cli/validate.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/clients/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/clients/base.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/clients/client.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/clients/eval.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/clients/train.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/agent.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/cli/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/cli/debug.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/cli/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/cli/eval.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/cli/replay.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/cli/validate.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/client.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/judge.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/retries.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/runtime.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/scoring.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/select.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/serve.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/task.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/configs/taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/dialects/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/dialects/anthropic.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/dialects/base.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/dialects/chat.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/dialects/responses.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/agentic_judge/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/agentic_judge/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/best_of_n/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/best_of_n/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/single_agent/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/single_agent/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/user_sim/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/envs/user_sim/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/episode.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/errors.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/gepa/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/gepa/adapter.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/gepa/config.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/gepa/dataset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/gepa/reflection.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/gepa/runner.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/grading.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/graph.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/bash/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/bash/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/browser_use/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/browser_use/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/browser_use/program.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/claude_code/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/claude_code/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/codex/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/codex/gate.mjs +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/codex/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/hermes_agent/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/hermes_agent/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/hermes_agent/program.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/kimi_code/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/kimi_code/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/mini_swe_agent/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/mini_swe_agent/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/mini_swe_agent/program.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/node.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/null/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/null/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/openclaw/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/openclaw/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/pi/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/pi/gate.mjs +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/pi/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/prime_agent/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/prime_agent/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/rlm/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/rlm/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/terminus_2/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/terminus_2/harness.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/terminus_2/program.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/utils/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/utils/compaction.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/utils/core.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/utils/install.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/utils/launch.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/utils/mcp.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/base.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/pool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/server.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/tunnel/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/tunnel/base.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/tunnel/custom.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/interception/tunnel/prime.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judge.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judges/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judges/decision.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judges/reference.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judges/reference.txt +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judges/rubric.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/judges/rubric.txt +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/mcp/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/mcp/launch.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/mcp/server.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/mcp/toolset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/rollout.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/apptainer.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/base.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/compose.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/container.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/deployment.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/docker/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/docker/egress.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/e2b.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/limiters.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/modal.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/prime.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/runtime.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/strategies.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/runtimes/subprocess.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/semantic.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/client.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/delta.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/encoding.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/pool.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/server.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/serve/types.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/session.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/state.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/task.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/harbor/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/harbor/taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/harbor/toolset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/nemo_gym/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/nemo_gym/response.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/nemo_gym/server.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/nemo_gym/taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/nemo_gym/toolset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/openenv/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/openenv/taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/textarena/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/tasksets/textarena/taskset.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/trace.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/types.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/__init__.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/aio.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/artifacts.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/compile.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/decorators.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/env.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/eval.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/format.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/generic.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/git.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/image.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/interrupt.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/loaders.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/logging.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/memory.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/paths.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/platform.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/prime.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/retries.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/scope.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/score.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/trace_store.py +0 -0
- {verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.4.1.
|
|
3
|
+
Version: 0.4.1.dev27
|
|
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
|
|
@@ -67,6 +67,9 @@ def pytest_configure(config) -> None:
|
|
|
67
67
|
inherits `PYTHONPATH` but not pytest's in-process `pythonpath`. Put the fixture dir on
|
|
68
68
|
`PYTHONPATH` so a fixture server module (e.g. `tool_response_image_v1`)
|
|
69
69
|
resolves there too — an installed example package (e.g. `glossary`) already would."""
|
|
70
|
+
config.addinivalue_line(
|
|
71
|
+
"markers", "opencode: integration cells on the OpenCode harness"
|
|
72
|
+
)
|
|
70
73
|
fixtures = str(Path(__file__).parent / "fixtures")
|
|
71
74
|
existing = os.environ.get("PYTHONPATH", "")
|
|
72
75
|
if fixtures not in existing.split(os.pathsep):
|
|
@@ -19,6 +19,7 @@ from verifiers.v1.harnesses.mini_swe_agent import (
|
|
|
19
19
|
)
|
|
20
20
|
from verifiers.v1.harnesses.null import NullHarness, NullHarnessConfig
|
|
21
21
|
from verifiers.v1.harnesses.openclaw import OpenClawHarness, OpenClawHarnessConfig
|
|
22
|
+
from verifiers.v1.harnesses.opencode import OpenCodeHarness, OpenCodeHarnessConfig
|
|
22
23
|
from verifiers.v1.harnesses.pi import PiHarness, PiHarnessConfig
|
|
23
24
|
from verifiers.v1.harnesses.prime_agent import (
|
|
24
25
|
PrimeAgentHarness,
|
|
@@ -46,6 +47,8 @@ __all__ = [
|
|
|
46
47
|
"NullHarnessConfig",
|
|
47
48
|
"OpenClawHarness",
|
|
48
49
|
"OpenClawHarnessConfig",
|
|
50
|
+
"OpenCodeHarness",
|
|
51
|
+
"OpenCodeHarnessConfig",
|
|
49
52
|
"PiHarness",
|
|
50
53
|
"PiHarnessConfig",
|
|
51
54
|
"PrimeAgentHarness",
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"""Run OpenCode 2's native ACP server against interception."""
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Literal
|
|
6
|
+
|
|
7
|
+
from verifiers.v1.acp import ACPConfig, ACPHarness
|
|
8
|
+
from verifiers.v1.clients import ModelContext
|
|
9
|
+
from verifiers.v1.configs.harness import HarnessConfig, PinnedVersion
|
|
10
|
+
from verifiers.v1.harnesses.node import ensure_node
|
|
11
|
+
from verifiers.v1.harnesses.utils.install import ensure_installed, remove_dir
|
|
12
|
+
from verifiers.v1.runtimes import Runtime
|
|
13
|
+
from verifiers.v1.task import TaskData
|
|
14
|
+
from verifiers.v1.trace import Trace
|
|
15
|
+
|
|
16
|
+
OPENCODE_DIR = "/var/tmp/vf-opencode"
|
|
17
|
+
STATE_ROOT = "/tmp/vf-opencode-runs"
|
|
18
|
+
KEY_VAR = "VF_OPENCODE_API_KEY"
|
|
19
|
+
MCP_READY = (Path(__file__).resolve().parent / "mcp-ready.js").read_bytes()
|
|
20
|
+
|
|
21
|
+
INSTALL = r"""
|
|
22
|
+
set -e
|
|
23
|
+
export PATH="/var/tmp/vf-node/bin:$PATH"
|
|
24
|
+
npm install --prefix "$VF_OPENCODE_DIR" --no-audit --no-fund --omit=dev \
|
|
25
|
+
"@opencode/cli@$VF_OPENCODE_VERSION" >/dev/null
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class OpenCodeHarnessConfig(HarnessConfig):
|
|
30
|
+
version: PinnedVersion = "2.0.26"
|
|
31
|
+
"""OpenCode 2 release to install, pinned for reproducibility."""
|
|
32
|
+
transport: Literal["chat_completions", "responses", "anthropic_messages"] = (
|
|
33
|
+
"chat_completions"
|
|
34
|
+
)
|
|
35
|
+
"""Model API transport."""
|
|
36
|
+
disabled_tools: list[str] | None = None
|
|
37
|
+
"""OpenCode permission actions to deny, such as shell, read, or edit."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class OpenCodeHarness(ACPHarness[OpenCodeHarnessConfig]):
|
|
41
|
+
APPENDS_SYSTEM_PROMPT = True
|
|
42
|
+
SUPPORTS_MCP = True
|
|
43
|
+
SUPPORTS_SKILLS = True
|
|
44
|
+
|
|
45
|
+
async def setup(self, runtime: Runtime) -> None:
|
|
46
|
+
await ensure_node(runtime)
|
|
47
|
+
directory = f"{OPENCODE_DIR}/{self.config.version}"
|
|
48
|
+
await ensure_installed(
|
|
49
|
+
runtime,
|
|
50
|
+
directory=directory,
|
|
51
|
+
ready=f"[ -x {directory}/node_modules/.bin/opencode ]",
|
|
52
|
+
install=INSTALL,
|
|
53
|
+
env={
|
|
54
|
+
**self.config.resolved_env,
|
|
55
|
+
"VF_OPENCODE_DIR": directory,
|
|
56
|
+
"VF_OPENCODE_VERSION": self.config.version,
|
|
57
|
+
},
|
|
58
|
+
label="OpenCode",
|
|
59
|
+
)
|
|
60
|
+
await super().setup(runtime)
|
|
61
|
+
|
|
62
|
+
async def prepare_acp(
|
|
63
|
+
self,
|
|
64
|
+
ctx: ModelContext,
|
|
65
|
+
trace: Trace,
|
|
66
|
+
runtime: Runtime,
|
|
67
|
+
endpoint: str,
|
|
68
|
+
secret: str,
|
|
69
|
+
mcp_urls: dict[str, str],
|
|
70
|
+
data: TaskData,
|
|
71
|
+
) -> ACPConfig:
|
|
72
|
+
root = f"{STATE_ROOT}/{trace.id}"
|
|
73
|
+
config_dir = f"{root}/config/opencode"
|
|
74
|
+
await self.install_skills(runtime, f"{config_dir}/skills")
|
|
75
|
+
system_prompt, prompt = self.resolve_prompt(data)
|
|
76
|
+
if system_prompt:
|
|
77
|
+
await runtime.write(f"{config_dir}/AGENTS.md", system_prompt.encode())
|
|
78
|
+
|
|
79
|
+
package = {
|
|
80
|
+
"chat_completions": "openai-compatible",
|
|
81
|
+
"responses": "openai-compatible/responses",
|
|
82
|
+
"anthropic_messages": "anthropic-compatible",
|
|
83
|
+
}[self.config.transport]
|
|
84
|
+
settings = {
|
|
85
|
+
"model": "intercept/model",
|
|
86
|
+
"providers": {
|
|
87
|
+
"intercept": {
|
|
88
|
+
"env": [KEY_VAR],
|
|
89
|
+
"package": f"@opencode/ai/providers/{package}",
|
|
90
|
+
"settings": {"baseURL": endpoint},
|
|
91
|
+
"models": {"model": {"modelID": ctx.model}},
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"default_agent": "build",
|
|
95
|
+
# Auxiliary title/summary model calls must not become rollout turns.
|
|
96
|
+
"agents": {"title": {"disabled": True}, "summary": {"disabled": True}},
|
|
97
|
+
"permissions": [
|
|
98
|
+
{"action": "*", "resource": "*", "effect": "allow"},
|
|
99
|
+
*(
|
|
100
|
+
{"action": tool, "resource": "*", "effect": "deny"}
|
|
101
|
+
for tool in self.config.disabled_tools or []
|
|
102
|
+
),
|
|
103
|
+
],
|
|
104
|
+
"update": "disable",
|
|
105
|
+
"share": "disabled",
|
|
106
|
+
"snapshots": False,
|
|
107
|
+
}
|
|
108
|
+
if mcp_urls:
|
|
109
|
+
plugin_dir = f"{root}/mcp-ready"
|
|
110
|
+
await runtime.write(f"{plugin_dir}/index.js", MCP_READY)
|
|
111
|
+
settings["plugins"] = [
|
|
112
|
+
{
|
|
113
|
+
"package": plugin_dir,
|
|
114
|
+
"options": {
|
|
115
|
+
"servers": list(mcp_urls),
|
|
116
|
+
"timeout": int(self.config.tool_timeout * 1000),
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
return ACPConfig(
|
|
121
|
+
command=[
|
|
122
|
+
f"{OPENCODE_DIR}/{self.config.version}/node_modules/.bin/opencode",
|
|
123
|
+
"acp",
|
|
124
|
+
],
|
|
125
|
+
env={
|
|
126
|
+
**self.config.resolved_env,
|
|
127
|
+
KEY_VAR: secret,
|
|
128
|
+
"XDG_CONFIG_HOME": f"{root}/config",
|
|
129
|
+
"XDG_DATA_HOME": f"{root}/data",
|
|
130
|
+
"XDG_CACHE_HOME": f"{root}/cache",
|
|
131
|
+
"XDG_STATE_HOME": f"{root}/state",
|
|
132
|
+
"OPENCODE_CONFIG_DIR": config_dir,
|
|
133
|
+
"OPENCODE_CONFIG_CONTENT": json.dumps(settings),
|
|
134
|
+
"OPENCODE_DISABLE_AUTOUPDATE": "1",
|
|
135
|
+
"OPENCODE_DISABLE_MODELS_FETCH": "1",
|
|
136
|
+
},
|
|
137
|
+
prompt=prompt,
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
async def cleanup(self, trace: Trace, runtime: Runtime) -> None:
|
|
141
|
+
await remove_dir(runtime, f"{STATE_ROOT}/{trace.id}", "OpenCode state")
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Context, Effect } from "effect";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
id: "verifiers.mcp-ready",
|
|
5
|
+
effect: Effect.fn(function* (ctx) {
|
|
6
|
+
// ACP registrations bypass OpenCode's configured MCP server timeout defaults.
|
|
7
|
+
yield* ctx.mcp.transform((editor) => {
|
|
8
|
+
for (const name of ctx.options.servers) {
|
|
9
|
+
editor.update(name, (server) => {
|
|
10
|
+
server.timeout = { ...server.timeout, execution: ctx.options.timeout };
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
yield* ctx.session.hook(
|
|
15
|
+
"prompt",
|
|
16
|
+
Effect.fn(function* () {
|
|
17
|
+
// OpenCode 2.0.26's public plugin API omits discovered MCP tools. Read
|
|
18
|
+
// its native service in the prompt's location context, including empty servers.
|
|
19
|
+
const mcp = yield* Context.Service()("@opencode/MCP");
|
|
20
|
+
const servers = yield* mcp.servers();
|
|
21
|
+
for (const name of ctx.options.servers) {
|
|
22
|
+
const server = servers.find((server) => server.name === name);
|
|
23
|
+
if (server?.status.status !== "connected") {
|
|
24
|
+
return yield* Effect.die(
|
|
25
|
+
new Error(`MCP server ${name} is not connected: ${JSON.stringify(server?.status)}`),
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const expected = (yield* mcp.tools())
|
|
30
|
+
.filter((tool) => ctx.options.servers.includes(tool.server))
|
|
31
|
+
.map((tool) => `${tool.server}_${tool.name}`.replace(/[^a-zA-Z0-9_-]/g, "_"));
|
|
32
|
+
// ACP session/new awaits connection, but OpenCode refreshes its tool
|
|
33
|
+
// registry asynchronously. Do not let the prompt snapshot an old catalog.
|
|
34
|
+
yield* Effect.gen(function* () {
|
|
35
|
+
while (true) {
|
|
36
|
+
const registered = new Set((yield* ctx.tool.list()).map((tool) => tool.id));
|
|
37
|
+
if (expected.every((name) => registered.has(name))) return;
|
|
38
|
+
yield* Effect.sleep("10 millis");
|
|
39
|
+
}
|
|
40
|
+
}).pipe(Effect.timeout(ctx.options.timeout), Effect.orDie);
|
|
41
|
+
}),
|
|
42
|
+
);
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/agent_user_harness_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/counter_tool_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_acp_resume_v1.py
RENAMED
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_agentic_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/echo_user_sim_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/network_policy_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/skill_codeword_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/tests/integration/fixtures/tool_response_image_v1.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/browser_use/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/browser_use/harness.py
RENAMED
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/browser_use/program.py
RENAMED
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/claude_code/__init__.py
RENAMED
|
File without changes
|
{verifiers-0.4.1.dev26 → verifiers-0.4.1.dev27}/verifiers/v1/harnesses/claude_code/harness.py
RENAMED
|
File without changes
|
|
File without changes
|