@camstack/types 1.2.64 → 1.2.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/air-quality-sensor.cap.d.ts +10 -0
  4. package/dist/capabilities/alarm-panel.cap.d.ts +10 -0
  5. package/dist/capabilities/ambient-light-sensor.cap.d.ts +10 -0
  6. package/dist/capabilities/audio-metrics.cap.d.ts +7 -0
  7. package/dist/capabilities/automation-control.cap.d.ts +7 -0
  8. package/dist/capabilities/battery.cap.d.ts +10 -0
  9. package/dist/capabilities/binary.cap.d.ts +10 -0
  10. package/dist/capabilities/brightness.cap.d.ts +7 -0
  11. package/dist/capabilities/camera-streams.cap.d.ts +7 -0
  12. package/dist/capabilities/capability-definition.d.ts +58 -0
  13. package/dist/capabilities/carbon-monoxide.cap.d.ts +10 -0
  14. package/dist/capabilities/climate-control.cap.d.ts +7 -0
  15. package/dist/capabilities/color.cap.d.ts +7 -0
  16. package/dist/capabilities/connectivity.cap.d.ts +10 -0
  17. package/dist/capabilities/consumables.cap.d.ts +7 -0
  18. package/dist/capabilities/contact.cap.d.ts +10 -0
  19. package/dist/capabilities/control.cap.d.ts +7 -0
  20. package/dist/capabilities/cover.cap.d.ts +10 -0
  21. package/dist/capabilities/day-night.cap.d.ts +10 -0
  22. package/dist/capabilities/device-discovery.cap.d.ts +7 -0
  23. package/dist/capabilities/device-status.cap.d.ts +10 -0
  24. package/dist/capabilities/doorbell.cap.d.ts +7 -0
  25. package/dist/capabilities/enum-sensor.cap.d.ts +10 -0
  26. package/dist/capabilities/event-emitter.cap.d.ts +7 -0
  27. package/dist/capabilities/fan-control.cap.d.ts +7 -0
  28. package/dist/capabilities/feature-probe.cap.d.ts +7 -0
  29. package/dist/capabilities/flood.cap.d.ts +10 -0
  30. package/dist/capabilities/gas.cap.d.ts +10 -0
  31. package/dist/capabilities/humidifier.cap.d.ts +7 -0
  32. package/dist/capabilities/humidity-sensor.cap.d.ts +10 -0
  33. package/dist/capabilities/image-settings.cap.d.ts +10 -0
  34. package/dist/capabilities/image.cap.d.ts +7 -0
  35. package/dist/capabilities/index.d.ts +3 -3
  36. package/dist/capabilities/lawn-mower-control.cap.d.ts +7 -0
  37. package/dist/capabilities/lock-control.cap.d.ts +10 -0
  38. package/dist/capabilities/media-player.cap.d.ts +7 -0
  39. package/dist/capabilities/motion-trigger.cap.d.ts +7 -0
  40. package/dist/capabilities/motion-zones.cap.d.ts +10 -0
  41. package/dist/capabilities/motion.cap.d.ts +7 -0
  42. package/dist/capabilities/native-object-detection.cap.d.ts +10 -0
  43. package/dist/capabilities/notification-output.cap.d.ts +16 -0
  44. package/dist/capabilities/notification-rules.cap.d.ts +35 -3
  45. package/dist/capabilities/notifier.cap.d.ts +7 -0
  46. package/dist/capabilities/numeric-sensor.cap.d.ts +10 -0
  47. package/dist/capabilities/osd-manager.cap.d.ts +2 -0
  48. package/dist/capabilities/pet-feeder.cap.d.ts +7 -0
  49. package/dist/capabilities/power-meter.cap.d.ts +10 -0
  50. package/dist/capabilities/presence.cap.d.ts +10 -0
  51. package/dist/capabilities/pressure-sensor.cap.d.ts +10 -0
  52. package/dist/capabilities/privacy-mask.cap.d.ts +10 -0
  53. package/dist/capabilities/ptz-autotrack.cap.d.ts +7 -0
  54. package/dist/capabilities/recording-export.cap.d.ts +17 -6
  55. package/dist/capabilities/scene-monitor.cap.d.ts +7 -0
  56. package/dist/capabilities/script-runner.cap.d.ts +7 -0
  57. package/dist/capabilities/smoke.cap.d.ts +10 -0
  58. package/dist/capabilities/stream-params.cap.d.ts +10 -0
  59. package/dist/capabilities/switch.cap.d.ts +10 -0
  60. package/dist/capabilities/tamper.cap.d.ts +10 -0
  61. package/dist/capabilities/temperature-sensor.cap.d.ts +10 -0
  62. package/dist/capabilities/update.cap.d.ts +7 -0
  63. package/dist/capabilities/vacuum-control.cap.d.ts +7 -0
  64. package/dist/capabilities/valve.cap.d.ts +7 -0
  65. package/dist/capabilities/vibration.cap.d.ts +10 -0
  66. package/dist/capabilities/water-heater.cap.d.ts +7 -0
  67. package/dist/capabilities/weather.cap.d.ts +7 -0
  68. package/dist/capabilities/zone-analytics.cap.d.ts +7 -0
  69. package/dist/capabilities/zone-rules.cap.d.ts +7 -0
  70. package/dist/capabilities/zones.cap.d.ts +7 -0
  71. package/dist/generated/runtime-state-durability.d.ts +31 -0
  72. package/dist/index.d.ts +4 -1
  73. package/dist/index.js +1292 -118
  74. package/dist/index.mjs +1267 -117
  75. package/dist/notification/audio-condition.d.ts +118 -0
  76. package/dist/pipeline/native-lease.d.ts +36 -19
  77. package/dist/{sleep-BxjBLp3L.mjs → sleep-CSgK0rNX.mjs} +3 -1
  78. package/dist/{sleep-BszXLEvP.js → sleep-Dh1EJSqF.js} +8 -0
  79. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as EventCategory } from "./event-category-Cv9dO26A.mjs";
2
- import { $ as FrameHandleSchema, A as method, B as readinessKey, C as DeviceType, Ct as collectHydratedFieldEntries, D as event, E as DEVICE_STATUS_METHOD, Et as resolveHydratedFieldValue, F as readNodePin, G as CamProfileSchema, H as BrokerStatsSchema, I as toNodeId, J as CameraStreamSchema, K as CamStreamKindSchema, L as ReadinessRegistry, M as systemMethod, N as CAP_NODE_PIN_CONTEXT_KEY, O as expandCapMethods, P as nodePin, Q as FrameHandleFormatSchema, R as ReadinessTimeoutError, S as DeviceRole, St as WELL_KNOWN_TAB_MAP, T as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Tt as hydrateSchema, U as BrokerStatusSchema, V as scopeKey, W as CAM_PROFILE_ORDER, X as DecodedFrameSchema, Y as DecodedAudioChunkSchema, Z as EncodedPacketSchema, _ as RawStateResultSchema, _t as createDurableState, a as asJsonObject, at as SubscribeAudioChunksInputSchema, b as ChargingStatus, bt as isEvent, c as parseJsonArray, ct as SubscribeFramesResultSchema, d as DEVICE_SCOPED_CAPS, dt as parseProfileBrokerId, et as ProfileRtspEntrySchema, f as isDeviceScopedCap, ft as selectAssignedProfileSlots, g as createSliceHandle, gt as normalizeAddonInitResult, h as createMirrorSource, ht as BaseAddon, i as asJsonArray, it as StreamSourceSchema, j as resolveCapMount, k as isDeviceConfigCap, l as parseJsonObject, lt as makeProfileBrokerId, m as createLazyTrpcSource, mt as DisposerChain, n as sleepCancellable, nt as ProfileSlotStatusSchema, o as asNumber, ot as SubscribeAudioChunksResultSchema, p as createDeviceProxy, pt as DATAPLANE_SECRET_HEADER, q as CamStreamResolutionSchema, r as asBoolean, rt as StreamSourceEntrySchema, s as asString, st as SubscribeFramesInputSchema, t as sleep, tt as ProfileSlotSchema, u as parseJsonUnknown, ut as makeSourceBrokerId, v as deviceOpsCapability, vt as createEvent, w as adminUiCapability, wt as collectHydratedFieldValues, x as DeviceFeature, xt as WELL_KNOWN_TABS, y as viewerUiCapability, yt as emitReadiness, z as emitDownForOwnedCaps } from "./sleep-BxjBLp3L.mjs";
2
+ import { $ as FrameHandleFormatSchema, A as isDeviceConfigCap, B as emitDownForOwnedCaps, C as DeviceType, Ct as WELL_KNOWN_TAB_MAP, D as DEVICE_STATUS_METHOD, Dt as resolveHydratedFieldValue, E as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Et as hydrateSchema, F as nodePin, G as CAM_PROFILE_ORDER, H as scopeKey, I as readNodePin, J as CamStreamResolutionSchema, K as CamProfileSchema, L as toNodeId, M as resolveCapMount, N as systemMethod, O as event, P as CAP_NODE_PIN_CONTEXT_KEY, Q as EncodedPacketSchema, R as ReadinessRegistry, S as DeviceRole, St as WELL_KNOWN_TABS, T as DEFAULT_RUNTIME_STATE_DURABILITY, Tt as collectHydratedFieldValues, U as BrokerStatsSchema, V as readinessKey, W as BrokerStatusSchema, X as DecodedAudioChunkSchema, Y as CameraStreamSchema, Z as DecodedFrameSchema, _ as RawStateResultSchema, _t as normalizeAddonInitResult, a as asJsonObject, at as StreamSourceSchema, b as ChargingStatus, bt as emitReadiness, c as parseJsonArray, ct as SubscribeFramesInputSchema, d as DEVICE_SCOPED_CAPS, dt as makeSourceBrokerId, et as FrameHandleSchema, f as isDeviceScopedCap, ft as parseProfileBrokerId, g as createSliceHandle, gt as BaseAddon, h as createMirrorSource, ht as DisposerChain, i as asJsonArray, it as StreamSourceEntrySchema, j as method, k as expandCapMethods, l as parseJsonObject, lt as SubscribeFramesResultSchema, m as createLazyTrpcSource, mt as DATAPLANE_SECRET_HEADER, n as sleepCancellable, nt as ProfileSlotSchema, o as asNumber, ot as SubscribeAudioChunksInputSchema, p as createDeviceProxy, pt as selectAssignedProfileSlots, q as CamStreamKindSchema, r as asBoolean, rt as ProfileSlotStatusSchema, s as asString, st as SubscribeAudioChunksResultSchema, t as sleep, tt as ProfileRtspEntrySchema, u as parseJsonUnknown, ut as makeProfileBrokerId, v as deviceOpsCapability, vt as createDurableState, w as adminUiCapability, wt as collectHydratedFieldEntries, x as DeviceFeature, xt as isEvent, y as viewerUiCapability, yt as createEvent, z as ReadinessTimeoutError } from "./sleep-CSgK0rNX.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";
@@ -6663,7 +6663,14 @@ var cameraStreamsCapability = {
6663
6663
  low: z.string().optional()
6664
6664
  }),
6665
6665
  lastChangedAt: z.number()
6666
- })
6666
+ }),
6667
+ /**
6668
+ * Runtime-state durability: **session** — a restored `slotStatuses: streaming` for a camera that has been dark for two hours is a lie the UI renders as truth.
6669
+ *
6670
+ * See `RuntimeStateDurability`. Enforced by
6671
+ * `scripts/check-runtime-state-durability.ts`.
6672
+ */
6673
+ durability: "session"
6667
6674
  };
6668
6675
  //#endregion
6669
6676
  //#region src/capabilities/cap-router-predicates.ts
@@ -7830,6 +7837,13 @@ var deviceDiscoveryCapability = {
7830
7837
  kind: "poll"
7831
7838
  },
7832
7839
  runtimeState: DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: z.number().int().nonnegative() }),
7840
+ /**
7841
+ * Runtime-state durability: **session** — 5.7 KB of scan output on the largest device, fully re-derivable by re-scanning.
7842
+ *
7843
+ * See `RuntimeStateDurability`. Enforced by
7844
+ * `scripts/check-runtime-state-durability.ts`.
7845
+ */
7846
+ durability: "session",
7833
7847
  methods: {
7834
7848
  /**
7835
7849
  * Snapshot of the current `discovered` list. Returns the
@@ -10482,7 +10496,23 @@ var NotificationActionSchema = z.object({
10482
10496
  * else — see `notification-center/action-token.ts` for what that does and
10483
10497
  * does not buy.
10484
10498
  */
10485
- destructive: z.boolean().optional()
10499
+ destructive: z.boolean().optional(),
10500
+ /**
10501
+ * How the tap should REACH the url.
10502
+ *
10503
+ * `navigate` (absent, and every button authored before this field) opens it:
10504
+ * the phone leaves the notification and shows whatever the callback returns.
10505
+ * That is right for a button whose answer the operator wants to read.
10506
+ *
10507
+ * `background` fires it as a POST and stays put. It exists for the buttons
10508
+ * whose whole point is not to interrupt — "silence this for 30 minutes" is
10509
+ * an answer to the notification, and being thrown into a browser tab to
10510
+ * confirm it costs more attention than the notification did. A backend that
10511
+ * cannot do a background call renders it as an ordinary link (the adapters
10512
+ * fall back rather than dropping the button), so this is a preference, never
10513
+ * a requirement.
10514
+ */
10515
+ mode: z.enum(["navigate", "background"]).optional()
10486
10516
  });
10487
10517
  /**
10488
10518
  * The canonical notification. `body` is the only hard field (Apprise model).
@@ -11725,7 +11755,17 @@ var alarmPanelCapability = {
11725
11755
  * full slice; renders an arm button per `availableModes` entry and
11726
11756
  * a PIN field iff `requiresCode === true`.
11727
11757
  */
11728
- runtimeState: AlarmPanelStatusSchema
11758
+ runtimeState: AlarmPanelStatusSchema,
11759
+ /**
11760
+ * Runtime-state durability: **restored** — armed state is the one thing a panel must not lose across a restart.
11761
+ *
11762
+ * See `RuntimeStateDurability`. Enforced by
11763
+ * `scripts/check-runtime-state-durability.ts`.
11764
+ */
11765
+ durability: "restored",
11766
+ /** Clock fields: written, but excluded from the compare that decides
11767
+ * whether persisting is worth a SQLite commit. */
11768
+ volatileStateFields: ["lastChangedAt"]
11729
11769
  };
