@camstack/types 1.2.316 → 1.2.318

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.
@@ -1175,17 +1175,6 @@ export declare const pipelineOrchestratorCapability: {
1175
1175
  }, z.core.$strip>, z.ZodObject<{
1176
1176
  success: z.ZodLiteral<true>;
1177
1177
  }, z.core.$strip>, "mutation">;
1178
- /**
1179
- * Set a node's detection WEIGHT (relative share for the quota balancer).
1180
- * `null` clears it (back to the implicit weight 1). Unpinned cameras
1181
- * distribute proportionally to weight; `maxCameras` still clamps on top.
1182
- */
1183
- readonly setAgentDetectWeight: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1184
- agentNodeId: z.ZodString;
1185
- detectWeight: z.ZodNullable<z.ZodNumber>;
1186
- }, z.core.$strip>, z.ZodObject<{
1187
- success: z.ZodLiteral<true>;
1188
- }, z.core.$strip>, "mutation">;
1189
1178
  /**
1190
1179
  * Set one node's placement CAPABILITIES — the per-node record that
1191
1180
  * replaced the four flat orchestrator lists (`enabledNodes`,
@@ -1336,11 +1325,566 @@ export declare const pipelineOrchestratorCapability: {
1336
1325
  effectiveModelId: z.ZodNullable<z.ZodString>;
1337
1326
  clearedCameraOverrides: z.ZodNumber;
1338
1327
  }, z.core.$strip>, "mutation">;
1328
+ /**
1329
+ * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
1330
+ * for the whole cluster from each node's static hardware class, the
1331
+ * measured latency table and the detection demand, and lists every write
1332
+ * the apply would make: the node model pins set, the enrichment pins and
1333
+ * model-bound thresholds removed (node level and per camera), and the
1334
+ * per-camera detector thresholds cleared. Writes nothing. Step
1335
+ * enablement, device enablement, pins, recording, notifications, zones and
1336
+ * rules are never part of it. `planHash` names exactly this diff.
1337
+ */
1338
+ readonly planBestSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1339
+ headroom: z.ZodDefault<z.ZodNumber>;
1340
+ shares: z.ZodOptional<z.ZodObject<{
1341
+ nodes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1342
+ devices: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>>;
1343
+ }, z.core.$strip>>;
1344
+ }, z.core.$strip>, z.ZodObject<{
1345
+ planHash: z.ZodString;
1346
+ family: z.ZodLiteral<"yolov9">;
1347
+ headroom: z.ZodNumber;
1348
+ whatIf: z.ZodBoolean;
1349
+ generatedAt: z.ZodNumber;
1350
+ nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1351
+ nodeId: z.ZodString;
1352
+ reachable: z.ZodBoolean;
1353
+ hardwareClass: z.ZodNullable<z.ZodEnum<{
1354
+ unknown: "unknown";
1355
+ "intel-core-ultra": "intel-core-ultra";
1356
+ "intel-n-series": "intel-n-series";
1357
+ "apple-m-base": "apple-m-base";
1358
+ "apple-m-pro": "apple-m-pro";
1359
+ }>>;
1360
+ cpuModel: z.ZodNullable<z.ZodString>;
1361
+ skipped: z.ZodBoolean;
1362
+ acceleratorModelId: z.ZodNullable<z.ZodString>;
1363
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1364
+ deviceKey: z.ZodString;
1365
+ accelerator: z.ZodNullable<z.ZodEnum<{
1366
+ "apple-ane": "apple-ane";
1367
+ "intel-npu": "intel-npu";
1368
+ "intel-igpu": "intel-igpu";
1369
+ "x86-cpu": "x86-cpu";
1370
+ "arm-cpu": "arm-cpu";
1371
+ coral: "coral";
1372
+ }>>;
1373
+ enabled: z.ZodBoolean;
1374
+ available: z.ZodBoolean;
1375
+ demand: z.ZodNullable<z.ZodObject<{
1376
+ nodeId: z.ZodString;
1377
+ deviceKey: z.ZodString;
1378
+ demandFps: z.ZodNumber;
1379
+ maxCameraFps: z.ZodNumber;
1380
+ alwaysOnCameras: z.ZodNumber;
1381
+ onMotionSessions: z.ZodNumber;
1382
+ onMotionSource: z.ZodEnum<{
1383
+ none: "none";
1384
+ "observed-24h": "observed-24h";
1385
+ estimate: "estimate";
1386
+ }>;
1387
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1388
+ placement: z.ZodEnum<{
1389
+ "least-loaded": "least-loaded";
1390
+ share: "share";
1391
+ }>;
1392
+ }, z.core.$strip>>;
1393
+ chosen: z.ZodNullable<z.ZodObject<{
1394
+ modelId: z.ZodString;
1395
+ p50Ms: z.ZodNumber;
1396
+ fps: z.ZodNumber;
1397
+ measured: z.ZodBoolean;
1398
+ utilisation: z.ZodNumber;
1399
+ personRecall: z.ZodNumber;
1400
+ }, z.core.$strip>>;
1401
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1402
+ kind: z.ZodLiteral<"fits">;
1403
+ utilisation: z.ZodNumber;
1404
+ }, z.core.$strip>, z.ZodObject<{
1405
+ kind: z.ZodLiteral<"tie-faster">;
1406
+ over: z.ZodString;
1407
+ recallDelta: z.ZodNumber;
1408
+ }, z.core.$strip>, z.ZodObject<{
1409
+ kind: z.ZodLiteral<"stepped-down">;
1410
+ from: z.ZodString;
1411
+ to: z.ZodString;
1412
+ limitedBy: z.ZodString;
1413
+ }, z.core.$strip>, z.ZodObject<{
1414
+ kind: z.ZodLiteral<"no-fit-lightest">;
1415
+ utilisation: z.ZodNumber;
1416
+ }, z.core.$strip>, z.ZodObject<{
1417
+ kind: z.ZodLiteral<"derived-latency">;
1418
+ modelId: z.ZodString;
1419
+ }, z.core.$strip>, z.ZodObject<{
1420
+ kind: z.ZodLiteral<"estimated-load">;
1421
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1422
+ }, z.core.$strip>, z.ZodObject<{
1423
+ kind: z.ZodLiteral<"cpu-device">;
1424
+ }, z.core.$strip>, z.ZodObject<{
1425
+ kind: z.ZodLiteral<"coral-untouched">;
1426
+ }, z.core.$strip>, z.ZodObject<{
1427
+ kind: z.ZodLiteral<"device-disabled">;
1428
+ }, z.core.$strip>, z.ZodObject<{
1429
+ kind: z.ZodLiteral<"device-unavailable">;
1430
+ }, z.core.$strip>, z.ZodObject<{
1431
+ kind: z.ZodLiteral<"node-offline">;
1432
+ }, z.core.$strip>, z.ZodObject<{
1433
+ kind: z.ZodLiteral<"no-hardware-facts">;
1434
+ }, z.core.$strip>, z.ZodObject<{
1435
+ kind: z.ZodLiteral<"no-measured-data">;
1436
+ hardwareClass: z.ZodEnum<{
1437
+ unknown: "unknown";
1438
+ "intel-core-ultra": "intel-core-ultra";
1439
+ "intel-n-series": "intel-n-series";
1440
+ "apple-m-base": "apple-m-base";
1441
+ "apple-m-pro": "apple-m-pro";
1442
+ }>;
1443
+ }, z.core.$strip>, z.ZodObject<{
1444
+ kind: z.ZodLiteral<"no-family-build">;
1445
+ format: z.ZodEnum<{
1446
+ onnx: "onnx";
1447
+ coreml: "coreml";
1448
+ openvino: "openvino";
1449
+ tflite: "tflite";
1450
+ pt: "pt";
1451
+ gguf: "gguf";
1452
+ }>;
1453
+ }, z.core.$strip>], "kind">>>;
1454
+ }, z.core.$strip>>>;
1455
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1456
+ kind: z.ZodLiteral<"fits">;
1457
+ utilisation: z.ZodNumber;
1458
+ }, z.core.$strip>, z.ZodObject<{
1459
+ kind: z.ZodLiteral<"tie-faster">;
1460
+ over: z.ZodString;
1461
+ recallDelta: z.ZodNumber;
1462
+ }, z.core.$strip>, z.ZodObject<{
1463
+ kind: z.ZodLiteral<"stepped-down">;
1464
+ from: z.ZodString;
1465
+ to: z.ZodString;
1466
+ limitedBy: z.ZodString;
1467
+ }, z.core.$strip>, z.ZodObject<{
1468
+ kind: z.ZodLiteral<"no-fit-lightest">;
1469
+ utilisation: z.ZodNumber;
1470
+ }, z.core.$strip>, z.ZodObject<{
1471
+ kind: z.ZodLiteral<"derived-latency">;
1472
+ modelId: z.ZodString;
1473
+ }, z.core.$strip>, z.ZodObject<{
1474
+ kind: z.ZodLiteral<"estimated-load">;
1475
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1476
+ }, z.core.$strip>, z.ZodObject<{
1477
+ kind: z.ZodLiteral<"cpu-device">;
1478
+ }, z.core.$strip>, z.ZodObject<{
1479
+ kind: z.ZodLiteral<"coral-untouched">;
1480
+ }, z.core.$strip>, z.ZodObject<{
1481
+ kind: z.ZodLiteral<"device-disabled">;
1482
+ }, z.core.$strip>, z.ZodObject<{
1483
+ kind: z.ZodLiteral<"device-unavailable">;
1484
+ }, z.core.$strip>, z.ZodObject<{
1485
+ kind: z.ZodLiteral<"node-offline">;
1486
+ }, z.core.$strip>, z.ZodObject<{
1487
+ kind: z.ZodLiteral<"no-hardware-facts">;
1488
+ }, z.core.$strip>, z.ZodObject<{
1489
+ kind: z.ZodLiteral<"no-measured-data">;
1490
+ hardwareClass: z.ZodEnum<{
1491
+ unknown: "unknown";
1492
+ "intel-core-ultra": "intel-core-ultra";
1493
+ "intel-n-series": "intel-n-series";
1494
+ "apple-m-base": "apple-m-base";
1495
+ "apple-m-pro": "apple-m-pro";
1496
+ }>;
1497
+ }, z.core.$strip>, z.ZodObject<{
1498
+ kind: z.ZodLiteral<"no-family-build">;
1499
+ format: z.ZodEnum<{
1500
+ onnx: "onnx";
1501
+ coreml: "coreml";
1502
+ openvino: "openvino";
1503
+ tflite: "tflite";
1504
+ pt: "pt";
1505
+ gguf: "gguf";
1506
+ }>;
1507
+ }, z.core.$strip>], "kind">>>;
1508
+ }, z.core.$strip>>>;
1509
+ nodeChanges: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1510
+ nodeId: z.ZodString;
1511
+ deviceKey: z.ZodString;
1512
+ madeExplicit: z.ZodBoolean;
1513
+ modelPins: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1514
+ stepId: z.ZodString;
1515
+ before: z.ZodNullable<z.ZodString>;
1516
+ after: z.ZodNullable<z.ZodString>;
1517
+ }, z.core.$strip>>>;
1518
+ thresholds: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1519
+ stepId: z.ZodString;
1520
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1521
+ }, z.core.$strip>>>;
1522
+ }, z.core.$strip>>>;
1523
+ cameraClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1524
+ deviceId: z.ZodNumber;
1525
+ source: z.ZodEnum<{
1526
+ "step-override": "step-override";
1527
+ wholesale: "wholesale";
1528
+ }>;
1529
+ nodeId: z.ZodString;
1530
+ deviceKey: z.ZodNullable<z.ZodString>;
1531
+ stepId: z.ZodString;
1532
+ modelIdBefore: z.ZodNullable<z.ZodString>;
1533
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1534
+ }, z.core.$strip>>>;
1535
+ detectorStoreClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1536
+ deviceId: z.ZodNumber;
1537
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1538
+ }, z.core.$strip>>>;
1539
+ warnings: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1540
+ kind: z.ZodLiteral<"detector-store-cluster-wide">;
1541
+ skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1542
+ }, z.core.$strip>, z.ZodObject<{
1543
+ kind: z.ZodLiteral<"detector-store-unreadable">;
1544
+ error: z.ZodString;
1545
+ }, z.core.$strip>, z.ZodObject<{
1546
+ kind: z.ZodLiteral<"coral-enabled">;
1547
+ nodeId: z.ZodString;
1548
+ deviceKey: z.ZodString;
1549
+ }, z.core.$strip>], "kind">>>;
1550
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1551
+ /**
1552
+ * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
1553
+ * the plan and refuses (`stale`, with the fresh plan) when its hash is not
1554
+ * `planHash`, so what is written is exactly the confirmed diff. Offline
1555
+ * nodes are skipped; there is no undo.
1556
+ */
1557
+ readonly applyBestSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1558
+ planHash: z.ZodString;
1559
+ headroom: z.ZodDefault<z.ZodNumber>;
1560
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
1561
+ kind: z.ZodLiteral<"applied">;
1562
+ planHash: z.ZodString;
1563
+ phases: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1564
+ phase: z.ZodEnum<{
1565
+ download: "download";
1566
+ "camera-overrides": "camera-overrides";
1567
+ "detector-thresholds": "detector-thresholds";
1568
+ "node-models": "node-models";
1569
+ redispatch: "redispatch";
1570
+ }>;
1571
+ ok: z.ZodBoolean;
1572
+ detail: z.ZodString;
1573
+ }, z.core.$strip>>>;
1574
+ }, z.core.$strip>, z.ZodObject<{
1575
+ kind: z.ZodLiteral<"aborted">;
1576
+ phases: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1577
+ phase: z.ZodEnum<{
1578
+ download: "download";
1579
+ "camera-overrides": "camera-overrides";
1580
+ "detector-thresholds": "detector-thresholds";
1581
+ "node-models": "node-models";
1582
+ redispatch: "redispatch";
1583
+ }>;
1584
+ ok: z.ZodBoolean;
1585
+ detail: z.ZodString;
1586
+ }, z.core.$strip>>>;
1587
+ }, z.core.$strip>, z.ZodObject<{
1588
+ kind: z.ZodLiteral<"stale">;
1589
+ plan: z.ZodObject<{
1590
+ planHash: z.ZodString;
1591
+ family: z.ZodLiteral<"yolov9">;
1592
+ headroom: z.ZodNumber;
1593
+ whatIf: z.ZodBoolean;
1594
+ generatedAt: z.ZodNumber;
1595
+ nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1596
+ nodeId: z.ZodString;
1597
+ reachable: z.ZodBoolean;
1598
+ hardwareClass: z.ZodNullable<z.ZodEnum<{
1599
+ unknown: "unknown";
1600
+ "intel-core-ultra": "intel-core-ultra";
1601
+ "intel-n-series": "intel-n-series";
1602
+ "apple-m-base": "apple-m-base";
1603
+ "apple-m-pro": "apple-m-pro";
1604
+ }>>;
1605
+ cpuModel: z.ZodNullable<z.ZodString>;
1606
+ skipped: z.ZodBoolean;
1607
+ acceleratorModelId: z.ZodNullable<z.ZodString>;
1608
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1609
+ deviceKey: z.ZodString;
1610
+ accelerator: z.ZodNullable<z.ZodEnum<{
1611
+ "apple-ane": "apple-ane";
1612
+ "intel-npu": "intel-npu";
1613
+ "intel-igpu": "intel-igpu";
1614
+ "x86-cpu": "x86-cpu";
1615
+ "arm-cpu": "arm-cpu";
1616
+ coral: "coral";
1617
+ }>>;
1618
+ enabled: z.ZodBoolean;
1619
+ available: z.ZodBoolean;
1620
+ demand: z.ZodNullable<z.ZodObject<{
1621
+ nodeId: z.ZodString;
1622
+ deviceKey: z.ZodString;
1623
+ demandFps: z.ZodNumber;
1624
+ maxCameraFps: z.ZodNumber;
1625
+ alwaysOnCameras: z.ZodNumber;
1626
+ onMotionSessions: z.ZodNumber;
1627
+ onMotionSource: z.ZodEnum<{
1628
+ none: "none";
1629
+ "observed-24h": "observed-24h";
1630
+ estimate: "estimate";
1631
+ }>;
1632
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1633
+ placement: z.ZodEnum<{
1634
+ "least-loaded": "least-loaded";
1635
+ share: "share";
1636
+ }>;
1637
+ }, z.core.$strip>>;
1638
+ chosen: z.ZodNullable<z.ZodObject<{
1639
+ modelId: z.ZodString;
1640
+ p50Ms: z.ZodNumber;
1641
+ fps: z.ZodNumber;
1642
+ measured: z.ZodBoolean;
1643
+ utilisation: z.ZodNumber;
1644
+ personRecall: z.ZodNumber;
1645
+ }, z.core.$strip>>;
1646
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1647
+ kind: z.ZodLiteral<"fits">;
1648
+ utilisation: z.ZodNumber;
1649
+ }, z.core.$strip>, z.ZodObject<{
1650
+ kind: z.ZodLiteral<"tie-faster">;
1651
+ over: z.ZodString;
1652
+ recallDelta: z.ZodNumber;
1653
+ }, z.core.$strip>, z.ZodObject<{
1654
+ kind: z.ZodLiteral<"stepped-down">;
1655
+ from: z.ZodString;
1656
+ to: z.ZodString;
1657
+ limitedBy: z.ZodString;
1658
+ }, z.core.$strip>, z.ZodObject<{
1659
+ kind: z.ZodLiteral<"no-fit-lightest">;
1660
+ utilisation: z.ZodNumber;
1661
+ }, z.core.$strip>, z.ZodObject<{
1662
+ kind: z.ZodLiteral<"derived-latency">;
1663
+ modelId: z.ZodString;
1664
+ }, z.core.$strip>, z.ZodObject<{
1665
+ kind: z.ZodLiteral<"estimated-load">;
1666
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1667
+ }, z.core.$strip>, z.ZodObject<{
1668
+ kind: z.ZodLiteral<"cpu-device">;
1669
+ }, z.core.$strip>, z.ZodObject<{
1670
+ kind: z.ZodLiteral<"coral-untouched">;
1671
+ }, z.core.$strip>, z.ZodObject<{
1672
+ kind: z.ZodLiteral<"device-disabled">;
1673
+ }, z.core.$strip>, z.ZodObject<{
1674
+ kind: z.ZodLiteral<"device-unavailable">;
1675
+ }, z.core.$strip>, z.ZodObject<{
1676
+ kind: z.ZodLiteral<"node-offline">;
1677
+ }, z.core.$strip>, z.ZodObject<{
1678
+ kind: z.ZodLiteral<"no-hardware-facts">;
1679
+ }, z.core.$strip>, z.ZodObject<{
1680
+ kind: z.ZodLiteral<"no-measured-data">;
1681
+ hardwareClass: z.ZodEnum<{
1682
+ unknown: "unknown";
1683
+ "intel-core-ultra": "intel-core-ultra";
1684
+ "intel-n-series": "intel-n-series";
1685
+ "apple-m-base": "apple-m-base";
1686
+ "apple-m-pro": "apple-m-pro";
1687
+ }>;
1688
+ }, z.core.$strip>, z.ZodObject<{
1689
+ kind: z.ZodLiteral<"no-family-build">;
1690
+ format: z.ZodEnum<{
1691
+ onnx: "onnx";
1692
+ coreml: "coreml";
1693
+ openvino: "openvino";
1694
+ tflite: "tflite";
1695
+ pt: "pt";
1696
+ gguf: "gguf";
1697
+ }>;
1698
+ }, z.core.$strip>], "kind">>>;
1699
+ }, z.core.$strip>>>;
1700
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1701
+ kind: z.ZodLiteral<"fits">;
1702
+ utilisation: z.ZodNumber;
1703
+ }, z.core.$strip>, z.ZodObject<{
1704
+ kind: z.ZodLiteral<"tie-faster">;
1705
+ over: z.ZodString;
1706
+ recallDelta: z.ZodNumber;
1707
+ }, z.core.$strip>, z.ZodObject<{
1708
+ kind: z.ZodLiteral<"stepped-down">;
1709
+ from: z.ZodString;
1710
+ to: z.ZodString;
1711
+ limitedBy: z.ZodString;
1712
+ }, z.core.$strip>, z.ZodObject<{
1713
+ kind: z.ZodLiteral<"no-fit-lightest">;
1714
+ utilisation: z.ZodNumber;
1715
+ }, z.core.$strip>, z.ZodObject<{
1716
+ kind: z.ZodLiteral<"derived-latency">;
1717
+ modelId: z.ZodString;
1718
+ }, z.core.$strip>, z.ZodObject<{
1719
+ kind: z.ZodLiteral<"estimated-load">;
1720
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1721
+ }, z.core.$strip>, z.ZodObject<{
1722
+ kind: z.ZodLiteral<"cpu-device">;
1723
+ }, z.core.$strip>, z.ZodObject<{
1724
+ kind: z.ZodLiteral<"coral-untouched">;
1725
+ }, z.core.$strip>, z.ZodObject<{
1726
+ kind: z.ZodLiteral<"device-disabled">;
1727
+ }, z.core.$strip>, z.ZodObject<{
1728
+ kind: z.ZodLiteral<"device-unavailable">;
1729
+ }, z.core.$strip>, z.ZodObject<{
1730
+ kind: z.ZodLiteral<"node-offline">;
1731
+ }, z.core.$strip>, z.ZodObject<{
1732
+ kind: z.ZodLiteral<"no-hardware-facts">;
1733
+ }, z.core.$strip>, z.ZodObject<{
1734
+ kind: z.ZodLiteral<"no-measured-data">;
1735
+ hardwareClass: z.ZodEnum<{
1736
+ unknown: "unknown";
1737
+ "intel-core-ultra": "intel-core-ultra";
1738
+ "intel-n-series": "intel-n-series";
1739
+ "apple-m-base": "apple-m-base";
1740
+ "apple-m-pro": "apple-m-pro";
1741
+ }>;
1742
+ }, z.core.$strip>, z.ZodObject<{
1743
+ kind: z.ZodLiteral<"no-family-build">;
1744
+ format: z.ZodEnum<{
1745
+ onnx: "onnx";
1746
+ coreml: "coreml";
1747
+ openvino: "openvino";
1748
+ tflite: "tflite";
1749
+ pt: "pt";
1750
+ gguf: "gguf";
1751
+ }>;
1752
+ }, z.core.$strip>], "kind">>>;
1753
+ }, z.core.$strip>>>;
1754
+ nodeChanges: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1755
+ nodeId: z.ZodString;
1756
+ deviceKey: z.ZodString;
1757
+ madeExplicit: z.ZodBoolean;
1758
+ modelPins: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1759
+ stepId: z.ZodString;
1760
+ before: z.ZodNullable<z.ZodString>;
1761
+ after: z.ZodNullable<z.ZodString>;
1762
+ }, z.core.$strip>>>;
1763
+ thresholds: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1764
+ stepId: z.ZodString;
1765
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1766
+ }, z.core.$strip>>>;
1767
+ }, z.core.$strip>>>;
1768
+ cameraClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1769
+ deviceId: z.ZodNumber;
1770
+ source: z.ZodEnum<{
1771
+ "step-override": "step-override";
1772
+ wholesale: "wholesale";
1773
+ }>;
1774
+ nodeId: z.ZodString;
1775
+ deviceKey: z.ZodNullable<z.ZodString>;
1776
+ stepId: z.ZodString;
1777
+ modelIdBefore: z.ZodNullable<z.ZodString>;
1778
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1779
+ }, z.core.$strip>>>;
1780
+ detectorStoreClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1781
+ deviceId: z.ZodNumber;
1782
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1783
+ }, z.core.$strip>>>;
1784
+ warnings: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1785
+ kind: z.ZodLiteral<"detector-store-cluster-wide">;
1786
+ skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1787
+ }, z.core.$strip>, z.ZodObject<{
1788
+ kind: z.ZodLiteral<"detector-store-unreadable">;
1789
+ error: z.ZodString;
1790
+ }, z.core.$strip>, z.ZodObject<{
1791
+ kind: z.ZodLiteral<"coral-enabled">;
1792
+ nodeId: z.ZodString;
1793
+ deviceKey: z.ZodString;
1794
+ }, z.core.$strip>], "kind">>>;
1795
+ }, z.core.$strip>;
1796
+ }, z.core.$strip>, z.ZodObject<{
1797
+ kind: z.ZodLiteral<"refused">;
1798
+ reason: z.ZodEnum<{
1799
+ "apply-in-progress": "apply-in-progress";
1800
+ }>;
1801
+ }, z.core.$strip>], "kind">, "mutation">;
1802
+ /**
1803
+ * Load balancing (D748) — write node shares (`detectWeight`) and per-node
1804
+ * device shares (inference-device `weight`) in ONE atomic read-modify-write
1805
+ * of the agent settings — the only writer of node shares (the per-node
1806
+ * `setAgentDetectWeight` it replaced raced its siblings, one RMW each).
1807
+ * A node or device left out keeps its weight. Never changes the
1808
+ * `sessionPlacement` policy.
1809
+ */
1810
+ readonly setLoadBalancingShares: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1811
+ nodes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1812
+ devices: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>>;
1813
+ }, z.core.$strip>, z.ZodObject<{
1814
+ success: z.ZodLiteral<true>;
1815
+ }, z.core.$strip>, "mutation">;
1816
+ /**
1817
+ * Load balancing (D748) — what placement actually did: per node and
1818
+ * device, sessions now, sessions started and the time-weighted share of
1819
+ * PARALLEL sessions over `windowMs`; the cluster's parallel peak; yields
1820
+ * a share election made; and every device pin the session path cannot
1821
+ * honour. In memory on the hub — a restart starts a new window.
1822
+ */
1823
+ readonly getPlacementStats: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1824
+ windowMs: z.ZodDefault<z.ZodNumber>;
1825
+ }, z.core.$strip>, z.ZodObject<{
1826
+ policy: z.ZodEnum<{
1827
+ "least-loaded": "least-loaded";
1828
+ share: "share";
1829
+ }>;
1830
+ windowMs: z.ZodNumber;
1831
+ observedForMs: z.ZodNumber;
1832
+ sessionsNow: z.ZodNumber;
1833
+ clusterPeakSessions: z.ZodNumber;
1834
+ nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1835
+ nodeId: z.ZodString;
1836
+ sessionsNow: z.ZodNumber;
1837
+ sessionsStarted: z.ZodNumber;
1838
+ observedShare: z.ZodNullable<z.ZodNumber>;
1839
+ peakSessions: z.ZodNumber;
1840
+ yieldsAway: z.ZodNumber;
1841
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1842
+ deviceKey: z.ZodString;
1843
+ sessionsNow: z.ZodNumber;
1844
+ sessionsStarted: z.ZodNumber;
1845
+ observedShare: z.ZodNullable<z.ZodNumber>;
1846
+ }, z.core.$strip>>>;
1847
+ }, z.core.$strip>>>;
1848
+ stalePins: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1849
+ deviceId: z.ZodNumber;
1850
+ deviceKey: z.ZodString;
1851
+ reason: z.ZodEnum<{
1852
+ absent: "absent";
1853
+ disabled: "disabled";
1854
+ }>;
1855
+ }, z.core.$strip>>>;
1856
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1857
+ /**
1858
+ * Load balancing (D748) — shares proportional to each node's measured
1859
+ * capacity at the models Best settings would pick, iterated (≤ 3 rounds)
1860
+ * until the shares stop moving; per device, an ADVISORY session cap.
1861
+ * Writes nothing.
1862
+ */
1863
+ readonly suggestShares: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1864
+ headroom: z.ZodDefault<z.ZodNumber>;
1865
+ }, z.core.$strip>, z.ZodObject<{
1866
+ headroom: z.ZodNumber;
1867
+ cameraFps: z.ZodNumber;
1868
+ iterations: z.ZodNumber;
1869
+ nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1870
+ nodeId: z.ZodString;
1871
+ share: z.ZodNullable<z.ZodNumber>;
1872
+ capacitySessions: z.ZodNumber;
1873
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1874
+ deviceKey: z.ZodString;
1875
+ share: z.ZodNumber;
1876
+ modelId: z.ZodNullable<z.ZodString>;
1877
+ fps: z.ZodNullable<z.ZodNumber>;
1878
+ measured: z.ZodBoolean;
1879
+ suggestedMaxSessions: z.ZodNullable<z.ZodNumber>;
1880
+ }, z.core.$strip>>>;
1881
+ skippedReason: z.ZodNullable<z.ZodString>;
1882
+ }, z.core.$strip>>>;
1883
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1339
1884
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
1340
1885
  readonly getCameraSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1341
