@camstack/types 1.2.15 → 1.2.17

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 (60) hide show
  1. package/dist/addon.d.ts +1 -0
  2. package/dist/addon.js +265 -1
  3. package/dist/addon.mjs +264 -2
  4. package/dist/capabilities/addons.cap.d.ts +7 -7
  5. package/dist/capabilities/backup.cap.d.ts +73 -1
  6. package/dist/capabilities/broker.cap.d.ts +8 -8
  7. package/dist/capabilities/camera-streams.cap.d.ts +5 -5
  8. package/dist/capabilities/climate-control.cap.d.ts +8 -8
  9. package/dist/capabilities/day-night.cap.d.ts +8 -8
  10. package/dist/capabilities/decoder.cap.d.ts +2 -2
  11. package/dist/capabilities/device-manager.cap.d.ts +2 -2
  12. package/dist/capabilities/face-gallery.cap.d.ts +1 -1
  13. package/dist/capabilities/image-settings.cap.d.ts +16 -16
  14. package/dist/capabilities/index.d.ts +1 -1
  15. package/dist/capabilities/intercom.cap.d.ts +6 -6
  16. package/dist/capabilities/lawn-mower-control.cap.d.ts +4 -4
  17. package/dist/capabilities/llm-runtime.cap.d.ts +3 -3
  18. package/dist/capabilities/llm.cap.d.ts +4 -4
  19. package/dist/capabilities/local-network.cap.d.ts +38 -0
  20. package/dist/capabilities/media-player.cap.d.ts +9 -9
  21. package/dist/capabilities/metrics-provider.cap.d.ts +2 -2
  22. package/dist/capabilities/mqtt-broker.cap.d.ts +3 -3
  23. package/dist/capabilities/notification-output.cap.d.ts +4 -0
  24. package/dist/capabilities/notification-rules.cap.d.ts +236 -18
  25. package/dist/capabilities/pipeline-analytics.cap.d.ts +64 -27
  26. package/dist/capabilities/pipeline-executor.cap.d.ts +2 -2
  27. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +15 -15
  28. package/dist/capabilities/pipeline-runner.cap.d.ts +2 -2
  29. package/dist/capabilities/recording-export.cap.d.ts +7 -7
  30. package/dist/capabilities/recording.cap.d.ts +102 -129
  31. package/dist/capabilities/schemas/orchestrator-metrics.d.ts +2 -2
  32. package/dist/capabilities/schemas/streaming-shared.d.ts +4 -4
  33. package/dist/capabilities/storage-provider.cap.d.ts +44 -0
  34. package/dist/capabilities/storage.cap.d.ts +17 -0
  35. package/dist/capabilities/stream-broker.cap.d.ts +58 -12
  36. package/dist/capabilities/webrtc-session.cap.d.ts +6 -6
  37. package/dist/generated/addon-api.d.ts +5365 -30879
  38. package/dist/generated/cap-input-defaults.d.ts +29 -0
  39. package/dist/generated/device-proxy.d.ts +2 -2
  40. package/dist/generated/method-access-map.d.ts +1 -1
  41. package/dist/generated/system-proxy.d.ts +3 -3
  42. package/dist/index.d.ts +2 -1
  43. package/dist/index.js +693 -139
  44. package/dist/index.mjs +684 -136
  45. package/dist/interfaces/addon.d.ts +9 -0
  46. package/dist/interfaces/ops-log.d.ts +2 -0
  47. package/dist/interfaces/recording-config.d.ts +33 -91
  48. package/dist/interfaces/relocate.d.ts +55 -0
  49. package/dist/interfaces/storage-location-declaration.d.ts +1 -0
  50. package/dist/interfaces/storage-location.d.ts +4 -0
  51. package/dist/interfaces/stream-broker.d.ts +1 -1
  52. package/dist/lifecycle/job.d.ts +6 -6
  53. package/dist/node.js +1 -0
  54. package/dist/node.mjs +1 -0
  55. package/dist/notification/condition-taxonomy.d.ts +61 -0
  56. package/dist/notification/format-transcode.d.ts +12 -1
  57. package/dist/{sleep-C3ceNSsf.mjs → sleep-Ct4Is70g.mjs} +6 -0
  58. package/dist/{sleep-DRg9F6JJ.js → sleep-yfPaamGa.js} +6 -0
  59. package/package.json +1 -1
  60. package/dist/interfaces/recording-config-migrate.d.ts +0 -12
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as ProfileSlotSchema, A as parseJsonUnknown, B as BrokerStatsSchema, C as asBoolean, Ct as DisposerChain, D as asString, E as asNumber, F as ReadinessRegistry, G as CamStreamResolutionSchema, H as CAM_PROFILE_ORDER, I as ReadinessTimeoutError, J as DecodedFrameSchema, K as CameraStreamSchema, L as emitDownForOwnedCaps, M as nodePin, N as readNodePin, O as parseJsonArray, P as DATAPLANE_SECRET_HEADER, Q as ProfileRtspEntrySchema, R as readinessKey, S as DeviceType, St as resolveHydratedFieldValue, T as asJsonObject, U as CamProfileSchema, V as BrokerStatusSchema, W as CamStreamKindSchema, X as FrameHandleFormatSchema, Y as EncodedPacketSchema, Z as FrameHandleSchema, _ as resolveCapMount, _t as WELL_KNOWN_TABS, a as viewerUiCapability, at as SubscribeFramesInputSchema, b as DeviceFeature, bt as collectHydratedFieldValues, c as createLazyTrpcSource, ct as makeSourceBrokerId, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as BaseAddon, et as ProfileSlotStatusSchema, f as DEVICE_STATUS_METHOD, ft as normalizeAddonInitResult, g as method, gt as isEvent, h as isDeviceConfigCap, ht as emitReadiness, i as deviceOpsCapability, it as SubscribeAudioChunksResultSchema, j as CAP_NODE_PIN_CONTEXT_KEY, k as parseJsonObject, l as createMirrorSource, lt as parseProfileBrokerId, m as expandCapMethods, mt as createEvent, n as sleepCancellable, nt as StreamSourceSchema, o as adminUiCapability, ot as SubscribeFramesResultSchema, p as event, pt as createDurableState, q as DecodedAudioChunkSchema, r as RawStateResultSchema, rt as SubscribeAudioChunksInputSchema, s as createDeviceProxy, st as makeProfileBrokerId, t as sleep, tt as StreamSourceEntrySchema, u as createSliceHandle, ut as selectAssignedProfileSlots, v as systemMethod, vt as WELL_KNOWN_TAB_MAP, w as asJsonArray, x as DeviceRole, xt as hydrateSchema, y as ChargingStatus, yt as collectHydratedFieldEntries, z as scopeKey } from "./sleep-C3ceNSsf.mjs";
1
+ import { $ as ProfileSlotSchema, A as parseJsonUnknown, B as BrokerStatsSchema, C as asBoolean, Ct as DisposerChain, D as asString, E as asNumber, F as ReadinessRegistry, G as CamStreamResolutionSchema, H as CAM_PROFILE_ORDER, I as ReadinessTimeoutError, J as DecodedFrameSchema, K as CameraStreamSchema, L as emitDownForOwnedCaps, M as nodePin, N as readNodePin, O as parseJsonArray, P as DATAPLANE_SECRET_HEADER, Q as ProfileRtspEntrySchema, R as readinessKey, S as DeviceType, St as resolveHydratedFieldValue, T as asJsonObject, U as CamProfileSchema, V as BrokerStatusSchema, W as CamStreamKindSchema, X as FrameHandleFormatSchema, Y as EncodedPacketSchema, Z as FrameHandleSchema, _ as resolveCapMount, _t as WELL_KNOWN_TABS, a as viewerUiCapability, at as SubscribeFramesInputSchema, b as DeviceFeature, bt as collectHydratedFieldValues, c as createLazyTrpcSource, ct as makeSourceBrokerId, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as BaseAddon, et as ProfileSlotStatusSchema, f as DEVICE_STATUS_METHOD, ft as normalizeAddonInitResult, g as method, gt as isEvent, h as isDeviceConfigCap, ht as emitReadiness, i as deviceOpsCapability, it as SubscribeAudioChunksResultSchema, j as CAP_NODE_PIN_CONTEXT_KEY, k as parseJsonObject, l as createMirrorSource, lt as parseProfileBrokerId, m as expandCapMethods, mt as createEvent, n as sleepCancellable, nt as StreamSourceSchema, o as adminUiCapability, ot as SubscribeFramesResultSchema, p as event, pt as createDurableState, q as DecodedAudioChunkSchema, r as RawStateResultSchema, rt as SubscribeAudioChunksInputSchema, s as createDeviceProxy, st as makeProfileBrokerId, t as sleep, tt as StreamSourceEntrySchema, u as createSliceHandle, ut as selectAssignedProfileSlots, v as systemMethod, vt as WELL_KNOWN_TAB_MAP, w as asJsonArray, x as DeviceRole, xt as hydrateSchema, y as ChargingStatus, yt as collectHydratedFieldEntries, z as scopeKey } from "./sleep-Ct4Is70g.mjs";
2
2
  import { t as EventCategory } from "./event-category-BLcNejAE.mjs";
