@camstack/types 1.2.319 → 1.2.321

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.
package/dist/addon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-DyF95STh.js");
2
+ const require_sleep = require("./sleep-AalHiRYL.js");
3
3
  const require_event_category = require("./event-category-DmS_tLsU.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
@@ -156,14 +156,23 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
156
156
  "searchObjectEvents": { "limit": 50 }
157
157
  },
158
158
  "pipeline-orchestrator": {
159
- "applyAutoTune": { "headroom": .4 },
159
+ "applyAutoTune": {
160
+ "headroom": .4,
161
+ "minSessionsPerDevice": 2
162
+ },
160
163
  "getPlacementStats": { "windowMs": 36e5 },
161
- "planAutoTune": { "headroom": .4 },
164
+ "planAutoTune": {
165
+ "headroom": .4,
166
+ "minSessionsPerDevice": 2
167
+ },
162
168
  "setLoadBalancingShares": {
163
169
  "nodes": {},
164
170
  "devices": {}
165
171
  },
166
- "suggestShares": { "headroom": .4 }
172
+ "suggestShares": {
173
+ "headroom": .4,
174
+ "source": "hardware"
175
+ }
167
176
  },
168
177
  "pipeline-runner": {
169
178
  "attachCamera": {
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { At as normalizeAddonInitResult, B as nodePin, Ct as PEER_BYTES_STALL_MS, D as adminUiCapability, Et as DATAPLANE_SECRET_HEADER, N as expandCapMethods, Ot as DisposerChain, Pt as emitReadiness, S as DEVICE_CHILDREN_BATCH_MAX, St as PEER_BYTES_MAX_OUTSTANDING, T as describeCustomActions, U as ReadinessRegistry, V as readNodePin, W as ReadinessTimeoutError, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, kt as BaseAddon, m as createDeviceProxy, p as isDeviceScopedCap, q as scopeKey, s as asString, t as sleep, u as parseJsonUnknown, wt as PEER_BYTES_TICKET_TTL_MS, x as viewerUiCapability, xt as PEER_BYTES_CHUNK_BYTES } from "./sleep-C16NCZR2.mjs";
1
+ import { At as normalizeAddonInitResult, B as nodePin, Ct as PEER_BYTES_STALL_MS, D as adminUiCapability, Et as DATAPLANE_SECRET_HEADER, N as expandCapMethods, Ot as DisposerChain, Pt as emitReadiness, S as DEVICE_CHILDREN_BATCH_MAX, St as PEER_BYTES_MAX_OUTSTANDING, T as describeCustomActions, U as ReadinessRegistry, V as readNodePin, W as ReadinessTimeoutError, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, kt as BaseAddon, m as createDeviceProxy, p as isDeviceScopedCap, q as scopeKey, s as asString, t as sleep, u as parseJsonUnknown, wt as PEER_BYTES_TICKET_TTL_MS, x as viewerUiCapability, xt as PEER_BYTES_CHUNK_BYTES } from "./sleep-DAJ9Er57.mjs";
2
2
  import { t as EventCategory } from "./event-category-BGmz_oxW.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
@@ -155,14 +155,23 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
155
155
  "searchObjectEvents": { "limit": 50 }
156
156
  },
157
157
  "pipeline-orchestrator": {
158
- "applyAutoTune": { "headroom": .4 },
158
+ "applyAutoTune": {
159
+ "headroom": .4,
160
+ "minSessionsPerDevice": 2
161
+ },
159
162
  "getPlacementStats": { "windowMs": 36e5 },
160
- "planAutoTune": { "headroom": .4 },
163
+ "planAutoTune": {
164
+ "headroom": .4,
165
+ "minSessionsPerDevice": 2
166
+ },
161
167
  "setLoadBalancingShares": {
162
168
  "nodes": {},
163
169
  "devices": {}
164
170
  },
165
- "suggestShares": { "headroom": .4 }
171
+ "suggestShares": {
172
+ "headroom": .4,
173
+ "source": "hardware"
174
+ }
166
175
  },
167
176
  "pipeline-runner": {
168
177
  "attachCamera": {
@@ -1326,9 +1326,11 @@ export declare const pipelineOrchestratorCapability: {
1326
1326
  clearedCameraOverrides: z.ZodNumber;
1327
1327
  }, z.core.$strip>, "mutation">;
1328
1328
  /**
1329
- * Auto tune (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
1329
+ * Auto tune (D745, D755) — DRY RUN. Recommends ONE detector family
1330
+ * (YOLOv9) for the whole cluster from each node's static hardware class
1331
+ * and the measured latency table: per device, the most accurate model
1332
+ * that sustains at least `minSessionsPerDevice` parallel sessions at the
1333
+ * camera rate with the headroom kept free (no load input), and lists every write
1332
1334
  * the apply would make: the node model pins set, the enrichment pins and
1333
1335
  * model-bound thresholds removed (node level and per camera), and the
1334
1336
  * per-camera detector thresholds cleared. Writes nothing. Step
@@ -1337,15 +1339,13 @@ export declare const pipelineOrchestratorCapability: {
1337
1339
  */
1338
1340
  readonly planAutoTune: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1339
1341
  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>>;
1342
+ minSessionsPerDevice: z.ZodDefault<z.ZodNumber>;
1344
1343
  }, z.core.$strip>, z.ZodObject<{
1345
1344
  planHash: z.ZodString;
1346
1345
  family: z.ZodLiteral<"yolov9">;
1347
1346
  headroom: z.ZodNumber;
1348
- whatIf: z.ZodBoolean;
1347
+ minSessionsPerDevice: z.ZodNumber;
1348
+ cameraFps: z.ZodNumber;
1349
1349
  generatedAt: z.ZodNumber;
1350
1350
  nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1351
1351
  nodeId: z.ZodString;
@@ -1372,35 +1372,18 @@ export declare const pipelineOrchestratorCapability: {
1372
1372
  }>>;
1373
1373
  enabled: z.ZodBoolean;
1374
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
1375
  chosen: z.ZodNullable<z.ZodObject<{
1394
1376
  modelId: z.ZodString;
1395
1377
  p50Ms: z.ZodNumber;
1396
1378
  fps: z.ZodNumber;
1397
1379
  measured: z.ZodBoolean;
1398
- utilisation: z.ZodNumber;
1380
+ capacitySessions: z.ZodNumber;
1399
1381
  personRecall: z.ZodNumber;
1400
1382
  }, z.core.$strip>>;
1401
1383
  reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1402
- kind: z.ZodLiteral<"fits">;
1403
- utilisation: z.ZodNumber;
1384
+ kind: z.ZodLiteral<"capacity">;
1385
+ sessions: z.ZodNumber;
1386
+ minSessions: z.ZodNumber;
1404
1387
  }, z.core.$strip>, z.ZodObject<{
1405
1388
  kind: z.ZodLiteral<"tie-faster">;
1406
1389
  over: z.ZodString;
@@ -1412,13 +1395,11 @@ export declare const pipelineOrchestratorCapability: {
1412
1395
  limitedBy: z.ZodString;
1413
1396
  }, z.core.$strip>, z.ZodObject<{
1414
1397
  kind: z.ZodLiteral<"no-fit-lightest">;
1415
- utilisation: z.ZodNumber;
1398
+ sessions: z.ZodNumber;
1399
+ minSessions: z.ZodNumber;
1416
1400
  }, z.core.$strip>, z.ZodObject<{
1417
1401
  kind: z.ZodLiteral<"derived-latency">;
1418
1402
  modelId: z.ZodString;
1419
- }, z.core.$strip>, z.ZodObject<{
1420
- kind: z.ZodLiteral<"estimated-load">;
1421
- observedForMs: z.ZodNullable<z.ZodNumber>;
1422
1403
  }, z.core.$strip>, z.ZodObject<{
1423
1404
  kind: z.ZodLiteral<"cpu-device">;
1424
1405
  }, z.core.$strip>, z.ZodObject<{
@@ -1453,8 +1434,9 @@ export declare const pipelineOrchestratorCapability: {
1453
1434
  }, z.core.$strip>], "kind">>>;
1454
1435
  }, z.core.$strip>>>;
1455
1436
  reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1456
- kind: z.ZodLiteral<"fits">;
1457
- utilisation: z.ZodNumber;
1437
+ kind: z.ZodLiteral<"capacity">;
1438
+ sessions: z.ZodNumber;
1439
+ minSessions: z.ZodNumber;
1458
1440
  }, z.core.$strip>, z.ZodObject<{
1459
1441
  kind: z.ZodLiteral<"tie-faster">;
1460
1442
  over: z.ZodString;
@@ -1466,13 +1448,11 @@ export declare const pipelineOrchestratorCapability: {
1466
1448
  limitedBy: z.ZodString;
1467
1449
  }, z.core.$strip>, z.ZodObject<{
1468
1450
  kind: z.ZodLiteral<"no-fit-lightest">;
1469
- utilisation: z.ZodNumber;
1451
+ sessions: z.ZodNumber;
1452
+ minSessions: z.ZodNumber;
1470
1453
  }, z.core.$strip>, z.ZodObject<{
1471
1454
  kind: z.ZodLiteral<"derived-latency">;
1472
1455
  modelId: z.ZodString;
1473
- }, z.core.$strip>, z.ZodObject<{
1474
- kind: z.ZodLiteral<"estimated-load">;
1475
- observedForMs: z.ZodNullable<z.ZodNumber>;
1476
1456
  }, z.core.$strip>, z.ZodObject<{
1477
1457
  kind: z.ZodLiteral<"cpu-device">;
1478
1458
  }, z.core.$strip>, z.ZodObject<{
@@ -1557,6 +1537,7 @@ export declare const pipelineOrchestratorCapability: {
1557
1537
  readonly applyAutoTune: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1558
1538
  planHash: z.ZodString;
1559
1539
  headroom: z.ZodDefault<z.ZodNumber>;
1540
+ minSessionsPerDevice: z.ZodDefault<z.ZodNumber>;
1560
1541
  }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
1561
1542
  kind: z.ZodLiteral<"applied">;
1562
1543
  planHash: z.ZodString;
@@ -1590,7 +1571,8 @@ export declare const pipelineOrchestratorCapability: {
1590
1571
  planHash: z.ZodString;
1591
1572
  family: z.ZodLiteral<"yolov9">;
1592
1573
  headroom: z.ZodNumber;
1593
- whatIf: z.ZodBoolean;
1574
+ minSessionsPerDevice: z.ZodNumber;
1575
+ cameraFps: z.ZodNumber;
1594
1576
  generatedAt: z.ZodNumber;
1595
1577
  nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1596
1578
  nodeId: z.ZodString;
@@ -1617,35 +1599,18 @@ export declare const pipelineOrchestratorCapability: {
1617
1599
  }>>;
1618
1600
  enabled: z.ZodBoolean;
1619
1601
  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
1602
  chosen: z.ZodNullable<z.ZodObject<{
1639
1603
  modelId: z.ZodString;
1640
1604
  p50Ms: z.ZodNumber;
1641
1605
  fps: z.ZodNumber;
1642
1606
  measured: z.ZodBoolean;
1643
- utilisation: z.ZodNumber;
1607
+ capacitySessions: z.ZodNumber;
1644
1608
  personRecall: z.ZodNumber;
1645
1609
  }, z.core.$strip>>;
1646
1610
  reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1647
- kind: z.ZodLiteral<"fits">;
1648
- utilisation: z.ZodNumber;
1611
+ kind: z.ZodLiteral<"capacity">;
1612
+ sessions: z.ZodNumber;
1613
+ minSessions: z.ZodNumber;
1649
1614
  }, z.core.$strip>, z.ZodObject<{
1650
1615
  kind: z.ZodLiteral<"tie-faster">;
1651
1616
  over: z.ZodString;
@@ -1657,13 +1622,11 @@ export declare const pipelineOrchestratorCapability: {
1657
1622
  limitedBy: z.ZodString;
1658
1623
  }, z.core.$strip>, z.ZodObject<{
1659
1624
  kind: z.ZodLiteral<"no-fit-lightest">;
1660
- utilisation: z.ZodNumber;
1625
+ sessions: z.ZodNumber;
1626
+ minSessions: z.ZodNumber;
1661
1627
  }, z.core.$strip>, z.ZodObject<{
1662
1628
  kind: z.ZodLiteral<"derived-latency">;
1663
1629
  modelId: z.ZodString;
1664
- }, z.core.$strip>, z.ZodObject<{
1665
- kind: z.ZodLiteral<"estimated-load">;
1666
- observedForMs: z.ZodNullable<z.ZodNumber>;
1667
1630
  }, z.core.$strip>, z.ZodObject<{
1668
1631
  kind: z.ZodLiteral<"cpu-device">;
1669
1632
  }, z.core.$strip>, z.ZodObject<{
@@ -1698,8 +1661,9 @@ export declare const pipelineOrchestratorCapability: {
1698
1661
  }, z.core.$strip>], "kind">>>;
1699
1662
  }, z.core.$strip>>>;
1700
1663
  reasons: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1701
- kind: z.ZodLiteral<"fits">;
1702
- utilisation: z.ZodNumber;
1664
+ kind: z.ZodLiteral<"capacity">;
1665
+ sessions: z.ZodNumber;
1666
+ minSessions: z.ZodNumber;
1703
1667
  }, z.core.$strip>, z.ZodObject<{
1704
1668
  kind: z.ZodLiteral<"tie-faster">;
1705
1669
  over: z.ZodString;
@@ -1711,13 +1675,11 @@ export declare const pipelineOrchestratorCapability: {
1711
1675
  limitedBy: z.ZodString;
1712
1676
  }, z.core.$strip>, z.ZodObject<{
1713
1677
  kind: z.ZodLiteral<"no-fit-lightest">;
1714
- utilisation: z.ZodNumber;
1678
+ sessions: z.ZodNumber;
1679
+ minSessions: z.ZodNumber;
1715
1680
  }, z.core.$strip>, z.ZodObject<{
1716
1681
  kind: z.ZodLiteral<"derived-latency">;
1717
1682
  modelId: z.ZodString;
1718
- }, z.core.$strip>, z.ZodObject<{
1719
- kind: z.ZodLiteral<"estimated-load">;
1720
- observedForMs: z.ZodNullable<z.ZodNumber>;
1721
1683
  }, z.core.$strip>, z.ZodObject<{
1722
1684
  kind: z.ZodLiteral<"cpu-device">;
1723
1685
  }, z.core.$strip>, z.ZodObject<{
@@ -1855,17 +1817,27 @@ export declare const pipelineOrchestratorCapability: {
1855
1817
  }, z.core.$strip>>>;
1856
1818
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1857
1819
  /**
1858
- * Load balancing (D748) — shares proportional to each node's measured
1859
- * capacity at the models Auto tune would pick, iterated (≤ 3 rounds)
1860
- * until the shares stop moving; per device, an ADVISORY session cap.
1861
- * Writes nothing.
1820
+ * Load balancing (D748, D755) — shares proportional to each node's
1821
+ * capacity in parallel sessions: from the latency table at the models
1822
+ * Auto tune picks (`hardware`), or from node benchmark results
1823
+ * (`benchmark`, each node without results falling back to `hardware` and
1824
+ * saying so). The automatic shares are exactly this answer. Per device,
1825
+ * an ADVISORY session cap. Writes nothing.
1862
1826
  */
1863
1827
  readonly suggestShares: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1864
1828
  headroom: z.ZodDefault<z.ZodNumber>;
1829
+ source: z.ZodDefault<z.ZodEnum<{
1830
+ hardware: "hardware";
1831
+ benchmark: "benchmark";
1832
+ }>>;
1865
1833
  }, z.core.$strip>, z.ZodObject<{
1866
1834
  headroom: z.ZodNumber;
1835
+ source: z.ZodEnum<{
1836
+ hardware: "hardware";
1837
+ benchmark: "benchmark";
1838
+ }>;
1867
1839
  cameraFps: z.ZodNumber;
1868
- iterations: z.ZodNumber;
1840
+ minSessionsPerDevice: z.ZodNumber;
1869
1841
  nodes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1870
1842
  nodeId: z.ZodString;
1871
1843
  share: z.ZodNullable<z.ZodNumber>;
@@ -1879,6 +1851,14 @@ export declare const pipelineOrchestratorCapability: {
1879
1851
  suggestedMaxSessions: z.ZodNullable<z.ZodNumber>;
1880
1852
  }, z.core.$strip>>>;
1881
1853
  skippedReason: z.ZodNullable<z.ZodString>;
1854
+ capacitySource: z.ZodNullable<z.ZodEnum<{
1855
+ hardware: "hardware";
1856
+ benchmark: "benchmark";
1857
+ }>>;
1858
+ capacityFallback: z.ZodNullable<z.ZodEnum<{
1859
+ "no-benchmark-results": "no-benchmark-results";
1860
+ "partial-benchmark-results": "partial-benchmark-results";
1861
+ }>>;
1882
1862
  }, z.core.$strip>>>;
1883
1863
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1884
1864
  /**
@@ -1890,7 +1870,8 @@ export declare const pipelineOrchestratorCapability: {
1890
1870
  readonly getEffectiveShares: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
1891
1871
  source: z.ZodEnum<{
1892
1872
  manual: "manual";
1893
- auto: "auto";
1873
+ hardware: "hardware";
1874
+ benchmark: "benchmark";
1894
1875
  }>;
1895
1876
  policy: z.ZodEnum<{
1896
1877
  "least-loaded": "least-loaded";
@@ -1904,6 +1885,14 @@ export declare const pipelineOrchestratorCapability: {
1904
1885
  eligible: z.ZodBoolean;
1905
1886
  configuredPct: z.ZodNumber;
1906
1887
  effectivePct: z.ZodNumber;
1888
+ capacitySource: z.ZodNullable<z.ZodEnum<{
1889
+ hardware: "hardware";
1890
+ benchmark: "benchmark";
1891
+ }>>;
1892
+ capacityFallback: z.ZodNullable<z.ZodEnum<{
1893
+ "no-benchmark-results": "no-benchmark-results";
1894
+ "partial-benchmark-results": "partial-benchmark-results";
1895
+ }>>;
1907
1896
  devices: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1908
1897
  deviceKey: z.ZodString;
1909
1898
  eligible: z.ZodBoolean;
@@ -1915,14 +1904,17 @@ export declare const pipelineOrchestratorCapability: {
1915
1904
  deviceWeights: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>;
1916
1905
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
1917
1906
  /**
1918
- * Load balancing (D750) — switch between automatic and manual shares.
1919
- * Going manual seeds the sliders with the current automatic shares (one
1920
- * atomic write), so nothing jumps; going automatic recomputes at once.
1907
+ * Load balancing (D750, D755) — switch the share source: `hardware`
1908
+ * (automatic, from static capacity), `benchmark` (automatic, from node
1909
+ * benchmark results) or `manual`. Going manual seeds the sliders with the
1910
+ * current automatic shares (one atomic write), so nothing jumps; going
1911
+ * to an automatic source recomputes at once.
1921
1912
  */
1922
1913
  readonly setShareSource: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1923
1914
  source: z.ZodEnum<{
1924
1915
  manual: "manual";
1925
- auto: "auto";
1916
+ hardware: "hardware";
1917
+ benchmark: "benchmark";
1926
1918
  }>;
1927
1919
  }, z.core.$strip>, z.ZodObject<{
1928
1920
  success: z.ZodLiteral<true>;
@@ -1932,6 +1924,7 @@ export declare const pipelineOrchestratorCapability: {
1932
1924
  deviceId: z.ZodNumber;
1933
1925
  }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
1934
1926
  stepToggles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1927
+ stepSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
1935
1928
  stepOverridesByDevice: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
1936
1929
  modelId: z.ZodOptional<z.ZodString>;
1937
1930
  settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -1977,6 +1970,21 @@ export declare const pipelineOrchestratorCapability: {
1977
1970
  }, z.core.$strip>, z.ZodObject<{
1978
1971
  success: z.ZodLiteral<true>;
1979
1972
  }, z.core.$strip>, "mutation">;
1973
+ /**
1974
+ * Write or clear one step's CAMERA-WIDE settings (D754) — the fields this
1975
+ * camera overrides on every accelerator it runs on. `settings` is the
1976
+ * whole field-level bag for that step (only the overridden keys; a
1977
+ * model-bound field travels with its binding key); `null` or `{}` clears
1978
+ * it. Merged at dispatch between the node base and the per-(node,device)
1979
+ * override, key by key.
1980
+ */
1981
+ readonly setCameraStepSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1982
+ deviceId: z.ZodNumber;
1983
+ addonId: z.ZodString;
1984
+ settings: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1985
+ }, z.core.$strip>, z.ZodObject<{
1986
+ success: z.ZodLiteral<true>;
1987
+ }, z.core.$strip>, "mutation">;
1980
1988
  /** Write or clear the wholesale per-agent pipeline override. Pass `pipeline: null` to drop the override. */
1981
1989
  readonly setCameraPipelineForAgent: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1982
1990
  deviceId: z.ZodNumber;
package/dist/client.js CHANGED
@@ -6082,6 +6082,7 @@ function createDeviceProxy(api, binding, opts) {
6082
6082
  setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
6083
6083
  getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
6084
6084
  setCameraStepOverride: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepOverride", "mutation", input),
6085
+ setCameraStepSettings: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepSettings", "mutation", input),
6085
6086
  setCameraPipelineForAgent: (input) => dispatchSystem("pipelineOrchestrator", "setCameraPipelineForAgent", "mutation", input),
6086
6087
  resolvePipeline: (input) => dispatchSystem("pipelineOrchestrator", "resolvePipeline", "query", input),
6087
6088
  getCameraSwitches: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSwitches", "query", input),
package/dist/client.mjs CHANGED
@@ -6081,6 +6081,7 @@ function createDeviceProxy(api, binding, opts) {
6081
6081
  setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
6082
6082
  getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
6083
6083
  setCameraStepOverride: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepOverride", "mutation", input),
6084
+ setCameraStepSettings: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepSettings", "mutation", input),
6084
6085
  setCameraPipelineForAgent: (input) => dispatchSystem("pipelineOrchestrator", "setCameraPipelineForAgent", "mutation", input),
6085
6086
  resolvePipeline: (input) => dispatchSystem("pipelineOrchestrator", "resolvePipeline", "query", input),
6086
6087
  getCameraSwitches: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSwitches", "query", input),
@@ -6672,6 +6672,13 @@ export type AppRouter = TrpcCoreRouter<{
6672
6672
  output: z.infer<typeof pipelineOrchestratorCapability.methods.setCameraStepOverride.output>;
6673
6673
  meta: object;
6674
6674
  }>;
6675
+ setCameraStepSettings: TRPCMutationProcedure<{
6676
+ input: {
6677
+ [x: string]: unknown;
6678
+ } & z.input<typeof pipelineOrchestratorCapability.methods.setCameraStepSettings.input>;
6679
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.setCameraStepSettings.output>;
6680
+ meta: object;
6681
+ }>;
6675
6682
  setCameraPipelineForAgent: TRPCMutationProcedure<{
6676
6683
  input: {
6677
6684
  [x: string]: unknown;
@@ -300,7 +300,7 @@ export interface DeviceProxy {
300
300
  readonly notificationRules: Pick<InferDeviceProxyCap<typeof notificationRulesCapability>, 'setDeviceMuted'>;
301
301
  readonly osdManager: Pick<InferDeviceProxyCap<typeof osdManagerCapability>, 'getDeviceOsd' | 'getSourceCatalog' | 'setSlotBinding' | 'clearSlotBinding' | 'previewSlot' | 'renderDevice'>;
302
302
  readonly pipelineExecutor: Pick<InferDeviceProxyCap<typeof pipelineExecutorCapability>, 'runPipeline' | 'runPipelineBatch'>;
303
- readonly pipelineOrchestrator: Pick<InferDeviceProxyCap<typeof pipelineOrchestratorCapability>, 'assignPipeline' | 'unassignPipeline' | 'setPipelineDevicePin' | 'getPipelineDevicePin' | 'getPipelineAssignment' | 'getCameraMetrics' | 'assignAudio' | 'unassignAudio' | 'getAudioAssignment' | 'getCameraSettings' | 'setCameraStepToggle' | 'getCameraStepOverrides' | 'setCameraStepOverride' | 'setCameraPipelineForAgent' | 'resolvePipeline' | 'getCameraSwitches' | 'setCameraSwitch' | 'getCameraStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
303
+ readonly pipelineOrchestrator: Pick<InferDeviceProxyCap<typeof pipelineOrchestratorCapability>, 'assignPipeline' | 'unassignPipeline' | 'setPipelineDevicePin' | 'getPipelineDevicePin' | 'getPipelineAssignment' | 'getCameraMetrics' | 'assignAudio' | 'unassignAudio' | 'getAudioAssignment' | 'getCameraSettings' | 'setCameraStepToggle' | 'getCameraStepOverrides' | 'setCameraStepOverride' | 'setCameraStepSettings' | 'setCameraPipelineForAgent' | 'resolvePipeline' | 'getCameraSwitches' | 'setCameraSwitch' | 'getCameraStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
304
304
  readonly pipelineRunner: Pick<InferDeviceProxyCap<typeof pipelineRunnerCapability>, 'detachCamera' | 'getCameraMetrics' | 'requestOccupancyBurst' | 'runDetailSubtree' | 'parkTrackFrame' | 'getParkedTrackFrame' | 'releaseParkedTrackFrames'>;
305
305
  readonly plateGallery: Pick<InferDeviceProxyCap<typeof plateGalleryCapability>, 'listPlates' | 'getPlateByTrack'>;
306
306
  readonly recordingArchive: Pick<InferDeviceProxyCap<typeof recordingArchiveCapability>, 'getDeviceConfig' | 'locateSegment' | 'readSegmentBytes' | 'readGopBytes' | 'readWindowBytes' | 'setDeviceConfig' | 'rescanStorage' | 'pruneFootage' | 'deleteFootprint' | 'renderGif' | 'renderClip' | 'getStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
@@ -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: 1234 method paths across 165 capabilities.
9
+ * Coverage: 1235 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: 511 methods carry a device reference, of which
10
- * 161 are on SYSTEM-scope caps.
9
+ * Coverage: 512 methods carry a device reference, of which
10
+ * 162 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
package/dist/index.d.ts CHANGED
@@ -268,6 +268,7 @@ export { type ProviderMotionData, ProviderMotionDataSchema, providerMotionEvent,
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
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 { diffStepSettings, effectiveStepSettings, fieldsPinnedAtValueBelow, fieldUnitKeys, mergeSettingsBags, settingsBelow, settingValuesEqual, type StepSettingSource, type StepSettingsBag, type StepSettingsLayers, stepSettingSource, withFieldFrom, withoutField, } from './pipeline/step-settings-layers.js';
271
272
  export * from './pipeline/auto-tune/index.js';
272
273
  export * from './pipeline/load-balancing/index.js';
273
274
  export { deriveRootFaceRefineRect, ROOT_FACE_REFINE_INPUT_PX, ROOT_FACE_REFINE_SCALE, } from './pipeline/root-face-crop.js';