11730
11770
  //#endregion
11731
11771
  //#region src/capabilities/mask-shape.ts
@@ -11933,6 +11973,26 @@ var NcSystemEventConditionSchema = z.object({
11933
11973
  * unique key `(ruleId, trackId, targetId)`. Not a rule field in P1.
11934
11974
  */
11935
11975
  var NC_MAX_PER_TRACK_IMMEDIATE = 1;
11976
+ /** Hard ceiling on a window (24h). A snooze that could not expire would be an
11977
+ * outage the operator asked for once and forgot. */
11978
+ var NC_SNOOZE_MAX_MINUTES = 1440;
11979
+ /**
11980
+ * The durations a notification offers when its rule does not say otherwise.
11981
+ *
11982
+ * MINUTES, and short ones: a snooze button is answered on a lock screen, and
11983
+ * the three choices that fit there are "the next few minutes", "the next half
11984
+ * hour" and "the next hour". Anything longer is a decision somebody sits down
11985
+ * to make, which is what the app's own snooze surface is for.
11986
+ *
11987
+ * Resolved in CODE (`snoozeChoices`), never as a Zod default — see
11988
+ * {@link NcRuleInputSchema.shape.snoozeOptions} for why the distinction is
11989
+ * load-bearing.
11990
+ */
11991
+ var NC_DEFAULT_SNOOZE_MINUTES = [
11992
+ 10,
11993
+ 30,
11994
+ 60
11995
+ ];
11936
11996
  /** One weekly activation window. `startMinute > endMinute` crosses midnight. */
11937
11997
  var NcScheduleWindowSchema = z.object({
11938
11998
  /** Days of week the window STARTS on (0 = Sunday … 6 = Saturday). */
@@ -12334,15 +12394,15 @@ var NcConditionsSchema = z.object({
12334
12394
  * (an `immediate` rule naming an `audio-*` class, one notification per
12335
12395
  * classified sample) stays exactly as it was for rules that already use it.
12336
12396
  *
12337
- * NOT in {@link NC_CONDITION_CATALOG} yet, and that is the sequencing rule
12338
- * rather than an oversight: the viewer mirrors the descriptor enums BY HAND
12339
- * (`camstack/src/data/notification-center.ts`, guarded by
12340
- * `scripts/check-viewer-condition-mirror.ts`) and its rule editor STRIPS the
12397
+ * In {@link NC_CONDITION_CATALOG} since P2, and the ORDER it got there is the
12398
+ * rule rather than an accident: the viewer mirrors the descriptor enums BY
12399
+ * HAND (`camstack/src/data/notification-center.ts`, guarded by
12400
+ * `scripts/check-viewer-condition-mirror.ts`) and its rule editor strips the
12341
12401
  * condition fields it does not know when a rule is saved from the phone.
12342
12402
  * Publishing an editor for a condition the app cannot round-trip is how an
12343
- * operator loses a rule's conditions by opening it — so the descriptor, the
12344
- * admin widget and the viewer mirror land together (P2 + P3), and only then
12345
- * does an audio rule become authorable.
12403
+ * operator loses a rule's conditions by opening it — so the viewer mirror
12404
+ * (P3, shipped) went FIRST, and the descriptor an editor renders from
12405
+ * follows here.
12346
12406
  */
12347
12407
  audio: NcAudioConditionSchema.optional()
12348
12408
  });
@@ -12579,6 +12639,30 @@ var NcRuleInputSchema = z.object({
12579
12639
  */
12580
12640
  snoozeAllowGlobal: z.boolean().optional(),
12581
12641
  /**
12642
+ * The snooze durations THIS rule's notification offers as buttons, in
12643
+ * minutes.
12644
+ *
12645
+ * Three states, and all three are distinct — which is exactly why this is
12646
+ * `.optional()` and never `.default()`. A Zod default does not run on the
12647
+ * addon cap path (three production failures in one day), so a schema default
12648
+ * would collapse the first two:
12649
+ *
12650
+ * | value | meaning |
12651
+ * | --- | --- |
12652
+ * | absent | the operator never said ⇒ {@link NC_DEFAULT_SNOOZE_MINUTES} |
12653
+ * | `[]` | **no snooze buttons on this rule** — the explicit override |
12654
+ * | a list | these choices, de-duplicated and sorted, at most four |
12655
+ *
12656
+ * `.max(4)` because the notifier's own action budget is small (ntfy allows
12657
+ * three buttons in total) and a rule that spent it all on snooze choices
12658
+ * would push its own tap-through actions off the notification.
12659
+ *
12660
+ * An empty list is NOT an alarm exemption: a rule the alarm is about, or
12661
+ * that arms the panel, is exempt automatically and cannot be silenced by a
12662
+ * window from anywhere (D133).
12663
+ */
12664
+ snoozeOptions: z.array(z.number().int().min(1).max(NC_SNOOZE_MAX_MINUTES)).max(4).optional(),
12665
+ /**
12582
12666
  * Devices this rule ACTUATES — arm the alarm, open a gate, turn on a light.
12583
12667
  *
12584
12668
  * This is what makes the rule set the alarm's trigger set without the alarm
@@ -12678,6 +12762,7 @@ var NcConditionDescriptorSchema = z.object({
12678
12762
  "device",
12679
12763
  "package",
12680
12764
  "occupancy",
12765
+ "audio",
12681
12766
  "system"
12682
12767
  ]),
12683
12768
  label: z.string(),
@@ -12696,6 +12781,7 @@ var NcConditionDescriptorSchema = z.object({
12696
12781
  "crossingSelect",
12697
12782
  "polygonDraw",
12698
12783
  "occupancy",
12784
+ "audio",
12699
12785
  "deviceState",
12700
12786
  "systemEvent"
12701
12787
  ]),
@@ -13093,6 +13179,16 @@ var NC_CONDITION_CATALOG = [
13093
13179
  phase: "P1",
13094
13180
  description: "ZoneAnalytics occupancy edge (optionally zone/class-scoped): count crosses the threshold and holds for sustainSeconds. Fail-closed on a missing snapshot."
13095
13181
  },
13182
+ {
13183
+ id: "audio",
13184
+ group: "audio",
13185
+ label: "Sound",
13186
+ valueType: "audio",
13187
+ operator: "anyOf",
13188
+ appliesTo: ["immediate"],
13189
+ phase: "P2",
13190
+ description: "Fires when at least hitPercent% of the samples in a samplingSeconds window are hits — a hit clears the dBFS floor AND carries one of the chosen sounds. Both filters are optional and independent, but naming NEITHER never matches: every sample would be a hit, so the engine refuses rather than notifying on silence. dBFS is negative-going (0 = full scale, -96 = silence)."
13191
+ },
13096
13192
  {
13097
13193
  id: "customZones",
13098
13194
  group: "zones",
@@ -13228,9 +13324,6 @@ var NcSnoozeScopeSchema = z.enum([
13228
13324
  "device",
13229
13325
  "all"
13230
13326
  ]);
13231
- /** Hard ceiling on a window (24h). A snooze that could not expire would be an
13232
- * outage the operator asked for once and forgot. */
13233
- var NC_SNOOZE_MAX_MINUTES = 1440;
13234
13327
  /**
13235
13328
  * Client-authored snooze. The server stamps `userId`, `startedAt` and
13236
13329
  * `expiresAt` — a DURATION is sent rather than an instant so a client with a
@@ -13243,6 +13336,19 @@ var NcSnoozeInputSchema = z.object({
13243
13336
  ruleId: z.string().optional(),
13244
13337
  /** Required when `scope: 'device'`. */
13245
13338
  deviceId: z.number().int().optional(),
13339
+ /**
13340
+ * Narrow the window to these subject classes — "the cat, not the person".
13341
+ *
13342
+ * ORTHOGONAL to `scope`, deliberately, and absent means EVERY class: that is
13343
+ * what every window authored before this field meant, so no persisted row
13344
+ * changes meaning and no client has to learn anything to keep working.
13345
+ *
13346
+ * It is what makes the window's real key `(deviceId, classes[])` and lets it
13347
+ * cross rules (D133): the operator points at a camera and a kind of thing,
13348
+ * not at whichever of their four rules happened to produce the notification
13349
+ * they are dismissing.
13350
+ */
13351
+ classes: z.array(z.string().min(1)).min(1).optional(),
13246
13352
  durationMinutes: z.number().int().min(1).max(NC_SNOOZE_MAX_MINUTES),
13247
13353
  /**
13248
13354
  * Silence this for EVERY recipient, not just the caller. Permission is
@@ -13268,6 +13374,10 @@ var NcSnoozeSchema = z.object({
13268
13374
  scope: NcSnoozeScopeSchema,
13269
13375
  ruleId: z.string().optional(),
13270
13376
  deviceId: z.number().int().optional(),
13377
+ /** Subject classes this window covers. ABSENT = every class — see
13378
+ * {@link NcSnoozeInputSchema.shape.classes}. Lives in the JSON blob and has
13379
+ * no SQLite column: nothing queries a window by class. */
13380
+ classes: z.array(z.string().min(1)).min(1).optional(),
13271
13381
  startedAt: z.number(),
13272
13382
  /** Exclusive: at exactly this instant the snooze is over. Expiry is a
13273
13383
  * COMPARISON, not a job — no sweeper can leave the operator silenced. */
@@ -16060,7 +16170,14 @@ var zonesCapability = {
16060
16170
  * handle. Slice shape is `{ zones: Zone[] }` so future extensions
16061
16171
  * (e.g. zone groupings) can sit alongside the polygon list.
16062
16172
  */
16063
- runtimeState: z.object({ zones: z.array(ZoneSchema).readonly() })
16173
+ runtimeState: z.object({ zones: z.array(ZoneSchema).readonly() }),
16174
+ /**
16175
+ * Runtime-state durability: **restored** — written only on operator mutation, so a camera that never had one has nothing to re-derive from. This is the slice `zone-mirror-hydration.ts` exists to paper over.
16176
+ *
16177
+ * See `RuntimeStateDurability`. Enforced by
16178
+ * `scripts/check-runtime-state-durability.ts`.
16179
+ */
16180
+ durability: "restored"
16064
16181
  };
16065
16182
  //#endregion
16066
16183
  //#region src/capabilities/pipeline-runner.cap.ts
@@ -20267,7 +20384,17 @@ var airQualitySensorCapability = {
20267
20384
  schema: AirQualitySensorStatusSchema,
20268
20385
  kind: "push"
20269
20386
  },
20270
- runtimeState: AirQualitySensorStatusSchema
20387
+ runtimeState: AirQualitySensorStatusSchema,
20388
+ /**
20389
+ * Runtime-state durability: **restored** — as `numeric-sensor`.
20390
+ *
20391
+ * See `RuntimeStateDurability`. Enforced by
20392
+ * `scripts/check-runtime-state-durability.ts`.
20393
+ */
20394
+ durability: "restored",
20395
+ /** Clock fields: written, but excluded from the compare that decides
20396
+ * whether persisting is worth a SQLite commit. */
20397
+ volatileStateFields: ["lastFetchedAt"]
20271
20398
  };
20272
20399
  //#endregion
20273
20400
  //#region src/capabilities/ambient-light-sensor.cap.ts
@@ -20301,7 +20428,17 @@ var ambientLightSensorCapability = {
20301
20428
  schema: AmbientLightSensorStatusSchema,
20302
20429
  kind: "push"
20303
20430
  },
20304
- runtimeState: AmbientLightSensorStatusSchema
20431
+ runtimeState: AmbientLightSensorStatusSchema,
20432
+ /**
20433
+ * Runtime-state durability: **restored** — as `numeric-sensor`.
20434
+ *
20435
+ * See `RuntimeStateDurability`. Enforced by
20436
+ * `scripts/check-runtime-state-durability.ts`.
20437
+ */
20438
+ durability: "restored",
20439
+ /** Clock fields: written, but excluded from the compare that decides
20440
+ * whether persisting is worth a SQLite commit. */
20441
+ volatileStateFields: ["lastFetchedAt"]
20305
20442
  };
20306
20443
  //#endregion
20307
20444
  //#region src/capabilities/audio-metrics.cap.ts
@@ -20430,7 +20567,14 @@ var audioMetricsCapability = {
20430
20567
  }), AudioMetricsHistorySchema)
20431
20568
  },
20432
20569
  /** Reactive runtime-state mirror — live `device.state.audioMetrics.value`. */
20433
- runtimeState: AudioMetricsSnapshotSchema
20570
+ runtimeState: AudioMetricsSnapshotSchema,
20571
+ /**
20572
+ * Runtime-state durability: **session** — 1 Hz per camera at the mirror and ~63 % of the fleet's whole runtime-state write rate. `avgDbfs` is a rolling 60 s mean that genuinely moves every second, so no equality fix reclaims it — and a two-hour-old dB reading rendered as current is worse than no reading.
20573
+ *
20574
+ * See `RuntimeStateDurability`. Enforced by
20575
+ * `scripts/check-runtime-state-durability.ts`.
20576
+ */
20577
+ durability: "session"
20434
20578
  };
20435
20579
  //#endregion
20436
20580
  //#region src/capabilities/automation-control.cap.ts
@@ -20494,7 +20638,14 @@ var automationControlCapability = {
20494
20638
  * reads `enabled` (toggle) + `isRunning` (spinner) + `lastError`
20495
20639
  * (badge) directly.
20496
20640
  */
20497
- runtimeState: AutomationControlStatusSchema
20641
+ runtimeState: AutomationControlStatusSchema,
20642
+ /**
20643
+ * Runtime-state durability: **session** — the authority for an automation being enabled is the automation store; a restored `isRunning` would be a lie. D62: one authority per switch.
20644
+ *
20645
+ * See `RuntimeStateDurability`. Enforced by
20646
+ * `scripts/check-runtime-state-durability.ts`.
20647
+ */
20648
+ durability: "session"
20498
20649
  };
20499
20650
  //#endregion
20500
20651
  //#region src/capabilities/battery.cap.ts
