@camstack/types 1.2.157 → 1.2.159

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.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_event_category = require("./event-category-b8kBSOTT.js");
3
- const require_sleep = require("./sleep-BGiOgxye.js");
3
+ const require_sleep = require("./sleep-DDIFZGbc.js");
4
4
  const require_err_msg = require("./err-msg-COpsHMw2.js");
5
5
  //#region src/generated/cap-input-defaults.ts
6
6
  /**
package/dist/addon.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-zAv7pMUz.mjs";
2
- import { D as adminUiCapability, E as DeviceType, G as scopeKey, H as ReadinessTimeoutError, M as expandCapMethods, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, V as ReadinessRegistry, _t as DATAPLANE_SECRET_HEADER, a as asJsonObject, b as deviceOpsCapability, bt as BaseAddon, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, wt as emitReadiness, x as viewerUiCapability, xt as normalizeAddonInitResult, yt as DisposerChain, z as readNodePin } from "./sleep-IaOr7P-z.mjs";
2
+ import { D as adminUiCapability, E as DeviceType, G as scopeKey, H as ReadinessTimeoutError, M as expandCapMethods, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, V as ReadinessRegistry, _t as DATAPLANE_SECRET_HEADER, a as asJsonObject, b as deviceOpsCapability, bt as BaseAddon, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, wt as emitReadiness, x as viewerUiCapability, xt as normalizeAddonInitResult, yt as DisposerChain, z as readNodePin } from "./sleep-Cfij6Jj9.mjs";
3
3
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
5
5
  /**
@@ -320,11 +320,14 @@ declare const CameraAudioStatusSchema: z.ZodObject<{
320
320
  nodeId: z.ZodString;
321
321
  enabled: z.ZodBoolean;
322
322
  }, z.core.$strip>;
323
- /** Recording mode enum (matches recording cap). */
323
+ /** Recording mode — THE one definition, shared with the `recording` cap. A
324
+ * copy of the list is how `on-device-decision` could have reached the recorder
325
+ * and not this status block. */
324
326
  declare const CameraRecordingModeSchema: z.ZodEnum<{
325
327
  off: "off";
326
328
  events: "events";
327
329
  continuous: "continuous";
330
+ "on-device-decision": "on-device-decision";
328
331
  }>;
329
332
  /** Recording block — null when no recording cap is active for this device. */
330
333
  declare const CameraRecordingStatusSchema: z.ZodObject<{
@@ -332,6 +335,7 @@ declare const CameraRecordingStatusSchema: z.ZodObject<{
332
335
  off: "off";
333
336
  events: "events";
334
337
  continuous: "continuous";
338
+ "on-device-decision": "on-device-decision";
335
339
  }>;
336
340
  active: z.ZodBoolean;
337
341
  storageBytes: z.ZodNumber;
@@ -501,6 +505,7 @@ declare const CameraStatusSchema: z.ZodObject<{
501
505
  off: "off";
502
506
  events: "events";
503
507
  continuous: "continuous";
508
+ "on-device-decision": "on-device-decision";
504
509
  }>;
505
510
  active: z.ZodBoolean;
506
511
  storageBytes: z.ZodNumber;
@@ -1470,6 +1475,7 @@ export declare const pipelineOrchestratorCapability: {
1470
1475
  off: "off";
1471
1476
  events: "events";
1472
1477
  continuous: "continuous";
1478
+ "on-device-decision": "on-device-decision";
1473
1479
  }>;
1474
1480
  active: z.ZodBoolean;
1475
1481
  storageBytes: z.ZodNumber;
@@ -1605,6 +1611,7 @@ export declare const pipelineOrchestratorCapability: {
1605
1611
  off: "off";
1606
1612
  events: "events";
1607
1613
  continuous: "continuous";
1614
+ "on-device-decision": "on-device-decision";
1608
1615
  }>;
1609
1616
  active: z.ZodBoolean;
1610
1617
  storageBytes: z.ZodNumber;
@@ -17,6 +17,7 @@ export declare const RecordingStatusSchema: z.ZodObject<{
17
17
  off: "off";
18
18
  events: "events";
19
19
  continuous: "continuous";
20
+ "on-device-decision": "on-device-decision";
20
21
  }>;
21
22
  nodeId: z.ZodString;
22
23
  storageBytes: z.ZodNumber;
@@ -338,6 +339,7 @@ export declare const recordingCapability: {
338
339
  off: "off";
339
340
  events: "events";
340
341
  continuous: "continuous";
342
+ "on-device-decision": "on-device-decision";
341
343
  }>;
342
344
  nodeId: z.ZodString;
343
345
  storageBytes: z.ZodNumber;
@@ -462,6 +464,7 @@ export declare const recordingCapability: {
462
464
  off: "off";
463
465
  events: "events";
464
466
  continuous: "continuous";
467
+ "on-device-decision": "on-device-decision";
465
468
  }>>;
466
469
  profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
467
470
  high: "high";
@@ -486,11 +489,11 @@ export declare const recordingCapability: {
486
489
  animal: "animal";
487
490
  }>>>;
488
491
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
489
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
490
492
  }, z.core.$strip>>;
491
493
  preBufferSec: z.ZodOptional<z.ZodNumber>;
492
494
  postBufferSec: z.ZodOptional<z.ZodNumber>;
493
495
  }, z.core.$strip>>>;
496
+ deviceDecision: z.ZodOptional<z.ZodBoolean>;
494
497
  retention: z.ZodOptional<z.ZodObject<{
495
498
  maxAgeDays: z.ZodOptional<z.ZodNumber>;
496
499
  maxSizeGb: z.ZodOptional<z.ZodNumber>;
@@ -564,6 +567,7 @@ export declare const recordingCapability: {
564
567
  off: "off";
565
568
  events: "events";
566
569
  continuous: "continuous";
570
+ "on-device-decision": "on-device-decision";
567
571
  }>>;
568
572
  profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
569
573
  high: "high";
@@ -588,11 +592,11 @@ export declare const recordingCapability: {
588
592
  animal: "animal";
589
593
  }>>>;
590
594
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
591
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
592
595
  }, z.core.$strip>>;
593
596
  preBufferSec: z.ZodOptional<z.ZodNumber>;
594
597
  postBufferSec: z.ZodOptional<z.ZodNumber>;
595
598
  }, z.core.$strip>>>;
599
+ deviceDecision: z.ZodOptional<z.ZodBoolean>;
596
600
  retention: z.ZodOptional<z.ZodObject<{
597
601
  maxAgeDays: z.ZodOptional<z.ZodNumber>;
598
602
  maxSizeGb: z.ZodOptional<z.ZodNumber>;
@@ -604,6 +608,7 @@ export declare const recordingCapability: {
604
608
  off: "off";
605
609
  events: "events";
606
610
  continuous: "continuous";
611
+ "on-device-decision": "on-device-decision";
607
612
  }>>;
608
613
  profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
609
614
  high: "high";
@@ -628,11 +633,11 @@ export declare const recordingCapability: {
628
633
  animal: "animal";
629
634
  }>>>;
630
635
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
631
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
632
636
  }, z.core.$strip>>;
633
637
  preBufferSec: z.ZodOptional<z.ZodNumber>;
634
638
  postBufferSec: z.ZodOptional<z.ZodNumber>;
635
639
  }, z.core.$strip>>>;
