verifiers 0.2.2.dev56__py3-none-any.whl → 0.2.2.dev57__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 +5 -2
- verifiers/v1/cli/init.py +7 -2
- verifiers/v1/env.py +5 -12
- verifiers/v1/mcp/launch.py +2 -2
- verifiers/v1/rollout.py +3 -3
- verifiers/v1/task.py +11 -37
- verifiers/v1/taskset.py +13 -17
- verifiers/v1/utils/compile.py +10 -9
- {verifiers-0.2.2.dev56.dist-info → verifiers-0.2.2.dev57.dist-info}/METADATA +1 -1
- {verifiers-0.2.2.dev56.dist-info → verifiers-0.2.2.dev57.dist-info}/RECORD +13 -13
- {verifiers-0.2.2.dev56.dist-info → verifiers-0.2.2.dev57.dist-info}/WHEEL +0 -0
- {verifiers-0.2.2.dev56.dist-info → verifiers-0.2.2.dev57.dist-info}/entry_points.txt +0 -0
- {verifiers-0.2.2.dev56.dist-info → verifiers-0.2.2.dev57.dist-info}/licenses/LICENSE +0 -0
verifiers/v1/agent.py
CHANGED
|
@@ -335,7 +335,7 @@ class Agent:
|
|
|
335
335
|
if self._server is None:
|
|
336
336
|
return None
|
|
337
337
|
if self._server.tunnel is not None or (
|
|
338
|
-
run_is_local and not shared_tools and not
|
|
338
|
+
run_is_local and not shared_tools and not task.toolsets(task.config)
|
|
339
339
|
):
|
|
340
340
|
return self._server
|
|
341
341
|
return None
|
|
@@ -517,7 +517,10 @@ class Agent:
|
|
|
517
517
|
)
|
|
518
518
|
run_is_local = runtime_is_local(runtime_config)
|
|
519
519
|
validate_pairing(
|
|
520
|
-
self.harness,
|
|
520
|
+
self.harness,
|
|
521
|
+
type(task),
|
|
522
|
+
runtime_config,
|
|
523
|
+
tools=[*task.toolsets(task.config), *shared_tools.values()],
|
|
521
524
|
)
|
|
522
525
|
# Timeout precedence: agent-level wins, else the task's, else no limit.
|
|
523
526
|
agent_timeout = (
|
verifiers/v1/cli/init.py
CHANGED
|
@@ -71,7 +71,12 @@ def _taskset_py(pkg: str, prefix: str, *, add_tool: bool) -> str:
|
|
|
71
71
|
if add_tool:
|
|
72
72
|
local_imports.append(f"from {pkg}.servers.tool import {prefix}Toolset")
|
|
73
73
|
task_config_fields += "\n tools: vf.ToolsetConfig = vf.ToolsetConfig()"
|
|
74
|
-
task_decls +=
|
|
74
|
+
task_decls += (
|
|
75
|
+
"\n\n @classmethod"
|
|
76
|
+
f"\n def toolsets(cls, config: {prefix}TaskConfig) -> list[vf.Toolset]:"
|
|
77
|
+
f"\n return [{prefix}Toolset(config.tools)]"
|
|
78
|
+
"\n"
|
|
79
|
+
)
|
|
75
80
|
if local_imports:
|
|
76
81
|
imports += "\n\n" + "\n".join(local_imports)
|
|
77
82
|
methods_block = ""
|
|
@@ -178,7 +183,7 @@ def _readme(dash: str, pkg: str, *, add_tool: bool, add_harness: bool) -> str:
|
|
|
178
183
|
]
|
|
179
184
|
if add_tool:
|
|
180
185
|
layout.append(
|
|
181
|
-
f"- `{pkg}/servers/tool.py` — a `vf.Toolset` tool server,
|
|
186
|
+
f"- `{pkg}/servers/tool.py` — a `vf.Toolset` tool server, constructed in `Task.toolsets`."
|
|
182
187
|
)
|
|
183
188
|
if add_harness:
|
|
184
189
|
layout.append(
|
verifiers/v1/env.py
CHANGED
|
@@ -31,7 +31,7 @@ from verifiers.v1.interception import (
|
|
|
31
31
|
from verifiers.v1.mcp import SharedToolServer, serve_shared
|
|
32
32
|
from verifiers.v1.retries import run_episode_with_retry
|
|
33
33
|
from verifiers.v1.runtimes import SubprocessConfig, runtime_is_local
|
|
34
|
-
from verifiers.v1.task import Task
|
|
34
|
+
from verifiers.v1.task import Task
|
|
35
35
|
from verifiers.v1.trace import Error, Trace
|
|
36
36
|
from verifiers.v1.utils.generic import concrete_type
|
|
37
37
|
from verifiers.v1.utils.memory import trim_memory_periodically
|
|
@@ -378,24 +378,17 @@ class Env(ABC, Generic[ConfigT]):
|
|
|
378
378
|
|
|
379
379
|
def _requires_tunnel(self, shared: dict[str, SharedToolServer]) -> bool:
|
|
380
380
|
"""`requires_tunnel` over the consumers known before any rollout: role
|
|
381
|
-
runtimes, live `shared` servers, and the task class's tool servers
|
|
382
|
-
|
|
381
|
+
runtimes, live `shared` servers, and the task class's tool servers
|
|
382
|
+
(their configs read off the declared `tools` fields, no task needed)."""
|
|
383
383
|
task_cls = type(self.taskset).task_type()
|
|
384
|
-
server_classes = [*task_cls.tools]
|
|
385
|
-
if server_classes and task_cls.server_config is not Task.server_config:
|
|
386
|
-
return True
|
|
387
|
-
sole = len({*task_cls.tools}) == 1
|
|
388
384
|
configs = [
|
|
389
|
-
|
|
390
|
-
task_cls.__name__, self.taskset.config.task, server_cls, sole=sole
|
|
391
|
-
)
|
|
392
|
-
for server_cls in server_classes
|
|
385
|
+
server.config for server in task_cls.toolsets(self.taskset.config.task)
|
|
393
386
|
]
|
|
394
387
|
return requires_tunnel(self._runs_local(), configs, shared.values())
|
|
395
388
|
|
|
396
389
|
@contextlib.asynccontextmanager
|
|
397
390
|
async def shared_tools(self):
|
|
398
|
-
servers = self.taskset.
|
|
391
|
+
servers = self.taskset.toolsets(self.taskset.config)
|
|
399
392
|
if not servers:
|
|
400
393
|
yield {}
|
|
401
394
|
return
|
verifiers/v1/mcp/launch.py
CHANGED
|
@@ -343,7 +343,7 @@ async def serve_shared(toolsets: list[Toolset], harness_is_local: bool = True):
|
|
|
343
343
|
name = toolset.server_name
|
|
344
344
|
if name in servers:
|
|
345
345
|
raise ToolsetError(
|
|
346
|
-
f"duplicate shared tool server name '{name}' in Taskset.
|
|
346
|
+
f"duplicate shared tool server name '{name}' in Taskset.toolsets — "
|
|
347
347
|
f"give one a distinct TOOL_PREFIX"
|
|
348
348
|
)
|
|
349
349
|
if type(toolset).setup_task is not ServerBase.setup_task:
|
|
@@ -351,7 +351,7 @@ async def serve_shared(toolsets: list[Toolset], harness_is_local: bool = True):
|
|
|
351
351
|
"shared server %r overrides `setup_task`, but `setup_task` is NEVER "
|
|
352
352
|
"called for a taskset-scoped server (it's built once, task-agnostic) — "
|
|
353
353
|
"its per-task logic will not run. Move task-agnostic work into `setup`, "
|
|
354
|
-
"or
|
|
354
|
+
"or construct it in `Task.toolsets` to run it per-rollout.",
|
|
355
355
|
name,
|
|
356
356
|
)
|
|
357
357
|
if cfg.url: # already running remotely; nothing launched, nothing to bridge
|
verifiers/v1/rollout.py
CHANGED
|
@@ -258,7 +258,7 @@ class RolloutRun:
|
|
|
258
258
|
):
|
|
259
259
|
await self.harness.setup(runtime)
|
|
260
260
|
async with boundary(ToolsetError, "building tool servers"):
|
|
261
|
-
|
|
261
|
+
toolsets = self.task.toolsets(self.task.config)
|
|
262
262
|
# `base_url` is the interception server's reachable URL for this rollout.
|
|
263
263
|
# The harness reaches the model at `{base_url}/v1`; tool servers reach this
|
|
264
264
|
# rollout's `/state` + `/task` at `base_url` — it's universally reachable
|
|
@@ -268,7 +268,7 @@ class RolloutRun:
|
|
|
268
268
|
self._interception,
|
|
269
269
|
runtime,
|
|
270
270
|
self._session,
|
|
271
|
-
|
|
271
|
+
toolsets,
|
|
272
272
|
self._shared_tools,
|
|
273
273
|
)
|
|
274
274
|
)
|
|
@@ -276,7 +276,7 @@ class RolloutRun:
|
|
|
276
276
|
self._secret = secret
|
|
277
277
|
self._urls = await self._stack.enter_async_context(
|
|
278
278
|
serve_tools(
|
|
279
|
-
|
|
279
|
+
toolsets,
|
|
280
280
|
runtime,
|
|
281
281
|
shared=self._shared_tools,
|
|
282
282
|
state_secret=secret,
|
verifiers/v1/task.py
CHANGED
|
@@ -16,7 +16,6 @@ from collections.abc import Mapping
|
|
|
16
16
|
from typing import TYPE_CHECKING, ClassVar, Generic, Self
|
|
17
17
|
|
|
18
18
|
from pydantic import BaseModel, ConfigDict, Field
|
|
19
|
-
from pydantic_config import BaseConfig
|
|
20
19
|
from typing_extensions import TypeVar
|
|
21
20
|
|
|
22
21
|
from verifiers.v1.artifacts import Artifact
|
|
@@ -122,37 +121,10 @@ DataT = TypeVar("DataT", bound=TaskData)
|
|
|
122
121
|
ConfigT = TypeVar("ConfigT", bound=TaskConfig, default=TaskConfig)
|
|
123
122
|
|
|
124
123
|
|
|
125
|
-
def resolve_server_config(
|
|
126
|
-
owner: str, config: BaseConfig, server_cls: type, *, sole: bool = True
|
|
127
|
-
) -> BaseConfig:
|
|
128
|
-
"""The config a declared server class is built with, resolved off `config`'s
|
|
129
|
-
fields: exact type match, else — only for a `sole` declared server — the unique
|
|
130
|
-
isinstance match, else a default-constructed one. Two matching fields raise; the
|
|
131
|
-
`server_config` methods are the explicit-pairing override. The isinstance
|
|
132
|
-
fallback is `sole`-gated because with several servers a subclass-typed field
|
|
133
|
-
could silently pair with the wrong one."""
|
|
134
|
-
cfg_cls = server_cls._config_cls()
|
|
135
|
-
values = {name: getattr(config, name) for name in type(config).model_fields}
|
|
136
|
-
matched = [name for name, v in values.items() if type(v) is cfg_cls]
|
|
137
|
-
if not matched and sole:
|
|
138
|
-
matched = [name for name, v in values.items() if isinstance(v, cfg_cls)]
|
|
139
|
-
if len(matched) > 1:
|
|
140
|
-
raise TaskError(
|
|
141
|
-
f"{owner}: ambiguous config for {server_cls.__name__} — config fields "
|
|
142
|
-
f"{matched} all match {cfg_cls.__name__}; override `server_config` to pair "
|
|
143
|
-
f"them explicitly"
|
|
144
|
-
)
|
|
145
|
-
if matched:
|
|
146
|
-
return values[matched[0]]
|
|
147
|
-
return cfg_cls()
|
|
148
|
-
|
|
149
|
-
|
|
150
124
|
class Task(Generic[DataT, StateT, ConfigT]):
|
|
151
125
|
NEEDS_CONTAINER: ClassVar[bool] = False
|
|
152
126
|
"""Whether the task needs a containerized environment (isolated filesystem, ...)."""
|
|
153
127
|
|
|
154
|
-
tools: ClassVar[tuple[type[Toolset], ...]] = ()
|
|
155
|
-
|
|
156
128
|
def __init__(self, data: DataT, config: ConfigT | None = None) -> None:
|
|
157
129
|
self.data = data
|
|
158
130
|
self.config = config if config is not None else self.config_type()()
|
|
@@ -249,16 +221,18 @@ class Task(Generic[DataT, StateT, ConfigT]):
|
|
|
249
221
|
|
|
250
222
|
return [load_judge(config) for config in self.config.judges]
|
|
251
223
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
224
|
+
@classmethod
|
|
225
|
+
def toolsets(cls, config: ConfigT) -> list[Toolset]:
|
|
226
|
+
"""Tool servers launched per rollout, each constructed with its config off
|
|
227
|
+
`config` — override and wire explicitly:
|
|
228
|
+
|
|
229
|
+
@classmethod
|
|
230
|
+
def toolsets(cls, config: MyTaskConfig) -> list[vf.Toolset]:
|
|
231
|
+
return [SearchToolset(config.tools)]
|
|
259
232
|
|
|
260
|
-
|
|
261
|
-
|
|
233
|
+
A classmethod so consumers can size placement (tunnels) off the class
|
|
234
|
+
before any task instance exists."""
|
|
235
|
+
return []
|
|
262
236
|
|
|
263
237
|
|
|
264
238
|
TaskT = TypeVar("TaskT", bound=Task)
|
verifiers/v1/taskset.py
CHANGED
|
@@ -19,13 +19,12 @@ import itertools
|
|
|
19
19
|
import random
|
|
20
20
|
from abc import ABC, abstractmethod
|
|
21
21
|
from collections.abc import Callable, Iterable, Iterator
|
|
22
|
-
from typing import TYPE_CHECKING,
|
|
22
|
+
from typing import TYPE_CHECKING, Generic, Self
|
|
23
23
|
|
|
24
|
-
from pydantic_config import BaseConfig
|
|
25
24
|
from typing_extensions import TypeVar
|
|
26
25
|
|
|
27
26
|
from verifiers.v1.configs.taskset import TasksetConfig
|
|
28
|
-
from verifiers.v1.task import Task, TaskT
|
|
27
|
+
from verifiers.v1.task import Task, TaskT
|
|
29
28
|
from verifiers.v1.utils.generic import concrete_type
|
|
30
29
|
from verifiers.v1.utils.sampling import SEED
|
|
31
30
|
|
|
@@ -40,10 +39,6 @@ class Taskset(ABC, Generic[TaskT, TasksetConfigT]):
|
|
|
40
39
|
"""Whether the taskset is infinite (yields tasks forever). Class-declared;
|
|
41
40
|
a `head(n)` view shadows it per instance (bounded by construction)."""
|
|
42
41
|
|
|
43
|
-
tools: ClassVar[tuple[type[Toolset], ...]] = ()
|
|
44
|
-
"""Tool servers shared by all tasks in the taskset. The environment will
|
|
45
|
-
spawn a single, global instance, reused across tasks."""
|
|
46
|
-
|
|
47
42
|
def __init__(self, config: TasksetConfigT) -> None:
|
|
48
43
|
self.config = config
|
|
49
44
|
override = config.system_prompt
|
|
@@ -102,13 +97,14 @@ class Taskset(ABC, Generic[TaskT, TasksetConfigT]):
|
|
|
102
97
|
def task_type(cls) -> type[Task]:
|
|
103
98
|
return concrete_type(cls, Task, origin=Taskset) or Task
|
|
104
99
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
100
|
+
@classmethod
|
|
101
|
+
def toolsets(cls, config: TasksetConfigT) -> list[Toolset]:
|
|
102
|
+
"""Tool servers shared by all tasks in the taskset (one global instance
|
|
103
|
+
per server, reused across an environment worker's rollouts), each
|
|
104
|
+
constructed with its config off `config` — override and wire explicitly:
|
|
105
|
+
|
|
106
|
+
@classmethod
|
|
107
|
+
def toolsets(cls, config: MyConfig) -> list[vf.Toolset]:
|
|
108
|
+
return [SearchToolset(config.tools)]
|
|
109
|
+
"""
|
|
110
|
+
return []
|
verifiers/v1/utils/compile.py
CHANGED
|
@@ -77,18 +77,19 @@ def validate_pairing(
|
|
|
77
77
|
task_cls: type[Task],
|
|
78
78
|
runtime_config: RuntimeConfig,
|
|
79
79
|
*,
|
|
80
|
-
|
|
80
|
+
tools: Collection = (),
|
|
81
81
|
) -> None:
|
|
82
82
|
"""Reject an impossible harness/task/runtime combination before any work happens.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if not harness.SUPPORTS_MCP and
|
|
83
|
+
A failure holds for every row the task class can carry. For `tools` only
|
|
84
|
+
emptiness matters — task-declared and shared servers alike mean MCP is in play.
|
|
85
|
+
(Hosting a user is interaction-scoped, not task-scoped — `Agent.interaction`
|
|
86
|
+
checks the harness can resume an exchange.)"""
|
|
87
|
+
if not harness.SUPPORTS_MCP and tools:
|
|
88
88
|
raise ValueError(
|
|
89
|
-
f"Harness {harness.config.id!r} does not support MCP tools, but "
|
|
90
|
-
f"{task_cls.__name__}
|
|
91
|
-
f"supports MCP (e.g. --env.agent.harness.id bash),
|
|
89
|
+
f"Harness {harness.config.id!r} does not support MCP tools, but the run "
|
|
90
|
+
f"serves some ({task_cls.__name__}'s or the taskset's shared servers). Run "
|
|
91
|
+
f"it with a harness that supports MCP (e.g. --env.agent.harness.id bash), "
|
|
92
|
+
f"or use tasks without tools."
|
|
92
93
|
)
|
|
93
94
|
if not harness.SUPPORTS_SKILLS and harness.config.skills:
|
|
94
95
|
raise ValueError(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: verifiers
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.dev57
|
|
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
|
|
@@ -168,10 +168,10 @@ verifiers/utils/tool_utils.py,sha256=gInWZODWQUZN4TyEMuuITyOUm9qlHJxtcvr1zZl_zJs
|
|
|
168
168
|
verifiers/utils/usage_utils.py,sha256=Mw6WC78r6EsLyRFdP9ICveqptkjizbSkAC86ZH0geVU,3918
|
|
169
169
|
verifiers/utils/version_utils.py,sha256=39gV8-mNF9GspAgKloLo8oy7_MVluMrwGPrntQv2hx4,2656
|
|
170
170
|
verifiers/v1/__init__.py,sha256=Im5qTZy9mH6PRTUi-1V6W7EWKZzJyTWLGKMYALbWz_w,7467
|
|
171
|
-
verifiers/v1/agent.py,sha256=
|
|
171
|
+
verifiers/v1/agent.py,sha256=t5Z_iI6Zyt0ieMDI7pfHUVYIKViuSXF-CI_rIApx3f4,32071
|
|
172
172
|
verifiers/v1/artifacts.py,sha256=5eKOjDSUWwj7GrhxILMHdz2ngEONWMdcTGlBcuGgrLU,5834
|
|
173
173
|
verifiers/v1/decorators.py,sha256=9CcCwgZlRjVGPqT5G1CFJUHP4OIMuBGkUJZkcI6dnbk,3865
|
|
174
|
-
verifiers/v1/env.py,sha256=
|
|
174
|
+
verifiers/v1/env.py,sha256=wJp9i49_LKVzMFXkwtt_SaRMUJ84i5r1t3QfNvnt4Ks,18178
|
|
175
175
|
verifiers/v1/episode.py,sha256=YtuRTV_PpwDglXFeN6UNg8IswpP1HseFLCYtascGMNI,3218
|
|
176
176
|
verifiers/v1/errors.py,sha256=slZnrtqMo_BgXQV46wJJhV6vvAAnVsuCbVGp2vBVWfs,6888
|
|
177
177
|
verifiers/v1/graph.py,sha256=aBAzh1Ibp3klKNYjvzNyJSbjV8Oi5TJ791dN7o6ex1E,29070
|
|
@@ -181,12 +181,12 @@ verifiers/v1/legacy.py,sha256=ISk3Bix9Hy5EjZtyV9QO0LNyDNDklBHVjFokOrw_3U8,22628
|
|
|
181
181
|
verifiers/v1/loaders.py,sha256=NSIBdNU3JVeyddL-dM4dJt6khCHyjCgzJuFtLrgiwD0,9989
|
|
182
182
|
verifiers/v1/push.py,sha256=MWZmvyj0iyzNIO0xRhlkCXtFF1plq6EJi8rWlvrFtvI,11363
|
|
183
183
|
verifiers/v1/retries.py,sha256=quUGVruUkZx-9WQcFiocMfL_M056voU8gwDqsuLR3f4,5412
|
|
184
|
-
verifiers/v1/rollout.py,sha256=
|
|
184
|
+
verifiers/v1/rollout.py,sha256=ehPoN6EnrIg_lvF1-pdf9pS8j47K3z6jDHc66MixzX0,20470
|
|
185
185
|
verifiers/v1/scoring.py,sha256=-R5Cog14r_tJ6Q_oOfGr5VPAm2CCUhofYZB6B9lm4wM,5787
|
|
186
186
|
verifiers/v1/session.py,sha256=J6ZPuvsg6vMTJAs9dMUMtfdjCuvp6Hom877DVdKFKlY,6912
|
|
187
187
|
verifiers/v1/state.py,sha256=pcpN2V6tX7rIO5XdtdUYay1j0ktEwrMtq7w1ApfsPdE,675
|
|
188
|
-
verifiers/v1/task.py,sha256=
|
|
189
|
-
verifiers/v1/taskset.py,sha256=
|
|
188
|
+
verifiers/v1/task.py,sha256=skqOc-j2AxA6Wz2ikDD03o3cu1cVvr1G6gRJZrpOgfY,9059
|
|
189
|
+
verifiers/v1/taskset.py,sha256=s9T7v3REU1EKVCu2zORMA3gWinRK6LJk4GUvoKhAmEQ,4337
|
|
190
190
|
verifiers/v1/trace.py,sha256=_bGHOrE6fRLGm0JYc0PrrrO3lyr-qqOF5Y1bHfViwR0,19347
|
|
191
191
|
verifiers/v1/types.py,sha256=1PxamJspmoTc3OlFZAwH6o_2i_Tg9ZNvHxttIHWIxq8,8948
|
|
192
192
|
verifiers/v1/acp/__init__.py,sha256=9dwH6fLopNndRmcpRSYC8ghzzMquaLfgh645QM-Dwic,2189
|
|
@@ -194,7 +194,7 @@ verifiers/v1/acp/_runner.py,sha256=FqEnHR0Q_YrCt_EuaJqiqTpd2_kFa41FqcEunwOhvTI,6
|
|
|
194
194
|
verifiers/v1/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
195
|
verifiers/v1/cli/debug.py,sha256=-jeEV_Q5tV8SOkWc1GdPZcXZWON_jU5gjeO4YoZm79o,11482
|
|
196
196
|
verifiers/v1/cli/gepa.py,sha256=hLIbS_4jBx0vvy4PXoePR5riFXcNvzQCMixZ-g2OR_U,4026
|
|
197
|
-
verifiers/v1/cli/init.py,sha256=
|
|
197
|
+
verifiers/v1/cli/init.py,sha256=Qj96Kwzfhaejhrc0yYqHNRl3ncoID028RGlHvS1C98Q,8508
|
|
198
198
|
verifiers/v1/cli/output.py,sha256=pMS5Z0EBgyAVShNCAk9jVURNeLOaTfeRWpt0J8hHjq8,5890
|
|
199
199
|
verifiers/v1/cli/replay.py,sha256=DAh9kB5PB-ppZLGhxdJwrCPch_Yky5HKhplwGFhKEz0,10164
|
|
200
200
|
verifiers/v1/cli/resolve.py,sha256=OsNw4C3r9xOVFa-mminJFcex_bAsJ6EQ8K7A_H8u2kQ,4370
|
|
@@ -294,7 +294,7 @@ verifiers/v1/judges/reference.txt,sha256=Ej35kGXiT2uJ0LcHIeez49rCS_9uHmCQKoVdn93
|
|
|
294
294
|
verifiers/v1/judges/rubric.py,sha256=PglrJhMQR6scFyfz20jVlLQEzeqXKV2P6r0K0K7jjBE,11916
|
|
295
295
|
verifiers/v1/judges/rubric.txt,sha256=3KA2ZeYYdcDweJhUGopxu9EFgARhu2aWft5S5cj8Bc8,323
|
|
296
296
|
verifiers/v1/mcp/__init__.py,sha256=pm8ZWBiL1q1tY4wHvJzM_QrZ9oR8aGm-bIRWiRJsgHI,408
|
|
297
|
-
verifiers/v1/mcp/launch.py,sha256=
|
|
297
|
+
verifiers/v1/mcp/launch.py,sha256=KtRr59FMQkp4_m8ImUw-pIrxMUbDXd1RvzLJXw_HQ3Q,18452
|
|
298
298
|
verifiers/v1/mcp/server.py,sha256=zS3-m-0IX3z8nVzUhQj391f8_OieE1nKr5S4Nj0dSSU,10987
|
|
299
299
|
verifiers/v1/mcp/toolset.py,sha256=tSPXgTNREZyaeCnoFVnDfXxFAj_pStZMPUIgyPrY_Dk,996
|
|
300
300
|
verifiers/v1/runtimes/__init__.py,sha256=TqNtJVahzQuLS4fgCVeT9xdOzTkp0hRAPOkl7eFVDUg,2011
|
|
@@ -322,7 +322,7 @@ verifiers/v1/tasksets/textarena/__init__.py,sha256=Os2OlBY_pSH0B1DP32RitumgSLpq2
|
|
|
322
322
|
verifiers/v1/tasksets/textarena/taskset.py,sha256=9fa_unlFiFZyuN4I02rW3x4qyRnFWXqwTUZTloQefu0,4433
|
|
323
323
|
verifiers/v1/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
324
324
|
verifiers/v1/utils/aio.py,sha256=0yNFOqB2oO6Qktc6NI_ZSAGuo1aHsIK_wuT1BtmoZ3I,1532
|
|
325
|
-
verifiers/v1/utils/compile.py,sha256=
|
|
325
|
+
verifiers/v1/utils/compile.py,sha256=Oh4hDVRNsql_BSOMh4kDEuze9_ZF17Q7uzBhhU70UZA,5663
|
|
326
326
|
verifiers/v1/utils/format.py,sha256=NfQo9M5KMzWCZpQaet5YtsJx56vCKAZPfbjZZJLJhhM,2187
|
|
327
327
|
verifiers/v1/utils/generic.py,sha256=2VIN9RapMO9pVkFHB1UKUHck1vlTJ1pjfad2NzxuuXA,2055
|
|
328
328
|
verifiers/v1/utils/git.py,sha256=MTRinOvG4EddfjdahHkFZUihHmhJ37n5ROtgjzjE1NA,8366
|
|
@@ -333,8 +333,8 @@ verifiers/v1/utils/logging.py,sha256=OcMHA6NsYux3oIzjPuI95rDWmFBHNcHDjZeNIhXTX-Y
|
|
|
333
333
|
verifiers/v1/utils/memory.py,sha256=ZkIvGk6uITAH5sKon65LifKPbvZr8mJ__PVc23FZpOQ,1835
|
|
334
334
|
verifiers/v1/utils/sampling.py,sha256=52TJ5-Hmpvp4YSgKNR-LmAPVwm4RDcH-o2-BnbVTmYQ,965
|
|
335
335
|
verifiers/v1/utils/version.py,sha256=-obEo_-l9-D8FLef4hYxncOe-uJpxrM1g2Hig_37Sgs,1607
|
|
336
|
-
verifiers-0.2.2.
|
|
337
|
-
verifiers-0.2.2.
|
|
338
|
-
verifiers-0.2.2.
|
|
339
|
-
verifiers-0.2.2.
|
|
340
|
-
verifiers-0.2.2.
|
|
336
|
+
verifiers-0.2.2.dev57.dist-info/METADATA,sha256=4FbkVpDnb3GnGhrNC-YaPVwF8qfnOQgOMoHLmWkC57E,4545
|
|
337
|
+
verifiers-0.2.2.dev57.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
338
|
+
verifiers-0.2.2.dev57.dist-info/entry_points.txt,sha256=dF82JUYEFslR1AOW8LZfuBWeZeQoyX4wCRrduklg8-I,551
|
|
339
|
+
verifiers-0.2.2.dev57.dist-info/licenses/LICENSE,sha256=v0RrUsdV3IDoZhrRce297IXS3xMHNJ-_LdLpFAUWb9k,1072
|
|
340
|
+
verifiers-0.2.2.dev57.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|