3
3
  import { EventSourceType } from "./enums.mjs";
4
4
  import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
@@ -791,35 +791,22 @@ var EVENT_PAD_MS = {
791
791
  */
792
792
  var RecordingWeekdaySchema = z.number().int().min(0).max(6);
793
793
  var HHMM = /^([01]\d|2[0-3]):[0-5]\d$/;
794
- var RecordingScheduleSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("always") }), z.object({
795
- kind: z.literal("timeOfDay"),
796
- start: z.string().regex(HHMM),
797
- end: z.string().regex(HHMM),
798
- /** Restrict to these weekdays; omit = every day. */
799
- days: z.array(RecordingWeekdaySchema).optional()
800
- })]);
801
- var RecordingModeSchema = z.enum([
802
- "continuous",
803
- "onMotion",
804
- "onAudioThreshold"
805
- ]);
806
794
  /**
807
- * First-class, authoritative per-camera storage mode — the explicit choice the
808
- * UI reads directly (never inferred from `rules`):
809
- * - `off` — not recording.
810
- * - `events` — record only around triggers (motion / audio threshold),
811
- * with pre/post-buffer.
812
- * - `continuous` — record 24/7 within the schedule.
795
+ * DERIVED per-camera storage summary — the single field cheap consumers read
796
+ * (the viewer's status dot, the camera list) instead of walking `bands`:
797
+ * - `off` — no band covers the camera (or it is disabled).
798
+ * - `events` — every band records around triggers only.
799
+ * - `continuous` — at least one band records continuously.
813
800
  *
814
- * `mode` compiles one-way to the internal `rules[]` consumed by the policy
815
- * engine (see `compileRules`); `rules[]` is never authored directly anymore.
801
+ * NEVER authored: the recorder stamps it from the authoritative `bands` on
802
+ * every save (`activeModeForConfig`). Writing it has no effect.
816
803
  */
817
804
  var RecordingStorageModeSchema = z.enum([
818
805
  "off",
819
806
  "events",
820
807
  "continuous"
821
808
  ]);