1886
  deviceId: z.ZodNumber;
1342
1887
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
1343
- pinnedAgentNodeId: z.ZodOptional<z.ZodString>;
1344
1888
  stepToggles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1345
1889
  stepOverridesByDevice: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
1346
1890
  modelId: z.ZodOptional<z.ZodString>;
package/dist/client.js CHANGED
@@ -7444,6 +7444,7 @@ function createSystemProxy(api) {
7444
7444
  getVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "getVideoPipelineSteps", "query", input),
7445
7445
  setVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "setVideoPipelineSteps", "mutation", input),
7446
7446
  clearDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearDeviceOverrides", "mutation", input),
7447
+ clearModelBoundDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearModelBoundDeviceOverrides", "mutation", input),
7447
7448
  getInferenceDeviceHealth: (input) => dispatch("pipelineExecutor", "getInferenceDeviceHealth", "query", input),
7448
7449
  rearmInferenceDevice: (input) => dispatch("pipelineExecutor", "rearmInferenceDevice", "mutation", input),
7449
7450
  getSchema: (input) => dispatch("pipelineExecutor", "getSchema", "query", input),
@@ -7492,13 +7493,17 @@ function createSystemProxy(api) {
7492
7493
  listAgentSettings: (input) => dispatch("pipelineOrchestrator", "listAgentSettings", "query", input),
7493
7494
  removeAgentSettings: (input) => dispatch("pipelineOrchestrator", "removeAgentSettings", "mutation", input),
7494
7495
  setAgentMaxCameras: (input) => dispatch("pipelineOrchestrator", "setAgentMaxCameras", "mutation", input),
7495
- setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
7496
7496
  setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
7497
7497
  setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
7498
7498
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
7499
7499
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
7500
7500
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
7501
7501
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
7502
+ planBestSettings: (input) => dispatch("pipelineOrchestrator", "planBestSettings", "query", input),
7503
+ applyBestSettings: (input) => dispatch("pipelineOrchestrator", "applyBestSettings", "mutation", input),
7504
+ setLoadBalancingShares: (input) => dispatch("pipelineOrchestrator", "setLoadBalancingShares", "mutation", input),
7505
+ getPlacementStats: (input) => dispatch("pipelineOrchestrator", "getPlacementStats", "query", input),
7506
+ suggestShares: (input) => dispatch("pipelineOrchestrator", "suggestShares", "query", input),
7502
7507
  getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
7503
7508
  setCameraSensors: (input) => dispatch("pipelineOrchestrator", "setCameraSensors", "mutation", input),
7504
7509
  reconcileFromDisk: (input) => dispatch("pipelineOrchestrator", "reconcileFromDisk", "mutation", input),
package/dist/client.mjs CHANGED
@@ -7443,6 +7443,7 @@ function createSystemProxy(api) {
7443
7443
  getVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "getVideoPipelineSteps", "query", input),
7444
7444
  setVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "setVideoPipelineSteps", "mutation", input),
