evolve-sdk 0.0.52.dev713__tar.gz → 0.0.52.dev714__tar.gz
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.
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/PKG-INFO +1 -1
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/__init__.py +3 -1
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/hosted.py +46 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve_sdk.egg-info/PKG-INFO +1 -1
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/pyproject.toml +1 -1
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/LICENSE +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/MANIFEST.in +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/README.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/bridge/__init__.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/bridge/dist/bridge.bundle.cjs +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/_http.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/agent.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/bridge.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/browser_credentials.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/browser_profiles.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/config.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/integrations.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/managed_secrets.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/pipeline/__init__.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/pipeline/pipeline.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/pipeline/types.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/__init__.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/agent_md/judge.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/agent_md/reduce.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/agent_md/verify.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/user/judge.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/user/retry_feedback.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/prompts/user/verify.md +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/results.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/retry.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/schema.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/sessions_client.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/storage_client.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/swarm/__init__.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/swarm/results.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/swarm/swarm.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/swarm/types.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve/utils.py +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve_sdk.egg-info/SOURCES.txt +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve_sdk.egg-info/dependency_links.txt +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve_sdk.egg-info/requires.txt +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve_sdk.egg-info/top_level.txt +0 -0
- {evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/setup.cfg +0 -0
|
@@ -60,6 +60,7 @@ from .hosted import (
|
|
|
60
60
|
DatasetSelector,
|
|
61
61
|
DatasetVersion,
|
|
62
62
|
DatasetVersionGate,
|
|
63
|
+
DatasetVersionGateFailedTask,
|
|
63
64
|
DatasetsClient,
|
|
64
65
|
EvalSandboxProvider,
|
|
65
66
|
EvolveAPIError,
|
|
@@ -362,7 +363,7 @@ async def list_checkpoints(
|
|
|
362
363
|
await store.close()
|
|
363
364
|
|
|
364
365
|
|
|
365
|
-
__version__ = '0.0.52.
|
|
366
|
+
__version__ = '0.0.52.dev714'
|
|
366
367
|
|
|
367
368
|
__all__ = [
|
|
368
369
|
# Main classes
|
|
@@ -444,6 +445,7 @@ __all__ = [
|
|
|
444
445
|
'ActiveDataset',
|
|
445
446
|
'DatasetVersion',
|
|
446
447
|
'DatasetVersionGate',
|
|
448
|
+
'DatasetVersionGateFailedTask',
|
|
447
449
|
'DatasetRef',
|
|
448
450
|
'DatasetSelector',
|
|
449
451
|
'DatasetImport',
|
|
@@ -301,6 +301,20 @@ AttemptPhase = Literal[
|
|
|
301
301
|
]
|
|
302
302
|
|
|
303
303
|
|
|
304
|
+
@dataclass
|
|
305
|
+
class DatasetVersionGateFailedTask:
|
|
306
|
+
"""One task the activation gate found ineligible.
|
|
307
|
+
|
|
308
|
+
``outcome`` is the gate's verdict word (``FAIL``, or ``ERROR`` when the
|
|
309
|
+
run produced no usable score; ``None`` when the server omits it) and
|
|
310
|
+
``reasons`` are the gate's own sentences for this task — empty when the
|
|
311
|
+
server names none.
|
|
312
|
+
"""
|
|
313
|
+
task_name: str
|
|
314
|
+
outcome: Optional[str] = None
|
|
315
|
+
reasons: List[str] = field(default_factory=list)
|
|
316
|
+
|
|
317
|
+
|
|
304
318
|
@dataclass
|
|
305
319
|
class DatasetVersionGate:
|
|
306
320
|
"""The activation gate's progress for one dataset version.
|
|
@@ -309,11 +323,16 @@ class DatasetVersionGate:
|
|
|
309
323
|
``PASSED``/``FAILED`` as wire values). ``code`` and ``message`` are set on
|
|
310
324
|
failure — one machine word and one human sentence — and are ``None`` while
|
|
311
325
|
the gate is healthy. ``attempts`` counts gate runs so far.
|
|
326
|
+
``failed_tasks`` names each ineligible task with the gate's own reasons
|
|
327
|
+
(the server sends the first 25); it is empty while the gate is healthy and
|
|
328
|
+
empty on servers that predate the field — absence is "nothing to report",
|
|
329
|
+
never a crash.
|
|
312
330
|
"""
|
|
313
331
|
status: str
|
|
314
332
|
attempts: int
|
|
315
333
|
code: Optional[str] = None
|
|
316
334
|
message: Optional[str] = None
|
|
335
|
+
failed_tasks: List[DatasetVersionGateFailedTask] = field(default_factory=list)
|
|
317
336
|
|
|
318
337
|
|
|
319
338
|
@dataclass
|
|
@@ -1197,14 +1216,41 @@ def _map_version_gate(data: Any) -> Optional[DatasetVersionGate]:
|
|
|
1197
1216
|
data.get('message') if isinstance(data.get('message'), str) else failure.get('message')
|
|
1198
1217
|
)
|
|
1199
1218
|
attempts = data.get('attempts')
|
|
1219
|
+
raw_failed = data.get('failed_tasks')
|
|
1220
|
+
if not isinstance(raw_failed, list):
|
|
1221
|
+
raw_failed = failure.get('failed_tasks')
|
|
1200
1222
|
return DatasetVersionGate(
|
|
1201
1223
|
status=data['status'],
|
|
1202
1224
|
attempts=attempts if isinstance(attempts, int) and not isinstance(attempts, bool) else 0,
|
|
1203
1225
|
code=code if isinstance(code, str) else None,
|
|
1204
1226
|
message=message if isinstance(message, str) else None,
|
|
1227
|
+
failed_tasks=_map_gate_failed_tasks(raw_failed),
|
|
1205
1228
|
)
|
|
1206
1229
|
|
|
1207
1230
|
|
|
1231
|
+
def _map_gate_failed_tasks(data: Any) -> List[DatasetVersionGateFailedTask]:
|
|
1232
|
+
"""The per-task cause list behind a FAILED gate, with the gate's tolerance.
|
|
1233
|
+
|
|
1234
|
+
Absent or unreadable input is an empty list, an entry without a task name
|
|
1235
|
+
is dropped, and non-string reasons are filtered — an older or misbehaving
|
|
1236
|
+
server must never crash the client here.
|
|
1237
|
+
"""
|
|
1238
|
+
if not isinstance(data, list):
|
|
1239
|
+
return []
|
|
1240
|
+
tasks: List[DatasetVersionGateFailedTask] = []
|
|
1241
|
+
for item in data:
|
|
1242
|
+
if not isinstance(item, dict) or not isinstance(item.get('task_name'), str):
|
|
1243
|
+
continue
|
|
1244
|
+
outcome = item.get('outcome')
|
|
1245
|
+
reasons = item.get('reasons')
|
|
1246
|
+
tasks.append(DatasetVersionGateFailedTask(
|
|
1247
|
+
task_name=item['task_name'],
|
|
1248
|
+
outcome=outcome if isinstance(outcome, str) else None,
|
|
1249
|
+
reasons=[r for r in reasons if isinstance(r, str)] if isinstance(reasons, list) else [],
|
|
1250
|
+
))
|
|
1251
|
+
return tasks
|
|
1252
|
+
|
|
1253
|
+
|
|
1208
1254
|
def _map_dataset_version(data: Dict[str, Any]) -> DatasetVersion:
|
|
1209
1255
|
return DatasetVersion(
|
|
1210
1256
|
version=data['version'],
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolve_sdk-0.0.52.dev713 → evolve_sdk-0.0.52.dev714}/evolve_sdk.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|