verifiers 0.3.2.dev42__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:
@@ -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.dev42
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
@@ -107,7 +107,7 @@ verifiers/v1/harnesses/pi/harness.py,sha256=M0BRsfJxnBNP-KCrp0vT5gHlaJEDnyti5x_3
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.dev42.dist-info/METADATA,sha256=jUn_EzfMNYKrakZ9wtcpZBjuM5u1gagwHsU0tS_8oow,4065
189
- verifiers-0.3.2.dev42.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
190
- verifiers-0.3.2.dev42.dist-info/entry_points.txt,sha256=uqQje0TMsr7k6nXlWxlPs13Si0evb3pVCEDF6c-YL80,241
191
- verifiers-0.3.2.dev42.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
192
- verifiers-0.3.2.dev42.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,,