7445
7445
  clearDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearDeviceOverrides", "mutation", input),
7446
+ clearModelBoundDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearModelBoundDeviceOverrides", "mutation", input),
7446
7447
  getInferenceDeviceHealth: (input) => dispatch("pipelineExecutor", "getInferenceDeviceHealth", "query", input),
7447
7448
  rearmInferenceDevice: (input) => dispatch("pipelineExecutor", "rearmInferenceDevice", "mutation", input),
7448
7449
  getSchema: (input) => dispatch("pipelineExecutor", "getSchema", "query", input),
@@ -7491,13 +7492,17 @@ function createSystemProxy(api) {
7491
7492
  listAgentSettings: (input) => dispatch("pipelineOrchestrator", "listAgentSettings", "query", input),
7492
7493
  removeAgentSettings: (input) => dispatch("pipelineOrchestrator", "removeAgentSettings", "mutation", input),
7493
7494
  setAgentMaxCameras: (input) => dispatch("pipelineOrchestrator", "setAgentMaxCameras", "mutation", input),
7494
- setAgentDetectWeight: (input) => dispatch("pipelineOrchestrator", "setAgentDetectWeight", "mutation", input),
7495
7495
  setAgentCapabilities: (input) => dispatch("pipelineOrchestrator", "setAgentCapabilities", "mutation", input),
7496
7496
  setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
7497
7497
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
7498
7498
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
7499
7499
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
7500
7500
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
7501
+ planBestSettings: (input) => dispatch("pipelineOrchestrator", "planBestSettings", "query", input),
7502
+ applyBestSettings: (input) => dispatch("pipelineOrchestrator", "applyBestSettings", "mutation", input),
7503
+ setLoadBalancingShares: (input) => dispatch("pipelineOrchestrator", "setLoadBalancingShares", "mutation", input),
7504
+ getPlacementStats: (input) => dispatch("pipelineOrchestrator", "getPlacementStats", "query", input),
7505
+ suggestShares: (input) => dispatch("pipelineOrchestrator", "suggestShares", "query", input),
7501
7506
  getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
7502
7507
  setCameraSensors: (input) => dispatch("pipelineOrchestrator", "setCameraSensors", "mutation", input),
7503
7508
  reconcileFromDisk: (input) => dispatch("pipelineOrchestrator", "reconcileFromDisk", "mutation", input),