@@ -20602,7 +20753,17 @@ onStatusChanged: { data: z.object({
20602
20753
  * via `device.runtimeState.getCapState('battery')` regardless of
20603
20754
  * the underlying driver.
20604
20755
  */
20605
- runtimeState: BatteryStatusSchema
20756
+ runtimeState: BatteryStatusSchema,
20757
+ /**
20758
+ * Runtime-state durability: **restored** — a sleeping battery camera may not report for hours; the restored percentage is the only thing the UI and the sleep gate have. Zero churn once `lastUpdated` is excluded — 526 writes, 0 value changes, in 25 minutes.
20759
+ *
20760
+ * See `RuntimeStateDurability`. Enforced by
20761
+ * `scripts/check-runtime-state-durability.ts`.
20762
+ */
20763
+ durability: "restored",
20764
+ /** Clock fields: written, but excluded from the compare that decides
20765
+ * whether persisting is worth a SQLite commit. */
20766
+ volatileStateFields: ["lastUpdated"]
20606
20767
  };
20607
20768
  //#endregion
20608
20769
  //#region src/capabilities/binary.cap.ts
@@ -20633,7 +20794,17 @@ var binaryCapability = {
20633
20794
  schema: BinaryStatusSchema,
20634
20795
  kind: "push"
20635
20796
  },
20636
- runtimeState: BinaryStatusSchema
20797
+ runtimeState: BinaryStatusSchema,
20798
+ /**
20799
+ * Runtime-state durability: **restored** — transition-driven sensor state; the restored value gives the boot comparison.
20800
+ *
20801
+ * See `RuntimeStateDurability`. Enforced by
20802
+ * `scripts/check-runtime-state-durability.ts`.
20803
+ */
20804
+ durability: "restored",
20805
+ /** Clock fields: written, but excluded from the compare that decides
20806
+ * whether persisting is worth a SQLite commit. */
20807
+ volatileStateFields: ["lastChangedAt"]
20637
20808
  };
20638
20809
  //#endregion
20639
20810
  //#region src/capabilities/brightness.cap.ts
@@ -20688,7 +20859,14 @@ onBrightnessChanged: { data: z.object({
20688
20859
  * by the kernel. Read via `device.state.brightness.value` so UI
20689
20860
  * sliders surface the current level without polling the provider.
20690
20861
  */
20691
- runtimeState: BrightnessStatusSchema
20862
+ runtimeState: BrightnessStatusSchema,
20863
+ /**
20864
+ * Runtime-state durability: **session** — live lamp state, re-published by the provider on connect.
20865
+ *
20866
+ * See `RuntimeStateDurability`. Enforced by
20867
+ * `scripts/check-runtime-state-durability.ts`.
20868
+ */
20869
+ durability: "session"
20692
20870
  };
20693
20871
  //#endregion
20694
20872
  //#region src/capabilities/button.cap.ts
@@ -20823,7 +21001,17 @@ var carbonMonoxideCapability = {
20823
21001
  schema: CarbonMonoxideStatusSchema,
20824
21002
  kind: "push"
20825
21003
  },
20826
- runtimeState: CarbonMonoxideStatusSchema
21004
+ runtimeState: CarbonMonoxideStatusSchema,
21005
+ /**
21006
+ * Runtime-state durability: **restored** — as `smoke`.
21007
+ *
21008
+ * See `RuntimeStateDurability`. Enforced by
21009
+ * `scripts/check-runtime-state-durability.ts`.
21010
+ */
21011
+ durability: "restored",
21012
+ /** Clock fields: written, but excluded from the compare that decides
21013
+ * whether persisting is worth a SQLite commit. */
21014
+ volatileStateFields: ["lastChangedAt"]
20827
21015
  };
20828
21016
  //#endregion
20829
21017
  //#region src/capabilities/climate-control.cap.ts
@@ -20985,7 +21173,14 @@ var climateControlCapability = {
20985
21173
  * the full slice via `device.state.climate-control.value` and refresh
20986
21174
  * on every push without re-querying the provider.
20987
21175
  */
20988
- runtimeState: ClimateControlStatusSchema
21176
+ runtimeState: ClimateControlStatusSchema,
21177
+ /**
21178
+ * Runtime-state durability: **session** — as `brightness`; `currentTemp` moves continuously and is re-published on connect.
21179
+ *
21180
+ * See `RuntimeStateDurability`. Enforced by
21181
+ * `scripts/check-runtime-state-durability.ts`.
21182
+ */
21183
+ durability: "session"
20989
21184
  };
20990
21185
  //#endregion
20991
21186
  //#region src/capabilities/color.cap.ts
@@ -21097,7 +21292,14 @@ onColorChanged: { data: z.object({
21097
21292
  * kernel. Read via `device.state.color.value` so UI pickers surface
21098
21293
  * the current chromaticity without polling the provider.
21099
21294
  */
21100
- runtimeState: ColorStatusSchema
21295
+ runtimeState: ColorStatusSchema,
21296
+ /**
21297
+ * Runtime-state durability: **session** — as `brightness`.
21298
+ *
21299
+ * See `RuntimeStateDurability`. Enforced by
21300
+ * `scripts/check-runtime-state-durability.ts`.
21301
+ */
21302
+ durability: "session"
21101
21303
  };
21102
21304
  //#endregion
21103
21305
  //#region src/capabilities/connection-test.cap.ts
@@ -21221,7 +21423,17 @@ var connectivityCapability = {
21221
21423
  schema: ConnectivityStatusSchema,
21222
21424
  kind: "push"
21223
21425
  },
21224
- runtimeState: ConnectivityStatusSchema
21426
+ runtimeState: ConnectivityStatusSchema,
21427
+ /**
21428
+ * Runtime-state durability: **restored** — same shape and same argument as `device-status`, for links rather than devices.
21429
+ *
21430
+ * See `RuntimeStateDurability`. Enforced by
21431
+ * `scripts/check-runtime-state-durability.ts`.
21432
+ */
21433
+ durability: "restored",
21434
+ /** Clock fields: written, but excluded from the compare that decides
21435
+ * whether persisting is worth a SQLite commit. */
21436
+ volatileStateFields: ["lastChangedAt"]
21225
21437
  };
21226
21438
  //#endregion
21227
21439
  //#region src/capabilities/consumables.cap.ts
@@ -21305,7 +21517,14 @@ reset: method(z.object({
21305
21517
  }
21306
21518
  }
21307
21519
  },
21308
- runtimeState: ConsumablesStatusSchema.extend({ lastFetchedAt: z.number() })
21520
+ runtimeState: ConsumablesStatusSchema.extend({ lastFetchedAt: z.number() }),
21521
+ /**
21522
+ * Runtime-state durability: **session** — the authority is the appliance; the provider re-reads the whole item array on connect.
21523
+ *
21524
+ * See `RuntimeStateDurability`. Enforced by
21525
+ * `scripts/check-runtime-state-durability.ts`.
21526
+ */
21527
+ durability: "session"
21309
21528
  };
21310
21529
  //#endregion
21311
21530
  //#region src/capabilities/contact.cap.ts
@@ -21338,7 +21557,17 @@ var contactCapability = {
21338
21557
  schema: ContactStatusSchema,
21339
21558
  kind: "push"
21340
21559
  },
21341
- runtimeState: ContactStatusSchema
21560
+ runtimeState: ContactStatusSchema,
21561
+ /**
21562
+ * Runtime-state durability: **restored** — a door left open across a restart must still read open.
21563
+ *
21564
+ * See `RuntimeStateDurability`. Enforced by
21565
+ * `scripts/check-runtime-state-durability.ts`.
21566
+ */
21567
+ durability: "restored",
21568
+ /** Clock fields: written, but excluded from the compare that decides
21569
+ * whether persisting is worth a SQLite commit. */
21570
+ volatileStateFields: ["lastChangedAt"]
21342
21571
  };
21343
21572
  //#endregion
21344
21573
  //#region src/capabilities/control.cap.ts
@@ -21470,7 +21699,14 @@ var controlCapability = {
21470
21699
  * dropdown / text field / date picker) read the slice's discriminant
21471
21700
  * and value directly without polling the provider.
21472
21701
  */
21473
- runtimeState: ControlStatusSchema
21702
+ runtimeState: ControlStatusSchema,
21703
+ /**
21704
+ * Runtime-state durability: **session** — a generic control mirrors an external entity that re-publishes on connect; the options array is re-derived with it.
21705
+ *
21706
+ * See `RuntimeStateDurability`. Enforced by
21707
+ * `scripts/check-runtime-state-durability.ts`.
21708
+ */
21709
+ durability: "session"
21474
21710
  };
21475
21711
  //#endregion
21476
21712
  //#region src/capabilities/cover.cap.ts
@@ -21555,7 +21791,17 @@ var coverCapability = {
21555
21791
  * Runtime-state slice — mirrored by the kernel. UI controls watch
21556
21792
  * the slice for live position changes during a move.
21557
21793
  */
21558
- runtimeState: CoverStatusSchema
21794
+ runtimeState: CoverStatusSchema,
21795
+ /**
21796
+ * Runtime-state durability: **restored** — position survives a restart on the device; the mirror should agree at boot rather than read blank.
21797
+ *
21798
+ * See `RuntimeStateDurability`. Enforced by
21799
+ * `scripts/check-runtime-state-durability.ts`.
21800
+ */
21801
+ durability: "restored",
21802
+ /** Clock fields: written, but excluded from the compare that decides
21803
+ * whether persisting is worth a SQLite commit. */
21804
+ volatileStateFields: ["lastChangedAt"]
21559
21805
  };
21560
21806
  //#endregion
21561
21807
  //#region src/capabilities/day-night.cap.ts
@@ -21651,7 +21897,17 @@ var dayNightCapability = {
21651
21897
  schema: DayNightStatusSchema,
21652
21898
  kind: "poll"
21653
21899
  },
21654
- runtimeState: DayNightStatusSchema
21900
+ runtimeState: DayNightStatusSchema,
21901
+ /**
21902
+ * Runtime-state durability: **restored** — operator-set IR-cut behaviour; mutation-driven.
21903
+ *
21904
+ * See `RuntimeStateDurability`. Enforced by
21905
+ * `scripts/check-runtime-state-durability.ts`.
21906
+ */
21907
+ durability: "restored",
21908
+ /** Clock fields: written, but excluded from the compare that decides
21909
+ * whether persisting is worth a SQLite commit. */
21910
+ volatileStateFields: ["lastFetchedAt"]
21655
21911
  };
21656
21912
  //#endregion
21657
21913
  //#region src/capabilities/device-status.cap.ts
@@ -21700,7 +21956,17 @@ onStatusChanged: { data: z.object({
21700
21956
  schema: DeviceStatusSchema,
21701
21957
  kind: "push"
21702
21958
  },
21703
- runtimeState: DeviceStatusSchema
21959
+ runtimeState: DeviceStatusSchema,
21960
+ /**
21961
+ * Runtime-state durability: **restored** — the previous observation is what makes the first reading after a restart a COMPARISON instead of a phantom transition (D130). 32 real flips across 16 devices in 25 min — the busiest slice in the cold half.
21962
+ *
21963
+ * See `RuntimeStateDurability`. Enforced by
21964
+ * `scripts/check-runtime-state-durability.ts`.
21965
+ */
21966
+ durability: "restored",
21967
+ /** Clock fields: written, but excluded from the compare that decides
21968
+ * whether persisting is worth a SQLite commit. */
21969
+ volatileStateFields: ["lastChangedAt"]
21704
21970
  };
21705
21971
  //#endregion
21706
21972
  //#region src/capabilities/doorbell.cap.ts
@@ -21764,7 +22030,14 @@ onPressed: { data: DoorbellPressEventSchema } },
21764
22030
  * `device.state.doorbell.value`. UIs can show "last ring 5m ago"
21765
22031
  * without subscribing.
21766
22032
  */
21767
- runtimeState: DoorbellStatusSchema
22033
+ runtimeState: DoorbellStatusSchema,
22034
+ /**
22035
+ * Runtime-state durability: **restored** — a monotonic accumulator: the slice IS the record. `lastPressedAt` is content here, not a clock, so it is deliberately NOT volatile.
22036
+ *
22037
+ * See `RuntimeStateDurability`. Enforced by
22038
+ * `scripts/check-runtime-state-durability.ts`.
22039
+ */
22040
+ durability: "restored"
21768
22041
  };
21769
22042
  //#endregion
21770
22043
  //#region src/capabilities/enum-sensor.cap.ts
@@ -21806,7 +22079,17 @@ var enumSensorCapability = {
21806
22079
  schema: EnumSensorStatusSchema,
21807
22080
  kind: "push"
21808
22081
  },
21809
- runtimeState: EnumSensorStatusSchema
22082
+ runtimeState: EnumSensorStatusSchema,
22083
+ /**
22084
+ * Runtime-state durability: **restored** — as `numeric-sensor`; 80 devices.
22085
+ *
22086
+ * See `RuntimeStateDurability`. Enforced by
22087
+ * `scripts/check-runtime-state-durability.ts`.
22088
+ */
22089
+ durability: "restored",
22090
+ /** Clock fields: written, but excluded from the compare that decides
22091
+ * whether persisting is worth a SQLite commit. */
22092
+ volatileStateFields: ["lastFetchedAt"]
21810
22093
  };
21811
22094
  //#endregion
21812
22095
  //#region src/capabilities/event-emitter.cap.ts
@@ -21844,7 +22127,14 @@ var eventEmitterCapability = {
21844
22127
  schema: EventEmitterStatusSchema,
21845
22128
  kind: "push"
21846
22129
  },
21847
- runtimeState: EventEmitterStatusSchema
22130
+ runtimeState: EventEmitterStatusSchema,
22131
+ /**
22132
+ * Runtime-state durability: **session** — `eventCountSinceStart` names its own scope.
22133
+ *
22134
+ * See `RuntimeStateDurability`. Enforced by
22135
+ * `scripts/check-runtime-state-durability.ts`.
22136
+ */
22137
+ durability: "session"
21848
22138
  };
21849
22139
  //#endregion
21850
22140
  //#region src/capabilities/events.cap.ts
