@camstack/addon-pipeline 1.2.64 → 1.2.67

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.
Files changed (89) hide show
  1. package/dist/audio-analyzer/index.js +1 -1
  2. package/dist/audio-analyzer/index.mjs +1 -1
  3. package/dist/detection-pipeline/index.js +2 -2
  4. package/dist/detection-pipeline/index.mjs +2 -2
  5. package/dist/{dist-DKrqeIfS.js → dist-B6GWr9am.js} +151 -6
  6. package/dist/{dist-B9_C-QmC.mjs → dist-BEbyhqoG.mjs} +146 -7
  7. package/dist/{event-loop-stall-monitor-CnJ5JGA2.js → event-loop-stall-monitor-BHOEgVnP.js} +1 -1
  8. package/dist/{event-loop-stall-monitor-BucTbe9v.mjs → event-loop-stall-monitor-BNyf5yEt.mjs} +1 -1
  9. package/dist/motion-wasm/index.js +1 -1
  10. package/dist/motion-wasm/index.mjs +1 -1
  11. package/dist/pipeline-runner/index.js +144 -14
  12. package/dist/pipeline-runner/index.mjs +144 -14
  13. package/dist/recorder/index.js +114 -3
  14. package/dist/recorder/index.mjs +114 -3
  15. package/dist/remote-restream-BYbAsgUf.js +89 -0
  16. package/dist/remote-restream-Ci7RXNGb.mjs +66 -0
  17. package/dist/session-decode/decode-worker-child.js +1 -1
  18. package/dist/session-decode/decode-worker-child.mjs +1 -1
  19. package/dist/stream-broker/_stub.js +2 -2
  20. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DkDAcqBW.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BkKnIpb0.mjs} +2 -2
  21. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ircnzt0s.mjs +26 -0
  22. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CJAUKSrT.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DU7u9EJt.mjs} +1 -1
  23. package/dist/stream-broker/{hostInit-C-peB-6a.mjs → hostInit-y3zWHWoe.mjs} +2 -2
  24. package/dist/stream-broker/index.js +172 -36
  25. package/dist/stream-broker/index.mjs +172 -36
  26. package/dist/stream-broker/remoteEntry.js +1 -1
  27. package/dist/{worker-protocol-CQHY2NeB.mjs → worker-protocol-CBg9bqCs.mjs} +1 -1
  28. package/dist/{worker-protocol-CDkbdSuM.js → worker-protocol-qzaozj7t.js} +1 -1
  29. package/package.json +1 -1
  30. package/dist/remote-restream-BeHi78PZ.mjs +0 -25
  31. package/dist/remote-restream-CO36Sr30.js +0 -36
  32. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C2tu4c14.mjs +0 -26
  33. package/python/__pycache__/inference_pool.cpython-312.pyc +0 -0
  34. package/python/__pycache__/inference_pool.cpython-313.pyc +0 -0
  35. package/python/__pycache__/inference_pool.cpython-314.pyc +0 -0
  36. package/python/__pycache__/test_inference_pool_backpressure.cpython-314.pyc +0 -0
  37. package/python/__pycache__/test_inference_pool_coreml_cache.cpython-314.pyc +0 -0
  38. package/python/__pycache__/test_inference_pool_device_selection.cpython-314.pyc +0 -0
  39. package/python/__pycache__/test_inference_pool_layout.cpython-314.pyc +0 -0
  40. package/python/__pycache__/test_inference_pool_preprocess.cpython-314.pyc +0 -0
  41. package/python/__pycache__/yamnet_audio.cpython-314.pyc +0 -0
  42. package/python/postprocessors/__pycache__/__init__.cpython-312.pyc +0 -0
  43. package/python/postprocessors/__pycache__/__init__.cpython-313.pyc +0 -0
  44. package/python/postprocessors/__pycache__/__init__.cpython-314.pyc +0 -0
  45. package/python/postprocessors/__pycache__/_safety.cpython-313.pyc +0 -0
  46. package/python/postprocessors/__pycache__/arcface.cpython-312.pyc +0 -0
  47. package/python/postprocessors/__pycache__/arcface.cpython-313.pyc +0 -0
  48. package/python/postprocessors/__pycache__/arcface.cpython-314.pyc +0 -0
  49. package/python/postprocessors/__pycache__/clip.cpython-312.pyc +0 -0
  50. package/python/postprocessors/__pycache__/clip.cpython-313.pyc +0 -0
  51. package/python/postprocessors/__pycache__/clip.cpython-314.pyc +0 -0
  52. package/python/postprocessors/__pycache__/ctc.cpython-312.pyc +0 -0
  53. package/python/postprocessors/__pycache__/ctc.cpython-313.pyc +0 -0
  54. package/python/postprocessors/__pycache__/ctc.cpython-314.pyc +0 -0
  55. package/python/postprocessors/__pycache__/rfdetr.cpython-312.pyc +0 -0
  56. package/python/postprocessors/__pycache__/saliency.cpython-312.pyc +0 -0
  57. package/python/postprocessors/__pycache__/saliency.cpython-313.pyc +0 -0
  58. package/python/postprocessors/__pycache__/saliency.cpython-314.pyc +0 -0
  59. package/python/postprocessors/__pycache__/scrfd.cpython-312.pyc +0 -0
  60. package/python/postprocessors/__pycache__/scrfd.cpython-313.pyc +0 -0
  61. package/python/postprocessors/__pycache__/scrfd.cpython-314.pyc +0 -0
  62. package/python/postprocessors/__pycache__/softmax.cpython-312.pyc +0 -0
  63. package/python/postprocessors/__pycache__/softmax.cpython-313.pyc +0 -0
  64. package/python/postprocessors/__pycache__/softmax.cpython-314.pyc +0 -0
  65. package/python/postprocessors/__pycache__/ssd.cpython-312.pyc +0 -0
  66. package/python/postprocessors/__pycache__/ssd.cpython-313.pyc +0 -0
  67. package/python/postprocessors/__pycache__/ssd.cpython-314.pyc +0 -0
  68. package/python/postprocessors/__pycache__/test_clip.cpython-312-pytest-9.1.1.pyc +0 -0
  69. package/python/postprocessors/__pycache__/test_clip.cpython-313-pytest-9.1.1.pyc +0 -0
  70. package/python/postprocessors/__pycache__/test_ctc.cpython-312-pytest-9.1.1.pyc +0 -0
  71. package/python/postprocessors/__pycache__/test_ctc.cpython-312.pyc +0 -0
  72. package/python/postprocessors/__pycache__/test_ctc.cpython-313-pytest-9.1.1.pyc +0 -0
  73. package/python/postprocessors/__pycache__/test_ctc.cpython-313.pyc +0 -0
  74. package/python/postprocessors/__pycache__/test_rfdetr.cpython-312-pytest-9.1.1.pyc +0 -0
  75. package/python/postprocessors/__pycache__/test_saliency.cpython-312-pytest-9.1.1.pyc +0 -0
  76. package/python/postprocessors/__pycache__/test_saliency.cpython-313-pytest-9.1.1.pyc +0 -0
  77. package/python/postprocessors/__pycache__/test_softmax.cpython-312-pytest-9.1.1.pyc +0 -0
  78. package/python/postprocessors/__pycache__/test_yolo_nms.cpython-312-pytest-9.1.1.pyc +0 -0
  79. package/python/postprocessors/__pycache__/test_yolo_nms.cpython-39.pyc +0 -0
  80. package/python/postprocessors/__pycache__/yamnet.cpython-312.pyc +0 -0
  81. package/python/postprocessors/__pycache__/yamnet.cpython-313.pyc +0 -0
  82. package/python/postprocessors/__pycache__/yamnet.cpython-314.pyc +0 -0
  83. package/python/postprocessors/__pycache__/yolo.cpython-312.pyc +0 -0
  84. package/python/postprocessors/__pycache__/yolo.cpython-313.pyc +0 -0
  85. package/python/postprocessors/__pycache__/yolo.cpython-314.pyc +0 -0
  86. package/python/postprocessors/__pycache__/yolo.cpython-39.pyc +0 -0
  87. package/python/postprocessors/__pycache__/yolo_seg.cpython-312.pyc +0 -0
  88. package/python/postprocessors/__pycache__/yolo_seg.cpython-313.pyc +0 -0
  89. package/python/postprocessors/__pycache__/yolo_seg.cpython-314.pyc +0 -0
