@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.
- package/dist/{addon-utils-bZcwLaVW.js → addon-utils-C-XbUkiG.js} +1 -1
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +1 -1
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +2 -2
- package/dist/{dist-DQZzL0Ri.js → dist-BdVCXl5n.js} +74 -5
- package/dist/{dist-HhcoV-Ky.mjs → dist-CsP_DikG.mjs} +74 -5
- package/dist/{event-loop-stall-monitor-CBOo1oh_.js → event-loop-stall-monitor-BOu8lGee.js} +1 -1
- package/dist/{event-loop-stall-monitor-CqBEWGSZ.mjs → event-loop-stall-monitor-C3cvE_Xk.mjs} +1 -1
- package/dist/{lazy-sharp-DIC1rpea.js → lazy-sharp-1LkmyWqV.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +4 -4
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/recorder/index.js +293 -34
- package/dist/recorder/index.mjs +292 -33
- package/dist/session-decode/decode-worker-child.js +2 -2
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +1 -1
- 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
- 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
- package/dist/stream-broker/{hostInit-CDS5frmk.mjs → hostInit-DEtsjgBO.mjs} +1 -1
- package/dist/stream-broker/index.js +106 -23
- package/dist/stream-broker/index.mjs +106 -23
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-DZVGVAPU.js → worker-protocol-B4fPjmXk.js} +1 -1
- package/dist/{worker-protocol-BNlLGLBV.mjs → worker-protocol-BRwzX3f_.mjs} +1 -1
- package/package.json +1 -1
- 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
package/dist/recorder/index.mjs
CHANGED
|
@@ -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-
|
|
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
|
|
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() -
|
|
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
|
-
|
|
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
|
|
1350
|
-
|
|
1351
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
4861
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
6956
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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: {
|
|
7495
|
-
|
|
7496
|
-
|
|
7497
|
-
|
|
7498
|
-
|
|
7499
|
-
|
|
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-
|
|
3
|
-
const require_lazy_sharp = require("../lazy-sharp-
|
|
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-
|
|
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-
|
|
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) => {
|
|
@@ -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 };
|