verifiers 0.2.2.dev76__py3-none-any.whl → 0.2.2.dev78__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/configs/cli/env.py +1 -1
- verifiers/v1/configs/harness.py +2 -0
- verifiers/v1/harnesses/bash/harness.py +2 -1
- verifiers/v1/harnesses/bash/program.py +3 -2
- verifiers/v1/harnesses/browser_use/harness.py +2 -1
- verifiers/v1/harnesses/browser_use/program.py +3 -2
- verifiers/v1/harnesses/codex/harness.py +1 -1
- verifiers/v1/harnesses/null/harness.py +2 -1
- verifiers/v1/harnesses/null/program.py +3 -2
- verifiers/v1/harnesses/openclaw/harness.py +1 -1
- {verifiers-0.2.2.dev76.dist-info → verifiers-0.2.2.dev78.dist-info}/METADATA +1 -1
- {verifiers-0.2.2.dev76.dist-info → verifiers-0.2.2.dev78.dist-info}/RECORD +15 -15
- {verifiers-0.2.2.dev76.dist-info → verifiers-0.2.2.dev78.dist-info}/WHEEL +0 -0
- {verifiers-0.2.2.dev76.dist-info → verifiers-0.2.2.dev78.dist-info}/entry_points.txt +0 -0
- {verifiers-0.2.2.dev76.dist-info → verifiers-0.2.2.dev78.dist-info}/licenses/LICENSE +0 -0
verifiers/v1/configs/cli/env.py
CHANGED
|
@@ -4,7 +4,7 @@ config that owns one, and the retired keys such a config refuses.
|
|
|
4
4
|
A run composes the blocks it needs — `[env]` (what runs, `configs/env.py`),
|
|
5
5
|
`[serve]` (how it's hosted, `configs/serve.py`), `[legacy]` (the v0 bridge,
|
|
6
6
|
`configs/legacy.py`) — plus its own fields. Nothing here is a base class: the eval
|
|
7
|
-
CLI,
|
|
7
|
+
CLI, GEPA, and a trainer each declare their blocks and call these.
|
|
8
8
|
|
|
9
9
|
Declare the env field as `SerializeAsAny[EnvConfig] = Field(default_factory=
|
|
10
10
|
single_agent_env_config)`. The `SerializeAsAny` is load-bearing: pydantic serializes
|
verifiers/v1/configs/harness.py
CHANGED
|
@@ -20,6 +20,8 @@ class HarnessConfig(BaseConfig):
|
|
|
20
20
|
"""Extra program variables; harness-owned variables take precedence."""
|
|
21
21
|
forward_env: list[str] = Field(default_factory=list)
|
|
22
22
|
"""Host variables to forward without writing secrets into config; explicit `env` wins."""
|
|
23
|
+
tool_timeout: float = Field(600.0, gt=0)
|
|
24
|
+
"""Seconds a single MCP tool call may take; raise it for tools that boot a VM."""
|
|
23
25
|
disabled_tools: list[str] | None = None
|
|
24
26
|
skills: list[Path] = Field(default_factory=list)
|
|
25
27
|
"""Skill folders to upload into the program's skill discovery directory — each
|
|
@@ -101,7 +101,8 @@ class BashHarness(Harness[BashHarnessConfig]):
|
|
|
101
101
|
+ json.dumps(
|
|
102
102
|
{
|
|
103
103
|
"mcpServers": {
|
|
104
|
-
name: {"url": url
|
|
104
|
+
name: {"url": url, "timeout": self.config.tool_timeout}
|
|
105
|
+
for name, url in mcp_urls.items()
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
108
|
)
|
|
@@ -18,7 +18,7 @@ from tenacity import AsyncRetrying, stop_after_attempt, wait_exponential_jitter
|
|
|
18
18
|
SERPER_URL = "https://google.serper.dev/search"
|
|
19
19
|
|
|
20
20
|
MCP_CALL_ATTEMPTS = 6
|
|
21
|
-
MCP_TIMEOUT =
|
|
21
|
+
MCP_TIMEOUT = 600.0
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
BASH_TOOL = {
|
|
@@ -202,7 +202,8 @@ async def mcp_session(spec: dict):
|
|
|
202
202
|
try:
|
|
203
203
|
http_client = await stack.enter_async_context(
|
|
204
204
|
create_mcp_http_client(
|
|
205
|
-
headers=spec.get("headers") or None,
|
|
205
|
+
headers=spec.get("headers") or None,
|
|
206
|
+
timeout=httpx.Timeout(spec.get("timeout", MCP_TIMEOUT), connect=5.0),
|
|
206
207
|
)
|
|
207
208
|
)
|
|
208
209
|
read, write, *_ = await stack.enter_async_context(
|
|
@@ -104,7 +104,8 @@ class BrowserUseHarness(Harness[BrowserUseHarnessConfig]):
|
|
|
104
104
|
+ json.dumps(
|
|
105
105
|
{
|
|
106
106
|
"mcpServers": {
|
|
107
|
-
name: {"url": url
|
|
107
|
+
name: {"url": url, "timeout": self.config.tool_timeout}
|
|
108
|
+
for name, url in mcp_urls.items()
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
111
|
)
|
|
@@ -36,7 +36,7 @@ from openai import AsyncOpenAI
|
|
|
36
36
|
from tenacity import AsyncRetrying, stop_after_attempt, wait_exponential_jitter
|
|
37
37
|
|
|
38
38
|
MCP_CALL_ATTEMPTS = 6
|
|
39
|
-
MCP_TIMEOUT =
|
|
39
|
+
MCP_TIMEOUT = 600.0
|
|
40
40
|
|
|
41
41
|
BROWSER_TOOL_TIMEOUT = 3600
|
|
42
42
|
"""Matches the bash harness's command timeout."""
|
|
@@ -203,7 +203,8 @@ async def mcp_session(spec: dict):
|
|
|
203
203
|
try:
|
|
204
204
|
http_client = await stack.enter_async_context(
|
|
205
205
|
create_mcp_http_client(
|
|
206
|
-
headers=spec.get("headers") or None,
|
|
206
|
+
headers=spec.get("headers") or None,
|
|
207
|
+
timeout=httpx.Timeout(spec.get("timeout", MCP_TIMEOUT), connect=5.0),
|
|
207
208
|
)
|
|
208
209
|
)
|
|
209
210
|
read, write, *_ = await stack.enter_async_context(
|
|
@@ -254,7 +254,7 @@ class CodexHarness(Harness[CodexHarnessConfig]):
|
|
|
254
254
|
(
|
|
255
255
|
f"{json.dumps(name, ensure_ascii=False)}="
|
|
256
256
|
f"{{url={json.dumps(url, ensure_ascii=False)},required=true,"
|
|
257
|
-
"startup_timeout_sec=60.0,tool_timeout_sec=
|
|
257
|
+
f"startup_timeout_sec=60.0,tool_timeout_sec={self.config.tool_timeout}}}"
|
|
258
258
|
)
|
|
259
259
|
for name, url in mcp_urls.items()
|
|
260
260
|
)
|
|
@@ -15,7 +15,7 @@ from openai import AsyncOpenAI
|
|
|
15
15
|
from tenacity import AsyncRetrying, stop_after_attempt, wait_exponential_jitter
|
|
16
16
|
|
|
17
17
|
MCP_CALL_ATTEMPTS = 6
|
|
18
|
-
MCP_TIMEOUT =
|
|
18
|
+
MCP_TIMEOUT = 600.0
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
async def chat(
|
|
@@ -43,7 +43,8 @@ async def mcp_session(spec: dict):
|
|
|
43
43
|
try:
|
|
44
44
|
http_client = await stack.enter_async_context(
|
|
45
45
|
create_mcp_http_client(
|
|
46
|
-
headers=spec.get("headers") or None,
|
|
46
|
+
headers=spec.get("headers") or None,
|
|
47
|
+
timeout=httpx.Timeout(spec.get("timeout", MCP_TIMEOUT), connect=5.0),
|
|
47
48
|
)
|
|
48
49
|
)
|
|
49
50
|
read, write, *_ = await stack.enter_async_context(
|
|
@@ -166,7 +166,7 @@ class OpenClawHarness(Harness[OpenClawHarnessConfig]):
|
|
|
166
166
|
"url": url,
|
|
167
167
|
"transport": "streamable-http",
|
|
168
168
|
"connectionTimeoutMs": 60_000,
|
|
169
|
-
"requestTimeoutMs":
|
|
169
|
+
"requestTimeoutMs": int(self.config.tool_timeout * 1000),
|
|
170
170
|
}
|
|
171
171
|
for name, url in mcp_urls.items()
|
|
172
172
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.dev78
|
|
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
|
|
@@ -211,7 +211,7 @@ verifiers/v1/configs/__init__.py,sha256=X7u6X7B3ieD1HZl79Tv1kg-yPHbT0QLvAebaGqxV
|
|
|
211
211
|
verifiers/v1/configs/agent.py,sha256=V_2FDvPHRB3_bHN9QnNnDYOjlmTP7NtG22SaopU-X64,3261
|
|
212
212
|
verifiers/v1/configs/client.py,sha256=dCi2aC_wVHCrM0xRi9foFcbqp9pN2GR7yxEs1z_ChJM,4371
|
|
213
213
|
verifiers/v1/configs/env.py,sha256=7ESsWZRWJpKqR5EEV1rmj0R1Dkn2Pn8MVSXPJOzRiF8,7885
|
|
214
|
-
verifiers/v1/configs/harness.py,sha256=
|
|
214
|
+
verifiers/v1/configs/harness.py,sha256=uDBb3DoX3RGbH2fOAvVVMaluP3VivtMfurGiBbbpuAs,1695
|
|
215
215
|
verifiers/v1/configs/judge.py,sha256=O7oe28tS24fKRXUML_-6vHrVGdG6w7061SPQXOH7XvM,2223
|
|
216
216
|
verifiers/v1/configs/legacy.py,sha256=YOJM6L5u6-jYpZ1CLpPInufKdmz1lEsMNKIRdT2JaaY,1080
|
|
217
217
|
verifiers/v1/configs/retries.py,sha256=-nPlgmz7J_NZ4GOYG6oCc3thXo4La2SufBmvQGvvPGo,821
|
|
@@ -220,7 +220,7 @@ verifiers/v1/configs/task.py,sha256=1ozZjfpahin7I_TqzC7f3xr7CHSthAdydegFPXW4d9k,
|
|
|
220
220
|
verifiers/v1/configs/taskset.py,sha256=o-tr1xkmGmYG10_ySG-Du_djWS-dN4h7cv14WSvJ4eY,851
|
|
221
221
|
verifiers/v1/configs/cli/__init__.py,sha256=TJaWQQHrcyXoeqS7P9S25ztd78YJ30_9_Ug0czRH7Tw,374
|
|
222
222
|
verifiers/v1/configs/cli/debug.py,sha256=VFsZ1tiKGvvx5mFDOzqqeU4cRtQkJ8OeD8mmRBZhy8w,2849
|
|
223
|
-
verifiers/v1/configs/cli/env.py,sha256=
|
|
223
|
+
verifiers/v1/configs/cli/env.py,sha256=Qwba1wD2Upbh2W09YbSpktueCJZaWV_DymHRaPgl_ow,2685
|
|
224
224
|
verifiers/v1/configs/cli/eval.py,sha256=HqIBtt8DuZEHZ07KgtE1jiqZy8OsDMfTahTuBAvslcA,6863
|
|
225
225
|
verifiers/v1/configs/cli/init.py,sha256=tMaTDF_lU1Af3JmQpksk2mwe8CAfpnHsquXhwepZhYo,1019
|
|
226
226
|
verifiers/v1/configs/cli/replay.py,sha256=xvMDZzIkvjgYl-a3ragjXI65DsD6FYl6gEFM5qpdIuA,2913
|
|
@@ -247,15 +247,15 @@ verifiers/v1/gepa/reflection.py,sha256=ptHhx0lcDLcWhWhXuslh9T8gPVNpnX5XLPtXoneW1
|
|
|
247
247
|
verifiers/v1/gepa/runner.py,sha256=_B_YPd_h3kelbNE2029a6n3-QpqD8HOSDmOJRtX1PR8,6036
|
|
248
248
|
verifiers/v1/harnesses/__init__.py,sha256=cLyHRiH0E63WcVW9dBqR4OEqPSfPR4wQmB6gunghV4Q,1759
|
|
249
249
|
verifiers/v1/harnesses/bash/__init__.py,sha256=IAV4eMMqDHSl-9ANb0Q3kxmBZ22SeHZFBM448X4gQio,140
|
|
250
|
-
verifiers/v1/harnesses/bash/harness.py,sha256=
|
|
251
|
-
verifiers/v1/harnesses/bash/program.py,sha256=
|
|
250
|
+
verifiers/v1/harnesses/bash/harness.py,sha256=iT-F8fEDaV0jveCOG4ZTavRahhVvbq8ehPTbfG3Cre8,5349
|
|
251
|
+
verifiers/v1/harnesses/bash/program.py,sha256=USO3fu8CyOu_qiUisGTpsFUsu5_56KLwM-JdFZP4k78,15338
|
|
252
252
|
verifiers/v1/harnesses/browser_use/__init__.py,sha256=yxm2IG5TDLadxZEkX8SL26XWbcPcODXcrJfPfm1GqwU,171
|
|
253
|
-
verifiers/v1/harnesses/browser_use/harness.py,sha256
|
|
254
|
-
verifiers/v1/harnesses/browser_use/program.py,sha256=
|
|
253
|
+
verifiers/v1/harnesses/browser_use/harness.py,sha256=pxlpyJdnIFdlXVeMCcSgMH1uGeuU8LMEG0UF8emLXU0,5900
|
|
254
|
+
verifiers/v1/harnesses/browser_use/program.py,sha256=ygC0e7iocV6bjTyqE4b3QECvQqNsxwFZDBcHOYUUfHY,14291
|
|
255
255
|
verifiers/v1/harnesses/claude_code/__init__.py,sha256=JkZQylMSA3o1fvBx_NM41y_umuahmOSqFjTrJ2hryTw,171
|
|
256
256
|
verifiers/v1/harnesses/claude_code/harness.py,sha256=bZHzTo7xFddJgHf1VrB3ZewzBR-AW0LuoMwxjrpI6Ko,3826
|
|
257
257
|
verifiers/v1/harnesses/codex/__init__.py,sha256=ocyBvlpSO8c3pT6D1ebrQohoXYESQcCyPT5kN3j1-N4,132
|
|
258
|
-
verifiers/v1/harnesses/codex/harness.py,sha256=
|
|
258
|
+
verifiers/v1/harnesses/codex/harness.py,sha256=_B5l3zNo02KR7SrEsHchZ5X0eOOjl5cfEnzzp94Lunk,13094
|
|
259
259
|
verifiers/v1/harnesses/hermes_agent/__init__.py,sha256=k84Y8UTTf1KOw5LGqPb2dk-hYFagPevDJBOF7qsR_vo,176
|
|
260
260
|
verifiers/v1/harnesses/hermes_agent/harness.py,sha256=AveZi9g4pga9pYy4VAmn_KMKlJw3KhwG45JZcPxbdR4,5094
|
|
261
261
|
verifiers/v1/harnesses/hermes_agent/program.py,sha256=9qPLbUnhox2bGu5ypEEnBhw9QKtYwNvrbl7W_zeNMdk,229
|
|
@@ -265,10 +265,10 @@ verifiers/v1/harnesses/mini_swe_agent/__init__.py,sha256=1OBu2Y-XqL72-dGhFdgB6sr
|
|
|
265
265
|
verifiers/v1/harnesses/mini_swe_agent/harness.py,sha256=XImNv1-z6zUCkOGT-QNB6oDacF4upQbMXzdFDIYxSng,2448
|
|
266
266
|
verifiers/v1/harnesses/mini_swe_agent/program.py,sha256=XPjDEsbJACB34tkUX9dJdIziWyKnMTvAJMLevI_FFxU,159
|
|
267
267
|
verifiers/v1/harnesses/null/__init__.py,sha256=XDeKOPeoXUQi9US9_Z3_yH9YaZ4EiOMKJmUtNNdtD7s,127
|
|
268
|
-
verifiers/v1/harnesses/null/harness.py,sha256=
|
|
269
|
-
verifiers/v1/harnesses/null/program.py,sha256=
|
|
268
|
+
verifiers/v1/harnesses/null/harness.py,sha256=3_BSQKFHTl9k54Aq1pcBEuE1n3hRF2xpP2100H5KGv4,2596
|
|
269
|
+
verifiers/v1/harnesses/null/program.py,sha256=Lapx_g-uioKt0w9r2lcfoIkC0NPAX7wwNzxKQeJ82t4,8445
|
|
270
270
|
verifiers/v1/harnesses/openclaw/__init__.py,sha256=kNyfPB1sGwEf4K3mTfKN0VEyxun3SGvNpvArVKvH-x8,160
|
|
271
|
-
verifiers/v1/harnesses/openclaw/harness.py,sha256=
|
|
271
|
+
verifiers/v1/harnesses/openclaw/harness.py,sha256=n1o7gvsEEv0OsnU_WvyEd00Q4KizWQawSwHqdvqzLnw,14745
|
|
272
272
|
verifiers/v1/harnesses/pi/__init__.py,sha256=1mSnzOf-RdEchdeg6IHtcdobG5KIpAhuTdUIgsCIn74,117
|
|
273
273
|
verifiers/v1/harnesses/pi/harness.py,sha256=_O-pyg2RM23-RzQosKHKf8uG8KflS4OrWSsEiBCWQpo,8675
|
|
274
274
|
verifiers/v1/harnesses/pool/__init__.py,sha256=HTYsNiWGdiNEsSHj4xhPmshJSNb7SHjQ7d4yZQ4p3HM,127
|
|
@@ -337,8 +337,8 @@ verifiers/v1/utils/platform.py,sha256=56Ixmk1SER6q5LvzyYcA0hgzGpzhxKZL8Hiqp4c_XV
|
|
|
337
337
|
verifiers/v1/utils/retries.py,sha256=Y2ZgrAjn-qNkRKZP_RVNL_7EK0iaRcZeCa404lpGYi4,5417
|
|
338
338
|
verifiers/v1/utils/score.py,sha256=-R5Cog14r_tJ6Q_oOfGr5VPAm2CCUhofYZB6B9lm4wM,5787
|
|
339
339
|
verifiers/v1/utils/version.py,sha256=-obEo_-l9-D8FLef4hYxncOe-uJpxrM1g2Hig_37Sgs,1607
|
|
340
|
-
verifiers-0.2.2.
|
|
341
|
-
verifiers-0.2.2.
|
|
342
|
-
verifiers-0.2.2.
|
|
343
|
-
verifiers-0.2.2.
|
|
344
|
-
verifiers-0.2.2.
|
|
340
|
+
verifiers-0.2.2.dev78.dist-info/METADATA,sha256=rmnE8VfGbDeIp0uvtPHL4MkEltHkoqkWlmp9PPtcGxs,4545
|
|
341
|
+
verifiers-0.2.2.dev78.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
342
|
+
verifiers-0.2.2.dev78.dist-info/entry_points.txt,sha256=v6v0QT9vVExnfn4br42MostI_o3f3ZbWYlTormz-U3g,515
|
|
343
|
+
verifiers-0.2.2.dev78.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
|
|
344
|
+
verifiers-0.2.2.dev78.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|