@camstack/types 1.2.316 → 1.2.317

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.
@@ -1336,6 +1336,466 @@ export declare const pipelineOrchestratorCapability: {
1336
1336
  effectiveModelId: z.ZodNullable<z.ZodString>;
1337
1337
  clearedCameraOverrides: z.ZodNumber;
1338
1338
  }, z.core.$strip>, "mutation">;
1339
+ /**
1340
+ * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
1341
+ * for the whole cluster from each node's static hardware class, the
1342
+ * measured latency table and the detection demand, and lists every write
1343
+ * the apply would make: the node model pins set, the enrichment pins and
1344
+ * model-bound thresholds removed (node level and per camera), and the
1345
+ * per-camera detector thresholds cleared. Writes nothing. Step
1346
+ * enablement, device enablement, pins, recording, notifications, zones and
1347
+ * rules are never part of it. `planHash` names exactly this diff.
1348
+ */
1349
+ readonly planBestSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1350
+ headroom: z.ZodDefault<z.ZodNumber>;
1351
+ }, z.core.$strip>, z.ZodObject<{
1352
+ planHash: z.ZodString;
1353
+ family: z.ZodLiteral<"yolov9">;
1354
+ headroom: z.ZodNumber;
1355
+ generatedAt: z.ZodNumber;
1356
+ nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1357
+ nodeId: z.ZodString;
1358
+ reachable: z.ZodBoolean;
1359
+ hardwareClass: z.ZodNullable<z.ZodEnum<{
1360
+ unknown: "unknown";
1361
+ "intel-core-ultra": "intel-core-ultra";
1362
+ "intel-n-series": "intel-n-series";
1363
+ "apple-m-base": "apple-m-base";
1364
+ "apple-m-pro": "apple-m-pro";
1365
+ }>>;
1366
+ cpuModel: z.ZodNullable<z.ZodString>;
1367
+ skipped: z.ZodBoolean;
1368
+ acceleratorModelId: z.ZodNullable<z.ZodString>;
1369
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1370
+ deviceKey: z.ZodString;
1371
+ accelerator: z.ZodNullable<z.ZodEnum<{
1372
+ "apple-ane": "apple-ane";
1373
+ "intel-npu": "intel-npu";
1374
+ "intel-igpu": "intel-igpu";
1375
+ "x86-cpu": "x86-cpu";
1376
+ "arm-cpu": "arm-cpu";
1377
+ coral: "coral";
1378
+ }>>;
1379
+ enabled: z.ZodBoolean;
1380
+ available: z.ZodBoolean;
1381
+ demand: z.ZodNullable<z.ZodObject<{
1382
+ nodeId: z.ZodString;
1383
+ deviceKey: z.ZodString;
1384
+ demandFps: z.ZodNumber;
1385
+ maxCameraFps: z.ZodNumber;
1386
+ alwaysOnCameras: z.ZodNumber;
1387
+ onMotionSessions: z.ZodNumber;
1388
+ onMotionSource: z.ZodEnum<{
1389
+ none: "none";
1390
+ "observed-24h": "observed-24h";
1391
+ estimate: "estimate";
1392
+ }>;
1393
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1394
+ }, z.core.$strip>>;
1395
+ chosen: z.ZodNullable<z.ZodObject<{
1396
+ modelId: z.ZodString;
1397
+ p50Ms: z.ZodNumber;
1398
+ fps: z.ZodNumber;
1399
+ measured: z.ZodBoolean;
1400
+ utilisation: z.ZodNumber;
1401
+ personRecall: z.ZodNumber;
1402
+ }, z.core.$strip>>;
1403
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1404
+ kind: z.ZodLiteral<"fits">;
1405
+ utilisation: z.ZodNumber;
1406
+ }, z.core.$strip>, z.ZodObject<{
1407
+ kind: z.ZodLiteral<"tie-faster">;
1408
+ over: z.ZodString;
1409
+ recallDelta: z.ZodNumber;
1410
+ }, z.core.$strip>, z.ZodObject<{
1411
+ kind: z.ZodLiteral<"stepped-down">;
1412
+ from: z.ZodString;
1413
+ to: z.ZodString;
1414
+ limitedBy: z.ZodString;
1415
+ }, z.core.$strip>, z.ZodObject<{
1416
+ kind: z.ZodLiteral<"no-fit-lightest">;
1417
+ utilisation: z.ZodNumber;
1418
+ }, z.core.$strip>, z.ZodObject<{
1419
+ kind: z.ZodLiteral<"derived-latency">;
1420
+ modelId: z.ZodString;
1421
+ }, z.core.$strip>, z.ZodObject<{
1422
+ kind: z.ZodLiteral<"estimated-load">;
1423
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1424
+ }, z.core.$strip>, z.ZodObject<{
1425
+ kind: z.ZodLiteral<"cpu-device">;
1426
+ }, z.core.$strip>, z.ZodObject<{
1427
+ kind: z.ZodLiteral<"coral-untouched">;
1428
+ }, z.core.$strip>, z.ZodObject<{
1429
+ kind: z.ZodLiteral<"device-disabled">;
1430
+ }, z.core.$strip>, z.ZodObject<{
1431
+ kind: z.ZodLiteral<"device-unavailable">;
1432
+ }, z.core.$strip>, z.ZodObject<{
1433
+ kind: z.ZodLiteral<"node-offline">;
1434
+ }, z.core.$strip>, z.ZodObject<{
1435
+ kind: z.ZodLiteral<"no-hardware-facts">;
1436
+ }, z.core.$strip>, z.ZodObject<{
1437
+ kind: z.ZodLiteral<"no-measured-data">;
1438
+ hardwareClass: z.ZodEnum<{
1439
+ unknown: "unknown";
1440
+ "intel-core-ultra": "intel-core-ultra";
1441
+ "intel-n-series": "intel-n-series";
1442
+ "apple-m-base": "apple-m-base";
1443
+ "apple-m-pro": "apple-m-pro";
1444
+ }>;
1445
+ }, z.core.$strip>, z.ZodObject<{
1446
+ kind: z.ZodLiteral<"no-family-build">;
1447
+ format: z.ZodEnum<{
1448
+ onnx: "onnx";
1449
+ coreml: "coreml";
1450
+ openvino: "openvino";
1451
+ tflite: "tflite";
1452
+ pt: "pt";
1453
+ gguf: "gguf";
1454
+ }>;
1455
+ }, z.core.$strip>], "kind">>>;
1456
+ }, z.core.$strip>>>;
1457
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1458
+ kind: z.ZodLiteral<"fits">;
1459
+ utilisation: z.ZodNumber;
1460
+ }, z.core.$strip>, z.ZodObject<{
1461
+ kind: z.ZodLiteral<"tie-faster">;
1462
+ over: z.ZodString;
1463
+ recallDelta: z.ZodNumber;
1464
+ }, z.core.$strip>, z.ZodObject<{
1465
+ kind: z.ZodLiteral<"stepped-down">;
1466
+ from: z.ZodString;
1467
+ to: z.ZodString;
1468
+ limitedBy: z.ZodString;
1469
+ }, z.core.$strip>, z.ZodObject<{
1470
+ kind: z.ZodLiteral<"no-fit-lightest">;
1471
+ utilisation: z.ZodNumber;
1472
+ }, z.core.$strip>, z.ZodObject<{
1473
+ kind: z.ZodLiteral<"derived-latency">;
1474
+ modelId: z.ZodString;
1475
+ }, z.core.$strip>, z.ZodObject<{
1476
+ kind: z.ZodLiteral<"estimated-load">;
1477
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1478
+ }, z.core.$strip>, z.ZodObject<{
1479
+ kind: z.ZodLiteral<"cpu-device">;
1480
+ }, z.core.$strip>, z.ZodObject<{
1481
+ kind: z.ZodLiteral<"coral-untouched">;
1482
+ }, z.core.$strip>, z.ZodObject<{
1483
+ kind: z.ZodLiteral<"device-disabled">;
1484
+ }, z.core.$strip>, z.ZodObject<{
1485
+ kind: z.ZodLiteral<"device-unavailable">;
1486
+ }, z.core.$strip>, z.ZodObject<{
1487
+ kind: z.ZodLiteral<"node-offline">;
1488
+ }, z.core.$strip>, z.ZodObject<{
1489
+ kind: z.ZodLiteral<"no-hardware-facts">;
1490
+ }, z.core.$strip>, z.ZodObject<{
1491
+ kind: z.ZodLiteral<"no-measured-data">;
1492
+ hardwareClass: z.ZodEnum<{
1493
+ unknown: "unknown";
1494
+ "intel-core-ultra": "intel-core-ultra";
1495
+ "intel-n-series": "intel-n-series";
1496
+ "apple-m-base": "apple-m-base";
1497
+ "apple-m-pro": "apple-m-pro";
1498
+ }>;
1499
+ }, z.core.$strip>, z.ZodObject<{
1500
+ kind: z.ZodLiteral<"no-family-build">;
1501
+ format: z.ZodEnum<{
1502
+ onnx: "onnx";
1503
+ coreml: "coreml";
1504
+ openvino: "openvino";
1505
+ tflite: "tflite";
1506
+ pt: "pt";
1507
+ gguf: "gguf";
1508
+ }>;
1509
+ }, z.core.$strip>], "kind">>>;
1510
+ }, z.core.$strip>>>;
1511
+ nodeChanges: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1512
+ nodeId: z.ZodString;
1513
+ deviceKey: z.ZodString;
1514
+ madeExplicit: z.ZodBoolean;
1515
+ modelPins: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1516
+ stepId: z.ZodString;
1517
+ before: z.ZodNullable<z.ZodString>;
1518
+ after: z.ZodNullable<z.ZodString>;
1519
+ }, z.core.$strip>>>;
1520
+ thresholds: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1521
+ stepId: z.ZodString;
1522
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1523
+ }, z.core.$strip>>>;
1524
+ }, z.core.$strip>>>;
1525
+ cameraClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1526
+ deviceId: z.ZodNumber;
1527
+ source: z.ZodEnum<{
1528
+ "step-override": "step-override";
1529
+ wholesale: "wholesale";
1530
+ }>;
1531
+ nodeId: z.ZodString;
1532
+ deviceKey: z.ZodNullable<z.ZodString>;
1533
+ stepId: z.ZodString;
1534
+ modelIdBefore: z.ZodNullable<z.ZodString>;
1535
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1536
+ }, z.core.$strip>>>;
1537
+ detectorStoreClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1538
+ deviceId: z.ZodNumber;
1539
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1540
+ }, z.core.$strip>>>;
1541
+ warnings: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1542
+ kind: z.ZodLiteral<"detector-store-cluster-wide">;
1543
+ skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1544
+ }, z.core.$strip>, z.ZodObject<{
1545
+ kind: z.ZodLiteral<"detector-store-unreadable">;
1546
+ error: z.ZodString;
1547
+ }, z.core.$strip>, z.ZodObject<{
1548
+ kind: z.ZodLiteral<"coral-enabled">;
1549
+ nodeId: z.ZodString;
1550
+ deviceKey: z.ZodString;
1551
+ }, z.core.$strip>], "kind">>>;
1552
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1553
+ /**
1554
+ * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
1555
+ * the plan and refuses (`stale`, with the fresh plan) when its hash is not
1556
+ * `planHash`, so what is written is exactly the confirmed diff. Offline
1557
+ * nodes are skipped; there is no undo.
1558
+ */
1559
+ readonly applyBestSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1560
+ planHash: z.ZodString;
1561
+ headroom: z.ZodDefault<z.ZodNumber>;
1562
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
1563
+ kind: z.ZodLiteral<"applied">;
1564
+ planHash: z.ZodString;
1565
+ phases: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1566
+ phase: z.ZodEnum<{
1567
+ download: "download";
1568
+ "camera-overrides": "camera-overrides";
1569
+ "detector-thresholds": "detector-thresholds";
1570
+ "node-models": "node-models";
1571
+ redispatch: "redispatch";
1572
+ }>;
1573
+ ok: z.ZodBoolean;
1574
+ detail: z.ZodString;
1575
+ }, z.core.$strip>>>;
1576
+ }, z.core.$strip>, z.ZodObject<{
1577
+ kind: z.ZodLiteral<"aborted">;
1578
+ phases: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1579
+ phase: z.ZodEnum<{
1580
+ download: "download";
1581
+ "camera-overrides": "camera-overrides";
1582
+ "detector-thresholds": "detector-thresholds";
1583
+ "node-models": "node-models";
1584
+ redispatch: "redispatch";
1585
+ }>;
1586
+ ok: z.ZodBoolean;
1587
+ detail: z.ZodString;
1588
+ }, z.core.$strip>>>;
1589
+ }, z.core.$strip>, z.ZodObject<{
1590
+ kind: z.ZodLiteral<"stale">;
1591
+ plan: z.ZodObject<{
1592
+ planHash: z.ZodString;
1593
+ family: z.ZodLiteral<"yolov9">;
1594
+ headroom: z.ZodNumber;
1595
+ generatedAt: z.ZodNumber;
1596
+ nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1597
+ nodeId: z.ZodString;
1598
+ reachable: z.ZodBoolean;
1599
+ hardwareClass: z.ZodNullable<z.ZodEnum<{
1600
+ unknown: "unknown";
1601
+ "intel-core-ultra": "intel-core-ultra";
1602
+ "intel-n-series": "intel-n-series";
1603
+ "apple-m-base": "apple-m-base";
1604
+ "apple-m-pro": "apple-m-pro";
1605
+ }>>;
1606
+ cpuModel: z.ZodNullable<z.ZodString>;
1607
+ skipped: z.ZodBoolean;
1608
+ acceleratorModelId: z.ZodNullable<z.ZodString>;
1609
+ devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1610
+ deviceKey: z.ZodString;
1611
+ accelerator: z.ZodNullable<z.ZodEnum<{
1612
+ "apple-ane": "apple-ane";
1613
+ "intel-npu": "intel-npu";
1614
+ "intel-igpu": "intel-igpu";
1615
+ "x86-cpu": "x86-cpu";
1616
+ "arm-cpu": "arm-cpu";
1617
+ coral: "coral";
1618
+ }>>;
1619
+ enabled: z.ZodBoolean;
1620
+ available: z.ZodBoolean;
1621
+ demand: z.ZodNullable<z.ZodObject<{
1622
+ nodeId: z.ZodString;
1623
+ deviceKey: z.ZodString;
1624
+ demandFps: z.ZodNumber;
1625
+ maxCameraFps: z.ZodNumber;
1626
+ alwaysOnCameras: z.ZodNumber;
1627
+ onMotionSessions: z.ZodNumber;
1628
+ onMotionSource: z.ZodEnum<{
1629
+ none: "none";
1630
+ "observed-24h": "observed-24h";
1631
+ estimate: "estimate";
1632
+ }>;
1633
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1634
+ }, z.core.$strip>>;
1635
+ chosen: z.ZodNullable<z.ZodObject<{
1636
+ modelId: z.ZodString;
1637
+ p50Ms: z.ZodNumber;
1638
+ fps: z.ZodNumber;
1639
+ measured: z.ZodBoolean;
1640
+ utilisation: z.ZodNumber;
1641
+ personRecall: z.ZodNumber;
1642
+ }, z.core.$strip>>;
1643
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1644
+ kind: z.ZodLiteral<"fits">;
1645
+ utilisation: z.ZodNumber;
1646
+ }, z.core.$strip>, z.ZodObject<{
1647
+ kind: z.ZodLiteral<"tie-faster">;
1648
+ over: z.ZodString;
1649
+ recallDelta: z.ZodNumber;
1650
+ }, z.core.$strip>, z.ZodObject<{
1651
+ kind: z.ZodLiteral<"stepped-down">;
1652
+ from: z.ZodString;
1653
+ to: z.ZodString;
1654
+ limitedBy: z.ZodString;
1655
+ }, z.core.$strip>, z.ZodObject<{
1656
+ kind: z.ZodLiteral<"no-fit-lightest">;
1657
+ utilisation: z.ZodNumber;
1658
+ }, z.core.$strip>, z.ZodObject<{
1659
+ kind: z.ZodLiteral<"derived-latency">;
1660
+ modelId: z.ZodString;
1661
+ }, z.core.$strip>, z.ZodObject<{
1662
+ kind: z.ZodLiteral<"estimated-load">;
1663
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1664
+ }, z.core.$strip>, z.ZodObject<{
1665
+ kind: z.ZodLiteral<"cpu-device">;
1666
+ }, z.core.$strip>, z.ZodObject<{
1667
+ kind: z.ZodLiteral<"coral-untouched">;
1668
+ }, z.core.$strip>, z.ZodObject<{
1669
+ kind: z.ZodLiteral<"device-disabled">;
1670
+ }, z.core.$strip>, z.ZodObject<{
1671
+ kind: z.ZodLiteral<"device-unavailable">;
1672
+ }, z.core.$strip>, z.ZodObject<{
1673
+ kind: z.ZodLiteral<"node-offline">;
1674
+ }, z.core.$strip>, z.ZodObject<{
1675
+ kind: z.ZodLiteral<"no-hardware-facts">;
1676
+ }, z.core.$strip>, z.ZodObject<{
1677
+ kind: z.ZodLiteral<"no-measured-data">;
1678
+ hardwareClass: z.ZodEnum<{
1679
+ unknown: "unknown";
1680
+ "intel-core-ultra": "intel-core-ultra";
1681
+ "intel-n-series": "intel-n-series";
1682
+ "apple-m-base": "apple-m-base";
1683
+ "apple-m-pro": "apple-m-pro";
1684
+ }>;
1685
+ }, z.core.$strip>, z.ZodObject<{
1686
+ kind: z.ZodLiteral<"no-family-build">;
1687
+ format: z.ZodEnum<{
1688
+ onnx: "onnx";
1689
+ coreml: "coreml";
1690
+ openvino: "openvino";
1691
+ tflite: "tflite";
1692
+ pt: "pt";
1693
+ gguf: "gguf";
1694
+ }>;
1695
+ }, z.core.$strip>], "kind">>>;
1696
+ }, z.core.$strip>>>;
1697
+ reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1698
+ kind: z.ZodLiteral<"fits">;
1699
+ utilisation: z.ZodNumber;
1700
+ }, z.core.$strip>, z.ZodObject<{
1701
+ kind: z.ZodLiteral<"tie-faster">;
1702
+ over: z.ZodString;
1703
+ recallDelta: z.ZodNumber;
1704
+ }, z.core.$strip>, z.ZodObject<{
1705
+ kind: z.ZodLiteral<"stepped-down">;
1706
+ from: z.ZodString;
1707
+ to: z.ZodString;
1708
+ limitedBy: z.ZodString;
1709
+ }, z.core.$strip>, z.ZodObject<{
1710
+ kind: z.ZodLiteral<"no-fit-lightest">;
1711
+ utilisation: z.ZodNumber;
1712
+ }, z.core.$strip>, z.ZodObject<{
1713
+ kind: z.ZodLiteral<"derived-latency">;
1714
+ modelId: z.ZodString;
1715
+ }, z.core.$strip>, z.ZodObject<{
1716
+ kind: z.ZodLiteral<"estimated-load">;
1717
+ observedForMs: z.ZodNullable<z.ZodNumber>;
1718
+ }, z.core.$strip>, z.ZodObject<{
1719
+ kind: z.ZodLiteral<"cpu-device">;
1720
+ }, z.core.$strip>, z.ZodObject<{
1721
+ kind: z.ZodLiteral<"coral-untouched">;
1722
+ }, z.core.$strip>, z.ZodObject<{
1723
+ kind: z.ZodLiteral<"device-disabled">;
1724
+ }, z.core.$strip>, z.ZodObject<{
1725
+ kind: z.ZodLiteral<"device-unavailable">;
1726
+ }, z.core.$strip>, z.ZodObject<{
1727
+ kind: z.ZodLiteral<"node-offline">;
1728
+ }, z.core.$strip>, z.ZodObject<{
1729
+ kind: z.ZodLiteral<"no-hardware-facts">;
1730
+ }, z.core.$strip>, z.ZodObject<{
1731
+ kind: z.ZodLiteral<"no-measured-data">;
1732
+ hardwareClass: z.ZodEnum<{
1733
+ unknown: "unknown";
1734
+ "intel-core-ultra": "intel-core-ultra";
1735
+ "intel-n-series": "intel-n-series";
1736
+ "apple-m-base": "apple-m-base";
1737
+ "apple-m-pro": "apple-m-pro";
1738
+ }>;
1739
+ }, z.core.$strip>, z.ZodObject<{
1740
+ kind: z.ZodLiteral<"no-family-build">;
1741
+ format: z.ZodEnum<{
1742
+ onnx: "onnx";
1743
+ coreml: "coreml";
1744
+ openvino: "openvino";
1745
+ tflite: "tflite";
1746
+ pt: "pt";
1747
+ gguf: "gguf";
1748
+ }>;
1749
+ }, z.core.$strip>], "kind">>>;
1750
+ }, z.core.$strip>>>;
1751
+ nodeChanges: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1752
+ nodeId: z.ZodString;
1753
+ deviceKey: z.ZodString;
1754
+ madeExplicit: z.ZodBoolean;
1755
+ modelPins: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1756
+ stepId: z.ZodString;
1757
+ before: z.ZodNullable<z.ZodString>;
1758
+ after: z.ZodNullable<z.ZodString>;
1759
+ }, z.core.$strip>>>;
1760
+ thresholds: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1761
+ stepId: z.ZodString;
1762
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1763
+ }, z.core.$strip>>>;
1764
+ }, z.core.$strip>>>;
1765
+ cameraClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1766
+ deviceId: z.ZodNumber;
1767
+ source: z.ZodEnum<{
1768
+ "step-override": "step-override";
1769
+ wholesale: "wholesale";
1770
+ }>;
1771
+ nodeId: z.ZodString;
1772
+ deviceKey: z.ZodNullable<z.ZodString>;
1773
+ stepId: z.ZodString;
1774
+ modelIdBefore: z.ZodNullable<z.ZodString>;
1775
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1776
+ }, z.core.$strip>>>;
1777
+ detectorStoreClears: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1778
+ deviceId: z.ZodNumber;
1779
+ keys: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1780
+ }, z.core.$strip>>>;
1781
+ warnings: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1782
+ kind: z.ZodLiteral<"detector-store-cluster-wide">;
1783
+ skippedNodes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1784
+ }, z.core.$strip>, z.ZodObject<{
1785
+ kind: z.ZodLiteral<"detector-store-unreadable">;
1786
+ error: z.ZodString;
1787
+ }, z.core.$strip>, z.ZodObject<{
1788
+ kind: z.ZodLiteral<"coral-enabled">;
1789
+ nodeId: z.ZodString;
1790
+ deviceKey: z.ZodString;
1791
+ }, z.core.$strip>], "kind">>>;
1792
+ }, z.core.$strip>;
1793
+ }, z.core.$strip>, z.ZodObject<{
1794
+ kind: z.ZodLiteral<"refused">;
1795
+ reason: z.ZodEnum<{
1796
+ "apply-in-progress": "apply-in-progress";
1797
+ }>;
1798
+ }, z.core.$strip>], "kind">, "mutation">;
1339
1799
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
1340
1800
  readonly getCameraSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1341