822
- /** Which detectors trigger an `events`-mode recording. */
809
+ /** Which detectors trigger an `events`-mode band. */
823
810
  var RecordingTriggersSchema = z.object({
824
811
  motion: z.boolean().optional(),
825
812
  audioThresholdDbfs: z.number().optional()
@@ -855,18 +842,6 @@ var RecordingBandSchema = z.object({
855
842
  preBufferSec: z.number().min(0).optional(),
856
843
  postBufferSec: z.number().min(0).optional()
857
844
  });
858
- var RecordingRuleSchema = z.object({
859
- schedule: RecordingScheduleSchema,
860
- mode: RecordingModeSchema,
861
- /** Seconds of footage to retain BEFORE a trigger (applied at keep/discard). */
862
- preBufferSec: z.number().min(0).default(0),
863
- /** Keep recording until this many seconds after the last trigger. */
864
- postBufferSec: z.number().min(0).default(0),
865
- /** Each new trigger restarts the post-buffer window. */
866
- resetTimeoutOnNewEvent: z.boolean().default(true),
867
- /** onAudioThreshold only — dBFS level that counts as a trigger. */
868
- thresholdDbfs: z.number().optional()
869
- });
870
845
  /**
871
846
  * Per-device retention overrides. Every field is optional; an unset or `0`
872
847
  * value inherits the node-wide recorder default. Only footage-lifetime limits
@@ -959,40 +934,28 @@ function resolveScrubThumbnailGeometry(preset) {
959
934
  /**
960
935
  * The full per-camera recording intent — the wire shape of a RecordingTarget.
961
936
  *
962
- * `mode` is the authoritative storage choice; `schedule`/`triggers`/`pre`/`post`
963
- * are its mode-specific parameters. `rules` is a DEPRECATED authoring input kept
964
- * only for transition + migration (`migrateRulesToMode`); the policy engine
965
- * consumes the compiled output of `compileRules(config)`, never `rules` directly.
937
+ * `bands` is the ONLY authored recording intent: what to record, when, and on
938
+ * which trigger. `mode` is a derived summary the recorder stamps on save; every
939
+ * other field is a storage knob (profiles, segment length, retention, scrub).
940
+ *
941
+ * STRICT on purpose: the legacy authoring surface (`schedule`/`schedules`/
942
+ * `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30.
943
+ * A stale caller must fail loudly — silently stripping its legacy intent would
944
+ * persist a band-less config, i.e. silently stop recording the camera.
966
945
  */
967
946
  var RecordingConfigSchema = z.object({
968
947
  enabled: z.boolean(),
969
- /** Authoritative storage mode. Absent on legacy targets derived once via
970
- * `migrateRulesToMode`, then persisted. */
948
+ /** DERIVED summary of `bands`, stamped by the recorder on every save.
949
+ * Authoring it has no effect — see {@link RecordingStorageModeSchema}. */
971
950
  mode: RecordingStorageModeSchema.optional(),
972
951
  profiles: z.array(CamProfileSchema).optional(),
973
952
  segmentSeconds: z.number().int().positive().optional(),
974
- /** Shared recording time-bands for `events` & `continuous` — record only when
975
- * the wall-clock falls inside one of these windows. Omit or empty = always.
976
- * `continuous` compiles to one rule per band; `events` to band × trigger. */
977
- schedules: z.array(RecordingScheduleSchema).optional(),
978
- /** Legacy single-band predecessor of `schedules`. Read-compat only — it is
979
- * normalized into `schedules` on read and never written going forward. (Not
980
- * tagged `@deprecated`: the normalization paths must read it cast-free.) */
981
- schedule: RecordingScheduleSchema.optional(),
982
- /** `events`-mode only — which detectors trigger a recording. */
983
- triggers: RecordingTriggersSchema.optional(),
984
- /** `events`-mode only — seconds retained before / after a trigger. */
985
- preBufferSec: z.number().min(0).optional(),
986
- postBufferSec: z.number().min(0).optional(),
987
- /** DEPRECATED authoring input; retained for migration/transition. */
988
- rules: z.array(RecordingRuleSchema).optional(),
989
953
  /**
990
- * AUTHORITATIVE mode-per-band recording model (recorder). When present it
991
- * is the single source of truth; the legacy `mode`/`schedules`/`schedule`/
992
- * `triggers`/`rules` fields above are kept for READ-COMPAT only and are
993
- * derived into bands once via `migrateConfigToBands`.
954
+ * AUTHORITATIVE mode-per-band recording model the single source of truth
955
+ * the recorder's band engine consumes. An empty array = record nothing;
956
+ * "off" is the absence of a covering band, never a band value.
994
957
  */
995
- bands: z.array(RecordingBandSchema).optional(),
958
+ bands: z.array(RecordingBandSchema).default([]),
996
959
  retention: RecordingRetentionSchema.optional(),
997
960
  /**
998
961
  * Per-camera scrub-thumbnail fidelity preset (resolution + JPEG quality for
@@ -1000,62 +963,30 @@ var RecordingConfigSchema = z.object({
1000
963
  * windows only — existing sheets are immutable, and each window's index
1001
964
  * carries its own tile dims so mixed-preset history renders correctly.
1002
965
  */
1003
- scrubThumbnails: ScrubThumbnailPresetSchema.optional()
1004
- });
1005
- //#endregion
1006
- //#region src/interfaces/recording-config-migrate.ts
1007
- /** All seven weekdays (0 = Sunday 6 = Saturday), used when a schedule omits a
1008
- * weekday filter. */
1009
- var ALL_DAYS = [
1010
- 0,
1011
- 1,
1012
- 2,
1013
- 3,
1014
- 4,
1015
- 5,
1016
- 6
1017
- ];
1018
- /** Full-day span used to represent an `always` schedule as a band. The `HHMM`
1019
- * regex maxes out at 23:59, so a 00:00–23:59 same-day span all-day (the band
1020
- * engine treats `end > start` as a normal, non-wrapping span). */
1021
- var ALL_DAY_START = "00:00";
1022
- var ALL_DAY_END = "23:59";
1023
- function bandFromSchedule(schedule, mode, config) {
1024
- const days = schedule.kind === "timeOfDay" && schedule.days ? schedule.days : [...ALL_DAYS];
1025
- const start = schedule.kind === "timeOfDay" ? schedule.start : ALL_DAY_START;
1026
- const end = schedule.kind === "timeOfDay" ? schedule.end : ALL_DAY_END;
1027
- if (mode === "continuous") return {
1028
- days,
1029
- start,
1030
- end,
1031
- mode
1032
- };
1033
- return {
1034
- days,
1035
- start,
1036
- end,
1037
- mode,
1038
- ...config.triggers ? { triggers: config.triggers } : {},
1039
- ...config.preBufferSec !== void 0 ? { preBufferSec: config.preBufferSec } : {},
1040
- ...config.postBufferSec !== void 0 ? { postBufferSec: config.postBufferSec } : {}
1041
- };
1042
- }
1043
- /**
1044
- * One-way migration from the legacy recording-config shape to the authoritative
1045
- * mode-per-band model. Pure (no clock access).
1046
- *
1047
- * - If `config.bands` is present, it is authoritative and returned as-is.
1048
- * - Otherwise the result is derived from the legacy fields: a disabled config or
1049
- * `mode: 'off'` yields no bands; every legacy schedule maps to one band whose
1050
- * mode is `continuous` when `config.mode === 'continuous'`, else `events`
1051
- * (carrying `triggers`/`preBufferSec`/`postBufferSec`).
1052
- */
1053
- function migrateConfigToBands(config) {
1054
- if (config.bands) return config.bands;
1055
- if (!config.enabled || config.mode === "off") return [];
1056
- const schedules = config.schedules ?? (config.schedule ? [config.schedule] : [{ kind: "always" }]);
1057
- const bandMode = config.mode === "continuous" ? "continuous" : "events";
1058
- return schedules.map((schedule) => bandFromSchedule(schedule, bandMode, config));
966
+ scrubThumbnails: ScrubThumbnailPresetSchema.optional(),
967
+ /**
968
+ * OPT-IN thumbnail-strip generation for this camera: every keyframe of the
969
+ * low recording saved as a JPEG (the fast-drag scrub depth), a derived
970
+ * cache that eviction reclaims with the footage. Absent/false = no strips
971
+ * are written and scrub reads exact keyframes at every velocity.
972
+ */
973
+ stripsEnabled: z.boolean().optional()
974
+ }).strict();
975
+ /**
976
+ * Derive the {@link RecordingStorageModeSchema} summary from the authoritative
977
+ * bands: `continuous` when any band records continuously, `events` when a band
978
+ * exists at all, else `off`. Pure.
979
+ *
980
+ * THE one definition: the recorder stamps `config.mode` with it on save and
981
+ * reports it as the cap's `activeMode`, and the settings UI reads it back to
982
+ * decide which authoring tab a config opens in. Two copies would drift, and the
983
+ * symptom (a status dot disagreeing with what is being recorded) is exactly the
984
+ * bug this field was added to fix.
985
+ */
986
+ function deriveRecordingMode(config) {
987
+ if (!config.enabled || config.bands.length === 0) return "off";
988
+ if (config.bands.some((band) => band.mode === "continuous")) return "continuous";
989
+ return "events";
1059
990
  }
1060
991
  //#endregion
1061
992
  //#region src/interfaces/ops-log.ts
@@ -1077,7 +1008,8 @@ var OpsLogOpSchema = z.enum([
1077
1008
  "prune",
1078
1009
  "manual-delete",
1079
1010
  "rescan",
1080
- "retention-run"
1011
+ "retention-run",
1012
+ "relocate"
1081
1013
  ]);
1082
1014
  /** Why the operation ran. */
1083
1015
  var OpsLogReasonSchema = z.enum([
@@ -1123,6 +1055,57 @@ var OPS_LOG_RING_DEFAULT_MAX = 500;
1123
1055
  /** Default page size for a `listOpsLog` query when the caller omits `limit`. */
1124
1056
  var OPS_LOG_DEFAULT_LIMIT = 200;
1125
1057
  //#endregion
1058
+ //#region src/interfaces/relocate.ts
1059
+ /**
1060
+ * Entity-relocation job state (storage entity-routing spec, Phase 4).
1061
+ *
1062
+ * One shape shared by the recorder's `relocateFootage` (segments + strips) and
1063
+ * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
1064
+ * page renders both movers with one component. Jobs are in-RAM (a restart
1065
+ * forgets them — re-running is safe by construction: copy-if-absent, delete
1066
+ * after verify) and each completed/failed run also lands one durable ops-log
1067
+ * row on the owning addon's surface.
1068
+ */
1069
+ var RelocateJobStateSchema = z.enum([
1070
+ "running",
1071
+ "done",
1072
+ "failed",
1073
+ "cancelled"
1074
+ ]);
1075
+ var RelocateJobSchema = z.object({
1076
+ jobId: z.string(),
1077
+ state: RelocateJobStateSchema,
1078
+ /** Source location — for media relocation this is informational ('*': rows
1079
+ * move from wherever they are to the target). */
1080
+ fromLocationId: z.string(),
1081
+ toLocationId: z.string(),
1082
+ /** Scoped device, or null = every device. */
1083
+ deviceId: z.number().nullable(),
1084
+ /** What the job moves (owner-addon specific: segments/strips or media). */
1085
+ entities: z.array(z.string()),
1086
+ filesMoved: z.number().int(),
1087
+ bytesMoved: z.number().int(),
1088
+ /** Total files discovered up front; null while (or when) unknown. */
1089
+ filesTotal: z.number().int().nullable(),
1090
+ startedAt: z.number(),
1091
+ finishedAt: z.number().nullable(),
1092
+ error: z.string().nullable()
1093
+ });
1094
+ var RelocateFootageInputSchema = z.object({
1095
+ deviceId: z.number().optional(),
1096
+ fromLocationId: z.string(),
1097
+ toLocationId: z.string(),
1098
+ entities: z.array(z.enum(["segments", "strips"])).optional(),
1099
+ /** Copy throttle in MB/s (default 40) — the drain is a background chore,
1100
+ * never allowed to starve live writers. */
1101
+ throttleMbps: z.number().min(1).max(1e3).optional()
1102
+ });
1103
+ var RelocateMediaInputSchema = z.object({
1104
+ deviceId: z.number().optional(),
1105
+ toLocationId: z.string(),
1106
+ throttleMbps: z.number().min(1).max(1e3).optional()
1107
+ });
1108
+ //#endregion
1126
1109
  //#region src/interfaces/logging.ts
1127
1110
  /**
1128
1111
  * Severity ordering. Declared once here because it had already been re-declared
@@ -1196,6 +1179,13 @@ var StorageLocationSchema = z.object({
1196
1179
  nodeId: z.string().optional(),
1197
1180
  isDefault: z.boolean().default(false),
1198
1181
  isSystem: z.boolean().default(false),
1182
+ /** COMPUTED at read time by the orchestrator (statfs of the backing volume
1183
+ * for node-local locations it can reach) — never persisted, absent when the
1184
+ * volume is remote/unreachable. The single capacity truth every UI reads. */
1185
+ capacity: z.object({
1186
+ totalBytes: z.number(),
1187
+ availableBytes: z.number()
1188
+ }).nullable().optional(),
1199
1189
  createdAt: z.number(),
1200
1190
  updatedAt: z.number()
1201
1191
  });
@@ -1259,16 +1249,23 @@ var StorageLocationDeclarationSchema = z.object({
1259
1249
  * Which node root the seeded `<id>:default` instance is placed under on a
1260
1250
  * FRESH install:
1261
1251
  * - `'data'` (default) — the node's data dir (`CAMSTACK_DATA` / boot dir),
1262
- * the appData volume. Right for small/durable data (backups, logs, models).
1252
+ * the appData volume. Right for small/durable data (logs, models).
1263
1253
  * - `'media'` — the dedicated media volume (`CAMSTACK_MEDIA_ROOT`) when that
1264
1254
  * env is set, else falls back to the data root. Right for bulky, hot media
1265
1255
  * (recordings, event media) that should stay off the appData disk.
1256
+ * - `'backup'` — the dedicated backup volume (`CAMSTACK_BACKUP_ROOT`, default
1257
+ * `/backups` in the image) so archives live on their own mount rather than
1258
+ * filling the appData disk. Falls back to the data root when unset.
1266
1259
  *
1267
1260
  * Only affects the seeded default's `basePath`; operators can repoint any
1268
1261
  * location afterwards, and a `defaultsTo` slot inherits its parent's root
1269
1262
  * regardless of this field. Absent (the common case) is treated as `'data'`.
1270
1263
  */
1271
- defaultRoot: z.enum(["data", "media"]).optional()
1264
+ defaultRoot: z.enum([
1265
+ "data",
1266
+ "media",
1267
+ "backup"
1268
+ ]).optional()
1272
1269
  });
1273
1270
  //#endregion
1274
1271
  //#region src/interfaces/device-capabilities/camera.ts
@@ -4336,9 +4333,20 @@ var DEGRADE_ORDER = {
4336
4333
  "markdown"
4337
4334
  ]
4338
4335
  };
