verifiers 0.3.2.dev192__py3-none-any.whl → 0.3.2.dev194__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.
@@ -54,6 +54,9 @@ class AgentConfig(BaseConfig):
54
54
  timeout: TimeoutConfig = TimeoutConfig()
55
55
  retries: RetryConfig = RetryConfig()
56
56
 
57
+ network_notice: bool = True
58
+ """Include the runtime's network restrictions in the agent's prompt."""
59
+
57
60
  @model_validator(mode="before")
58
61
  @classmethod
59
62
  def _resolve_harness(cls, data):
verifiers/v1/rollout.py CHANGED
@@ -319,6 +319,46 @@ class Rollout:
319
319
  boundary(HarnessError, "opening harness session"),
320
320
  ):
321
321
  harness_data = self.trace.task.data
322
+ policy = self._session.network_policy
323
+ if self.trace.agent.config.network_notice and policy.network_restricted:
324
+ if not policy.allow:
325
+ network_prompt = "External network access is disabled."
326
+ elif policy.block:
327
+ network_prompt = (
328
+ "External network access is allowed except for these blocked "
329
+ f"destinations: {', '.join(policy.block)}. "
330
+ "Do not circumvent this selection of domains."
331
+ )
332
+ else:
333
+ network_prompt = (
334
+ "External network access is limited to these destinations: "
335
+ f"{', '.join(policy.allow)}. "
336
+ "Do not circumvent this selection of domains."
337
+ )
338
+ network_prompt = "\n\n".join(
339
+ text
340
+ for text in (harness_data.system_prompt, network_prompt)
341
+ if text
342
+ )
343
+ # Keep existing transcript system messages intact on resume;
344
+ # user-only lists must stay user-only for ACP harnesses.
345
+ if (
346
+ harness_data.system_prompt is None
347
+ and isinstance(harness_data.prompt, list)
348
+ and any(m.role == "system" for m in harness_data.prompt)
349
+ ):
350
+ harness_data = harness_data.model_copy(
351
+ update={
352
+ "prompt": [
353
+ SystemMessage(content=network_prompt),
354
+ *harness_data.prompt,
355
+ ]
356
+ }
357
+ )
358
+ else:
359
+ harness_data = harness_data.model_copy(
360
+ update={"system_prompt": network_prompt}
361
+ )
322
362
  if (
323
363
  self._session.request_interceptors
324
364
  and harness_data.prompt is not None
@@ -364,6 +364,9 @@ class HarborTask(Task[HarborData, State, HarborTaskConfig]):
364
364
  "grading with --taskset.ignore-separate-verifier"
365
365
  )
366
366
  else:
367
+ # Grading is trusted: a shared-box verifier must not inherit the agent
368
+ # phase's network restrictions (Harbor test scripts install their tools).
369
+ await runtime.prepare_execution(None)
367
370
  await self.stage_tests(runtime)
368
371
  return await self.run_verifier(runtime, trace)
369
372
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: verifiers
3
- Version: 0.3.2.dev192
3
+ Version: 0.3.2.dev194
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
@@ -7,7 +7,7 @@ verifiers/v1/errors.py,sha256=nNabzi55J5aHmAmW9UHZVpI7kcBfy4Xcyt4cQthZbM8,5875
7
7
  verifiers/v1/graph.py,sha256=LW0pJRxCCOXZa2KwB0edHIIqmRrzLFBDNyEeOFVskl8,41502
8
8
  verifiers/v1/harness.py,sha256=4hnAh7tjiXfXoEYAzn8XhHy8sJ3PhZ0Tti5VqwxUQDs,16251
9
9
  verifiers/v1/judge.py,sha256=uqn-djkK2_7Q3kOjkDo6ipOvV_HOvuLa9y6AoDjRux8,9618
10
- verifiers/v1/rollout.py,sha256=fmDU1qlodpS1A7f-rlSMixMeGwf69hg9O3bLYxIR-ec,27539
10
+ verifiers/v1/rollout.py,sha256=kYJMreIYzhyZicogMyvltqsdJqK9vQsc2EbK_FidWxA,29647
11
11
  verifiers/v1/semantic.py,sha256=tX8FYEceuMYauuB3Bc8jLDMS2eR06JjLjTo66R190Fg,4053
12
12
  verifiers/v1/session.py,sha256=p3Rm0MU-6fPsJLjQcIMg-NOIV-8_tsqcXNTftJ94brY,28555
13
13
  verifiers/v1/state.py,sha256=EckF2bWp-vV4b1jYJ9sLI5xrfGuI5spIgYYwW926toI,595
@@ -42,7 +42,7 @@ verifiers/v1/clients/client.py,sha256=zqC_AkiD9pl0kxxIbupNiehbS-YnVdp3EMZ0LOHTd8
42
42
  verifiers/v1/clients/eval.py,sha256=qMm1W4H1JN2xa6e-aSUL19iQ_QHCB7MxEofUD7_MsEU,8299