640
+ deviceDecision: z.ZodOptional<z.ZodBoolean>;
636
641
  retention: z.ZodOptional<z.ZodObject<{
637
642
  maxAgeDays: z.ZodOptional<z.ZodNumber>;
638
643
  maxSizeGb: z.ZodOptional<z.ZodNumber>;
@@ -649,6 +654,7 @@ export declare const recordingCapability: {
649
654
  off: "off";
650
655
  events: "events";
651
656
  continuous: "continuous";
657
+ "on-device-decision": "on-device-decision";
652
658
  }>;
653
659
  nodeId: z.ZodString;
654
660
  storageBytes: z.ZodNumber;
@@ -5,7 +5,7 @@
5
5
  * can answer "may a rule actuate this?" without importing the schema barrel
6
6
  * (~144MB RSS per runner, D28).
7
7
  *
8
- * Coverage: 82 device-scoped capabilities.
8
+ * Coverage: 83 device-scoped capabilities.
9
9
  */
10
10
  export declare const DEVICE_SCOPED_CAPS: ReadonlySet<string>;
11
11
  /**
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_event_category = require("./event-category-b8kBSOTT.js");
3
- const require_sleep = require("./sleep-BGiOgxye.js");
3
+ const require_sleep = require("./sleep-DDIFZGbc.js");
4
4
  const require_canonical_hash = require("./canonical-hash-DNV8S5ET.js");
5
5
  const require_enums = require("./enums.js");
6
6
  const require_err_msg = require("./err-msg-COpsHMw2.js");
@@ -1228,21 +1228,21 @@ function schemaDeclaresAnyField(schema) {
1228
1228
  for (const section of sectionsOf(schema)) if (fieldsOf(section).length > 0) return true;
1229
1229
  return false;
1230
1230
  }
1231
- function isRecord$2(value) {
1231
+ function isRecord$3(value) {
1232
1232
  return typeof value === "object" && value !== null && !Array.isArray(value);
1233
1233
  }
1234
1234
  function sectionsOf(schema) {
1235
- if (!isRecord$2(schema)) return [];
1235
+ if (!isRecord$3(schema)) return [];
1236
1236
  const sections = schema["sections"];
1237
1237
  return Array.isArray(sections) ? sections : [];
1238
1238
  }
1239
1239
  function fieldsOf(node) {
1240
- if (!isRecord$2(node)) return [];
1240
+ if (!isRecord$3(node)) return [];
1241
1241
  const fields = node["fields"];
1242
1242
  return Array.isArray(fields) ? fields : [];
1243
1243
  }
1244
1244
  function walkField(field, out) {
1245
- if (!isRecord$2(field)) return;
1245
+ if (!isRecord$3(field)) return;
1246
1246
  const type = field["type"];
1247
1247
  const key = field["key"];
1248
1248
  if ((type === "password" || field["secret"] === true) && typeof key === "string" && key.length > 0) out.add(key);
@@ -1327,12 +1327,12 @@ function toStreamSourceEntry(stream) {
1327
1327
  function isString(v) {
1328
1328
  return typeof v === "string";
1329
1329
  }
1330
- function isRecord$1(v) {
1330
+ function isRecord$2(v) {
1331
1331
  return typeof v === "object" && v !== null && !Array.isArray(v);
1332
1332
  }
1333
1333
  function parseStreamEntry(v) {
1334
1334
  if (isString(v) && v.trim()) return { url: v };
1335
- if (isRecord$1(v) && isString(v["url"]) && v["url"].trim()) return {
1335
+ if (isRecord$2(v) && isString(v["url"]) && v["url"].trim()) return {
1336
1336
  url: v["url"],
1337
1337
  label: isString(v["label"]) ? v["label"] : void 0
1338
1338
  };
@@ -1972,17 +1972,29 @@ var HHMM = /^([01]\d|2[0-3]):[0-5]\d$/;
1972
1972
  /**
1973
1973
  * DERIVED per-camera storage summary — the single field cheap consumers read
1974
1974
  * (the viewer's status dot, the camera list) instead of walking `bands`:
1975
- * - `off` — no band covers the camera (or it is disabled).
1976
- * - `events` — every band records around triggers only.
1977
- * - `continuous` — at least one band records continuously.
1978
- *
1979
- * NEVER authored: the recorder stamps it from the authoritative `bands` on
1980
- * every save (`activeModeForConfig`). Writing it has no effect.
1975
+ * - `off` — no band covers the camera (or it is disabled).
1976
+ * - `events` — every band records around triggers only.
1977
+ * - `continuous` — at least one band records continuously.
1978
+ * - `on-device-decision`— the DEVICE decides: recording runs for as long as the
1979
+ * camera raises its own `recording-signal` level (a robot that cleans). There
1980
+ * is no schedule to author, because there is no hour to program — see
1981
+ * {@link RecordingConfigSchema}`.deviceDecision`.
1982
+ *
1983
+ * NEVER authored: the recorder stamps it from the authoritative intent
1984
+ * (`bands` + `deviceDecision`) on every save (`activeModeForConfig`). Writing it
1985
+ * has no effect.
1986
+ *
1987
+ * `on-device-decision` is named for WHO decides, not for how the recording is
1988
+ * requested. `on-demand` was rejected: in this repo's vocabulary a "demand" is
1989
+ * something the operator makes (the live gate is the recorder's own "demand
1990
+ * window"), and a knob whose name suggests the operator starts it while the
1991
+ * device actually does is the D62 shape — a control nobody can predict.
1981
1992
  */
1982
1993
  var RecordingStorageModeSchema = zod.z.enum([
1983
1994
  "off",
1984
1995
  "events",
1985
- "continuous"
1996
+ "continuous",
1997
+ "on-device-decision"
1986
1998
  ]);
1987
1999
  /**
1988
2000
  * Le macro classi che possono aprire una finestra di registrazione — le stesse
@@ -2041,22 +2053,7 @@ var RecordingTriggersSchema = zod.z.object({
2041
2053
  * il livello: un contatto trovato già aperto al riavvio del runner non fa
2042
2054
  * registrare.
2043
2055
  */
2044
- sensorDeviceIds: zod.z.array(zod.z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional(),
2045
- /**
2046
- * La camera registra per tutta la durata del SEGNALE che lei stessa
2047
- * pubblica — la cap `recording-signal` (`active: true` mentre il device è in
2048
- * funzione: un robot che pulisce). È un LIVELLO, non un fronte: la finestra
2049
- * resta aperta finché il segnale è alto e si chiude `postBufferSec` dopo la
2050
- * caduta, così una pulizia di quaranta minuti è UNA clip.
2051
- *
2052
- * Non nomina un device: il segnale è della camera stessa, tenuto fresco dal
2053
- * suo provider (D224); il recorder lo ascolta su `DeviceStateChanged` e lo
2054
- * riconcilia leggendo la slice via RPC, con un tetto oltre il quale un
2055
- * segnale mai abbassato (un evento perso) non può tenere aperta una
2056
- * registrazione (D11). Vedi `recorder/addon/band-decision.ts`
2057
- * (`holdTrigger` / `releaseTrigger`).
2058
- */
2059
- deviceSignal: zod.z.boolean().optional()
2056
+ sensorDeviceIds: zod.z.array(zod.z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
2060
2057
  });
2061
2058
  /**
2062
2059
  * Mode of a single recording band — the recorder per-band vocabulary.
@@ -2187,8 +2184,29 @@ var RecordingConfigSchema = zod.z.object({
2187
2184
  * "off" is the absence of a covering band, never a band value.
2188
2185
  */
2189
2186
  bands: zod.z.array(RecordingBandSchema).default([]),
2187
+ /**
2188
+ * THE device-decided intent: record for as long as the camera itself raises
2189
+ * `recording-signal` (`active: true` while the device is in function — a
2190
+ * robot that cleans). AUTHORED, unlike `mode`, and the only authored
2191
+ * recording intent that is not a band.
2192
+ *
2193
+ * It carries NO schedule on purpose. A band is an HOUR, and this feature has
2194
+ * no hour to program: the device decides. What it costs the operator is one
2195
+ * flag — "this camera can record on its own" — and what it buys is the same
2196
+ * hold/release the recorder already implements (D371, `holdTrigger` /
2197
+ * `releaseTrigger`): the window opens on the rise, stays open for the whole
2198
+ * job however long it is, and closes one pad after the fall.
2199
+ *
2200
+ * EXCLUSIVE with `bands` (below): two authorities deciding when the same
2201
+ * camera records is the D62 failure. `off` remains `enabled: false`, so an
2202
+ * operator switching this camera off is REPORTED off, never as broken.
2203
+ */
2204
+ deviceDecision: zod.z.boolean().optional(),
2190
2205
  retention: RecordingRetentionSchema.optional()
2191
- }).strict();
2206
+ }).strict().refine((config) => config.deviceDecision !== true || config.bands.length === 0, {
2207
+ message: "deviceDecision is a whole-config mode and carries no schedule: it cannot be combined with bands",
2208
+ path: ["bands"]
2209
+ });
2192
2210
  /**
2193
2211
  * Derive the {@link RecordingStorageModeSchema} summary from the authoritative
2194
2212
  * bands: `continuous` when any band records continuously, `events` when a band
@@ -2201,7 +2219,9 @@ var RecordingConfigSchema = zod.z.object({
2201
2219
  * bug this field was added to fix.
2202
2220
  */
2203
2221
  function deriveRecordingMode(config) {
2204
- if (!config.enabled || config.bands.length === 0) return "off";
2222
+ if (!config.enabled) return "off";
2223
+ if (config.deviceDecision === true) return "on-device-decision";
2224
+ if (config.bands.length === 0) return "off";
2205
2225
  if (config.bands.some((band) => band.mode === "continuous")) return "continuous";
2206
2226
  return "events";
2207
2227
  }
@@ -2229,6 +2249,85 @@ function resolveRecordingProfiles(assigned, override) {
2229
2249
  const preferred = assigned.filter((profile) => DEFAULT_RECORDING_PROFILES.includes(profile));
2230
2250
  return preferred.length > 0 ? preferred : [...assigned];
2231
2251
  }