4339
- /** Pick the best target format the kind supports for a given source format. */
4336
+ /**
4337
+ * Pick the best target format the kind supports for a given source format.
4338
+ *
4339
+ * TOLERANT of a source outside the union. `NotificationSchema.format` carries
4340
+ * `.default('text')`, but that default only runs where the schema is PARSED —
4341
+ * the tRPC router. A cap call arriving from another addon (`ctx.api`) skips
4342
+ * that parse, so `format` reaches here `undefined`, and the bare
4343
+ * `DEGRADE_ORDER[source]` threw `is not iterable`. That broke the one promise
4344
+ * the degrade path makes ("never throws — degradation is reported, never
4345
+ * surfaced as an error") and dead-lettered every Notification-Center delivery
4346
+ * for a day (2026-07-30). An unknown source degrades like `text`.
4347
+ */
4340
4348
  function resolveFormat(source, supported) {
4341
- for (const candidate of DEGRADE_ORDER[source]) if (supported.includes(candidate)) return candidate;
4349
+ for (const candidate of DEGRADE_ORDER[source] ?? DEGRADE_ORDER.text) if (supported.includes(candidate)) return candidate;
4342
4350
  return supported[0] ?? "text";
4343
4351
  }
4344
4352
  /** Transcode a body between formats. */
@@ -4385,7 +4393,7 @@ function resolveLevel(levels, n) {
4385
4393
  })[0]);
4386
4394
  }
4387
4395
  function splitBody(body, maxLen) {
4388
- if (maxLen <= 0 || body.length <= maxLen) return [body];
4396
+ if (!Number.isFinite(maxLen) || maxLen <= 0 || body.length <= maxLen) return [body];
4389
4397
  const parts = [];
4390
4398
  for (let i = 0; i < body.length; i += maxLen) parts.push(body.slice(i, i + maxLen));
4391
4399
  return parts;
@@ -4469,6 +4477,114 @@ function prepareNotification(caps, n) {
4469
4477
  };
4470
4478
  }
4471
4479
  //#endregion
4480
+ //#region src/notification/condition-taxonomy.ts
4481
+ /** Condition ids that render the class picker (video macros/subs + audio). */
4482
+ var CLASS_CONDITION_IDS = new Set(["classes", "classesExclude"]);
4483
+ /** Condition ids that render the sensor/control label picker. */
4484
+ var LABEL_CONDITION_IDS = new Set(["sensorKinds"]);
4485
+ function toOption(entry) {
4486
+ return {
4487
+ value: entry.kind,
4488
+ label: entry.label
4489
+ };
4490
+ }
4491
+ /**
4492
+ * Group detection entries by their macro. A macro entry (`parentKind === null`)
4493
+ * opens its own group and is itself the first option in it; subs fall under
4494
+ * their `parentKind`. First-appearance order is preserved, which is why
4495
+ * `buildNcTaxonomy` emits macros before their subs.
4496
+ */
4497
+ function groupVideoClasses(videoClasses) {
4498
+ const order = [];
4499
+ const byKey = /* @__PURE__ */ new Map();
4500
+ const ensure = (key, fallbackLabel) => {
4501
+ const existing = byKey.get(key);
4502
+ if (existing !== void 0) return existing;
4503
+ const created = {
4504
+ fallbackLabel,
4505
+ options: []
4506
+ };
4507
+ byKey.set(key, created);
4508
+ order.push(key);
4509
+ return created;
4510
+ };
4511
+ for (const entry of videoClasses) {
4512
+ const key = entry.parentKind ?? entry.kind;
4513
+ const group = ensure(key, entry.parentKind === null ? entry.label : key);
4514
+ group.options.push(toOption(entry));
4515
+ if (entry.parentKind === null) group.fallbackLabel = entry.label;
4516
+ }
4517
+ return order.flatMap((key) => {
4518
+ const group = byKey.get(key);
4519
+ return group === void 0 ? [] : [{
4520
+ key,
4521
+ fallbackLabel: group.fallbackLabel,
4522
+ options: group.options
4523
+ }];
4524
+ });
4525
+ }
4526
+ /** Group sensor/control labels by their category parent (`sensor` | `control`). */
4527
+ function groupLabels(labels) {
4528
+ const order = [];
4529
+ const byKey = /* @__PURE__ */ new Map();
4530
+ for (const entry of labels) {
4531
+ const key = entry.parentKind ?? "other";
4532
+ const existing = byKey.get(key);
4533
+ if (existing === void 0) {
4534
+ byKey.set(key, [toOption(entry)]);
4535
+ order.push(key);
4536
+ } else existing.push(toOption(entry));
4537
+ }
4538
+ return order.flatMap((key) => {
4539
+ const options = byKey.get(key);
4540
+ return options === void 0 ? [] : [{
4541
+ key,
4542
+ fallbackLabel: key,
4543
+ options
4544
+ }];
4545
+ });
4546
+ }
4547
+ /**
4548
+ * Build the grouped picker model for a condition id, or `null` when the
4549
+ * condition has no fixed vocabulary (→ free-text tag input).
4550
+ */
4551
+ function pickerForCondition(conditionId, taxonomy) {
4552
+ if (!taxonomy) return null;
4553
+ if (CLASS_CONDITION_IDS.has(conditionId)) {
4554
+ const groups = groupVideoClasses(taxonomy.videoClasses);
4555
+ if (taxonomy.audioKinds.length > 0) groups.push({
4556
+ key: "audio",
4557
+ fallbackLabel: "Audio",
4558
+ options: taxonomy.audioKinds.map(toOption)
4559
+ });
4560
+ return groups.length > 0 ? { groups } : null;
4561
+ }
4562
+ if (LABEL_CONDITION_IDS.has(conditionId)) {
4563
+ const groups = groupLabels(taxonomy.labels);
4564
+ return groups.length > 0 ? { groups } : null;
4565
+ }
4566
+ return null;
4567
+ }
4568
+ /** All option values across a picker's groups (for custom-value detection). */
4569
+ function knownValues(picker) {
4570
+ const set = /* @__PURE__ */ new Set();
4571
+ for (const group of picker.groups) for (const option of group.options) set.add(option.value);
4572
+ return set;
4573
+ }
4574
+ /**
4575
+ * The condition ids shown in the ALWAYS-VISIBLE area of a rule editor. Every
4576
+ * other catalog descriptor is advanced and lives behind an expander.
4577
+ *
4578
+ * Shared for the same reason as the picker model: two surfaces disagreeing
4579
+ * about what counts as "basic" is a worse outcome than either choice.
4580
+ */
4581
+ var NC_BASE_CONDITION_KEYS = ["devices", "classes"];
4582
+ var BASE_CONDITION_SET = new Set(NC_BASE_CONDITION_KEYS);
4583
+ /** True when a condition key belongs to the BASE surface. */
4584
+ function isBaseConditionKey(key) {
4585
+ return BASE_CONDITION_SET.has(key);
4586
+ }
4587
+ //#endregion
4472
4588
  //#region src/capabilities/mask-shape.ts
4473
4589
  /**
4474
4590
  * Shared geometry vocabulary for on-frame shape caps — privacy-mask,
@@ -4799,12 +4915,60 @@ var NcRuleTargetSchema = z.object({
4799
4915
  * - `keyFrame` — the clean scene frame (no subject box).
4800
4916
  * - `none` — no attachment.
4801
4917
  */
