@camstack/addon-pipeline 1.2.75 → 1.2.77
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-a_36HH_N.js → addon-utils-bZcwLaVW.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-6ZJCV0jY.js → dist-DQZzL0Ri.js} +452 -42
- package/dist/{dist-T_8jMw7d.mjs → dist-HhcoV-Ky.mjs} +452 -42
- package/dist/{event-loop-stall-monitor-Cjof8vA1.js → event-loop-stall-monitor-CBOo1oh_.js} +1 -1
- package/dist/{event-loop-stall-monitor-XeGmL4xr.mjs → event-loop-stall-monitor-CqBEWGSZ.mjs} +1 -1
- package/dist/{lazy-sharp-DvwPafeP.js → lazy-sharp-DIC1rpea.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 +278 -15
- package/dist/pipeline-runner/index.mjs +277 -14
- package/dist/recorder/index.js +368 -18
- package/dist/recorder/index.mjs +367 -17
- 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 +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-H2OTmgR6.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-De_xzvjU.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DHJSxHH1.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dg08SxUW.mjs +26 -0
- package/dist/stream-broker/{hostInit-4XDN_Nt0.mjs → hostInit-CDS5frmk.mjs} +3 -3
- package/dist/stream-broker/index.js +306 -71
- package/dist/stream-broker/index.mjs +306 -71
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-SqED7Y9i.mjs → worker-protocol-BNlLGLBV.mjs} +1 -1
- package/dist/{worker-protocol-B0cbTXyw.js → worker-protocol-DZVGVAPU.js} +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-RYTOS6B-.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DfsLsn2e.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-HhcoV-Ky.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";
|
|
@@ -1709,7 +1709,7 @@ async function availabilityProfile(root, deviceId) {
|
|
|
1709
1709
|
* NOT profiles (`events/`, plus the `strips/` trees the retired filmstrip tier
|
|
1710
1710
|
* left on disk); a walker that trusts readdir would offer them as playable
|
|
1711
1711
|
* profiles. */
|
|
1712
|
-
var KNOWN_PROFILES = new Set([
|
|
1712
|
+
var KNOWN_PROFILES$1 = new Set([
|
|
1713
1713
|
"high",
|
|
1714
1714
|
"mid",
|
|
1715
1715
|
"low"
|
|
@@ -1717,7 +1717,7 @@ var KNOWN_PROFILES = new Set([
|
|
|
1717
1717
|
/** `<root>/<deviceId>/` PROFILE subdirectories. Empty when absent. */
|
|
1718
1718
|
async function profilesOf(root, deviceId) {
|
|
1719
1719
|
try {
|
|
1720
|
-
return (await promises.readdir(path.join(root, String(deviceId)))).filter((e) => KNOWN_PROFILES.has(e));
|
|
1720
|
+
return (await promises.readdir(path.join(root, String(deviceId)))).filter((e) => KNOWN_PROFILES$1.has(e));
|
|
1721
1721
|
} catch {
|
|
1722
1722
|
return [];
|
|
1723
1723
|
}
|
|
@@ -5664,26 +5664,29 @@ var PENDING_GRACE_MS = 3e4;
|
|
|
5664
5664
|
* segment of every recording would be classified as a previous run's leftover
|
|
5665
5665
|
* and dropped.
|
|
5666
5666
|
*/
|
|
5667
|
-
var PREVIOUS_RUN_SKEW_MS = 1e3;
|
|
5667
|
+
var PREVIOUS_RUN_SKEW_MS$1 = 1e3;
|
|
5668
5668
|
/**
|
|
5669
5669
|
* Decide whether a missing flat file is a late flush or a previous run's entry.
|
|
5670
5670
|
*
|
|
5671
|
-
* ffmpeg
|
|
5672
|
-
* starts at `processed = 0
|
|
5673
|
-
*
|
|
5674
|
-
*
|
|
5675
|
-
* 83% of all retries (median
|
|
5676
|
-
*
|
|
5677
|
-
* that was correctly filed hours
|
|
5671
|
+
* ffmpeg opens `-segment_list` in TRUNCATE mode when it spawns, but not
|
|
5672
|
+
* instantly: a fresh watcher starts at `processed = 0` and, in the window
|
|
5673
|
+
* between spawn and that truncation, reads the PREVIOUS run's playlist body.
|
|
5674
|
+
* Those entries were relocated into the bucket tree long ago; their absence is
|
|
5675
|
+
* the system working. Over 2026-08-10..13 they were 83% of all retries (median
|
|
5676
|
+
* age 1 615 s, max 17.4 h) and produced 68 of the 122 `never landed` warnings —
|
|
5677
|
+
* a warning that reads like data loss for a file that was correctly filed hours
|
|
5678
|
+
* earlier.
|
|
5678
5679
|
*
|
|
5679
|
-
*
|
|
5680
|
-
*
|
|
5681
|
-
*
|
|
5682
|
-
*
|
|
5683
|
-
*
|
|
5680
|
+
* What this is NOT is crash recovery, and an earlier version of this comment
|
|
5681
|
+
* claimed it was. Once ffmpeg truncates, the previous run's un-relocated
|
|
5682
|
+
* segments are named by NOTHING, so no amount of care in this function can
|
|
5683
|
+
* reach them — on 2026-08-14 that had stranded 179 GB across the fleet. They
|
|
5684
|
+
* are recovered from the DIRECTORY instead, by `staging-reconcile.ts`, which
|
|
5685
|
+
* the addon runs once at boot. This function only has to be right about the
|
|
5686
|
+
* entries a playlist does name.
|
|
5684
5687
|
*/
|
|
5685
5688
|
function classifyMissingEntry(input) {
|
|
5686
|
-
return input.segmentStartMs < input.writerStartedMs - PREVIOUS_RUN_SKEW_MS ? "stale-previous-run" : "pending";
|
|
5689
|
+
return input.segmentStartMs < input.writerStartedMs - PREVIOUS_RUN_SKEW_MS$1 ? "stale-previous-run" : "pending";
|
|
5687
5690
|
}
|
|
5688
5691
|
/** Whether a pending entry has outlived its grace. Pure — the caller clocks it. */
|
|
5689
5692
|
function shouldGiveUpOnPending(input) {
|
|
@@ -6978,6 +6981,312 @@ var RetentionSweeper = class {
|
|
|
6978
6981
|
}
|
|
6979
6982
|
};
|
|
6980
6983
|
//#endregion
|
|
6984
|
+
//#region src/recorder/addon/staging-reconcile.ts
|
|
6985
|
+
/**
|
|
6986
|
+
* Recover `.rec-tmp` segments that a writer restart orphaned.
|
|
6987
|
+
*
|
|
6988
|
+
* WHY THIS EXISTS
|
|
6989
|
+
* ───────────────
|
|
6990
|
+
* The segment watcher's ONLY record of what it still owes is ffmpeg's
|
|
6991
|
+
* `-segment_list live.m3u8`. ffmpeg opens that file in TRUNCATE mode on every
|
|
6992
|
+
* spawn, so a writer respawn destroys it. Every segment written but not yet
|
|
6993
|
+
* relocated at that instant becomes permanently unreachable:
|
|
6994
|
+
*
|
|
6995
|
+
* - no playlist names it, so no watcher will ever finalize it;
|
|
6996
|
+
* - `parseSegmentPath` cannot see it — staging is flat and dot-prefixed, kept
|
|
6997
|
+
* deliberately out of the hydrate walk — so retention never counts it;
|
|
6998
|
+
* - the one `.rec-tmp` sweep that exists (`sweepUnassignedStaging`) touches
|
|
6999
|
+
* only locations with ZERO placement assignments, never the live one.
|
|
7000
|
+
*
|
|
7001
|
+
* So the footage is not deleted and not kept: it is stranded, and it accrues
|
|
7002
|
+
* for as long as the install runs.
|
|
7003
|
+
*
|
|
7004
|
+
* `segment-watcher.ts` carries a comment asserting the opposite — that the
|
|
7005
|
+
* playlist "is NOT cleared between runs", which is what its `stale-previous-run`
|
|
7006
|
+
* classification and its documented "that is the crash recovery" path are built
|
|
7007
|
+
* on. The live filesystem refutes it, and a leftover that describes the right
|
|
7008
|
+
* design reads as verification: on 2026-08-14 `/recordings/.rec-tmp/590/high/`
|
|
7009
|
+
* held a `live.m3u8` of 50 entries, every one named at or after that writer's
|
|
7010
|
+
* 20:28:31 start, beside **5 863 older `.m4s` files referenced by nobody** —
|
|
7011
|
+
* the oldest from 2026-07-04. Fleet total: 179 GB, on an array at 90% full.
|
|
7012
|
+
*
|
|
7013
|
+
* WHAT THIS DOES NOT DO
|
|
7014
|
+
* ─────────────────────
|
|
7015
|
+
* It never deletes. Recovery is the same `SegmentStore.onFinalized` the live
|
|
7016
|
+
* path uses — stat, relocate into the UTC bucket, index — so a recovered
|
|
7017
|
+
* segment is indistinguishable from one that was never orphaned, and a segment
|
|
7018
|
+
* it cannot place stays exactly where it is for the next attempt.
|
|
7019
|
+
*/
|
|
7020
|
+
/**
|
|
7021
|
+
* How far before the writer's own start a segment may be named and still count
|
|
7022
|
+
* as belonging to THIS run.
|
|
7023
|
+
*
|
|
7024
|
+
* Mirrors `segment-watcher.PREVIOUS_RUN_SKEW_MS`, and for the same reason:
|
|
7025
|
+
* ffmpeg names segments with whole-second `%s`, so the first segment of a run
|
|
7026
|
+
* carries the second already in progress when the process spawned. Without the
|
|
7027
|
+
* tolerance a recovery pass would reach for the live writer's opening segment —
|
|
7028
|
+
* the one file in the directory that is still being written.
|
|
7029
|
+
*/
|
|
7030
|
+
var PREVIOUS_RUN_SKEW_MS = 1e3;
|
|
7031
|
+
/**
|
|
7032
|
+
* How much longer than nominal an inter-segment gap may be and still be read as
|
|
7033
|
+
* one segment's duration.
|
|
7034
|
+
*
|
|
7035
|
+
* ffmpeg cuts on keyframes, so a real segment overshoots `-segment_time` by up
|
|
7036
|
+
* to a GOP; a gap of twice nominal is still plausibly one segment. Anything
|
|
7037
|
+
* wider is a RUN BOUNDARY — the writer was down in between — and the honest
|
|
7038
|
+
* duration is the nominal one. Trusting the gap there would paint a solid
|
|
7039
|
+
* timeline bar across hours of footage that does not exist, which is a worse
|
|
7040
|
+
* failure than under-reporting by a few seconds.
|
|
7041
|
+
*/
|
|
7042
|
+
var MAX_GAP_FACTOR = 2;
|
|
7043
|
+
/**
|
|
7044
|
+
* Decide which staged files belong to a previous run, and how long each ran.
|
|
7045
|
+
*
|
|
7046
|
+
* Pure — the caller does the I/O. The gate is the file's own name against the
|
|
7047
|
+
* writer's start: a segment named before this ffmpeg spawned cannot be one this
|
|
7048
|
+
* ffmpeg is writing, whatever the playlist says.
|
|
7049
|
+
*/
|
|
7050
|
+
function planStagingRecovery(input) {
|
|
7051
|
+
const nominalMs = input.segmentSeconds * 1e3;
|
|
7052
|
+
const cutoffMs = input.writerStartedMs - PREVIOUS_RUN_SKEW_MS;
|
|
7053
|
+
const owned = input.playlistNames;
|
|
7054
|
+
const candidates = [];
|
|
7055
|
+
for (const name of input.names) {
|
|
7056
|
+
const startMs = parseEpochStartMs(name);
|
|
7057
|
+
if (startMs === null) continue;
|
|
7058
|
+
if (startMs >= cutoffMs) continue;
|
|
7059
|
+
if (owned?.has(name) === true) continue;
|
|
7060
|
+
candidates.push({
|
|
7061
|
+
name,
|
|
7062
|
+
startMs
|
|
7063
|
+
});
|
|
7064
|
+
}
|
|
7065
|
+
candidates.sort((a, b) => a.startMs - b.startMs);
|
|
7066
|
+
const maxGapMs = nominalMs * MAX_GAP_FACTOR;
|
|
7067
|
+
return candidates.map((c, i) => {
|
|
7068
|
+
const next = candidates[i + 1];
|
|
7069
|
+
const gapMs = next === void 0 ? 0 : next.startMs - c.startMs;
|
|
7070
|
+
const durMs = gapMs > 0 && gapMs <= maxGapMs ? gapMs : nominalMs;
|
|
7071
|
+
return {
|
|
7072
|
+
name: c.name,
|
|
7073
|
+
startMs: c.startMs,
|
|
7074
|
+
durMs
|
|
7075
|
+
};
|
|
7076
|
+
});
|
|
7077
|
+
}
|
|
7078
|
+
/** The real filesystem. The only production value of {@link StagingIo}. */
|
|
7079
|
+
var nodeStagingIo = {
|
|
7080
|
+
listDir: (dir) => promises.readdir(dir),
|
|
7081
|
+
readPlaylist: (dir) => promises.readFile(path.join(dir, "live.m3u8"), "utf8").catch(() => null)
|
|
7082
|
+
};
|
|
7083
|
+
/** The only `<deviceId>/` subdirectories of staging that hold segments. */
|
|
7084
|
+
var KNOWN_PROFILES = new Set([
|
|
7085
|
+
"high",
|
|
7086
|
+
"mid",
|
|
7087
|
+
"low"
|
|
7088
|
+
]);
|
|
7089
|
+
/** Default orphans per chunk. 590/high alone had 5 863 of them. */
|
|
7090
|
+
var DEFAULT_CHUNK_SIZE = 100;
|
|
7091
|
+
var macrotask = () => new Promise((resolve) => {
|
|
7092
|
+
setTimeout(resolve, 0);
|
|
7093
|
+
});
|
|
7094
|
+
/**
|
|
7095
|
+
* Relocate every previous-run segment left in one staging dir.
|
|
7096
|
+
*
|
|
7097
|
+
* Chunked with a yield between batches: this runs alongside a live recorder and
|
|
7098
|
+
* a backlog is measured in thousands of files over shfs/FUSE — a single
|
|
7099
|
+
* uninterrupted loop is exactly the event-loop stall the recorder has already
|
|
7100
|
+
* paid for once (D128).
|
|
7101
|
+
*
|
|
7102
|
+
* A failure is per-segment and never aborts the pass: the file stays in staging
|
|
7103
|
+
* and the next attach retries it. Every drop is logged with the segment name —
|
|
7104
|
+
* silence reads as "never happened", and this whole class of loss went
|
|
7105
|
+
* unnoticed for six weeks precisely because nothing said anything.
|
|
7106
|
+
*/
|
|
7107
|
+
async function recoverStagingOrphans(dir, input, deps) {
|
|
7108
|
+
let names;
|
|
7109
|
+
try {
|
|
7110
|
+
names = await deps.listDir(dir);
|
|
7111
|
+
} catch (err) {
|
|
7112
|
+
deps.logger.warn("recorder: staging recovery could not list the staging dir", { meta: {
|
|
7113
|
+
dir,
|
|
7114
|
+
error: err instanceof Error ? err.message : String(err)
|
|
7115
|
+
} });
|
|
7116
|
+
return {
|
|
7117
|
+
found: 0,
|
|
7118
|
+
recovered: 0,
|
|
7119
|
+
failed: 0,
|
|
7120
|
+
aborted: false
|
|
7121
|
+
};
|
|
7122
|
+
}
|
|
7123
|
+
let playlistNames;
|
|
7124
|
+
const body = await deps.readPlaylist(dir).catch(() => null);
|
|
7125
|
+
if (body !== null) playlistNames = new Set(parseLivePlaylist(body).map((e) => e.segPath.replace(/^.*\//, "")));
|
|
7126
|
+
const plan = planStagingRecovery({
|
|
7127
|
+
...input,
|
|
7128
|
+
names,
|
|
7129
|
+
playlistNames
|
|
7130
|
+
});
|
|
7131
|
+
if (plan.length === 0) return {
|
|
7132
|
+
found: 0,
|
|
7133
|
+
recovered: 0,
|
|
7134
|
+
failed: 0,
|
|
7135
|
+
aborted: false
|
|
7136
|
+
};
|
|
7137
|
+
const chunkSize = deps.chunkSize ?? DEFAULT_CHUNK_SIZE;
|
|
7138
|
+
const yieldBetween = deps.yieldBetween ?? macrotask;
|
|
7139
|
+
let recovered = 0;
|
|
7140
|
+
let failed = 0;
|
|
7141
|
+
let aborted = false;
|
|
7142
|
+
for (let i = 0; i < plan.length; i++) {
|
|
7143
|
+
const orphan = plan[i];
|
|
7144
|
+
if (deps.shouldStop?.() === true) {
|
|
7145
|
+
aborted = true;
|
|
7146
|
+
deps.logger.warn("recorder: staging recovery stopped short by shutdown", { meta: {
|
|
7147
|
+
dir,
|
|
7148
|
+
recovered,
|
|
7149
|
+
failed,
|
|
7150
|
+
remaining: plan.length - i
|
|
7151
|
+
} });
|
|
7152
|
+
break;
|
|
7153
|
+
}
|
|
7154
|
+
try {
|
|
7155
|
+
await deps.finalize(orphan, `${dir}/${orphan.name}`);
|
|
7156
|
+
recovered += 1;
|
|
7157
|
+
} catch (err) {
|
|
7158
|
+
failed += 1;
|
|
7159
|
+
deps.logger.warn("recorder: staging recovery could not relocate an orphaned segment", { meta: {
|
|
7160
|
+
dir,
|
|
7161
|
+
seg: orphan.name,
|
|
7162
|
+
startMs: orphan.startMs,
|
|
7163
|
+
durMs: orphan.durMs,
|
|
7164
|
+
error: err instanceof Error ? err.message : String(err)
|
|
7165
|
+
} });
|
|
7166
|
+
}
|
|
7167
|
+
if ((i + 1) % chunkSize === 0 && i + 1 < plan.length) await yieldBetween();
|
|
7168
|
+
}
|
|
7169
|
+
deps.logger.info("recorder: recovered segments a writer restart had orphaned in staging", { meta: {
|
|
7170
|
+
dir,
|
|
7171
|
+
found: plan.length,
|
|
7172
|
+
recovered,
|
|
7173
|
+
failed,
|
|
7174
|
+
aborted,
|
|
7175
|
+
oldestMs: plan[0]?.startMs,
|
|
7176
|
+
newestMs: plan[plan.length - 1]?.startMs
|
|
7177
|
+
} });
|
|
7178
|
+
return {
|
|
7179
|
+
found: plan.length,
|
|
7180
|
+
recovered,
|
|
7181
|
+
failed,
|
|
7182
|
+
aborted
|
|
7183
|
+
};
|
|
7184
|
+
}
|
|
7185
|
+
/**
|
|
7186
|
+
* Boot reconcile: relocate every previous-run segment stranded in staging, on
|
|
7187
|
+
* every location, for every camera — attached or not.
|
|
7188
|
+
*
|
|
7189
|
+
* WHY BOOT, AND NOT ATTACH
|
|
7190
|
+
* ────────────────────────
|
|
7191
|
+
* Orphans are created by a writer restart, so by construction they all predate
|
|
7192
|
+
* the runner that finds them; boot is when the whole backlog is visible at
|
|
7193
|
+
* once. Attach looked like the natural hook and is the wrong one twice over: it
|
|
7194
|
+
* only ever reaches cameras that are currently recording (device 1438 had a
|
|
7195
|
+
* staging backlog while attached to nothing), and it puts unbounded filesystem
|
|
7196
|
+
* work on the path that must start recording NOW — measured, it kept microtasks
|
|
7197
|
+
* in flight across `RecordingController.stop()` and made the runner's 5 s
|
|
7198
|
+
* SIGTERM-grace test fail under load.
|
|
7199
|
+
*
|
|
7200
|
+
* `bootMs` is the cutoff, and it is what makes this safe to run while writers
|
|
7201
|
+
* are spawning: a live writer's segments are all named after boot, so the plan
|
|
7202
|
+
* cannot select one. Nothing is deleted, and a segment that cannot be placed is
|
|
7203
|
+
* left exactly where it is for the next boot.
|
|
7204
|
+
*/
|
|
7205
|
+
async function recoverAllStagedOrphans(deps) {
|
|
7206
|
+
let dirs = 0;
|
|
7207
|
+
let found = 0;
|
|
7208
|
+
let recovered = 0;
|
|
7209
|
+
let failed = 0;
|
|
7210
|
+
let aborted = false;
|
|
7211
|
+
for (const location of deps.locations()) {
|
|
7212
|
+
const stagingRoot = `${location.root}/${STAGING_DIR_NAME}`;
|
|
7213
|
+
let deviceDirs;
|
|
7214
|
+
try {
|
|
7215
|
+
deviceDirs = await deps.listDir(stagingRoot);
|
|
7216
|
+
} catch {
|
|
7217
|
+
continue;
|
|
7218
|
+
}
|
|
7219
|
+
for (const deviceDir of deviceDirs) {
|
|
7220
|
+
if (aborted) break;
|
|
7221
|
+
const deviceId = Number(deviceDir);
|
|
7222
|
+
if (!Number.isInteger(deviceId) || deviceId <= 0) continue;
|
|
7223
|
+
let profileDirs;
|
|
7224
|
+
try {
|
|
7225
|
+
profileDirs = await deps.listDir(`${stagingRoot}/${deviceDir}`);
|
|
7226
|
+
} catch {
|
|
7227
|
+
continue;
|
|
7228
|
+
}
|
|
7229
|
+
const segmentSeconds = await deps.segmentSecondsFor(deviceId);
|
|
7230
|
+
for (const profile of profileDirs) {
|
|
7231
|
+
if (aborted) break;
|
|
7232
|
+
if (!KNOWN_PROFILES.has(profile)) continue;
|
|
7233
|
+
const dir = `${stagingRoot}/${deviceDir}/${profile}`;
|
|
7234
|
+
dirs += 1;
|
|
7235
|
+
const report = await recoverStagingOrphans(dir, {
|
|
7236
|
+
writerStartedMs: deps.bootMs,
|
|
7237
|
+
segmentSeconds
|
|
7238
|
+
}, {
|
|
7239
|
+
listDir: deps.listDir,
|
|
7240
|
+
readPlaylist: deps.readPlaylist,
|
|
7241
|
+
finalize: (orphan, flatAbsPath) => deps.finalize({
|
|
7242
|
+
deviceId,
|
|
7243
|
+
profile,
|
|
7244
|
+
locationId: location.id,
|
|
7245
|
+
locationRoot: location.root,
|
|
7246
|
+
flatAbsPath,
|
|
7247
|
+
startMs: orphan.startMs,
|
|
7248
|
+
durMs: orphan.durMs
|
|
7249
|
+
}),
|
|
7250
|
+
logger: withDeviceTag(deps.logger, deviceId),
|
|
7251
|
+
chunkSize: deps.chunkSize,
|
|
7252
|
+
yieldBetween: deps.yieldBetween,
|
|
7253
|
+
shouldStop: deps.shouldStop
|
|
7254
|
+
});
|
|
7255
|
+
found += report.found;
|
|
7256
|
+
recovered += report.recovered;
|
|
7257
|
+
failed += report.failed;
|
|
7258
|
+
if (report.aborted) aborted = true;
|
|
7259
|
+
}
|
|
7260
|
+
}
|
|
7261
|
+
}
|
|
7262
|
+
if (found > 0 || failed > 0) deps.logger.info("recorder: staging boot reconcile complete", { meta: {
|
|
7263
|
+
dirs,
|
|
7264
|
+
found,
|
|
7265
|
+
recovered,
|
|
7266
|
+
failed,
|
|
7267
|
+
aborted
|
|
7268
|
+
} });
|
|
7269
|
+
return {
|
|
7270
|
+
dirs,
|
|
7271
|
+
found,
|
|
7272
|
+
recovered,
|
|
7273
|
+
failed,
|
|
7274
|
+
aborted
|
|
7275
|
+
};
|
|
7276
|
+
}
|
|
7277
|
+
/** Bind `tags: { deviceId }` onto every line a per-dir pass writes. */
|
|
7278
|
+
function withDeviceTag(logger, deviceId) {
|
|
7279
|
+
const tag = (extras) => ({
|
|
7280
|
+
...typeof extras === "object" && extras !== null ? extras : {},
|
|
7281
|
+
tags: { deviceId }
|
|
7282
|
+
});
|
|
7283
|
+
return {
|
|
7284
|
+
info: (message, extras) => logger.info(message, tag(extras)),
|
|
7285
|
+
warn: (message, extras) => logger.warn(message, tag(extras)),
|
|
7286
|
+
debug: (message, extras) => logger.debug(message, tag(extras))
|
|
7287
|
+
};
|
|
7288
|
+
}
|
|
7289
|
+
//#endregion
|
|
6981
7290
|
//#region src/recorder/addon/index.ts
|
|
6982
7291
|
/**
|
|
6983
7292
|
* recorder addon SHELL — recording + storage-evictable providers on the
|
|
@@ -7515,11 +7824,13 @@ var RecorderV2Addon = class extends BaseAddon {
|
|
|
7515
7824
|
force: true
|
|
7516
7825
|
}).catch(() => {});
|
|
7517
7826
|
await this.sweepUnassignedStaging();
|
|
7827
|
+
const stagingBootMs = Date.now();
|
|
7518
7828
|
try {
|
|
7519
7829
|
await this.controller?.start();
|
|
7520
7830
|
} catch (err) {
|
|
7521
7831
|
this.ctx.logger.warn("recorder: controller start failed", { meta: { error: errMsg(err) } });
|
|
7522
7832
|
}
|
|
7833
|
+
this.recoverStagedOrphans(stagingBootMs);
|
|
7523
7834
|
if (this.eventUnsub === null) this.eventUnsub = subscribeEventCapture({
|
|
7524
7835
|
eventBus: this.ctx.eventBus,
|
|
7525
7836
|
map: this.eventMap,
|
|
@@ -7824,6 +8135,45 @@ var RecorderV2Addon = class extends BaseAddon {
|
|
|
7824
8135
|
}
|
|
7825
8136
|
}
|
|
7826
8137
|
/**
|
|
8138
|
+
* Boot reconcile for `.rec-tmp`: relocate every segment a previous runner's
|
|
8139
|
+
* writers left stranded, on every location, for every camera.
|
|
8140
|
+
*
|
|
8141
|
+
* The counterpart to {@link sweepUnassignedStaging} above, which only ever
|
|
8142
|
+
* looks at locations nothing is assigned to — so the LIVE root, the one that
|
|
8143
|
+
* actually accumulates, had no pass at all (D148). Nothing here deletes: each
|
|
8144
|
+
* orphan goes through the same `SegmentStore.onFinalized` a live segment
|
|
8145
|
+
* does, and one it cannot place is left on disk for the next boot.
|
|
8146
|
+
*/
|
|
8147
|
+
async recoverStagedOrphans(bootMs) {
|
|
8148
|
+
try {
|
|
8149
|
+
await recoverAllStagedOrphans({
|
|
8150
|
+
locations: () => this.resolvedLocations.map((l) => ({
|
|
8151
|
+
id: l.id,
|
|
8152
|
+
root: l.root
|
|
8153
|
+
})),
|
|
8154
|
+
listDir: nodeStagingIo.listDir,
|
|
8155
|
+
readPlaylist: nodeStagingIo.readPlaylist,
|
|
8156
|
+
finalize: async (input) => {
|
|
8157
|
+
const store = this.segmentStore;
|
|
8158
|
+
if (store === null) throw new Error("recorder is shutting down");
|
|
8159
|
+
await store.onFinalized(input);
|
|
8160
|
+
},
|
|
8161
|
+
logger: this.ctx.logger,
|
|
8162
|
+
bootMs,
|
|
8163
|
+
segmentSecondsFor: async (deviceId) => {
|
|
8164
|
+
try {
|
|
8165
|
+
return (await loadDeviceConfig(this.configStore(), deviceId)).segmentSeconds ?? this.config.segmentSeconds;
|
|
8166
|
+
} catch {
|
|
8167
|
+
return this.config.segmentSeconds;
|
|
8168
|
+
}
|
|
8169
|
+
},
|
|
8170
|
+
shouldStop: () => this.segmentStore === null
|
|
8171
|
+
});
|
|
8172
|
+
} catch (err) {
|
|
8173
|
+
this.ctx.logger.warn("recorder: staging boot reconcile failed", { meta: { error: errMsg(err) } });
|
|
8174
|
+
}
|
|
8175
|
+
}
|
|
8176
|
+
/**
|
|
7827
8177
|
* Surface a storage-placement fault on the liveness/alert surface. STRICTLY
|
|
7828
8178
|
* best-effort: the alerts cap is a nice-to-have and an unmounted disk must
|
|
7829
8179
|
* still be shouted about in the log even when it is unreachable.
|
|
@@ -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-DZVGVAPU.js");
|
|
3
|
+
const require_lazy_sharp = require("../lazy-sharp-DIC1rpea.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-BNlLGLBV.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
|
-
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-
|
|
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-DHJSxHH1.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) => {
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.19",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_stream_broker_widgets",
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.73",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_stream_broker_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.51",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_stream_broker_widgets",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region \0virtual:mf:__mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
|
|
2
|
+
var e = "__mf_init__virtual:mf:__mfe_internal__addon_stream_broker_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
|
|
3
|
+
if (!t) {
|
|
4
|
+
let n, r, i = new Promise((e, t) => {
|
|
5
|
+
n = e, r = t;
|
|
6
|
+
});
|
|
7
|
+
t = globalThis[e] = {
|
|
8
|
+
initPromise: i,
|
|
9
|
+
initResolve: n,
|
|
10
|
+
initReject: r
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
var n = t.initPromise, r = "__mf_module_cache__";
|
|
14
|
+
globalThis[r] ||= {
|
|
15
|
+
share: {},
|
|
16
|
+
remote: {}
|
|
17
|
+
}, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
|
|
18
|
+
var i = globalThis[r], a, o = (e) => {
|
|
19
|
+
e.ACCESSORY_LABEL, e.ACCESS_ROLES, e.ALEXA_EGRESS_PROFILE, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.AUDIO_ANALYSIS_CAP_NAME, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AUDIO_PRESETS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionCandidateResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionJobSchema, e.AdoptionJobStateSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionOutcomeSchema, e.AdoptionReleaseInputSchema, e.AdoptionStatusSchema, e.AgentLoadSummarySchema, e.AirQualitySensorStatusSchema, e.AlarmArmModeSchema, e.AlarmPanelStatusSchema, e.AlarmStateSchema, e.AlertSchema, e.AlertSeveritySchema, e.AlertSourceSchema, e.AlertStatusSchema, e.AmbientLightSensorStatusSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationActionSchema, e.AutomationConditionOperatorSchema, e.AutomationConditionSchema, e.AutomationControlStatusSchema, e.AutomationRecipeSchema, e.AutomationTriggerSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BASE_LIVE_EGRESS_PROFILE, e.BATTERY_DEVICE_PROFILE, e.BacklightModeSchema, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BoundingBoxSchema, e.BrightnessStatusSchema, e.BrokerAddInputSchema, e.BrokerAudioClientSchema, e.BrokerClientsSchema, e.BrokerConnectionDetailsSchema, e.BrokerConsumerAttributionSchema, e.BrokerConsumerKindSchema, e.BrokerDecodedClientSchema, e.BrokerEncodedClientSchema, e.BrokerGetStateInputSchema, e.BrokerInfoSchema, e.BrokerProviderInfoSchema, e.BrokerPublishInputSchema, e.BrokerRegistryStatusSchema, e.BrokerRtspClientSchema, e.BrokerStatsSchema, e.BrokerStatusEnum, e.BrokerStatusSchema, e.BrokerSubscribeInputSchema, e.BrokerSubscribeResultSchema, e.BrokerTestConnectionResultSchema, e.BrokerUnsubscribeInputSchema, e.CAMERA_SWITCH_CATALOG, e.CAMERA_SWITCH_ORDER, e.CAM_PROFILE_ORDER, e.CAPABILITY_NAMES, e.CAPABILITY_ROUTER_KEYS, e.CAP_NAMES_WITH_STATUS, e.CAP_NODE_PIN_CONTEXT_KEY, e.CAP_PROVIDER_KIND_MAP, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CONNECTION_TEST_TIMEOUT_MS, e.CORE_BLOCKS_ADDON_ID, e.CORE_BLOCK_ADDON_PREFIX, e.CamProfileSchema, e.CamStreamDescriptorSchema, e.CamStreamKindSchema, e.CamStreamResolutionSchema, e.CameraAssignmentStatusSchema, e.CameraAudioStatusSchema, e.CameraBrokerProfileSchema, e.CameraBrokerStatusSchema, e.CameraCredentialsSchema, e.CameraCredentialsStatusSchema, e.CameraDecoderShmSchema, e.CameraDecoderStatusSchema, e.CameraDetectionPhaseSchema, e.CameraDetectionProvisioningSchema, e.CameraDetectionProvisioningStateSchema, e.CameraDetectionStatusSchema, e.CameraMetricsSchema, e.CameraMetricsWithDeviceIdSchema, e.CameraMotionStatusSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusDegradationReasonSchema, e.CameraStatusDegradationSchema, e.CameraStatusSchema, e.CameraStatusStageSchema, e.CameraStreamSchema, e.CameraSwitchAuthoritySchema, e.CameraSwitchGroupSchema, e.CameraSwitchIdSchema, e.CameraSwitchSchema, e.CameraSwitchUnavailableReasonSchema, e.CandidateQueryFilterSchema, e.CapScopeSchema, e.CapabilityBindingsSchema, e.CarbonMonoxideStatusSchema, e.ChargingStatus, e.ClientNetworkStatsSchema, e.ClimateControlStatusSchema, e.ClipPlaybackSchema, e.ClipSchema, e.ClusterAddonNodeDeploymentSchema, e.ClusterAddonStatusEntrySchema, e.CollectionColumnSchema, e.CollectionIndexSchema, e.ColorStatusSchema, e.ConfigEntrySchema, e.ConfigSectionWithValuesSchema, e.ConfigTabDeclarationSchema, e.ConnectionTestDescriptorSchema, e.ConnectionTestInputSchema, e.ConnectionTestOutcomeSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoreBlockCompileResultSchema, e.CoreBlockInputSchema, e.CoreBlockPlacementSchema, e.CoreBlockSchema, e.CoreBlockStatusSchema, e.CoverStateSchema, e.CoverStatusSchema, e.CreateApiKeyInputSchema, e.CreateApiKeyResultSchema, e.CreateIntegrationInputSchema, e.CreateScopedTokenInputSchema, e.CreateScopedTokenResultSchema, e.CreateUserInputSchema, e.CustomActionInputSchema, e.CustomModelDescriptorSchema, e.DATAPLANE_SECRET_HEADER, e.DECLARED_DEVICE_SWEEP_LIMIT, e.DECLARED_INTEGRATION_FIXED_KEY, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_DETAIL_CROP_CONVENTION, e.DEFAULT_EVENTS_BAND_BUFFER_SEC, e.DEFAULT_EVENT_COLOR, e.DEFAULT_FEATURES, e.DEFAULT_NATIVE_LEASE_SETTINGS, e.DEFAULT_RETENTION, e.DEFAULT_RUNTIME_STATE_DURABILITY, e.DEFAULT_SCRUB_THUMBNAIL_PRESET, e.DEFAULT_TIMELAPSE_PREVIEW_TEXT, e.DETAIL_CROP_PADDING_FIELD, e.DETAIL_CROP_PADDING_KEY, e.DETAIL_CROP_SECTION_ID, e.DETAIL_CROP_SQUARE_KEY, e.DETECTION_MACRO_CLASSES, e.DETECTION_PIPELINE_CAP_NAME, e.DEVICE_BACKEND_TO_FORMAT, e.DEVICE_CAP_NAMES, e.DEVICE_PROFILES, e.DEVICE_SCOPED_CAPS, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATE_READERS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_CONTROL_KIND, e.DEVICE_TYPE_INFO, e.DataStoreEngineInfoSchema, e.DayNightModeSchema, e.DayNightOptionsSchema, e.DayNightSettingsPatchSchema, e.DayNightStatusSchema, e.DeclaredDevices, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetailCropConventionSchema, e.DetectionSourceSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceSelectorSchema, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENTFUL_CAP_NAMES, e.EVENT_KIND_BY_CAP, e.EVENT_PAD_MS, e.EVENT_TAXONOMY, e.EXPORT_DENSE_MAX_RANGES, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.EgressEncodeSchema, e.EgressRateControlSchema, e.EgressTranscodeRequestSchema, e.EgressTranscodeSchema, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindCategorySchema, e.EventKindDescriptorSchema, e.EventKindIconSchema, e.EventKindSchema, e.EventKindsForDeviceSchema, e.EventMediaArtifactSchema, e.EventMediaCoverageSchema, e.EventMediaKindSchema, e.EventMediaProductionSchema, e.EventSourceType, e.ExportBytesSchema, e.ExportDenseRangeSchema, e.ExportDenseSchema, e.ExportDownloadSchema, e.ExportOptionsSchema, e.ExportRecordSchema, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExportSpeedSchema, e.ExportStateSchema, e.ExportTimelapseSchema, e.ExposedDeviceSchema, e.ExposureModeSchema, e.ExpressionBindingSourceSchema, e.ExpressionEvalError, e.ExpressionFieldBindingSchema, e.ExpressionGlobalBindingSchema, e.ExpressionLiteralBindingSchema, e.ExpressionParseError, e.ExpressionSourceSchema, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.Fmp4BoxSplitter, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.HAP_AUDIO_BASE, e.HAP_AUDIO_BITRATE_KBPS, e.HAP_AUDIO_VBV_KBITS, e.HAP_KEYFRAME_INTERVAL_SEC, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.ImageContractSchema, e.ImageContractStateSchema, e.ImageRotateSchema, e.ImageSettingsOptionsSchema, e.ImageSettingsPatchSchema, e.ImageSettingsStatusSchema, e.ImageStatusSchema, e.IngestOwnerSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.KeyEventSchema, e.LOG_LEVEL_RANK, e.LabelAttributionSchema, e.LabelDefinitionSchema, e.LabelTierSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LinkedDeviceSchema, e.LinkedDevicesModeSchema, e.LlmDefaultSchema, e.LlmDefaultSelectorSchema, e.LlmErrorCodeSchema, e.LlmGenerateBaseInputSchema, e.LlmGenerateErrSchema, e.LlmGenerateOkSchema, e.LlmGenerateResultSchema, e.LlmImageSchema, e.LlmNodeModelSchema, e.LlmProfileKindDescriptorSchema, e.LlmProfileKindSchema, e.LlmProfileSchema, e.LlmRetryPolicySchema, e.LlmRuntimeCompleteInputSchema, e.LlmRuntimeDiskUsageSchema, e.LlmRuntimeNodeSchema, e.LlmRuntimeStatusSchema, e.LlmTimeoutDefaults, e.LlmUsageRollupSchema, e.LlmUsageSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, e.LoginMethodContributionSchema, e.LoginStageEnum, e.MACRO_LABELS, e.MAX_CONDITION_DEPTH, e.MAX_CONDITION_LEAVES, e.MAX_EXPRESSION_AST_NODES, e.MAX_EXPRESSION_BINDINGS, e.MAX_EXPRESSION_CALL_ARGS, e.MAX_EXPRESSION_EVAL_STEPS, e.MAX_EXPRESSION_SOURCE_LENGTH, e.METHOD_ACCESS_MAP, e.METHOD_DEVICE_SELECTORS, e.MODEL_FORMATS, e.MOTION_TRIGGER_FEATURE, e.ManagedModelCatalogEntrySchema, e.ManagedModelRefSchema, e.ManagedRuntimeConfigSchema, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileInfoSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.ModelSubstitutionSchema, e.ModelVariantGroupSchema, e.MotionAnalysisResultSchema, e.MotionEventSchema, e.MotionOnMotionChangedDataSchema, e.MotionRegionSchema, e.MotionSourceEnum, e.MotionSourcesSchema, e.MotionStatusSchema, e.MotionTriggerRuntimeStateSchema, e.MotionTriggerStatusSchema, e.MotionZoneOptionsSchema, e.MotionZonePatchSchema, e.MotionZoneRegionSchema, e.MotionZoneStatusSchema, e.MqttBrokerStatusSchema, e.MutationFilterSchema, e.NATIVE_LEASE_ACTIVITY_FIELD, e.NATIVE_LEASE_ACTIVITY_KEY, e.NATIVE_LEASE_ADMISSION_FIELD, e.NATIVE_LEASE_ADMISSION_KEY, e.NATIVE_LEASE_BUDGET_FIELD, e.NATIVE_LEASE_BUDGET_KEY, e.NATIVE_LEASE_HOLD_FIELD, e.NATIVE_LEASE_HOLD_KEY, e.NATIVE_LEASE_SECTION_ID, e.NATIVE_LEASE_TILE_BUDGET_FIELD, e.NATIVE_LEASE_TILE_BUDGET_KEY, e.NC_ALARM_SYSTEM_EVENT_KINDS, e.NC_AUDIO_DBFS_FLOOR, e.NC_AUDIO_DB_MAX, e.NC_AUDIO_DB_MIN, e.NC_AUDIO_DB_OFFERED, e.NC_AUDIO_DB_STEP, e.NC_AUDIO_DEFAULTS, e.NC_AUDIO_HIT_PERCENT_MAX, e.NC_AUDIO_HIT_PERCENT_MIN, e.NC_AUDIO_SAMPLING_MAX_SEC, e.NC_AUDIO_SAMPLING_MIN_SEC, e.NC_AUTHORABLE_SYSTEM_EVENT_KINDS, e.NC_BASE_CONDITION_KEYS, e.NC_CONDITION_CATALOG, e.NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, e.NC_CONFIRM_DEFAULT_TIMEOUT_MS, e.NC_CONFIRM_MAX_TIMEOUT_MS, e.NC_CONFIRM_MIN_TIMEOUT_MS, e.NC_DEFAULT_SNOOZE_MINUTES, e.NC_HISTORY_LIMIT_DEFAULT, e.NC_HISTORY_LIMIT_MAX, e.NC_MAX_PER_TRACK_IMMEDIATE, e.NC_SNOOZE_MAX_MINUTES, e.NC_TAXONOMY, e.NativeCropBboxSchema, e.NativeCropRefSchema, e.NativeCropResultSchema, e.NativeDetectionSchema, e.NativeLeaseAdmissionSchema, e.NativeLeaseSettingsSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NcAlarmConfigSchema, e.NcAlarmModeCoverageSchema, e.NcAlarmSettingsPatchSchema, e.NcAlarmSettingsSchema, e.NcAlarmSkipReasonSchema, e.NcAlarmSkippedDeviceSchema, e.NcAudioConditionSchema, e.NcConditionDescriptorSchema, e.NcConditionsSchema, e.NcConfirmExpectSchema, e.NcConfirmSchema, e.NcCrossingSchema, e.NcDeliverySchema, e.NcDeviceStateConditionSchema, e.NcHistoryEntrySchema, e.NcHistoryFilterSchema, e.NcHistoryRecordKindSchema, e.NcHistoryStatusSchema, e.NcHistorySubjectSchema, e.NcMediaFrameSchema, e.NcMediaPolicySchema, e.NcOccupancyConditionSchema, e.NcPlateMatcherSchema, e.NcRuleActionSchema, e.NcRuleActionSequenceSchema, e.NcRuleActionsSchema, e.NcRuleInputSchema, e.NcRuleNotificationButtonSchema, e.NcRulePatchSchema, e.NcRuleSchema, e.NcRuleTargetSchema, e.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 };
|