verifiers 0.3.2.dev41__py3-none-any.whl → 0.3.2.dev43__py3-none-any.whl
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/v1/agent.py +1 -7
- verifiers/v1/cli/eval/main.py +3 -5
- verifiers/v1/cli/gepa.py +1 -1
- verifiers/v1/cli/output.py +4 -7
- verifiers/v1/harness.py +0 -25
- verifiers/v1/harnesses/openclaw/harness.py +59 -15
- verifiers/v1/harnesses/prime_agent/harness.py +0 -1
- verifiers/v1/mcp/launch.py +2 -8
- verifiers/v1/mcp/server.py +0 -3
- {verifiers-0.3.2.dev41.dist-info → verifiers-0.3.2.dev43.dist-info}/METADATA +1 -1
- {verifiers-0.3.2.dev41.dist-info → verifiers-0.3.2.dev43.dist-info}/RECORD +14 -14
- {verifiers-0.3.2.dev41.dist-info → verifiers-0.3.2.dev43.dist-info}/WHEEL +0 -0
- {verifiers-0.3.2.dev41.dist-info → verifiers-0.3.2.dev43.dist-info}/entry_points.txt +0 -0
- {verifiers-0.3.2.dev41.dist-info → verifiers-0.3.2.dev43.dist-info}/licenses/LICENSE +0 -0
verifiers/v1/agent.py
CHANGED
|
@@ -9,7 +9,7 @@ server; un-entered, each run brings its own."""
|
|
|
9
9
|
|
|
10
10
|
import asyncio
|
|
11
11
|
import logging
|
|
12
|
-
from collections.abc import AsyncIterator, Callable,
|
|
12
|
+
from collections.abc import AsyncIterator, Callable, Mapping
|
|
13
13
|
from contextlib import asynccontextmanager, nullcontext
|
|
14
14
|
from dataclasses import dataclass
|
|
15
15
|
from typing import Self
|
|
@@ -733,9 +733,3 @@ class Agents:
|
|
|
733
733
|
f"{sorted(agents) if agents else []}"
|
|
734
734
|
)
|
|
735
735
|
return agents[name]
|
|
736
|
-
|
|
737
|
-
def __iter__(self) -> Iterator[Agent]:
|
|
738
|
-
return iter(self._agents.values())
|
|
739
|
-
|
|
740
|
-
def __len__(self) -> int:
|
|
741
|
-
return len(self._agents)
|
verifiers/v1/cli/eval/main.py
CHANGED
|
@@ -46,11 +46,9 @@ def main(argv: list[str] | None = None) -> None:
|
|
|
46
46
|
narrow_config(EvalConfig, argv)
|
|
47
47
|
) # full option help, narrowed to the given ids
|
|
48
48
|
return
|
|
49
|
-
# An env-block flag
|
|
50
|
-
#
|
|
51
|
-
typed_axis = any(
|
|
52
|
-
a.startswith(("--env.", "--taskset.", "--harness.", "--serve.")) for a in argv
|
|
53
|
-
)
|
|
49
|
+
# An env-block flag skips the usage gate so the typed parse renders its
|
|
50
|
+
# did-you-mean instead of a bare usage line.
|
|
51
|
+
typed_axis = any(a.startswith(("--env.", "--serve.")) for a in argv)
|
|
54
52
|
if (
|
|
55
53
|
not extract_id(argv, "env.taskset")
|
|
56
54
|
and not references_config_file(argv)
|
verifiers/v1/cli/gepa.py
CHANGED
|
@@ -42,7 +42,7 @@ def main(argv: list[str] | None = None) -> None:
|
|
|
42
42
|
narrow_config(GEPAConfig, argv)
|
|
43
43
|
) # full option help, narrowed to the given ids
|
|
44
44
|
return
|
|
45
|
-
typed_axis = any(a.startswith(
|
|
45
|
+
typed_axis = any(a.startswith("--env.") for a in argv)
|
|
46
46
|
if (
|
|
47
47
|
not extract_id(argv, "env.taskset")
|
|
48
48
|
and not references_config_file(argv)
|
verifiers/v1/cli/output.py
CHANGED
|
@@ -72,13 +72,10 @@ def attempt_log_file(run_dir: Path) -> Path:
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
def saved_config_path(run_dir: Path) -> Path | None:
|
|
75
|
-
"""The run's saved resolved config (`configs/resolved/<cli>.json
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if candidates:
|
|
80
|
-
return candidates[0]
|
|
81
|
-
return None
|
|
75
|
+
"""The run's saved resolved config (`configs/resolved/<cli>.json`), None if absent."""
|
|
76
|
+
config_dir = run_dir / CONFIG_DIR / RESOLVED_DIR
|
|
77
|
+
candidates = sorted(config_dir.glob("*.json")) if config_dir.is_dir() else []
|
|
78
|
+
return candidates[0] if candidates else None
|
|
82
79
|
|
|
83
80
|
|
|
84
81
|
# Compiling an adapter is the expensive part; run output reuses only a few model classes.
|
verifiers/v1/harness.py
CHANGED
|
@@ -117,31 +117,6 @@ class Harness(ABC, Generic[ConfigT]):
|
|
|
117
117
|
# `write` moves bytes, not modes; restore the execute bits scripts need.
|
|
118
118
|
await runtime.run(["chmod", "+x", *executables], {})
|
|
119
119
|
|
|
120
|
-
async def run(
|
|
121
|
-
self,
|
|
122
|
-
ctx: ModelContext,
|
|
123
|
-
trace: Trace,
|
|
124
|
-
runtime: Runtime,
|
|
125
|
-
endpoint: str,
|
|
126
|
-
secret: str,
|
|
127
|
-
mcp_urls: dict[str, str],
|
|
128
|
-
data: TaskData,
|
|
129
|
-
messages: Messages | None = None,
|
|
130
|
-
) -> None:
|
|
131
|
-
"""Run ONE segment of the exchange without retaining a process: the program
|
|
132
|
-
from launch (or, with `messages`, the user's next turn(s) via `resume`) until
|
|
133
|
-
it yields. The rollout loop owns the exchange across segments."""
|
|
134
|
-
async with boundary(HarnessError, f"harness {self.config.id!r}"):
|
|
135
|
-
if messages is None:
|
|
136
|
-
result = await self.launch(
|
|
137
|
-
ctx, trace, runtime, endpoint, secret, mcp_urls, data
|
|
138
|
-
)
|
|
139
|
-
else:
|
|
140
|
-
result = await self.resume(
|
|
141
|
-
ctx, trace, runtime, endpoint, secret, mcp_urls, data, messages
|
|
142
|
-
)
|
|
143
|
-
await self._check_result(trace, runtime, result)
|
|
144
|
-
|
|
145
120
|
async def _check_result(
|
|
146
121
|
self, trace: Trace, runtime: Runtime, result: ProgramResult
|
|
147
122
|
) -> None:
|
|
@@ -20,10 +20,48 @@ logger = logging.getLogger(__name__)
|
|
|
20
20
|
# OpenClaw and its bundled Node runtime exceed the small /tmp tmpfs in some VMs.
|
|
21
21
|
OPENCLAW_DIR = "/var/tmp/vf-openclaw-{version}"
|
|
22
22
|
OPENCLAW_BIN = f"{OPENCLAW_DIR}/bin/openclaw"
|
|
23
|
-
|
|
23
|
+
SETUP = r"""
|
|
24
24
|
set -e
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
if [ ! -x "$VF_OPENCLAW_BIN" ]; then
|
|
26
|
+
command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null)
|
|
27
|
+
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh \
|
|
28
|
+
| bash -s -- --prefix "$VF_OPENCLAW_DIR" --version "$VF_OPENCLAW_VERSION" --no-onboard
|
|
29
|
+
fi
|
|
30
|
+
set -- $(find "$VF_OPENCLAW_DIR/tools" -type f -path '*/openclaw/dist/session-accessor.sqlite-transcript-store-*.js')
|
|
31
|
+
[ "$#" -eq 1 ] || { echo "could not locate OpenClaw's transcript sanitizer for replay patch" >&2; exit 1; }
|
|
32
|
+
"$VF_OPENCLAW_DIR/tools/node/bin/node" - "$1" <<'NODE'
|
|
33
|
+
const fs = require("node:fs");
|
|
34
|
+
const file = process.argv[2];
|
|
35
|
+
const stat = fs.statSync(file);
|
|
36
|
+
if (stat.size > 1_000_000) {
|
|
37
|
+
throw new Error("OpenClaw's transcript sanitizer exceeds the replay patch size limit");
|
|
38
|
+
}
|
|
39
|
+
const source = fs.readFileSync(file, "utf8");
|
|
40
|
+
const patches = [
|
|
41
|
+
[
|
|
42
|
+
"const OPAQUE_REPLAY_TOKEN_RE = /^[A-Za-z0-9+/_-]+={0,2}$/;",
|
|
43
|
+
"const OPAQUE_REPLAY_TOKEN_RE = /^[A-Za-z0-9+/_-]+={0,2}(?:[.][A-Za-z0-9+/_-]+={0,2})*$/;",
|
|
44
|
+
],
|
|
45
|
+
["\t\tsummary: [],", "\t\tsummary: parsed.summary ?? [],"],
|
|
46
|
+
];
|
|
47
|
+
let patched = source;
|
|
48
|
+
for (const [before, after] of patches) {
|
|
49
|
+
patched = patched.replaceAll(before, after);
|
|
50
|
+
}
|
|
51
|
+
if (!patches.every(([, after]) => patched.includes(after))) {
|
|
52
|
+
throw new Error("OpenClaw's transcript sanitizer does not match the replay patch");
|
|
53
|
+
}
|
|
54
|
+
if (patched !== source) {
|
|
55
|
+
const temporary = `${file}.${process.pid}.tmp`;
|
|
56
|
+
try {
|
|
57
|
+
// Publish complete bytes at once so live and concurrent setups never see a partial bundle.
|
|
58
|
+
fs.writeFileSync(temporary, patched, { mode: stat.mode });
|
|
59
|
+
fs.renameSync(temporary, file);
|
|
60
|
+
} finally {
|
|
61
|
+
fs.rmSync(temporary, { force: true });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
NODE
|
|
27
65
|
"""
|
|
28
66
|
|
|
29
67
|
OPENCLAW_COMMAND = [
|
|
@@ -82,7 +120,7 @@ wait "$acp_pid"
|
|
|
82
120
|
|
|
83
121
|
|
|
84
122
|
class OpenClawHarnessConfig(HarnessConfig):
|
|
85
|
-
version: str = Field(default="2026.
|
|
123
|
+
version: str = Field(default="2026.8.1", pattern=r"^[A-Za-z0-9._+-]+$")
|
|
86
124
|
"""OpenClaw release to install, pinned for reproducibility."""
|
|
87
125
|
use_bundled_skill: bool = True
|
|
88
126
|
"""Enable OpenClaw's bundled skill catalog in addition to uploaded harness skills."""
|
|
@@ -117,20 +155,27 @@ class OpenClawHarness(ACPHarness[OpenClawHarnessConfig]):
|
|
|
117
155
|
await runtime.write(ready_path, b"")
|
|
118
156
|
directory = OPENCLAW_DIR.format(version=self.config.version)
|
|
119
157
|
binary = OPENCLAW_BIN.format(version=self.config.version)
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
)
|
|
123
|
-
ensure = shlex.quote(f"[ -x {binary} ] || ({script})")
|
|
158
|
+
# Borrowed runtimes can share this cache, so one filesystem lock owns both
|
|
159
|
+
# installation and the transcript adjustment.
|
|
124
160
|
guarded = (
|
|
125
|
-
f"mkdir -p {directory} && "
|
|
126
|
-
f'"$(command -v flock || command -v lockf)"
|
|
127
|
-
f"
|
|
161
|
+
f"mkdir -p {shlex.quote(directory)} && "
|
|
162
|
+
f'"$(command -v flock || command -v lockf)" '
|
|
163
|
+
f"{shlex.quote(f'{directory}/install.lock')} "
|
|
164
|
+
f"bash -o pipefail -c {shlex.quote(SETUP)}"
|
|
128
165
|
)
|
|
129
166
|
logger.info("openclaw: ensuring OpenClaw %s is installed", self.config.version)
|
|
130
|
-
result = await runtime.run(
|
|
167
|
+
result = await runtime.run(
|
|
168
|
+
["sh", "-c", guarded],
|
|
169
|
+
{
|
|
170
|
+
**self.config.resolved_env,
|
|
171
|
+
"VF_OPENCLAW_BIN": binary,
|
|
172
|
+
"VF_OPENCLAW_DIR": directory,
|
|
173
|
+
"VF_OPENCLAW_VERSION": self.config.version,
|
|
174
|
+
},
|
|
175
|
+
)
|
|
131
176
|
if result.exit_code != 0:
|
|
132
177
|
detail = (result.stderr or result.stdout).strip()[-500:]
|
|
133
|
-
raise RuntimeError(f"OpenClaw
|
|
178
|
+
raise RuntimeError(f"OpenClaw setup failed: {detail}")
|
|
134
179
|
await super().setup(runtime)
|
|
135
180
|
|
|
136
181
|
async def prepare_acp(
|
|
@@ -149,8 +194,6 @@ class OpenClawHarness(ACPHarness[OpenClawHarnessConfig]):
|
|
|
149
194
|
config_path = f"{state_dir}/openclaw.json"
|
|
150
195
|
skills_dir = f"{state_dir}/skills"
|
|
151
196
|
config = {
|
|
152
|
-
# Provider state must remain byte-exact within this isolated rollout.
|
|
153
|
-
"logging": {"redactSensitive": "off"},
|
|
154
197
|
"gateway": {
|
|
155
198
|
"mode": "local",
|
|
156
199
|
"bind": "loopback",
|
|
@@ -180,6 +223,7 @@ class OpenClawHarness(ACPHarness[OpenClawHarnessConfig]):
|
|
|
180
223
|
provider: {
|
|
181
224
|
"baseUrl": endpoint,
|
|
182
225
|
"apiKey": "${OPENCLAW_INTERCEPT_KEY}",
|
|
226
|
+
"request": {"allowPrivateNetwork": True},
|
|
183
227
|
}
|
|
184
228
|
},
|
|
185
229
|
},
|
|
@@ -97,7 +97,6 @@ class PrimeAgentHarnessConfig(HarnessConfig):
|
|
|
97
97
|
class PrimeAgentHarness(ACPHarness[PrimeAgentHarnessConfig]):
|
|
98
98
|
APPENDS_SYSTEM_PROMPT = True
|
|
99
99
|
SUPPORTS_MCP = True
|
|
100
|
-
SUPPORTS_RESUME = True
|
|
101
100
|
SUPPORTS_SKILLS = True
|
|
102
101
|
|
|
103
102
|
def acp_turn_result(self, trace: Trace, result: ACPTurn) -> None:
|
verifiers/v1/mcp/launch.py
CHANGED
|
@@ -201,9 +201,8 @@ async def _install_in_sandbox(server: ServerBase, runtime: Runtime) -> str:
|
|
|
201
201
|
await runtime.write(env_remote, env_data)
|
|
202
202
|
venv = str(PurePosixPath(workdir) / ".vf-venv")
|
|
203
203
|
root_q, temp_q, cache_q, venv_q = map(shlex.quote, (root, temp, cache, venv))
|
|
204
|
-
extras = ",".join(type(server).EXTRAS)
|
|
205
204
|
vf_source = shlex.quote(vf_remote)
|
|
206
|
-
env_source = shlex.quote(env_remote
|
|
205
|
+
env_source = shlex.quote(env_remote)
|
|
207
206
|
setup = (
|
|
208
207
|
f"set -e; mkdir -p {root_q} {temp_q} {cache_q}; "
|
|
209
208
|
f"export TMPDIR={temp_q} UV_CACHE_DIR={cache_q}; "
|
|
@@ -279,12 +278,7 @@ async def serve_in_runtime(
|
|
|
279
278
|
env["MCP_PORT_FILE"] = port_file
|
|
280
279
|
python = sys.executable
|
|
281
280
|
if runtime.type != "subprocess":
|
|
282
|
-
|
|
283
|
-
# environment. Let those servers bypass redundant per-launch source
|
|
284
|
-
# uploads and installation while preserving the existing default.
|
|
285
|
-
python = getattr(type(server), "RUNTIME_PYTHON", None)
|
|
286
|
-
if python is None:
|
|
287
|
-
python = await _install_in_sandbox(server, runtime)
|
|
281
|
+
python = await _install_in_sandbox(server, runtime)
|
|
288
282
|
command = [python, "-m", type(server).__module__]
|
|
289
283
|
if runtime.type != "subprocess":
|
|
290
284
|
# Providers may invoke uv after the install shell exits, so preserve its PATH.
|
verifiers/v1/mcp/server.py
CHANGED
|
@@ -134,9 +134,6 @@ class ServerBase(Generic[ConfigT, StateT]):
|
|
|
134
134
|
tools bare (no `<server>_` prefix); name collisions across servers are then the taskset
|
|
135
135
|
author's concern."""
|
|
136
136
|
|
|
137
|
-
EXTRAS: ClassVar[tuple[str, ...]] = ()
|
|
138
|
-
"""Package extras the server's module needs, applied at sandbox install."""
|
|
139
|
-
|
|
140
137
|
def __init__(self, config: ConfigT) -> None:
|
|
141
138
|
self.config = config
|
|
142
139
|
self._state_cls = state_cls(type(self))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.3.2.
|
|
3
|
+
Version: 0.3.2.dev43
|
|
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
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
verifiers/__init__.py,sha256=yDYsckVQbUkwoh9mU_hBeCLGvS_aWgAxuoNm5LxQpDI,517
|
|
2
2
|
verifiers/v1/__init__.py,sha256=qJKOsiUADKX4C1tMKsAPQXiJMo9-80FNeyPpAyRVshY,8352
|
|
3
|
-
verifiers/v1/agent.py,sha256=
|
|
3
|
+
verifiers/v1/agent.py,sha256=doqKNn77Ldm1EIe-V69IwgBbMiN79FoVnvMcyZA0pNM,32223
|
|
4
4
|
verifiers/v1/env.py,sha256=CEhzjojhg5jqbOYruUnc5U7TtgDHDSx8NiiFA0qfbt8,18234
|
|
5
5
|
verifiers/v1/episode.py,sha256=uStvI4WqgJT50hmHIB55m5B-ASqqLz-fZ-ynBz9uzEY,5474
|
|
6
6
|
verifiers/v1/errors.py,sha256=uQySmCUrjDYFkBIii1vBFPiEcPFPQZ9EGpas_6HvcQI,5279
|
|
7
7
|
verifiers/v1/graph.py,sha256=F07EZIti0AspEQ-0R0Cg_E8wJeKRlBHP4CCWytSL_8Q,35496
|
|
8
|
-
verifiers/v1/harness.py,sha256=
|
|
8
|
+
verifiers/v1/harness.py,sha256=Yx-XCIs1HAmqv1F-nhCTDBUwAx51xQWNWgFcWL1WRTM,13777
|
|
9
9
|
verifiers/v1/judge.py,sha256=uqn-djkK2_7Q3kOjkDo6ipOvV_HOvuLa9y6AoDjRux8,9618
|
|
10
10
|
verifiers/v1/rollout.py,sha256=hoKGn1CbShbyjEM9PgYq8pdKgoC91VebTkBSgUHLtiE,23978
|
|
11
11
|
verifiers/v1/semantic.py,sha256=wssvBSEpY_tgzpFUADG9-N4HkDXgCZvNQ1pdf6qAsS0,4680
|
|
@@ -19,9 +19,9 @@ verifiers/v1/acp/__init__.py,sha256=wUPZVYBFjJuOnIIoYONBFuA04A1DJf_dOyKY3QwK37Q,
|
|
|
19
19
|
verifiers/v1/acp/runner.py,sha256=gMXFmsVg2qD0Zhrx7kvC6Me2Z-wsfBamRIO0i45UW8g,11097
|
|
20
20
|
verifiers/v1/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
21
|
verifiers/v1/cli/debug.py,sha256=x3bqOwwbwwfwQQpxHrZeKdxsW3ZVtUT9cAn_r4aOro4,11631
|
|
22
|
-
verifiers/v1/cli/gepa.py,sha256=
|
|
22
|
+
verifiers/v1/cli/gepa.py,sha256=zyUbZ0ykTEq6c-YlPUSk0kqsbkzqR-mkeW4Cl0WGeJo,4180
|
|
23
23
|
verifiers/v1/cli/init.py,sha256=LFF_1e2XTdgIKjWoqq_IAlOzAXcARPEroblcEGv0fCU,7599
|
|
24
|
-
verifiers/v1/cli/output.py,sha256=
|
|
24
|
+
verifiers/v1/cli/output.py,sha256=lAl6vwKf9mVuNZb8PzOexv6Q2h-H6t0oUPcapffY3uY,8351
|
|
25
25
|
verifiers/v1/cli/replay.py,sha256=2lL7h6MrIn6hIh7fuqbw7PmruCxkK5iqwoeKebr-z7Q,10246
|
|
26
26
|
verifiers/v1/cli/resolve.py,sha256=Q1EHM7wWQo0YkwJA898qtZbYLaIkjIVq3Q7kUp2YIxs,4346
|
|
27
27
|
verifiers/v1/cli/resume.py,sha256=hqV5AxxqeIInJeEZQerQznuijhMNijFEFcHZIltfLdE,470
|
|
@@ -32,7 +32,7 @@ verifiers/v1/cli/dashboard/eval.py,sha256=IgyEVBfTcyuKw_rXaHrRRFX4ESlwsekaPi-bxD
|
|
|
32
32
|
verifiers/v1/cli/dashboard/replay.py,sha256=_X5up9MJsRbd_sWe4LgNTPNT8k1ip4xNpo50hxI3Ljk,2697
|
|
33
33
|
verifiers/v1/cli/dashboard/validate.py,sha256=xrpK3Y90JsoDCQYLLvvsnJ4CPRMvSSJIghfHK62E6FQ,3687
|
|
34
34
|
verifiers/v1/cli/eval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
-
verifiers/v1/cli/eval/main.py,sha256=
|
|
35
|
+
verifiers/v1/cli/eval/main.py,sha256=m-7ZqBx4J2asueMR4oA43qzifOvaUnrGMKrTHi8fEZQ,6250
|
|
36
36
|
verifiers/v1/cli/eval/resume.py,sha256=fYkWa0Fudq--IWfk25j_McLm67bXYWvksWmJR4u4QAU,3811
|
|
37
37
|
verifiers/v1/cli/eval/runner.py,sha256=tZDPWzd6U7-5N43HGRlV7p-RnUiDleYwMUBVHzWH7mk,10015
|
|
38
38
|
verifiers/v1/clients/__init__.py,sha256=Ysig0tE_0E4Jsfgfes1XHN-fK1s_RCXdqZD6E7lK4PU,507
|
|
@@ -101,13 +101,13 @@ verifiers/v1/harnesses/mini_swe_agent/program.py,sha256=Beej-JLIgSqnqIqB746oKU6k
|
|
|
101
101
|
verifiers/v1/harnesses/null/__init__.py,sha256=XDeKOPeoXUQi9US9_Z3_yH9YaZ4EiOMKJmUtNNdtD7s,127
|
|
102
102
|
verifiers/v1/harnesses/null/harness.py,sha256=RWj2I7auxYe4dJ885DhqH1MN15iUS-TKT7-gEWNrgmM,1412
|
|
103
103
|
verifiers/v1/harnesses/openclaw/__init__.py,sha256=kNyfPB1sGwEf4K3mTfKN0VEyxun3SGvNpvArVKvH-x8,160
|
|
104
|
-
verifiers/v1/harnesses/openclaw/harness.py,sha256=
|
|
104
|
+
verifiers/v1/harnesses/openclaw/harness.py,sha256=EREEYr3J0Qn8mK_YShnCSHctMtsiIN07rj00kq1Lxoc,11229
|
|
105
105
|
verifiers/v1/harnesses/pi/__init__.py,sha256=1mSnzOf-RdEchdeg6IHtcdobG5KIpAhuTdUIgsCIn74,117
|
|
106
106
|
verifiers/v1/harnesses/pi/harness.py,sha256=M0BRsfJxnBNP-KCrp0vT5gHlaJEDnyti5x_3V5Py40M,7024
|
|
107
107
|
verifiers/v1/harnesses/pool/__init__.py,sha256=HTYsNiWGdiNEsSHj4xhPmshJSNb7SHjQ7d4yZQ4p3HM,127
|
|
108
108
|
verifiers/v1/harnesses/pool/harness.py,sha256=HKAogPbyLK5QpvPQ1teHOh_IyRQX-or2JF71nnZ_5Ps,3875
|
|
109
109
|
verifiers/v1/harnesses/prime_agent/__init__.py,sha256=xfPC4RrlnyYWaf38tPAOZq4YL6M55lMpj5BoRLmaK8I,171
|
|
110
|
-
verifiers/v1/harnesses/prime_agent/harness.py,sha256=
|
|
110
|
+
verifiers/v1/harnesses/prime_agent/harness.py,sha256=vswuKVWObWC9rcDBvlCnjjPRq1qCNqCzTknkOTN3cV8,11178
|
|
111
111
|
verifiers/v1/harnesses/rlm/__init__.py,sha256=hwx51xTdEWzzYgMj-p4ETNcptoub3IPMDbEdJ4uB8Ns,122
|
|
112
112
|
verifiers/v1/harnesses/rlm/harness.py,sha256=iVdI4dzbuXm5v6Pq28ctLjOmcXWtC2Vmp2aKOniq0ss,10532
|
|
113
113
|
verifiers/v1/harnesses/terminus_2/__init__.py,sha256=l1pwfg1HyVDEqT9efdnFWcXqaZwtKwe7TrplkyxZSA0,166
|
|
@@ -133,8 +133,8 @@ verifiers/v1/judges/reference.txt,sha256=Ej35kGXiT2uJ0LcHIeez49rCS_9uHmCQKoVdn93
|
|
|
133
133
|
verifiers/v1/judges/rubric.py,sha256=HGQYI3xdq8I84Ce0_sDeNgk5JM597es8rOVPipjCyxU,12025
|
|
134
134
|
verifiers/v1/judges/rubric.txt,sha256=3KA2ZeYYdcDweJhUGopxu9EFgARhu2aWft5S5cj8Bc8,323
|
|
135
135
|
verifiers/v1/mcp/__init__.py,sha256=pm8ZWBiL1q1tY4wHvJzM_QrZ9oR8aGm-bIRWiRJsgHI,408
|
|
136
|
-
verifiers/v1/mcp/launch.py,sha256=
|
|
137
|
-
verifiers/v1/mcp/server.py,sha256=
|
|
136
|
+
verifiers/v1/mcp/launch.py,sha256=K6M8ZaoOO7wt65s93wK_9Wl7bvjeQ4C8BLkrGE149DI,23373
|
|
137
|
+
verifiers/v1/mcp/server.py,sha256=Jqi8OMT8DnoZegXqM3UNNRzhVnbdrPEwx0DjOJo_K2A,13256
|
|
138
138
|
verifiers/v1/mcp/toolset.py,sha256=G2wzNdEMGLXoQUcrwF0TartJkqokNPI3o7YUOAaaa6U,1007
|
|
139
139
|
verifiers/v1/runtimes/__init__.py,sha256=ppc1R_sx-aMcuJSx4t99rTSjloUXI0M6EUj676-1PeY,2862
|
|
140
140
|
verifiers/v1/runtimes/base.py,sha256=SRTUNAcdW0xJIWjfS5RcijFXqdKyXmGvp2tvV58eu58,16826
|
|
@@ -185,8 +185,8 @@ verifiers/v1/utils/prime.py,sha256=UTYRjp9cbjNb6CVmBHda-1wWZAIIfxNOmTyNuT7_wL4,9
|
|
|
185
185
|
verifiers/v1/utils/retries.py,sha256=Y2ZgrAjn-qNkRKZP_RVNL_7EK0iaRcZeCa404lpGYi4,5417
|
|
186
186
|
verifiers/v1/utils/score.py,sha256=493yJVMw8teCu9JxapxMFPFzI0hNUqdo0Y2nGW4kckk,6200
|
|
187
187
|
verifiers/v1/utils/version.py,sha256=-obEo_-l9-D8FLef4hYxncOe-uJpxrM1g2Hig_37Sgs,1607
|
|
188
|
-
verifiers-0.3.2.
|
|
189
|
-
verifiers-0.3.2.
|
|
190
|
-
verifiers-0.3.2.
|
|
191
|
-
verifiers-0.3.2.
|
|
192
|
-
verifiers-0.3.2.
|
|
188
|
+
verifiers-0.3.2.dev43.dist-info/METADATA,sha256=Huath0kCeokBD7jCu4lpHpt9GEChtdkRYc0lARcJOPI,4065
|
|
189
|
+
verifiers-0.3.2.dev43.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
|
|
190
|
+
verifiers-0.3.2.dev43.dist-info/entry_points.txt,sha256=uqQje0TMsr7k6nXlWxlPs13Si0evb3pVCEDF6c-YL80,241
|
|
191
|
+
verifiers-0.3.2.dev43.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
|
|
192
|
+
verifiers-0.3.2.dev43.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|