@@ -1,6 +1,6 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "../chunk-DnnnRqeS.mjs";
2
- import { $ as webrtcSessionCapability, At as union, B as maskUrlCredentials, C as addonWidgetsSourceCapability, Ct as discriminatedUnion, D as createHwAccelCache, Dt as object, E as cameraStreamsCapability, Et as number, F as egressTransportFromRequest, J as resolveEgressDecodeHwAccel, Ot as record, P as egressTranscodeSharingKey, St as boolean, Tt as literal, Z as streamBrokerCapability, _t as parseProfileBrokerId, at as isSoftwareDecode, bt as _enum, ct as DeviceFeature, et as errMsg, f as EncodeProfileSchema, ft as isEvent, ht as nodePin, it as invocationFromEncodeProfile, jt as EventCategory, kt as string, lt as DeviceType, mt as makeSourceBrokerId, nt as Fmp4BoxSplitter, ot as BaseAddon, pt as makeProfileBrokerId, rt as buildFfmpegArgs$1, st as CAM_PROFILE_ORDER, tt as AUDIO_PRESETS, ut as createEvent, v as RATE_CONTROL_RELAXED, x as RingBuffer, xt as array, y as RATE_CONTROL_TIGHT } from "../dist-B9_C-QmC.mjs";
3
- import { n as profileForStreamId } from "../remote-restream-BeHi78PZ.mjs";
2
+ import { At as string, Ct as boolean, D as cameraStreamsCapability, Dt as number, Et as literal, F as egressTranscodeSharingKey, I as egressTransportFromRequest, Mt as EventCategory, O as createHwAccelCache, Ot as object, Q as streamBrokerCapability, S as RingBuffer, St as array, V as maskUrlCredentials, Y as resolveEgressDecodeHwAccel, at as invocationFromEncodeProfile, ct as CAM_PROFILE_ORDER, dt as createEvent, et as webrtcSessionCapability, f as EncodeProfileSchema, gt as nodePin, ht as makeSourceBrokerId, it as buildFfmpegArgs$1, jt as union, kt as record, lt as DeviceFeature, mt as makeProfileBrokerId, nt as AUDIO_PRESETS, ot as isSoftwareDecode, pt as isEvent, rt as Fmp4BoxSplitter, st as BaseAddon, tt as errMsg, ut as DeviceType, v as RATE_CONTROL_RELAXED, vt as parseProfileBrokerId, w as addonWidgetsSourceCapability, wt as discriminatedUnion, xt as _enum, y as RATE_CONTROL_TIGHT } from "../dist-BEbyhqoG.mjs";
3
+ import { n as profileForStreamId, r as parseRestreamPath } from "../remote-restream-Ci7RXNGb.mjs";
4
4
  import { createRequire } from "node:module";
5
5
  import * as crypto$1 from "node:crypto";
