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 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, Iterator, Mapping
12
+ from collections.abc import AsyncIterator, Callable, Mapping
13
13
  from contextlib import asynccontextmanager, nullcontext
14
14
  from dataclasses import dataclass
15
15
  from typing import Self
@@ -733,9 +733,3 @@ class Agents:
733
733
  f"{sorted(agents) if agents else []}"
734
734
  )
735
735
  return agents[name]
736
-
737
- def __iter__(self) -> Iterator[Agent]:
738
- return iter(self._agents.values())
739
-
740
- def __len__(self) -> int:
741
- return len(self._agents)
@@ -46,11 +46,9 @@ def main(argv: list[str] | None = None) -> None:
46
46
  narrow_config(EvalConfig, argv)
47
47
  ) # full option help, narrowed to the given ids
48
48
  return
49
- # An env-block flag (or a since-moved flat axis) skips the usage gate so the
50
- # typed parse renders its did-you-mean instead of a bare usage line.
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(("--env.", "--taskset.", "--harness.")) for a in argv)
45
+ typed_axis = any(a.startswith("--env.") for a in argv)
46
46
  if (
47
47
  not extract_id(argv, "env.taskset")
48
48
  and not references_config_file(argv)
@@ -72,13 +72,10 @@ def attempt_log_file(run_dir: Path) -> Path:
72
72
 
73
73
 
74
74
  def saved_config_path(run_dir: Path) -> Path | None:
75
- """The run's saved resolved config (`configs/resolved/<cli>.json`; legacy runs
76
- kept it at `configs/<cli>.json`), None if absent."""
77
- for config_dir in (run_dir / CONFIG_DIR / RESOLVED_DIR, run_dir / CONFIG_DIR):
78
- candidates = sorted(config_dir.glob("*.json")) if config_dir.is_dir() else []
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
- INSTALL = r"""
23
+ SETUP = r"""
24
24
  set -e
25
- command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null)
26
- curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix {dir} --version {version} --no-onboard
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.7.1-2", pattern=r"^[A-Za-z0-9._+-]+$")
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
- script = INSTALL.replace("{version}", self.config.version).replace(
121
- "{dir}", directory
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)" {directory}/install.lock '
127
- f"bash -o pipefail -c {ensure}"
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(["sh", "-c", guarded], self.config.resolved_env)
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 install failed: {detail}")
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:
@@ -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 + (f"[{extras}]" if extras else ""))
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
- # Prebuilt runtime images may already contain the server and its Python
283
- # environment. Let those servers bypass redundant per-launch source
284
- # uploads and installation while preserving the existing default.
285
- python = getattr(type(server), "RUNTIME_PYTHON", None)
286
- if python is None:
287
- python = await _install_in_sandbox(server, runtime)
281
+ python = await _install_in_sandbox(server, runtime)
288
282
  command = [python, "-m", type(server).__module__]
289
283
  if runtime.type != "subprocess":
290
284
  # Providers may invoke uv after the install shell exits, so preserve its PATH.
@@ -134,9 +134,6 @@ class ServerBase(Generic[ConfigT, StateT]):
134
134
  tools bare (no `<server>_` prefix); name collisions across servers are then the taskset
135
135
  author's concern."""
136
136
 
137
- EXTRAS: ClassVar[tuple[str, ...]] = ()
138
- """Package extras the server's module needs, applied at sandbox install."""
139
-
140
137
  def __init__(self, config: ConfigT) -> None:
141
138
  self.config = config
142
139
  self._state_cls = state_cls(type(self))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: verifiers
3
- Version: 0.3.2.dev41
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=QvP7jJMR1NQEzAdcqSxcPRgYYTZYt6gxst3vxmXymOE,32384
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=ziECqEBWV34UWbLlxrkhY6MwkbVYkoXBOoaY7mZxwTs,14753
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=7YpppEMeuY2m1X5szGkybzTHztnIs83CvnSizhiEC-w,4210
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=HZbkHw662ppVdpTGutrKuQOSeBvtsAj5qjUokCkwkv0,8457
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=D5-lth_F04iAZYTHglzPufdh-P9lBivD7-GgfFvWmz8,6321
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=LcdfnP_wYvWUQWIt6d4sE0TnXaxt5Ne5r_f7R0lKkAc,9535
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=_FJtiYvWOsBpjEBKuJsnmuldYNwJxKK8ONa5e-c_mYM,11205
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=dqi5UCE-ShPn663glL4DwnTHk4_VBLG_0qUUwlr3p10,23776
137
- verifiers/v1/mcp/server.py,sha256=q2uB4rMz_f3qpHPwduVN9V4B9HZUHfAjuBFHV8PjfdE,13380
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.dev41.dist-info/METADATA,sha256=FPDLtvKlNJNZqjrPtB9qxx8gJJJS4ccdCIzWwYxqptg,4065
189
- verifiers-0.3.2.dev41.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
190
- verifiers-0.3.2.dev41.dist-info/entry_points.txt,sha256=uqQje0TMsr7k6nXlWxlPs13Si0evb3pVCEDF6c-YL80,241
191
- verifiers-0.3.2.dev41.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
192
- verifiers-0.3.2.dev41.dist-info/RECORD,,
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,,