4802
- var NcMediaPolicySchema = z.object({ attach: z.enum([
4803
- "best",
4804
- "best-matching",
4805
- "keyFrame",
4806
- "none"
4807
- ]).default("best") });
4918
+ /**
4919
+ * WHAT THE PICTURE SHOWS — chosen explicitly, because the implicit ladders
4920
+ * conflate it with the selection strategy and betray the request: asking for
4921
+ * the clean scene frame on an object-event owner used to start at
4922
+ * `fullFrameBoxed`, i.e. the annotated frame (2026-07-30).
4923
+ * - `cropped` — the subject, tight. What "who is at the door" wants.
4924
+ * - `full` — the clean scene, no annotation. What "what is going on" wants.
4925
+ * - `boxed` — the scene WITH the detection boxes drawn, for verifying what
4926
+ * the pipeline actually saw.
4927
+ */
4928
+ var NcMediaFrameSchema = z.enum([
4929
+ "cropped",
4930
+ "full",
4931
+ "boxed"
4932
+ ]);
4933
+ var NcMediaPolicySchema = z.object({
4934
+ attach: z.enum([
4935
+ "best",
4936
+ "best-matching",
4937
+ "keyFrame",
4938
+ "none"
4939
+ ]).default("best"),
4940
+ /** What the still shows. Absent = `cropped` (the historical `best` shape). */
4941
+ frame: NcMediaFrameSchema.optional(),
4942
+ /** Crop the attached still to the rule's condition-zone bbox (padded) —
4943
+ * "show me the ZONE", not the whole scene or the subject crop. */
4944
+ zoneCrop: z.boolean().optional(),
4945
+ /**
4946
+ * Also attach a short GIF cut from the stream broker's clip ring around the
4947
+ * event — NOT from the recording, so the camera does not have to be
4948
+ * recording, and the window sits AROUND the moment instead of a segment
4949
+ * behind it. Fail-closed: a window the ring does not cover contributes no
4950
+ * gif, never a failed notification.
4951
+ */
4952
+ gif: z.boolean().optional(),
4953
+ /**
4954
+ * Also attach a short MP4 CLIP of the same cut. Same source and the same
4955
+ * fail-closed rule as `gif`. Prefer it where the backend takes video
4956
+ * (telegram, discord, zentik, webhook); backends that do not are handled by
4957
+ * the degrade engine, which drops the video and keeps the still.
4958
+ */
4959
+ clip: z.boolean().optional(),
4960
+ /** Seconds of footage BEFORE / AFTER the event instant. Defaults 3 / 7. */
4961
+ clipPreRollSec: z.number().int().min(0).max(30).optional(),
4962
+ clipPostRollSec: z.number().int().min(0).max(30).optional(),
4963
+ /**
4964
+ * Which stream profile the footage is cut from. Absent = the CHEAPEST
4965
+ * assigned profile: a notification is watched on a phone, so the 4K
4966
+ * rendition would burn CPU to produce a file the client downscales anyway.
4967
+ * A profile that is not assigned falls back to the cheapest, and the render
4968
+ * reports which one actually ran.
4969
+ */
4970
+ profile: CamProfileSchema.optional()
4971
+ });
4808
4972
  /** Throttle — cooldown survives restarts (rebuilt from the outbox on boot). */