1801
  deviceId: z.ZodNumber;
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),
@@ -7499,6 +7500,8 @@ function createSystemProxy(api) {
7499
7500
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
7500
7501
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
7501
7502
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
7503
+ planBestSettings: (input) => dispatch("pipelineOrchestrator", "planBestSettings", "query", input),
7504
+ applyBestSettings: (input) => dispatch("pipelineOrchestrator", "applyBestSettings", "mutation", input),
7502
7505
  getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
7503
7506
  setCameraSensors: (input) => dispatch("pipelineOrchestrator", "setCameraSensors", "mutation", input),
7504
7507
  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),
@@ -7498,6 +7499,8 @@ function createSystemProxy(api) {
7498
7499
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
7499
7500
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
7500
7501
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
7502
+ planBestSettings: (input) => dispatch("pipelineOrchestrator", "planBestSettings", "query", input),
7503
+ applyBestSettings: (input) => dispatch("pipelineOrchestrator", "applyBestSettings", "mutation", input),
7501
7504
  getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
7502
7505
  setCameraSensors: (input) => dispatch("pipelineOrchestrator", "setCameraSensors", "mutation", input),
7503
7506
  reconcileFromDisk: (input) => dispatch("pipelineOrchestrator", "reconcileFromDisk", "mutation", input),
@@ -314,9 +314,9 @@ export declare const CompositionRunStatusSchema: z.ZodEnum<{
314
314
  }>;
315
315
  export type CompositionRunStatus = z.infer<typeof CompositionRunStatusSchema>;
316
316
  export declare const CompositionFieldStateKindSchema: z.ZodEnum<{
317
+ stale: "stale";
317
318
  unavailable: "unavailable";
318
319
  fresh: "fresh";
319
- stale: "stale";
320
320
  }>;
321
321
  export type CompositionFieldStateKind = z.infer<typeof CompositionFieldStateKindSchema>;
322
322
  export declare const CompositionFieldStateSchema: z.ZodObject<{
@@ -328,9 +328,9 @@ export declare const CompositionFieldStateSchema: z.ZodObject<{
328
328
  label: z.ZodString;
329
329
  }, z.core.$strip>>;
330
330
  state: z.ZodEnum<{
331
+ stale: "stale";
331
332
  unavailable: "unavailable";
332
333
  fresh: "fresh";
333
- stale: "stale";
334
334
  }>;
335
335
  value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
336
336
  reason: z.ZodOptional<z.ZodString>;
@@ -356,9 +356,9 @@ export declare const CompositionBlockStateSchema: z.ZodObject<{
356
356
  label: z.ZodString;
357
357
  }, z.core.$strip>>;
358
358
  state: z.ZodEnum<{
359
+ stale: "stale";
359
360
  unavailable: "unavailable";
360
361
  fresh: "fresh";
361
- stale: "stale";
362
362
  }>;
363
363
  value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
364
364
  reason: z.ZodOptional<z.ZodString>;
@@ -6119,6 +6119,13 @@ export type AppRouter = TrpcCoreRouter<{
6119
6119
  output: z.infer<typeof pipelineExecutorCapability.methods.clearDeviceOverrides.output>;
6120
6120
  meta: object;
6121
6121
  }>;
6122
+ clearModelBoundDeviceOverrides: TRPCMutationProcedure<{
6123
+ input: {
6124
+ [x: string]: unknown;
6125
+ } & z.input<typeof pipelineExecutorCapability.methods.clearModelBoundDeviceOverrides.input>;
6126
+ output: z.infer<typeof pipelineExecutorCapability.methods.clearModelBoundDeviceOverrides.output>;
6127
+ meta: object;
6128
+ }>;
6122
6129
  getInferenceDeviceHealth: TRPCQueryProcedure<{
6123
6130
  input: {
6124
6131
  [x: string]: unknown;
@@ -6595,6 +6602,20 @@ export type AppRouter = TrpcCoreRouter<{
6595
6602
  output: z.infer<typeof pipelineOrchestratorCapability.methods.resetNodePipelineDefaults.output>;
6596
6603
  meta: object;
6597
6604
  }>;
6605
+ planBestSettings: TRPCQueryProcedure<{
6606
+ input: {
6607
+ [x: string]: unknown;
6608
+ } & z.input<typeof pipelineOrchestratorCapability.methods.planBestSettings.input>;
6609
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.planBestSettings.output>;
6610
+ meta: object;
6611
+ }>;
6612
+ applyBestSettings: TRPCMutationProcedure<{
6613
+ input: {
6614
+ [x: string]: unknown;
6615
+ } & z.input<typeof pipelineOrchestratorCapability.methods.applyBestSettings.input>;
6616
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.applyBestSettings.output>;
6617
+ meta: object;
6618
+ }>;
6598
6619
  getCameraSettings: TRPCQueryProcedure<{
6599
6620
  input: {
6600
6621
  [x: string]: unknown;
@@ -11,7 +11,7 @@
11
11
  * Plain data, zero Zod: a forked runner must not import the schema barrel
12
12
  * (~144MB RSS per runner — D28).
13
13
  *
14
- * Coverage: 24 caps, 58 methods with defaults.
14
+ * Coverage: 25 caps, 60 methods with defaults.
15
15
  */
16
16
  export declare const CAP_INPUT_DEFAULTS: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
17
17
  /**
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1227 method paths across 165 capabilities.
9
+ * Coverage: 1230 method paths across 165 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,8 +6,8 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 510 methods carry a device reference, of which
10
- * 160 are on SYSTEM-scope caps.
9
+ * Coverage: 511 methods carry a device reference, of which
10
+ * 161 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
13
13
  * a numeric device field (targets[].deviceId) are all mapped; the matcher
@@ -87,8 +87,8 @@ export interface SystemProxy {
87
87
  readonly notificationOutput: Pick<InferProvider<typeof notificationOutputCapability>, 'listTargetKinds' | 'listTargets' | 'getTarget' | 'discoverTargets' | 'probeTargetConfig' | 'send' | 'testTarget' | 'upsertTarget' | 'deleteTarget' | 'setTargetEnabled'>;
88
88
  readonly notificationRules: Pick<InferProvider<typeof notificationRulesCapability>, 'listRules' | 'getRule' | 'createRule' | 'updateRule' | 'deleteRule' | 'setRuleEnabled' | 'listSequences' | 'getSequence' | 'createSequence' | 'updateSequence' | 'deleteSequence' | 'getClipRetentionAsks' | 'listDeviceMutes' | 'testRule' | 'previewStateSummary' | 'getConditionCatalog' | 'getTemplateCatalog' | 'previewTemplate' | 'getHistory' | 'getRuleLastRuns' | 'resolveArtifactUrl' | 'listSnoozes' | 'createSnooze' | 'cancelSnooze' | 'getAlarmConfig' | 'setAlarmConfig' | 'createAlarmProfile' | 'renameAlarmProfile' | 'deleteAlarmProfile' | 'activateAlarmProfile' | 'getAlarmSensors'>;
89
89
  readonly osdManager: Pick<InferProvider<typeof osdManagerCapability>, 'getConditionSupport' | 'copyDeviceConfiguration' | 'listTemplates' | 'upsertTemplate' | 'deleteTemplate'>;
90
- readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'getInferenceDeviceHealth' | 'rearmInferenceDevice' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
91
- readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'requestOccupancyLook' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getClusterModelChoice' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAudioAssignments' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentDecodeLimits' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'setCameraSensors' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
90
+ readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'clearModelBoundDeviceOverrides' | 'getInferenceDeviceHealth' | 'rearmInferenceDevice' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
91
+ readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'requestOccupancyLook' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getClusterModelChoice' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAudioAssignments' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentDecodeLimits' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'planBestSettings' | 'applyBestSettings' | 'getCameraStatuses' | 'setCameraSensors' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
92
92
  readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep'>;
93
93
  readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
94
94
  readonly recordingArchive: Pick<InferProvider<typeof recordingArchiveCapability>, 'getAvailabilityBatch' | 'getDaysWithRecordingsBatch' | 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
package/dist/index.d.ts CHANGED
@@ -267,7 +267,8 @@ export { hubMotionNativeProvider, readHubMotionDetected, readHubMotionStatus, }
267
267
  export { type ProviderMotionData, ProviderMotionDataSchema, providerMotionEvent, } from './pipeline/provider-motion.js';
268
268
  export { type FormatRunnableModel, stepModelRunsOnFormat, } from './pipeline/step-format-runnable.js';
269
269
  export { isRemovedModelId, REMOVED_MODEL_IDS } from './pipeline/removed-model-ids.js';
270
- export { applyModelBoundSettings, clearModelBoundOverrides, clearModelBoundSetting, hasModelBoundOverrides, type InapplicableModelBoundOverride, modelBindingKey, type ModelBoundSettingsBag, type ModelBoundSettingSource, type ModelBoundSettingState, resolveModelBoundSetting, writeModelBoundSetting, } from './pipeline/model-bound-settings.js';
270
+ export { applyModelBoundSettings, clearModelBoundOverrides, clearModelBoundSetting, collectModelBoundKeys, hasModelBoundOverrides, type InapplicableModelBoundOverride, modelBindingKey, type ModelBoundSettingsBag, type ModelBoundSettingSource, type ModelBoundSettingState, resolveModelBoundSetting, writeModelBoundSetting, } from './pipeline/model-bound-settings.js';
271
+ export * from './pipeline/best-settings/index.js';
271
272
  export { deriveRootFaceRefineRect, ROOT_FACE_REFINE_INPUT_PX, ROOT_FACE_REFINE_SCALE, } from './pipeline/root-face-crop.js';
272
273
  export { DEFAULT_DETAIL_CROP_CONVENTION, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, type DetailCropConvention, DetailCropConventionSchema, type DetailCropRect, deriveDetailCropRect, FULL_IMAGE_BBOX, type HydratedSettingsSection, type HydratedSettingsView, pickDetailCropConvention, readDetailCropConvention, } from './pipeline/detail-crop.js';
273
274
  export { DEFAULT_NATIVE_LEASE_SETTINGS, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, type NativeLeaseAdmission, NativeLeaseAdmissionSchema, type NativeLeaseKnob, type NativeLeaseNumberKnob, type NativeLeaseSettings, type NativeLeaseSettingsOverride, NativeLeaseSettingsSchema, pickNativeLeaseOverride, readNativeLeaseOverride, } from './pipeline/native-lease.js';