@camstack/addon-pipeline 1.2.77 → 1.2.78

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 (29) hide show
  1. package/dist/{addon-utils-bZcwLaVW.js → addon-utils-C-XbUkiG.js} +1 -1
  2. package/dist/audio-analyzer/index.js +2 -2
  3. package/dist/audio-analyzer/index.mjs +1 -1
  4. package/dist/detection-pipeline/index.js +4 -4
  5. package/dist/detection-pipeline/index.mjs +2 -2
  6. package/dist/{dist-DQZzL0Ri.js → dist-BdVCXl5n.js} +74 -5
  7. package/dist/{dist-HhcoV-Ky.mjs → dist-CsP_DikG.mjs} +74 -5
  8. package/dist/{event-loop-stall-monitor-CBOo1oh_.js → event-loop-stall-monitor-BOu8lGee.js} +1 -1
  9. package/dist/{event-loop-stall-monitor-CqBEWGSZ.mjs → event-loop-stall-monitor-C3cvE_Xk.mjs} +1 -1
  10. package/dist/{lazy-sharp-DIC1rpea.js → lazy-sharp-1LkmyWqV.js} +1 -1
  11. package/dist/motion-wasm/index.js +2 -2
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/pipeline-runner/index.js +4 -4
  14. package/dist/pipeline-runner/index.mjs +3 -3
  15. package/dist/recorder/index.js +293 -34
  16. package/dist/recorder/index.mjs +292 -33
  17. package/dist/session-decode/decode-worker-child.js +2 -2
  18. package/dist/session-decode/decode-worker-child.mjs +1 -1
  19. package/dist/stream-broker/_stub.js +1 -1
  20. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-De_xzvjU.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DUi-lR4R.mjs} +1 -1
  21. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-1QMyGZMB.mjs +26 -0
  22. package/dist/stream-broker/{hostInit-CDS5frmk.mjs → hostInit-DEtsjgBO.mjs} +1 -1
  23. package/dist/stream-broker/index.js +106 -23
  24. package/dist/stream-broker/index.mjs +106 -23
  25. package/dist/stream-broker/remoteEntry.js +1 -1
  26. package/dist/{worker-protocol-DZVGVAPU.js → worker-protocol-B4fPjmXk.js} +1 -1
  27. package/dist/{worker-protocol-BNlLGLBV.mjs → worker-protocol-BRwzX3f_.mjs} +1 -1
  28. package/package.json +1 -1
  29. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DHJSxHH1.mjs +0 -26
@@ -1,4 +1,4 @@
1
- import { At as string, Dt as number, J as recordingExportCapability, Mt as EventCategory, N as deriveRecordingMode, Ot as object, St as array, Z as storageEvictableCapability, _ as OpsLogEntrySchema, b as RECORDING_EXPORT_MAX_READ_BYTES, c as DEFAULT_EVENTS_BAND_BUFFER_SEC, d as EVENT_PAD_MS, ft as hydrateSchema, gt as nodePin, kt as record, p as ExportRecordSchema, q as recordingCapability, st as BaseAddon, tt as errMsg, ut as DeviceType, x as RecordingConfigSchema, yt as selectAssignedProfileSlots } from "../dist-HhcoV-Ky.mjs";
1
+ import { At as string, Dt as number, J as recordingExportCapability, Mt as EventCategory, N as deriveRecordingMode, Ot as object, St as array, Z as storageEvictableCapability, _ as OpsLogEntrySchema, b as RECORDING_EXPORT_MAX_READ_BYTES, c as DEFAULT_EVENTS_BAND_BUFFER_SEC, d as EVENT_PAD_MS, ft as hydrateSchema, gt as nodePin, kt as record, p as ExportRecordSchema, q as recordingCapability, st as BaseAddon, tt as errMsg, ut as DeviceType, x as RecordingConfigSchema, yt as selectAssignedProfileSlots } from "../dist-CsP_DikG.mjs";
2
2
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
3
3
  import { n as createFileDataPlaneHandler, s as parseRangeHeader, t as contentTypeFor } from "../addon-utils-A2S9D7pu.mjs";
4
4
  import { randomUUID } from "node:crypto";