@@ -22167,7 +22457,14 @@ var fanControlCapability = {
22167
22457
  * Runtime-state slice — mirrored by the kernel. UI fan speed
22168
22458
  * sliders read `percentage` for live updates.
22169
22459
  */
22170
- runtimeState: FanControlStatusSchema
22460
+ runtimeState: FanControlStatusSchema,
22461
+ /**
22462
+ * Runtime-state durability: **session** — as `brightness`.
22463
+ *
22464
+ * See `RuntimeStateDurability`. Enforced by
22465
+ * `scripts/check-runtime-state-durability.ts`.
22466
+ */
22467
+ durability: "session"
22171
22468
  };
22172
22469
  //#endregion
22173
22470
  //#region src/capabilities/feature-probe.cap.ts
@@ -22245,7 +22542,14 @@ onProbeChanged: { data: z.object({
22245
22542
  schema: FeatureProbeStatusSchema,
22246
22543
  kind: "push"
22247
22544
  },
22248
- runtimeState: FeatureProbeStatusSchema
22545
+ runtimeState: FeatureProbeStatusSchema,
22546
+ /**
22547
+ * Runtime-state durability: **session** — per-session by definition — `lastProbedAt` means "this worker completed a probe THIS session", which is why the mirror seed already blanks it. Persisting it only creates something to blank.
22548
+ *
22549
+ * See `RuntimeStateDurability`. Enforced by
22550
+ * `scripts/check-runtime-state-durability.ts`.
22551
+ */
22552
+ durability: "session"
22249
22553
  };
22250
22554
  //#endregion
22251
22555
  //#region src/capabilities/flood.cap.ts
@@ -22274,7 +22578,17 @@ var floodCapability = {
22274
22578
  schema: FloodStatusSchema,
22275
22579
  kind: "push"
22276
22580
  },
22277
- runtimeState: FloodStatusSchema
22581
+ runtimeState: FloodStatusSchema,
22582
+ /**
22583
+ * Runtime-state durability: **restored** — as `smoke`.
22584
+ *
22585
+ * See `RuntimeStateDurability`. Enforced by
22586
+ * `scripts/check-runtime-state-durability.ts`.
22587
+ */
22588
+ durability: "restored",
22589
+ /** Clock fields: written, but excluded from the compare that decides
22590
+ * whether persisting is worth a SQLite commit. */
22591
+ volatileStateFields: ["lastChangedAt"]
22278
22592
  };
22279
22593
  //#endregion
22280
22594
  //#region src/capabilities/gas.cap.ts
@@ -22299,7 +22613,17 @@ var gasCapability = {
22299
22613
  schema: GasStatusSchema,
22300
22614
  kind: "push"
22301
22615
  },
22302
- runtimeState: GasStatusSchema
22616
+ runtimeState: GasStatusSchema,
22617
+ /**
22618
+ * Runtime-state durability: **restored** — as `smoke`.
22619
+ *
22620
+ * See `RuntimeStateDurability`. Enforced by
22621
+ * `scripts/check-runtime-state-durability.ts`.
22622
+ */
22623
+ durability: "restored",
22624
+ /** Clock fields: written, but excluded from the compare that decides
22625
+ * whether persisting is worth a SQLite commit. */
22626
+ volatileStateFields: ["lastChangedAt"]
22303
22627
  };
22304
22628
  //#endregion
22305
22629
  //#region src/capabilities/humidifier.cap.ts
@@ -22377,7 +22701,14 @@ var humidifierCapability = {
22377
22701
  * Runtime-state slice — mirrored by the kernel. UI controls watch the
22378
22702
  * slice for live humidity / mode changes.
22379
22703
  */
22380
- runtimeState: HumidifierStatusSchema
22704
+ runtimeState: HumidifierStatusSchema,
22705
+ /**
22706
+ * Runtime-state durability: **session** — as `climate-control`.
22707
+ *
22708
+ * See `RuntimeStateDurability`. Enforced by
22709
+ * `scripts/check-runtime-state-durability.ts`.
22710
+ */
22711
+ durability: "session"
22381
22712
  };
22382
22713
  //#endregion
22383
22714
  //#region src/capabilities/humidity-sensor.cap.ts
@@ -22415,7 +22746,17 @@ var humiditySensorCapability = {
22415
22746
  schema: HumiditySensorStatusSchema,
22416
22747
  kind: "push"
22417
22748
  },
22418
- runtimeState: HumiditySensorStatusSchema
22749
+ runtimeState: HumiditySensorStatusSchema,
22750
+ /**
22751
+ * Runtime-state durability: **restored** — as `numeric-sensor` (67 of 75 writes were the clock alone).
22752
+ *
22753
+ * See `RuntimeStateDurability`. Enforced by
22754
+ * `scripts/check-runtime-state-durability.ts`.
22755
+ */
22756
+ durability: "restored",
22757
+ /** Clock fields: written, but excluded from the compare that decides
22758
+ * whether persisting is worth a SQLite commit. */
22759
+ volatileStateFields: ["lastFetchedAt"]
22419
22760
  };
22420
22761
  //#endregion
22421
22762
  //#region src/capabilities/image.cap.ts
@@ -22455,7 +22796,14 @@ var imageCapability = {
22455
22796
  * Runtime-state slice — mirrored by the kernel. The UI reads `url`
22456
22797
  * directly and renders the still image.
22457
22798
  */
22458
- runtimeState: ImageStatusSchema
22799
+ runtimeState: ImageStatusSchema,
22800
+ /**
22801
+ * Runtime-state durability: **session** — a snapshot URL is a session-scoped handle; a restored one points at nothing.
22802
+ *
22803
+ * See `RuntimeStateDurability`. Enforced by
22804
+ * `scripts/check-runtime-state-durability.ts`.
22805
+ */
22806
+ durability: "session"
22459
22807
  };
22460
22808
  //#endregion
22461
22809
  //#region src/capabilities/image-settings.cap.ts
@@ -22606,7 +22954,17 @@ var imageSettingsCapability = {
22606
22954
  schema: ImageSettingsStatusSchema,
22607
22955
  kind: "poll"
22608
22956
  },
22609
- runtimeState: ImageSettingsStatusSchema
22957
+ runtimeState: ImageSettingsStatusSchema,
22958
+ /**
22959
+ * Runtime-state durability: **restored** — operator-set camera imaging; mutation-driven.
22960
+ *
22961
+ * See `RuntimeStateDurability`. Enforced by
22962
+ * `scripts/check-runtime-state-durability.ts`.
22963
+ */
22964
+ durability: "restored",
22965
+ /** Clock fields: written, but excluded from the compare that decides
22966
+ * whether persisting is worth a SQLite commit. */
22967
+ volatileStateFields: ["lastFetchedAt"]
22610
22968
  };
22611
22969
  //#endregion
22612
22970
  //#region src/capabilities/integrations.cap.ts
@@ -23021,7 +23379,14 @@ var lawnMowerControlCapability = {
23021
23379
  * Runtime-state slice — mirrored by the kernel. UI controls watch the
23022
23380
  * slice for live activity + battery changes.
23023
23381
  */
23024
- runtimeState: LawnMowerControlStatusSchema
23382
+ runtimeState: LawnMowerControlStatusSchema,
23383
+ /**
23384
+ * Runtime-state durability: **session** — as `vacuum-control`.
23385
+ *
23386
+ * See `RuntimeStateDurability`. Enforced by
23387
+ * `scripts/check-runtime-state-durability.ts`.
23388
+ */
23389
+ durability: "session"
23025
23390
  };
23026
23391
  //#endregion
23027
23392
  //#region src/capabilities/local-network.cap.ts
@@ -23328,7 +23693,17 @@ var lockControlCapability = {
23328
23693
  * read `state` and disable themselves during `locking`/`unlocking`
23329
23694
  * transitions.
23330
23695
  */
23331
- runtimeState: LockControlStatusSchema
23696
+ runtimeState: LockControlStatusSchema,
23697
+ /**
23698
+ * Runtime-state durability: **restored** — a lock left locked must still read locked.
23699
+ *
23700
+ * See `RuntimeStateDurability`. Enforced by
23701
+ * `scripts/check-runtime-state-durability.ts`.
23702
+ */
23703
+ durability: "restored",
23704
+ /** Clock fields: written, but excluded from the compare that decides
23705
+ * whether persisting is worth a SQLite commit. */
23706
+ volatileStateFields: ["lastChangedAt"]
23332
23707
  };
23333
23708
  //#endregion
23334
23709
  //#region src/capabilities/media-player.cap.ts
@@ -23492,7 +23867,14 @@ var mediaPlayerCapability = {
23492
23867
  * full slice for live now-playing, volume, and progress updates
23493
23868
  * without polling.
23494
23869
  */
23495
- runtimeState: MediaPlayerStatusSchema
23870
+ runtimeState: MediaPlayerStatusSchema,
23871
+ /**
23872
+ * Runtime-state durability: **session** — a restored transport position describes a playback that stopped when the hub did.
23873
+ *
23874
+ * See `RuntimeStateDurability`. Enforced by
23875
+ * `scripts/check-runtime-state-durability.ts`.
23876
+ */
23877
+ durability: "session"
23496
23878
  };
23497
23879
  //#endregion
23498
23880
  //#region src/capabilities/mesh-network.cap.ts
@@ -23821,7 +24203,14 @@ onMotionChanged: { data: MotionOnMotionChangedDataSchema } },
23821
24203
  * `device.state.motion.value`. Reads never invoke the provider, so
23822
24204
  * UIs and other addons can poll the cached state safely.
23823
24205
  */
23824
- runtimeState: MotionStatusSchema
24206
+ runtimeState: MotionStatusSchema,
24207
+ /**
24208
+ * Runtime-state durability: **session** — self-clearing by construction (`autoClearAfterMs`); a restored `detected: true` is a frozen event, and the next frame re-publishes the real one.
24209
+ *
24210
+ * See `RuntimeStateDurability`. Enforced by
24211
+ * `scripts/check-runtime-state-durability.ts`.
24212
+ */
24213
+ durability: "session"
23825
24214
  };
23826
24215
  //#endregion
23827
24216
  //#region src/capabilities/motion-trigger.cap.ts
@@ -23888,7 +24277,14 @@ var motionTriggerCapability = {
23888
24277
  schema: MotionTriggerStatusSchema,
23889
24278
  kind: "command-driven"
23890
24279
  },
23891
- runtimeState: MotionTriggerRuntimeStateSchema
24280
+ runtimeState: MotionTriggerRuntimeStateSchema,
24281
+ /**
24282
+ * Runtime-state durability: **session** — the authority for motion-trigger enablement is the provider's own config; the slice is a mirror of it, re-published on connect.
24283
+ *
24284
+ * See `RuntimeStateDurability`. Enforced by
24285
+ * `scripts/check-runtime-state-durability.ts`.
24286
+ */
24287
+ durability: "session"
23892
24288
  };
23893
24289
  //#endregion
23894
24290
  //#region src/capabilities/motion-zones.cap.ts
@@ -23957,7 +24353,17 @@ var motionZonesCapability = {
23957
24353
  schema: MotionZoneStatusSchema,
23958
24354
  kind: "poll"
23959
24355
  },
23960
- runtimeState: MotionZoneStatusSchema
24356
+ runtimeState: MotionZoneStatusSchema,
24357
+ /**
24358
+ * Runtime-state durability: **restored** — the 14 KB polygon list is the single largest slice on the fleet and has not changed since the operator drew it. Highest value per byte in the table.
24359
+ *
24360
+ * See `RuntimeStateDurability`. Enforced by
24361
+ * `scripts/check-runtime-state-durability.ts`.
24362
+ */
24363
+ durability: "restored",
24364
+ /** Clock fields: written, but excluded from the compare that decides
24365
+ * whether persisting is worth a SQLite commit. */
24366
+ volatileStateFields: ["lastFetchedAt"]
23961
24367
  };
23962
24368
  //#endregion
23963
24369
  //#region src/capabilities/native-object-detection.cap.ts
@@ -24033,7 +24439,17 @@ var nativeObjectDetectionCapability = {
24033
24439
  schema: NativeObjectDetectionStatusSchema,
24034
24440
  kind: "push"
24035
24441
  },
24036
- runtimeState: NativeObjectDetectionRuntimeStateSchema
24442
+ runtimeState: NativeObjectDetectionRuntimeStateSchema,
24443
+ /**
24444
+ * Runtime-state durability: **restored** — `enabled` is an operator toggle on a camera whose refresh is a no-op and whose staleMs is Infinity. There is no hardware value to re-read — losing it loses the setting.
24445
+ *
24446
+ * See `RuntimeStateDurability`. Enforced by
24447
+ * `scripts/check-runtime-state-durability.ts`.
24448
+ */
24449
+ durability: "restored",
24450
+ /** Clock fields: written, but excluded from the compare that decides
24451
+ * whether persisting is worth a SQLite commit. */
24452
+ volatileStateFields: ["lastFetchedAt"]
24037
24453
  };
24038
24454
  //#endregion
24039
24455
  //#region src/capabilities/network-quality.cap.ts
