@camstack/addon-post-analysis 1.2.632 → 1.2.633

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 (15) hide show
  1. package/dist/{clip-model-registry-0ayA23hb.mjs → clip-model-registry-CCbbEBYS.mjs} +472 -73
  2. package/dist/{clip-model-registry-DYX14HE-.js → clip-model-registry-CeNmplcH.js} +489 -72
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-HmQ3SInG.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-ArpdWsMY.mjs} +2 -2
  7. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BQq3WNOE.mjs +26 -0
  8. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-MOlfkem8.mjs +26 -0
  9. package/dist/pipeline-analytics/{hostInit-CP1G3VOf.mjs → hostInit-g5HpKRU7.mjs} +2 -2
  10. package/dist/pipeline-analytics/index.js +108 -17
  11. package/dist/pipeline-analytics/index.mjs +108 -17
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BFPYidGl.mjs +0 -26
  15. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DdbV-R1z.mjs +0 -26
@@ -43764,6 +43764,381 @@ var _macroLookup = /* @__PURE__ */ new Map();
43764
43764
  for (const [k, v] of Object.entries(YAMNET_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
43765
43765
  for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
43766
43766
  /**
43767
+ * Palette entry ids (D939). Audio is the one gradient; `audio-*` leaves are
43768
+ * not entries. `heatmapScrub` is a mark, not an event kind.
43769
+ */
43770
+ var PALETTE_ENTRY_IDS = [
43771
+ "motion",
43772
+ "audio",
43773
+ "recording",
43774
+ "live",
43775
+ "heatmapScrub",
43776
+ "person",
43777
+ "vehicle",
43778
+ "animal",
43779
+ "package",
43780
+ "sensor",
43781
+ "control",
43782
+ "face",
43783
+ "plate",
43784
+ "car",
43785
+ "truck",
43786
+ "bus",
43787
+ "motorcycle",
43788
+ "bicycle",
43789
+ "airplane",
43790
+ "boat",
43791
+ "train",
43792
+ "bird",
43793
+ "dog",
43794
+ "cat",
43795
+ "horse",
43796
+ "sheep",
43797
+ "cow",
43798
+ "elephant",
43799
+ "bear",
43800
+ "zebra",
43801
+ "giraffe",
43802
+ "package-delivered",
43803
+ "package-picked-up",
43804
+ "suitcase",
43805
+ "backpack",
43806
+ "handbag",
43807
+ "contact",
43808
+ "motion-sensor",
43809
+ "smoke",
43810
+ "flood",
43811
+ "gas",
43812
+ "carbon-monoxide",
43813
+ "vibration",
43814
+ "tamper",
43815
+ "presence",
43816
+ "enum-sensor",
43817
+ "device-event",
43818
+ "lock",
43819
+ "cover",
43820
+ "switch",
43821
+ "siren",
43822
+ "button",
43823
+ "doorbell"
43824
+ ];
43825
+ var AUDIO_ENTRY_ID = "audio";
43826
+ /** Six rungs, quiet → loud. The opaque end is the entry's hex. */
43827
+ var AUDIO_GRADIENT_ALPHAS = [
43828
+ .3,
43829
+ .42,
43830
+ .55,
43831
+ .7,
43832
+ .85,
43833
+ 1
43834
+ ];
43835
+ var PALETTE_PRESET_IDS = [
43836
+ "camstack",
43837
+ "high-contrast",
43838
+ "okabe-ito"
43839
+ ];
43840
+ /** Frozen palette tables (D939). The spec refuses a table that breaks the rule. */
43841
+ var CAMSTACK_HEX = {
43842
+ motion: "#d946ef",
43843
+ audio: "#059eb8",
43844
+ recording: "#ef4444",
43845
+ live: "#8d7a00",
43846
+ heatmapScrub: "#4b32ff",
43847
+ person: "#11a64c",
43848
+ vehicle: "#3b82f6",
43849
+ animal: "#ea6a09",
43850
+ package: "#924667",
43851
+ sensor: "#624bbc",
43852
+ control: "#944d24",
43853
+ face: "#ed4f8d",
43854
+ plate: "#4b7027",
43855
+ car: "#9684cf",
43856
+ truck: "#0f9b89",
43857
+ bus: "#a734a9",
43858
+ motorcycle: "#c1133a",
43859
+ bicycle: "#0e6a9b",
43860
+ airplane: "#7c9928",
43861
+ boat: "#b17933",
43862
+ train: "#ad6ca3",
43863
+ bird: "#0f7c55",
43864
+ dog: "#c82700",
43865
+ cat: "#7268f2",
43866
+ horse: "#cb795e",
43867
+ sheep: "#b8636b",
43868
+ cow: "#cb2969",
43869
+ elephant: "#1158d2",
43870
+ bear: "#8d5e00",
43871
+ zebra: "#0097d6",
43872
+ giraffe: "#8f61bb",
43873
+ "package-delivered": "#cd3f9b",
43874
+ "package-picked-up": "#388a08",
43875
+ suitcase: "#666800",
43876
+ backpack: "#ec5022",
43877
+ handbag: "#a76ef8",
43878
+ contact: "#ab5a49",
43879
+ "motion-sensor": "#b95d1a",
43880
+ smoke: "#dd3858",
43881
+ flood: "#b31e7d",
43882
+ gas: "#5b70b5",
43883
+ "carbon-monoxide": "#7b4e8e",
43884
+ vibration: "#e65bba",
43885
+ tamper: "#98464b",
43886
+ presence: "#3a9468",
43887
+ "enum-sensor": "#7885f8",
43888
+ "device-event": "#8c43c8",
43889
+ lock: "#649653",
43890
+ cover: "#c67597",
43891
+ switch: "#7a812a",
43892
+ siren: "#ac5d7f",
43893
+ button: "#b276cd",
43894
+ doorbell: "#0087ab"
43895
+ };
43896
+ var CAMSTACK_FALLBACK = [
43897
+ "#b34dc7",
43898
+ "#1d7d34",
43899
+ "#db6b6c",
43900
+ "#a43d29",
43901
+ "#0e6ee6",
43902
+ "#29a10b",
43903
+ "#a98731",
43904
+ "#0181c6"
43905
+ ];
43906
+ var HIGH_CONTRAST_HEX = {
43907
+ motion: "#964360",
43908
+ audio: "#23a132",
43909
+ recording: "#2494ca",
43910
+ live: "#bd7e2b",
43911
+ heatmapScrub: "#ad6eea",
43912
+ person: "#62611e",
43913
+ vehicle: "#f4534c",
43914
+ animal: "#1556cd",
43915
+ package: "#9c4415",
43916
+ sensor: "#066c48",
43917
+ control: "#f2479f",
43918
+ face: "#139d8a",
43919
+ plate: "#909024",
43920
+ car: "#8e35ab",
43921
+ truck: "#bd0b2b",
43922
+ bus: "#7a88ca",
43923
+ motorcycle: "#e26725",
43924
+ bicycle: "#a6679b",
43925
+ airplane: "#7c5720",
43926
+ boat: "#467a1b",
43927
+ train: "#6f65a4",
43928
+ bird: "#cb717f",
43929
+ dog: "#c62490",
43930
+ cat: "#b36850",
43931
+ horse: "#1872ac",
43932
+ sheep: "#927939",
43933
+ cow: "#428a5c",
43934
+ elephant: "#d41160",
43935
+ bear: "#799453",
43936
+ zebra: "#a85455",
43937
+ giraffe: "#746be8",
43938
+ "package-delivered": "#824a80",
43939
+ "package-picked-up": "#614ac1",
43940
+ suitcase: "#2f77f3",
43941
+ backpack: "#fa476d",
43942
+ handbag: "#c14cbe",
43943
+ contact: "#c83921",
43944
+ "motion-sensor": "#a07ebd",
43945
+ smoke: "#a25b13",
43946
+ flood: "#526bab",
43947
+ gas: "#924938",
43948
+ "carbon-monoxide": "#bb7e53",
43949
+ vibration: "#b66182",
43950
+ tamper: "#3c6931",
43951
+ presence: "#6c851d",
43952
+ "enum-sensor": "#ad2d48",
43953
+ "device-event": "#5e9b04",
43954
+ lock: "#00a062",
43955
+ cover: "#ad8624",
43956
+ switch: "#d05259",
43957
+ siren: "#cd67b3",
43958
+ button: "#c9746a",
43959
+ doorbell: "#338eeb"
43960
+ };
43961
+ var HIGH_CONTRAST_FALLBACK = [
43962
+ "#817f3b",
43963
+ "#a0733e",
43964
+ "#8658b2",
43965
+ "#956301",
43966
+ "#bc652d",
43967
+ "#647331",
43968
+ "#a14c9e",
43969
+ "#d14e71"
43970
+ ];
43971
+ var OKABE_ITO_HEX = {
43972
+ motion: "#b88128",
43973
+ audio: "#1096c8",
43974
+ recording: "#009e73",
43975
+ live: "#9c8c22",
43976
+ heatmapScrub: "#0072b2",
43977
+ person: "#d55e00",
43978
+ vehicle: "#c0739f",
43979
+ animal: "#226d18",
43980
+ package: "#91446c",
43981
+ sensor: "#217b56",
43982
+ control: "#648647",
43983
+ face: "#c22998",
43984
+ plate: "#fa4575",
43985
+ car: "#956301",
43986
+ truck: "#2f77f3",
43987
+ bus: "#7a4e86",
43988
+ motorcycle: "#f54597",
43989
+ bicycle: "#bb3e75",
43990
+ airplane: "#e054c0",
43991
+ boat: "#457942",
43992
+ train: "#867afa",
43993
+ bird: "#88914c",
43994
+ dog: "#1556cd",
43995
+ cat: "#71702c",
43996
+ horse: "#9b4fa4",
43997
+ sheep: "#c0559d",
43998
+ cow: "#d14f65",
43999
+ elephant: "#98470f",
44000
+ bear: "#595896",
44001
+ zebra: "#96790e",
44002
+ giraffe: "#cb717b",
44003
+ "package-delivered": "#139d8a",
44004
+ "package-picked-up": "#906ead",
44005
+ suitcase: "#d02939",
44006
+ backpack: "#d41160",
44007
+ handbag: "#f64f54",
44008
+ contact: "#7258d2",
44009
+ "motion-sensor": "#b66182",
44010
+ smoke: "#627abb",
44011
+ flood: "#b86ae4",
44012
+ gas: "#a95261",
44013
+ "carbon-monoxide": "#c65d3c",
44014
+ vibration: "#7a40b7",
44015
+ tamper: "#914b34",
44016
+ presence: "#9481c3",
44017
+ "enum-sensor": "#ac6d47",
44018
+ "device-event": "#7b6fce",
44019
+ lock: "#c67662",
44020
+ cover: "#a6564d",
44021
+ switch: "#ad2c4e",
44022
+ siren: "#348e08",
44023
+ button: "#d27303",
44024
+ doorbell: "#55770f"
44025
+ };
44026
+ var OKABE_ITO_FALLBACK = [
44027
+ "#9a3784",
44028
+ "#a7392c",
44029
+ "#409d50",
44030
+ "#6987e7",
44031
+ "#ee5b3d",
44032
+ "#c0430d",
44033
+ "#af79b3",
44034
+ "#4b6628"
44035
+ ];
44036
+ /**
44037
+ * The display palette (D939). One table of colours, three presets, one
44038
+ * validator. Taxonomy colours and every consumer read this — there is no
44039
+ * second hex table.
44040
+ */
44041
+ var paletteHexSchema = string().regex(/^#[0-9a-f]{6}$/);
44042
+ var paletteSwatchSchema = discriminatedUnion("form", [object({
44043
+ form: literal("solid"),
44044
+ hex: paletteHexSchema
44045
+ }), object({
44046
+ form: literal("gradient"),
44047
+ hex: paletteHexSchema,
44048
+ alphas: array(number().gt(0).lte(1)).length(AUDIO_GRADIENT_ALPHAS.length)
44049
+ })]);
44050
+ var paletteReadySchema = object({
44051
+ status: literal("ready"),
44052
+ presetId: _enum(PALETTE_PRESET_IDS),
44053
+ customized: boolean(),
44054
+ source: _enum(["stored", "unconfigured"]),
44055
+ swatches: record(string(), paletteSwatchSchema),
44056
+ fallbacks: array(paletteHexSchema).length(8)
44057
+ });
44058
+ var paletteResultSchema = discriminatedUnion("status", [paletteReadySchema, object({
44059
+ status: literal("unknown"),
44060
+ reason: string()
44061
+ })]);
44062
+ var setPaletteInputSchema = union([object({ presetId: string() }), object({
44063
+ presetId: string(),
44064
+ overrides: record(string(), paletteSwatchSchema)
44065
+ })]);
44066
+ object({
44067
+ presetId: string(),
44068
+ overrides: record(string(), paletteSwatchSchema)
44069
+ });
44070
+ function solid(hex) {
44071
+ return {
44072
+ form: "solid",
44073
+ hex
44074
+ };
44075
+ }
44076
+ function audioGradient(hex) {
44077
+ return {
44078
+ form: "gradient",
44079
+ hex,
44080
+ alphas: [...AUDIO_GRADIENT_ALPHAS]
44081
+ };
44082
+ }
44083
+ function swatchesFrom(hexes) {
44084
+ const out = {};
44085
+ for (const id of PALETTE_ENTRY_IDS) {
44086
+ const hex = hexes[id];
44087
+ if (hex === void 0) throw new Error(`palette table missing ${id}`);
44088
+ out[id] = id === "audio" ? audioGradient(hex) : solid(hex);
44089
+ }
44090
+ return out;
44091
+ }
44092
+ function preset(id, name, hexes, fallbacks) {
44093
+ return {
44094
+ id,
44095
+ name,
44096
+ swatches: swatchesFrom(hexes),
44097
+ fallbacks
44098
+ };
44099
+ }
44100
+ var DISPLAY_PRESETS = [
44101
+ preset("camstack", "CamStack", CAMSTACK_HEX, CAMSTACK_FALLBACK),
44102
+ preset("high-contrast", "High contrast", HIGH_CONTRAST_HEX, HIGH_CONTRAST_FALLBACK),
44103
+ preset("okabe-ito", "Colour-blind safe", OKABE_ITO_HEX, OKABE_ITO_FALLBACK)
44104
+ ];
44105
+ function presetById(id) {
44106
+ return DISPLAY_PRESETS.find((item) => item.id === id);
44107
+ }
44108
+ function bundledCamstack() {
44109
+ const presetRow = presetById("camstack");
44110
+ if (presetRow === void 0) throw new Error("CamStack preset missing");
44111
+ return readyOf(presetRow, "unconfigured", false);
44112
+ }
44113
+ function readyOf(row, source, customized) {
44114
+ return {
44115
+ status: "ready",
44116
+ presetId: row.id,
44117
+ customized,
44118
+ source,
44119
+ swatches: row.swatches,
44120
+ fallbacks: [...row.fallbacks]
44121
+ };
44122
+ }
44123
+ function hashFallback(kind, fallbacks) {
44124
+ let hash = 0;
44125
+ for (let i = 0; i < kind.length; i++) hash = hash * 31 + (kind.codePointAt(i) ?? 0) >>> 0;
44126
+ const hex = fallbacks[hash % fallbacks.length];
44127
+ if (hex === void 0) throw new Error("display palette has no fallback colour");
44128
+ return hex;
44129
+ }
44130
+ /** Colour a kind paints with. Audio leaves share the audio gradient's hex. */
44131
+ function paintHex(swatches, fallbacks, kind) {
44132
+ const key = kind.trim().toLowerCase();
44133
+ if (key.startsWith("audio-")) {
44134
+ const audio = swatches[AUDIO_ENTRY_ID];
44135
+ return audio !== void 0 ? audio.hex : hashFallback(key, fallbacks);
44136
+ }
44137
+ const direct = swatches[key];
44138
+ if (direct !== void 0) return direct.hex;
44139
+ return hashFallback(key, fallbacks);
44140
+ }
44141
+ /**
43767
44142
  * Unified event-kind taxonomy — THE single source of truth for
43768
44143
  * `kind → { parentKind, category, level, color, iconId, labelKey, label,
43769
44144
  * icon }`.
@@ -43777,111 +44152,89 @@ for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set
43777
44152
  * - `addon-post-analysis/shared/frame/box-drawer.ts` (DEFAULT_COLOR)
43778
44153
  * - the COCO / audio class maps (macro ↔ sub relationships)
43779
44154
  *
43780
- * The DATA (serializable — color/iconId/labelKey/parentKind) lives here in
43781
- * `@camstack/types`. The UI-side mapping `iconId → lucide component` and
43782
- * `labelKey → t()` lives in `@camstack/ui-library`. UIs never hardcode a
43783
- * color or an icon: they read this dictionary (server descriptors carry the
43784
- * fields inline; the client resolves color/icon/label from `iconId`/`kind`).
44155
+ * The DATA (serializable — parentKind / iconId / labelKey) lives here in
44156
+ * `@camstack/types`. Colour is NOT a second table: each entry's `color` is
44157
+ * the bundled CamStack display palette (D939). The effective cluster palette
44158
+ * is the `display-palette` capability. The UI-side mapping `iconId → lucide
44159
+ * component` and `labelKey → t()` lives in `@camstack/ui-library`.
43785
44160
  *
43786
44161
  * Two levels only (v1 YAGNI): macro → sub. `person` is a leaf macro.
43787
44162
  */
43788
- var TAXONOMY_COLORS = {
43789
- motion: "#f59e0b",
43790
- audio: "#06b6d4",
43791
- person: "#22c55e",
43792
- vehicle: "#3b82f6",
43793
- animal: "#f97316",
43794
- package: "#a855f7",
43795
- sensor: "#8b5cf6",
43796
- control: "#10b981",
43797
- genericDetection: "#64748b"
43798
- };
43799
- /** Global default color when a kind is unknown (matches legacy box-drawer). */
43800
- var DEFAULT_EVENT_COLOR = "#22ff55";
43801
- var DETECTION_SUB_COLORS = {
43802
- car: "#f59e0b",
43803
- truck: "#d97706",
43804
- bus: "#b45309",
43805
- motorcycle: "#eab308",
43806
- bicycle: "#ca8a04",
43807
- airplane: "#60a5fa",
43808
- boat: "#2563eb",
43809
- train: "#1d4ed8",
43810
- bird: "#14b8a6",
43811
- dog: "#84cc16",
43812
- cat: "#f97316",
43813
- horse: "#a16207",
43814
- sheep: "#a3a3a3",
43815
- cow: "#78716c",
43816
- elephant: "#6b7280",
43817
- bear: "#7c2d12",
43818
- zebra: "#404040",
43819
- giraffe: "#d4a373"
43820
- };
44163
+ var BUNDLED_PALETTE = bundledCamstack();
44164
+ function kindColor(kind) {
44165
+ return paintHex(BUNDLED_PALETTE.swatches, BUNDLED_PALETTE.fallbacks, kind);
44166
+ }
44167
+ function firstFallback(fallbacks) {
44168
+ const hex = fallbacks[0];
44169
+ if (hex === void 0) throw new Error("display palette has no fallback colour");
44170
+ return hex;
44171
+ }
44172
+ /** Global default when a kind is unknown — the palette's first fallback. */
44173
+ var DEFAULT_EVENT_COLOR = firstFallback(BUNDLED_PALETTE.fallbacks);
43821
44174
  function titleCase(id) {
43822
44175
  return id.split(/[-_ ]/).filter((p) => p.length > 0).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join(" ");
43823
44176
  }
43824
44177
  var entries = /* @__PURE__ */ new Map();
43825
- function macro(kind, category, color, iconId, label) {
44178
+ function macro(kind, category, iconId, label) {
43826
44179
  entries.set(kind, {
43827
44180
  kind,
43828
44181
  parentKind: null,
43829
44182
  level: "macro",
43830
44183
  category,
43831
- color,
44184
+ color: kindColor(kind),
43832
44185
  iconId,
43833
44186
  labelKey: `eventKind.${kind}`,
43834
44187
  label
43835
44188
  });
43836
44189
  }
43837
- function sub(kind, parentKind, category, color, iconId, label) {
44190
+ function sub(kind, parentKind, category, iconId, label) {
43838
44191
  entries.set(kind, {
43839
44192
  kind,
43840
44193
  parentKind,
43841
44194
  level: "sub",
43842
44195
  category,
43843
- color,
44196
+ color: kindColor(kind),
43844
44197
  iconId,
43845
44198
  labelKey: `eventKind.${kind}`,
43846
44199
  label
43847
44200
  });
43848
44201
  }
43849
- macro("motion", "motion", TAXONOMY_COLORS.motion, "motion", "Motion");
43850
- macro("audio", "audio", TAXONOMY_COLORS.audio, "audio", "Audio");
43851
- macro("person", "detection", TAXONOMY_COLORS.person, "person", "Person");
43852
- macro("vehicle", "detection", TAXONOMY_COLORS.vehicle, "vehicle", "Vehicle");
43853
- macro("animal", "detection", TAXONOMY_COLORS.animal, "animal", "Animal");
43854
- macro("package", "package", TAXONOMY_COLORS.package, "package", "Package");
43855
- macro("sensor", "sensor", TAXONOMY_COLORS.sensor, "sensor", "Sensor");
43856
- macro("control", "control", TAXONOMY_COLORS.control, "control", "Control");
44202
+ macro("motion", "motion", "motion", "Motion");
44203
+ macro("audio", "audio", "audio", "Audio");
44204
+ macro("person", "detection", "person", "Person");
44205
+ macro("vehicle", "detection", "vehicle", "Vehicle");
44206
+ macro("animal", "detection", "animal", "Animal");
44207
+ macro("package", "package", "package", "Package");
44208
+ macro("sensor", "sensor", "sensor", "Sensor");
44209
+ macro("control", "control", "control", "Control");
43857
44210
  for (const [cocoClass, macroClass] of Object.entries(COCO_TO_MACRO.mapping)) {
43858
44211
  if (macroClass !== "vehicle" && macroClass !== "animal") continue;
43859
44212
  if (entries.has(cocoClass)) continue;
43860
- sub(cocoClass, macroClass, "detection", DETECTION_SUB_COLORS[cocoClass] ?? TAXONOMY_COLORS.genericDetection, cocoClass, titleCase(cocoClass));
43861
- }
43862
- sub("package-delivered", "package", "package", TAXONOMY_COLORS.package, "package", "Package delivered");
43863
- sub("package-picked-up", "package", "package", TAXONOMY_COLORS.package, "package", "Package picked up");
43864
- sub("contact", "sensor", "sensor", "#f59e0b", "door", "Contact");
43865
- sub("motion-sensor", "sensor", "sensor", TAXONOMY_COLORS.sensor, "pir", "Motion sensor");
43866
- sub("smoke", "sensor", "sensor", "#ef4444", "smoke", "Smoke");
43867
- sub("flood", "sensor", "sensor", "#3b82f6", "water", "Water leak");
43868
- sub("gas", "sensor", "sensor", "#ef4444", "gas", "Gas");
43869
- sub("carbon-monoxide", "sensor", "sensor", "#dc2626", "smoke", "Carbon monoxide");
43870
- sub("vibration", "sensor", "sensor", "#eab308", "vibration", "Vibration");
43871
- sub("tamper", "sensor", "sensor", "#f97316", "tamper", "Tamper");
43872
- sub("presence", "sensor", "sensor", "#22c55e", "presence", "Presence");
43873
- sub("enum-sensor", "sensor", "sensor", TAXONOMY_COLORS.sensor, "generic", "Sensor state");
43874
- sub("device-event", "sensor", "sensor", "#10b981", "button", "Device event");
43875
- sub("lock", "control", "control", "#0ea5e9", "lock", "Lock");
43876
- sub("cover", "control", "control", "#0ea5e9", "door", "Cover");
43877
- sub("switch", "control", "control", TAXONOMY_COLORS.control, "switch", "Switch");
43878
- sub("siren", "control", "control", "#dc2626", "siren", "Siren");
43879
- sub("button", "control", "control", "#10b981", "button", "Button");
43880
- sub("doorbell", "control", "control", "#a855f7", "doorbell", "Doorbell");
44213
+ sub(cocoClass, macroClass, "detection", cocoClass, titleCase(cocoClass));
44214
+ }
44215
+ sub("package-delivered", "package", "package", "package", "Package delivered");
44216
+ sub("package-picked-up", "package", "package", "package", "Package picked up");
44217
+ sub("contact", "sensor", "sensor", "door", "Contact");
44218
+ sub("motion-sensor", "sensor", "sensor", "pir", "Motion sensor");
44219
+ sub("smoke", "sensor", "sensor", "smoke", "Smoke");
44220
+ sub("flood", "sensor", "sensor", "water", "Water leak");
44221
+ sub("gas", "sensor", "sensor", "gas", "Gas");
44222
+ sub("carbon-monoxide", "sensor", "sensor", "smoke", "Carbon monoxide");
44223
+ sub("vibration", "sensor", "sensor", "vibration", "Vibration");
44224
+ sub("tamper", "sensor", "sensor", "tamper", "Tamper");
44225
+ sub("presence", "sensor", "sensor", "presence", "Presence");
44226
+ sub("enum-sensor", "sensor", "sensor", "generic", "Sensor state");
44227
+ sub("device-event", "sensor", "sensor", "button", "Device event");
44228
+ sub("lock", "control", "control", "lock", "Lock");
44229
+ sub("cover", "control", "control", "door", "Cover");
44230
+ sub("switch", "control", "control", "switch", "Switch");
44231
+ sub("siren", "control", "control", "siren", "Siren");
44232
+ sub("button", "control", "control", "button", "Button");
44233
+ sub("doorbell", "control", "control", "doorbell", "Doorbell");
43881
44234
  for (const l of AUDIO_MACRO_LABELS) {
43882
44235
  const kind = `audio-${l.id}`;
43883
44236
  if (entries.has(kind)) continue;
43884
- sub(kind, "audio", "audio", TAXONOMY_COLORS.audio, kind, l.name);
44237
+ sub(kind, "audio", "audio", kind, l.name);
43885
44238
  }
43886
44239
  /** The complete taxonomy dictionary, keyed by kind. */
43887
44240
  var EVENT_TAXONOMY = Object.freeze(Object.fromEntries(entries));
@@ -59563,6 +59916,30 @@ var dayNightCapability = {
59563
59916
  volatileStateFields: ["lastFetchedAt"]
59564
59917
  };
59565
59918
  /**
59919
+ * display-palette — the cluster's one colour table (D939).
59920
+ *
59921
+ * Hub singleton. `getPalette` reports `unknown` when the settings store
59922
+ * cannot be read; it does not pretend the bundled preset was stored.
59923
+ * `setPalette` refuses a palette that fails the ΔE / contrast rule and names
59924
+ * the pairs.
59925
+ */
59926
+ var presetSummarySchema = object({
59927
+ id: string(),
59928
+ name: string(),
59929
+ swatches: record(string(), paletteSwatchSchema),
59930
+ fallbacks: array(string())
59931
+ });
59932
+ method(_void(), paletteResultSchema, {
59933
+ auth: "protected",
59934
+ role: "viewer"
59935
+ }), method(_void(), array(presetSummarySchema).readonly(), {
59936
+ auth: "protected",
59937
+ role: "viewer"
59938
+ }), method(setPaletteInputSchema, paletteReadySchema, {
59939
+ kind: "mutation",
59940
+ auth: "admin"
59941
+ });
59942
+ /**
59566
59943
  * Generic device-level status snapshot. Auto-registered by `BaseDevice`
59567
59944
  * for every device, regardless of provider — the kernel needs a uniform
59568
59945
  * cap-keyed slice for the basic device flags every consumer expects to
@@ -74351,6 +74728,27 @@ Object.freeze({
74351
74728
  access: "create",
74352
74729
  role: "viewer"
74353
74730
  },
74731
+ "displayPalette.getPalette": {
74732
+ capName: "display-palette",
74733
+ capScope: "system",
74734
+ addonId: null,
74735
+ access: "view",
74736
+ role: "viewer"
74737
+ },
74738
+ "displayPalette.listPresets": {
74739
+ capName: "display-palette",
74740
+ capScope: "system",
74741
+ addonId: null,
74742
+ access: "view",
74743
+ role: "viewer"
74744
+ },
74745
+ "displayPalette.setPalette": {
74746
+ capName: "display-palette",
74747
+ capScope: "system",
74748
+ addonId: null,
74749
+ access: "create",
74750
+ role: "admin"
74751
+ },
74354
74752
  "doorbell.getStatus": {
74355
74753
  capName: "doorbell",
74356
74754
  capScope: "device",
@@ -84807,6 +85205,7 @@ var SYSTEM_CAP_VOCABULARY = {
84807
85205
  "device-provider": system(INTERNAL),
84808
85206
  "device-removal-hook": system(INTERNAL),
84809
85207
  "device-state": system("the runtime-state mirror every trigger already reads through"),
85208
+ "display-palette": system("the cluster display palette — one colour table for every client, not a device action"),
84810
85209
  "embedding-encoder": system(ML),
84811
85210
  "face-gallery": system("the face gallery — curated on its own page"),
84812
85211
  "failure-contribution": system(INTERNAL),
@@ -92778,4 +93177,4 @@ function buildClipModelRegistry(entries) {
92778
93177
  /** The built-in catalog's registry. */
92779
93178
  var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
92780
93179
  //#endregion
92781
- export { MediaFileKindEnum as $, RECORD_QUERY_MAX as $i, consumableFormOf as $n, parseProcStatus as $r, OpsLogEntrySchema as $t, DeclaredDevices as A, summarizeReview as Ai, TrackSideSchema as An, isDefaultAlarmProfileId as Ar, NcAlarmSensorsInputSchema as At, FULL_IMAGE_BBOX as B, viewerLinkBaseOf as Bi, applyModeDelaysEdits as Bn, isScheduleActive as Br, NcRuleUpdateInputSchema as Bt, ClearTrackRelationResultSchema as C, tuple as Ca, sensorRaisedOf as Ci, TimelapseRuleInputSchema as Cn, gifDeriveSpeed as Cr, NC_SNOOZE_MAX_MINUTES as Ct, DEFAULT_TIMELAPSE_PREVIEW_TEXT as D, subKindsOf as Di, TrackPuritySchema as Dn, isAlertEpisodeSeverity as Dr, NC_TEMPLATE_VARS as Dt, DEFAULT_EVENT_COLOR as E, EventCategory as Ea, storageOccupancyCapability as Ei, TrackPlacementSchema as En, isAlertEpisodeOpen as Er, NC_TAXONOMY as Et, EVENT_DENSITY_BATCH_MAX as F, systemEventSummaryScheduleOf as Fi, alarmPanelCapability as Fn, isKnownTemplateVar as Fr, NcRuleActionSchema as Ft, ListTrackRelationsResultSchema as G, evaluateSensorEdge as Gi, audioMetricsCapability as Gn, linkedStepOf as Gr, NcSnoozeSuppressedSchema as Gt, LABEL_SUPPLY_MACRO as H, zoneAnalyticsCapability as Hi, applySecureOnArmEdit as Hn, isSystemEventSummaryRule as Hr, NcSharedSequenceSchema as Ht, EVENT_KIND_BY_CAP as I, systemEventSummarySplitOf as Ii, alertEpisodeId as In, isLabelSupplyStepId as Ir, NcRuleInputSchema as It, MAX_BIRTH_DECISION_RECORDS as J, errMsg as Ji, buildSubjectPath as Jn, ncMediaPolicyError as Jr, NcTaxonomySchema as Jt, LockStateSchema as K, isSourceCap as Ki, audioModeOf as Kn, mayWriteToLocation as Kr, NcStateSummarySectionIdSchema as Kt, EVENT_OWNER_TYPES as L, templateCarriesSummary as Li, alertEpisodeKind as Ln, isMediaOwnerType as Lr, NcRulePatchSchema as Lt, EMBEDDING_MODEL_FAILED as M, systemEventDeliveryProblems as Mi, activateAlarmProfile as Mn, isDrawableSubjectPath as Mr, NcAlarmSettingsPatchSchema as Mt, EMBEDDING_REQUIREMENTS_FAILED as N, systemEventFamilyProblems as Ni, addonWidgetsSourceCapability as Nn, isEventKindLabelKey as Nr, NcConditionDescriptorSchema as Nt, DETECTION_MACRO_CLASSES as O, subjectPathSampleFromBox as Oi, TrackRelationKindSchema as On, isAppLinkBase as Or, NcAlarmConfigSchema as Ot, EMBEDDING_REQUIREMENTS_UNAVAILABLE as P, systemEventFilterApplies as Pi, alarmDeviceSecureOnArm as Pn, isEventOwnerType as Pr, NcConditionsSchema as Pt, MOTION_CLOSE_AFTER_MS as Q, RECORD_MAX_DATA_BYTES as Qi, cloneAlarmSettings as Qn, parseAlertEpisodePayload as Qr, OPS_LOG_DEFAULT_LIMIT as Qt, EXPORT_DENSE_MAX_RANGES as R, templateVarsFor as Ri, alertEpisodePayload as Rn, isRetiredClearKey as Rr, NcRuleSchema as Rt, ClearTrackRelationInputSchema as S, templateLiteral as Sa, secureActuationFor as Si, TRACK_RELATIONS_DEFAULT_LIMIT as Sn, failureContributionCapability as Sr, NC_SENSOR_TRANSITION_KINDS as St, DEFAULT_DETAIL_CROP_CONVENTION as T, unknown as Ta, startMoverUnderClearance as Ti, TimelapseRuleSchema as Tn, isAlarmControllableCap as Tr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Tt, LabelAttributionSchema as U, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Ui, armRemovalReconcile as Un, isVectorIndexDimConflict as Ur, NcSnoozeInputSchema as Ut, FailureCounters as V, withSystemEventClasses as Vi, applyNonBlockingEdit as Vn, isSystemDelivery as Vr, NcScheduleSchema as Vt, ListTrackRelationsInputSchema as W, canonicalHash as Wi, assertTimelapseCadences as Wn, kebabToCamel as Wr, NcSnoozeSchema as Wt, MAX_TRACK_PURITIES as X, CamProfileSchema as Xi, calendarEventLocalSpan as Xn, notificationRulesCapability as Xr, NcTemplatePreviewSchema as Xt, MAX_BIRTH_LATENCY_PROXY_MS as Y, BaseAddon as Yi, buildViewerLink as Yn, normalizeNcMediaPolicy as Yr, NcTemplatePreviewInputSchema as Yt, MAX_TRACK_RELATIONS as Z, InvalidRecordError as Zi, classifyRetrainReview as Zn, occupancyScope as Zr, NcTemplateVarDescriptorSchema as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, object as _a, ruleBelongsToAlarm as _i, SceneMonitorSchema as _n, encodeVectorBase64 as _r, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as _t, CLIP_EMBEDDING_STEP_ID as a, isDeviceScopedCap as aa, readMotionTriggeredBy as ai, RetrainDismissedSchema as an, deriveDetailCropRect as ar, NC_ALARM_NOTIFY_FIELDS as at, BucketAccumulator as b, strictObject as ba, ruleKindOf as bi, SetTrackRelationInputSchema as bn, evictionPolicyOfLocation as br, NC_GROUPING_MAX_SEC as bt, readClusterModelPinStrict as c, sleep as ca, resolveClipSearchMinScore as ci, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as cn, describeSystemEventDeliveryProblem as cr, NC_AUDIO_CONFIRM_HITS_DEFAULT as ct, APPEARANCE_BLOCKS as d, array as da, resolveModeNotifyPolicy as di, SCENE_DEFAULT_CHECK_INTERVAL_SEC as dn, deviceRemovalHookCapability as dr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as dt, createEvent as ea, pickFaceRescoreIntervalMinutes as ei, PackageLlmVerdictSchema as en, consumableLowPercentOf as er, MotionTriggeredBySchema as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, boolean as fa, resolveNcMediaImage as fi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as fn, embeddingEncoderCapability as fr, NC_CLIP_RETENTION_MAX_SEC as ft, ArchivedDebugNoteSchema as g, number as ga, ruleAutoTriggersAlarm as gi, SCENE_RESET_RECAPTURES as gn, embeddingRequirementsUnavailableError as gr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as gt, AlarmArmModeSchema as h, looseObject as ha, rootSupplyServes as hi, SCENE_DIVERGED as hn, embeddingRequirementsFailedError as hr, NC_CONFIRM_DEFAULT_TIMEOUT_MS as ht, CLIP_TEXT_MODELS as i, hydrateSchema as ia, readDeviceStateFrom as ii, RebuildObjectEmbeddingsRefusalSchema as in, deleteAlarmProfile as ir, NC_ALARM_DELAY_MAX_SEC as it, DetectionSourceSchema as j, syncActiveAlarmProfileSettings as ji, TrackSourceSchema as jn, isDetectionMacroClass as jr, NcAlarmSensorsSchema as jt, DETECTION_PIPELINE_CAP_NAME as k, subjectPathSvgPoints as ki, TrackRelationSchema as kn, isAudioClassName as kr, NcAlarmPostTriggeredActionSchema as kt, resolveClusterModelPin as l, ZodObject as la, resolveLocationMode as li, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as ln, describeSystemEventFamilyProblem as lr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as lt, AUDIO_MACRO_LABELS as m, literal as ma, retrainRevisionConflictMessage as mi, SCENE_DEFAULT_UNCOVERED_POLICY as mn, embeddingRefusalOf as mr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as mt, DEFAULT_CLIP_MODEL as n, defineCustomActions as na, plateGalleryCapability as ni, RECORDING_EXPORT_MAX_READ_BYTES as nn, cosineSimilarity as nr, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, nodePin as oa, readTimelapseGeneratedAt as oi, RetrainOriginSchema as on, derivePostTriggeredAction as or, NC_ALARM_SYSTEM_EVENT_KINDS as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, discriminatedUnion as pa, resolvePoolMemoryPolicy as pi, SCENE_DEFAULT_QUIET_SECONDS as pn, embeddingModelFailedError as pr, NC_CONDITION_CATALOG as pt, MAX_ARCHIVED_DEBUG_NOTES as q, DeviceType as qi, buildEventKindDescriptor as qn, memoizePinnedFfmpeg as qr, NcSystemEventKindSchema as qt, CLIP_IMAGE_MODELS as r, defineRecordKinds as ra, projectSubjectPath as ri, RECORDING_SOURCE_CAMSTACK_ADDON as rn, createAlarmProfile as rr, NC_ALARM_DELAY_FIELDS as rt, FACE_EMBEDDING_STEP_ID as s, normalizeNodeId as sa, renameAlarmProfile as si, RetrainStatusSchema as sn, deriveRecordingMode as sr, NC_ALARM_TRIGGERED_MAX_SEC as st, BUILTIN_CLIP_MODELS as t, customAction as ta, pipelineAnalyticsCapability as ti, PoolMemoryWatchdog as tn, coreBlockIdFromAddonId as tr, NC_ALARM_DEFAULT_PROFILE_ID as tt, APPEARANCE_BIN_COUNT as u, _enum as ua, resolveModeDelays as ui, SCENE_DEFAULT_ANCHOR_THRESHOLD as un, deviceAttentionKind as ur, NC_CLIP_POST_ROLL_DEFAULT_SEC as ut, BaseDevice as v, partialRecord as va, ruleDeviceCompatCapQueries as vi, SetTrackPurityInputSchema as vn, ensureAlarmProfiles as vr, NC_DEFAULT_SNOOZE_MINUTES as vt, CoverStateSchema as w, union as wa, servedTemplateVars as wi, TimelapseRulePatchSchema as wn, gifFromMp4Args as wr, NC_STATE_SUMMARY_SECTION_IDS as wt, COCO_TO_MACRO as x, string as xa, sceneMonitorCapability as xi, TIMELAPSE_DENSE_FLOOR_SEC as xn, faceGalleryCapability as xr, NC_GROUPING_MIN_SEC as xt, BirthDecisionRecordSchema as y, record as ya, ruleGroupingApplies as yi, SetTrackPurityResultSchema as yn, eventKindLabel as yr, NC_GROUPING_DEFAULT_SEC as yt, FIRST_LEVEL_MACRO_CLASSES as z, vectorDimFromBase64 as zi, applyBlockingEdit as zn, isRootSuppliableStepId as zr, NcRuleTargetSchema as zt };
93180
+ export { MediaFileKindEnum as $, CamProfileSchema as $i, cloneAlarmSettings as $n, paintHex as $r, OpsLogEntrySchema as $t, DeclaredDevices as A, subKindsOf as Ai, TrackSideSchema as An, isAudioClassName as Ar, NcAlarmSensorsInputSchema as At, FULL_IMAGE_BBOX as B, templateCarriesSummary as Bi, applyModeDelaysEdits as Bn, isRootSuppliableStepId as Br, NcRuleUpdateInputSchema as Bt, ClearTrackRelationResultSchema as C, strictObject as Ca, ruleKindOf as Ci, TimelapseRuleInputSchema as Cn, failureContributionCapability as Cr, NC_SNOOZE_MAX_MINUTES as Ct, DEFAULT_TIMELAPSE_PREVIEW_TEXT as D, union as Da, servedTemplateVars as Di, TrackPuritySchema as Dn, isAlertEpisodeOpen as Dr, NC_TEMPLATE_VARS as Dt, DEFAULT_EVENT_COLOR as E, tuple as Ea, sensorRaisedOf as Ei, TrackPlacementSchema as En, isAlarmControllableCap as Er, NC_TAXONOMY as Et, EVENT_DENSITY_BATCH_MAX as F, systemEventDeliveryProblems as Fi, alarmPanelCapability as Fn, isEventOwnerType as Fr, NcRuleActionSchema as Ft, ListTrackRelationsResultSchema as G, zoneAnalyticsCapability as Gi, audioMetricsCapability as Gn, kebabToCamel as Gr, NcSnoozeSuppressedSchema as Gt, LABEL_SUPPLY_MACRO as H, vectorDimFromBase64 as Hi, applySecureOnArmEdit as Hn, isSystemDelivery as Hr, NcSharedSequenceSchema as Ht, EVENT_KIND_BY_CAP as I, systemEventFamilyProblems as Ii, alertEpisodeId as In, isKnownTemplateVar as Ir, NcRuleInputSchema as It, MAX_BIRTH_DECISION_RECORDS as J, evaluateSensorEdge as Ji, buildSubjectPath as Jn, memoizePinnedFfmpeg as Jr, NcTaxonomySchema as Jt, LockStateSchema as K, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Ki, audioModeOf as Kn, linkedStepOf as Kr, NcStateSummarySectionIdSchema as Kt, EVENT_OWNER_TYPES as L, systemEventFilterApplies as Li, alertEpisodeKind as Ln, isLabelSupplyStepId as Lr, NcRulePatchSchema as Lt, EMBEDDING_MODEL_FAILED as M, subjectPathSvgPoints as Mi, activateAlarmProfile as Mn, isDetectionMacroClass as Mr, NcAlarmSettingsPatchSchema as Mt, EMBEDDING_REQUIREMENTS_FAILED as N, summarizeReview as Ni, addonWidgetsSourceCapability as Nn, isDrawableSubjectPath as Nr, NcConditionDescriptorSchema as Nt, DETECTION_MACRO_CLASSES as O, unknown as Oa, startMoverUnderClearance as Oi, TrackRelationKindSchema as On, isAlertEpisodeSeverity as Or, NcAlarmConfigSchema as Ot, EMBEDDING_REQUIREMENTS_UNAVAILABLE as P, syncActiveAlarmProfileSettings as Pi, alarmDeviceSecureOnArm as Pn, isEventKindLabelKey as Pr, NcConditionsSchema as Pt, MOTION_CLOSE_AFTER_MS as Q, BaseAddon as Qi, classifyRetrainReview as Qn, occupancyScope as Qr, OPS_LOG_DEFAULT_LIMIT as Qt, EXPORT_DENSE_MAX_RANGES as R, systemEventSummaryScheduleOf as Ri, alertEpisodePayload as Rn, isMediaOwnerType as Rr, NcRuleSchema as Rt, ClearTrackRelationInputSchema as S, record as Sa, ruleGroupingApplies as Si, TRACK_RELATIONS_DEFAULT_LIMIT as Sn, faceGalleryCapability as Sr, NC_SENSOR_TRANSITION_KINDS as St, DEFAULT_DETAIL_CROP_CONVENTION as T, templateLiteral as Ta, secureActuationFor as Ti, TimelapseRuleSchema as Tn, gifFromMp4Args as Tr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Tt, LabelAttributionSchema as U, viewerLinkBaseOf as Ui, armRemovalReconcile as Un, isSystemEventSummaryRule as Ur, NcSnoozeInputSchema as Ut, FailureCounters as V, templateVarsFor as Vi, applyNonBlockingEdit as Vn, isScheduleActive as Vr, NcScheduleSchema as Vt, ListTrackRelationsInputSchema as W, withSystemEventClasses as Wi, assertTimelapseCadences as Wn, isVectorIndexDimConflict as Wr, NcSnoozeSchema as Wt, MAX_TRACK_PURITIES as X, DeviceType as Xi, bundledCamstack as Xn, normalizeNcMediaPolicy as Xr, NcTemplatePreviewSchema as Xt, MAX_BIRTH_LATENCY_PROXY_MS as Y, isSourceCap as Yi, buildViewerLink as Yn, ncMediaPolicyError as Yr, NcTemplatePreviewInputSchema as Yt, MAX_TRACK_RELATIONS as Z, errMsg as Zi, calendarEventLocalSpan as Zn, notificationRulesCapability as Zr, NcTemplateVarDescriptorSchema as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, literal as _a, retrainRevisionConflictMessage as _i, SceneMonitorSchema as _n, embeddingRequirementsUnavailableError as _r, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as _t, CLIP_EMBEDDING_STEP_ID as a, defineCustomActions as aa, plateGalleryCapability as ai, RetrainDismissedSchema as an, deleteAlarmProfile as ar, NC_ALARM_NOTIFY_FIELDS as at, BucketAccumulator as b, object as ba, ruleBelongsToAlarm as bi, SetTrackRelationInputSchema as bn, eventKindLabel as br, NC_GROUPING_MAX_SEC as bt, readClusterModelPinStrict as c, isDeviceScopedCap as ca, readMotionTriggeredBy as ci, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as cn, deriveRecordingMode as cr, NC_AUDIO_CONFIRM_HITS_DEFAULT as ct, APPEARANCE_BLOCKS as d, sleep as da, resolveClipSearchMinScore as di, SCENE_DEFAULT_CHECK_INTERVAL_SEC as dn, deviceAttentionKind as dr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as dt, InvalidRecordError as ea, paletteResultSchema as ei, PackageLlmVerdictSchema as en, consumableFormOf as er, MotionTriggeredBySchema as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, ZodObject as fa, resolveLocationMode as fi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as fn, deviceRemovalHookCapability as fr, NC_CLIP_RETENTION_MAX_SEC as ft, ArchivedDebugNoteSchema as g, discriminatedUnion as ga, resolvePoolMemoryPolicy as gi, SCENE_RESET_RECAPTURES as gn, embeddingRequirementsFailedError as gr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as gt, AlarmArmModeSchema as h, boolean as ha, resolveNcMediaImage as hi, SCENE_DIVERGED as hn, embeddingRefusalOf as hr, NC_CONFIRM_DEFAULT_TIMEOUT_MS as ht, CLIP_TEXT_MODELS as i, customAction as ia, pipelineAnalyticsCapability as ii, RebuildObjectEmbeddingsRefusalSchema as in, createAlarmProfile as ir, NC_ALARM_DELAY_MAX_SEC as it, DetectionSourceSchema as j, subjectPathSampleFromBox as ji, TrackSourceSchema as jn, isDefaultAlarmProfileId as jr, NcAlarmSensorsSchema as jt, DETECTION_PIPELINE_CAP_NAME as k, EventCategory as ka, storageOccupancyCapability as ki, TrackRelationSchema as kn, isAppLinkBase as kr, NcAlarmPostTriggeredActionSchema as kt, resolveClusterModelPin as l, nodePin as la, readTimelapseGeneratedAt as li, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as ln, describeSystemEventDeliveryProblem as lr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as lt, AUDIO_MACRO_LABELS as m, array as ma, resolveModeNotifyPolicy as mi, SCENE_DEFAULT_UNCOVERED_POLICY as mn, embeddingModelFailedError as mr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as mt, DEFAULT_CLIP_MODEL as n, RECORD_QUERY_MAX as na, parseProcStatus as ni, RECORDING_EXPORT_MAX_READ_BYTES as nn, coreBlockIdFromAddonId as nr, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, defineRecordKinds as oa, projectSubjectPath as oi, RetrainOriginSchema as on, deriveDetailCropRect as or, NC_ALARM_SYSTEM_EVENT_KINDS as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, _enum as pa, resolveModeDelays as pi, SCENE_DEFAULT_QUIET_SECONDS as pn, embeddingEncoderCapability as pr, NC_CONDITION_CATALOG as pt, MAX_ARCHIVED_DEBUG_NOTES as q, canonicalHash as qi, buildEventKindDescriptor as qn, mayWriteToLocation as qr, NcSystemEventKindSchema as qt, CLIP_IMAGE_MODELS as r, createEvent as ra, pickFaceRescoreIntervalMinutes as ri, RECORDING_SOURCE_CAMSTACK_ADDON as rn, cosineSimilarity as rr, NC_ALARM_DELAY_FIELDS as rt, FACE_EMBEDDING_STEP_ID as s, hydrateSchema as sa, readDeviceStateFrom as si, RetrainStatusSchema as sn, derivePostTriggeredAction as sr, NC_ALARM_TRIGGERED_MAX_SEC as st, BUILTIN_CLIP_MODELS as t, RECORD_MAX_DATA_BYTES as ta, parseAlertEpisodePayload as ti, PoolMemoryWatchdog as tn, consumableLowPercentOf as tr, NC_ALARM_DEFAULT_PROFILE_ID as tt, APPEARANCE_BIN_COUNT as u, normalizeNodeId as ua, renameAlarmProfile as ui, SCENE_DEFAULT_ANCHOR_THRESHOLD as un, describeSystemEventFamilyProblem as ur, NC_CLIP_POST_ROLL_DEFAULT_SEC as ut, BaseDevice as v, looseObject as va, rootSupplyServes as vi, SetTrackPurityInputSchema as vn, encodeVectorBase64 as vr, NC_DEFAULT_SNOOZE_MINUTES as vt, CoverStateSchema as w, string as wa, sceneMonitorCapability as wi, TimelapseRulePatchSchema as wn, gifDeriveSpeed as wr, NC_STATE_SUMMARY_SECTION_IDS as wt, COCO_TO_MACRO as x, partialRecord as xa, ruleDeviceCompatCapQueries as xi, TIMELAPSE_DENSE_FLOOR_SEC as xn, evictionPolicyOfLocation as xr, NC_GROUPING_MIN_SEC as xt, BirthDecisionRecordSchema as y, number as ya, ruleAutoTriggersAlarm as yi, SetTrackPurityResultSchema as yn, ensureAlarmProfiles as yr, NC_GROUPING_DEFAULT_SEC as yt, FIRST_LEVEL_MACRO_CLASSES as z, systemEventSummarySplitOf as zi, applyBlockingEdit as zn, isRetiredClearKey as zr, NcRuleTargetSchema as zt };