@@ -389,7 +389,21 @@ async function readMfraTable(absPath, fileBytes) {
389
389
  /** How long a table stays served. Directory asks are for recent footage far
390
390
  * more often than not, and a bounded window keeps this store O(day), not
391
391
  * O(uptime): ~30 bytes a segment ⇒ a day across 20 cameras is a few MB. */
392
- var RETAIN_MS = 26 * 36e5;
392
+ var MFRA_RETAIN_MS = 26 * 36e5;
393
+ /**
394
+ * Whether a segment is recent enough for a captured table to ever be served.
395
+ *
396
+ * The gate the FINALIZE path must ask BEFORE reading the file. A live segment
397
+ * always passes; a recovered one almost never does, and capturing it is pure
398
+ * loss twice over — the table is unservable, and the read is a real `open` +
399
+ * two `read`s on the libuv threadpool. The D148 boot reconcile fired 122 400 of
400
+ * them, unawaited and unbounded, behind a 4-thread pool that the live
401
+ * SegmentWriters' own finalize I/O has to share: that is the "segment file
402
+ * never landed" (>30 s) on four cameras at once.
403
+ */
404
+ function isMfraTableServable(startMs, nowMs) {
405
+ return startMs >= nowMs - MFRA_RETAIN_MS;
406
+ }
393
407
  /**
394
408
  * The RAM store the directory reads. Keys are `(deviceId, profile, startMs)`
395
409
  * — exactly how a directory row identifies a segment. Insertion is
@@ -405,7 +419,16 @@ var MfraTableStore = class {
405
419
  key(deviceId, profile, startMs) {
406
420
  return `${deviceId}:${profile}:${startMs}`;
407
421
  }
422
+ /**
423
+ * Keep one table, unless it is already past the serve window.
424
+ *
425
+ * The out-of-window REJECT is not belt-and-braces: `prune` walks the
426
+ * insertion-ordered prefix and stops at the first live entry, so an expired
427
+ * entry appended AFTER a live one is never reachable again. A bulk recovery
428
+ * appends 122 400 of exactly that shape and the store grows without bound.
429
+ */
408
430
  record(deviceId, profile, startMs, table) {
431
+ if (!isMfraTableServable(startMs, this.now())) return;
409
432
  this.tables.set(this.key(deviceId, profile, startMs), {
410
433
  startMs,
411
434
  table
@@ -426,7 +449,7 @@ var MfraTableStore = class {
426
449
  }
427
450
  /** Insertion order is time order, so the expired prefix is contiguous. */
428
451
  prune() {
429
- const cutoff = this.now() - RETAIN_MS;
452
+ const cutoff = this.now() - MFRA_RETAIN_MS;
430
453
  for (const [key, entry] of this.tables) {
431
454
  if (entry.startMs >= cutoff) break;
432
455
  this.tables.delete(key);
@@ -625,6 +648,38 @@ var RecordingIndex = class {
625
648
  segments(deviceId, profile) {
626
649
  return [...this.sortedSegments(deviceId, profile)];
627
650
  }
651
+ /** True when `relPath` is currently indexed for `deviceId`. O(1). */
652
+ hasSegment(deviceId, relPath) {
653
+ return this.byDevice.get(deviceId)?.has(relPath) === true;
654
+ }
655
+ /**
656
+ * Indexed-segment count per HOUR-BUCKET directory (`<dev>/<profile>/Y/M/D/H`)
657
+ * for one (device, profile), in ONE pass over the device's rows.
658
+ *
659
+ * Exists because `SegmentStore.evict` has to answer "does this eviction cover
660
+ * every segment the bucket holds?" for every bucket in the round, and it used
661
+ * to answer it with `segments(deviceId, profile)` — a full COPY of the
662
+ * device-profile archive plus a full `startsWith` scan, PER BUCKET. That is
663
+ * O(buckets x archive), and D148 is what made it bite: before it, a retention
664
+ * round touched a handful of buckets at the retention edge; after it, the
665
+ * recovered backlog made ~8 900 sparse buckets across six weeks evictable in
666
+ * ONE round. Measured on that shape (1.63 M live rows + 122 400 victims):
667
+ * 182 596 ms of uninterrupted main-thread CPU, with no log line, which is the
668
+ * silent 100%-CPU phase the operator saw. One pass answers all of them.
669
+ */
670
+ bucketCounts(deviceId, profile) {
671
+ const out = /* @__PURE__ */ new Map();
672
+ const m = this.byDevice.get(deviceId);
673
+ if (!m) return out;
674
+ for (const s of m.values()) {
675
+ if (s.profile !== profile) continue;
676
+ const cut = s.path.lastIndexOf("/");
677
+ if (cut <= 0) continue;
678
+ const bucketDir = s.path.slice(0, cut);
679
+ out.set(bucketDir, (out.get(bucketDir) ?? 0) + 1);
680
+ }
681
+ return out;
682
+ }
628
683
  /** Aggregate accounting for a device across ALL its locations (use `accountingForLocation` for one location). */
629
684
  accounting(deviceId) {
630
685
  const m = this.byDevice.get(deviceId);
@@ -1257,6 +1312,7 @@ var SegmentStore = class SegmentStore {
1257
1312
  async evict(location, rows) {
1258
1313
  let reclaimed = 0;
1259
1314
  const removed = [];
1315
+ const startedMs = this.deps.now?.() ?? Date.now();
1260
1316
  const byBucket = /* @__PURE__ */ new Map();
1261
1317
  for (const r of rows) {
1262
1318
  const cut = r.path.lastIndexOf("/");
@@ -1265,13 +1321,29 @@ var SegmentStore = class SegmentStore {
1265
1321
  if (group) group.push(r);
1266
1322
  else byBucket.set(bucketDir, [r]);
1267
1323
  }
1324
+ const census = /* @__PURE__ */ new Map();
1325
+ const countsFor = (deviceId, profile) => {
1326
+ const key = `${deviceId}:${profile}`;
1327
+ const cached = census.get(key);
1328
+ if (cached) return cached;
1329
+ const counts = this.deps.index.bucketCounts(deviceId, profile);
1330
+ census.set(key, counts);
1331
+ return counts;
1332
+ };
1333
+ const chunkSize = this.deps.evictChunkSize ?? SegmentStore.DEFAULT_EVICT_CHUNK;
1334
+ const yieldBetween = this.deps.yieldBetween ?? macrotask$2;
1335
+ let bucketsRemoved = 0;
1336
+ let handled = 0;
1268
1337
  for (const [bucketDir, bucketRows] of byBucket) {
1269
- if (bucketDir !== "" && this.bucketFullyEvicted(bucketDir, bucketRows)) try {
1338
+ if (bucketDir !== "" && this.bucketFullyEvicted(bucketDir, bucketRows, countsFor)) try {
1270
1339
  await this.deps.removeDir(location, bucketDir);
1340
+ bucketsRemoved += 1;
1271
1341
  for (const r of bucketRows) {
1272
1342
  removed.push(r.path);
1273
1343
  reclaimed += r.bytes;
1274
1344
  }
1345
+ handled += 1;
1346
+ if (handled % chunkSize === 0) await yieldBetween();
1275
1347
  continue;
1276
1348
  } catch (err) {
1277
1349
  this.deps.logger.warn("bucket removeDir failed — falling back to per-file deletes", {
@@ -1292,15 +1364,47 @@ var SegmentStore = class SegmentStore {
1292
1364
  error: err
1293
1365
  });
1294
1366
  }
1367
+ handled += 1;
1368
+ if (handled % chunkSize === 0) await yieldBetween();
1295
1369
  }
1296
1370
  if (removed.length > 0) {
1297
1371
  this.deps.index.removeSegments(removed);
1298
- for (const r of rows) this.deps.onEvicted?.(r.deviceId, r.startMs);
1372
+ this.notifyEvicted(rows);
1299
1373
  }
1300
1374
  await this.pruneEmptyAncestors(location, [...byBucket.keys()]);
1375
+ this.deps.logger.info("recorder: eviction round complete", { meta: {
1376
+ location,
1377
+ rows: rows.length,
1378
+ buckets: byBucket.size,
1379
+ bucketsRemoved,
1380
+ removed: removed.length,
1381
+ reclaimed,
1382
+ ms: (this.deps.now?.() ?? Date.now()) - startedMs
1383
+ } });
1301
1384
  return reclaimed;
1302
1385
  }
1303
1386
  /**
1387
+ * Tell the calendar cache what went, ONCE PER (device, UTC day).
1388
+ *
1389
+ * `CalendarIndex.invalidate` drops a whole UTC day, so a per-ROW call repeats
1390
+ * the same work for every segment of that day — and its hour-list sweep is
1391
+ * O(cached hours), in one uninterrupted synchronous block with no await in
1392
+ * it. Measured over a 122 400-row round with 5 000 cached hours: 15 285 ms of
1393
+ * frozen event loop, scaling linearly with how long the session has been
1394
+ * scrubbing. Deduped it is ~190 calls and unmeasurable.
1395
+ */
1396
+ notifyEvicted(rows) {
1397
+ const notify = this.deps.onEvicted;
1398
+ if (!notify) return;
1399
+ const seen = /* @__PURE__ */ new Set();
1400
+ for (const r of rows) {
1401
+ const key = `${r.deviceId}:${Math.floor(r.startMs / SegmentStore.DAY_MS)}`;
1402
+ if (seen.has(key)) continue;
1403
+ seen.add(key);
1404
+ notify(r.deviceId, r.startMs);
1405
+ }
1406
+ }
1407
+ /**
1304
1408
  * Walk up from each emptied hour directory removing ancestors that are now
1305
1409
  * empty, so that **a directory's existence means footage**.
1306
1410
  *
@@ -1335,22 +1439,37 @@ var SegmentStore = class SegmentStore {
1335
1439
  }
1336
1440
  /** Hour of one UTC hour-bucket in ms. */
1337
1441
  static HOUR_MS = 36e5;
1442
+ static DAY_MS = 864e5;
1443
+ /** Buckets between yields. Small enough that one chunk is milliseconds of
1444
+ * work now the per-bucket archive scan is gone. */
1445
+ static DEFAULT_EVICT_CHUNK = 25;
1338
1446
  /**
1339
1447
  * True when `victims` cover EVERY indexed segment of `bucketDir` AND the
1340
1448
  * bucket's hour has fully elapsed. The current-hour guard matters because
1341
1449
  * `onFinalized` relocates new segments INTO the current bucket concurrently —
1342
1450
  * an rm racing that rename would orphan a just-indexed segment.
1451
+ *
1452
+ * The cover test is a COUNT against the round's one-pass census plus an O(1)
1453
+ * indexed-ness check per victim, never a scan of the device archive: a
1454
+ * bucketDir is `<dev>/<profile>/Y/M/D/H`, so it names exactly one
1455
+ * (device, profile), and the victims of a bucket are unique paths. Equal
1456
+ * counts with every victim indexed therefore means the same set.
1343
1457
  */
1344
- bucketFullyEvicted(bucketDir, victims) {
1458
+ bucketFullyEvicted(bucketDir, victims, countsFor) {
1345
1459
  const first = victims[0];
1346
1460
  if (!first) return false;
1347
1461
  const bucketStartMs = Math.floor(first.startMs / SegmentStore.HOUR_MS) * SegmentStore.HOUR_MS;
1348
1462
  if ((this.deps.now?.() ?? Date.now()) < bucketStartMs + SegmentStore.HOUR_MS) return false;
1349
- const victimPaths = new Set(victims.map((v) => v.path));
1350
- const indexed = this.deps.index.segments(first.deviceId, first.profile).filter((s) => s.path.startsWith(`${bucketDir}/`));
1351
- return indexed.length === victimPaths.size && indexed.every((s) => victimPaths.has(s.path));
1463
+ const indexedInBucket = countsFor(first.deviceId, first.profile).get(bucketDir) ?? 0;
1464
+ if (indexedInBucket === 0) return false;
1465
+ const indexedVictims = /* @__PURE__ */ new Set();
1466
+ for (const v of victims) if (this.deps.index.hasSegment(v.deviceId, v.path)) indexedVictims.add(v.path);
1467
+ return indexedInBucket === indexedVictims.size;
1352
1468
  }
1353
1469
  };
1470
+ var macrotask$2 = () => new Promise((resolve) => {
1471
+ setImmediate(resolve);
1472
+ });
1354
1473
  //#endregion
1355
1474
  //#region src/recorder/still/still-source.ts
1356
1475
  /**
@@ -2011,7 +2130,7 @@ var CalendarIndex = class {
2011
2130
  const day = utcDayOf(atMs);
2012
2131
  this.byDevice.get(deviceId)?.delete(day);
2013
2132
  const prefix = `${deviceId}:`;
2014
- for (const key of [...this.hourSegs.keys()]) {
2133
+ for (const key of this.hourSegs.keys()) {
2015
2134
  if (!key.startsWith(prefix)) continue;
2016
2135
  if (utcDayOf(Number(key.slice(key.lastIndexOf(":") + 1))) === day) this.hourSegs.delete(key);
2017
2136
  }
@@ -4838,9 +4957,12 @@ async function resolveRecordingsLocations(api, logger) {
4838
4957
  * (no footage yet) and any per-location failure are warned + skipped
4839
4958
  * (best-effort), so one bad volume never blocks the rest of the hydrate.
4840
4959
  */
4841
- async function hydrateDeviceFromStorage(_api, index, deviceId, locations, logger) {
4960
+ async function hydrateDeviceFromStorage(_api, index, deviceId, locations, logger, options = {}) {
4961
+ const yieldBetween = options.yieldBetween ?? macrotask$1;
4962
+ const chunkSize = options.chunkSize ?? HYDRATE_CHUNK;
4842
4963
  for (const [root, aliases] of aliasesByRoot(locations)) {
4843
4964
  const deviceDir = path.join(root, String(deviceId));
4965
+ const startedMs = Date.now();
4844
4966
  let entries;
4845
4967
  try {
4846
4968
  entries = await promises.readdir(deviceDir, { recursive: true });
@@ -4854,17 +4976,48 @@ async function hydrateDeviceFromStorage(_api, index, deviceId, locations, logger
4854
4976
  });
4855
4977
  continue;
4856
4978
  }
4979
+ const walkedMs = Date.now();
4980
+ const locationForProfile = /* @__PURE__ */ new Map();
4857
4981
  const pathsByLocation = /* @__PURE__ */ new Map();
4858
- for (const entry of entries.filter((entry) => entry.endsWith(".m4s"))) {
4982
+ let handled = 0;
4983
+ for (const entry of entries) {
4984
+ if (!entry.endsWith(".m4s")) continue;
4859
4985
  const relative = `${deviceId}/${entry.split(path.sep).join("/")}`;
4860
- const location = locationForHydratedProfile(aliases, relative.split("/")[1] ?? "");
4861
- const paths = pathsByLocation.get(location.id);
4986
+ const profile = relative.split("/")[1] ?? "";
4987
+ let locationId = locationForProfile.get(profile);
4988
+ if (locationId === void 0) {
4989
+ locationId = locationForHydratedProfile(aliases, profile).id;
4990
+ locationForProfile.set(profile, locationId);
4991
+ }
4992
+ const paths = pathsByLocation.get(locationId);
4862
4993
  if (paths) paths.push(relative);
4863
- else pathsByLocation.set(location.id, [relative]);
4994
+ else pathsByLocation.set(locationId, [relative]);
4995
+ handled += 1;
4996
+ if (handled % chunkSize === 0) await yieldBetween();
4997
+ }
4998
+ let indexed = 0;
4999
+ for (const [locationId, relPaths] of pathsByLocation) {
5000
+ index.hydrateDevice(deviceId, locationId, relPaths);
5001
+ indexed += relPaths.length;
4864
5002
  }
4865
- for (const [locationId, relPaths] of pathsByLocation) index.hydrateDevice(deviceId, locationId, relPaths);
5003
+ logger.info("recorder: hydrated a device from one recordings root", {
5004
+ tags: { deviceId },
5005
+ meta: {
5006
+ root,
5007
+ entries: entries.length,
5008
+ indexed,
5009
+ locationIds: [...pathsByLocation.keys()],
5010
+ walkMs: walkedMs - startedMs,
5011
+ ms: Date.now() - startedMs
5012
+ }
5013
+ });
4866
5014
  }
4867
5015
  }
5016
+ /** Entries classified between yields in {@link hydrateDeviceFromStorage}. */
5017
+ var HYDRATE_CHUNK = 2e4;
5018
+ var macrotask$1 = () => new Promise((resolve) => {
5019
+ setImmediate(resolve);
5020
+ });
4868
5021
  /** `<deviceId>/<profile>/YYYY/MM/DD/HH` for an hour bucket (paths are UTC). */
4869
5022
  function hourDirRelPath(deviceId, profile, hourStartMs) {
4870
5023
  const d = new Date(hourStartMs);
@@ -6948,20 +7101,30 @@ var RetentionSweeper = class {
6948
7101
  this.deps.logger.warn("recorder: retention sweep could not read device configs", { meta: { error: errMsg(err) } });
6949
7102
  return;
6950
7103
  }
7104
+ const withPolicy = [...configs].filter(([, config]) => hasRetentionPolicy(config));
7105
+ const devicesSkipped = configs.size - withPolicy.length;
7106
+ this.deps.logger.info("recorder: retention sweep starting", { meta: {
7107
+ devices: withPolicy.map(([deviceId]) => deviceId),
7108
+ skipped: devicesSkipped
7109
+ } });
6951
7110
  let devicesSwept = 0;
6952
- let devicesSkipped = 0;
6953
7111
  let bucketsPruned = 0;
6954
7112
  let bytesReclaimed = 0;
6955
- for (const [deviceId, config] of configs) {
6956
- if (!hasRetentionPolicy(config)) {
6957
- devicesSkipped += 1;
6958
- continue;
6959
- }
7113
+ for (const [deviceId] of withPolicy) {
7114
+ const startedMs = Date.now();
6960
7115
  try {
6961
7116
  const result = await this.deps.prune(deviceId);
6962
7117
  devicesSwept += 1;
6963
7118
  bucketsPruned += result.deletedBuckets;
6964
7119
  bytesReclaimed += result.reclaimedBytes;
7120
+ this.deps.logger.info("recorder: retention prune complete for device", {
7121
+ tags: { deviceId },
7122
+ meta: {
7123
+ deletedBuckets: result.deletedBuckets,
7124
+ reclaimedBytes: result.reclaimedBytes,
7125
+ ms: Date.now() - startedMs
7126
+ }
7127
+ });
6965
7128
  } catch (err) {
6966
7129
  this.deps.logger.warn("recorder: retention prune failed for device", {
6967
7130
  tags: { deviceId },
@@ -6981,6 +7144,63 @@ var RetentionSweeper = class {
6981
7144
  }
6982
7145
  };
6983
7146
  //#endregion
7147
+ //#region src/recorder/loop-pacer.ts
7148
+ var DEFAULT_BUSY_LAG_MS = 25;
7149
+ var DEFAULT_BACKOFF_STEP_MS = 25;
7150
+ var DEFAULT_MAX_BACKOFF_MS = 250;
7151
+ var LoopPacer = class {
7152
+ deps;
7153
+ consecutive = 0;
7154
+ hops = 0;
7155
+ contendedHops = 0;
7156
+ pausedMs = 0;
7157
+ maxLagMs = 0;
7158
+ constructor(deps) {
7159
+ this.deps = deps;
7160
+ }
7161
+ /**
7162
+ * One paced yield. Always hands the loop back at least once; sleeps longer
7163
+ * while the previous hop shows the loop is contended, and forgets the
7164
+ * back-off as soon as one hop comes back clean.
7165
+ */
7166
+ async hop() {
7167
+ const busyLagMs = this.deps.busyLagMs ?? DEFAULT_BUSY_LAG_MS;
7168
+ const stepMs = this.deps.backoffStepMs ?? DEFAULT_BACKOFF_STEP_MS;
7169
+ const maxMs = this.deps.maxBackoffMs ?? DEFAULT_MAX_BACKOFF_MS;
7170
+ const before = this.deps.now();
7171
+ await this.deps.sleep(0);
7172
+ const lagMs = this.deps.now() - before;
7173
+ this.hops += 1;
7174
+ if (lagMs > this.maxLagMs) this.maxLagMs = lagMs;
7175
+ if (lagMs < busyLagMs) {
7176
+ this.consecutive = 0;
7177
+ return;
7178
+ }
7179
+ this.consecutive += 1;
7180
+ this.contendedHops += 1;
7181
+ const pauseMs = Math.min(stepMs * this.consecutive, maxMs);
7182
+ this.pausedMs += pauseMs;
7183
+ await this.deps.sleep(pauseMs);
7184
+ }
7185
+ stats() {
7186
+ return {
7187
+ hops: this.hops,
7188
+ contendedHops: this.contendedHops,
7189
+ pausedMs: this.pausedMs,
7190
+ maxLagMs: this.maxLagMs
7191
+ };
7192
+ }
7193
+ };
7194
+ /** The production pacer: real clock, real timers. */
7195
+ function nodeLoopPacer() {
7196
+ return new LoopPacer({
7197
+ now: () => Date.now(),
7198
+ sleep: (ms) => new Promise((resolve) => {
7199
+ setTimeout(resolve, ms);
7200
+ })
7201
+ });
7202
+ }
7203
+ //#endregion
6984
7204
  //#region src/recorder/addon/staging-reconcile.ts
6985
7205
  /**
6986
7206
  * Recover `.rec-tmp` segments that a writer restart orphaned.
@@ -7088,6 +7308,14 @@ var KNOWN_PROFILES = new Set([
7088
7308
  ]);
7089
7309
  /** Default orphans per chunk. 590/high alone had 5 863 of them. */
7090
7310
  var DEFAULT_CHUNK_SIZE = 100;
7311
+ /**
7312
+ * Orphans between progress lines.
7313
+ *
7314
+ * A directory of 5 863 files takes minutes over shfs and used to report only
7315
+ * when it finished, so "is it still going, and how far in" had no answer at
7316
+ * all — the exact shape of the blackout this pass was written to end.
7317
+ */
7318
+ var PROGRESS_EVERY = 1e3;
7091
7319
  var macrotask = () => new Promise((resolve) => {
7092
7320
  setTimeout(resolve, 0);
7093
7321
  });
@@ -7134,6 +7362,13 @@ async function recoverStagingOrphans(dir, input, deps) {
7134
7362
  failed: 0,
7135
7363
  aborted: false
7136
7364
  };
7365
+ deps.logger.info("recorder: staging recovery starting on a directory", { meta: {
7366
+ dir,
7367
+ found: plan.length,
7368
+ staged: names.length,
7369
+ oldestMs: plan[0]?.startMs,
7370
+ newestMs: plan[plan.length - 1]?.startMs
7371
+ } });
7137
7372
  const chunkSize = deps.chunkSize ?? DEFAULT_CHUNK_SIZE;
7138
7373
  const yieldBetween = deps.yieldBetween ?? macrotask;
7139
7374
  let recovered = 0;
@@ -7164,6 +7399,13 @@ async function recoverStagingOrphans(dir, input, deps) {
7164
7399
  error: err instanceof Error ? err.message : String(err)
7165
7400
  } });
7166
7401
  }
7402
+ if ((i + 1) % PROGRESS_EVERY === 0 && i + 1 < plan.length) deps.logger.info("recorder: staging recovery progress", { meta: {
7403
+ dir,
7404
+ done: i + 1,
7405
+ found: plan.length,
7406
+ recovered,
7407
+ failed
7408
+ } });
7167
7409
  if ((i + 1) % chunkSize === 0 && i + 1 < plan.length) await yieldBetween();
7168
7410
  }
7169
7411
  deps.logger.info("recorder: recovered segments a writer restart had orphaned in staging", { meta: {
@@ -7208,7 +7450,16 @@ async function recoverAllStagedOrphans(deps) {
7208
7450
  let recovered = 0;
7209
7451
  let failed = 0;
7210
7452
  let aborted = false;
7211
- for (const location of deps.locations()) {
7453
+ const startedMs = Date.now();
7454
+ const injectedYield = deps.yieldBetween;
7455
+ const pacer = injectedYield === void 0 ? nodeLoopPacer() : null;
7456
+ const yieldBetween = injectedYield ?? (() => pacer === null ? macrotask() : pacer.hop());
7457
+ const locations = deps.locations();
7458
+ deps.logger.info("recorder: staging boot reconcile starting", { meta: {
7459
+ locations: locations.map((l) => l.id),
7460
+ bootMs: deps.bootMs
7461
+ } });
7462
+ for (const location of locations) {
7212
7463
  const stagingRoot = `${location.root}/${STAGING_DIR_NAME}`;
7213
7464
  let deviceDirs;
7214
7465
  try {
@@ -7249,7 +7500,7 @@ async function recoverAllStagedOrphans(deps) {
7249
7500
  }),
7250
7501
  logger: withDeviceTag(deps.logger, deviceId),
7251
7502
  chunkSize: deps.chunkSize,
7252
- yieldBetween: deps.yieldBetween,
7503
+ yieldBetween,
7253
7504
  shouldStop: deps.shouldStop
7254
7505
  });
7255
7506
  found += report.found;
@@ -7259,12 +7510,14 @@ async function recoverAllStagedOrphans(deps) {
7259
7510
  }
7260
7511
  }
7261
7512
  }
7262
- if (found > 0 || failed > 0) deps.logger.info("recorder: staging boot reconcile complete", { meta: {
7513
+ deps.logger.info("recorder: staging boot reconcile complete", { meta: {
7263
7514
  dirs,
7264
7515
  found,
7265
7516
  recovered,
7266
7517
  failed,
7267
- aborted
7518
+ aborted,
7519
+ ms: Date.now() - startedMs,
7520
+ ...pacer === null ? {} : { pacing: pacer.stats() }
7268
7521
  } });
7269
7522
  return {
7270
7523
  dirs,
@@ -7474,6 +7727,7 @@ var RecorderV2Addon = class extends BaseAddon {
7474
7727
  this.calendar.invalidate(deviceId, atMs);
7475
7728
  },
7476
7729
  onIndexed: (row, absPath) => {
7730
+ if (!isMfraTableServable(row.startMs, Date.now())) return;
7477
7731
  readMfraTable(absPath, row.bytes).then((table) => {
7478
7732
  this.mfraTables.record(row.deviceId, row.profile, row.startMs, table);
7479
7733
  }).catch((err) => {
@@ -7491,13 +7745,18 @@ var RecorderV2Addon = class extends BaseAddon {
7491
7745
  if (!loc) throw new Error(`recorder: unknown recordings location ${locationId}`);
7492
7746
  await promises.rmdir(path.join(loc.root, relDir));
7493
7747
  },
7494
- logger: { warn: (message, extras) => {
7495
- if (isSegmentStoreLogExtras(extras)) this.ctx.logger.warn(message, {
7496
- tags: extras.tags,
7497
- meta: { error: extras.error }
7498
- });
7499
- else this.ctx.logger.warn(message, { meta: { extras } });
7500
- } }
7748
+ logger: {
7749
+ warn: (message, extras) => {
7750
+ if (isSegmentStoreLogExtras(extras)) this.ctx.logger.warn(message, {
7751
+ tags: extras.tags,
7752
+ meta: { error: extras.error }
7753
+ });
7754
+ else this.ctx.logger.warn(message, { meta: { extras } });
7755
+ },
7756
+ info: (message, extras) => {
7757
+ this.ctx.logger.info(message, { meta: extras.meta });
7758
+ }
7759
+ }
7501
7760
  };
7502
7761
  this.segmentStore = new SegmentStore(segmentStoreDeps);
7503
7762
  const brokerHandle = this.ctx.useCapability("stream-broker", brokerScope(ingestOwner.ownerNodeId));
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_worker_protocol = require("../worker-protocol-DZVGVAPU.js");
3
- const require_lazy_sharp = require("../lazy-sharp-DIC1rpea.js");
2
+ const require_worker_protocol = require("../worker-protocol-B4fPjmXk.js");
3
+ const require_lazy_sharp = require("../lazy-sharp-1LkmyWqV.js");
4
4
  //#region src/session-decode/color-conversion.ts
5
5
  /**
6
6
  * Explicit YUV→RGB colorspace/range resolution for the session-decode worker.
@@ -1,4 +1,4 @@
1
- import { i as formatNativeLeaseKnobs, n as isWorkerRequest, o as resolveNativeLeaseKnobs, r as logLevelForLine } from "../worker-protocol-BNlLGLBV.mjs";
1
+ import { i as formatNativeLeaseKnobs, n as isWorkerRequest, o as resolveNativeLeaseKnobs, r as logLevelForLine } from "../worker-protocol-BRwzX3f_.mjs";
2
2
  import { n as setSharpWarnSink, r as hostExternalEntryUrls, t as getSharp } from "../lazy-sharp-6oymT_yf.mjs";
3
3
  //#region src/session-decode/color-conversion.ts
4
4
  /**
@@ -1,7 +1,7 @@
1
1
  import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dg08SxUW.mjs";
2
2
  import { a as p, i as m, n as h, o as g, r as _, t as v } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
3
3
  import { n as y, r as b, t as x } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
4
- import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DHJSxHH1.mjs";
4
+ import { t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-1QMyGZMB.mjs";
5
5
  import { n as C, t as w } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
7
7
  var T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.73",
21
+ version: "1.2.74",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_stream_broker_widgets",
@@ -0,0 +1,26 @@
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.ACCESS_ROLES, 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_RUNTIME_STATE_DURABILITY, e.DEFAULT_SCRUB_THUMBNAIL_PRESET, e.DEFAULT_TIMELAPSE_PREVIEW_TEXT, e.DETAIL_CROP_PADDING_FIELD, e.DETAIL_CROP_PADDING_KEY, e.DETAIL_CROP_SECTION_ID, e.DETAIL_CROP_SQUARE_KEY, e.DETECTION_MACRO_CLASSES, 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.DeviceSelectorSchema, 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.EXPORT_DENSE_MAX_RANGES, 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.ExportBytesSchema, e.ExportDenseRangeSchema, e.ExportDenseSchema, 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.LlmRetryPolicySchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmTimeoutDefaults, 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.METHOD_DEVICE_SELECTORS, 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_HOLD_FIELD, e.NATIVE_LEASE_HOLD_KEY, e.NATIVE_LEASE_SECTION_ID, e.NATIVE_LEASE_TILE_BUDGET_FIELD, e.NATIVE_LEASE_TILE_BUDGET_KEY, e.NC_ALARM_SYSTEM_EVENT_KINDS, e.NC_AUDIO_DBFS_FLOOR, e.NC_AUDIO_DB_MAX, e.NC_AUDIO_DB_MIN, e.NC_AUDIO_DB_OFFERED, e.NC_AUDIO_DB_STEP, e.NC_AUDIO_DEFAULTS, e.NC_AUDIO_HIT_PERCENT_MAX, e.NC_AUDIO_HIT_PERCENT_MIN, e.NC_AUDIO_SAMPLING_MAX_SEC, e.NC_AUDIO_SAMPLING_MIN_SEC, e.NC_AUTHORABLE_SYSTEM_EVENT_KINDS, e.NC_BASE_CONDITION_KEYS, e.NC_CONDITION_CATALOG, e.NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, e.NC_CONFIRM_DEFAULT_TIMEOUT_MS, e.NC_CONFIRM_MAX_TIMEOUT_MS, e.NC_CONFIRM_MIN_TIMEOUT_MS, e.NC_DEFAULT_SNOOZE_MINUTES, 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.NcAlarmSkipReasonSchema, e.NcAlarmSkippedDeviceSchema, e.NcAudioConditionSchema, e.NcConditionDescriptorSchema, e.NcConditionsSchema, e.NcConfirmExpectSchema, e.NcConfirmSchema, 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.NcSceneConditionSchema, 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.RECORDING_EXPORT_MAX_READ_BYTES, e.RESERVED_BINDING_NAMES, e.RESTORED_CAP_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_STATE_POLICY, 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.RecordingRebalanceInputSchema, e.RecordingRebalanceMoveSchema, e.RecordingRebalancePlanSchema, e.RecordingRebalanceSkipReasonSchema, e.RecordingRebalanceSkipSchema, 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.SCENE_CONDITIONS, e.SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, e.SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, e.SCENE_DEFAULT_ANCHOR_THRESHOLD, e.SCENE_DEFAULT_CHECK_INTERVAL_SEC, e.SCENE_DEFAULT_OBSERVATION_SPACING_SEC, e.SCENE_DEFAULT_QUIET_SECONDS, e.SCENE_DIVERGED, e.SCENE_RESET_RECAPTURES, 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.SYSTEM_SCOPE_DEVICE_METHODS, e.SceneCheckSchema, e.SceneConditionSchema, e.SceneConfirmSchema, e.SceneMonitorSchema, e.SceneMonitorStateSchema, e.SceneMonitorStatusSchema, e.SceneReferenceSchema, e.SceneUnavailableSchema, e.SceneVerdictSchema, 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.SetSiteLocationInputSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SiteLocationSchema, e.SiteLocationSourceSchema, e.SiteLocationStatusSchema, 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.TIMELAPSE_DENSE_FLOOR_SEC, 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.assertTimelapseCadences, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioIsFailClosed, e.audioLabelChoices, e.audioMetricsCapability, e.audioModeOf, e.audioOrDefaults, 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.buildRoleScopes, 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.composeSwitchedOff, 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.detectAccessRole, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceBackendToFormat, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceSelectorMatches, 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.isAudioLabelSelected, e.isBaseConditionKey, e.isCollectionArrayMethod, e.isDeployableToAgent, e.isDetectionMacroClass, e.isDeviceConfigCap, e.isDeviceScopedCap, e.isEvent, e.isIsolatedBuiltin, e.isNode, e.isObjectInput, e.isRestoredCap, 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.normalizeAudioLabel, e.normalizeTokenScopes, 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.patchAudio, 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.readTimelapseGeneratedAt, 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.resolveViewableDeviceIds, e.roleSpec, e.runInferenceStep, e.runtimeDevices, e.runtimeStatePolicyFor, e.sceneMonitorCapability, e.scopeInherits, 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.summarizeEffectiveScope, 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.toggleAudioLabel, 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 };
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.73",
39
+ version: "1.2.74",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,