@@ -24426,7 +24842,14 @@ onSent: { data: z.object({
24426
24842
  * form reads `supports` to gate optional fields; history pane reads
24427
24843
  * `lastSentAt` / `lastError` / `queueDepth`.
24428
24844
  */
24429
- runtimeState: NotifierStatusSchema
24845
+ runtimeState: NotifierStatusSchema,
24846
+ /**
24847
+ * Runtime-state durability: **session** — live queue depth and last-send state; a restored queue depth describes a queue that no longer exists.
24848
+ *
24849
+ * See `RuntimeStateDurability`. Enforced by
24850
+ * `scripts/check-runtime-state-durability.ts`.
24851
+ */
24852
+ durability: "session"
24430
24853
  };
24431
24854
  //#endregion
24432
24855
  //#region src/capabilities/numeric-sensor.cap.ts
@@ -24471,7 +24894,17 @@ var numericSensorCapability = {
24471
24894
  schema: NumericSensorStatusSchema,
24472
24895
  kind: "push"
24473
24896
  },
24474
- runtimeState: NumericSensorStatusSchema
24897
+ runtimeState: NumericSensorStatusSchema,
24898
+ /**
24899
+ * Runtime-state durability: **restored** — polled value, low churn once the clock is excluded (251 of 669 writes were the clock alone); restoring it removes the cold window before the first poll.
24900
+ *
24901
+ * See `RuntimeStateDurability`. Enforced by
24902
+ * `scripts/check-runtime-state-durability.ts`.
24903
+ */
24904
+ durability: "restored",
24905
+ /** Clock fields: written, but excluded from the compare that decides
24906
+ * whether persisting is worth a SQLite commit. */
24907
+ volatileStateFields: ["lastFetchedAt"]
24475
24908
  };
24476
24909
  //#endregion
24477
24910
  //#region src/capabilities/osd.cap.ts
@@ -24988,7 +25421,14 @@ var petFeederCapability = {
24988
25421
  * the full slice via `device.state.petFeeder.value` and refresh on
24989
25422
  * every poll without re-querying the provider.
24990
25423
  */
24991
- runtimeState: PetFeederStatusSchema
25424
+ runtimeState: PetFeederStatusSchema,
25425
+ /**
25426
+ * Runtime-state durability: **session** — live appliance state re-published on connect.
25427
+ *
25428
+ * See `RuntimeStateDurability`. Enforced by
25429
+ * `scripts/check-runtime-state-durability.ts`.
25430
+ */
25431
+ durability: "session"
24992
25432
  };
24993
25433
  //#endregion
24994
25434
  //#region src/capabilities/plate-gallery.cap.ts
@@ -25351,7 +25791,17 @@ var powerMeterCapability = {
25351
25791
  schema: PowerMeterStatusSchema,
25352
25792
  kind: "push"
25353
25793
  },
25354
- runtimeState: PowerMeterStatusSchema
25794
+ runtimeState: PowerMeterStatusSchema,
25795
+ /**
25796
+ * Runtime-state durability: **restored** — as `numeric-sensor`; `kwhTotal` is an accumulator whose restored value is the baseline.
25797
+ *
25798
+ * See `RuntimeStateDurability`. Enforced by
25799
+ * `scripts/check-runtime-state-durability.ts`.
25800
+ */
25801
+ durability: "restored",
25802
+ /** Clock fields: written, but excluded from the compare that decides
25803
+ * whether persisting is worth a SQLite commit. */
25804
+ volatileStateFields: ["lastFetchedAt"]
25355
25805
  };
25356
25806
  //#endregion
25357
25807
  //#region src/capabilities/presence.cap.ts
@@ -25410,7 +25860,17 @@ var presenceCapability = {
25410
25860
  * the map pin is rendered (use `DeviceFeature.PresenceGps` for the
25411
25861
  * pre-fetch fast-path check).
25412
25862
  */
25413
- runtimeState: PresenceStatusSchema
25863
+ runtimeState: PresenceStatusSchema,
25864
+ /**
25865
+ * Runtime-state durability: **restored** — occupancy-relevant: the restored state is what an occupancy rule compares the first post-restart observation against.
25866
+ *
25867
+ * See `RuntimeStateDurability`. Enforced by
25868
+ * `scripts/check-runtime-state-durability.ts`.
25869
+ */
25870
+ durability: "restored",
25871
+ /** Clock fields: written, but excluded from the compare that decides
25872
+ * whether persisting is worth a SQLite commit. */
25873
+ volatileStateFields: ["lastChangedAt"]
25414
25874
  };
25415
25875
  //#endregion
25416
25876
  //#region src/capabilities/pressure-sensor.cap.ts
@@ -25448,7 +25908,17 @@ var pressureSensorCapability = {
25448
25908
  schema: PressureSensorStatusSchema,
25449
25909
  kind: "push"
25450
25910
  },
25451
- runtimeState: PressureSensorStatusSchema
25911
+ runtimeState: PressureSensorStatusSchema,
25912
+ /**
25913
+ * Runtime-state durability: **restored** — as `numeric-sensor`.
25914
+ *
25915
+ * See `RuntimeStateDurability`. Enforced by
25916
+ * `scripts/check-runtime-state-durability.ts`.
25917
+ */
25918
+ durability: "restored",
25919
+ /** Clock fields: written, but excluded from the compare that decides
25920
+ * whether persisting is worth a SQLite commit. */
25921
+ volatileStateFields: ["lastFetchedAt"]
25452
25922
  };
25453
25923
  //#endregion
25454
25924
  //#region src/capabilities/privacy-mask.cap.ts
@@ -25580,7 +26050,17 @@ var privacyMaskCapability = {
25580
26050
  schema: PrivacyMaskStatusSchema,
25581
26051
  kind: "poll"
25582
26052
  },
25583
- runtimeState: PrivacyMaskStatusSchema
26053
+ runtimeState: PrivacyMaskStatusSchema,
26054
+ /**
26055
+ * Runtime-state durability: **restored** — operator-drawn regions, zero real churn — 22 writes in 25 minutes, every one of them the clock.
26056
+ *
26057
+ * See `RuntimeStateDurability`. Enforced by
26058
+ * `scripts/check-runtime-state-durability.ts`.
26059
+ */
26060
+ durability: "restored",
26061
+ /** Clock fields: written, but excluded from the compare that decides
26062
+ * whether persisting is worth a SQLite commit. */
26063
+ volatileStateFields: ["lastFetchedAt"]
25584
26064
  };
25585
26065
  /**
25586
26066
  * Collapse a camera's PER-PROFILE audio flags into the one answer
@@ -25847,7 +26327,14 @@ var ptzAutotrackCapability = {
25847
26327
  * fetch / cache / fallback logic out of the four cap methods —
25848
26328
  * they become trampolines over `runtimeState`.
25849
26329
  */
25850
- runtimeState: PtzAutotrackRuntimeStateSchema
26330
+ runtimeState: PtzAutotrackRuntimeStateSchema,
26331
+ /**
26332
+ * Runtime-state durability: **session** — mirrors the camera's own autotrack config, re-read on connect.
26333
+ *
26334
+ * See `RuntimeStateDurability`. Enforced by
26335
+ * `scripts/check-runtime-state-durability.ts`.
26336
+ */
26337
+ durability: "session"
25851
26338
  };
25852
26339
  //#endregion
25853
26340
  //#region src/capabilities/reboot.cap.ts
@@ -26323,13 +26810,24 @@ var recordingCapability = {
26323
26810
  /** Playback-speed multiplier for the render (1 = realtime). */
26324
26811
  var ExportSpeedSchema = z.number().min(.25).max(32);
26325
26812
  /**
26326
- * One dense interval, in SECONDS FROM THE EXPORT'S OWN `fromMs`.
26813
+ * One dense interval, in WALL-CLOCK SECONDS FROM THE EXPORT'S OWN `fromMs`.
26327
26814
  *
26328
- * Relative and not absolute epoch on purpose: the renderer's frame-select
26329
- * expression sees ffmpeg's `t`, which starts at 0 for the export's source
26330
- * playlist. Handing it absolute epochs would make every call site responsible
26331
- * for the same subtraction, and the one that forgot would emit a filter that
26332
- * selects nothing silently, as a uniform timelapse.
26815
+ * **Wall clock, not ffmpeg's `t`** and the recorder translates. A caller
26816
+ * derives these bounds from things that happened at a TIME (a track's
26817
+ * `firstSeen`), while `t` runs over the source playlist: the concatenation of
26818
+ * every segment present for the range, with each recording GAP removed. The
26819
+ * two agree only on a window that recorded without one interruption, and only
26820
+ * the render side knows the segments, so the translation lives there
26821
+ * (`export-dense-map.ts`, addon-pipeline).
26822
+ *
26823
+ * It was not always so. These seconds were fed to `between(t,…)` verbatim, and
26824
+ * on a 10 h window holding 29,393 s of footage every range landed late by the
26825
+ * gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
26826
+ * the video was a uniform timelapse, and the log line reported the five ranges
26827
+ * that had been ASKED for (2026-08-13, export `57d14363`, camera 615).
26828
+ *
26829
+ * Relative and not absolute epoch, because an absolute epoch would make every
26830
+ * call site responsible for the same subtraction.
26333
26831
  */
26334
26832
  var ExportDenseRangeSchema = z.object({
26335
26833
  fromSec: z.number().nonnegative(),
@@ -26681,7 +27179,14 @@ var sceneMonitorCapability = {
26681
27179
  schema: SceneMonitorStatusSchema,
26682
27180
  kind: "push"
26683
27181
  },
26684
- runtimeState: SceneMonitorStatusSchema
27182
+ runtimeState: SceneMonitorStatusSchema,
27183
+ /**
27184
+ * Runtime-state durability: **session** — re-derived from the current scene on the next evaluation.
27185
+ *
27186
+ * See `RuntimeStateDurability`. Enforced by
27187
+ * `scripts/check-runtime-state-durability.ts`.
27188
+ */
27189
+ durability: "session"
26685
27190
  };
26686
27191
  //#endregion
26687
27192
  //#region src/capabilities/schemas/zone-rule.ts
@@ -26833,7 +27338,14 @@ var scriptRunnerCapability = {
26833
27338
  * `isRunning` to render a spinner during execution and surfaces
26834
27339
  * `lastError` / `lastRunSuccess` in the recent-runs panel.
26835
27340
  */
26836
- runtimeState: ScriptRunnerStatusSchema
27341
+ runtimeState: ScriptRunnerStatusSchema,
27342
+ /**
27343
+ * Runtime-state durability: **session** — a restored `isRunning: true` describes a process that died with the previous hub.
27344
+ *
27345
+ * See `RuntimeStateDurability`. Enforced by
27346
+ * `scripts/check-runtime-state-durability.ts`.
27347
+ */
27348
+ durability: "session"
26837
27349
  };
26838
27350
  //#endregion
26839
27351
  //#region src/capabilities/smoke.cap.ts
@@ -26862,7 +27374,17 @@ var smokeCapability = {
26862
27374
  schema: SmokeStatusSchema,
26863
27375
  kind: "push"
26864
27376
  },
26865
- runtimeState: SmokeStatusSchema
27377
+ runtimeState: SmokeStatusSchema,
27378
+ /**
27379
+ * Runtime-state durability: **restored** — a safety sensor must not read "clear" merely because the hub restarted.
27380
+ *
27381
+ * See `RuntimeStateDurability`. Enforced by
27382
+ * `scripts/check-runtime-state-durability.ts`.
27383
+ */
27384
+ durability: "restored",
27385
+ /** Clock fields: written, but excluded from the compare that decides
27386
+ * whether persisting is worth a SQLite commit. */
27387
+ volatileStateFields: ["lastChangedAt"]
26866
27388
  };
26867
27389
  //#endregion
26868
27390
  //#region src/capabilities/stream-catalog.cap.ts
@@ -27052,7 +27574,17 @@ var streamParamsCapability = {
27052
27574
  schema: StreamParamsStatusSchema,
27053
27575
  kind: "poll"
27054
27576
  },
27055
- runtimeState: StreamParamsStatusSchema
27577
+ runtimeState: StreamParamsStatusSchema,
27578
+ /**
27579
+ * Runtime-state durability: **restored** — operator-set encoder profile; mutation-driven.
27580
+ *
27581
+ * See `RuntimeStateDurability`. Enforced by
27582
+ * `scripts/check-runtime-state-durability.ts`.
27583
+ */
27584
+ durability: "restored",
27585
+ /** Clock fields: written, but excluded from the compare that decides
27586
+ * whether persisting is worth a SQLite commit. */
27587
+ volatileStateFields: ["lastFetchedAt"]
27056
27588
  };
27057
27589
  //#endregion
27058
27590
  //#region src/capabilities/stream-params-config-schema.ts
@@ -27359,6 +27891,16 @@ var switchCapability = {
27359
27891
  * not need to re-query the provider after a setState mutation.
27360
27892
  */
27361
27893
  runtimeState: SwitchStatusSchema,
27894
+ /**
27895
+ * Runtime-state durability: **restored** — device state an operator reads as authoritative; 55 devices, transition-driven.
27896
+ *
27897
+ * See `RuntimeStateDurability`. Enforced by
27898
+ * `scripts/check-runtime-state-durability.ts`.
27899
+ */
27900
+ durability: "restored",
27901
+ /** Clock fields: written, but excluded from the compare that decides
27902
+ * whether persisting is worth a SQLite commit. */
27903
+ volatileStateFields: ["lastChangedAt"],
27362
27904
  settings: { bindings: [{
27363
27905
  kind: "scalar",
27364
27906
  statusPath: "on",
@@ -27457,7 +27999,17 @@ var tamperCapability = {
27457
27999
  schema: TamperStatusSchema,
27458
28000
  kind: "push"
27459
28001
  },
27460
- runtimeState: TamperStatusSchema
28002
+ runtimeState: TamperStatusSchema,
28003
+ /**
28004
+ * Runtime-state durability: **restored** — as `smoke`.
28005
+ *
28006
+ * See `RuntimeStateDurability`. Enforced by
28007
+ * `scripts/check-runtime-state-durability.ts`.
28008
+ */
28009
+ durability: "restored",
28010
+ /** Clock fields: written, but excluded from the compare that decides
28011
+ * whether persisting is worth a SQLite commit. */
28012
+ volatileStateFields: ["lastChangedAt"]
27461
28013
  };
27462
28014
  //#endregion
27463
28015
  //#region src/capabilities/temperature-sensor.cap.ts
@@ -27504,7 +28056,17 @@ var temperatureSensorCapability = {
27504
28056
  schema: TemperatureSensorStatusSchema,
27505
28057
  kind: "push"
27506
28058
  },
27507
- runtimeState: TemperatureSensorStatusSchema
28059
+ runtimeState: TemperatureSensorStatusSchema,
28060
+ /**
28061
+ * Runtime-state durability: **restored** — as `numeric-sensor` (69 of 125 writes were the clock alone).
28062
+ *
28063
+ * See `RuntimeStateDurability`. Enforced by
28064
+ * `scripts/check-runtime-state-durability.ts`.
28065
+ */
28066
+ durability: "restored",
28067
+ /** Clock fields: written, but excluded from the compare that decides
28068
+ * whether persisting is worth a SQLite commit. */
28069
+ volatileStateFields: ["lastFetchedAt"]
27508
28070
  };
27509
28071
  //#endregion
27510
28072
  //#region src/capabilities/toast.cap.ts
@@ -27584,7 +28146,14 @@ var updateCapability = {
27584
28146
  schema: UpdateStatusSchema,
27585
28147
  kind: "poll"
27586
28148
  },
27587
- runtimeState: UpdateStatusSchema
28149
+ runtimeState: UpdateStatusSchema,
28150
+ /**
28151
+ * Runtime-state durability: **session** — a restored `inProgress: true` describes an update that is no longer running; versions are re-probed at boot.
28152
+ *
28153
+ * See `RuntimeStateDurability`. Enforced by
28154
+ * `scripts/check-runtime-state-durability.ts`.
28155
+ */
28156
+ durability: "session"
27588
28157
  };
27589
28158
  //#endregion
27590
28159
  //#region src/capabilities/user-management.cap.ts
@@ -27964,7 +28533,14 @@ var vacuumControlCapability = {
27964
28533
  * Runtime-state slice — mirrored by the kernel. UI controls watch the
27965
28534
  * slice for live state + battery + fan-speed changes.
27966
28535
  */
27967
- runtimeState: VacuumControlStatusSchema
28536
+ runtimeState: VacuumControlStatusSchema,
28537
+ /**
28538
+ * Runtime-state durability: **session** — as `media-player` — a restored `state: cleaning` is a robot that is not cleaning.
28539
+ *
28540
+ * See `RuntimeStateDurability`. Enforced by
28541
+ * `scripts/check-runtime-state-durability.ts`.
28542
+ */
28543
+ durability: "session"
27968
28544
  };
27969
28545
  //#endregion
27970
28546
  //#region src/capabilities/valve.cap.ts
@@ -28036,7 +28612,14 @@ var valveCapability = {
28036
28612
  * Runtime-state slice — mirrored by the kernel. UI controls watch the
28037
28613
  * slice for live position changes during a move.
28038
28614
  */
28039
- runtimeState: ValveStatusSchema
28615
+ runtimeState: ValveStatusSchema,
28616
+ /**
28617
+ * Runtime-state durability: **session** — as `brightness`.
28618
+ *
28619
+ * See `RuntimeStateDurability`. Enforced by
28620
+ * `scripts/check-runtime-state-durability.ts`.
28621
+ */
28622
+ durability: "session"
28040
28623
  };
28041
28624
  //#endregion
28042
28625
  //#region src/capabilities/vibration.cap.ts
@@ -28060,7 +28643,17 @@ var vibrationCapability = {
28060
28643
  schema: VibrationStatusSchema,
28061
28644
  kind: "push"
28062
28645
  },
28063
- runtimeState: VibrationStatusSchema
28646
+ runtimeState: VibrationStatusSchema,
28647
+ /**
28648
+ * Runtime-state durability: **restored** — as `smoke`.
28649
+ *
28650
+ * See `RuntimeStateDurability`. Enforced by
28651
+ * `scripts/check-runtime-state-durability.ts`.
28652
+ */
28653
+ durability: "restored",
28654
+ /** Clock fields: written, but excluded from the compare that decides
28655
+ * whether persisting is worth a SQLite commit. */
28656
+ volatileStateFields: ["lastChangedAt"]
28064
28657
  };