6
6
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
@@ -1927,10 +1927,12 @@ var RtspRestreamer = class {
1927
1927
  const overPackets = primePackets.length > bound.maxPackets;
1928
1928
  const served = [];
1929
1929
  let withheld = 0;
1930
+ let detectionIntentServed = 0;
1930
1931
  for (const sessionId of ready) {
1931
1932
  const session = this.sessions.get(sessionId);
1932
1933
  if (!session) continue;
1933
- if (session.isMuted()) {
1934
+ const detectionIntent = session.isDetectionIntent();
1935
+ if (session.isMuted() && !detectionIntent) {
1934
1936
  if (!fromRing || spanMs > LIVE_EDGE_MAX_SPAN_MS) {
1935
1937
  this.dropsWithheldMutedLiveEdge++;
1936
1938
  withheld++;
@@ -1942,6 +1944,7 @@ var RtspRestreamer = class {
1942
1944
  withheld++;
1943
1945
  continue;
1944
1946
  }
1947
+ if (detectionIntent) detectionIntentServed++;
1945
1948
  served.push(sessionId);
1946
1949
  }
1947
1950
  if (withheld > 0) this.reportDrops(false);
@@ -1956,7 +1959,8 @@ var RtspRestreamer = class {
1956
1959
  clients: served.length,
1957
1960
  boundSpanMs: bound.maxSpanMs,
1958
1961
  boundPackets: bound.maxPackets,
1959
- withheld
1962
+ withheld,
1963
+ detectionIntentServed
1960
1964
  }
1961
1965
  });
1962
1966
  const items = primePackets.map((packet) => ({
@@ -2295,6 +2299,16 @@ var RtspSession = class {
2295
2299
  /** When true, this session receives video-only (no audio RTP). */
2296
2300
  muted;
2297
2301
  /**
2302
+ * The consumer purpose this session DECLARED on its dial path (see
2303
+ * `restream-intent.ts`), or `null` when it declared none — which is every
2304
+ * consumer except the per-session detection decode.
2305
+ *
2306
+ * Kept separate from {@link muted} deliberately: `isMuted()` is shared by the
2307
+ * WebRTC/HomeKit loopback legs, and the join rule that keys on it must stay
2308
+ * true for them. Only an explicit declaration changes behaviour.
2309
+ */
2310
+ intent;
2311
+ /**
2298
2312
  * Latch for a `muted` (local-decoder loopback) session that has started
2299
2313
  * dropping video packets on socket backlog. While set, every non-keyframe
2300
2314
  * packet is dropped — even after the backlog clears — until the next keyframe
@@ -2302,11 +2316,12 @@ var RtspSession = class {
2302
2316
  * of mid-GOP with reference-broken (missing P-frame) packets.
2303
2317
  */
2304
2318
  droppingUntilKeyframe = false;
2305
- constructor(socket, sdp, onClose, muted) {
2319
+ constructor(socket, sdp, onClose, muted, intent) {
2306
2320
  this.socket = socket;
2307
2321
  this.sdp = sdp;
2308
2322
  this.onClose = onClose;
2309
2323
  this.muted = muted ?? false;
2324
+ this.intent = intent ?? null;
2310
2325
  this.sessionId = randomUUID().replace(/-/g, "").slice(0, 16);
2311
2326
  socket.on("data", (chunk) => {
2312
2327
  if (this.closed) return;
@@ -2332,6 +2347,16 @@ var RtspSession = class {
2332
2347
  return this.muted;
2333
2348
  }
2334
2349
  /**
2350
+ * True only for a session that dialed the DETECTION path
2351
+ * (`DETECTION_MUTED_PATH_SUFFIX`). Read by
2352
+ * `RtspRestreamer.servePendingSessionsRtp` to exempt this session from the
2353
+ * live-edge join withhold — a detection decode has decode headroom by
2354
+ * construction and drains the burst instead of accumulating it.
2355
+ */
2356
+ isDetectionIntent() {
2357
+ return this.intent === "detection";
2358
+ }
2359
+ /**
2335
2360
  * Diagnostic snapshot consumed by `StreamBroker.listClients` (Phase 10).
2336
2361
  * Gives operators the information needed to identify a specific RTSP
2337
2362
  * session: where it's coming from, whether it's active, when it
@@ -2670,9 +2695,7 @@ var RtspListenServer = class RtspListenServer {
2670
2695
  async dispatch(socket, requestBuffer) {
2671
2696
  const uriMatch = (requestBuffer.split("\r\n")[0] ?? "").match(/\s(rtsp:\/\/[^\s]+)\s/);
2672
2697
  const pathMatch = (uriMatch ? uriMatch[1] : "").match(/rtsp:\/\/[^/]+(\/.*?)(?:\s|$)/);
2673
- const streamPath = pathMatch ? pathMatch[1].replace(/^\//, "").replace(/\/trackID=\d+$/, "") : "";
2674
- const isMuted = streamPath.endsWith("/muted");
2675
- const lookupPath = isMuted ? streamPath.slice(0, -6) : streamPath;
2698
+ const { lookupPath, muted: isMuted, intent } = parseRestreamPath(pathMatch ? pathMatch[1].replace(/^\//, "").replace(/\/trackID=\d+$/, "") : "");
2676
2699
  const restreamer = this.restreamers.get(lookupPath);
2677
2700
  if (!restreamer) {
2678
2701
  socket.write(`RTSP/1.0 404 Not Found\r\nCSeq: 1\r\n\r\n`);
@@ -2701,7 +2724,7 @@ var RtspListenServer = class RtspListenServer {
2701
2724
  const session = new RtspSession(socket, isMuted ? restreamer.getMutedSdp() ?? restreamer.getSdp() ?? "" : restreamer.getSdp() ?? "", () => {
2702
2725
  restreamer.removeSession(session.getSessionId());
2703
2726
  releaseOnce();
2704
- }, isMuted);
2727
+ }, isMuted, intent);
2705
2728
  restreamer.addSession(session);
2706
2729
  releaseOnce();
2707
2730
  socket.unshift(Buffer.from(requestBuffer, "ascii"));
@@ -9813,7 +9836,8 @@ var LAZY_DIAL_SOURCE_TYPES = new Set([
9813
9836
  "rtsp",
9814
9837
  "rtmp",
9815
9838
  "rfc4571",
9816
- "flv"
9839
+ "flv",
9840
+ "http"
9817
9841
  ]);
9818
9842
  /**
9819
9843
  * True when a source must not be dialed until {@link StreamBroker.hasDemand}
@@ -14694,9 +14718,67 @@ var StreamBrokerManager = class StreamBrokerManager {
14694
14718
  setProfileMapPersister(persister) {
14695
14719
  this.profileMapPersister = persister;
14696
14720
  }
14697
- loadPersistedProfileMap(entries) {
14721
+ /**
14722
+ * Rehydrate the persisted profile map, then reconcile it against the live
14723
+ * device registry — a blob written before a camera was deleted otherwise
14724
+ * resurrects that camera's slots on every boot.
14725
+ *
14726
+ * Call AFTER `setProfileMapPersister` / `setApiAccess`: the prune persists
14727
+ * what it drops, and reads the registry to decide what to drop.
14728
+ */
14729
+ async loadPersistedProfileMap(entries) {
14698
14730
  this.assignments.clear();
14699
14731
  for (const [k, v] of entries) this.assignments.set(k, v);
14732
+ await this.pruneAssignmentsForRemovedDevices();
14733
+ }
14734
+ /**
14735
+ * Drop assignments for devices the registry no longer knows.
14736
+ *
14737
+ * Deletion decided by a fallible read, so every way the read can be WRONG
14738
+ * skips the prune outright (D49): no api yet, a failed enumeration, or an
14739
+ * empty enumeration standing next to persisted assignments — that last one
14740
+ * is device-restore not having run, and believing it would wipe the whole
14741
+ * fleet's slot map on one bad boot. Nothing here is retried: the next boot
14742
+ * reads the same blob, and A3 already removes a device at the moment it is
14743
+ * deleted.
14744
+ */
14745
+ async pruneAssignmentsForRemovedDevices() {
14746
+ const persistedCount = this.assignments.size;
14747
+ if (persistedCount === 0) return;
14748
+ const api = this.api;
14749
+ if (!api) {
14750
+ this.logger.warn("profile-map prune skipped — no api access", { meta: { persistedCount } });
14751
+ return;
14752
+ }
14753
+ let devices;
14754
+ try {
14755
+ devices = await api.deviceManager.listAll.query({});
14756
+ } catch (err) {
14757
+ this.logger.warn("profile-map prune skipped — deviceManager.listAll failed", { meta: {
14758
+ persistedCount,
14759
+ error: errMsg(err)
14760
+ } });
14761
+ return;
14762
+ }
14763
+ if (devices.length === 0) {
14764
+ this.logger.warn("profile-map prune skipped — device enumeration came back empty", { meta: { persistedCount } });
14765
+ return;
14766
+ }
14767
+ const known = new Set(devices.map((d) => d.id));
14768
+ const dropped = [...this.assignments.keys()].filter((deviceId) => !known.has(deviceId));
14769
+ if (dropped.length === 0) {
14770
+ this.logger.debug("profile-map prune: every persisted device still exists", { meta: { persistedCount } });
14771
+ return;
14772
+ }
14773
+ for (const deviceId of dropped) {
14774
+ this.assignments.delete(deviceId);
14775
+ this.logger.debug("profile-map prune dropped a device that no longer exists", { tags: { deviceId } });
14776
+ }
14777
+ this.persistProfileMap();
14778
+ this.logger.info("profile-map prune — dropped assignments for devices that no longer exist", { meta: {
14779
+ dropped,
14780
+ remaining: this.assignments.size
14781
+ } });
14700
14782
  }
14701
14783
  getRtspRestreamProvider() {
14702
14784
  return this.rtspProvider;
@@ -15140,12 +15222,32 @@ var StreamBrokerManager = class StreamBrokerManager {
15140
15222
  }
15141
15223
  async retractDeviceNow(deviceId, opts) {
15142
15224
  const existing = this.cameraStreams.get(deviceId);
15143
- if (!existing) return;
15144
- for (const camStreamId of Array.from(existing.keys())) await this.retractCameraStream({
15225
+ if (existing) for (const camStreamId of Array.from(existing.keys())) await this.retractCameraStream({
15145
15226
  deviceId,
15146
15227
  camStreamId,
15147
15228
  preserveAssignment: opts.preserveAssignments === true
15148
15229
  });
15230
+ if (opts.purgeAssignments === true) this.purgeDeviceAssignments(deviceId);
15231
+ }
15232
+ /**
15233
+ * Forget a device's profile-slot assignments and persist the shrunk map.
15234
+ *
15235
+ * Reachable only from the PERMANENT-removal path. A deleted device that
15236
+ * keeps its entry stays in `listAllProfileSlots` for the life of the
15237
+ * process AND is written straight back into the persisted `profileMap`
15238
+ * blob, so it returns at every boot — which is how 3217/3218 outlived
15239
+ * their cameras.
15240
+ */
15241
+ purgeDeviceAssignments(deviceId) {
15242
+ const existing = this.assignments.get(deviceId);
15243
+ if (!existing) return;
15244
+ const profiles = CAM_PROFILE_ORDER.filter((profile) => existing.map[profile] !== void 0);
15245
+ this.assignments.delete(deviceId);
15246
+ this.persistProfileMap();
15247
+ this.logger.info("device removed — dropping its profile-slot assignments", {
15248
+ tags: { deviceId },
15249
+ meta: { profiles }
15250
+ });
15149
15251
  }
15150
15252
  async runDeviceCatalogOperation(deviceId, operation) {
15151
15253
  const previous = this.deviceCatalogOperations.get(deviceId) ?? Promise.resolve();
@@ -17430,13 +17532,28 @@ var StreamBrokerManager = class StreamBrokerManager {
17430
17532
  }
17431
17533
  /**
17432
17534
  * Whether a stream is warmed BY DEFAULT (no explicit override): the device's
17433
- * `high` profile, on a non-battery camera. Single source of truth used by both
17434
- * the broker-config default (`applyPreBufferConfig`) and the settings-patch
17435
- * override synthesis (`defaultStreamPreBuffer`) so a seconds-only patch never
17436
- * silently disables the high-profile warm default.
17535
+ * `high` profile, on a non-battery camera, from a source that is worth
17536
+ * keeping hot. Single source of truth used by both the broker-config default
17537
+ * (`applyPreBufferConfig`) and the settings-patch override synthesis
17538
+ * (`defaultStreamPreBuffer`) so a seconds-only patch never silently disables
17539
+ * the high-profile warm default.
17540
+ *
17541
+ * `pull-http` is excluded. The warm default is not free storage — it is
17542
+ * PERMANENT SYNTHETIC DEMAND: `StreamBroker.hasDemand()` returns true on
17543
+ * `_preBufferEnabled` alone, so a warm stream is dialed forever regardless
17544
+ * of subscribers. For an MJPEG relay that means the ingest transcode
17545
+ * (`HTTP_MJPEG_H264_OUTPUT_ARGS` → libx264) runs forever too. Measured on
17546
+ * the live hub: the terminal addon's glances relay burned ~12% of a core
17547
+ * and held its PTY open for hours with zero viewers. The trade the warm
17548
+ * default buys elsewhere — a seeded GOP instead of a ~5-8 s cold start —
17549
+ * does not apply here: an MJPEG relay is cheap to re-dial (no camera
17550
+ * handshake) and expensive to keep hot. An explicit operator ON override
17551
+ * still warms it; this is a DEFAULT, not a ban.
17437
17552
  */
17438
17553
  isDefaultWarm(deviceId, camStreamId) {
17439
- return findProfileForStream(this.assignments.get(deviceId)?.map ?? {}, camStreamId) === "high" && !this.deviceHasFeature(deviceId, DeviceFeature.BatteryOperated);
17554
+ if (!(findProfileForStream(this.assignments.get(deviceId)?.map ?? {}, camStreamId) === "high")) return false;
17555
+ if (this.deviceHasFeature(deviceId, DeviceFeature.BatteryOperated)) return false;
17556
+ return this.cameraStreams.get(deviceId)?.get(camStreamId)?.kind !== "pull-http";
17440
17557
  }
17441
17558
  /**
17442
17559
  * Default `StreamPreBuffer` for a brand-new override entry — mirrors
@@ -33597,6 +33714,17 @@ var StreamBrokerAddon = class extends BaseAddon {
33597
33714
  });
33598
33715
  });
33599
33716
  const profileMapState = this.state("profileMap", ProfileMapSchema, {});
33717
+ const profileMapPersister = (assignments) => {
33718
+ const obj = {};
33719
+ for (const [deviceId, assignment] of assignments) obj[`${deviceId}`] = {
33720
+ map: { ...assignment.map },
33721
+ auto: assignment.auto
33722
+ };
33723
+ profileMapState.set(obj).catch((err) => {
33724
+ this.ctx.logger.warn("Failed to persist profile map", { meta: { error: errMsg(err) } });
33725
+ });
33726
+ };
33727
+ this.brokerManager.setProfileMapPersister(profileMapPersister);
33600
33728
  try {
33601
33729
  const obj = await profileMapState.get();
33602
33730
  const loaded = /* @__PURE__ */ new Map();
@@ -33613,22 +33741,11 @@ var StreamBrokerAddon = class extends BaseAddon {
33613
33741
  auto: val.auto
33614
33742
  });
33615
33743
  }
33616
- this.brokerManager.loadPersistedProfileMap(loaded);
33744
+ await this.brokerManager.loadPersistedProfileMap(loaded);
33617
33745
  this.ctx.logger.info("Loaded persisted profile map", { meta: { deviceCount: loaded.size } });
33618
33746
  } catch (err) {
33619
33747
  this.ctx.logger.warn("Failed to load profile map", { meta: { error: errMsg(err) } });
33620
33748
  }
33621
- const profileMapPersister = (assignments) => {
33622
- const obj = {};
33623
- for (const [deviceId, assignment] of assignments) obj[`${deviceId}`] = {
33624
- map: { ...assignment.map },
33625
- auto: assignment.auto
33626
- };
33627
- profileMapState.set(obj).catch((err) => {
33628
- this.ctx.logger.warn("Failed to persist profile map", { meta: { error: errMsg(err) } });
33629
- });
33630
- };
33631
- this.brokerManager.setProfileMapPersister(profileMapPersister);
33632
33749
  const probeSnapshotsState = this.state("probeSnapshots", ProbedSnapshotMapSchema, {});
33633
33750
  this.probeSnapshotsState = probeSnapshotsState;
33634
33751
  try {
@@ -33710,12 +33827,7 @@ var StreamBrokerAddon = class extends BaseAddon {
33710
33827
  });
33711
33828
  this.subscribe({ category: EventCategory.DeviceUnregistered }, (event) => {
33712
33829
  const deviceId = event.data.deviceId;
33713
- if (typeof deviceId === "number") this.brokerManager?.retractDevice(deviceId, { preserveAssignments: true }).catch((err) => {
33714
- this.ctx.logger.warn("device retract failed", {
33715
- tags: { deviceId },
33716
- meta: { error: errMsg(err) }
33717
- });
33718
- });
33830
+ if (typeof deviceId === "number") this.handleDeviceRemoved(deviceId);
33719
33831
  });
33720
33832
  this.subscribe({ category: EventCategory.StreamParamsChanged }, (event) => {
33721
33833
  const deviceId = event.data.deviceId;
@@ -33917,6 +34029,30 @@ var StreamBrokerAddon = class extends BaseAddon {
33917
34029
  this.brokerManager = null;
33918
34030
  }
33919
34031
  /**
34032
+ * A device was PERMANENTLY removed (`DeviceUnregistered`).
34033
+ *
34034
+ * Retracts its cam-streams AND purges its profile-slot assignments.
34035
+ * `preserveAssignments` alone is the provider-restart contract — the streams
34036
+ * come back and the operator's manual slot choices must survive — but a
34037
+ * DELETED device that keeps its assignments stays in `listAllProfileSlots`
34038
+ * for the life of the process and is written straight back into the
34039
+ * persisted `profileMap` blob, so it returns at every boot. Live ids
34040
+ * 3217/3218 outlived their cameras exactly that way.
34041
+ */
34042
+ async handleDeviceRemoved(deviceId) {
34043
+ try {
34044
+ await this.brokerManager?.retractDevice(deviceId, {
34045
+ preserveAssignments: true,
34046
+ purgeAssignments: true
34047
+ });
34048
+ } catch (err) {
34049
+ this.ctx.logger.warn("device retract failed", {
34050
+ tags: { deviceId },
34051
+ meta: { error: errMsg(err) }
34052
+ });
34053
+ }
34054
+ }
34055
+ /**
33920
34056
  * Emit one `stream-broker.metrics-snapshot` event per active broker.
33921
34057
  * BrokerStats already aggregates everything UI consumers need
33922
34058
  * (status, fps, bitrate, codec, subscriber count). Skipped when no
@@ -30,7 +30,7 @@ async function d(e) {
30
30
  }
31
31
  }
32
32
  async function f() {
33
- return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DkDAcqBW.mjs")).catch((e) => {
33
+ return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BkKnIpb0.mjs")).catch((e) => {
34
34
  throw l = void 0, e;
35
35
  }), l;
36
36
  }
@@ -1,4 +1,4 @@
1
- import { g as NativeLeaseSettingsSchema, h as NativeLeaseAdmissionSchema, l as DEFAULT_NATIVE_LEASE_SETTINGS } from "./dist-B9_C-QmC.mjs";
1
+ import { g as NativeLeaseSettingsSchema, h as NativeLeaseAdmissionSchema, l as DEFAULT_NATIVE_LEASE_SETTINGS } from "./dist-BEbyhqoG.mjs";
2
2
  //#region src/session-decode/native-lease-config.ts
3
3
  /**
4
4
  * Resolution of the native-frame lease knobs for one decode worker.
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-DKrqeIfS.js");
1
+ const require_dist = require("./dist-B6GWr9am.js");
2
2
  //#region src/session-decode/native-lease-config.ts
3
3
  /**
4
4
  * Resolution of the native-frame lease knobs for one decode worker.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-pipeline",
3
- "version": "1.2.64",
3
+ "version": "1.2.67",
4
4
  "description": "Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",
@@ -1,25 +0,0 @@
1
- //#region src/pipeline-runner/remote-restream.ts
2
- /**
3
- * Runner-side mode selection (pure): whether an attach payload routes this
4
- * camera through the remote-source leg. Absent `frameSource` (a pre-P2c
5
- * payload) and `local-broker` both take the co-located broker path.
6
- */
7
- function isRemoteRestream(frameSource) {
8
- return frameSource !== void 0 && frameSource.kind === "remote-restream";
9
- }
10
- /**
11
- * Resolve WHICH broker profile a camStream id feeds for a device (pure).
12
- *
13
- * `getStreamWithCodec` targets a PROFILE (its assigned camStream), while the
14
- * runner is dispatched with camStream ids (`motionStreamId` /
15
- * `detectionStreamId`). The broker's profile slots carry the mapping
16
- * (`sourceCamStreamId`); a stream no slot feeds returns `null` — the acquire
17
- * fails fast and the caller's backoff retries (the assignment may still be
18
- * propagating).
19
- */
20
- function profileForStreamId(slots, deviceId, streamId) {
21
- for (const slot of slots) if (slot.deviceId === deviceId && slot.sourceCamStreamId === streamId) return slot.profile;
22
- return null;
23
- }
24
- //#endregion
25
- export { profileForStreamId as n, isRemoteRestream as t };
@@ -1,36 +0,0 @@
1
- //#region src/pipeline-runner/remote-restream.ts
2
- /**
3
- * Runner-side mode selection (pure): whether an attach payload routes this
4
- * camera through the remote-source leg. Absent `frameSource` (a pre-P2c
5
- * payload) and `local-broker` both take the co-located broker path.
6
- */
7
- function isRemoteRestream(frameSource) {
8
- return frameSource !== void 0 && frameSource.kind === "remote-restream";
9
- }
10
- /**
11
- * Resolve WHICH broker profile a camStream id feeds for a device (pure).
12
- *
13
- * `getStreamWithCodec` targets a PROFILE (its assigned camStream), while the
14
- * runner is dispatched with camStream ids (`motionStreamId` /
15
- * `detectionStreamId`). The broker's profile slots carry the mapping
16
- * (`sourceCamStreamId`); a stream no slot feeds returns `null` — the acquire
17
- * fails fast and the caller's backoff retries (the assignment may still be
18
- * propagating).
19
- */
20
- function profileForStreamId(slots, deviceId, streamId) {
21
- for (const slot of slots) if (slot.deviceId === deviceId && slot.sourceCamStreamId === streamId) return slot.profile;
22
- return null;
23
- }
24
- //#endregion
25
- Object.defineProperty(exports, "isRemoteRestream", {
26
- enumerable: true,
27
- get: function() {
28
- return isRemoteRestream;
29
- }
30
- });
31
- Object.defineProperty(exports, "profileForStreamId", {
32
- enumerable: true,
33
- get: function() {
34
- return profileForStreamId;
35
- }
36
- });
@@ -1,26 +0,0 @@
1
- //#region \0virtual:mf:__mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
2
- var e = "__mf_init__virtual:mf:__mfe_internal__addon_stream_broker_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
3
- if (!t) {
4
- let n, r, i = new Promise((e, t) => {
5
- n = e, r = t;
6
- });
7
- t = globalThis[e] = {
8
- initPromise: i,
9
- initResolve: n,
10
- initReject: r
11
- };
12
- }
13
- var n = t.initPromise, r = "__mf_module_cache__";
14
- globalThis[r] ||= {
15
- share: {},
16
- remote: {}
17
- }, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
18
- var i = globalThis[r], a, o = (e) => {
19
- e.ACCESSORY_LABEL, e.ALEXA_EGRESS_PROFILE, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.AUDIO_ANALYSIS_CAP_NAME, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AUDIO_PRESETS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionCandidateResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionJobSchema, e.AdoptionJobStateSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionOutcomeSchema, e.AdoptionReleaseInputSchema, e.AdoptionStatusSchema, e.AgentLoadSummarySchema, e.AirQualitySensorStatusSchema, e.AlarmArmModeSchema, e.AlarmPanelStatusSchema, e.AlarmStateSchema, e.AlertSchema, e.AlertSeveritySchema, e.AlertSourceSchema, e.AlertStatusSchema, e.AmbientLightSensorStatusSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationActionSchema, e.AutomationConditionOperatorSchema, e.AutomationConditionSchema, e.AutomationControlStatusSchema, e.AutomationRecipeSchema, e.AutomationTriggerSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BASE_LIVE_EGRESS_PROFILE, e.BATTERY_DEVICE_PROFILE, e.BacklightModeSchema, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BoundingBoxSchema, e.BrightnessStatusSchema, e.BrokerAddInputSchema, e.BrokerAudioClientSchema, e.BrokerClientsSchema, e.BrokerConnectionDetailsSchema, e.BrokerConsumerAttributionSchema, e.BrokerConsumerKindSchema, e.BrokerDecodedClientSchema, e.BrokerEncodedClientSchema, e.BrokerGetStateInputSchema, e.BrokerInfoSchema, e.BrokerProviderInfoSchema, e.BrokerPublishInputSchema, e.BrokerRegistryStatusSchema, e.BrokerRtspClientSchema, e.BrokerStatsSchema, e.BrokerStatusEnum, e.BrokerStatusSchema, e.BrokerSubscribeInputSchema, e.BrokerSubscribeResultSchema, e.BrokerTestConnectionResultSchema, e.BrokerUnsubscribeInputSchema, e.CAMERA_SWITCH_CATALOG, e.CAMERA_SWITCH_ORDER, e.CAM_PROFILE_ORDER, e.CAPABILITY_NAMES, e.CAPABILITY_ROUTER_KEYS, e.CAP_NAMES_WITH_STATUS, e.CAP_NODE_PIN_CONTEXT_KEY, e.CAP_PROVIDER_KIND_MAP, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CONNECTION_TEST_TIMEOUT_MS, e.CORE_BLOCKS_ADDON_ID, e.CORE_BLOCK_ADDON_PREFIX, e.CamProfileSchema, e.CamStreamDescriptorSchema, e.CamStreamKindSchema, e.CamStreamResolutionSchema, e.CameraAssignmentStatusSchema, e.CameraAudioStatusSchema, e.CameraBrokerProfileSchema, e.CameraBrokerStatusSchema, e.CameraCredentialsSchema, e.CameraCredentialsStatusSchema, e.CameraDecoderShmSchema, e.CameraDecoderStatusSchema, e.CameraDetectionPhaseSchema, e.CameraDetectionProvisioningSchema, e.CameraDetectionProvisioningStateSchema, e.CameraDetectionStatusSchema, e.CameraMetricsSchema, e.CameraMetricsWithDeviceIdSchema, e.CameraMotionStatusSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusDegradationReasonSchema, e.CameraStatusDegradationSchema, e.CameraStatusSchema, e.CameraStatusStageSchema, e.CameraStreamSchema, e.CameraSwitchAuthoritySchema, e.CameraSwitchGroupSchema, e.CameraSwitchIdSchema, e.CameraSwitchSchema, e.CameraSwitchUnavailableReasonSchema, e.CandidateQueryFilterSchema, e.CapScopeSchema, e.CapabilityBindingsSchema, e.CarbonMonoxideStatusSchema, e.ChargingStatus, e.ClientNetworkStatsSchema, e.ClimateControlStatusSchema, e.ClipPlaybackSchema, e.ClipSchema, e.ClusterAddonNodeDeploymentSchema, e.ClusterAddonStatusEntrySchema, e.CollectionColumnSchema, e.CollectionIndexSchema, e.ColorStatusSchema, e.ConfigEntrySchema, e.ConfigSectionWithValuesSchema, e.ConfigTabDeclarationSchema, e.ConnectionTestDescriptorSchema, e.ConnectionTestInputSchema, e.ConnectionTestOutcomeSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoreBlockCompileResultSchema, e.CoreBlockInputSchema, e.CoreBlockPlacementSchema, e.CoreBlockSchema, e.CoreBlockStatusSchema, e.CoverStateSchema, e.CoverStatusSchema, e.CreateApiKeyInputSchema, e.CreateApiKeyResultSchema, e.CreateIntegrationInputSchema, e.CreateScopedTokenInputSchema, e.CreateScopedTokenResultSchema, e.CreateUserInputSchema, e.CustomActionInputSchema, e.CustomModelDescriptorSchema, e.DATAPLANE_SECRET_HEADER, e.DECLARED_DEVICE_SWEEP_LIMIT, e.DECLARED_INTEGRATION_FIXED_KEY, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_DETAIL_CROP_CONVENTION, e.DEFAULT_EVENTS_BAND_BUFFER_SEC, e.DEFAULT_EVENT_COLOR, e.DEFAULT_FEATURES, e.DEFAULT_NATIVE_LEASE_SETTINGS, e.DEFAULT_RETENTION, e.DEFAULT_SCRUB_THUMBNAIL_PRESET, e.DETAIL_CROP_PADDING_FIELD, e.DETAIL_CROP_PADDING_KEY, e.DETAIL_CROP_SECTION_ID, e.DETAIL_CROP_SQUARE_KEY, e.DETECTION_PIPELINE_CAP_NAME, e.DEVICE_BACKEND_TO_FORMAT, e.DEVICE_CAP_NAMES, e.DEVICE_PROFILES, e.DEVICE_SCOPED_CAPS, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATE_READERS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_CONTROL_KIND, e.DEVICE_TYPE_INFO, e.DataStoreEngineInfoSchema, e.DayNightModeSchema, e.DayNightOptionsSchema, e.DayNightSettingsPatchSchema, e.DayNightStatusSchema, e.DeclaredDevices, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetailCropConventionSchema, e.DetectionSourceSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENTFUL_CAP_NAMES, e.EVENT_KIND_BY_CAP, e.EVENT_PAD_MS, e.EVENT_TAXONOMY, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.EgressEncodeSchema, e.EgressRateControlSchema, e.EgressTranscodeRequestSchema, e.EgressTranscodeSchema, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, e.EventKindSchema, e.EventKindsForDeviceSchema, e.EventMediaArtifactSchema, e.EventMediaCoverageSchema, e.EventMediaKindSchema, e.EventMediaProductionSchema, e.EventSourceType, e.ExportDownloadSchema, e.ExportOptionsSchema, e.ExportRecordSchema, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExportSpeedSchema, e.ExportStateSchema, e.ExportTimelapseSchema, e.ExposedDeviceSchema, e.ExposureModeSchema, e.ExpressionBindingSourceSchema, e.ExpressionEvalError, e.ExpressionFieldBindingSchema, e.ExpressionGlobalBindingSchema, e.ExpressionLiteralBindingSchema, e.ExpressionParseError, e.ExpressionSourceSchema, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.Fmp4BoxSplitter, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.HAP_AUDIO_BASE, e.HAP_AUDIO_BITRATE_KBPS, e.HAP_AUDIO_VBV_KBITS, e.HAP_KEYFRAME_INTERVAL_SEC, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.ImageContractSchema, e.ImageContractStateSchema, e.ImageRotateSchema, e.ImageSettingsOptionsSchema, e.ImageSettingsPatchSchema, e.ImageSettingsStatusSchema, e.ImageStatusSchema, e.IngestOwnerSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.KeyEventSchema, e.LOG_LEVEL_RANK, e.LabelAttributionSchema, e.LabelDefinitionSchema, e.LabelTierSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LinkedDeviceSchema, e.LinkedDevicesModeSchema, e.LlmDefaultSchema, e.LlmDefaultSelectorSchema, e.LlmErrorCodeSchema, e.LlmGenerateBaseInputSchema, e.LlmGenerateErrSchema, e.LlmGenerateOkSchema, e.LlmGenerateResultSchema, e.LlmImageSchema, e.LlmNodeModelSchema, e.LlmProfileKindDescriptorSchema, e.LlmProfileKindSchema, e.LlmProfileSchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmUsageRollupSchema, e.LlmUsageSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoginMethodContributionSchema, e.LoginStageEnum, e.MACRO_LABELS, e.MAX_CONDITION_DEPTH, e.MAX_CONDITION_LEAVES, e.MAX_EXPRESSION_AST_NODES, e.MAX_EXPRESSION_BINDINGS, e.MAX_EXPRESSION_CALL_ARGS, e.MAX_EXPRESSION_EVAL_STEPS, e.MAX_EXPRESSION_SOURCE_LENGTH, e.METHOD_ACCESS_MAP, e.MODEL_FORMATS, e.MOTION_TRIGGER_FEATURE, e.ManagedModelCatalogEntrySchema, e.ManagedModelRefSchema, e.ManagedRuntimeConfigSchema, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileInfoSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.ModelSubstitutionSchema, e.ModelVariantGroupSchema, e.MotionAnalysisResultSchema, e.MotionEventSchema, e.MotionOnMotionChangedDataSchema, e.MotionRegionSchema, e.MotionSourceEnum, e.MotionSourcesSchema, e.MotionStatusSchema, e.MotionTriggerRuntimeStateSchema, e.MotionTriggerStatusSchema, e.MotionZoneOptionsSchema, e.MotionZonePatchSchema, e.MotionZoneRegionSchema, e.MotionZoneStatusSchema, e.MqttBrokerStatusSchema, e.MutationFilterSchema, e.NATIVE_LEASE_ACTIVITY_FIELD, e.NATIVE_LEASE_ACTIVITY_KEY, e.NATIVE_LEASE_ADMISSION_FIELD, e.NATIVE_LEASE_ADMISSION_KEY, e.NATIVE_LEASE_BUDGET_FIELD, e.NATIVE_LEASE_BUDGET_KEY, e.NATIVE_LEASE_SECTION_ID, e.NATIVE_LEASE_TTL_FIELD, e.NATIVE_LEASE_TTL_KEY, e.NC_BASE_CONDITION_KEYS, e.NC_CONDITION_CATALOG, e.NC_HISTORY_LIMIT_DEFAULT, e.NC_HISTORY_LIMIT_MAX, e.NC_MAX_PER_TRACK_IMMEDIATE, e.NC_SNOOZE_MAX_MINUTES, e.NC_TAXONOMY, e.NativeCropBboxSchema, e.NativeCropRefSchema, e.NativeCropResultSchema, e.NativeDetectionSchema, e.NativeLeaseAdmissionSchema, e.NativeLeaseSettingsSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NcAlarmConfigSchema, e.NcAlarmModeCoverageSchema, e.NcAlarmSettingsPatchSchema, e.NcAlarmSettingsSchema, e.NcConditionDescriptorSchema, e.NcConditionsSchema, e.NcCrossingSchema, e.NcDeliverySchema, e.NcDeviceStateConditionSchema, e.NcHistoryEntrySchema, e.NcHistoryFilterSchema, e.NcHistoryRecordKindSchema, e.NcHistoryStatusSchema, e.NcHistorySubjectSchema, e.NcMediaFrameSchema, e.NcMediaPolicySchema, e.NcOccupancyConditionSchema, e.NcPlateMatcherSchema, e.NcRuleActionSchema, e.NcRuleActionSequenceSchema, e.NcRuleActionsSchema, e.NcRuleInputSchema, e.NcRuleNotificationButtonSchema, e.NcRulePatchSchema, e.NcRuleSchema, e.NcRuleTargetSchema, e.NcScheduleSchema, e.NcScheduleWindowSchema, e.NcSnoozeInputSchema, e.NcSnoozeSchema, e.NcSnoozeScopeSchema, e.NcSnoozeSuppressedSchema, e.NcSystemEventConditionSchema, e.NcSystemEventKindSchema, e.NcTaxonomyEntrySchema, e.NcTaxonomySchema, e.NcTestResultSchema, e.NcThrottleGranularitySchema, e.NcThrottleSchema, e.NcZoneConditionSchema, e.NetworkAccessStatusSchema, e.NetworkAddressSchema, e.NetworkEndpointSchema, e.NotificationActionIconSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OPS_LOG_DEFAULT_LIMIT, e.OPS_LOG_RING_DEFAULT_MAX, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, e.OpsLogDomainSchema, e.OpsLogEntrySchema, e.OpsLogOpSchema, e.OpsLogQueryInputSchema, e.OpsLogReasonSchema, e.OrchestratorMetricsSchema, e.OsdOverlayKindEnum, e.OsdOverlayPatchSchema, e.OsdOverlaySchema, e.OsdPositionEnum, e.OsdRenderOutcomeEnum, e.OsdRenderResultSchema, e.OsdSlotBindingSchema, e.OsdSlotViewSchema, e.OsdSourceOptionSchema, e.OsdSourceSchema, e.OsdSourceValueTypeEnum, e.OsdStatusSchema, e.PET_FEEDER_MANUAL_FEED_MAX, e.PET_FEEDER_MANUAL_FEED_MIN, e.PIPELINE_FLOW_CAPABILITY_NAMES, e.PIPELINE_OWNER_CAPABILITY_NAMES, e.PRIVACY_MASK_CAP_NAME, e.PROVIDER_KIND_CAP_NAMES, e.PYTHON_SCRIPT, e.PackageUpdateSchema, e.PackageVersionInfoSchema, e.PasskeyLoginMethodSchema, e.PasskeySummarySchema, e.PcmSampleFormatSchema, e.PerScopeBreakdownSchema, e.PetFeederStatusSchema, e.PickStreamPreferencesSchema, e.PickStreamRequirementsSchema, e.PickedCamStreamSchema, e.PipelineAssignmentSchema, e.PipelineDefaultStepSchema, e.PipelineEngineChoiceSchema, e.PipelineRunResultBridge, e.PipelineStepInputSchema, e.PipelineValidationIssueSchema, e.PipelineValidationResultSchema, e.PlaceholderReasonSchema, e.PolygonPointSchema, e.PowerMeterStatusSchema, e.PresenceStatusSchema, e.PressureSensorStatusSchema, e.PrivacyMaskOptionsSchema, e.PrivacyMaskPatchSchema, e.PrivacyMaskRegionSchema, e.PrivacyMaskShapeSchema, e.PrivacyMaskStatusSchema, e.ProfileRtspEntrySchema, e.ProfileSlotSchema, e.ProfileSlotStatusSchema, e.ProviderStatusSchema, e.PtzAutotrackRuntimeStateSchema, e.PtzAutotrackSettingsSchema, e.PtzAutotrackStatusSchema, e.PtzAutotrackTargetOptionSchema, e.PtzMoveCommandSchema, e.PtzOptionsSchema, e.PtzPositionSchema, e.PtzPresetSchema, e.PtzStatusSchema, e.QueryFilterSchema, e.RATE_CONTROL_RELAXED, e.RATE_CONTROL_TIGHT, e.REACHABILITY_FAILURES_TO_OFFLINE, e.REACHABILITY_POLL_INTERVAL_MS, e.REACHABILITY_PROBE_TIMEOUT_MS, e.RECOGNITION_TYPES, e.RESERVED_BINDING_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadGopBytesResultSchema, e.ReadSegmentBytesResultSchema, e.ReadinessRegistry, e.ReadinessTimeoutError, e.RecentTracksPageSchema, e.RecentTracksQueryInput, e.RecordingAvailabilitySchema, e.RecordingBandModeSchema, e.RecordingBandSchema, e.RecordingBandTriggersSchema, e.RecordingConfigSchema, e.RecordingDaysSchema, e.RecordingDeviceUsageSchema, e.RecordingLocationUsageSchema, e.RecordingManifestSchema, e.RecordingRangeSchema, e.RecordingRetentionSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RedirectLoginMethodSchema, e.RelocateFootageClassSchema, e.RelocateFootageInputSchema, e.RelocateJobSchema, e.RelocateJobStateSchema, e.RelocateMediaInputSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, e.RetrainAnnotationDraftSchema, e.RetrainAnnotationKindSchema, e.RetrainAnnotationSchema, e.RetrainAnnotationSourceSchema, e.RetrainAssistResultSchema, e.RetrainAssistSubjectSchema, e.RetrainCopyRefusalSchema, e.RetrainFrameCandidateSchema, e.RetrainFrameListSchema, e.RetrainFrameSchema, e.RetrainFrameSelectionSchema, e.RetrainMacroClassSchema, e.RetrainStatusSchema, e.RetrainTrackSchema, e.RetrainTransitionResultSchema, e.RingBuffer, e.RtpSourceSchema, e.RtspRestreamEntrySchema, e.RunnerCameraConfigSchema, e.RunnerCameraDeviceUIFields, e.RunnerFrameSourceSchema, e.RunnerInferenceDeviceSchema, e.RunnerLocalLoadSchema, e.RunnerLocalMetricsSchema, e.SCOPE_PRESETS, e.SCRUB_THUMBNAIL_PRESETS, e.SCRUB_THUMBNAIL_PRESET_LABELS, e.SCRUB_THUMBNAIL_PRESET_ORDER, e.SENSOR_FEATURES, e.SENSOR_MAP, e.SOURCE_INFO_METADATA_KEY, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SYSTEM_CAP_NAMES, e.SceneCheckSchema, e.SceneConditionSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.ScrubThumbnailPresetSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.SensorEventSchema, e.ServerBootModeSchema, e.ServerPackageStatusSchema, e.ServerRollbackInfoSchema, e.ServerUpdateActionResultSchema, e.ServerUpdateCheckResultSchema, e.ServerUpdateStateSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SmokeStatusSchema, e.SmtpStatusSchema, e.SnapshotImageSchema, e.SourceInfoSchema, e.SpatialDetectionSchema, e.SsoBridgeClaimsSchema, e.StartEmbeddedInputSchema, e.StationaryObjectSchema, e.StorageAbortUploadInputSchema, e.StorageBeginDownloadInputSchema, e.StorageBeginDownloadResultSchema, e.StorageBeginUploadInputSchema, e.StorageBeginUploadResultSchema, e.StorageEndDownloadInputSchema, e.StorageFinalizeUploadInputSchema, e.StorageLocationDeclarationSchema, e.StorageLocationRefSchema, e.StorageLocationSchema, e.StorageLocationTypeSchema, e.StorageMigrationClassSchema, e.StorageMigrationDestinationsSchema, e.StorageMigrationFootageMoveInputSchema, e.StorageMigrationInputSchema, e.StorageMigrationJobSchema, e.StorageMigrationLeaseInputSchema, e.StorageMigrationMediaMoveInputSchema, e.StorageMigrationMoveSchema, e.StorageMigrationParticipantSchema, e.StorageMigrationPhaseSchema, e.StorageMigrationPlanSchema, e.StorageProviderInfoSchema, e.StorageReadChunkInputSchema, e.StorageTestLocationResultSchema, e.StorageWriteChunkInputSchema, e.StreamCodecSchema, e.StreamFormatSchema, e.StreamNetworkStatsSchema, e.StreamParamsOptionsSchema, e.StreamParamsStatusSchema, e.StreamProfileConfigSchema, e.StreamProfileOptionsSchema, e.StreamProfilePatchSchema, e.StreamProfileSchema, e.StreamSourceEntrySchema, e.StreamSourceSchema, e.SubscribeAudioChunksInputSchema, e.SubscribeAudioChunksResultSchema, e.SubscribeFramesInputSchema, e.SubscribeFramesResultSchema, e.SwitchStatusSchema, e.SystemMetricsSchema, e.SystemMirror, e.TAXONOMY_COLORS, e.TIMEZONES, e.TRANSCODE_DOWN_MAX_BITRATE_KBPS, e.TRANSCODE_DOWN_MAX_HEIGHT, e.TamperStatusSchema, e.TankStatusSchema, e.TargetKindCapsSchema, e.TargetKindLevelSchema, e.TargetKindSchema, e.TargetSchema, e.TemperatureSensorStatusSchema, e.TerminalInstanceInfoSchema, e.TerminalLegacyCameraSchema, e.TerminalOutputBatchSchema, e.TerminalOutputEventSchema, e.TerminalProfileInfoSchema, e.TerminalSessionInfoSchema, e.TestConnectionResultSchema, e.TestConnectionStatusEnum, e.TestResultSchema, e.TimelapseRuleInputSchema, e.TimelapseRulePatchSchema, e.TimelapseRuleSchema, e.TimelapseTemplateSchema, e.ToastSchema, e.TokenScopeSchema, e.TopologyNodeSchema, e.TopologyProcessSchema, e.TopologyServiceSchema, e.TrackCascadeCountsSchema, e.TrackEnvelopeSchema, e.TrackFlagsPatchSchema, e.TrackFlagsSchema, e.TrackProjectionSchema, e.TrackSchema, e.TrackSourceSchema, e.TrackStateSchema, e.TrackZoneFilterSchema, e.TrackedDetectionSchema, e.TrainingExportDeviceTotalsSchema, e.TrainingExportSummarySchema, e.TurnServerSchema, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, e.UpdateIntegrationInputSchema, e.UpdateStatusSchema, e.UpdateUserInputSchema, e.UserRecordSchema, e.UserSummarySchema, e.VacuumControlStatusSchema, e.VacuumStateSchema, e.ValveStateSchema, e.ValveStatusSchema, e.VectorDeclareIndexInputSchema, e.VectorDeleteByFilterInputSchema, e.VectorDeleteInputSchema, e.VectorDeleteResultSchema, e.VectorFilterSchema, e.VectorGetInputSchema, e.VectorGetResultSchema, e.VectorItemSchema, e.VectorMatchSchema, e.VectorMetadataSchema, e.VectorMetricSchema, e.VectorQueryInputSchema, e.VectorQueryResultSchema, e.VectorStatsInputSchema, e.VectorStatsResultSchema, e.VectorUpsertInputSchema, e.VectorUpsertResultSchema, e.VibrationStatusSchema, e.VideoEncodeSchema, e.WEBRTC_EGRESS_PROFILE, e.WELL_KNOWN_TABS, e.WELL_KNOWN_TAB_MAP, e.WaterHeaterStatusSchema, e.WeatherStatusSchema, e.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WhiteBalanceModeSchema, e.WidgetHostEnum, e.WidgetLoginMethodSchema, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.YAMNET_TO_MACRO, e.ZoneCrossingDirectionSchema, e.ZoneCrossingSchema, e.ZoneKindEnum, e.ZoneRuleModeEnum, e.ZoneRuleSchema, e.ZoneRuleStageEnum, e.ZoneRulesArraySchema, e.ZoneSchema, e.ZoneScopeBreakdownSchema, e.accessoriesCapability, e.accessoryStableId, e.addonPagesCapability, e.addonPagesSourceCapability, e.addonRoutesCapability, e.addonSettingsCapability, e.addonWidgetsCapability, e.addonWidgetsSourceCapability, e.addonsCapability, e.adminUiCapability, e.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioMetricsCapability, e.audioPlanFromEncodeProfile, e.authProviderCapability, e.autoAssignProfiles, e.automationControlCapability, e.backupCapability, e.bareAddonId, e.batteryCapability, e.bestLocationMatch, e.binaryCapability, e.bindAddonActions, e.brightnessCapability, e.brokerCapability, e.buildAddonRouteProvider, e.buildAudioArgs, e.buildEventKindDescriptor, e.buildFfmpegArgs, e.buildInputArgs, e.buildModelVariantGroups, e.buildNcTaxonomy, e.buildStreamParamsConfigSchema, e.buildVideoArgs, e.buttonCapability, e.cameraCredentialsCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.canonicalEgressPlan, e.carbonMonoxideCapability, e.cellsToRects, e.classifyBearerPrincipal, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.collectHydratedFieldEntries, e.collectHydratedFieldValues, e.colorCapability, e.colorForKind, e.compileExpression, e.compileExpressionSafe, e.conditionDepth, e.connectionTestCapability, e.connectivityCapability, e.consumablesCapability, e.contactCapability, e.controlCapability, e.convertUnit, e.coreBlockAddonId, e.coreBlockIdFromAddonId, e.coreBlocksCapability, e.cosineSimilarity, e.countConditionLeaves, e.coverCapability, e.createDeviceProxy, e.createDurableState, e.createEvent, e.createExpressionScope, e.createHwAccelCache, e.createLazyTrpcSource, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.dataStoreProviderCapability, e.dayNightCapability, e.declarationOwnerNodeId, e.decodeVectorBase64, e.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, e.deriveCameraSwitches, e.deriveDetailCropRect, e.deriveRecordingMode, e.describeModelVariant, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceBackendToFormat, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceStateCapability, e.deviceStatusCapability, e.doorbellCapability, e.egressTranscodeSharingKey, e.egressTransportFromRequest, e.embeddingEncoderCapability, e.emitDownForOwnedCaps, e.emitReadiness, e.encodeProfileFromStreamShape, e.encodeVectorBase64, e.enumSensorCapability, e.enumerateInferenceDevices, e.enumerateItemArrayFields, e.enumerateSchemaFields, e.errMsg, e.evaluateAst, e.evaluateExpressionSource, e.evaluateZoneRules, e.event, e.eventEmitterCapability, e.eventsCapability, e.expandCapMethods, e.extractNestedAddonId, e.extractSourceInfoFromMetadata, e.faceGalleryCapability, e.fanControlCapability, e.featureProbeCapability, e.filesystemBrowseCapability, e.findTimezone, e.floodCapability, e.formatForBackend, e.formatForRuntime, e.gasCapability, e.generateAutomationBlock, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.getTaxonomyEntry, e.hasMotionTrigger, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.imageSettingsCapability, e.integrationsCapability, e.intercomCapability, e.invocationFromEncodeProfile, e.isAgentOnlyPlacement, e.isArrayOutputSchema, e.isBaseConditionKey, e.isCollectionArrayMethod, e.isDeployableToAgent, e.isDeviceConfigCap, e.isDeviceScopedCap, e.isEvent, e.isNode, e.isObjectInput, e.isSameAddonId, e.isScheduleActive, e.isSoftwareDecode, e.isVoidInput, e.jobKindSchema, e.kebabToCamel, e.knownValues, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.llmCapability, e.llmRuntimeCapability, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logBannerArgs, e.logDestinationCapability, e.logLevelAtMost, e.loginMethodCapability, e.looseSchema, e.makeProfileBrokerId, a = e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.methodAccessForHttpMethod, e.metricsProviderCapability, e.modelConvertCapability, e.modelDistributorCapability, e.modelFormatForRuntime, e.motionCapability, e.motionDetectionCapability, e.motionTriggerCapability, e.motionZonesCapability, e.mqttBrokerCapability, e.nativeObjectDetectionCapability, e.networkAccessCapability, e.networkQualityCapability, e.nodePin, e.nodesCapability, e.normalizeAddonInitResult, e.normalizeUnit, e.notificationOutputCapability, e.notificationRulesCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.objectInputDeclaresAddonId, e.osdCapability, e.osdManagerCapability, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseProfileBrokerId, e.parseStreamParamsFormPatch, e.petFeederCapability, e.pickAccessoryControl, e.pickDetailCropConvention, e.pickNativeLeaseOverride, e.pickPreferredRtspEntry, e.pickVideoEncoder, e.pickerForCondition, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.principalMayReachAddon, e.privacyMaskCapability, e.procedureAuthKey, e.ptzAutotrackCapability, e.ptzCapability, e.pythonScriptForBackend, e.readDetailCropConvention, e.readDeviceStateFrom, e.readNativeLeaseOverride, e.readNodePin, e.readinessKey, e.rebootCapability, e.recordingCapability, e.recordingExportCapability, e.rectsToCells, e.requiresPython, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveCapMount, e.resolveDetectionRuntime, e.resolveDeviceControlKind, e.resolveDeviceProfile, e.resolveEgressDecodeHwAccel, e.resolveFormat, e.resolveHydratedFieldValue, e.resolveModelFormat, e.resolveMutate, e.resolveRunnerId, e.resolveScrubThumbnailGeometry, e.resolveVariantModelId, e.runInferenceStep, e.runtimeDevices, e.sceneMonitorCapability, e.scopeKey, e.scopesAllowAddon, e.scopesAllowDeviceCap, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.serverManagementCapability, e.setByPath, e.settingsStoreCapability, e.sleep, e.sleepCancellable, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.ssoBridgeCapability, e.startReachabilityPoll, e.stateVocabularyFor, e.storageCapability, e.storageEvictableCapability, e.storageMigrationCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.subKindsOf, e.summarisePrivacyAudio, e.supportedRuntimes, e.switchCapability, e.switchedOffIds, e.synthesizeSourceInfo, e.systemCapability, e.tamperCapability, e.taskLogEntrySchema, e.taskPhaseSchema, e.taskTargetSchema, e.temperatureSensorCapability, e.terminalSessionCapability, e.textToHtml, e.toDeviceSummary, e.toExpressionValue, e.toNodeId, e.toStreamSourceEntry, e.toastCapability, e.tokenize, e.transcodeBody, e.tryConvertUnit, e.turnProviderCapability, e.unitDimension, e.unitsForDimension, e.updateCapability, e.userManagementCapability, e.userPasskeysCapability, e.vacuumControlCapability, e.validateExpressionSource, e.validateRecipeBounds, e.valveCapability, e.vectorDimFromBase64, e.vectorStoreCapability, e.vibrationCapability, e.videoclipsCapability, e.viewerUiCapability, e.waterHeaterCapability, e.weatherCapability, e.webrtcClientHintsSchema, e.webrtcSessionCapability, e.wiringAddonHealthSchema, e.wiringHealthSnapshotSchema, e.wiringNodeHealthSchema, e.wiringProbeKindSchema, e.wiringProbeResultSchema, e.zodEntriesToConfigUI, e.zoneAnalyticsCapability, e.zoneRulesCapability, e.zonesCapability, e.default;
20
- }, s = i.share["default:@camstack/types"];
21
- s === void 0 ? n.then(() => {
22
- if (s = i.share["default:@camstack/types"], s === void 0) throw Error("[Module Federation] Shared module @camstack/types was imported before federation bootstrap finished.");
23
- o(s);
24
- }) : o(s);
25
- //#endregion
26
- export { a as t };