2252
+ /** Trigger keys that survive D380 — a band carrying one of these is a real band. */
2253
+ var SURVIVING_TRIGGER_KEYS = [
2254
+ "motion",
2255
+ "audioThresholdDbfs",
2256
+ "objectClasses",
2257
+ "sensorDeviceIds"
2258
+ ];
2259
+ function isRecord$1(value) {
2260
+ return typeof value === "object" && value !== null && !Array.isArray(value);
2261
+ }
2262
+ function listensToLegacySignal(band) {
2263
+ return isRecord$1(band) && isRecord$1(band.triggers) && band.triggers.deviceSignal === true;
2264
+ }
2265
+ function hasSurvivingTrigger(band) {
2266
+ const triggers = band.triggers;
2267
+ if (!isRecord$1(triggers)) return false;
2268
+ return SURVIVING_TRIGGER_KEYS.some((key) => triggers[key] !== void 0);
2269
+ }
2270
+ function withoutLegacySignal(band) {
2271
+ const triggers = band.triggers;
2272
+ if (!isRecord$1(triggers)) return band;
2273
+ const { deviceSignal: _retired, ...rest } = triggers;
2274
+ return {
2275
+ ...band,
2276
+ triggers: rest
2277
+ };
2278
+ }
2279
+ /**
2280
+ * Turn a config stored under D371 (`bands[].triggers.deviceSignal: true`) into
2281
+ * a D380 one (`deviceDecision: true`, no bands). Pure, total and IDEMPOTENT —
2282
+ * a row with no legacy key comes back as the SAME reference, `migrated: false`.
2283
+ *
2284
+ * ## Why the schema cannot be left to do this
2285
+ *
2286
+ * `RecordingTriggersSchema` is a non-strict `z.object`, so the retired key is
2287
+ * SILENTLY STRIPPED on read. The camera whose only trigger it was would parse
2288
+ * cleanly into an `events` band that lists nothing — "enabled, and records
2289
+ * nothing, forever", the exact shape `eventsBandCanEverDemand` exists to shout
2290
+ * about, reached without a single line in the log. On the reference hub that is
2291
+ * camera 4374, the one camera an operator had configured by hand.
2292
+ *
2293
+ * `enabled` is carried through untouched: a camera the operator had switched
2294
+ * OFF comes out of a migration still off (D62).
2295
+ */
2296
+ function migrateLegacyDeviceSignalConfig(raw) {
2297
+ const unchanged = {
2298
+ value: raw,
2299
+ migrated: false,
2300
+ strippedOnly: false
2301
+ };
2302
+ if (!isRecord$1(raw) || !Array.isArray(raw.bands)) return unchanged;
2303
+ if (!raw.bands.some(listensToLegacySignal)) return unchanged;
2304
+ const kept = [];
2305
+ for (const band of raw.bands) {
2306
+ if (!listensToLegacySignal(band) || !isRecord$1(band)) {
2307
+ kept.push(band);
2308
+ continue;
2309
+ }
2310
+ if (hasSurvivingTrigger(band)) kept.push(withoutLegacySignal(band));
2311
+ }
2312
+ if (kept.length > 0) return {
2313
+ value: {
2314
+ ...raw,
2315
+ bands: kept
2316
+ },
2317
+ migrated: false,
2318
+ strippedOnly: true
2319
+ };
2320
+ const { mode: _derived, ...rest } = raw;
2321
+ return {
2322
+ value: {
2323
+ ...rest,
2324
+ bands: [],
2325
+ deviceDecision: true
2326
+ },
2327
+ migrated: true,
2328
+ strippedOnly: false
2329
+ };
2330
+ }
2232
2331
  //#endregion
2233
2332
  //#region src/interfaces/relocate.ts
2234
2333
  /**
@@ -21503,12 +21602,10 @@ var CameraAudioStatusSchema = zod.z.object({
21503
21602
  nodeId: zod.z.string(),
21504
21603
  enabled: zod.z.boolean()
21505
21604
  });
21506
- /** Recording mode enum (matches recording cap). */
21507
- var CameraRecordingModeSchema = zod.z.enum([
21508
- "off",
21509
- "continuous",
21510
- "events"
21511
- ]);
21605
+ /** Recording mode — THE one definition, shared with the `recording` cap. A
21606
+ * copy of the list is how `on-device-decision` could have reached the recorder
21607
+ * and not this status block. */
21608
+ var CameraRecordingModeSchema = RecordingStorageModeSchema;
21512
21609
  /** Recording block — null when no recording cap is active for this device. */