28065
28658
  //#endregion
28066
28659
  //#region src/capabilities/water-heater.cap.ts
@@ -28136,7 +28729,14 @@ var waterHeaterCapability = {
28136
28729
  * Runtime-state slice — mirrored by the kernel. UI controls watch the
28137
28730
  * slice for live temperature / mode / away changes.
28138
28731
  */
28139
- runtimeState: WaterHeaterStatusSchema
28732
+ runtimeState: WaterHeaterStatusSchema,
28733
+ /**
28734
+ * Runtime-state durability: **session** — as `climate-control`.
28735
+ *
28736
+ * See `RuntimeStateDurability`. Enforced by
28737
+ * `scripts/check-runtime-state-durability.ts`.
28738
+ */
28739
+ durability: "session"
28140
28740
  };
28141
28741
  //#endregion
28142
28742
  //#region src/capabilities/weather.cap.ts
@@ -28197,7 +28797,14 @@ var weatherCapability = {
28197
28797
  * Runtime-state slice — mirrored by the kernel. The UI reads the
28198
28798
  * current conditions directly from the slice on each weather push.
28199
28799
  */
28200
- runtimeState: WeatherStatusSchema
28800
+ runtimeState: WeatherStatusSchema,
28801
+ /**
28802
+ * Runtime-state durability: **session** — a forecast is stale the moment the hub is down; the provider re-fetches on connect.
28803
+ *
28804
+ * See `RuntimeStateDurability`. Enforced by
28805
+ * `scripts/check-runtime-state-durability.ts`.
28806
+ */
28807
+ durability: "session"
28201
28808
  };
28202
28809
  //#endregion
28203
28810
  //#region src/capabilities/zone-analytics.cap.ts
@@ -28361,7 +28968,14 @@ var zoneAnalyticsCapability = {
28361
28968
  * automatically; the explicit `getCurrentSnapshot` cap method is
28362
28969
  * still useful for one-off polls without a subscription.
28363
28970
  */
28364
- runtimeState: CameraOccupancySnapshotSchema
28971
+ runtimeState: CameraOccupancySnapshotSchema,
28972
+ /**
28973
+ * Runtime-state durability: **session** — per-frame analytics; with `audio-metrics` it is ~90 % of the offered write rate. Re-derived on the next frame.
28974
+ *
28975
+ * See `RuntimeStateDurability`. Enforced by
28976
+ * `scripts/check-runtime-state-durability.ts`.
28977
+ */
28978
+ durability: "session"
28365
28979
  };
28366
28980
  //#endregion
28367
28981
  //#region src/capabilities/zone-rules.cap.ts
@@ -28441,7 +29055,14 @@ var zoneRulesCapability = {
28441
29055
  motion: z.array(ZoneRuleSchema).readonly(),
28442
29056
  detection: z.array(ZoneRuleSchema).readonly(),
28443
29057
  package: z.array(ZoneRuleSchema).readonly()
28444
- })
29058
+ }),
29059
+ /**
29060
+ * Runtime-state durability: **restored** — operator intent, mutation-only, same argument as `zones`.
29061
+ *
29062
+ * See `RuntimeStateDurability`. Enforced by
29063
+ * `scripts/check-runtime-state-durability.ts`.
29064
+ */
29065
+ durability: "restored"
28445
29066
  };
28446
29067
  //#endregion
28447
29068
  //#region src/capabilities/index.ts
@@ -38059,6 +38680,320 @@ function getCapsByProviderKind(kind) {
38059
38680
  return out;
38060
38681
  }
38061
38682
  //#endregion
38683
+ //#region src/generated/runtime-state-durability.ts
38684
+ /**
38685
+ * Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
38686
+ * `runtimeState`. 62 caps: 33 `restored`, 29 `session`.
38687
+ *
38688
+ * A cap absent from this map has no runtime-state slice at all. A cap PRESENT
38689
+ * with `durability: 'session'` has one and has decided not to keep it.
38690
+ */
38691
+ var RUNTIME_STATE_POLICY = {
38692
+ "air-quality-sensor": {
38693
+ durability: "restored",
38694
+ volatileFields: ["lastFetchedAt"]
38695
+ },
38696
+ "alarm-panel": {
38697
+ durability: "restored",
38698
+ volatileFields: ["lastChangedAt"]
38699
+ },
38700
+ "ambient-light-sensor": {
38701
+ durability: "restored",
38702
+ volatileFields: ["lastFetchedAt"]
38703
+ },
38704
+ "audio-metrics": {
38705
+ durability: "session",
38706
+ volatileFields: []
38707
+ },
38708
+ "automation-control": {
38709
+ durability: "session",
38710
+ volatileFields: []
38711
+ },
38712
+ "battery": {
38713
+ durability: "restored",
38714
+ volatileFields: ["lastUpdated"]
38715
+ },
38716
+ "binary": {
38717
+ durability: "restored",
38718
+ volatileFields: ["lastChangedAt"]
38719
+ },
38720
+ "brightness": {
38721
+ durability: "session",
38722
+ volatileFields: []
38723
+ },
38724
+ "camera-streams": {
38725
+ durability: "session",
38726
+ volatileFields: []
38727
+ },
38728
+ "carbon-monoxide": {
38729
+ durability: "restored",
38730
+ volatileFields: ["lastChangedAt"]
38731
+ },
38732
+ "climate-control": {
38733
+ durability: "session",
38734
+ volatileFields: []
38735
+ },
38736
+ "color": {
38737
+ durability: "session",
38738
+ volatileFields: []
38739
+ },
38740
+ "connectivity": {
38741
+ durability: "restored",
38742
+ volatileFields: ["lastChangedAt"]
38743
+ },
38744
+ "consumables": {
38745
+ durability: "session",
38746
+ volatileFields: []
38747
+ },
38748
+ "contact": {
38749
+ durability: "restored",
38750
+ volatileFields: ["lastChangedAt"]
38751
+ },
38752
+ "control": {
38753
+ durability: "session",
38754
+ volatileFields: []
38755
+ },
38756
+ "cover": {
38757
+ durability: "restored",
38758
+ volatileFields: ["lastChangedAt"]
38759
+ },
38760
+ "day-night": {
38761
+ durability: "restored",
38762
+ volatileFields: ["lastFetchedAt"]
38763
+ },
38764
+ "device-discovery": {
38765
+ durability: "session",
38766
+ volatileFields: []
38767
+ },
38768
+ "device-status": {
38769
+ durability: "restored",
38770
+ volatileFields: ["lastChangedAt"]
38771
+ },
38772
+ "doorbell": {
38773
+ durability: "restored",
38774
+ volatileFields: []
38775
+ },
38776
+ "enum-sensor": {
38777
+ durability: "restored",
38778
+ volatileFields: ["lastFetchedAt"]
38779
+ },
38780
+ "event-emitter": {
38781
+ durability: "session",
38782
+ volatileFields: []
38783
+ },
38784
+ "fan-control": {
38785
+ durability: "session",
38786
+ volatileFields: []
38787
+ },
38788
+ "feature-probe": {
38789
+ durability: "session",
38790
+ volatileFields: []
38791
+ },
38792
+ "flood": {
38793
+ durability: "restored",
38794
+ volatileFields: ["lastChangedAt"]
38795
+ },
38796
+ "gas": {
38797
+ durability: "restored",
38798
+ volatileFields: ["lastChangedAt"]
38799
+ },
38800
+ "humidifier": {
38801
+ durability: "session",
38802
+ volatileFields: []
38803
+ },
38804
+ "humidity-sensor": {
38805
+ durability: "restored",
38806
+ volatileFields: ["lastFetchedAt"]
38807
+ },
38808
+ "image": {
38809
+ durability: "session",
38810
+ volatileFields: []
38811
+ },
38812
+ "image-settings": {
38813
+ durability: "restored",
38814
+ volatileFields: ["lastFetchedAt"]
38815
+ },
38816
+ "lawn-mower-control": {
38817
+ durability: "session",
38818
+ volatileFields: []
38819
+ },
38820
+ "lock-control": {
38821
+ durability: "restored",
38822
+ volatileFields: ["lastChangedAt"]
38823
+ },
38824
+ "media-player": {
38825
+ durability: "session",
38826
+ volatileFields: []
38827
+ },
38828
+ "motion": {
38829
+ durability: "session",
38830
+ volatileFields: []
38831
+ },
38832
+ "motion-trigger": {
38833
+ durability: "session",
38834
+ volatileFields: []
38835
+ },
38836
+ "motion-zones": {
38837
+ durability: "restored",
38838
+ volatileFields: ["lastFetchedAt"]
38839
+ },
38840
+ "native-object-detection": {
38841
+ durability: "restored",
38842
+ volatileFields: ["lastFetchedAt"]
38843
+ },
38844
+ "notifier": {
38845
+ durability: "session",
38846
+ volatileFields: []
38847
+ },
38848
+ "numeric-sensor": {
38849
+ durability: "restored",
38850
+ volatileFields: ["lastFetchedAt"]
38851
+ },
38852
+ "pet-feeder": {
38853
+ durability: "session",
38854
+ volatileFields: []
38855
+ },
38856
+ "power-meter": {
38857
+ durability: "restored",
38858
+ volatileFields: ["lastFetchedAt"]
38859
+ },
38860
+ "presence": {
38861
+ durability: "restored",
38862
+ volatileFields: ["lastChangedAt"]
38863
+ },
38864
+ "pressure-sensor": {
38865
+ durability: "restored",
38866
+ volatileFields: ["lastFetchedAt"]
38867
+ },
38868
+ "privacy-mask": {
38869
+ durability: "restored",
38870
+ volatileFields: ["lastFetchedAt"]
38871
+ },
38872
+ "ptz-autotrack": {
38873
+ durability: "session",
38874
+ volatileFields: []
38875
+ },
38876
+ "scene-monitor": {
38877
+ durability: "session",
38878
+ volatileFields: []
38879
+ },
38880
+ "script-runner": {
38881
+ durability: "session",
38882
+ volatileFields: []
38883
+ },
38884
+ "smoke": {
38885
+ durability: "restored",
38886
+ volatileFields: ["lastChangedAt"]
38887
+ },
38888
+ "stream-params": {
38889
+ durability: "restored",
38890
+ volatileFields: ["lastFetchedAt"]
38891
+ },
38892
+ "switch": {
38893
+ durability: "restored",
38894
+ volatileFields: ["lastChangedAt"]
38895
+ },
38896
+ "tamper": {
38897
+ durability: "restored",
38898
+ volatileFields: ["lastChangedAt"]
38899
+ },
38900
+ "temperature-sensor": {
38901
+ durability: "restored",
38902
+ volatileFields: ["lastFetchedAt"]
38903
+ },
38904
+ "update": {
38905
+ durability: "session",
38906
+ volatileFields: []
38907
+ },
38908
+ "vacuum-control": {
38909
+ durability: "session",
38910
+ volatileFields: []
38911
+ },
38912
+ "valve": {
38913
+ durability: "session",
38914
+ volatileFields: []
38915
+ },
38916
+ "vibration": {
38917
+ durability: "restored",
38918
+ volatileFields: ["lastChangedAt"]
38919
+ },
38920
+ "water-heater": {
38921
+ durability: "session",
38922
+ volatileFields: []
38923
+ },
38924
+ "weather": {
38925
+ durability: "session",
38926
+ volatileFields: []
38927
+ },
38928
+ "zone-analytics": {
38929
+ durability: "session",
38930
+ volatileFields: []
38931
+ },
38932
+ "zone-rules": {
38933
+ durability: "restored",
38934
+ volatileFields: []
38935
+ },
38936
+ "zones": {
38937
+ durability: "restored",
38938
+ volatileFields: []
38939
+ }
38940
+ };
38941
+ /**
38942
+ * The policy for `capName`. An UNKNOWN cap resolves to `'session'` — an
38943
+ * addon-private slice the codegen has never seen is not persisted until its
38944
+ * capability says so, which is the safe direction: the cost of a lost session
38945
+ * value is a cold window, the cost of an unasked-for persist is a commit per
38946
+ * second on the fleet's busiest write path.
38947
+ */
38948
+ function runtimeStatePolicyFor(capName) {
38949
+ return RUNTIME_STATE_POLICY[capName] ?? SESSION_ONLY_POLICY;
38950
+ }
38951
+ /** Shared fallback instance — see {@link runtimeStatePolicyFor}. */
38952
+ var SESSION_ONLY_POLICY = {
38953
+ durability: "session",
38954
+ volatileFields: []
38955
+ };
38956
+ /** True when this cap's slice is written to disk. */
38957
+ function isRestoredCap(capName) {
38958
+ return runtimeStatePolicyFor(capName).durability === "restored";
38959
+ }
38960
+ /** Cap names whose slice survives a restart, sorted. */
38961
+ var RESTORED_CAP_NAMES = [
38962
+ "air-quality-sensor",
38963
+ "alarm-panel",
38964
+ "ambient-light-sensor",
38965
+ "battery",
38966
+ "binary",
38967
+ "carbon-monoxide",
38968
+ "connectivity",
38969
+ "contact",
38970
+ "cover",
38971
+ "day-night",
38972
+ "device-status",
38973
+ "doorbell",
38974
+ "enum-sensor",
38975
+ "flood",
38976
+ "gas",
38977
+ "humidity-sensor",
38978
+ "image-settings",
38979
+ "lock-control",
38980
+ "motion-zones",
38981
+ "native-object-detection",
38982
+ "numeric-sensor",
38983
+ "power-meter",
38984
+ "presence",
38985
+ "pressure-sensor",
38986
+ "privacy-mask",
38987
+ "smoke",
38988
+ "stream-params",
38989
+ "switch",
38990
+ "tamper",
38991
+ "temperature-sensor",
38992
+ "vibration",
38993
+ "zone-rules",
38994
+ "zones"
38995
+ ];
38996
+ //#endregion
38062
38997
  //#region src/generated/scope-presets.ts
