@camstack/addon-post-analysis 1.2.21 → 1.2.23
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/{dist-CrAkB8NZ.mjs → dist-CRCAv9JV.mjs} +259 -107
- package/dist/{dist-vIJhE1KT.js → dist-DIhTL_gD.js} +259 -107
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/{node-C1I1svLc.js → node-C5of2Vlq.js} +1 -1
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BpP-KZvi.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-CZ8fx1RA.mjs} +3 -3
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dsd5sKoq.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-CkDMrlOe.mjs → hostInit-DG3K9L1Y.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +160 -4
- package/dist/pipeline-analytics/index.mjs +159 -3
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-25P5PBxH.mjs +0 -26
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-DIhTL_gD.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
node_path = require_dist.__toESM(node_path);
|
|
@@ -10249,6 +10249,108 @@ var TrackStore = class {
|
|
|
10249
10249
|
}
|
|
10250
10250
|
};
|
|
10251
10251
|
//#endregion
|
|
10252
|
+
//#region src/pipeline-analytics/store/storage-pressure.ts
|
|
10253
|
+
/**
|
|
10254
|
+
* storage-pressure — make a full disk something the system REACTS to, not just
|
|
10255
|
+
* something it logs once per lost file.
|
|
10256
|
+
*
|
|
10257
|
+
* ## What happened
|
|
10258
|
+
*
|
|
10259
|
+
* On 2026-08-02 media writes started failing with
|
|
10260
|
+
* `ENOSPC: no space left on device, mkdir '/recordings/617/events/track/…'`.
|
|
10261
|
+
* For roughly five hours every new track was recorded with positions, a class,
|
|
10262
|
+
* a `bestEventId` and **zero snapshots** — a track that looks complete in the
|
|
10263
|
+
* list and has no picture behind it. The operator found it by noticing the
|
|
10264
|
+
* missing media, not from any alert.
|
|
10265
|
+
*
|
|
10266
|
+
* Two separate defects made that possible:
|
|
10267
|
+
*
|
|
10268
|
+
* 1. **Retention prunes by AGE only.** It has no feedback from the filesystem,
|
|
10269
|
+
* so "the disk is full" is not an input it can respond to. It kept its
|
|
10270
|
+
* configured window while writes failed.
|
|
10271
|
+
* 2. **The failure was logged per KEY.** Every lost frame produced its own
|
|
10272
|
+
* `media put failed` WARN — dozens a minute, each true, none of them saying
|
|
10273
|
+
* "this camera has stopped storing media". A per-item line is a receipt,
|
|
10274
|
+
* not an alarm.
|
|
10275
|
+
*
|
|
10276
|
+
* This module is the missing feedback: it recognises an out-of-space failure,
|
|
10277
|
+
* counts it per device, and hands the caller ONE escalation to act on.
|
|
10278
|
+
*
|
|
10279
|
+
* ## Deliberately not a deleter
|
|
10280
|
+
*
|
|
10281
|
+
* It decides that pressure exists and says so. Freeing space is retention's
|
|
10282
|
+
* job, and giving a write-error handler the power to delete recordings is how
|
|
10283
|
+
* a transient fault becomes data loss. The trigger is separated from the act on
|
|
10284
|
+
* purpose.
|
|
10285
|
+
*/
|
|
10286
|
+
/** Errors that mean "the filesystem refused for want of room". */
|
|
10287
|
+
var OUT_OF_SPACE_CODES = ["ENOSPC", "EDQUOT"];
|
|
10288
|
+
/**
|
|
10289
|
+
* Is this the disk being full, rather than any other write failure?
|
|
10290
|
+
*
|
|
10291
|
+
* Matches the CODE, not a message substring: a permission error or a missing
|
|
10292
|
+
* parent directory must not trigger a retention response, and the message text
|
|
10293
|
+
* is not a contract.
|
|
10294
|
+
*/
|
|
10295
|
+
function isOutOfSpace(err) {
|
|
10296
|
+
const code = typeof err === "object" && err !== null && "code" in err ? String(err.code) : "";
|
|
10297
|
+
if (OUT_OF_SPACE_CODES.includes(code)) return true;
|
|
10298
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
10299
|
+
return OUT_OF_SPACE_CODES.some((c) => msg.includes(`${c}:`));
|
|
10300
|
+
}
|
|
10301
|
+
/** How long between escalations while pressure persists. */
|
|
10302
|
+
var PRESSURE_ESCALATION_INTERVAL_MS = 6e4;
|
|
10303
|
+
/**
|
|
10304
|
+
* Counts out-of-space failures and releases an escalation at most once per
|
|
10305
|
+
* interval — plus immediately on the FIRST one, because the first is the line
|
|
10306
|
+
* that should have existed five hours before anyone noticed.
|
|
10307
|
+
*
|
|
10308
|
+
* Clock injected so the interval is testable without waiting.
|
|
10309
|
+
*/
|
|
10310
|
+
var StoragePressureTracker = class {
|
|
10311
|
+
failures = 0;
|
|
10312
|
+
devices = /* @__PURE__ */ new Set();
|
|
10313
|
+
lastEscalatedAt = null;
|
|
10314
|
+
now;
|
|
10315
|
+
intervalMs;
|
|
10316
|
+
constructor(intervalMs = PRESSURE_ESCALATION_INTERVAL_MS, now = () => Date.now()) {
|
|
10317
|
+
this.intervalMs = intervalMs;
|
|
10318
|
+
this.now = now;
|
|
10319
|
+
}
|
|
10320
|
+
/**
|
|
10321
|
+
* Record a failed write. Returns an escalation when the caller should act
|
|
10322
|
+
* (alert loudly, ask retention to reclaim), or null to stay quiet.
|
|
10323
|
+
*
|
|
10324
|
+
* A non-space failure returns null and is not counted: this tracker exists
|
|
10325
|
+
* for one condition, and diluting it with unrelated errors would make the
|
|
10326
|
+
* escalation mean nothing.
|
|
10327
|
+
*/
|
|
10328
|
+
record(err, deviceId) {
|
|
10329
|
+
if (!isOutOfSpace(err)) return null;
|
|
10330
|
+
this.failures += 1;
|
|
10331
|
+
if (typeof deviceId === "number") this.devices.add(deviceId);
|
|
10332
|
+
const at = this.now();
|
|
10333
|
+
const first = this.lastEscalatedAt === null;
|
|
10334
|
+
if (!first && at - this.lastEscalatedAt < this.intervalMs) return null;
|
|
10335
|
+
const out = {
|
|
10336
|
+
failures: this.failures,
|
|
10337
|
+
deviceIds: [...this.devices],
|
|
10338
|
+
first
|
|
10339
|
+
};
|
|
10340
|
+
this.failures = 0;
|
|
10341
|
+
this.devices.clear();
|
|
10342
|
+
this.lastEscalatedAt = at;
|
|
10343
|
+
return out;
|
|
10344
|
+
}
|
|
10345
|
+
/** Clear the state after a successful write — pressure that has passed must
|
|
10346
|
+
* not make the next isolated failure look like a continuing emergency. */
|
|
10347
|
+
noteSuccess() {
|
|
10348
|
+
if (this.failures === 0 && this.devices.size === 0) return;
|
|
10349
|
+
this.failures = 0;
|
|
10350
|
+
this.devices.clear();
|
|
10351
|
+
}
|
|
10352
|
+
};
|
|
10353
|
+
//#endregion
|
|
10252
10354
|
//#region src/pipeline-analytics/store/media-store.ts
|
|
10253
10355
|
var MEDIA_COLLECTION = "pipeline-analytics:media";
|
|
10254
10356
|
/** Owner-id prefix for a track's buffered FACE crop. Invariant established by
|
|
@@ -10358,6 +10460,14 @@ function buildPath(params) {
|
|
|
10358
10460
|
return isSingleInstanceKind(params.kind) ? `${base}/${params.kind}.jpg` : `${base}/${params.kind}-${params.timestamp}.jpg`;
|
|
10359
10461
|
}
|
|
10360
10462
|
var MediaStore = class {
|
|
10463
|
+
/** Turns repeated out-of-space write failures into ONE escalation with a
|
|
10464
|
+
* count — see `storage-pressure.ts` for what five hours of silent media loss
|
|
10465
|
+
* cost. */
|
|
10466
|
+
pressure = new StoragePressureTracker();
|
|
10467
|
+
/** Optional hook so the owner can ask retention to reclaim space. Left
|
|
10468
|
+
* undefined by default: deciding there IS pressure and DELETING recordings
|
|
10469
|
+
* are separate powers on purpose. */
|
|
10470
|
+
onStoragePressure;
|
|
10361
10471
|
storage;
|
|
10362
10472
|
store;
|
|
10363
10473
|
logger;
|
|
@@ -10406,6 +10516,7 @@ var MediaStore = class {
|
|
|
10406
10516
|
data: record
|
|
10407
10517
|
}
|
|
10408
10518
|
});
|
|
10519
|
+
this.pressure.noteSuccess();
|
|
10409
10520
|
return key;
|
|
10410
10521
|
} catch (err) {
|
|
10411
10522
|
this.logger.warn("media put failed", {
|
|
@@ -10415,6 +10526,19 @@ var MediaStore = class {
|
|
|
10415
10526
|
error: String(err)
|
|
10416
10527
|
}
|
|
10417
10528
|
});
|
|
10529
|
+
const pressure = this.pressure.record(err, params.deviceId);
|
|
10530
|
+
if (pressure) {
|
|
10531
|
+
this.logger.error("media storage is out of space — media is being LOST", {
|
|
10532
|
+
tags: { deviceId: params.deviceId },
|
|
10533
|
+
meta: {
|
|
10534
|
+
failures: pressure.failures,
|
|
10535
|
+
devices: pressure.deviceIds,
|
|
10536
|
+
first: pressure.first,
|
|
10537
|
+
hint: "retention prunes by age and cannot see a full disk — free space or shorten retention"
|
|
10538
|
+
}
|
|
10539
|
+
});
|
|
10540
|
+
this.onStoragePressure?.(pressure);
|
|
10541
|
+
}
|
|
10418
10542
|
throw err;
|
|
10419
10543
|
}
|
|
10420
10544
|
}
|
|
@@ -17546,6 +17670,22 @@ var OBJECT_EMBEDDING_COLUMNS = [
|
|
|
17546
17670
|
type: "TEXT"
|
|
17547
17671
|
}
|
|
17548
17672
|
];
|
|
17673
|
+
/**
|
|
17674
|
+
* Ceiling on the CANDIDATE pool a semantic search may load.
|
|
17675
|
+
*
|
|
17676
|
+
* `query()` was called with no limit at all, so a default search loaded the
|
|
17677
|
+
* entire collection — 86.5 MB across 7,375 rows on a live hub, every time,
|
|
17678
|
+
* before ranking anything.
|
|
17679
|
+
*
|
|
17680
|
+
* It cannot simply be the caller's result limit: search RANKS the pool and then
|
|
17681
|
+
* takes the top N, so limiting to N up front would return N arbitrary rows
|
|
17682
|
+
* instead of the N best. This bounds the pool well above any result count, and
|
|
17683
|
+
* `query()` orders by `timestamp` DESC whenever a limit applies so "the pool"
|
|
17684
|
+
* means the most recent rows rather than whatever the page order happened to
|
|
17685
|
+
* be. The caller logs when the cap is reached — a silently truncated search
|
|
17686
|
+
* reads as "nothing older matched".
|
|
17687
|
+
*/
|
|
17688
|
+
var EMBEDDING_SEARCH_CANDIDATE_CAP = 5e3;
|
|
17549
17689
|
var ObjectEmbeddingStore = class {
|
|
17550
17690
|
store;
|
|
17551
17691
|
logger;
|
|
@@ -17620,7 +17760,13 @@ var ObjectEmbeddingStore = class {
|
|
|
17620
17760
|
if (input.modelId !== void 0) where["modelId"] = input.modelId;
|
|
17621
17761
|
const filter = { where };
|
|
17622
17762
|
if (input.since !== void 0 || input.until !== void 0) filter["whereBetween"] = { timestamp: [input.since ?? 0, input.until ?? Date.now()] };
|
|
17623
|
-
if (input.limit !== void 0)
|
|
17763
|
+
if (input.limit !== void 0) {
|
|
17764
|
+
filter["limit"] = input.limit;
|
|
17765
|
+
filter["orderBy"] = {
|
|
17766
|
+
field: "timestamp",
|
|
17767
|
+
direction: "desc"
|
|
17768
|
+
};
|
|
17769
|
+
}
|
|
17624
17770
|
return (await this.store.query.query({
|
|
17625
17771
|
collection: OBJECT_EMBEDDINGS_COLLECTION,
|
|
17626
17772
|
filter
|
|
@@ -20735,7 +20881,7 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
20735
20881
|
let storage = this.ctx.kernel.storage;
|
|
20736
20882
|
const mediaRoot = process.env.CAMSTACK_MEDIA_ROOT?.trim();
|
|
20737
20883
|
if (mediaRoot) {
|
|
20738
|
-
const { FilesystemStorageProvider } = await Promise.resolve().then(() => require("../node-
|
|
20884
|
+
const { FilesystemStorageProvider } = await Promise.resolve().then(() => require("../node-C5of2Vlq.js"));
|
|
20739
20885
|
storage = new FilesystemStorageProvider(mediaRoot, { eventMedia: mediaRoot });
|
|
20740
20886
|
logger.info("pipeline-analytics: event media rooted at CAMSTACK_MEDIA_ROOT", { meta: { mediaRoot } });
|
|
20741
20887
|
}
|
|
@@ -23670,7 +23816,17 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
23670
23816
|
deviceId: input.deviceId,
|
|
23671
23817
|
since: input.since,
|
|
23672
23818
|
until: input.until,
|
|
23673
|
-
className: input.classFilter
|
|
23819
|
+
className: input.classFilter,
|
|
23820
|
+
limit: EMBEDDING_SEARCH_CANDIDATE_CAP
|
|
23821
|
+
});
|
|
23822
|
+
if (embeddingRows.length >= 5e3) this.ctx.logger.warn("searchObjectEvents: candidate pool truncated", {
|
|
23823
|
+
meta: {
|
|
23824
|
+
cap: EMBEDDING_SEARCH_CANDIDATE_CAP,
|
|
23825
|
+
since: input.since,
|
|
23826
|
+
until: input.until,
|
|
23827
|
+
className: input.classFilter
|
|
23828
|
+
},
|
|
23829
|
+
tags: input.deviceId !== void 0 ? { deviceId: input.deviceId } : void 0
|
|
23674
23830
|
});
|
|
23675
23831
|
if (embeddingRows.length === 0) return [];
|
|
23676
23832
|
const embeddingMediaKeyByTrackId = /* @__PURE__ */ new Map();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as errMsg, B as number, D as subKindsOf, E as plateGalleryCapability, F as nodePin, H as string, I as _enum, L as array, M as DeviceType, N as createEvent, O as videoclipsCapability, P as hydrateSchema, R as boolean, S as faceGalleryCapability, T as pipelineAnalyticsCapability, U as EventCategory, V as object, _ as buildEventKindDescriptor, a as NC_CONDITION_CATALOG, b as defineCustomActions, c as NcRuleInputSchema, d as NcTaxonomySchema, f as OpsLogEntrySchema, g as audioMetricsCapability, h as addonWidgetsSourceCapability, i as MACRO_LABELS, j as BaseAddon, k as zoneAnalyticsCapability, l as NcRulePatchSchema, m as TimelapseRuleSchema, n as EVENT_KIND_BY_CAP, o as NC_TAXONOMY, p as TimelapseRuleInputSchema, r as EVENT_PAD_MS, s as NcConditionDescriptorSchema, t as DEFAULT_EVENT_COLOR, u as NcRuleSchema, v as cosineSimilarity, w as notificationRulesCapability, y as customAction, z as literal } from "../dist-
|
|
1
|
+
import { A as errMsg, B as number, D as subKindsOf, E as plateGalleryCapability, F as nodePin, H as string, I as _enum, L as array, M as DeviceType, N as createEvent, O as videoclipsCapability, P as hydrateSchema, R as boolean, S as faceGalleryCapability, T as pipelineAnalyticsCapability, U as EventCategory, V as object, _ as buildEventKindDescriptor, a as NC_CONDITION_CATALOG, b as defineCustomActions, c as NcRuleInputSchema, d as NcTaxonomySchema, f as OpsLogEntrySchema, g as audioMetricsCapability, h as addonWidgetsSourceCapability, i as MACRO_LABELS, j as BaseAddon, k as zoneAnalyticsCapability, l as NcRulePatchSchema, m as TimelapseRuleSchema, n as EVENT_KIND_BY_CAP, o as NC_TAXONOMY, p as TimelapseRuleInputSchema, r as EVENT_PAD_MS, s as NcConditionDescriptorSchema, t as DEFAULT_EVENT_COLOR, u as NcRuleSchema, v as cosineSimilarity, w as notificationRulesCapability, y as customAction, z as literal } from "../dist-CRCAv9JV.mjs";
|
|
2
2
|
import { promises } from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { createHmac, randomUUID, timingSafeEqual } from "node:crypto";
|
|
@@ -10243,6 +10243,108 @@ var TrackStore = class {
|
|
|
10243
10243
|
}
|
|
10244
10244
|
};
|
|
10245
10245
|
//#endregion
|
|
10246
|
+
//#region src/pipeline-analytics/store/storage-pressure.ts
|
|
10247
|
+
/**
|
|
10248
|
+
* storage-pressure — make a full disk something the system REACTS to, not just
|
|
10249
|
+
* something it logs once per lost file.
|
|
10250
|
+
*
|
|
10251
|
+
* ## What happened
|
|
10252
|
+
*
|
|
10253
|
+
* On 2026-08-02 media writes started failing with
|
|
10254
|
+
* `ENOSPC: no space left on device, mkdir '/recordings/617/events/track/…'`.
|
|
10255
|
+
* For roughly five hours every new track was recorded with positions, a class,
|
|
10256
|
+
* a `bestEventId` and **zero snapshots** — a track that looks complete in the
|
|
10257
|
+
* list and has no picture behind it. The operator found it by noticing the
|
|
10258
|
+
* missing media, not from any alert.
|
|
10259
|
+
*
|
|
10260
|
+
* Two separate defects made that possible:
|
|
10261
|
+
*
|
|
10262
|
+
* 1. **Retention prunes by AGE only.** It has no feedback from the filesystem,
|
|
10263
|
+
* so "the disk is full" is not an input it can respond to. It kept its
|
|
10264
|
+
* configured window while writes failed.
|
|
10265
|
+
* 2. **The failure was logged per KEY.** Every lost frame produced its own
|
|
10266
|
+
* `media put failed` WARN — dozens a minute, each true, none of them saying
|
|
10267
|
+
* "this camera has stopped storing media". A per-item line is a receipt,
|
|
10268
|
+
* not an alarm.
|
|
10269
|
+
*
|
|
10270
|
+
* This module is the missing feedback: it recognises an out-of-space failure,
|
|
10271
|
+
* counts it per device, and hands the caller ONE escalation to act on.
|
|
10272
|
+
*
|
|
10273
|
+
* ## Deliberately not a deleter
|
|
10274
|
+
*
|
|
10275
|
+
* It decides that pressure exists and says so. Freeing space is retention's
|
|
10276
|
+
* job, and giving a write-error handler the power to delete recordings is how
|
|
10277
|
+
* a transient fault becomes data loss. The trigger is separated from the act on
|
|
10278
|
+
* purpose.
|
|
10279
|
+
*/
|
|
10280
|
+
/** Errors that mean "the filesystem refused for want of room". */
|
|
10281
|
+
var OUT_OF_SPACE_CODES = ["ENOSPC", "EDQUOT"];
|
|
10282
|
+
/**
|
|
10283
|
+
* Is this the disk being full, rather than any other write failure?
|
|
10284
|
+
*
|
|
10285
|
+
* Matches the CODE, not a message substring: a permission error or a missing
|
|
10286
|
+
* parent directory must not trigger a retention response, and the message text
|
|
10287
|
+
* is not a contract.
|
|
10288
|
+
*/
|
|
10289
|
+
function isOutOfSpace(err) {
|
|
10290
|
+
const code = typeof err === "object" && err !== null && "code" in err ? String(err.code) : "";
|
|
10291
|
+
if (OUT_OF_SPACE_CODES.includes(code)) return true;
|
|
10292
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
10293
|
+
return OUT_OF_SPACE_CODES.some((c) => msg.includes(`${c}:`));
|
|
10294
|
+
}
|
|
10295
|
+
/** How long between escalations while pressure persists. */
|
|
10296
|
+
var PRESSURE_ESCALATION_INTERVAL_MS = 6e4;
|
|
10297
|
+
/**
|
|
10298
|
+
* Counts out-of-space failures and releases an escalation at most once per
|
|
10299
|
+
* interval — plus immediately on the FIRST one, because the first is the line
|
|
10300
|
+
* that should have existed five hours before anyone noticed.
|
|
10301
|
+
*
|
|
10302
|
+
* Clock injected so the interval is testable without waiting.
|
|
10303
|
+
*/
|
|
10304
|
+
var StoragePressureTracker = class {
|
|
10305
|
+
failures = 0;
|
|
10306
|
+
devices = /* @__PURE__ */ new Set();
|
|
10307
|
+
lastEscalatedAt = null;
|
|
10308
|
+
now;
|
|
10309
|
+
intervalMs;
|
|
10310
|
+
constructor(intervalMs = PRESSURE_ESCALATION_INTERVAL_MS, now = () => Date.now()) {
|
|
10311
|
+
this.intervalMs = intervalMs;
|
|
10312
|
+
this.now = now;
|
|
10313
|
+
}
|
|
10314
|
+
/**
|
|
10315
|
+
* Record a failed write. Returns an escalation when the caller should act
|
|
10316
|
+
* (alert loudly, ask retention to reclaim), or null to stay quiet.
|
|
10317
|
+
*
|
|
10318
|
+
* A non-space failure returns null and is not counted: this tracker exists
|
|
10319
|
+
* for one condition, and diluting it with unrelated errors would make the
|
|
10320
|
+
* escalation mean nothing.
|
|
10321
|
+
*/
|
|
10322
|
+
record(err, deviceId) {
|
|
10323
|
+
if (!isOutOfSpace(err)) return null;
|
|
10324
|
+
this.failures += 1;
|
|
10325
|
+
if (typeof deviceId === "number") this.devices.add(deviceId);
|
|
10326
|
+
const at = this.now();
|
|
10327
|
+
const first = this.lastEscalatedAt === null;
|
|
10328
|
+
if (!first && at - this.lastEscalatedAt < this.intervalMs) return null;
|
|
10329
|
+
const out = {
|
|
10330
|
+
failures: this.failures,
|
|
10331
|
+
deviceIds: [...this.devices],
|
|
10332
|
+
first
|
|
10333
|
+
};
|
|
10334
|
+
this.failures = 0;
|
|
10335
|
+
this.devices.clear();
|
|
10336
|
+
this.lastEscalatedAt = at;
|
|
10337
|
+
return out;
|
|
10338
|
+
}
|
|
10339
|
+
/** Clear the state after a successful write — pressure that has passed must
|
|
10340
|
+
* not make the next isolated failure look like a continuing emergency. */
|
|
10341
|
+
noteSuccess() {
|
|
10342
|
+
if (this.failures === 0 && this.devices.size === 0) return;
|
|
10343
|
+
this.failures = 0;
|
|
10344
|
+
this.devices.clear();
|
|
10345
|
+
}
|
|
10346
|
+
};
|
|
10347
|
+
//#endregion
|
|
10246
10348
|
//#region src/pipeline-analytics/store/media-store.ts
|
|
10247
10349
|
var MEDIA_COLLECTION = "pipeline-analytics:media";
|
|
10248
10350
|
/** Owner-id prefix for a track's buffered FACE crop. Invariant established by
|
|
@@ -10352,6 +10454,14 @@ function buildPath(params) {
|
|
|
10352
10454
|
return isSingleInstanceKind(params.kind) ? `${base}/${params.kind}.jpg` : `${base}/${params.kind}-${params.timestamp}.jpg`;
|
|
10353
10455
|
}
|
|
10354
10456
|
var MediaStore = class {
|
|
10457
|
+
/** Turns repeated out-of-space write failures into ONE escalation with a
|
|
10458
|
+
* count — see `storage-pressure.ts` for what five hours of silent media loss
|
|
10459
|
+
* cost. */
|
|
10460
|
+
pressure = new StoragePressureTracker();
|
|
10461
|
+
/** Optional hook so the owner can ask retention to reclaim space. Left
|
|
10462
|
+
* undefined by default: deciding there IS pressure and DELETING recordings
|
|
10463
|
+
* are separate powers on purpose. */
|
|
10464
|
+
onStoragePressure;
|
|
10355
10465
|
storage;
|
|
10356
10466
|
store;
|
|
10357
10467
|
logger;
|
|
@@ -10400,6 +10510,7 @@ var MediaStore = class {
|
|
|
10400
10510
|
data: record
|
|
10401
10511
|
}
|
|
10402
10512
|
});
|
|
10513
|
+
this.pressure.noteSuccess();
|
|
10403
10514
|
return key;
|
|
10404
10515
|
} catch (err) {
|
|
10405
10516
|
this.logger.warn("media put failed", {
|
|
@@ -10409,6 +10520,19 @@ var MediaStore = class {
|
|
|
10409
10520
|
error: String(err)
|
|
10410
10521
|
}
|
|
10411
10522
|
});
|
|
10523
|
+
const pressure = this.pressure.record(err, params.deviceId);
|
|
10524
|
+
if (pressure) {
|
|
10525
|
+
this.logger.error("media storage is out of space — media is being LOST", {
|
|
10526
|
+
tags: { deviceId: params.deviceId },
|
|
10527
|
+
meta: {
|
|
10528
|
+
failures: pressure.failures,
|
|
10529
|
+
devices: pressure.deviceIds,
|
|
10530
|
+
first: pressure.first,
|
|
10531
|
+
hint: "retention prunes by age and cannot see a full disk — free space or shorten retention"
|
|
10532
|
+
}
|
|
10533
|
+
});
|
|
10534
|
+
this.onStoragePressure?.(pressure);
|
|
10535
|
+
}
|
|
10412
10536
|
throw err;
|
|
10413
10537
|
}
|
|
10414
10538
|
}
|
|
@@ -17540,6 +17664,22 @@ var OBJECT_EMBEDDING_COLUMNS = [
|
|
|
17540
17664
|
type: "TEXT"
|
|
17541
17665
|
}
|
|
17542
17666
|
];
|
|
17667
|
+
/**
|
|
17668
|
+
* Ceiling on the CANDIDATE pool a semantic search may load.
|
|
17669
|
+
*
|
|
17670
|
+
* `query()` was called with no limit at all, so a default search loaded the
|
|
17671
|
+
* entire collection — 86.5 MB across 7,375 rows on a live hub, every time,
|
|
17672
|
+
* before ranking anything.
|
|
17673
|
+
*
|
|
17674
|
+
* It cannot simply be the caller's result limit: search RANKS the pool and then
|
|
17675
|
+
* takes the top N, so limiting to N up front would return N arbitrary rows
|
|
17676
|
+
* instead of the N best. This bounds the pool well above any result count, and
|
|
17677
|
+
* `query()` orders by `timestamp` DESC whenever a limit applies so "the pool"
|
|
17678
|
+
* means the most recent rows rather than whatever the page order happened to
|
|
17679
|
+
* be. The caller logs when the cap is reached — a silently truncated search
|
|
17680
|
+
* reads as "nothing older matched".
|
|
17681
|
+
*/
|
|
17682
|
+
var EMBEDDING_SEARCH_CANDIDATE_CAP = 5e3;
|
|
17543
17683
|
var ObjectEmbeddingStore = class {
|
|
17544
17684
|
store;
|
|
17545
17685
|
logger;
|
|
@@ -17614,7 +17754,13 @@ var ObjectEmbeddingStore = class {
|
|
|
17614
17754
|
if (input.modelId !== void 0) where["modelId"] = input.modelId;
|
|
17615
17755
|
const filter = { where };
|
|
17616
17756
|
if (input.since !== void 0 || input.until !== void 0) filter["whereBetween"] = { timestamp: [input.since ?? 0, input.until ?? Date.now()] };
|
|
17617
|
-
if (input.limit !== void 0)
|
|
17757
|
+
if (input.limit !== void 0) {
|
|
17758
|
+
filter["limit"] = input.limit;
|
|
17759
|
+
filter["orderBy"] = {
|
|
17760
|
+
field: "timestamp",
|
|
17761
|
+
direction: "desc"
|
|
17762
|
+
};
|
|
17763
|
+
}
|
|
17618
17764
|
return (await this.store.query.query({
|
|
17619
17765
|
collection: OBJECT_EMBEDDINGS_COLLECTION,
|
|
17620
17766
|
filter
|
|
@@ -23664,7 +23810,17 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
23664
23810
|
deviceId: input.deviceId,
|
|
23665
23811
|
since: input.since,
|
|
23666
23812
|
until: input.until,
|
|
23667
|
-
className: input.classFilter
|
|
23813
|
+
className: input.classFilter,
|
|
23814
|
+
limit: EMBEDDING_SEARCH_CANDIDATE_CAP
|
|
23815
|
+
});
|
|
23816
|
+
if (embeddingRows.length >= 5e3) this.ctx.logger.warn("searchObjectEvents: candidate pool truncated", {
|
|
23817
|
+
meta: {
|
|
23818
|
+
cap: EMBEDDING_SEARCH_CANDIDATE_CAP,
|
|
23819
|
+
since: input.since,
|
|
23820
|
+
until: input.until,
|
|
23821
|
+
className: input.classFilter
|
|
23822
|
+
},
|
|
23823
|
+
tags: input.deviceId !== void 0 ? { deviceId: input.deviceId } : void 0
|
|
23668
23824
|
});
|
|
23669
23825
|
if (embeddingRows.length === 0) return [];
|
|
23670
23826
|
const embeddingMediaKeyByTrackId = /* @__PURE__ */ new Map();
|
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-CZ8fx1RA.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-post-analysis",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.2.23",
|
|
4
|
+
"description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
7
7
|
"addon",
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
//#region \0virtual:mf:__mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js
|
|
2
|
-
var e = "__mf_init__virtual:mf:__mfe_internal__addon_pipeline_analytics_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, s, c, l, u, d, f = (e) => {
|
|
19
|
-
e.AddonGlobalSettingsForm, e.AgentStepEditor, e.AlarmHeroCard, e.AlarmPanelInlineControl, e.AppShell, e.ArcKnob, e.AudioClassificationList, e.AudioLevelWaveform, e.AudioWaveform, e.AutotrackSection, e.BTN_COMPACT, e.BTN_COMPACT_DANGER, e.BTN_COMPACT_PRIMARY, e.BTN_COMPACT_WARNING, e.Badge, e.BatteryBadge, e.BottomSheet, e.Breadcrumb, e.BrightnessPanel, e.Button, e.ButtonControl, e.ButtonHeroCard, e.CENTER, e.CHIP_ACTIVE, e.CHIP_BASE, e.CHIP_INACTIVE, e.CLASS_COLORS, e.COLUMN_BREAKPOINT_CLASS, e.COLUMN_PRIORITY, e.COMMIT_DEDUPE_TOLERANCE_MS, e.COMMIT_DEDUPE_WINDOW_MS, e.CONTROL_CAP_NAMES, e.CONTROL_FILLS, e.CameraStreamPlayer, e.Card, e.Checkbox, e.ChildSectionAccordion, e.ClimatePanel, e.CodeBlock, e.CollapsibleCard, e.ConfigFormBuilder, e.ConfigFormField, e.ConfigSchemaField, e.ConfirmActionButton, e.ConfirmDialogProvider, e.ConsumablesPanel, e.ContainerChildrenProvider, e.ContainerPrimaryHero, e.ControlColumn, e.ControlHeroCard, e.ControlInlineControl, e.ControlPanel, e.CopyButton, e.CoverHeroCard, e.CoverInlineControl, e.CoverPanel, e.CustomFieldRenderersProvider, e.DEFAULT_COLOR, e.DEVICE_COLUMNS, e.DEVICE_LIST_PAGE_SIZE_KEY, e.DEVICE_LIST_PAGE_SIZE_OPTIONS, e.DEVICE_ROLE_META, e.DEVICE_TYPE_CONTROL, e.DEVICE_TYPE_META, e.DISPLAY_ICON_REGISTRY, e.DataTable, e.DetectionCanvas, e.DetectionOverlay, e.DetectionResultTree, e.DevShell, e.DeviceActivityPanel, e.DeviceBatchToolbar, e.DeviceCard, e.DeviceContextProvider, e.DeviceExportPanel, e.DeviceGrid, e.DeviceItem, e.DeviceList, e.DeviceMultiSelectField, e.DeviceSelectField, e.DeviceStepMatrix, e.Dialog, e.DialogContent, e.DialogDescription, e.DialogFooter, e.DialogHeader, e.DialogTitle, e.DialogTrigger, e.DiscoveryPanel, e.DoorbellRecentPanel, e.Dropdown, e.DropdownContent, e.DropdownItem, e.DropdownTrigger, e.DummyHeroCard, e.DummyInline, e.EVENT_KIND_ICONS, e.EmptyState, e.ErrorBox, e.EventKindGlyph, e.EventStream, e.EyeOff, e.FILL, e.FanHeroCard, e.FanInlineControl, e.FanPanel, e.FilterBar, e.FloatingEventStream, e.FloatingLogStream, e.FloatingPanel, e.FormField, a = e.GRID_GAP, e.GRID_PAIRED, e.GRID_QUICK_STATS, e.GripTrack, e.GroupedModelSelector, e.HOST_WIDGETS, e.HlsVideo, e.HoverZoomImage, e.HumidifierHeroCard, e.HumidifierInlineControl, e.INPUT_COMPACT, e.IconAction, e.IconButton, e.ImageHeroCard, e.ImageInlineControl, e.ImageSelector, e.InferenceConfigSelector, e.Input, e.KebabMenu, e.KeyValueList, e.LIST_ROW, e.Label, e.LawnMowerHeroCard, e.LawnMowerInlineControl, e.LightHeroCard, e.LightInlineControl, e.LockHeroCard, e.LockInlineControl, e.LockPanel, e.LogStream, e.LoginForm, e.MODE_COLOR, e.MaskShapeCanvas, e.MediaPlayerHeroCard, e.MediaPlayerInlineControl, e.MediaPlayerPanel, e.MobileDrawer, e.ModelPicker, e.MotionZonesSettings, e.NodeMultiSelectField, e.NodePicker, e.NodeSelectField, e.OfflineBadge, e.PHASE_CONFIG, e.PRIORITY, e.PTZOverlay, e.PageHeader, e.PhaseIcon, e.PipelineBuilder, e.PipelineRuntimeSelector, e.PipelineStep, e.PipelineTreeMatrix, e.PlayerOverlaysProvider, e.Popover, e.PopoverContent, e.PopoverRowAction, e.PopoverTrigger, e.PrimaryChildPicker, e.PrivacyMaskSettings, e.ProviderBadge, e.PtzPanel, e.QrCode, e.RECORDED_PLAYBACK_MODES, e.RIGHT, e.ROLE_DESCRIPTOR, e.RadialGauge, e.RecordedPlaybackProvider, e.RecordingPanel, e.ResponseLog, e.SECTION_BODY, e.SECTION_CARD, e.SECTION_HEADER, e.SPLIT_PANEL_OUTER, e.SPLIT_PANEL_SIDE, o = e.STACK_GAP, e.STATE_COLOR, e.ScopePicker, e.ScrollArea, e.Select, e.SemanticBadge, e.SensorHeroCard, e.SensorInlineControl, e.SensorValueAtom, e.Separator, e.Sidebar, e.SidebarItem, e.Skeleton, e.SlideOverPanel, e.SlideToggle, e.SnapshotButton, e.Square, e.StatCard, e.StateValuesStream, e.StatusBadge, e.StepTimings, e.StepTreeMaster, e.Stepper, e.StreamBrokerSelector, e.StreamPanel, e.Switch, e.SwitchHeroCard, e.SwitchInlineControl, e.SwitchPanel, e.SystemProvider, e.TEXT_FIELD_LABEL, e.TEXT_HINT, e.TEXT_METRIC, e.TEXT_SECTION_LABEL, e.TEXT_VALUE, e.TIMEZONES, e.Tabs, e.TabsContent, e.TabsList, e.TabsTrigger, e.TapToggle, e.ThemeProvider, e.ThermostatHeroCard, e.ThermostatInlineControl, e.TimezoneSelector, e.Tooltip, e.TooltipContent, e.TooltipTrigger, e.Trash2, e.VacuumHeroCard, e.VacuumInlineControl, e.ValueReadout, e.ValveHeroCard, e.ValveInlineControl, e.VersionBadge, e.VodPlaybackProvider, e.WaterHeaterHeroCard, e.WaterHeaterInlineControl, e.WeatherHeroCard, e.WeatherInlineControl, e.WidgetMetricCard, e.WidgetPanel, e.WidgetRegistryProvider, s = e.WidgetSlot, e.ZoneEditingProvider, e.agentColumnKey, e.allDeviceTypeFilterOptions, e.buildStepTreeFromSchema, e.childEntityId, e.childListName, e.cn, e.columnsForContext, e.containerChildToRef, e.countableDevices, e.coverHighlight, e.createLucideIcon, e.createSharedContext, e.createTheme, e.cursorFractionFor, e.darkColors, e.defaultTheme, e.deriveDeviceKind, e.deviceMatchesFilter, e.deviceOptionLabel, e.deviceRoleMeta, e.deviceRoleMetaOf, e.deviceTypeMeta, e.deviceTypeMetaOf, e.devicesToOptions, e.ensureMfHostInit, e.eventKindLabel, e.filterDeviceOptions, e.findTimezone, e.formatControlDateTime, e.formatLastSeen, e.formatNumeric, e.fuzzyMatch, e.getClassColor, e.getPhaseVisual, e.groupAgentColumns, e.groupChildrenByLayout, e.hardwareLabel, e.humidifierTint, e.initialScrubState, e.isAbsentProvider, e.isAbsentProvider$1, e.isFieldVisible, e.lawnMowerActivityMeta, e.lightColors, e.loadRemoteBundle, e.makeScrubBridge, e.metadataEntries, e.metadataString, e.mirror, e.mountAddonPage, e.nextSort, e.normalizeForSearch, e.overrideEntityIdFromLink, e.parseRecordedServerMessage, e.providerIcons, e.resolveContainerPrimary, e.resolveControlAlign, e.resolveDeviceControl, e.resolveDisplayIcon, e.resolveEventKindIcon, e.resolvePrimaryChild, e.resolveSensorDisplay, e.resolveStepDefaultModel, e.scrubReducer, e.selectedDeviceOptions, e.serializeRecordedCommand, e.shouldCommit, e.shouldEmit, e.shouldUseSingleNode, e.sortRows, e.statusIcons, e.stripParentNamePrefix, e.tankAlert, e.themeToCss, e.trpc, e.useAccessoriesGetStatus, e.useAccessoriesSetChildHidden, e.useAddonPagesListPages, e.useAddonSettingsGetDeviceSettings, e.useAddonSettingsGetGlobalSettings, e.useAddonSettingsUpdateDeviceSettings, e.useAddonSettingsUpdateGlobalSettings, e.useAddonWidgetsListWidgets, e.useAddonsApplyAutoUpdateToAll, e.useAddonsCancelJob, e.useAddonsCustom, e.useAddonsForceRefresh, e.useAddonsGetAddonAutoUpdate, e.useAddonsGetAutoUpdateSettings, e.useAddonsGetJob, e.useAddonsGetLastRestart, e.useAddonsGetLogs, e.useAddonsGetVersions, e.useAddonsInstallFromWorkspace, e.useAddonsInstallPackage, e.useAddonsIsWorkspaceAvailable, e.useAddonsList, e.useAddonsListCapabilityProviders, e.useAddonsListFrameworkPackages, e.useAddonsListJobs, e.useAddonsListPackages, e.useAddonsListUpdates, e.useAddonsListWorkspacePackages, e.useAddonsOnAddonLogs, e.useAddonsReloadPackages, e.useAddonsRestartAddon, e.useAddonsRestartServer, e.useAddonsRetryLoad, e.useAddonsRollbackPackage, e.useAddonsSearchAvailable, e.useAddonsSetAddonAutoUpdate, e.useAddonsSetAutoUpdateSettings, e.useAddonsSetCapabilityProviderEnabled, e.useAddonsStartJob, e.useAddonsUninstallPackage, e.useAddonsUpdatePackage, e.useAirQualitySensorGetStatus, e.useAlarmPanelArm, e.useAlarmPanelDisarm, e.useAlarmPanelGetStatus, e.useAlarmPanelTrigger, e.useAlertsDismiss, e.useAlertsEmit, e.useAlertsGetUnreadCount, e.useAlertsList, e.useAlertsMarkAllRead, e.useAlertsMarkRead, e.useAlertsUpdate, e.useAllWidgets, e.useAmbientLightSensorGetStatus, e.useAudioAnalysisApplyDeviceSettingsPatch, e.useAudioAnalysisGetDeviceLiveContribution, e.useAudioAnalysisGetDeviceSettingsContribution, e.useAudioAnalysisResolveDeviceSettings, e.useAudioAnalyzerAnalyseChunk, e.useAudioAnalyzerClassify, e.useAudioAnalyzerDispose, e.useAudioAnalyzerIsReady, e.useAudioAnalyzerReprobeAudioEngine, e.useAudioCodecCanHandle, e.useAudioCodecCloseSession, e.useAudioCodecCreateDecodeSession, e.useAudioCodecCreateEncodeSession, e.useAudioCodecFlushEncode, e.useAudioCodecListActiveSessions, e.useAudioCodecListSupportedCodecs, e.useAudioCodecPullEncoded, e.useAudioCodecPullPcm, e.useAudioCodecPushEncodedFrame, e.useAudioCodecPushPcm, e.useAudioMetricsGetCurrentSnapshot, e.useAudioMetricsGetHistory, e.useAutomationControlDisable, e.useAutomationControlEnable, e.useAutomationControlGetStatus, e.useAutomationControlTrigger, e.useBackupDelete, e.useBackupDeleteSchedule, e.useBackupGetEntries, e.useBackupList, e.useBackupListArchives, e.useBackupListDestinations, e.useBackupListLocations, e.useBackupListSchedules, e.useBackupPreviewSchedule, e.useBackupRestore, e.useBackupTrigger, e.useBackupUpsertDestinationPolicy, e.useBackupUpsertSchedule, e.useBatteryGetStatus, e.useBatteryWakeForStream, e.useBinaryGetStatus, e.useBrightnessGetStatus, e.useBrightnessSetBrightness, e.useBrokerAdd, e.useBrokerGet, e.useBrokerGetBrokerConfig, e.useBrokerGetSettings, e.useBrokerGetSettingsSchema, e.useBrokerGetState, e.useBrokerGetStatus, e.useBrokerList, e.useBrokerListProviders, e.useBrokerPublish, e.useBrokerRemove, e.useBrokerSetSettings, e.useBrokerSubscribe, e.useBrokerTestConnection, e.useBrokerTestSettings, e.useBrokerUnsubscribe, e.useButtonPress, e.useCameraCredentialsGetCredentials, e.useCameraCredentialsGetStatus, e.useCameraPipelineConfigApplyDeviceSettingsPatch, e.useCameraPipelineConfigGetDeviceLiveContribution, e.useCameraPipelineConfigGetDeviceSettingsContribution, e.useCameraStreamsGetBrokerStreams, e.useCameraStreamsGetCameraStreams, e.useCameraStreamsGetProfileRtspEntries, e.useCameraStreamsGetRtspEntries, e.useCameraStreamsPickStream, e.useCarbonMonoxideGetStatus, e.useClimateControlGetStatus, e.useClimateControlSetFanMode, e.useClimateControlSetMode, e.useClimateControlSetPreset, e.useClimateControlSetSwingHorizontal, e.useClimateControlSetSwingVertical, e.useClimateControlSetTarget, e.useClimateControlSetTargetHumidity, e.useClimateControlSetTargetRange, e.useClusterNodes, e.useColorGetStatus, e.useColorSetColor, e.useConfirm, e.useConnectivityGetStatus, e.useConsumablesGetStatus, e.useConsumablesReset, e.useContactGetStatus, e.useContainerChildren, e.useControlGetStatus, e.useControlSetValue, e.useCoverClose, e.useCoverGetStatus, e.useCoverOpen, e.useCoverSetPosition, e.useCoverSetTiltPosition, e.useCoverStop, e.useCustomFieldRenderer, e.useDayNightGetOptions, e.useDayNightGetStatus, e.useDayNightSetSettings, e.useDebouncedString, e.useDecoderCreateSession, e.useDecoderDestroySession, e.useDecoderGetFrame, e.useDecoderGetInfo, e.useDecoderGetShmStats, e.useDecoderGetStats, e.useDecoderListActiveSessions, e.useDecoderOpenStream, e.useDecoderPullFrames, e.useDecoderPullHandles, e.useDecoderPushPacket, e.useDecoderReprobeHwaccel, e.useDecoderSupportsCodec, e.useDecoderUpdateConfig, e.useDetectionPipelineApplyDeviceSettingsPatch, e.useDetectionPipelineGetDeviceLiveContribution, e.useDetectionPipelineGetDeviceSettingsContribution, e.useDevShell, e.useDevice, e.useDeviceAdoptionAdopt, e.useDeviceAdoptionGetCandidate, e.useDeviceAdoptionGetStatus, e.useDeviceAdoptionListCandidateFilters, e.useDeviceAdoptionListCandidates, e.useDeviceAdoptionRefresh, e.useDeviceAdoptionRelease, e.useDeviceAdoptionResync, e.useDeviceAutotrack, e.useDeviceBattery, e.useDeviceCapSlice, e.useDeviceCapability, e.useDeviceDetections, e.useDeviceDiscoveryAdoptDevice, e.useDeviceDiscoveryGetStatus, e.useDeviceDiscoveryListDiscovered, e.useDeviceDiscoveryRefreshDiscovery, e.useDeviceDiscoveryReleaseDevice, e.useDeviceExportApplyDeviceSettingsPatch, e.useDeviceExportExposeDevice, e.useDeviceExportGetDeviceLiveContribution, e.useDeviceExportGetDeviceSettingsContribution, e.useDeviceExportGetStatus, e.useDeviceExportListExposedDevices, e.useDeviceExportListSupportedDeviceKinds, e.useDeviceExportUnexposeDevice, e.useDeviceId, e.useDeviceListPageSize, e.useDeviceManagerAddLocation, e.useDeviceManagerAdoptDevice, e.useDeviceManagerAdoptionAdopt, e.useDeviceManagerAdoptionListCandidateFilters, e.useDeviceManagerAdoptionListCandidates, e.useDeviceManagerAdoptionRefresh, e.useDeviceManagerAdoptionRelease, e.useDeviceManagerAdoptionResync, e.useDeviceManagerAllocateDeviceId, e.useDeviceManagerApplyDeviceSettingsPatch, e.useDeviceManagerApplyInitialMeta, e.useDeviceManagerCreateDevice, e.useDeviceManagerDisable, e.useDeviceManagerDiscoverAllProviders, e.useDeviceManagerDiscoverDevices, e.useDeviceManagerDiscoverProvider, e.useDeviceManagerDiscoveryProviders, e.useDeviceManagerEnable, e.useDeviceManagerGetAllBindings, e.useDeviceManagerGetBindings, e.useDeviceManagerGetChildren, e.useDeviceManagerGetConfigSchema, e.useDeviceManagerGetCreationSchema, e.useDeviceManagerGetDevice, e.useDeviceManagerGetDeviceAggregate, e.useDeviceManagerGetDeviceLiveContribution, e.useDeviceManagerGetDeviceLiveInfoAggregate, e.useDeviceManagerGetDeviceSettingsAggregate, e.useDeviceManagerGetDeviceSettingsContribution, e.useDeviceManagerGetDeviceStatusAggregate, e.useDeviceManagerGetDeviceStatusAggregateBatch, e.useDeviceManagerGetLinkedDevices, e.useDeviceManagerGetRoleDisplayDefaults, e.useDeviceManagerGetSettingsSchema, e.useDeviceManagerGetStreamProfileMap, e.useDeviceManagerGetStreamSources, e.useDeviceManagerGetWireableFields, e.useDeviceManagerListAll, e.useDeviceManagerListBindableCapsForDeviceType, e.useDeviceManagerListLocations, e.useDeviceManagerListPersistedByAddon, e.useDeviceManagerListWrappersForCap, e.useDeviceManagerLoadConfig, e.useDeviceManagerLoadMeta, e.useDeviceManagerLoadRuntimeState, e.useDeviceManagerPersistConfig, e.useDeviceManagerProbeStreams, e.useDeviceManagerProviderCreationType, e.useDeviceManagerProviderDiscoveryParamsSchema, e.useDeviceManagerRegisterDevice, e.useDeviceManagerRemove, e.useDeviceManagerRemoveByIntegration, e.useDeviceManagerRemoveDevice, e.useDeviceManagerRemoveLocation, e.useDeviceManagerRunDeviceAction, e.useDeviceManagerSetChildLayout, e.useDeviceManagerSetDeviceLinks, e.useDeviceManagerSetDisabled, e.useDeviceManagerSetDisplay, e.useDeviceManagerSetIntegrationId, e.useDeviceManagerSetLinkDeviceId, e.useDeviceManagerSetLocation, e.useDeviceManagerSetMetadata, e.useDeviceManagerSetName, e.useDeviceManagerSetPrimaryChildEntityId, e.useDeviceManagerSetRole, e.useDeviceManagerSetRoleDisplayDefaults, e.useDeviceManagerSetStreamProfileMap, e.useDeviceManagerSetType, e.useDeviceManagerSetWrapperActive, e.useDeviceManagerTestCreationField, e.useDeviceManagerTestField, e.useDeviceManagerUpdateConfig, e.useDeviceManagerUpdateDeviceField, e.useDeviceManagerUpdateDeviceFieldsBatch, e.useDeviceOpsGetConfigEntries, e.useDeviceOpsGetRawState, e.useDeviceOpsGetSettingsSchema, e.useDeviceOpsGetStreamSources, e.useDeviceOpsRemoveDevice, e.useDeviceOpsRunAction, e.useDeviceOpsSetConfig, e.useDeviceProviderAdoptDiscoveredDevice, e.useDeviceProviderCreateDevice, e.useDeviceProviderDiscoverDevices, e.useDeviceProviderGetChildCreationSchema, e.useDeviceProviderGetDevices, e.useDeviceProviderGetDiscoveryParamsSchema, e.useDeviceProviderGetManualCreationType, e.useDeviceProviderGetStatus, e.useDeviceProviderStart, e.useDeviceProviderStop, e.useDeviceProviderSupportsDiscovery, e.useDeviceProviderSupportsManualCreation, e.useDeviceProviderTestCreationField, c = e.useDeviceProxy, e.useDeviceProxy$1, e.useDeviceSnapshot, e.useDeviceSnapshotImage, l = e.useDeviceState, e.useDeviceStateGetAllSnapshots, e.useDeviceStateGetCapSlice, e.useDeviceStateGetSnapshot, e.useDeviceStateSetCapSlice, u = e.useDeviceStateSlice, e.useDeviceStatusGetStatus, e.useDeviceWebrtc, e.useDevices, e.useDoorbellApplyDeviceSettingsPatch, e.useDoorbellEvents, e.useDoorbellGetDeviceLiveContribution, e.useDoorbellGetDeviceSettingsContribution, e.useDoorbellGetStatus, e.useEnumSensorGetStatus, e.useEventEmitterGetStatus, e.useEventInvalidation, e.useEventStreamLatest, e.useEventStreamMap, e.useEventsGetEventClipUrl, e.useEventsGetEventThumbnail, e.useEventsGetEvents, e.useFaceGalleryAssignFace, e.useFaceGalleryAssignFaces, e.useFaceGalleryCreateIdentity, e.useFaceGalleryDeleteFace, e.useFaceGalleryDeleteIdentity, e.useFaceGalleryGetFaceByTrack, e.useFaceGalleryGetFaceMedia, e.useFaceGalleryListIdentities, e.useFaceGalleryListIdentitySamples, e.useFaceGalleryListRecentFaces, e.useFaceGalleryRemoveSample, e.useFaceGalleryRenameIdentity, e.useFaceGallerySuggestFaceClusters, e.useFaceGalleryUnassignFace, e.useFaceGalleryUnassignFaces, e.useFanControlGetStatus, e.useFanControlSetDirection, e.useFanControlSetOscillating, e.useFanControlSetPercentage, e.useFanControlSetPreset, e.useFeatureProbeGetStatus, e.useFloodGetStatus, e.useGasGetStatus, e.useHumidifierGetStatus, e.useHumidifierSetMode, e.useHumidifierSetOn, e.useHumidifierSetTargetHumidity, e.useHumiditySensorGetStatus, e.useImageGetStatus, e.useImageSettingsGetOptions, e.useImageSettingsGetStatus, e.useImageSettingsSetSettings, e.useIntegrationsCreate, e.useIntegrationsDelete, e.useIntegrationsGet, e.useIntegrationsGetAvailableTypes, e.useIntegrationsGetByAddonId, e.useIntegrationsGetSettings, e.useIntegrationsList, e.useIntegrationsSetSettings, e.useIntegrationsTestConnection, e.useIntegrationsUpdate, e.useIntercomEndTalkSession, e.useIntercomGetStatus, e.useIntercomHandleAnswer, e.useIntercomPushTalkAudio, e.useIntercomStartSession, e.useIntercomStartTalkSession, e.useIntercomStopSession, e.useIsMidWidth, e.useIsMobile, e.useLawnMowerControlDock, e.useLawnMowerControlGetStatus, e.useLawnMowerControlPause, e.useLawnMowerControlStartMowing, e.useLiveBuffer, e.useLiveEvent, e.useLlmDeleteModel, e.useLlmDeleteProfile, e.useLlmGenerate, e.useLlmGenerateVision, e.useLlmGetDefaults, e.useLlmGetRuntimeStatus, e.useLlmGetUsage, e.useLlmInstallModel, e.useLlmListModelCatalog, e.useLlmListModels, e.useLlmListNodeModels, e.useLlmListProfileKinds, e.useLlmListProfiles, e.useLlmListRuntimeNodes, e.useLlmSetDefault, e.useLlmStartRuntime, e.useLlmStopRuntime, e.useLlmTestProfile, e.useLlmUpsertProfile, e.useLocalNetworkGetAllowedAddresses, e.useLocalNetworkGetConnectionEndpoints, e.useLocalNetworkGetNotificationEndpoint, e.useLocalNetworkGetPreferred, e.useLocalNetworkList, e.useLocalNetworkResetAllowlistToBestMatch, e.useLocalNetworkSetAllowedAddresses, e.useLocalNetworkSetNotificationEndpoint, e.useLockControlGetStatus, e.useLockControlLock, e.useLockControlOpen, e.useLockControlUnlock, e.useMediaPlayerGetStatus, e.useMediaPlayerNext, e.useMediaPlayerPause, e.useMediaPlayerPlay, e.useMediaPlayerPlayMedia, e.useMediaPlayerPrevious, e.useMediaPlayerSeek, e.useMediaPlayerSelectSource, e.useMediaPlayerSetMute, e.useMediaPlayerSetRepeat, e.useMediaPlayerSetShuffle, e.useMediaPlayerSetVolume, e.useMediaPlayerStop, e.useMeshNetworkGetStatus, e.useMeshNetworkJoin, e.useMeshNetworkLeave, e.useMeshNetworkListPeers, e.useMeshNetworkLogout, e.useMeshNetworkStartLogin, e.useMeshNetworkTestConnection, e.useMetricsProviderCollectSnapshot, e.useMetricsProviderDumpHeapSnapshot, e.useMetricsProviderGetAddonStats, e.useMetricsProviderGetCached, e.useMetricsProviderGetCpuTemperature, e.useMetricsProviderGetCurrent, e.useMetricsProviderGetDiskSpace, e.useMetricsProviderGetGpuInfo, e.useMetricsProviderGetProcessStats, e.useMetricsProviderKillProcess, e.useMetricsProviderListAddonInstances, e.useMetricsProviderListNodeProcesses, e.useMotionDetectionAnalyze, e.useMotionDetectionApplyDeviceSettingsPatch, e.useMotionDetectionGetDeviceLiveContribution, e.useMotionDetectionGetDeviceSettingsContribution, e.useMotionDetectionRemoveCamera, e.useMotionDetectionReset, e.useMotionGetStatus, e.useMotionIsDetected, e.useMotionTriggerGetStatus, e.useMotionTriggerSetMotionTrigger, e.useMotionZonesGetOptions, e.useMotionZonesGetStatus, e.useMotionZonesSetZone, e.useMqttBrokerAddBroker, e.useMqttBrokerGetBrokerConfig, e.useMqttBrokerGetStatus, e.useMqttBrokerListBrokers, e.useMqttBrokerRemoveBroker, e.useMqttBrokerStartEmbeddedBroker, e.useMqttBrokerStopEmbeddedBroker, e.useMqttBrokerTestConnection, e.useNativeObjectDetectionGetStatus, e.useNativeObjectDetectionSetEnabled, e.useNetworkAccessGetEndpoint, e.useNetworkAccessGetStatus, e.useNetworkAccessListEndpoints, e.useNetworkAccessStart, e.useNetworkAccessStop, e.useNetworkQualityGetAllStats, e.useNetworkQualityGetDeviceStats, e.useNetworkQualityReportClientStats, e.useNodesClusterAddonStatus, e.useNodesDeployAddon, e.useNodesExecuteQuery, e.useNodesGetCapUsageGraph, e.useNodesGetNodeAddons, e.useNodesRenameNode, e.useNodesRestartAddon, e.useNodesRestartNode, e.useNodesRestartProcess, e.useNodesSetProcessLogLevel, e.useNodesShutdownNode, e.useNodesTopology, e.useNodesUndeployAddon, e.useNotificationOutputDeleteTarget, e.useNotificationOutputDiscoverTargets, e.useNotificationOutputListTargetKinds, e.useNotificationOutputListTargets, e.useNotificationOutputSend, e.useNotificationOutputSetTargetEnabled, e.useNotificationOutputTestTarget, e.useNotificationOutputUpsertTarget, e.useNotificationRulesCreateRule, e.useNotificationRulesDeleteRule, e.useNotificationRulesGetConditionCatalog, e.useNotificationRulesGetHistory, e.useNotificationRulesGetRule, e.useNotificationRulesListRules, e.useNotificationRulesSetRuleEnabled, e.useNotificationRulesTestRule, e.useNotificationRulesUpdateRule, e.useNotifierCancel, e.useNotifierGetStatus, e.useNotifierSend, e.useNumericSensorGetStatus, e.useOptimisticSlice, e.useOptionalSystem, e.useOptionalWidgetRegistry, e.useOsdGetStatus, e.useOsdSetOverlay, e.usePTZ, e.usePetFeederCallPet, e.usePetFeederCancelFeed, e.usePetFeederFeed, e.usePetFeederGetStatus, e.usePetFeederMarkFoodReplenished, e.usePetFeederPlaySound, e.usePetFeederResetDesiccant, e.usePetFeederSetChildLock, e.usePetFeederSetFeedSound, e.usePetFeederSetIndicatorLight, e.usePetFeederSetVolume, e.usePipelineAnalyticsApplyDeviceSettingsPatch, e.usePipelineAnalyticsCancelMediaRelocate, e.usePipelineAnalyticsClearTracks, e.usePipelineAnalyticsDeleteDeviceEvents, e.usePipelineAnalyticsDeleteTracks, e.usePipelineAnalyticsGetActiveTracks, e.usePipelineAnalyticsGetAudioEvents, e.usePipelineAnalyticsGetDeviceLiveContribution, e.usePipelineAnalyticsGetDeviceSettingsContribution, e.usePipelineAnalyticsGetEventDensity, e.usePipelineAnalyticsGetEventMedia, e.usePipelineAnalyticsGetEventStoreFootprint, e.usePipelineAnalyticsGetKeyEvents, e.usePipelineAnalyticsGetMediaRelocateStatus, e.usePipelineAnalyticsGetMotionEvents, e.usePipelineAnalyticsGetObjectEvents, e.usePipelineAnalyticsGetSensorEvents, e.usePipelineAnalyticsGetTrack, e.usePipelineAnalyticsGetTrackMedia, e.usePipelineAnalyticsListEventKinds, e.usePipelineAnalyticsListOpsLog, e.usePipelineAnalyticsListRecentTracks, e.usePipelineAnalyticsListTracks, e.usePipelineAnalyticsPruneEvents, e.usePipelineAnalyticsPruneEventsBefore, e.usePipelineAnalyticsPruneTracksBefore, e.usePipelineAnalyticsRelocateMedia, e.usePipelineAnalyticsSearchObjectEvents, e.usePipelineAnalyticsWipeAllAnalytics, e.usePipelineExecutorCacheFrameInPool, e.usePipelineExecutorClearDeviceOverrides, e.usePipelineExecutorDeleteModel, e.usePipelineExecutorDeleteTemplate, e.usePipelineExecutorDownloadModel, e.usePipelineExecutorGetAddonModels, e.usePipelineExecutorGetAudioCapabilities, e.usePipelineExecutorGetAvailableEngines, e.usePipelineExecutorGetCapabilities, e.usePipelineExecutorGetDefaultSteps, e.usePipelineExecutorGetDetectionConfigSchema, e.usePipelineExecutorGetEffectiveTuning, e.usePipelineExecutorGetEngineProvisioning, e.usePipelineExecutorGetGlobalPipelineConfig, e.usePipelineExecutorGetGlobalSteps, e.usePipelineExecutorGetOrchestratorConfigSchema, e.usePipelineExecutorGetReferenceAudio, e.usePipelineExecutorGetReferenceAudioFiles, e.usePipelineExecutorGetReferenceImage, e.usePipelineExecutorGetSchema, e.usePipelineExecutorGetSelectedEngine, e.usePipelineExecutorGetVideoPipelineSteps, e.usePipelineExecutorInferCached, e.usePipelineExecutorKillEngine, e.usePipelineExecutorListLoadedEngines, e.usePipelineExecutorListReferenceImages, e.usePipelineExecutorListTemplates, e.usePipelineExecutorRunAudioTest, e.usePipelineExecutorRunPipeline, e.usePipelineExecutorRunPipelineBatch, e.usePipelineExecutorSaveTemplate, e.usePipelineExecutorSetVideoPipelineSteps, e.usePipelineExecutorSpinEngine, e.usePipelineExecutorUncacheFrame, e.usePipelineExecutorUpdateTemplate, e.usePipelineExecutorValidatePipeline, e.usePipelineOrchestratorApplyDeviceSettingsPatch, e.usePipelineOrchestratorAssignAudio, e.usePipelineOrchestratorAssignPipeline, e.usePipelineOrchestratorDeleteTemplate, e.usePipelineOrchestratorGetAgentLoad, e.usePipelineOrchestratorGetAgentSettings, e.usePipelineOrchestratorGetAudioAssignment, e.usePipelineOrchestratorGetAudioAssignments, e.usePipelineOrchestratorGetAudioNodeLoad, e.usePipelineOrchestratorGetCameraMetrics, e.usePipelineOrchestratorGetCameraSettings, e.usePipelineOrchestratorGetCameraStatus, e.usePipelineOrchestratorGetCameraStatuses, e.usePipelineOrchestratorGetCameraStepOverrides, e.usePipelineOrchestratorGetCapabilityBindings, e.usePipelineOrchestratorGetDeviceLiveContribution, e.usePipelineOrchestratorGetDeviceSettingsContribution, e.usePipelineOrchestratorGetGlobalMetrics, e.usePipelineOrchestratorGetIngestOwner, e.usePipelineOrchestratorGetNodeInferenceDevices, e.usePipelineOrchestratorGetPipelineAssignment, e.usePipelineOrchestratorGetPipelineAssignments, e.usePipelineOrchestratorGetPipelineDevicePin, e.usePipelineOrchestratorListAgentSettings, e.usePipelineOrchestratorListTemplates, e.usePipelineOrchestratorRebalance, e.usePipelineOrchestratorRemoveAgentSettings, e.usePipelineOrchestratorResetNodePipelineDefaults, e.usePipelineOrchestratorResolvePipeline, e.usePipelineOrchestratorSaveTemplate, e.usePipelineOrchestratorSetAgentCapabilities, e.usePipelineOrchestratorSetAgentDetectWeight, e.usePipelineOrchestratorSetAgentInferenceDevices, e.usePipelineOrchestratorSetAgentMaxCameras, e.usePipelineOrchestratorSetAgentReachableHost, e.usePipelineOrchestratorSetCameraPipelineForAgent, e.usePipelineOrchestratorSetCameraStepOverride, e.usePipelineOrchestratorSetCameraStepToggle, e.usePipelineOrchestratorSetCapabilityBinding, e.usePipelineOrchestratorSetPipelineDevicePin, e.usePipelineOrchestratorUnassignAudio, e.usePipelineOrchestratorUnassignPipeline, e.usePipelineOrchestratorUpdateTemplate, e.usePipelineRunnerAttachCamera, e.usePipelineRunnerDetachCamera, e.usePipelineRunnerGetAllCameraMetrics, e.usePipelineRunnerGetCameraMetrics, e.usePipelineRunnerGetLocalCameras, e.usePipelineRunnerGetLocalLoad, e.usePipelineRunnerGetLocalMetrics, e.usePipelineRunnerGetNativeCrop, e.usePipelineRunnerReportMotion, e.usePipelineRunnerRunDetailSubtree, e.usePlateGalleryAssignPlate, e.usePlateGalleryAssignPlates, e.usePlateGalleryCorrectPlateText, e.usePlateGalleryCreateVehicle, e.usePlateGalleryDeletePlate, e.usePlateGalleryDeleteVehicle, e.usePlateGalleryGetPlateByTrack, e.usePlateGalleryGetPlateMedia, e.usePlateGalleryListPlates, e.usePlateGalleryListVehicleSamples, e.usePlateGalleryListVehicles, e.usePlateGalleryRemoveVehicleSample, e.usePlateGalleryRenameVehicle, e.usePlateGallerySearchPlates, e.usePlateGallerySuggestPlateClusters, e.usePlateGalleryUnassignPlate, e.usePlateGalleryUnassignPlates, e.usePlayerOverlayLayer, e.usePlayerOverlayLayers, e.usePlayerToolbarButton, e.usePlayerToolbarButtons, e.usePowerMeterGetStatus, e.usePresenceGetStatus, e.usePressureSensorGetStatus, e.usePrivacyMaskGetOptions, e.usePrivacyMaskGetStatus, e.usePrivacyMaskSetMask, e.usePtzAutotrackGetSettings, e.usePtzAutotrackGetStatus, e.usePtzAutotrackSetEnabled, e.usePtzAutotrackSetSettings, e.usePtzContinuousMove, e.usePtzDeletePreset, e.usePtzGetOptions, e.usePtzGetPosition, e.usePtzGetPresets, e.usePtzGetStatus, e.usePtzGoHome, e.usePtzGoToPreset, e.usePtzMove, e.usePtzSavePreset, e.usePtzSetAutofocus, e.usePtzStop, e.useRebootReboot, e.useRecordedPlayback, e.useRecordingApplyDeviceSettingsPatch, e.useRecordingCancelRelocate, e.useRecordingDeleteFootprint, e.useRecordingExportCancelExport, e.useRecordingExportCreateExport, e.useRecordingExportDeleteExport, e.useRecordingExportGetDownloadUrl, e.useRecordingExportGetExport, e.useRecordingExportListExports, e.useRecordingGetAvailability, e.useRecordingGetDaysWithRecordings, e.useRecordingGetDeviceConfig, e.useRecordingGetDeviceLiveContribution, e.useRecordingGetDeviceSettingsContribution, e.useRecordingGetPlaybackManifest, e.useRecordingGetRelocateStatus, e.useRecordingGetStatus, e.useRecordingGetStorageUsage, e.useRecordingListOpsLog, e.useRecordingLocateSegment, e.useRecordingPruneFootage, e.useRecordingReadSegmentBytes, e.useRecordingRelocateFootage, e.useRecordingRenderClip, e.useRecordingRenderGif, e.useRecordingRescanStorage, e.useRecordingSetDeviceConfig, e.useRemoteComponent, e.useSceneMonitorCaptureReference, e.useSceneMonitorCreateScene, e.useSceneMonitorDeleteReference, e.useSceneMonitorDeleteScene, e.useSceneMonitorGetStatus, e.useSceneMonitorListScenes, e.useSceneMonitorRecheckNow, e.useSceneMonitorUpdateScene, e.useScriptRunnerGetStatus, e.useScriptRunnerRun, e.useScriptRunnerStop, e.useScrubController, e.useServerManagementApplyServerUpdate, e.useServerManagementCheckServerUpdate, e.useServerManagementGetServerPackageStatus, e.useServerManagementRestartServer, e.useServerManagementRollbackServerUpdate, e.useSettingsStoreCount, e.useSettingsStoreDeclareCollection, e.useSettingsStoreDelete, e.useSettingsStoreGet, e.useSettingsStoreHistogram, e.useSettingsStoreInsert, e.useSettingsStoreIsEmpty, e.useSettingsStoreQuery, e.useSettingsStoreSet, e.useSettingsStoreUpdate, e.useSmokeGetStatus, e.useSnapshotApplyDeviceSettingsPatch, e.useSnapshotGetDeviceLiveContribution, e.useSnapshotGetDeviceSettingsContribution, e.useSnapshotGetSnapshot, e.useSnapshotGetSnapshotOverview, e.useSnapshotGetStatus, e.useSnapshotInvalidateCache, e.useStorageAbortUpload, e.useStorageBeginDownload, e.useStorageBeginUpload, e.useStorageDelete, e.useStorageDeleteLocation, e.useStorageEndDownload, e.useStorageExists, e.useStorageFinalizeUpload, e.useStorageGetAvailableSpace, e.useStorageGetDefaultLocation, e.useStorageList, e.useStorageListLocationDeclarations, e.useStorageListLocations, e.useStorageListProviders, e.useStorageRead, e.useStorageReadChunk, e.useStorageResolve, e.useStorageTestConfig, e.useStorageTestLocation, e.useStorageUpsertLocation, e.useStorageWrite, e.useStorageWriteChunk, e.useStreamBrokerApplyDeviceSettingsPatch, e.useStreamBrokerAssignProfile, e.useStreamBrokerGetAllRtspEntries, e.useStreamBrokerGetBrokerStats, e.useStreamBrokerGetDeviceLiveContribution, e.useStreamBrokerGetDeviceSettingsContribution, e.useStreamBrokerGetPreBufferInfo, e.useStreamBrokerGetRtspEntry, e.useStreamBrokerGetRtspPort, e.useStreamBrokerGetStreamUrl, e.useStreamBrokerGetStreamWithCodec, e.useStreamBrokerIsRtspEnabled, e.useStreamBrokerKillClient, e.useStreamBrokerListAllCameraStreams, e.useStreamBrokerListAllProfileSlots, e.useStreamBrokerListClients, e.useStreamBrokerProbeStream, e.useStreamBrokerPublishCameraStream, e.useStreamBrokerPullAudioChunks, e.useStreamBrokerPullFrameHandles, e.useStreamBrokerRegenerateRtspToken, e.useStreamBrokerReleaseStreamWithCodec, e.useStreamBrokerRenderPreBufferClip, e.useStreamBrokerRestartProfile, e.useStreamBrokerRetractCameraStream, e.useStreamBrokerSetPreBufferDuration, e.useStreamBrokerSetRtspEnabled, e.useStreamBrokerSubscribeAudioChunks, e.useStreamBrokerSubscribeFrames, e.useStreamBrokerUnassignProfile, e.useStreamBrokerUnsubscribeAudioChunks, e.useStreamBrokerUnsubscribeFrames, e.useStreamCatalogGetCatalog, e.useStreamParamsGetConfigSchema, e.useStreamParamsGetOptions, e.useStreamParamsGetStatus, e.useStreamParamsSetProfile, e.useSwitchGetStatus, e.useSwitchSetState, d = e.useSystem, e.useSystem$1, e.useSystemFeatureFlags, e.useSystemForceRetentionCleanup, e.useSystemGetRetentionConfig, e.useSystemHealth, e.useSystemInfo, e.useSystemMutation, e.useSystemNetworkAddresses, e.useSystemQuery, e.useSystemSetRetentionConfig, e.useTamperGetStatus, e.useTemperatureSensorGetStatus, e.useTerminalSessionClose, e.useTerminalSessionListProfiles, e.useTerminalSessionListSessions, e.useTerminalSessionOpenSession, e.useTerminalSessionResize, e.useThemeMode, e.useToastOnToast, e.useTurnProviderGetTurnServers, e.useUpdateGetStatus, e.useUpdateInstallUpdate, e.useUserManagementConfirmTotp, e.useUserManagementCreateApiKey, e.useUserManagementCreateScopedToken, e.useUserManagementCreateUser, e.useUserManagementDeleteUser, e.useUserManagementDisableTotp, e.useUserManagementGetTotpStatus, e.useUserManagementListApiKeys, e.useUserManagementListOauthSessions, e.useUserManagementListScopedTokens, e.useUserManagementListUsers, e.useUserManagementOauthExchangeCode, e.useUserManagementOauthIssueCode, e.useUserManagementOauthRefresh, e.useUserManagementOauthVerifyAccessToken, e.useUserManagementResetPassword, e.useUserManagementRevokeApiKey, e.useUserManagementRevokeOauthSession, e.useUserManagementRevokeScopedToken, e.useUserManagementSetUserScopes, e.useUserManagementSetupTotp, e.useUserManagementUpdateUser, e.useUserManagementValidateApiKey, e.useUserManagementValidateCredentials, e.useUserManagementValidateScopedToken, e.useUserManagementVerifyTotp, e.useVacuumControlGetStatus, e.useVacuumControlLocate, e.useVacuumControlPause, e.useVacuumControlReturnToBase, e.useVacuumControlSetFanSpeed, e.useVacuumControlStart, e.useVacuumControlStop, e.useValveClose, e.useValveGetStatus, e.useValveOpen, e.useValveSetPosition, e.useValveStop, e.useVibrationGetStatus, e.useVideoclipsGetClipPlayback, e.useVideoclipsListClips, e.useVodPlayback, e.useWaterHeaterGetStatus, e.useWaterHeaterSetAway, e.useWaterHeaterSetOperationMode, e.useWaterHeaterSetTargetTemp, e.useWeatherGetStatus, e.useWebrtcSessionAddIceCandidate, e.useWebrtcSessionCloseSession, e.useWebrtcSessionCreateSession, e.useWebrtcSessionGetIceCandidates, e.useWebrtcSessionGetSessionState, e.useWebrtcSessionHandleAnswer, e.useWebrtcSessionHandleOffer, e.useWebrtcSessionHasAdaptiveBitrate, e.useWebrtcSessionListStreams, e.useWidget, e.useWidgetMetadata, e.useWidgetRegistry, e.useZoneAnalyticsGetCameraHistory, e.useZoneAnalyticsGetCurrentSnapshot, e.useZoneAnalyticsGetUnzonedHistory, e.useZoneAnalyticsGetZoneHistory, e.useZoneEditing, e.useZoneRulesListRules, e.useZoneRulesSetRules, e.useZonesAddZone, e.useZonesListZones, e.useZonesRemoveZone, e.useZonesUpdateZone, e.vacuumStateMeta, e.validateScopes, e.valveStateMeta, e.waterHeaterPhase, e.waterHeaterTint, e.weatherConditionMeta, e.weatherTint, e.default;
|
|
20
|
-
}, p = i.share["default:@camstack/ui-library"];
|
|
21
|
-
p === void 0 ? n.then(() => {
|
|
22
|
-
if (p = i.share["default:@camstack/ui-library"], p === void 0) throw Error("[Module Federation] Shared module @camstack/ui-library was imported before federation bootstrap finished.");
|
|
23
|
-
f(p);
|
|
24
|
-
}) : f(p);
|
|
25
|
-
//#endregion
|
|
26
|
-
export { c as a, s as i, d as n, l as o, o as r, u as s, a as t };
|