4809
4973
  var NcThrottleSchema = z.object({
4810
4974
  cooldownSec: z.number().int().min(0).max(86400).default(60),
@@ -4818,7 +4982,19 @@ var NcRuleInputSchema = z.object({
4818
4982
  delivery: NcDeliverySchema,
4819
4983
  conditions: NcConditionsSchema.default({}),
4820
4984
  schedule: NcScheduleSchema.optional(),
4821
- targets: z.array(NcRuleTargetSchema).min(1),
4985
+ /** May be empty when `targetUsers` addresses at least one user — the
4986
+ * "at least one addressee" invariant is enforced by the provider, because
4987
+ * a cross-field refine here would break `NcRulePatchSchema.partial()`. */
4988
+ targets: z.array(NcRuleTargetSchema),
4989
+ /**
4990
+ * USERS this rule addresses in addition to `targets` (Phase 4). At fire
4991
+ * time each user fans out to the personal targets they own
4992
+ * (`config.ownerUserId`), filtered by that user's `allowedDevices` for the
4993
+ * firing camera — a user is never notified about a device they cannot open.
4994
+ * Per-user opt-outs (`disabledTargetIds`) still apply to the fanned-out
4995
+ * targets.
4996
+ */
4997
+ targetUsers: z.array(z.string()).optional(),
4822
4998
  media: NcMediaPolicySchema.default({ attach: "best" }),
4823
4999
  throttle: NcThrottleSchema.default({
4824
5000
  cooldownSec: 60,
@@ -5293,7 +5469,20 @@ var notificationRulesCapability = {
5293
5469
  kind: "mutation",
5294
5470
  auth: "admin"
5295
5471
  }),
5296
- getConditionCatalog: method(z.object({}), z.object({ catalog: z.array(NcConditionDescriptorSchema) })),
5472
+ /**
5473
+ * The machine-readable condition surface a rule editor renders from, plus
5474
+ * the picker VOCABULARY those conditions draw on.
5475
+ *
5476
+ * `taxonomy` is optional so an older provider that only returns `catalog`
5477
+ * still validates; a client that receives none keeps free-text inputs.
5478
+ * It was previously served ONLY on the `nc.getConditionCatalog` bridge
5479
+ * action, which is why the viewer had grouped pickers and the admin UI —
5480
+ * which reaches this cap — was stuck typing `person` from memory.
5481
+ */
5482
+ getConditionCatalog: method(z.object({}), z.object({
5483
+ catalog: z.array(NcConditionDescriptorSchema),
5484
+ taxonomy: NcTaxonomySchema.optional()
5485
+ })),
5297
5486
  /**
5298
5487
  * Queryable delivery history — a read-only view over the durable outbox
5299
5488
  * (fired rule, subject summary, target, status, timestamps, error on a
@@ -6382,6 +6571,48 @@ var streamBrokerCapability = {
6382
6571
  kind: "mutation",
6383
6572
  auth: "admin"
6384
6573
  }),
6574
+ /**
6575
+ * Render a short GIF or MP4 from the broker's PRE-BUFFER around an instant.
6576
+ *
6577
+ * The pre-buffer is the only source that already holds the seconds BEFORE
6578
+ * an event (it is what it exists for — "when an addon needs the last N
6579
+ * seconds of video for clip creation"). Cutting from recorded segments
6580
+ * cannot: only finalized segments are addressable and the one covering the
6581
+ * moment is still being written, so a segment-sourced clip is either
6582
+ * delayed or shows the approach instead of the event (operator,
6583
+ * 2026-07-30). It also means a camera does not have to be RECORDING to
6584
+ * produce a notification clip.
6585
+ *
6586
+ * Returns muxed BYTES, never packets: the frame plane never crosses a
6587
+ * process boundary at frame rate (D9/D18) — this is one compressed,
6588
+ * on-demand payload per notification.
6589
+ *
6590
+ * Waits up to `postRollSec` for the tail to accumulate, so the window is
6591
+ * CENTRED on `aroundMs`.
6592
+ */
6593
+ renderPreBufferClip: method(z.object({
6594
+ deviceId: z.number(),
6595
+ /** Absent = the LOWEST assigned profile — a notification attachment is
6596
+ * watched on a phone, and the cheap rendition is the right default. */
6597
+ profile: CamProfileSchema.optional(),
6598
+ aroundMs: z.number(),
6599
+ preRollSec: z.number().min(0).max(20).default(3),
6600
+ postRollSec: z.number().min(0).max(20).default(5),
6601
+ format: z.enum(["gif", "mp4"]).default("gif"),
6602
+ maxWidth: z.number().int().min(120).max(1920).default(480),
6603
+ /** GIF only — MP4 keeps the source cadence. */
6604
+ fps: z.number().int().min(1).max(15).default(5)
6605
+ }), z.object({
6606
+ base64: z.string(),
6607
+ mime: z.string(),
6608
+ bytes: z.number().int(),
6609
+ /** The profile actually rendered (what the default resolved to). */
6610
+ profile: CamProfileSchema,
6611
+ durationMs: z.number()
6612
+ }), {
6613
+ kind: "mutation",
6614
+ auth: "admin"
6615
+ }),
6385
6616
  listAllCameraStreams: method(z.void(), z.array(CameraStreamSchema).readonly()),
6386
6617
  listAllProfileSlots: method(z.void(), z.array(ProfileSlotSchema).readonly()),
6387
6618
  getBrokerStats: method(z.object({ brokerId: z.string() }), BrokerStatsSchema),
@@ -14268,7 +14499,10 @@ function createSystemProxy(api) {
14268
14499
  delete: (input) => dispatch("backup", "delete", "mutation", input),
14269
14500
  listArchives: (input) => dispatch("backup", "listArchives", "query", input),
14270
14501
  upsertDestinationPolicy: (input) => dispatch("backup", "upsertDestinationPolicy", "mutation", input),
14271
- previewSchedule: (input) => dispatch("backup", "previewSchedule", "query", input)
14502
+ previewSchedule: (input) => dispatch("backup", "previewSchedule", "query", input),
14503
+ listSchedules: (input) => dispatch("backup", "listSchedules", "query", input),
14504
+ upsertSchedule: (input) => dispatch("backup", "upsertSchedule", "mutation", input),
14505
+ deleteSchedule: (input) => dispatch("backup", "deleteSchedule", "mutation", input)
14272
14506
  },
14273
14507
  broker: {
14274
14508
  list: (input) => dispatch("broker", "list", "query", input),
@@ -14422,6 +14656,8 @@ function createSystemProxy(api) {
14422
14656
  list: (input) => dispatch("localNetwork", "list", "query", input),
14423
14657
  getPreferred: (input) => dispatch("localNetwork", "getPreferred", "query", input),
14424
14658
  getConnectionEndpoints: (input) => dispatch("localNetwork", "getConnectionEndpoints", "query", input),
14659
+ getNotificationEndpoint: (input) => dispatch("localNetwork", "getNotificationEndpoint", "query", input),
14660
+ setNotificationEndpoint: (input) => dispatch("localNetwork", "setNotificationEndpoint", "mutation", input),
14425
14661
  getAllowedAddresses: (input) => dispatch("localNetwork", "getAllowedAddresses", "query", input),
14426
14662
  setAllowedAddresses: (input) => dispatch("localNetwork", "setAllowedAddresses", "mutation", input),
14427
14663
  resetAllowlistToBestMatch: (input) => dispatch("localNetwork", "resetAllowlistToBestMatch", "mutation", input)
@@ -14592,7 +14828,10 @@ function createSystemProxy(api) {
14592
14828
  },
14593
14829
  recording: {
14594
14830
  getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input),
14595
- listOpsLog: (input) => dispatch("recording", "listOpsLog", "query", input)
14831
+ listOpsLog: (input) => dispatch("recording", "listOpsLog", "query", input),
14832
+ relocateFootage: (input) => dispatch("recording", "relocateFootage", "mutation", input),
14833
+ getRelocateStatus: (input) => dispatch("recording", "getRelocateStatus", "query", input),
14834
+ cancelRelocate: (input) => dispatch("recording", "cancelRelocate", "mutation", input)
14596
14835
  },
14597
14836
  recordingExport: {
14598
14837
  getExport: (input) => dispatch("recordingExport", "getExport", "query", input),
@@ -16300,6 +16539,41 @@ var LocationStatSchema = z.object({
16300
16539
  present: z.boolean()
16301
16540
  });
16302
16541
  /**
16542
+ * A backup schedule — the N:M "entry" that binds one cron cadence to a
16543
+ * SET of destination locations. Supersedes the per-location cron on
16544
+ * `BackupDestinationPolicy`: an operator creates a schedule, picks the
16545
+ * `backups` locations it should write to, and the orchestrator fans a
16546
+ * single archive out to all of them when the cron fires.
16547
+ *
16548
+ * `retentionCount` is per-schedule (D-decision 2026-07-28): every
16549
+ * location targeted by this schedule keeps this many archives from
16550
+ * this schedule's runs.
16551
+ *
16552
+ * `dataSources` optionally narrows which top-level state locations
16553
+ * (db, addons, tls, …) are archived; omitted = the orchestrator's
16554
+ * default full set.
16555
+ */
16556
+ var BackupScheduleSchema = z.object({
16557
+ /** Stable id. Generated by the orchestrator on first upsert if absent. */
16558
+ id: z.string(),
16559
+ /** Operator-facing display name. */
16560
+ label: z.string(),
16561
+ /** 5-field POSIX cron. Empty = disabled cadence (kept for editing). */
16562
+ cron: z.string(),
16563
+ /** Master on/off toggle for the whole schedule. */
16564
+ enabled: z.boolean(),
16565
+ /** `backups`-location ids this schedule writes to (fan-out set). */
16566
+ locationIds: z.array(z.string()).readonly(),
16567
+ /** Archives kept per targeted location for this schedule. */
16568
+ retentionCount: z.number().int().min(1).max(1e3),
16569
+ /** Optional subset of source locations to include; omitted = all. */
16570
+ dataSources: z.array(z.string()).readonly().optional(),
16571
+ /** ms-epoch of last successful run. */
16572
+ lastRunAt: z.number().optional(),
16573
+ /** ms-epoch of next computed firing (read-only, filled on list). */
16574
+ nextRunAt: z.number().optional()
16575
+ });
16576
+ /**
16303
16577
  * backup — singleton capability for backup management.
16304
16578
  *
16305
16579
  * Implemented by `local-backup` addon. Future providers (S3, rsync)
@@ -16326,7 +16600,14 @@ var backupCapability = {
16326
16600
  /** Subset of registered `backup-destination` addon ids to write to. */
16327
16601
  destinations: z.array(z.string()).optional(),
16328
16602
  locations: z.array(z.string()).optional(),
16329
- label: z.string().optional()
16603
+ label: z.string().optional(),
16604
+ /**
16605
+ * Per-run retention override applied to every targeted
16606
+ * destination. Used by schedule-driven runs (per-entry
16607
+ * retention). Omitted = each destination's own policy
16608
+ * retention (manual runs).
16609
+ */
16610
+ retentionCount: z.number().int().min(1).max(1e3).optional()
16330
16611
  }).optional(), z.array(BackupEntrySchema).readonly(), {
16331
16612
  kind: "mutation",
16332
16613
  auth: "admin"
@@ -16413,7 +16694,36 @@ var backupCapability = {
16413
16694
  ok: z.boolean(),
16414
16695
  error: z.string().optional(),
16415
16696
  nextRuns: z.array(z.number()).readonly()
16416
- }))
16697
+ })),
16698
+ /**
16699
+ * List every backup schedule (the N:M entries), each with its
16700
+ * computed `nextRunAt`. Powers the Schedules section of the
16701
+ * admin-UI Backups page.
16702
+ */
16703
+ listSchedules: method(z.void(), z.array(BackupScheduleSchema).readonly(), { auth: "admin" }),
16704
+ /**
16705
+ * Create or replace a schedule. An empty / absent `id` mints a new
16706
+ * one; a present `id` replaces in place. `cron` is validated
16707
+ * server-side; `locationIds` must reference existing `backups`
16708
+ * locations (unknown ids are dropped with a warning).
16709
+ */
16710
+ upsertSchedule: method(z.object({
16711
+ id: z.string().optional(),
16712
+ label: z.string(),
16713
+ cron: z.string(),
16714
+ enabled: z.boolean(),
16715
+ locationIds: z.array(z.string()).readonly(),
16716
+ retentionCount: z.number().int().min(1).max(1e3),
16717
+ dataSources: z.array(z.string()).readonly().optional()
16718
+ }), BackupScheduleSchema, {
16719
+ kind: "mutation",
16720
+ auth: "admin"
16721
+ }),
16722
+ /** Delete a schedule by id. Does not touch the target locations. */
16723
+ deleteSchedule: method(z.object({ id: z.string() }), z.void(), {
16724
+ kind: "mutation",
16725
+ auth: "admin"
16726
+ })
16417
16727
  }
16418
16728
  };
16419
16729
  //#endregion