43
43
  verifiers/v1/clients/train.py,sha256=lSJTwHjwOET3D_CI_eYZSoXSQcv2H0K5sYJ7kD_kdw4,19489
44
44
  verifiers/v1/configs/__init__.py,sha256=X7u6X7B3ieD1HZl79Tv1kg-yPHbT0QLvAebaGqxVtvA,317
45
- verifiers/v1/configs/agent.py,sha256=Vut73R2EW8QuL5c0iTnNFC_g-Obvl8YUKsjlvkABuL0,5311
45
+ verifiers/v1/configs/agent.py,sha256=iT7Pu09k1-l4kL8Ff3UhhkY-FziNfHRVpwppg6CEexY,5420
46
46
  verifiers/v1/configs/client.py,sha256=5OW_kAmFf2DkmzH2cerd4bINrIL2t68MKKcREUdrQyQ,6224
47
47
  verifiers/v1/configs/env.py,sha256=k47XBYYWLOf-8P1dbek3x_s0ucNb726xxoryG69DIr4,7256
48
48
  verifiers/v1/configs/harness.py,sha256=ZrR-Egzfft95oMoqQ78bAq9TqP882Q68M_47Ajw9lE8,2918
@@ -163,7 +163,7 @@ verifiers/v1/tasksets/__init__.py,sha256=2ijE3qIlLoUA02g6iysOwWQylyBBQL1GhSpjv8_
163
163
  verifiers/v1/tasksets/harbor/__init__.py,sha256=JxThzHFYEkuSfQbVf3pEnjordgdfe4MU-QOsSSbyovU,326
164
164
  verifiers/v1/tasksets/harbor/compose.py,sha256=Ab-vpMPFXy7Y7C_82-IRznrlaN3FLEuFDz8w3LDsE-I,14094
165
165
  verifiers/v1/tasksets/harbor/env.py,sha256=-U-CeyeuWysXCNHi3cew0XtakUa7TqJVnVzElKtG41w,6356
166
- verifiers/v1/tasksets/harbor/taskset.py,sha256=ggz26hWv9XFZAfkzp72vsrQjaXKShO4AOCzrSg2K4ds,36503
166
+ verifiers/v1/tasksets/harbor/taskset.py,sha256=Sre_KB7C-BuB-waG1pQXfTHK9yatoVgA7-TYxJL7pHo,36722
167
167
  verifiers/v1/tasksets/harbor/toolset.py,sha256=_7HXu-uuvqzhmJ1EX6c3KWLg0g0eRrLjCq1kBsZhIwo,3159
168
168
  verifiers/v1/tasksets/nemo_gym/__init__.py,sha256=654gAvG3Wd_Z_nh6mypeKn4s_IIQ0Ge6vcZvxTHC2_E,306
169
169
  verifiers/v1/tasksets/nemo_gym/response.py,sha256=EhrsquEP8g0bjzAThGfE6Ypgy86_nVX235NiFYtVDVM,4463
@@ -196,8 +196,8 @@ verifiers/v1/utils/scope.py,sha256=bzUEiWDOVdbj7dXOwGOlzsQ_-Xu0j9NR5TalQB-8TS8,8
196
196
  verifiers/v1/utils/score.py,sha256=493yJVMw8teCu9JxapxMFPFzI0hNUqdo0Y2nGW4kckk,6200
197
197
  verifiers/v1/utils/trace_store.py,sha256=RsCDonGR-bs-tvEstcppiJm3jFmAdIiG83fA5KtCbAw,2801
198
198
  verifiers/v1/utils/version.py,sha256=-obEo_-l9-D8FLef4hYxncOe-uJpxrM1g2Hig_37Sgs,1607
199
- verifiers-0.3.2.dev192.dist-info/METADATA,sha256=hTrgsWJUqM4CYmly0k9MiCmzEsXYqMHwOWxqo7Ox7xQ,4228
200
- verifiers-0.3.2.dev192.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
201
- verifiers-0.3.2.dev192.dist-info/entry_points.txt,sha256=iugElcdWPKbQM7uFF0lZ8iUpHsNr17-BwEAAjJWxV3U,259
202
- verifiers-0.3.2.dev192.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
203
- verifiers-0.3.2.dev192.dist-info/RECORD,,
199
+ verifiers-0.3.2.dev194.dist-info/METADATA,sha256=ERJYbaEeaYpLvrqcX7eE_lNbZKo9PJa9-nKAZZpavV8,4228
200
+ verifiers-0.3.2.dev194.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
201
+ verifiers-0.3.2.dev194.dist-info/entry_points.txt,sha256=iugElcdWPKbQM7uFF0lZ8iUpHsNr17-BwEAAjJWxV3U,259
202
+ verifiers-0.3.2.dev194.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
203
+ verifiers-0.3.2.dev194.dist-info/RECORD,,