21513
21610
  var CameraRecordingStatusSchema = zod.z.object({
21514
21611
  mode: CameraRecordingModeSchema,
@@ -32115,11 +32212,10 @@ var rebootCapability = {
32115
32212
  var RecordingStatusSchema = zod.z.object({
32116
32213
  deviceId: zod.z.number(),
32117
32214
  enabled: zod.z.boolean(),
32118
- activeMode: zod.z.enum([
32119
- "off",
32120
- "continuous",
32121
- "events"
32122
- ]),
32215
+ /** THE derived storage mode, from the one definition
32216
+ * (`deriveRecordingMode`) — never a second enum. A duplicated list is how
32217
+ * `on-device-decision` could have reached the recorder and not the status. */
32218
+ activeMode: RecordingStorageModeSchema,
32123
32219
  nodeId: zod.z.string(),
32124
32220
  storageBytes: zod.z.number()
32125
32221
  });
@@ -55284,6 +55380,7 @@ exports.meshNetworkCapability = meshNetworkCapability;
55284
55380
  exports.method = require_sleep.method;
55285
55381
  exports.methodAccessForHttpMethod = methodAccessForHttpMethod;
55286
55382
  exports.metricsProviderCapability = metricsProviderCapability;
55383
+ exports.migrateLegacyDeviceSignalConfig = migrateLegacyDeviceSignalConfig;
55287
55384
  exports.modelConvertCapability = modelConvertCapability;
55288
55385
  exports.modelDistributorCapability = modelDistributorCapability;
55289
55386
  exports.modelFormatForRuntime = modelFormatForRuntime;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-zAv7pMUz.mjs";
2
- import { $ as DecodedAudioChunkSchema, A as DEVICE_STATUS_METHOD, At as hydrateSchema, B as toNodeId, C as ChargingStatus, Ct as createEvent, D as adminUiCapability, Dt as WELL_KNOWN_TAB_MAP, E as DeviceType, Et as WELL_KNOWN_TABS, F as resolveCapMount, G as scopeKey, H as ReadinessTimeoutError, I as systemMethod, J as CAM_PROFILE_ORDER, K as BrokerStatsSchema, L as CAP_NODE_PIN_CONTEXT_KEY, M as expandCapMethods, N as isDeviceConfigCap, O as DEFAULT_RUNTIME_STATE_DURABILITY, Ot as collectHydratedFieldEntries, P as method, Q as CameraStreamSchema, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, St as createDurableState, T as DeviceRole, Tt as isEvent, U as emitDownForOwnedCaps, V as ReadinessRegistry, W as readinessKey, X as CamStreamKindSchema, Y as CamProfileSchema, Z as CamStreamResolutionSchema, _ as createMirrorSource, _t as DATAPLANE_SECRET_HEADER, a as asJsonObject, at as ProfileSlotSchema, b as deviceOpsCapability, bt as BaseAddon, c as parseJsonArray, ct as StreamSourceSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as SubscribeFramesInputSchema, et as DecodedFrameSchema, f as DEVICE_SCOPED_CAPS, ft as SubscribeFramesResultSchema, g as createLazyTrpcSource, gt as selectAssignedProfileSlots, h as createEventBusSliceSource, ht as parseProfileBrokerId, i as asJsonArray, it as ProfileRtspEntrySchema, j as event, jt as resolveHydratedFieldValue, k as DEVICE_SETTINGS_CONTRIBUTION_METHODS, kt as collectHydratedFieldValues, l as parseJsonObject, lt as SubscribeAudioChunksInputSchema, m as createDeviceProxy, mt as makeSourceBrokerId, n as sleepCancellable, nt as FrameHandleFormatSchema, o as asNumber, ot as ProfileSlotStatusSchema, p as isDeviceScopedCap, pt as makeProfileBrokerId, q as BrokerStatusSchema, r as asBoolean, rt as FrameHandleSchema, s as asString, st as StreamSourceEntrySchema, t as sleep, tt as EncodedPacketSchema, u as parseJsonUnknown, ut as SubscribeAudioChunksResultSchema, v as createSliceHandle, vt as SHARE_VIEW_KINDS, w as DeviceFeature, wt as emitReadiness, x as viewerUiCapability, xt as normalizeAddonInitResult, y as RawStateResultSchema, yt as DisposerChain, z as readNodePin } from "./sleep-IaOr7P-z.mjs";
2
+ import { $ as DecodedAudioChunkSchema, A as DEVICE_STATUS_METHOD, At as hydrateSchema, B as toNodeId, C as ChargingStatus, Ct as createEvent, D as adminUiCapability, Dt as WELL_KNOWN_TAB_MAP, E as DeviceType, Et as WELL_KNOWN_TABS, F as resolveCapMount, G as scopeKey, H as ReadinessTimeoutError, I as systemMethod, J as CAM_PROFILE_ORDER, K as BrokerStatsSchema, L as CAP_NODE_PIN_CONTEXT_KEY, M as expandCapMethods, N as isDeviceConfigCap, O as DEFAULT_RUNTIME_STATE_DURABILITY, Ot as collectHydratedFieldEntries, P as method, Q as CameraStreamSchema, R as nodePin, S as DEVICE_CHILDREN_BATCH_MAX, St as createDurableState, T as DeviceRole, Tt as isEvent, U as emitDownForOwnedCaps, V as ReadinessRegistry, W as readinessKey, X as CamStreamKindSchema, Y as CamProfileSchema, Z as CamStreamResolutionSchema, _ as createMirrorSource, _t as DATAPLANE_SECRET_HEADER, a as asJsonObject, at as ProfileSlotSchema, b as deviceOpsCapability, bt as BaseAddon, c as parseJsonArray, ct as StreamSourceSchema, d as BOOT_RECOVERY_BACKOFF_MS, dt as SubscribeFramesInputSchema, et as DecodedFrameSchema, f as DEVICE_SCOPED_CAPS, ft as SubscribeFramesResultSchema, g as createLazyTrpcSource, gt as selectAssignedProfileSlots, h as createEventBusSliceSource, ht as parseProfileBrokerId, i as asJsonArray, it as ProfileRtspEntrySchema, j as event, jt as resolveHydratedFieldValue, k as DEVICE_SETTINGS_CONTRIBUTION_METHODS, kt as collectHydratedFieldValues, l as parseJsonObject, lt as SubscribeAudioChunksInputSchema, m as createDeviceProxy, mt as makeSourceBrokerId, n as sleepCancellable, nt as FrameHandleFormatSchema, o as asNumber, ot as ProfileSlotStatusSchema, p as isDeviceScopedCap, pt as makeProfileBrokerId, q as BrokerStatusSchema, r as asBoolean, rt as FrameHandleSchema, s as asString, st as StreamSourceEntrySchema, t as sleep, tt as EncodedPacketSchema, u as parseJsonUnknown, ut as SubscribeAudioChunksResultSchema, v as createSliceHandle, vt as SHARE_VIEW_KINDS, w as DeviceFeature, wt as emitReadiness, x as viewerUiCapability, xt as normalizeAddonInitResult, y as RawStateResultSchema, yt as DisposerChain, z as readNodePin } from "./sleep-Cfij6Jj9.mjs";
3
3
  import { a as buildAudioArgs, c as buildVideoArgs, d as logBannerArgs, f as pickVideoEncoder, i as audioPlanFromEncodeProfile, l as invocationFromEncodeProfile, n as Fmp4BoxSplitter, o as buildFfmpegArgs, r as AUDIO_PRESETS, s as buildInputArgs, t as canonicalHash, u as isSoftwareDecode } from "./canonical-hash-rO1sRmEK.mjs";
4
4
  import { EventSourceType } from "./enums.mjs";
5
5
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
@@ -1227,21 +1227,21 @@ function schemaDeclaresAnyField(schema) {
1227
1227
  for (const section of sectionsOf(schema)) if (fieldsOf(section).length > 0) return true;
1228
1228
  return false;
1229
1229
  }
1230
- function isRecord$2(value) {
1230
+ function isRecord$3(value) {
1231
1231
  return typeof value === "object" && value !== null && !Array.isArray(value);
1232
1232
  }
1233
1233
  function sectionsOf(schema) {
1234
- if (!isRecord$2(schema)) return [];
1234
+ if (!isRecord$3(schema)) return [];
1235
1235
  const sections = schema["sections"];
1236
1236
  return Array.isArray(sections) ? sections : [];
1237
1237
  }
1238
1238
  function fieldsOf(node) {
1239
- if (!isRecord$2(node)) return [];
1239
+ if (!isRecord$3(node)) return [];
1240
1240
  const fields = node["fields"];
1241
1241
  return Array.isArray(fields) ? fields : [];
1242
1242
  }
1243
1243
  function walkField(field, out) {
1244
- if (!isRecord$2(field)) return;
1244
+ if (!isRecord$3(field)) return;
1245
1245
  const type = field["type"];
1246
1246
  const key = field["key"];
1247
1247
  if ((type === "password" || field["secret"] === true) && typeof key === "string" && key.length > 0) out.add(key);
@@ -1326,12 +1326,12 @@ function toStreamSourceEntry(stream) {
1326
1326
  function isString(v) {
1327
1327
  return typeof v === "string";
1328
1328
  }
1329
- function isRecord$1(v) {
1329
+ function isRecord$2(v) {
1330
1330
  return typeof v === "object" && v !== null && !Array.isArray(v);
1331
1331
  }
1332
1332
  function parseStreamEntry(v) {
1333
1333
  if (isString(v) && v.trim()) return { url: v };
1334
- if (isRecord$1(v) && isString(v["url"]) && v["url"].trim()) return {
1334
+ if (isRecord$2(v) && isString(v["url"]) && v["url"].trim()) return {
1335
1335
  url: v["url"],
1336
1336
  label: isString(v["label"]) ? v["label"] : void 0
1337
1337
  };
@@ -1971,17 +1971,29 @@ var HHMM = /^([01]\d|2[0-3]):[0-5]\d$/;
1971
1971
  /**
1972
1972
  * DERIVED per-camera storage summary — the single field cheap consumers read
1973
1973
  * (the viewer's status dot, the camera list) instead of walking `bands`:
1974
- * - `off` — no band covers the camera (or it is disabled).
1975
- * - `events` — every band records around triggers only.
1976
- * - `continuous` — at least one band records continuously.
1977
- *
1978
- * NEVER authored: the recorder stamps it from the authoritative `bands` on
1979
- * every save (`activeModeForConfig`). Writing it has no effect.
1974
+ * - `off` — no band covers the camera (or it is disabled).
1975
+ * - `events` — every band records around triggers only.
1976
+ * - `continuous` — at least one band records continuously.
1977
+ * - `on-device-decision`— the DEVICE decides: recording runs for as long as the
1978
+ * camera raises its own `recording-signal` level (a robot that cleans). There
1979
+ * is no schedule to author, because there is no hour to program — see
1980
+ * {@link RecordingConfigSchema}`.deviceDecision`.
1981
+ *
1982
+ * NEVER authored: the recorder stamps it from the authoritative intent
1983
+ * (`bands` + `deviceDecision`) on every save (`activeModeForConfig`). Writing it
1984
+ * has no effect.
1985
+ *
1986
+ * `on-device-decision` is named for WHO decides, not for how the recording is
1987
+ * requested. `on-demand` was rejected: in this repo's vocabulary a "demand" is
1988
+ * something the operator makes (the live gate is the recorder's own "demand
1989
+ * window"), and a knob whose name suggests the operator starts it while the
1990
+ * device actually does is the D62 shape — a control nobody can predict.
1980
1991
  */
1981
1992
  var RecordingStorageModeSchema = z.enum([
1982
1993
  "off",
1983
1994
  "events",
1984
- "continuous"
1995
+ "continuous",
1996
+ "on-device-decision"
1985
1997
  ]);
1986
1998
  /**
1987
1999
  * Le macro classi che possono aprire una finestra di registrazione — le stesse
@@ -2040,22 +2052,7 @@ var RecordingTriggersSchema = z.object({
2040
2052
  * il livello: un contatto trovato già aperto al riavvio del runner non fa
2041
2053
  * registrare.
2042
2054
  */
2043
- sensorDeviceIds: z.array(z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional(),
2044
- /**
2045
- * La camera registra per tutta la durata del SEGNALE che lei stessa
2046
- * pubblica — la cap `recording-signal` (`active: true` mentre il device è in
2047
- * funzione: un robot che pulisce). È un LIVELLO, non un fronte: la finestra
2048
- * resta aperta finché il segnale è alto e si chiude `postBufferSec` dopo la
2049
- * caduta, così una pulizia di quaranta minuti è UNA clip.
2050
- *
2051
- * Non nomina un device: il segnale è della camera stessa, tenuto fresco dal
2052
- * suo provider (D224); il recorder lo ascolta su `DeviceStateChanged` e lo
2053
- * riconcilia leggendo la slice via RPC, con un tetto oltre il quale un
2054
- * segnale mai abbassato (un evento perso) non può tenere aperta una
2055
- * registrazione (D11). Vedi `recorder/addon/band-decision.ts`
2056
- * (`holdTrigger` / `releaseTrigger`).
2057
- */
2058
- deviceSignal: z.boolean().optional()
2055
+ sensorDeviceIds: z.array(z.number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
2059
2056
  });
2060
2057
  /**
2061
2058
  * Mode of a single recording band — the recorder per-band vocabulary.
@@ -2186,8 +2183,29 @@ var RecordingConfigSchema = z.object({
2186
2183
  * "off" is the absence of a covering band, never a band value.
2187
2184
  */
2188
2185
  bands: z.array(RecordingBandSchema).default([]),
2186
+ /**
2187
+ * THE device-decided intent: record for as long as the camera itself raises
2188
+ * `recording-signal` (`active: true` while the device is in function — a
2189
+ * robot that cleans). AUTHORED, unlike `mode`, and the only authored
2190
+ * recording intent that is not a band.
2191
+ *
2192
+ * It carries NO schedule on purpose. A band is an HOUR, and this feature has
2193
+ * no hour to program: the device decides. What it costs the operator is one
2194
+ * flag — "this camera can record on its own" — and what it buys is the same
2195
+ * hold/release the recorder already implements (D371, `holdTrigger` /
2196
+ * `releaseTrigger`): the window opens on the rise, stays open for the whole
2197
+ * job however long it is, and closes one pad after the fall.
2198
+ *
2199
+ * EXCLUSIVE with `bands` (below): two authorities deciding when the same
2200
+ * camera records is the D62 failure. `off` remains `enabled: false`, so an
2201
+ * operator switching this camera off is REPORTED off, never as broken.
2202
+ */
2203
+ deviceDecision: z.boolean().optional(),
2189
2204
  retention: RecordingRetentionSchema.optional()
2190
- }).strict();
2205
+ }).strict().refine((config) => config.deviceDecision !== true || config.bands.length === 0, {
2206
+ message: "deviceDecision is a whole-config mode and carries no schedule: it cannot be combined with bands",
2207
+ path: ["bands"]
2208
+ });
2191
2209
  /**
2192
2210
  * Derive the {@link RecordingStorageModeSchema} summary from the authoritative
2193
2211
  * bands: `continuous` when any band records continuously, `events` when a band
@@ -2200,7 +2218,9 @@ var RecordingConfigSchema = z.object({
2200
2218
  * bug this field was added to fix.
2201
2219
  */
2202
2220
  function deriveRecordingMode(config) {
2203
- if (!config.enabled || config.bands.length === 0) return "off";
2221
+ if (!config.enabled) return "off";
2222
+ if (config.deviceDecision === true) return "on-device-decision";
2223
+ if (config.bands.length === 0) return "off";
2204
2224
  if (config.bands.some((band) => band.mode === "continuous")) return "continuous";
2205
2225
  return "events";
2206
2226
  }
@@ -2228,6 +2248,85 @@ function resolveRecordingProfiles(assigned, override) {
2228
2248
  const preferred = assigned.filter((profile) => DEFAULT_RECORDING_PROFILES.includes(profile));
2229
2249
  return preferred.length > 0 ? preferred : [...assigned];
2230
2250
  }
2251
+ /** Trigger keys that survive D380 — a band carrying one of these is a real band. */
2252
+ var SURVIVING_TRIGGER_KEYS = [
2253
+ "motion",
2254
+ "audioThresholdDbfs",
2255
+ "objectClasses",
2256
+ "sensorDeviceIds"
2257
+ ];
2258
+ function isRecord$1(value) {
2259
+ return typeof value === "object" && value !== null && !Array.isArray(value);
2260
+ }
2261
+ function listensToLegacySignal(band) {
2262
+ return isRecord$1(band) && isRecord$1(band.triggers) && band.triggers.deviceSignal === true;
2263
+ }
2264
+ function hasSurvivingTrigger(band) {
2265
+ const triggers = band.triggers;
2266
+ if (!isRecord$1(triggers)) return false;
2267
+ return SURVIVING_TRIGGER_KEYS.some((key) => triggers[key] !== void 0);
2268
+ }
2269
+ function withoutLegacySignal(band) {
2270
+ const triggers = band.triggers;
2271
+ if (!isRecord$1(triggers)) return band;
2272
+ const { deviceSignal: _retired, ...rest } = triggers;
2273
+ return {
2274
+ ...band,
2275
+ triggers: rest
2276
+ };
2277
+ }
2278
+ /**
2279
+ * Turn a config stored under D371 (`bands[].triggers.deviceSignal: true`) into
2280
+ * a D380 one (`deviceDecision: true`, no bands). Pure, total and IDEMPOTENT —
2281
+ * a row with no legacy key comes back as the SAME reference, `migrated: false`.
2282
+ *
2283
+ * ## Why the schema cannot be left to do this
2284
+ *
2285
+ * `RecordingTriggersSchema` is a non-strict `z.object`, so the retired key is
2286
+ * SILENTLY STRIPPED on read. The camera whose only trigger it was would parse
2287
+ * cleanly into an `events` band that lists nothing — "enabled, and records
2288
+ * nothing, forever", the exact shape `eventsBandCanEverDemand` exists to shout
2289
+ * about, reached without a single line in the log. On the reference hub that is
2290
+ * camera 4374, the one camera an operator had configured by hand.
2291
+ *
2292
+ * `enabled` is carried through untouched: a camera the operator had switched
2293
+ * OFF comes out of a migration still off (D62).
2294
+ */
2295
+ function migrateLegacyDeviceSignalConfig(raw) {
2296
+ const unchanged = {
2297
+ value: raw,
2298
+ migrated: false,
2299
+ strippedOnly: false
2300
+ };
2301
+ if (!isRecord$1(raw) || !Array.isArray(raw.bands)) return unchanged;
2302
+ if (!raw.bands.some(listensToLegacySignal)) return unchanged;
2303
+ const kept = [];
2304
+ for (const band of raw.bands) {
2305
+ if (!listensToLegacySignal(band) || !isRecord$1(band)) {
2306
+ kept.push(band);
2307
+ continue;
2308
+ }
2309
+ if (hasSurvivingTrigger(band)) kept.push(withoutLegacySignal(band));
2310
+ }
2311
+ if (kept.length > 0) return {
2312
+ value: {
2313
+ ...raw,
2314
+ bands: kept
2315
+ },
2316
+ migrated: false,
2317
+ strippedOnly: true
2318
+ };
2319
+ const { mode: _derived, ...rest } = raw;
2320
+ return {
2321
+ value: {
2322
+ ...rest,
2323
+ bands: [],
2324
+ deviceDecision: true
2325
+ },
2326
+ migrated: true,
2327
+ strippedOnly: false
2328
+ };
2329
+ }
2231
2330
  //#endregion
2232
2331
  //#region src/interfaces/relocate.ts
2233
2332
  /**
@@ -21502,12 +21601,10 @@ var CameraAudioStatusSchema = z.object({
21502
21601
  nodeId: z.string(),
21503
21602
  enabled: z.boolean()
21504
21603
  });
21505
- /** Recording mode enum (matches recording cap). */
21506
- var CameraRecordingModeSchema = z.enum([
21507
- "off",
21508
- "continuous",
21509
- "events"
21510
- ]);
21604
+ /** Recording mode — THE one definition, shared with the `recording` cap. A
21605
+ * copy of the list is how `on-device-decision` could have reached the recorder
21606
+ * and not this status block. */
21607
+ var CameraRecordingModeSchema = RecordingStorageModeSchema;
21511
21608
  /** Recording block — null when no recording cap is active for this device. */
21512
21609
  var CameraRecordingStatusSchema = z.object({
21513
21610
  mode: CameraRecordingModeSchema,
@@ -32114,11 +32211,10 @@ var rebootCapability = {
32114
32211
  var RecordingStatusSchema = z.object({
32115
32212
  deviceId: z.number(),
32116
32213
  enabled: z.boolean(),
32117
- activeMode: z.enum([
32118
- "off",
32119
- "continuous",
32120
- "events"
32121
- ]),
32214
+ /** THE derived storage mode, from the one definition
32215
+ * (`deriveRecordingMode`) — never a second enum. A duplicated list is how
32216
+ * `on-device-decision` could have reached the recorder and not the status. */
32217
+ activeMode: RecordingStorageModeSchema,
32122
32218
  nodeId: z.string(),
32123
32219
  storageBytes: z.number()
32124
32220
  });
@@ -53970,4 +54066,4 @@ function enumerateInferenceDevices(hw) {
53970
54066
  return out;
53971
54067
  }
53972
54068
  //#endregion
53973
- export { ACCESSORY_LABEL, ACCESS_ROLES, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BOOT_RECOVERY_BACKOFF_MS, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BackupRunPhaseSchema, BackupRunSchema, BackupRunStateSchema, BackupTriggerResultSchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, BulkRecordSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, CLASS_MAP_MACRO_TARGETS, CLUSTER_MODEL_SCOPED_STEPS, CLUSTER_MODEL_SECTION_ID, CLUSTER_STEP_SETTING_FIELDS, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CONTAINER_CHILD_PRIORITY, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraOccupancySnapshotForDeviceSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_CLUSTER_STEP_MODELS, DEFAULT_CLUSTER_STEP_SETTINGS, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_POOL_MEMORY_POLICY, DEFAULT_RECORDING_PROFILES, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_MACRO_CLASSES, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_CHILDREN_BATCH_MAX, DEVICE_PROFILES, DEVICE_RESTORE_RETRY_CONCURRENCY, DEVICE_RESTORE_RETRY_DELAYS_MS, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRestoreRetryScheduler, DeviceRole, DeviceRuntimeState, DeviceSelectorSchema, DeviceStatusSchema, DeviceType, DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DiskReconcileJobSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_DENSITY_BATCH_MAX, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventDensityBucketSchema, EventDensityForDeviceSchema, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportBytesSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FIRST_LEVEL_MACRO_CLASSES, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, INFERENCE_DEVICE_EXCLUSION_REASONS, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOAD_CONTRIBUTION_ATTRIBUTIONS, LOAD_CONTRIBUTION_ROLES, LOG_CHANNEL_TICK_MS, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LedgerWalkDeviceReportSchema, LedgerWalkInputSchema, LedgerWalkRefusalSchema, LedgerWalkReportSchema, LedgerWalkSkipCountsSchema, LedgerWalkSkipReasonSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmDownloadProgressSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRetryPolicySchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmTimeoutDefaults, LlmUsageRollupSchema, LlmUsageSchema, LoadContributionSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogChannelApplyResultSchema, LogChannelDescriptorSchema, LogChannelGate, LogChannelLevelSchema, LogChannelRegistry, LogChannelWindowPatchSchema, LogChannelWindowSchema, LogChannelWindowStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_CLIP_EVENT_IDS, MAX_CLIP_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, MAX_KEYS, MAX_REASONS_PER_KEY, MAX_SENSOR_TRIGGER_DEVICES, MAX_TRACK_DEBUG_NOTE_LEN, METHOD_ACCESS_MAP, METHOD_DEVICE_SELECTORS, MODEL_FORMATS, MODEL_PROVIDER_IDS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MediaRelocateModeSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, MigrateDeviceResultSchema, MigrateSwitchOutcomeSchema, MigrateSwitchReportSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelProviderIdSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DBFS_FLOOR, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, NC_AUDIO_SEED, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SNOOZE_MAX_MINUTES, NC_SYSTEM_DELIVERY, NC_SYSTEM_EVENT_FILTER_KEYS, NC_TAXONOMY, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NavigationActionEntrySchema, NavigationActionIdSchema, NavigationEntryKindSchema, NavigationFeaturesSchema, NavigationLightModeSchema, NavigationModeSchema, NavigationMoveCommandSchema, NavigationPointSchema, NavigationRuntimeStateSchema, NavigationStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcSceneConditionSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NetworkLinkStatusSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPERATOR_WRITTEN_STALE_MS, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OVERFLOW_REASON, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RECORDING_EXPORT_MAX_READ_BYTES, RECORDING_TIMELINE_BATCH_MAX, REDACTED_SECRET, RESERVED_BINDING_NAMES, RESTORED_CAP_NAMES, ROOT_BUCKET_KEY, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysForDeviceSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingObjectTriggerClassSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingSignalRuntimeStateSchema, RecordingSignalStatusSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocatableMediaCountInputSchema, RelocatableMediaCountSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RelocateResidueInputSchema, RelocateResidueSchema, RenderedAsSchema, ReportMotionInputSchema, ReportedFailureContributionSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, SCOPE_PRESETS, SENSOR_FEATURES, SENSOR_MAP, SHARE_VIEW_KINDS, SOURCE_CAPS, SOURCE_CAP_ACTIVE_FIELD, SOURCE_CAP_CHANGED_AT_FIELD, SOURCE_DEVICE_TYPES, SOURCE_INFO_METADATA_KEY, STORAGE_ACCESS_FALLBACK, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, SYSTEM_CAP_NAMES, SYSTEM_SCOPE_DEVICE_METHODS, SceneCheckSchema, SceneConditionSchema, SceneConfirmSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, SceneReferenceSchema, SceneUnavailableSchema, SceneUncoveredPolicySchema, SceneVerdictSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, StorageAccessSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, StorageCleanupInputSchema, StorageCleanupJobSchema, StorageCleanupPhaseSchema, StorageCleanupStatusInputSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationDrainInputSchema, StorageMigrationFindingCodeSchema, StorageMigrationFindingSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLaneSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationModeSchema, StorageMigrationMoveProgressSchema, StorageMigrationMoveSchema, StorageMigrationMoverSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, StorageMigrationResidueSchema, StorageMigrationSourcesSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SummarySchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VISIT_MERGE_GAP_MS, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, __resetLogChannelRegistryForTests, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioIsFailClosed, audioKindId, audioLabelChoices, audioMetricsCapability, audioModeOf, audioOrDefaults, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildRoleScopes, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, collectHydratedFieldEntries, collectHydratedFieldValues, collectSecretConfigKeys, colorCapability, colorForKind, commitWatchdogRestart, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, declareLogChannel, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectAccessRole, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, doorbellCapability, droppedConditionsForKind, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluatePoolMemory, evaluateSensorEdge, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, foldSnapshotByFunction, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, inferModelProvider, initialPoolMemoryState, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isAudioLabelSelected, isAudioRule, isBaseConditionKey, isBatteryPresenceFault, isClusterScopedStep, isCollectionArrayMethod, isDeployableToAgent, isDetectionMacroClass, isDeviceConfigCap, isDeviceScopedCap, isEvent, isFirstLevelMacroClass, isIsolatedBuiltin, isNode, isObjectInput, isOccupancyRule, isRestoredCap, isSameAddonId, isScheduleActive, isSecretConfigField, isSoftwareDecode, isSourceCap, isSystemDelivery, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, loadContributionCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logChannelsCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, networkAccessCapability, networkLinkCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeTokenScopes, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, overlayClusterStepSettings, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProcStatus, parseProfileBrokerId, parseRuleSection, parseStreamParamsFormPatch, patchAudio, petFeederCapability, pickAccessoryControl, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, poolMemoryThreshold, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, recordingSignalCapability, rectsToCells, reducePoints, requiresPython, resetPoolBaseline, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveBucketMs, resolveCapMount, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveMethodAuth, resolveModelFormat, resolveMutate, resolvePoolMemoryPolicy, resolveRecordingProfiles, resolveRunnerId, resolveVariantModelId, resolveViewableDeviceIds, roleSpec, ruleEditorSectionsForKind, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, runInferenceStep, runtimeDevices, runtimeStatePolicyFor, sceneMonitorCapability, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, signalPercentFromBars, signalPercentFromRssi, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, summarizeEffectiveScope, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, toggleAudioLabel, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
54069
+ export { ACCESSORY_LABEL, ACCESS_ROLES, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BOOT_RECOVERY_BACKOFF_MS, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BackupRunPhaseSchema, BackupRunSchema, BackupRunStateSchema, BackupTriggerResultSchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, BulkRecordSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, CLASS_MAP_MACRO_TARGETS, CLUSTER_MODEL_SCOPED_STEPS, CLUSTER_MODEL_SECTION_ID, CLUSTER_STEP_SETTING_FIELDS, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CONTAINER_CHILD_PRIORITY, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraOccupancySnapshotForDeviceSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_CLUSTER_STEP_MODELS, DEFAULT_CLUSTER_STEP_SETTINGS, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_POOL_MEMORY_POLICY, DEFAULT_RECORDING_PROFILES, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_MACRO_CLASSES, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_CHILDREN_BATCH_MAX, DEVICE_PROFILES, DEVICE_RESTORE_RETRY_CONCURRENCY, DEVICE_RESTORE_RETRY_DELAYS_MS, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRestoreRetryScheduler, DeviceRole, DeviceRuntimeState, DeviceSelectorSchema, DeviceStatusSchema, DeviceType, DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DiskReconcileJobSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_DENSITY_BATCH_MAX, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventDensityBucketSchema, EventDensityForDeviceSchema, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportBytesSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FIRST_LEVEL_MACRO_CLASSES, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, INFERENCE_DEVICE_EXCLUSION_REASONS, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOAD_CONTRIBUTION_ATTRIBUTIONS, LOAD_CONTRIBUTION_ROLES, LOG_CHANNEL_TICK_MS, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LedgerWalkDeviceReportSchema, LedgerWalkInputSchema, LedgerWalkRefusalSchema, LedgerWalkReportSchema, LedgerWalkSkipCountsSchema, LedgerWalkSkipReasonSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmDownloadProgressSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRetryPolicySchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmTimeoutDefaults, LlmUsageRollupSchema, LlmUsageSchema, LoadContributionSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogChannelApplyResultSchema, LogChannelDescriptorSchema, LogChannelGate, LogChannelLevelSchema, LogChannelRegistry, LogChannelWindowPatchSchema, LogChannelWindowSchema, LogChannelWindowStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_CLIP_EVENT_IDS, MAX_CLIP_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, MAX_KEYS, MAX_REASONS_PER_KEY, MAX_SENSOR_TRIGGER_DEVICES, MAX_TRACK_DEBUG_NOTE_LEN, METHOD_ACCESS_MAP, METHOD_DEVICE_SELECTORS, MODEL_FORMATS, MODEL_PROVIDER_IDS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MediaRelocateModeSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, MigrateDeviceResultSchema, MigrateSwitchOutcomeSchema, MigrateSwitchReportSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelProviderIdSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DBFS_FLOOR, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, NC_AUDIO_SEED, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SNOOZE_MAX_MINUTES, NC_SYSTEM_DELIVERY, NC_SYSTEM_EVENT_FILTER_KEYS, NC_TAXONOMY, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NavigationActionEntrySchema, NavigationActionIdSchema, NavigationEntryKindSchema, NavigationFeaturesSchema, NavigationLightModeSchema, NavigationModeSchema, NavigationMoveCommandSchema, NavigationPointSchema, NavigationRuntimeStateSchema, NavigationStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcSceneConditionSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NetworkLinkStatusSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPERATOR_WRITTEN_STALE_MS, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OVERFLOW_REASON, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RECORDING_EXPORT_MAX_READ_BYTES, RECORDING_TIMELINE_BATCH_MAX, REDACTED_SECRET, RESERVED_BINDING_NAMES, RESTORED_CAP_NAMES, ROOT_BUCKET_KEY, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysForDeviceSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingObjectTriggerClassSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingSignalRuntimeStateSchema, RecordingSignalStatusSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocatableMediaCountInputSchema, RelocatableMediaCountSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RelocateResidueInputSchema, RelocateResidueSchema, RenderedAsSchema, ReportMotionInputSchema, ReportedFailureContributionSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, SCOPE_PRESETS, SENSOR_FEATURES, SENSOR_MAP, SHARE_VIEW_KINDS, SOURCE_CAPS, SOURCE_CAP_ACTIVE_FIELD, SOURCE_CAP_CHANGED_AT_FIELD, SOURCE_DEVICE_TYPES, SOURCE_INFO_METADATA_KEY, STORAGE_ACCESS_FALLBACK, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, SYSTEM_CAP_NAMES, SYSTEM_SCOPE_DEVICE_METHODS, SceneCheckSchema, SceneConditionSchema, SceneConfirmSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, SceneReferenceSchema, SceneUnavailableSchema, SceneUncoveredPolicySchema, SceneVerdictSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, StorageAccessSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, StorageCleanupInputSchema, StorageCleanupJobSchema, StorageCleanupPhaseSchema, StorageCleanupStatusInputSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationDrainInputSchema, StorageMigrationFindingCodeSchema, StorageMigrationFindingSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLaneSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationModeSchema, StorageMigrationMoveProgressSchema, StorageMigrationMoveSchema, StorageMigrationMoverSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, StorageMigrationResidueSchema, StorageMigrationSourcesSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SummarySchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VISIT_MERGE_GAP_MS, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, __resetLogChannelRegistryForTests, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioIsFailClosed, audioKindId, audioLabelChoices, audioMetricsCapability, audioModeOf, audioOrDefaults, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildRoleScopes, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, collectHydratedFieldEntries, collectHydratedFieldValues, collectSecretConfigKeys, colorCapability, colorForKind, commitWatchdogRestart, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, declareLogChannel, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectAccessRole, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, doorbellCapability, droppedConditionsForKind, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluatePoolMemory, evaluateSensorEdge, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, foldSnapshotByFunction, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, inferModelProvider, initialPoolMemoryState, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isAudioLabelSelected, isAudioRule, isBaseConditionKey, isBatteryPresenceFault, isClusterScopedStep, isCollectionArrayMethod, isDeployableToAgent, isDetectionMacroClass, isDeviceConfigCap, isDeviceScopedCap, isEvent, isFirstLevelMacroClass, isIsolatedBuiltin, isNode, isObjectInput, isOccupancyRule, isRestoredCap, isSameAddonId, isScheduleActive, isSecretConfigField, isSoftwareDecode, isSourceCap, isSystemDelivery, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, loadContributionCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logChannelsCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, migrateLegacyDeviceSignalConfig, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, networkAccessCapability, networkLinkCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeTokenScopes, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, overlayClusterStepSettings, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProcStatus, parseProfileBrokerId, parseRuleSection, parseStreamParamsFormPatch, patchAudio, petFeederCapability, pickAccessoryControl, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, poolMemoryThreshold, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, recordingSignalCapability, rectsToCells, reducePoints, requiresPython, resetPoolBaseline, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveBucketMs, resolveCapMount, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveMethodAuth, resolveModelFormat, resolveMutate, resolvePoolMemoryPolicy, resolveRecordingProfiles, resolveRunnerId, resolveVariantModelId, resolveViewableDeviceIds, roleSpec, ruleEditorSectionsForKind, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, runInferenceStep, runtimeDevices, runtimeStatePolicyFor, sceneMonitorCapability, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, signalPercentFromBars, signalPercentFromRssi, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, summarizeEffectiveScope, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, toggleAudioLabel, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
@@ -29,17 +29,29 @@ export type RecordingWeekday = z.infer<typeof RecordingWeekdaySchema>;
29
29
  /**
30
30
  * DERIVED per-camera storage summary — the single field cheap consumers read
31
31
  * (the viewer's status dot, the camera list) instead of walking `bands`:
32
- * - `off` — no band covers the camera (or it is disabled).
33
- * - `events` — every band records around triggers only.
34
- * - `continuous` — at least one band records continuously.
32
+ * - `off` — no band covers the camera (or it is disabled).
33
+ * - `events` — every band records around triggers only.
34
+ * - `continuous` — at least one band records continuously.
35
+ * - `on-device-decision`— the DEVICE decides: recording runs for as long as the
36
+ * camera raises its own `recording-signal` level (a robot that cleans). There
37
+ * is no schedule to author, because there is no hour to program — see
38
+ * {@link RecordingConfigSchema}`.deviceDecision`.
35
39
  *
36
- * NEVER authored: the recorder stamps it from the authoritative `bands` on
37
- * every save (`activeModeForConfig`). Writing it has no effect.
40
+ * NEVER authored: the recorder stamps it from the authoritative intent
41
+ * (`bands` + `deviceDecision`) on every save (`activeModeForConfig`). Writing it
42
+ * has no effect.
43
+ *
44
+ * `on-device-decision` is named for WHO decides, not for how the recording is
45
+ * requested. `on-demand` was rejected: in this repo's vocabulary a "demand" is
46
+ * something the operator makes (the live gate is the recorder's own "demand
47
+ * window"), and a knob whose name suggests the operator starts it while the
48
+ * device actually does is the D62 shape — a control nobody can predict.
38
49
  */
39
50
  export declare const RecordingStorageModeSchema: z.ZodEnum<{
40
51
  off: "off";
41
52
  events: "events";
42
53
  continuous: "continuous";
54
+ "on-device-decision": "on-device-decision";
43
55
  }>;
44
56
  export type RecordingStorageMode = z.infer<typeof RecordingStorageModeSchema>;
45
57
  /**
@@ -72,7 +84,6 @@ export declare const RecordingTriggersSchema: z.ZodObject<{
72
84
  animal: "animal";
73
85
  }>>>;
74
86
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
75
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
76
87
  }, z.core.$strip>;
77
88
  export type RecordingTriggers = z.infer<typeof RecordingTriggersSchema>;
78
89
  /**
@@ -101,7 +112,6 @@ export declare const RecordingBandTriggersSchema: z.ZodObject<{
101
112
  animal: "animal";
102
113
  }>>>;
103
114
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
104
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
105
115
  }, z.core.$strip>;
106
116
  export type RecordingBandTriggers = z.infer<typeof RecordingBandTriggersSchema>;
107
117
  /**
@@ -129,7 +139,6 @@ export declare const RecordingBandSchema: z.ZodObject<{
129
139
  animal: "animal";
130
140
  }>>>;
131
141
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
132
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
133
142
  }, z.core.$strip>>;
134
143
  preBufferSec: z.ZodOptional<z.ZodNumber>;
135
144
  postBufferSec: z.ZodOptional<z.ZodNumber>;
@@ -223,6 +232,7 @@ export declare const RecordingConfigSchema: z.ZodObject<{
223
232
  off: "off";
224
233
  events: "events";
225
234
  continuous: "continuous";
235
+ "on-device-decision": "on-device-decision";
226
236
  }>>;
227
237
  profiles: z.ZodOptional<z.ZodArray<z.ZodEnum<{
228
238
  high: "high";
@@ -247,19 +257,19 @@ export declare const RecordingConfigSchema: z.ZodObject<{
247
257
  animal: "animal";
248
258
  }>>>;
249
259
  sensorDeviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
250
- deviceSignal: z.ZodOptional<z.ZodBoolean>;
251
260
  }, z.core.$strip>>;
252
261
  preBufferSec: z.ZodOptional<z.ZodNumber>;
253
262
  postBufferSec: z.ZodOptional<z.ZodNumber>;
254
263
  }, z.core.$strip>>>;
264
+ deviceDecision: z.ZodOptional<z.ZodBoolean>;
255
265
  retention: z.ZodOptional<z.ZodObject<{
256
266
  maxAgeDays: z.ZodOptional<z.ZodNumber>;
257
267
  maxSizeGb: z.ZodOptional<z.ZodNumber>;
258
268
  }, z.core.$strip>>;
259
269
  }, z.core.$strict>;
260
270
  export type RecordingConfig = z.infer<typeof RecordingConfigSchema>;
261
- /** The bands + enabled flag a mode is derived from — all {@link deriveRecordingMode} reads. */
262
- export type RecordingModeSource = Pick<RecordingConfig, 'enabled' | 'bands'>;
271
+ /** The authored intent a mode is derived from — all {@link deriveRecordingMode} reads. */
272
+ export type RecordingModeSource = Pick<RecordingConfig, 'enabled' | 'bands' | 'deviceDecision'>;
263
273
  /**
264
274
  * Derive the {@link RecordingStorageModeSchema} summary from the authoritative
265
275
  * bands: `continuous` when any band records continuously, `events` when a band
@@ -289,3 +299,36 @@ export declare const DEFAULT_RECORDING_PROFILES: readonly CamProfile[];
289
299
  * still records something). Empty assigned → empty result.
290
300
  */
291
301
  export declare function resolveRecordingProfiles(assigned: readonly CamProfile[], override: readonly CamProfile[] | undefined): CamProfile[];
302
+ /** What {@link migrateLegacyDeviceSignalConfig} did to one stored row. */
303
+ export interface LegacyDeviceSignalMigration {
304
+ /** The row to persist/parse. The SAME reference when nothing was legacy. */
305
+ readonly value: unknown;
306
+ /** The config now says `deviceDecision: true` — the mode was recovered. */
307
+ readonly migrated: boolean;
308
+ /**
309
+ * The legacy key was on a band that ALSO listened to something else (motion,
310
+ * a sensor …), so the key was dropped and the band kept. The camera keeps its
311
+ * other triggers and LOSES the device signal until an operator picks the new
312
+ * mode — the honest outcome: folding a mixed band into a mode would silently
313
+ * delete a schedule the operator authored.
314
+ */
315
+ readonly strippedOnly: boolean;
316
+ }
317
+ /**
318
+ * Turn a config stored under D371 (`bands[].triggers.deviceSignal: true`) into
319
+ * a D380 one (`deviceDecision: true`, no bands). Pure, total and IDEMPOTENT —
320
+ * a row with no legacy key comes back as the SAME reference, `migrated: false`.
321
+ *
322
+ * ## Why the schema cannot be left to do this
323
+ *
324
+ * `RecordingTriggersSchema` is a non-strict `z.object`, so the retired key is
325
+ * SILENTLY STRIPPED on read. The camera whose only trigger it was would parse
326
+ * cleanly into an `events` band that lists nothing — "enabled, and records
327
+ * nothing, forever", the exact shape `eventsBandCanEverDemand` exists to shout
328
+ * about, reached without a single line in the log. On the reference hub that is
329
+ * camera 4374, the one camera an operator had configured by hand.
330
+ *
331
+ * `enabled` is carried through untouched: a camera the operator had switched
332
+ * OFF comes out of a migration still off (D62).
333
+ */
334
+ export declare function migrateLegacyDeviceSignalConfig(raw: unknown): LegacyDeviceSignalMigration;
@@ -3859,7 +3859,7 @@ function createDeviceProxy(api, binding, opts) {
3859
3859
  * can answer "may a rule actuate this?" without importing the schema barrel
3860
3860
  * (~144MB RSS per runner, D28).
3861
3861
  *
3862
- * Coverage: 82 device-scoped capabilities.
3862
+ * Coverage: 83 device-scoped capabilities.
3863
3863
  */
3864
3864
  var DEVICE_SCOPED_CAPS = new Set([
3865
3865
  "accessories",
@@ -3924,6 +3924,7 @@ var DEVICE_SCOPED_CAPS = new Set([
3924
3924
  "ptz",
3925
3925
  "ptz-autotrack",
3926
3926
  "reboot",
3927
+ "recording-signal",
3927
3928
  "scene-monitor",
3928
3929
  "script-runner",
3929
3930
  "smoke",
@@ -3859,7 +3859,7 @@ function createDeviceProxy(api, binding, opts) {
3859
3859
  * can answer "may a rule actuate this?" without importing the schema barrel
3860
3860
  * (~144MB RSS per runner, D28).
3861
3861
  *
3862
- * Coverage: 82 device-scoped capabilities.
3862
+ * Coverage: 83 device-scoped capabilities.
3863
3863
  */
3864
3864
  var DEVICE_SCOPED_CAPS = new Set([
3865
3865
  "accessories",
@@ -3924,6 +3924,7 @@ var DEVICE_SCOPED_CAPS = new Set([
3924
3924
  "ptz",
3925
3925
  "ptz-autotrack",
3926
3926
  "reboot",
3927
+ "recording-signal",
3927
3928
  "scene-monitor",
3928
3929
  "script-runner",
3929
3930
  "smoke",
@@ -9,6 +9,19 @@ export interface SpatialDetection {
9
9
  readonly mask?: Uint8Array;
10
10
  readonly maskWidth?: number;
11
11
  readonly maskHeight?: number;
12
+ /**
13
+ * Mirrored from {@link ObjectDetection.nativeRecovery} when this detection
14
+ * enters the tracker. The tracker's SPAWN gates (per-class score floor,
15
+ * person-over-animal dedup) are tuned for the coarse full-frame pass; a box
16
+ * measured at native resolution is not the thing they exist to kill.
17
+ */
18
+ readonly nativeRecovery?: NativeRecoveryEvidence;
19
+ /**
20
+ * Mirrored from {@link ObjectDetection.birthEvidence} when this detection
21
+ * enters the tracker, so a birth the tracker mints carries the pixels that
22
+ * produced it all the way to the confirmation gate (D379).
23
+ */
24
+ readonly birthEvidence?: BirthEvidence;
12
25
  }
13
26
  export interface CropInput {
14
27
  readonly frame: FrameInput;
@@ -216,6 +229,101 @@ export interface DetectionBase {
216
229
  readonly labels: readonly ScoredLabel[];
217
230
  readonly track?: TrackInfo;
218
231
  readonly debug?: DetectionDebug;
232
+ /**
233
+ * Present when this box did NOT come from the full-frame pass but from a
234
+ * SECOND detector pass on a native-resolution crop of a motion region
235
+ * (`small-subject-recovery.ts` in the runner). See
236
+ * {@link NativeRecoveryEvidence}.
237
+ */
238
+ readonly nativeRecovery?: NativeRecoveryEvidence;
239
+ /**
240
+ * The box's own pixels, cut by the runner at the instant of detection, for a
241
+ * box it had not seen recently. See {@link BirthEvidence} — this is what the
242
+ * confirmation gate looks at instead of asking for pixels afterwards.
243
+ */
244
+ readonly birthEvidence?: BirthEvidence;
245
+ }
246
+ /**
247
+ * What a native-resolution second pass ALREADY measured about a box.
248
+ *
249
+ * The first-level detector sees a 4K frame at 320 px: a 100 px dog is 8 px and
250
+ * is not emitted. The runner's recovery pass re-runs THE SAME detector on a
251
+ * 640–800 px native square around the moving region and finds it at 0.82–0.91
252
+ * (`docs/benchmarks/pipeline-frame-model-eval.md`, case `miss-dog-615`). That
253
+ * pass is already a second look at better pixels — so every downstream gate
254
+ * whose job is to ask "did the coarse pass see a real thing?" has its answer,
255
+ * and re-deriving a THIRD, tighter crop of the same subject can only lose
256
+ * information (D377).
257
+ *
258
+ * Carried from the runner to post-analysis on the emitted frame result and
259
+ * mirrored onto the tracker's {@link SpatialDetection}. Plain data: no pixels,
260
+ * no handle — the crop it names is long gone, and its VERDICT is what travels.
261
+ */
262
+ export interface NativeRecoveryEvidence {
263
+ /** Score the second pass measured, on the native crop, with the same model. */
264
+ readonly score: number;
265
+ /** Side of the native square the crop was cut from, in native pixels. */
266
+ readonly cropSidePx: number;
267
+ /** Side of the compressed view the model actually saw, in pixels. */
268
+ readonly viewPx: number;
269
+ }
270
+ /**
271
+ * The pixels of a candidate birth, CUT AT THE INSTANT IT WAS DETECTED.
272
+ *
273
+ * ## Why this exists (D379)
274
+ *
275
+ * The confirmation gate asks one question of a new track: re-run the detector
276
+ * on a crop of the box and see whether the subject is really there. Until now
277
+ * it asked for those pixels AFTERWARDS, by `FrameHandle`, across a process
278
+ * boundary — and measured on the live hub over three hours that request fails
279
+ * 7 452 times, 99.9% of them `worker-lease-gone`, at a median handle age of
280
+ * 1 347 ms and misses recorded as early as 254 ms. The frame is not evicted
281
+ * late; it is very often never retained at all (`leaseAdmitted:9` against
282
+ * `leaseMarks:297` on one measured worker, `leaseReleasedEarly:288`). 1 191 of
283
+ * 1 883 gate verdicts in that window (63%) never saw a pixel.
284
+ *
285
+ * So the crop is cut where the pixels are already in hand — in the runner, on
286
+ * the frame the detection was measured on — and RIDES the detection. No store,
287
+ * no handle, no lease, no round trip, and above all no OTHER INSTANT: a subject
288
+ * that has moved is not in a later frame, and its absence there is not evidence
289
+ * it was never here.
290
+ *
291
+ * This is the same discipline Scrypted enforces structurally: its decoded frame
292
+ * is invalidated the moment the `for await` body returns
293
+ * (`plugins/python-codecs/src/libav.py:105-112`), so every second look — face
294
+ * crop, embedding, retained detection image — is taken IN BAND
295
+ * (`plugins/objectdetector/src/main.ts:512-520`).
296
+ *
297
+ * ## What it is NOT
298
+ *
299
+ * Not a detail/CLIP crop, and nothing here calls `deriveDetailCropRect` (D52):
300
+ * this rectangle is the detection box padded for a CLASSIFICATION question and
301
+ * is never fed to an embedder, never stored as media, never indexed. It is also
302
+ * not a frame: it is one small JPEG of one box, cut only for a box the runner
303
+ * has not seen recently, so it never crosses a boundary at frame rate (D9/D18).
304
+ */
305
+ export interface BirthEvidence {
306
+ /** Base64 JPEG of {@link rect}, cut from the frame this detection was measured on. */
307
+ readonly jpegBase64: string;
308
+ /**
309
+ * The rectangle the JPEG covers, in ABSOLUTE pixels of the analysis frame —
310
+ * the same space as `DetectionBoundingBox`. The gate needs it to put a
311
+ * crop-space re-detection back into the frame (secondary promotion), and it
312
+ * is the padded box, never the bare one.
313
+ */
314
+ readonly rect: {
315
+ readonly x: number;
316
+ readonly y: number;
317
+ readonly width: number;
318
+ readonly height: number;
319
+ };
320
+ /**
321
+ * Which raster it was cut from. `analysis` is the ≤640 detection frame the
322
+ * runner holds in its own address space — the only raster that is present,
323
+ * for free, at the instant of detection. A future native rung would add a
324
+ * value here rather than change the meaning of this one.
325
+ */
326
+ readonly tier: 'analysis';
219
327
  }
220
328
  /** Object detection (first-level person/vehicle/animal OR detail face/plate). */
221
329
  export interface ObjectDetection extends DetectionBase {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.157",
3
+ "version": "1.2.159",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",