38063
38998
  var SCOPE_PRESETS = [
38064
38999
  {
@@ -38721,6 +39656,177 @@ function createSystemProxy(api) {
38721
39656
  };
38722
39657
  }
38723
39658
  //#endregion
39659
+ //#region src/notification/audio-condition.ts
39660
+ /**
39661
+ * audio-condition — the authoring logic behind the sustained-sound condition
39662
+ * (`NcConditions.audio`), pure and UI-framework-free.
39663
+ *
39664
+ * WHY IT LIVES HERE
39665
+ * ─────────────────
39666
+ * Same reason as `condition-taxonomy.ts` next door: two editors author this
39667
+ * condition (the admin UI and the viewer), the vocabulary it offers is already
39668
+ * in this package (`AUDIO_MACRO_LABELS`), and a second copy of "what a cleared
39669
+ * threshold writes" is a mirror free to drift. The viewer keeps its own copy
39670
+ * because it is a separate app with its own toolchain; every surface that CAN
39671
+ * import `@camstack/types` uses this one.
39672
+ *
39673
+ * Four behaviours here are not cosmetic:
39674
+ *
39675
+ * 1. **dBFS is negative-going.** `0` is full scale; digital silence reads
39676
+ * {@link NC_AUDIO_DBFS_FLOOR}. A control that let an operator author `60`
39677
+ * meaning "loud" would write a threshold no sample can reach, and the rule
39678
+ * would look broken rather than mis-configured. Every write is clamped.
39679
+ * 2. **Neither filter given = the engine REFUSES.** With no level floor and no
39680
+ * labels every sample is trivially a hit, so the window would fire on
39681
+ * silence. {@link audioIsFailClosed} is how an editor says that BEFORE the
39682
+ * save instead of shipping a rule that never notifies and never says why.
39683
+ * 3. **Both label spellings are the same label.** The hub's taxonomy serves
39684
+ * `audio-dog`; the macro catalog and an operator both say `dog`, and the
39685
+ * matcher normalizes the prefix away on both sides. Selection therefore
39686
+ * compares NORMALIZED ids — a rule authored in the admin UI must not read
39687
+ * as "nothing selected" on the phone.
39688
+ * 4. **A stored label the build does not know stays visible.** It is offered
39689
+ * as an explicitly-unknown, removable choice, never silently dropped:
39690
+ * rewriting the rule the operator is looking at is worse than showing a
39691
+ * stale id.
39692
+ */
39693
+ /** The `audio-` namespace the NC taxonomy uses for these same macro ids. */
39694
+ var AUDIO_KIND_PREFIX = "audio-";
39695
+ /** Strip the taxonomy's `audio-` namespace: `audio-dog` and `dog` are one label. */
39696
+ function normalizeAudioLabel(value) {
39697
+ return value.startsWith(AUDIO_KIND_PREFIX) ? value.slice(6) : value;
39698
+ }
39699
+ /** Level bounds, in dBFS. Negative-going: the ceiling is full scale. */
39700
+ var NC_AUDIO_DB_MIN = -96;
39701
+ var NC_AUDIO_DB_MAX = 0;
39702
+ /** Step of the level control — 3 dB is one perceptual notch, not one unit. */
39703
+ var NC_AUDIO_DB_STEP = 3;
39704
+ /**
39705
+ * Offered when the operator turns the level filter ON. NOT a schema default:
39706
+ * an absent `dbThreshold` means "any level" and stays absent until asked for,
39707
+ * and a stepper seeded at the -96 floor would need thirty taps to reach a
39708
+ * threshold that can actually fire.
39709
+ */
39710
+ var NC_AUDIO_DB_OFFERED = -30;
39711
+ var NC_AUDIO_HIT_PERCENT_MIN = 1;
39712
+ var NC_AUDIO_HIT_PERCENT_MAX = 100;
39713
+ var NC_AUDIO_SAMPLING_MIN_SEC = 1;
39714
+ var NC_AUDIO_SAMPLING_MAX_SEC = 300;
39715
+ /** Schema defaults — an untouched sub-field must author exactly these. */
39716
+ var NC_AUDIO_DEFAULTS = {
39717
+ hitPercent: 60,
39718
+ samplingSeconds: 10
39719
+ };
39720
+ /** What an editor SHOWS for an unset condition — without authoring it. */
39721
+ function audioOrDefaults(value) {
39722
+ return value ?? NC_AUDIO_DEFAULTS;
39723
+ }
39724
+ /**
39725
+ * True when the condition names NEITHER a level floor NOR any label. The engine
39726
+ * refuses such a rule (every sample is a hit, so the window fires on silence) —
39727
+ * an editor warns instead of letting the operator ship a rule that never
39728
+ * notifies and says nothing about why.
39729
+ *
39730
+ * An ABSENT condition is not flagged: a rule with no `audio` key is not an
39731
+ * audio rule at all.
39732
+ */
39733
+ function audioIsFailClosed(value) {
39734
+ if (value === void 0) return false;
39735
+ return value.dbThreshold === void 0 && (value.labels === void 0 || value.labels.length === 0);
39736
+ }
39737
+ function clampInt(value, min, max) {
39738
+ if (!Number.isFinite(value)) return min;
39739
+ return Math.min(max, Math.max(min, Math.round(value)));
39740
+ }
39741
+ function has(patch, key) {
39742
+ return Object.prototype.hasOwnProperty.call(patch, key);
39743
+ }
39744
+ /**
39745
+ * Apply a sub-field edit, seeding from the defaults when nothing is stored yet.
39746
+ * The result is always in-bounds for `NcAudioConditionSchema`, and a cleared
39747
+ * filter is OMITTED rather than written as an explicit `undefined` (which
39748
+ * survives a merge patch as a deliberate erase and reads as authored).
39749
+ */
39750
+ function patchAudio(current, patch) {
39751
+ const base = audioOrDefaults(current);
39752
+ const labels = has(patch, "labels") ? patch.labels : base.labels;
39753
+ const dbThreshold = has(patch, "dbThreshold") ? patch.dbThreshold : base.dbThreshold;
39754
+ return {
39755
+ ...labels !== void 0 && labels.length > 0 ? { labels: [...labels] } : {},
39756
+ ...dbThreshold !== void 0 ? { dbThreshold: clampInt(dbThreshold, NC_AUDIO_DB_MIN, 0) } : {},
39757
+ hitPercent: clampInt(patch.hitPercent ?? base.hitPercent, 1, 100),
39758
+ samplingSeconds: clampInt(patch.samplingSeconds ?? base.samplingSeconds, 1, 300)
39759
+ };
39760
+ }
39761
+ /** The icon glyph for a stored label the catalogue does not know. */
39762
+ var UNKNOWN_LABEL_ICON = "🔈";
39763
+ var ICON_BY_ID = new Map(AUDIO_MACRO_LABELS.flatMap((macro) => macro.icon === void 0 ? [] : [[macro.id, macro.icon]]));
39764
+ /**
39765
+ * The label choices: the hub's `audioKinds` when it serves them (its WORDS, the
39766
+ * local EMOJI, keyed by the normalized id), else the local macro catalog — plus
39767
+ * any stored label neither side knows, marked unknown.
39768
+ *
39769
+ * The hub's list wins on membership because it knows which macros this cluster
39770
+ * actually classifies; the icons stay local because the taxonomy carries none.
39771
+ */
39772
+ function audioLabelChoices(taxonomy, selected) {
39773
+ const fromHub = taxonomy?.audioKinds ?? [];
39774
+ const choices = fromHub.length > 0 ? fromHub.map((entry) => {
39775
+ const id = normalizeAudioLabel(entry.kind);
39776
+ return {
39777
+ value: id,
39778
+ label: entry.label,
39779
+ icon: ICON_BY_ID.get(id) ?? UNKNOWN_LABEL_ICON,
39780
+ unknown: false
39781
+ };
39782
+ }) : AUDIO_MACRO_LABELS.map((macro) => ({
39783
+ value: macro.id,
39784
+ label: macro.name,
39785
+ icon: macro.icon ?? UNKNOWN_LABEL_ICON,
39786
+ unknown: false
39787
+ }));
39788
+ const known = new Set(choices.map((choice) => choice.value));
39789
+ const unknownLabels = [];
39790
+ for (const stored of selected ?? []) {
39791
+ const id = normalizeAudioLabel(stored);
39792
+ if (known.has(id) || unknownLabels.includes(id)) continue;
39793
+ unknownLabels.push(id);
39794
+ choices.push({
39795
+ value: id,
39796
+ label: id,
39797
+ icon: UNKNOWN_LABEL_ICON,
39798
+ unknown: true
39799
+ });
39800
+ }
39801
+ return {
39802
+ choices,
39803
+ unknownLabels
39804
+ };
39805
+ }
39806
+ /**
39807
+ * Is this macro id selected? Compares NORMALIZED ids, so a rule authored with
39808
+ * the taxonomy spelling (`audio-dog`) reads as selected here.
39809
+ */
39810
+ function isAudioLabelSelected(labels, id) {
39811
+ const wanted = normalizeAudioLabel(id);
39812
+ return (labels ?? []).some((stored) => normalizeAudioLabel(stored) === wanted);
39813
+ }
39814
+ /**
39815
+ * Toggle one macro id. Removing drops EVERY stored spelling of it; adding
39816
+ * appends the bare macro id. Returns `undefined` when the last label goes — the
39817
+ * field is optional and absent means "any sound", never an empty array (which
39818
+ * `NcAudioConditionSchema` rejects outright).
39819
+ */
39820
+ function toggleAudioLabel(labels, id) {
39821
+ const wanted = normalizeAudioLabel(id);
39822
+ const current = labels ?? [];
39823
+ if (isAudioLabelSelected(current, wanted)) {
39824
+ const next = current.filter((stored) => normalizeAudioLabel(stored) !== wanted);
39825
+ return next.length > 0 ? next : void 0;
39826
+ }
39827
+ return [...current, wanted];
39828
+ }
39829
+ //#endregion
38724
39830
  //#region src/notification/condition-taxonomy.ts
38725
39831
  /** Condition ids that render the class picker (video macros/subs + audio). */
38726
39832
  var CLASS_CONDITION_IDS = new Set(["classes", "classesExclude"]);
@@ -39602,8 +40708,8 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39602
40708
  //#endregion
39603
40709
  //#region src/pipeline/native-lease.ts
39604
40710
  /**
39605
- * THE native-frame **lease** knobs — TTL, RAM budget and demand window for the
39606
- * decode worker's native-resolution frame retention.
40711
+ * THE native-frame **lease** knobs — hold depth, RAM budget, demand window and
40712
+ * subject-tile budget for the decode worker's native-resolution retention.
39607
40713
  *
39608
40714
  * ## Why they live here and not in the addon that reads them
39609
40715
  *
@@ -39619,20 +40725,25 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39619
40725
  * The lease is a per-decode-worker RAM window. Its purpose — the late
39620
40726
  * cross-process native crop landing on a full-resolution frame rather than the
39621
40727
  * ≤640 detection fallback — is a property of the PIPELINE, not of a node's
39622
- * hardware: a per-node TTL would mean the same camera produces different crop
40728
+ * hardware: a per-node window would mean the same camera produces different crop
39623
40729
  * quality depending on which node the balancer placed it on, and nobody could
39624
40730
  * tell that from the stored media. Node-level RAM pressure is already handled
39625
40731
  * by the per-session budget ceiling, which is itself one of these knobs.
39626
40732
  *
39627
40733
  * ## What each knob costs
39628
40734
  *
39629
- * A retained frame is a full NATIVE-resolution copy in system RAM. With the
40735
+ * A HELD frame is a full NATIVE-resolution copy in system RAM. With the
39630
40736
  * default pinned-RGB24 lease path (`CAMSTACK_SESSION_PINNED_RGB_CROP`, on):
39631
40737
  * 4K ≈ 24.9 MB/frame, 1080p ≈ 6.2 MB/frame. On the YUV420P path (flag off, and
39632
40738
  * for software-decoded sessions): 4K ≈ 12.4 MB, 1080p ≈ 3.1 MB. Worst-case
39633
- * resident RAM for ONE busy camera frameBytes × deliveredFps × ttlSeconds,
39634
- * clamped by the budget ceiling. See `docs/design/decode-path.md` "Lease
39635
- * admission" for what actually gets admitted.
40739
+ * resident RAM for ONE busy camera is now `frameBytes × holdFrames`, clamped by
40740
+ * the budget ceiling bounded by a COUNT because a held frame is waiting for
40741
+ * one specific event (its own detection result), not for a clock.
40742
+ *
40743
+ * A TILE is one subject at native resolution, JPEG-encoded: ~60-120 KB on 4K,
40744
+ * and nothing at all on a frame that detected nothing. That is the asymmetry
40745
+ * this whole shape exists for — see
40746
+ * `docs/design/2026-08-13-native-lease-two-tier-redesign.md`.
39636
40747
  */
39637
40748
  /**
39638
40749
  * Store identity of the lease knobs in `pipeline-orchestrator`'s GLOBAL
@@ -39640,10 +40751,11 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39640
40751
  * the reader can walk every section instead of trusting the section id.
39641
40752
  */
39642
40753
  var NATIVE_LEASE_SECTION_ID = "native-lease";
39643
- var NATIVE_LEASE_TTL_KEY = "nativeLeaseTtlMs";
40754
+ var NATIVE_LEASE_HOLD_KEY = "nativeLeaseHoldFrames";
39644
40755
  var NATIVE_LEASE_BUDGET_KEY = "nativeLeaseBudgetMb";
39645
40756
  var NATIVE_LEASE_ACTIVITY_KEY = "nativeLeaseActivityMs";
39646
40757
  var NATIVE_LEASE_ADMISSION_KEY = "nativeLeaseAdmission";
40758
+ var NATIVE_LEASE_TILE_BUDGET_KEY = "nativeTileBudgetMb";
39647
40759
  /**
39648
40760
  * WHICH delivered frames the decode worker retains a native copy of.
39649
40761
  *
@@ -39670,25 +40782,32 @@ var NativeLeaseAdmissionSchema = z.enum(["all", "inferred"]);
39670
40782
  */
39671
40783
  var NativeLeaseSettingsSchema = z.object({
39672
40784
  /**
39673
- * How long a retained native frame is served before it counts as a miss.
40785
+ * How many delivered frames the worker HOLDS at once, waiting for each one's
40786
+ * detection result.
40787
+ *
40788
+ * This replaced a TTL on 2026-08-13, and the replacement is the whole point:
40789
+ * a time window was never related to the event the pixels were waiting for.
40790
+ * A held frame now lives from delivery until the runner has its `FrameResult`
40791
+ * — at which moment the runner cuts the subject tiles it actually wanted and
40792
+ * releases the frame. The bound exists only so a runner that stops answering
40793
+ * cannot pin RAM: above it the OLDEST held frame is dropped and counted.
39674
40794
  *
39675
- * Must cover the FULL late-crop horizon: detection inference + the
39676
- * cross-process inference-result hop to hub post-analysis + tracking + the
39677
- * tRPC crop round-trip back. Below ~500 ms the busiest cameras' subject crops
39678
- * outrun it and fall back to the ≤640 detection frame; above ~3 s the resident
39679
- * RAM per busy camera grows linearly with no measured hit-rate gain.
40795
+ * Sizing: the steady state is `inferenceLatency × deliveredFps`, measured at
40796
+ * 40-160 ms × ≤25 fps = 1-4 frames. The default leaves headroom for a hiccup
40797
+ * without ever approaching the old resident set (43 frames × 24.9 MB at 4K).
40798
+ * Raising it does not buy hit rate it buys tolerance for a slow runner, and
40799
+ * `holdOverflow` on the metrics line is what says you need it.
39680
40800
  */
39681
- ttlMs: z.number().int().min(250).max(1e4),
40801
+ holdFrames: z.number().int().min(1).max(64),
39682
40802
  /**
39683
40803
  * Hard per-decode-worker RAM ceiling for retained native frames, in MB.
39684
40804
  *
39685
- * Intended as a SAFETY ceiling with the TTL as the effective cap — but check
39686
- * which one is actually binding before reasoning from that. At the shipped
39687
- * 1024 MB and a 2 800 ms TTL, a 4K camera hits the CEILING first (~43 frames
39688
- * at ~24 MB each) and the TTL never gets to expire anything; `leaseMb` /
39689
- * `leaseFrames` on the metrics line say which. When the ceiling binds, a
39690
- * change that admits fewer frames buys retention WINDOW at constant RAM
39691
- * rather than giving RAM back — lower this knob if RAM is what you wanted.
40805
+ * Since 2026-08-13 this is a SAFETY ceiling and nothing else: `holdFrames`
40806
+ * is what decides how much is held, and the ceiling is the number above which
40807
+ * something is wrong. Before that it was the effective cap at 1024 MB with
40808
+ * a 2 800 ms TTL a 4K camera sat pinned at `leaseMb:1020, leaseFrames:43`
40809
+ * with the TTL expiring nothing, which is exactly the confusion the hold
40810
+ * removes. `leaseMb` / `leaseFrames` still say what is resident.
39692
40811
  * `0` DISABLES the lease entirely and falls the worker back to the tiny
39693
40812
  * leak-prone GPU surface ring (~85% crop miss; that is what the lease exists
39694
40813
  * to replace).
@@ -39714,25 +40833,47 @@ var NativeLeaseSettingsSchema = z.object({
39714
40833
  * there is the signal that some caller names frames outside the inference set
39715
40834
  * and that this must go back to `all`.
39716
40835
  */
39717
- admission: NativeLeaseAdmissionSchema
40836
+ admission: NativeLeaseAdmissionSchema,
40837
+ /**
40838
+ * RAM ceiling per decode worker, in MB, for the SUBJECT TILES — the
40839
+ * compressed native crops the worker cuts at the moment a frame's detection
40840
+ * result arrives, and keeps long after the frame itself is freed.
40841
+ *
40842
+ * This is the knob that replaced the old retention window, and it buys about
40843
+ * three orders of magnitude more of it: a tile is one subject at native
40844
+ * resolution, JPEG-encoded (~60-120 KB on a 4K person), against ~24.9 MB for
40845
+ * the frame it was cut from. A frame on which nothing was detected costs
40846
+ * nothing at all, which is the real change — the old lease paid per FRAME and
40847
+ * was interrogated per SUBJECT.
40848
+ *
40849
+ * `0` DISABLES tiles, leaving only the hold window and the ≤640 RAM
40850
+ * fallback — i.e. the pre-2026-08-13 miss profile. Set it there only to
40851
+ * reproduce that.
40852
+ */
40853
+ tileBudgetMb: z.number().int().min(0).max(1024)
39718
40854
  });
39719
40855
  /**
39720
- * The values in force when the operator has set nothing — byte-for-byte the
39721
- * constants the decode worker shipped with as env-var defaults, so making these
39722
- * settings changed no behaviour on the day it landed.
40856
+ * The values in force when the operator has set nothing.
40857
+ *
40858
+ * `budgetMb` stays at 1024 on the day the hold landed, deliberately: it stopped
40859
+ * being the retention window and became the OOM ceiling, and lowering a ceiling
40860
+ * in the same change that redefines it would make a regression and a retune
40861
+ * indistinguishable. Cut it once `tileHits` / `holdOverflow` have been read on
40862
+ * live traffic.
39723
40863
  */
39724
40864
  var DEFAULT_NATIVE_LEASE_SETTINGS = {
39725
- ttlMs: 1200,
40865
+ holdFrames: 8,
39726
40866
  budgetMb: 1024,
39727
40867
  activityMs: 15e3,
40868
+ tileBudgetMb: 64,
39728
40869
  admission: "inferred"
39729
40870
  };
39730
40871
  /** Slider bounds for the operator-facing knobs (orchestrator settings UI). */
39731
- var NATIVE_LEASE_TTL_FIELD = {
39732
- min: 250,
39733
- max: 1e4,
39734
- step: 50,
39735
- default: DEFAULT_NATIVE_LEASE_SETTINGS.ttlMs
40872
+ var NATIVE_LEASE_HOLD_FIELD = {
40873
+ min: 1,
40874
+ max: 64,
40875
+ step: 1,
40876
+ default: DEFAULT_NATIVE_LEASE_SETTINGS.holdFrames
39736
40877
  };
39737
40878
  var NATIVE_LEASE_BUDGET_FIELD = {
39738
40879
  min: 0,
@@ -39746,6 +40887,12 @@ var NATIVE_LEASE_ACTIVITY_FIELD = {
39746
40887
  step: 1e3,
39747
40888
  default: DEFAULT_NATIVE_LEASE_SETTINGS.activityMs
39748
40889
  };
40890
+ var NATIVE_LEASE_TILE_BUDGET_FIELD = {
40891
+ min: 0,
40892
+ max: 1024,
40893
+ step: 16,
40894
+ default: DEFAULT_NATIVE_LEASE_SETTINGS.tileBudgetMb
40895
+ };
39749
40896
  /** Select options for the admission knob (orchestrator settings UI). */
39750
40897
  var NATIVE_LEASE_ADMISSION_FIELD = {
39751
40898
  options: [{
@@ -39765,7 +40912,7 @@ var NATIVE_LEASE_ADMISSION_FIELD = {
39765
40912
  * precedence being true and being a lie. `addon-settings.getGlobalSettings`
39766
40913
  * returns a HYDRATED payload, and `hydrateField` fills an unstored field with
39767
40914
  * the schema's own `default` (verified live on the hub: a cluster that has never
39768
- * opened the form still reports `nativeLeaseTtlMs = 1200`). A reader that took
40915
+ * opened the form still reports `nativeLeaseHoldFrames = 8`). A reader that took
39769
40916
  * that at face value would report all three knobs as "set" on every cluster on
39770
40917
  * the day this shipped, permanently retiring the `CAMSTACK_SESSION_NATIVE_LEASE_*`
39771
40918
  * emergency override that the precedence promises. There is no raw-store read on
@@ -39799,25 +40946,28 @@ function readAdmissionKnob(raw) {
39799
40946
  * {@link readKnob} for why the default counts as unset.
39800
40947
  */
39801
40948
  function readNativeLeaseOverride(config) {
39802
- const ttlMs = readKnob("ttlMs", config[NATIVE_LEASE_TTL_KEY]);
40949
+ const holdFrames = readKnob("holdFrames", config[NATIVE_LEASE_HOLD_KEY]);
39803
40950
  const budgetMb = readKnob("budgetMb", config[NATIVE_LEASE_BUDGET_KEY]);
39804
40951
  const activityMs = readKnob("activityMs", config[NATIVE_LEASE_ACTIVITY_KEY]);
39805
40952
  const admission = readAdmissionKnob(config[NATIVE_LEASE_ADMISSION_KEY]);
40953
+ const tileBudgetMb = readKnob("tileBudgetMb", config[NATIVE_LEASE_TILE_BUDGET_KEY]);
39806
40954
  return {
39807
- ...ttlMs === null ? {} : { ttlMs },
40955
+ ...holdFrames === null ? {} : { holdFrames },
39808
40956
  ...budgetMb === null ? {} : { budgetMb },
39809
40957
  ...activityMs === null ? {} : { activityMs },
39810
- ...admission === null ? {} : { admission }
40958
+ ...admission === null ? {} : { admission },
40959
+ ...tileBudgetMb === null ? {} : { tileBudgetMb }
39811
40960
  };
39812
40961
  }
39813
40962
  function isHydratedField(entry) {
39814
40963
  return typeof entry === "object" && entry !== null && "key" in entry;
39815
40964
  }
39816
40965
  var LEASE_KEYS = [
39817
- NATIVE_LEASE_TTL_KEY,
40966
+ NATIVE_LEASE_HOLD_KEY,
39818
40967
  NATIVE_LEASE_BUDGET_KEY,
39819
40968
  NATIVE_LEASE_ACTIVITY_KEY,
39820
- NATIVE_LEASE_ADMISSION_KEY
40969
+ NATIVE_LEASE_ADMISSION_KEY,
40970
+ NATIVE_LEASE_TILE_BUDGET_KEY
39821
40971
  ];
39822
40972
  /**
39823
40973
  * Extract the operator's lease overrides from an
@@ -41149,4 +42299,4 @@ function enumerateInferenceDevices(hw) {
41149
42299
  return out;
41150
42300
  }
41151
42301
  //#endregion
41152
- export { ACCESSORY_LABEL, 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, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, 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, 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, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, 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, 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_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, 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, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, 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, 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, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, 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, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_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, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, 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_SECTION_ID, NATIVE_LEASE_TTL_FIELD, NATIVE_LEASE_TTL_KEY, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, 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_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, 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, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, 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, 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, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationMoveSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, 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, 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, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, 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, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, decodeVectorBase64, decoderCapability, defaultDeviceFor, defineCustomActions, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isDeviceScopedCap, isEvent, isIsolatedBuiltin, isNode, isObjectInput, isSameAddonId, isScheduleActive, isSoftwareDecode, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, 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, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, 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 };
42302
+ export { ACCESSORY_LABEL, 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, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, 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, 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, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, 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, 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_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, 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, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, 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, 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, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, 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, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_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, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, 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_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NC_ALARM_SYSTEM_EVENT_KINDS, 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_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_SNOOZE_MAX_MINUTES, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, 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, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, 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, 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, RESERVED_BINDING_NAMES, RESTORED_CAP_NAMES, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationMoveSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, 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, 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, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, 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, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioIsFailClosed, audioLabelChoices, audioMetricsCapability, audioOrDefaults, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, decodeVectorBase64, decoderCapability, defaultDeviceFor, defineCustomActions, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isAudioLabelSelected, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isDeviceScopedCap, isEvent, isIsolatedBuiltin, isNode, isObjectInput, isRestoredCap, isSameAddonId, isScheduleActive, isSoftwareDecode, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, 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, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, patchAudio, petFeederCapability, pickAccessoryControl, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, runtimeStatePolicyFor, sceneMonitorCapability, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, 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 };