@@ -19563,6 +19873,36 @@ var TargetKindSchema = z.object({
19563
19873
  icon: z.string(),
19564
19874
  /** Stamped by each provider so the concat-fanned catalog stays routable. */
19565
19875
  addonId: z.string(),
19876
+ /**
19877
+ * URL of the kind's bundled BRAND icon, served by the providing addon over
19878
+ * its own `addon-routes` surface (`/addon/<addonId>/icons/<kind>`). Absent
19879
+ * when the addon bundles no icon for that kind — the client then falls back
19880
+ * to a neutral glyph rather than rendering the raw `icon` NAME as text.
19881
+ *
19882
+ * Root-relative on purpose: it resolves against whatever origin serves a web
19883
+ * client, and a native client joins it onto its own hub base.
19884
+ *
19885
+ * DECLARED here deliberately. It used to travel as an undeclared passthrough
19886
+ * field that survived only because the runtime cap-router forwards provider
19887
+ * output verbatim — so every consumer had to re-declare it by hand to stop
19888
+ * its own Zod parse from stripping it, and the whole arrangement would have
19889
+ * broken silently the moment output validation was tightened anywhere.
19890
+ */
19891
+ iconUrl: z.string().optional(),
19892
+ /**
19893
+ * Media type of {@link iconUrl} (`image/svg+xml`, `image/png`, …).
19894
+ *
19895
+ * The server knows this and therefore says it, because the client cannot
19896
+ * safely guess: a React-Native client renders SVG and raster through two
19897
+ * DIFFERENT components (`react-native-svg` vs `expo-image` — expo-image does
19898
+ * not decode SVG on iOS/Android), so without this it silently fell back to a
19899
+ * placeholder glyph for every vector icon while the web build looked fine.
19900
+ *
19901
+ * Absent when {@link iconUrl} is absent, or for a legacy provider that has
19902
+ * not been updated — a client that cannot determine the type should prefer
19903
+ * its raster path, which is the safe default for an unknown image.
19904
+ */
19905
+ iconMediaType: z.string().optional(),
19566
19906
  configSchema: ConfigSchemaPassthrough,
19567
19907
  supportsDiscovery: z.boolean(),
19568
19908
  caps: TargetKindCapsSchema
@@ -20441,6 +20781,23 @@ var pipelineAnalyticsCapability = {
20441
20781
  }),
20442
20782
  /** The events ops-log rows (newest-first), optionally scoped to one camera.
20443
20783
  * Backed by a declared pipeline-analytics SQLite collection. */
20784
+ /**
20785
+ * Move event-media blobs onto `toLocationId` (entity-routing spec Phase
20786
+ * 4): per-row copy → stamp row.locationId → delete old blob. Rows already
20787
+ * at the target are skipped, so a re-run resumes. Single-flight.
20788
+ */
20789
+ relocateMedia: method(RelocateMediaInputSchema, z.object({ jobId: z.string() }), {
20790
+ kind: "mutation",
20791
+ auth: "admin"
20792
+ }),
20793
+ getMediaRelocateStatus: method(z.object({}), z.array(RelocateJobSchema).readonly(), {
20794
+ kind: "query",
20795
+ auth: "admin"
20796
+ }),
20797
+ cancelMediaRelocate: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
20798
+ kind: "mutation",
20799
+ auth: "admin"
20800
+ }),
20444
20801
  listOpsLog: method(OpsLogQueryInputSchema, z.array(OpsLogEntrySchema).readonly(), {
20445
20802
  kind: "query",
20446
20803
  auth: "admin"
@@ -24078,6 +24435,17 @@ var ConnectionEndpointSchema = z.object({
24078
24435
  priority: z.number()
24079
24436
  });
24080
24437
  var GetConnectionEndpointsResultSchema = z.object({ endpoints: z.array(ConnectionEndpointSchema).readonly() });
24438
+ /**
24439
+ * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
24440
+ * AUTO (resolved from the candidate ranking at send time); `resolved` reports
24441
+ * what AUTO currently picks, so the UI can show the effective value either way.
24442
+ */
24443
+ var NotificationEndpointSchema = z.object({
24444
+ /** The operator's explicit choice, or null for AUTO. */
24445
+ baseUrl: z.string().nullable(),
24446
+ /** What the ranking currently resolves to (null when nothing is reachable). */
24447
+ resolved: z.string().nullable()
24448
+ });
24081
24449
  var AllowedAddressesSchema = z.object({
24082
24450
  /**
24083
24451
  * Allowlist of interface addresses operators have explicitly opted
@@ -24129,6 +24497,26 @@ var localNetworkCapability = {
24129
24497
  scheme: z.enum(["http", "https"]).optional()
24130
24498
  }), GetConnectionEndpointsResultSchema),
24131
24499
  /**
24500
+ * The endpoint OUTBOUND artifacts must be addressed by — notification
24501
+ * attachment links and deep links. `baseUrl: null` means AUTO: the first
24502
+ * public candidate (a configured origin, then a connected tunnel, then the
24503
+ * LAN), never loopback.
24504
+ *
24505
+ * Why an explicit marker: the automatic ranking cannot know which of
24506
+ * several reachable addresses the RECIPIENT can actually open. A link is
24507
+ * consumed on someone's phone, off the LAN, possibly hours later — and a
24508
+ * link nobody can open is worse than no link, because the notification
24509
+ * arrives advertising media that 404s.
24510
+ */
24511
+ getNotificationEndpoint: method(z.void(), NotificationEndpointSchema),
24512
+ /**
24513
+ * Mark which endpoint notification artifacts use. `baseUrl: null` restores
24514
+ * AUTO. The value is stored verbatim (not an index into the candidate
24515
+ * list): interfaces come and go, and an index would silently re-point at a
24516
+ * different address after a reboot.
24517
+ */
24518
+ setNotificationEndpoint: method(z.object({ baseUrl: z.string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }),
24519
+ /**
24132
24520
  * Read the operator's allowlist. Empty = "auto" (no filter). Used
24133
24521
  * by the admin UI's address selector to seed its checkbox state.
24134
24522
  */
@@ -25240,7 +25628,12 @@ var RecordingDeviceUsageSchema = z.object({
25240
25628
  var RecordingLocationUsageSchema = z.object({
25241
25629
  /** StorageLocation id; null for the legacy/degraded single-root fallback. */
25242
25630
  locationId: z.string().nullable(),
25243
- /** Bytes of recordings stored on this location. */
25631
+ /** Every location id sharing this row's PHYSICAL volume (aliases). One row
25632
+ * is emitted per physical disk (2026-07-29): two locations on one root
25633
+ * previously rendered as two identical "disks" with a nonsensical used
25634
+ * split — hydrate attribution across aliases is arbitrary by nature. */
25635
+ locationIds: z.array(z.string()).optional(),
25636
+ /** Bytes of recordings stored on this PHYSICAL volume (all aliases). */
25244
25637
  usedBytes: z.number(),
25245
25638
  /** Free bytes on the location's volume; null when capacity is unknown (remote). */
25246
25639
  availableBytes: z.number().nullable(),
@@ -25396,6 +25789,77 @@ var recordingCapability = {
25396
25789
  listOpsLog: method(OpsLogQueryInputSchema, z.array(OpsLogEntrySchema).readonly(), {
25397
25790
  kind: "query",
25398
25791
  auth: "admin"
25792
+ }),
25793
+ /**
25794
+ * Move footage (segments and/or strips) from one recordings location to
25795
+ * another — the drain workflow's mover (entity-routing spec Phase 4).
25796
+ * Throttled copy → size-verify → delete source → index refresh; resumable
25797
+ * by construction (copy-if-absent). Single-flight: one job at a time.
25798
+ */
25799
+ /**
25800
+ * Render a short GIF from recorded footage around `aroundMs` (low profile,
25801
+ * palette-free ffmpeg gif). Synchronous — the window is a few seconds of
25802
+ * `low`, rendering in ~1-2s. Built for notification attachments: the
25803
+ * caller gets bytes, nothing persists. Fails when no footage covers the
25804
+ * window (camera not recording → caller skips the attachment).
25805
+ */
25806
+ renderGif: method(z.object({
25807
+ deviceId: z.number(),
25808
+ aroundMs: z.number(),
25809
+ preRollSec: z.number().min(0).max(30).default(2),
25810
+ postRollSec: z.number().min(0).max(30).default(5),
25811
+ maxWidth: z.number().int().min(120).max(1280).default(480),
25812
+ fps: z.number().int().min(1).max(15).default(5)
25813
+ }), z.object({
25814
+ gifBase64: z.string(),
25815
+ fromMs: z.number(),
25816
+ toMs: z.number()
25817
+ }), {
25818
+ kind: "mutation",
25819
+ auth: "admin"
25820
+ }),
25821
+ /**
25822
+ * Render a short MP4 clip from recorded footage around `aroundMs` — the
25823
+ * "send a clip, not a gif" notification attachment. Same window, source
25824
+ * and fail-closed contract as {@link renderGif}: no footage covering the
25825
+ * window ⇒ it throws and the caller ships no attachment. Re-encoded (never
25826
+ * stream-copied) so a concat across segments with different encoder
25827
+ * parameters still plays. Silent by contract.
25828
+ *
25829
+ * The returned window is SEGMENT-GRANULAR: the source playlist is built
25830
+ * from whole segments, so the clip starts at or before `fromMs` and ends
25831
+ * at or after `toMs` — overshoot bounded by one segment per side (an 8 s
25832
+ * ask over 4 s segments measured 12 s). `fromMs`/`toMs` report the window
25833
+ * ASKED for, not the encoded duration.
25834
+ */
25835
+ renderClip: method(z.object({
25836
+ deviceId: z.number(),
25837
+ aroundMs: z.number(),
25838
+ preRollSec: z.number().min(0).max(30).default(3),
25839
+ postRollSec: z.number().min(0).max(30).default(7),
25840
+ maxWidth: z.number().int().min(160).max(1920).default(640)
25841
+ }), z.object({
25842
+ clipBase64: z.string(),
25843
+ mime: z.string(),
25844
+ fromMs: z.number(),
25845
+ toMs: z.number(),
25846
+ bytes: z.number().int()
25847
+ }), {
25848
+ kind: "mutation",
25849
+ auth: "admin"
25850
+ }),
25851
+ relocateFootage: method(RelocateFootageInputSchema, z.object({ jobId: z.string() }), {
25852
+ kind: "mutation",
25853
+ auth: "admin"
25854
+ }),
25855
+ /** Every known relocate job (in-RAM, newest-first). */
25856
+ getRelocateStatus: method(z.object({}), z.array(RelocateJobSchema).readonly(), {
25857
+ kind: "query",
25858
+ auth: "admin"
25859
+ }),
25860
+ cancelRelocate: method(z.object({ jobId: z.string() }), z.object({ cancelled: z.boolean() }), {
25861
+ kind: "mutation",
25862
+ auth: "admin"
25399
25863
  })
25400
25864
  }
25401
25865
  };
@@ -27656,6 +28120,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27656
28120
  addonId: null,
27657
28121
  access: "delete"
27658
28122
  },
28123
+ "backup.deleteSchedule": {
28124
+ capName: "backup",
28125
+ capScope: "system",
28126
+ addonId: null,
28127
+ access: "delete"
28128
+ },
27659
28129
  "backup.getEntries": {
27660
28130
  capName: "backup",
27661
28131
  capScope: "system",
@@ -27686,6 +28156,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27686
28156
  addonId: null,
27687
28157
  access: "view"
27688
28158
  },
28159
+ "backup.listSchedules": {
28160
+ capName: "backup",
28161
+ capScope: "system",
28162
+ addonId: null,
28163
+ access: "view"
28164
+ },
27689
28165
  "backup.previewSchedule": {
27690
28166
  capName: "backup",
27691
28167
  capScope: "system",
@@ -27710,6 +28186,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
27710
28186
  addonId: null,
27711
28187
  access: "create"
27712
28188
  },
28189
+ "backup.upsertSchedule": {
28190
+ capName: "backup",
28191
+ capScope: "system",
28192
+ addonId: null,
28193
+ access: "create"
28194
+ },
27713
28195
  "battery.wakeForStream": {
27714
28196
  capName: "battery",
27715
28197
  capScope: "device",
@@ -29210,6 +29692,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
29210
29692
  addonId: null,
29211
29693
  access: "view"
29212
29694
  },
29695
+ "localNetwork.getNotificationEndpoint": {
29696
+ capName: "local-network",
29697
+ capScope: "system",
29698
+ addonId: null,
29699
+ access: "view"
29700
+ },
29213
29701
  "localNetwork.getPreferred": {
29214
29702
  capName: "local-network",
29215
29703
  capScope: "system",
@@ -29234,6 +29722,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
29234
29722
  addonId: null,
29235
29723
  access: "create"
29236
29724
  },
29725
+ "localNetwork.setNotificationEndpoint": {
29726
+ capName: "local-network",
29727
+ capScope: "system",
29728
+ addonId: null,
29729
+ access: "create"
29730
+ },
29237
29731
  "lockControl.lock": {
29238
29732
  capName: "lock-control",
29239
29733
  capScope: "device",
@@ -29876,6 +30370,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
29876
30370
  addonId: null,
29877
30371
  access: "create"
29878
30372
  },
30373
+ "pipelineAnalytics.cancelMediaRelocate": {
30374
+ capName: "pipeline-analytics",
30375
+ capScope: "device",
30376
+ addonId: null,
30377
+ access: "create"
30378
+ },
29879
30379
  "pipelineAnalytics.clearTracks": {
29880
30380
  capName: "pipeline-analytics",
29881
30381
  capScope: "device",
@@ -29930,6 +30430,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
29930
30430
  addonId: null,
29931
30431
  access: "view"
29932
30432
  },
30433
+ "pipelineAnalytics.getMediaRelocateStatus": {
30434
+ capName: "pipeline-analytics",
30435
+ capScope: "device",
30436
+ addonId: null,
30437
+ access: "view"
30438
+ },
29933
30439
  "pipelineAnalytics.getMotionEvents": {
29934
30440
  capName: "pipeline-analytics",
29935
30441
  capScope: "device",
@@ -30002,6 +30508,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30002
30508
  addonId: null,
30003
30509
  access: "create"
30004
30510
  },
30511
+ "pipelineAnalytics.relocateMedia": {
30512
+ capName: "pipeline-analytics",
30513
+ capScope: "device",
30514
+ addonId: null,
30515
+ access: "create"
30516
+ },
30005
30517
  "pipelineAnalytics.searchObjectEvents": {
30006
30518
  capName: "pipeline-analytics",
30007
30519
  capScope: "device",
@@ -30764,6 +31276,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30764
31276
  addonId: null,
30765
31277
  access: "create"
30766
31278
  },
31279
+ "recording.cancelRelocate": {
31280
+ capName: "recording",
31281
+ capScope: "system",
31282
+ addonId: null,
31283
+ access: "create"
31284
+ },
30767
31285
  "recording.deleteFootprint": {
30768
31286
  capName: "recording",
30769
31287
  capScope: "system",
@@ -30794,6 +31312,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
30794
31312
  addonId: null,
30795
31313
  access: "view"
30796
31314
  },
31315
+ "recording.getRelocateStatus": {
31316
+ capName: "recording",
31317
+ capScope: "system",
31318
+ addonId: null,
31319
+ access: "view"
31320
+ },
30797
31321
  "recording.getStorageUsage": {
30798
31322
  capName: "recording",
30799
31323
  capScope: "system",
@@ -30824,6 +31348,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
30824
31348
  addonId: null,
30825
31349
  access: "view"
30826
31350
  },
31351
+ "recording.relocateFootage": {
31352
+ capName: "recording",
31353
+ capScope: "system",
31354
+ addonId: null,
31355
+ access: "create"
31356
+ },
31357
+ "recording.renderClip": {
31358
+ capName: "recording",
31359
+ capScope: "system",
31360
+ addonId: null,
31361
+ access: "create"
31362
+ },
31363
+ "recording.renderGif": {
31364
+ capName: "recording",
31365
+ capScope: "system",
31366
+ addonId: null,
31367
+ access: "create"
31368
+ },
30827
31369
  "recording.rescanStorage": {
30828
31370
  capName: "recording",
30829
31371
  capScope: "system",
@@ -31418,6 +31960,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
31418
31960
  addonId: null,
31419
31961
  access: "create"
31420
31962
  },
31963
+ "streamBroker.renderPreBufferClip": {
31964
+ capName: "stream-broker",
31965
+ capScope: "system",
31966
+ addonId: null,
31967
+ access: "create"
31968
+ },
31421
31969
  "streamBroker.restartProfile": {
31422
31970
  capName: "stream-broker",
31423
31971
  capScope: "system",
@@ -32865,4 +33413,4 @@ function enumerateInferenceDevices(hw) {
32865
33413
  return out;
32866
33414
  }
32867
33415
  //#endregion
32868
- export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, 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, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, 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, 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, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, 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_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, 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, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcDeliverySchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleInputSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, 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, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, 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, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingModeSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingRuleSchema, RecordingScheduleSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RenderedAsSchema, ReportMotionInputSchema, 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, 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, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, migrateConfigToBands, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
33416
+ export { ACCESSORY_LABEL, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, 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, AutomationControlStatusSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, 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, 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, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusSchema, CameraStreamSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceLinkModeSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventSourceType, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionEvalError, ExpressionParseError, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelDefinitionSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, 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_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, 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, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcDeliverySchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleInputSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, 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, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, 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, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, 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, 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, TIMEZONES, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackProjectionSchema, TrackSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VibrationStatusSchema, VideoEncodeSchema, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, applyTransform, asBoolean, asJsonArray, asJsonObject, asNumber, asString, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildEventKindDescriptor, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, carbonMonoxideCapability, cellsToRects, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, cosineSimilarity, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dayNightCapability, decoderCapability, defaultDeviceFor, defineCustomActions, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateLinkExpression, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isEvent, isNode, isObjectInput, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickPreferredRtspEntry, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readNodePin, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, storageCapability, storageEvictableCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, supportedRuntimes, switchCapability, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, valveCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };