verifiers 0.2.2.dev31__py3-none-any.whl → 0.2.2.dev33__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/__init__.py +1 -2
- verifiers/v1/configs/judge.py +1 -5
- verifiers/v1/dialects/responses.py +12 -10
- verifiers/v1/gepa/adapter.py +1 -1
- verifiers/v1/utils/git.py +2 -2
- {verifiers-0.2.2.dev31.dist-info → verifiers-0.2.2.dev33.dist-info}/METADATA +1 -1
- {verifiers-0.2.2.dev31.dist-info → verifiers-0.2.2.dev33.dist-info}/RECORD +10 -10
- {verifiers-0.2.2.dev31.dist-info → verifiers-0.2.2.dev33.dist-info}/WHEEL +0 -0
- {verifiers-0.2.2.dev31.dist-info → verifiers-0.2.2.dev33.dist-info}/entry_points.txt +0 -0
- {verifiers-0.2.2.dev31.dist-info → verifiers-0.2.2.dev33.dist-info}/licenses/LICENSE +0 -0
verifiers/v1/__init__.py
CHANGED
|
@@ -37,7 +37,7 @@ from verifiers.v1.errors import (
|
|
|
37
37
|
)
|
|
38
38
|
from verifiers.v1.configs.harness import HarnessConfig
|
|
39
39
|
from verifiers.v1.harness import Harness
|
|
40
|
-
from verifiers.v1.configs.judge import JudgeConfig,
|
|
40
|
+
from verifiers.v1.configs.judge import JudgeConfig, Judges
|
|
41
41
|
from verifiers.v1.judge import Judge, JudgeResponse, JudgeView
|
|
42
42
|
from verifiers.v1.judges import (
|
|
43
43
|
ReferenceJudge,
|
|
@@ -267,7 +267,6 @@ __all__ = [
|
|
|
267
267
|
"Judge",
|
|
268
268
|
"JudgeConfig",
|
|
269
269
|
"Judges",
|
|
270
|
-
"JudgeSamplingConfig",
|
|
271
270
|
"JudgeResponse",
|
|
272
271
|
"JudgeView",
|
|
273
272
|
"ReferenceJudge",
|
verifiers/v1/configs/judge.py
CHANGED
|
@@ -12,10 +12,6 @@ from verifiers.v1.types import ID, SamplingConfig
|
|
|
12
12
|
from verifiers.v1.utils.install import env_name
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
class JudgeSamplingConfig(SamplingConfig):
|
|
16
|
-
pass
|
|
17
|
-
|
|
18
|
-
|
|
19
15
|
class JudgeConfig(BaseClientConfig):
|
|
20
16
|
id: ID = ""
|
|
21
17
|
"""Plugin id; empty for a judge called directly by task code."""
|
|
@@ -23,7 +19,7 @@ class JudgeConfig(BaseClientConfig):
|
|
|
23
19
|
"""Reward key override for a plugged judge."""
|
|
24
20
|
weight: float = 1.0
|
|
25
21
|
model: str = "openai/gpt-5.4-nano"
|
|
26
|
-
sampling:
|
|
22
|
+
sampling: SamplingConfig = SamplingConfig()
|
|
27
23
|
prompt: str | None = None
|
|
28
24
|
prompt_file: Path | None = None
|
|
29
25
|
"""Prompt file override, mutually exclusive with `prompt`."""
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"""The OpenAI Responses dialect (codex and friends).
|
|
2
2
|
|
|
3
3
|
Request parsing walks the `input` items, folding each run of assistant-side items (reasoning /
|
|
4
|
-
assistant message /
|
|
5
|
-
`output` items. Relay-only: the eval client forwards the program's bytes to a
|
|
6
|
-
endpoint and this dialect parses a copy for the trace. Server-side statefulness
|
|
4
|
+
assistant message / function or custom tool call) into one typed assistant message; response
|
|
5
|
+
parsing reads the `output` items. Relay-only: the eval client forwards the program's bytes to a
|
|
6
|
+
`/responses` endpoint and this dialect parses a copy for the trace. Server-side statefulness
|
|
7
7
|
(`previous_response_id`) is not emulated — the endpoint owns it.
|
|
8
8
|
"""
|
|
9
9
|
|
|
@@ -97,8 +97,7 @@ def parse_content(content) -> str | list[ContentPart]:
|
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
def fold_assistant(items: list[dict]) -> AssistantMessage:
|
|
100
|
-
"""One run of assistant-side items
|
|
101
|
-
assistant message."""
|
|
100
|
+
"""One run of assistant-side items -> one typed assistant message."""
|
|
102
101
|
content = ""
|
|
103
102
|
reasoning: list[str] = []
|
|
104
103
|
calls: list[ToolCall] = []
|
|
@@ -106,12 +105,12 @@ def fold_assistant(items: list[dict]) -> AssistantMessage:
|
|
|
106
105
|
if item.get("type") == "reasoning":
|
|
107
106
|
reasoning += [s.get("text", "") for s in item.get("summary") or []]
|
|
108
107
|
reasoning += [c.get("text", "") for c in item.get("content") or []]
|
|
109
|
-
elif item.get("type")
|
|
108
|
+
elif item.get("type") in ("function_call", "custom_tool_call"):
|
|
110
109
|
calls.append(
|
|
111
110
|
ToolCall(
|
|
112
111
|
id=item.get("call_id", ""),
|
|
113
112
|
name=item.get("name", ""),
|
|
114
|
-
arguments=item.get("arguments", ""),
|
|
113
|
+
arguments=item.get("arguments", item.get("input", "")),
|
|
115
114
|
)
|
|
116
115
|
)
|
|
117
116
|
else: # an assistant message item
|
|
@@ -151,12 +150,12 @@ def response_from_wire(response: OpenAIResponse) -> Response:
|
|
|
151
150
|
elif kind == "reasoning":
|
|
152
151
|
reasoning += [s.get("text", "") for s in item.get("summary") or []]
|
|
153
152
|
reasoning += [c.get("text", "") for c in item.get("content") or []]
|
|
154
|
-
elif kind
|
|
153
|
+
elif kind in ("function_call", "custom_tool_call"):
|
|
155
154
|
calls.append(
|
|
156
155
|
ToolCall(
|
|
157
156
|
id=item.get("call_id", ""),
|
|
158
157
|
name=item.get("name", ""),
|
|
159
|
-
arguments=item.get("arguments", ""),
|
|
158
|
+
arguments=item.get("arguments", item.get("input", "")),
|
|
160
159
|
)
|
|
161
160
|
)
|
|
162
161
|
tool_calls = calls or None
|
|
@@ -279,7 +278,10 @@ class ResponsesDialect(Dialect[dict, OpenAIResponse]):
|
|
|
279
278
|
run = []
|
|
280
279
|
if assistant:
|
|
281
280
|
run.append(item)
|
|
282
|
-
elif item.get("type")
|
|
281
|
+
elif item.get("type") in (
|
|
282
|
+
"function_call_output",
|
|
283
|
+
"custom_tool_call_output",
|
|
284
|
+
):
|
|
283
285
|
output = item.get("output")
|
|
284
286
|
content = (
|
|
285
287
|
parse_content(output)
|
verifiers/v1/gepa/adapter.py
CHANGED
|
@@ -87,7 +87,7 @@ class GEPAAdapter:
|
|
|
87
87
|
|
|
88
88
|
def make_reflective_dataset(
|
|
89
89
|
self,
|
|
90
|
-
candidate: Candidate, #
|
|
90
|
+
candidate: Candidate, # Required by GEPA's adapter protocol.
|
|
91
91
|
eval_batch: EvaluationBatch[Episode, Episode],
|
|
92
92
|
components_to_update: list[str],
|
|
93
93
|
) -> Mapping[str, Sequence[Mapping[str, Any]]]:
|
verifiers/v1/utils/git.py
CHANGED
|
@@ -97,7 +97,7 @@ async def capture_patch(
|
|
|
97
97
|
)
|
|
98
98
|
return
|
|
99
99
|
raw = await runtime.read(capped)
|
|
100
|
-
except Exception as exc: #
|
|
100
|
+
except Exception as exc: # Capture must never fail the rollout.
|
|
101
101
|
trace.info["patch_error"] = f"{type(exc).__name__}: {exc}"
|
|
102
102
|
return
|
|
103
103
|
finally:
|
|
@@ -105,7 +105,7 @@ async def capture_patch(
|
|
|
105
105
|
# on shared-filesystem runtimes; removal is best-effort by design.
|
|
106
106
|
try:
|
|
107
107
|
await runtime.run(["rm", "-f", full, capped], env or {})
|
|
108
|
-
except Exception: #
|
|
108
|
+
except Exception: # Cleanup must never fail the rollout.
|
|
109
109
|
pass
|
|
110
110
|
if len(raw) > PATCH_CAP_BYTES:
|
|
111
111
|
raw = raw[:PATCH_CAP_BYTES]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.dev33
|
|
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
|
|
@@ -167,7 +167,7 @@ verifiers/utils/threaded_sandbox_client.py,sha256=Pbr8MA4FDPEitL6z88S8T1qLJOmtXN
|
|
|
167
167
|
verifiers/utils/tool_utils.py,sha256=gInWZODWQUZN4TyEMuuITyOUm9qlHJxtcvr1zZl_zJs,1020
|
|
168
168
|
verifiers/utils/usage_utils.py,sha256=GPLC0xGY_Obrr8X7huWY-2iODZ7tgX-MtO8WSDN4rXI,3904
|
|
169
169
|
verifiers/utils/version_utils.py,sha256=am3hZLnlaUWTFdllGZR1VMN91hEhiiE8FDmPf1cOG1k,2642
|
|
170
|
-
verifiers/v1/__init__.py,sha256=
|
|
170
|
+
verifiers/v1/__init__.py,sha256=GiNNUcxzYkjZMnTXl5mKAlOSrxiaUkD1A-3U9rfiDso,6811
|
|
171
171
|
verifiers/v1/agent.py,sha256=FP38GsZXuEJe3tJ-U2THpwBf9NWQeo847hWRZoeggNw,31956
|
|
172
172
|
verifiers/v1/decorators.py,sha256=XRMkUQSyvXCYP5fOwzBYV5qEOlxLg6rzYhnhrHHHTIQ,3838
|
|
173
173
|
verifiers/v1/env.py,sha256=w6sHWdWijLRZzhwVyJjadnGtziNqJAPCeMUoNdzHoLg,17712
|
|
@@ -217,7 +217,7 @@ verifiers/v1/configs/__init__.py,sha256=X7u6X7B3ieD1HZl79Tv1kg-yPHbT0QLvAebaGqxV
|
|
|
217
217
|
verifiers/v1/configs/agent.py,sha256=N2Lm0iZXFxfsSIiXUQ7f3RDZcoin3M7pJj6HVdCE5eo,3537
|
|
218
218
|
verifiers/v1/configs/env.py,sha256=2mEU1n2xG-v5PNdB2EJioAYP6Witnlny9kYi0jwKFQk,7286
|
|
219
219
|
verifiers/v1/configs/harness.py,sha256=CG8hGbHl3rr6yawH3YYMAFl01M7Piiwf4w5oiw2Vagg,1564
|
|
220
|
-
verifiers/v1/configs/judge.py,sha256=
|
|
220
|
+
verifiers/v1/configs/judge.py,sha256=ZJlmWogHY8oDjvWvtNuVKvkzuheWalIjl1njJ4dE0Mk,2511
|
|
221
221
|
verifiers/v1/configs/retries.py,sha256=1PY0hhPV2Q-KgBKKSUNBFccJzc_t1yG3P_44p8Q_1a4,771
|
|
222
222
|
verifiers/v1/configs/task.py,sha256=L-j_CYIDP2JAF7CDA2FOZz8aQK2h7c0f1qnmJshWzu4,1069
|
|
223
223
|
verifiers/v1/configs/taskset.py,sha256=IdZwsarn0_WvYdR_Kr4QYYdqbaoGYkbYyO5VA-RPYPc,657
|
|
@@ -233,7 +233,7 @@ verifiers/v1/dialects/__init__.py,sha256=PR3CJFI5siVJBXcF7H2Wi_UCygotHhL0Oj6DIOF
|
|
|
233
233
|
verifiers/v1/dialects/anthropic.py,sha256=nj9J7OOhexmPHa-sWiNP2xlI9_bGhvwM5VWzdh19pBc,13526
|
|
234
234
|
verifiers/v1/dialects/base.py,sha256=YZQDnasQseDXK-GHLfJLZgyHIIygS80YhD_sTjmUbfA,8126
|
|
235
235
|
verifiers/v1/dialects/chat.py,sha256=DFvjmIW86jZUMWuz-hOqzxC6tiiFibiAzNEJ3JkpvjU,13998
|
|
236
|
-
verifiers/v1/dialects/responses.py,sha256=
|
|
236
|
+
verifiers/v1/dialects/responses.py,sha256=ismnxUikPcPUIm80FUTPBbj-Cn1e0yGAsISMEseAWRc,13679
|
|
237
237
|
verifiers/v1/envs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
238
238
|
verifiers/v1/envs/agentic_judge/__init__.py,sha256=X7vQbbbfmJ_j-mJEfBkuB4a8QUPkUYkpG7yp0xYOEmg,279
|
|
239
239
|
verifiers/v1/envs/agentic_judge/env.py,sha256=_zEKG9i3LsOVIQWULXYAHpbmrQNPWBRayJx2yjvtPbQ,15307
|
|
@@ -244,7 +244,7 @@ verifiers/v1/envs/single_agent/env.py,sha256=RuWYgdT2vVu0PBt1esmnlbCcYwUD6ZbmqT-
|
|
|
244
244
|
verifiers/v1/envs/user_sim/__init__.py,sha256=nnT695HdqjAEouYL5wtVu6MhIp2wf5yuK-EYgxOVx0s,118
|
|
245
245
|
verifiers/v1/envs/user_sim/env.py,sha256=u376-UJEVdzgcit7FXjz5KEwlPxSU3qqoIrxs6foi2w,4567
|
|
246
246
|
verifiers/v1/gepa/__init__.py,sha256=6nmdRE0-34AKioPHBjTxUg5Jo_2z7tMX-OU3zMNpAJI,197
|
|
247
|
-
verifiers/v1/gepa/adapter.py,sha256=
|
|
247
|
+
verifiers/v1/gepa/adapter.py,sha256=FivQBeUMvoCGaVqZUoLpj8S7GKPGyTuxKXZclnWHOKk,6185
|
|
248
248
|
verifiers/v1/gepa/config.py,sha256=MVaJfPMehoPq5kF1vsm3lEJrxTiryesxHrQDcxE6TAE,4656
|
|
249
249
|
verifiers/v1/gepa/dataset.py,sha256=N2QYqUljHVuAdCbUuydEIlarvAWa6LFdGKu9qsOvjro,2186
|
|
250
250
|
verifiers/v1/gepa/reflection.py,sha256=T86Ar1BcSk012wfB1TioIP72wzBEEy8ZrwBy3rn2Hps,1045
|
|
@@ -319,7 +319,7 @@ verifiers/v1/utils/aio.py,sha256=ZKTHeURNbWhTpHMyYuqMLsdPWVHyn5anfG1IJs5y-Zg,148
|
|
|
319
319
|
verifiers/v1/utils/compile.py,sha256=hSCCi06qIi4LH1wsAOgYVm0vma1tYZkCG-wLKq7PZxI,5724
|
|
320
320
|
verifiers/v1/utils/format.py,sha256=NfQo9M5KMzWCZpQaet5YtsJx56vCKAZPfbjZZJLJhhM,2187
|
|
321
321
|
verifiers/v1/utils/generic.py,sha256=xwu8xNGdVOhM2K87C5cqhmnRf6apSPDASA15M0S2MaY,2054
|
|
322
|
-
verifiers/v1/utils/git.py,sha256=
|
|
322
|
+
verifiers/v1/utils/git.py,sha256=NaVQ3_MG0x3nTb0MH2B-9O5xmnkPsaF5UGHRb4RIKvA,4837
|
|
323
323
|
verifiers/v1/utils/image.py,sha256=OFw_wdwVtbdwa8uJ3X3vYfhpUAi0CTH5HMBupjVsRRQ,282
|
|
324
324
|
verifiers/v1/utils/install.py,sha256=fWNsyKrw_PyhC0Qhqv5Ri0adFm5Ddx4AVy_hbsra1GU,1390
|
|
325
325
|
verifiers/v1/utils/interrupt.py,sha256=F-KKhc5ndPJJfhd3SuMqyqhXhA32FhCRy5KWFJpEoM4,1179
|
|
@@ -327,8 +327,8 @@ verifiers/v1/utils/logging.py,sha256=OcMHA6NsYux3oIzjPuI95rDWmFBHNcHDjZeNIhXTX-Y
|
|
|
327
327
|
verifiers/v1/utils/memory.py,sha256=ZkIvGk6uITAH5sKon65LifKPbvZr8mJ__PVc23FZpOQ,1835
|
|
328
328
|
verifiers/v1/utils/sampling.py,sha256=JczGzBn6s3wsIrSY2Hy3hE8m6NreNgsNzhSjDikQqX0,1037
|
|
329
329
|
verifiers/v1/utils/version.py,sha256=75ZtI2NHBmlb52KpcKLUpiSXp8q4bASr7uKeXoCKlT8,1582
|
|
330
|
-
verifiers-0.2.2.
|
|
331
|
-
verifiers-0.2.2.
|
|
332
|
-
verifiers-0.2.2.
|
|
333
|
-
verifiers-0.2.2.
|
|
334
|
-
verifiers-0.2.2.
|
|
330
|
+
verifiers-0.2.2.dev33.dist-info/METADATA,sha256=IWBt9E4wd0eetYz62qsRhe4QkmKiJz0uyFZmSvQRMjI,4540
|
|
331
|
+
verifiers-0.2.2.dev33.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
332
|
+
verifiers-0.2.2.dev33.dist-info/entry_points.txt,sha256=dF82JUYEFslR1AOW8LZfuBWeZeQoyX4wCRrduklg8-I,551
|
|
333
|
+
verifiers-0.2.2.dev33.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
|
|
334
|
+
verifiers-0.2.2.dev33.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|