@camstack/types 1.2.384 → 1.2.386

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.mjs CHANGED
@@ -557,6 +557,105 @@ z.object({
557
557
  codec: z.string().optional(),
558
558
  resolution: CamStreamResolutionSchema.optional()
559
559
  });
560
+ //#endregion
561
+ //#region src/device/device-type.ts
562
+ var DeviceType = /* @__PURE__ */ function(DeviceType) {
563
+ DeviceType["Camera"] = "camera";
564
+ DeviceType["Hub"] = "hub";
565
+ DeviceType["Light"] = "light";
566
+ DeviceType["Siren"] = "siren";
567
+ DeviceType["Switch"] = "switch";
568
+ DeviceType["Sensor"] = "sensor";
569
+ DeviceType["Thermostat"] = "thermostat";
570
+ /** Air-conditioner / heat-pump climate device (HVAC) — shares the
571
+ * `climate-control` cap surface with `Thermostat` but renders a
572
+ * dedicated AC-appropriate control UI (mode chips, fan speed,
573
+ * independent vertical/horizontal swing). Sources: native Gree, and
574
+ * reusable by other AC integrations. */
575
+ DeviceType["Climate"] = "climate";
576
+ DeviceType["Button"] = "button";
577
+ /** Generic stateless event emitter — carries a device's EXACT declared
578
+ * event vocabulary verbatim (no normalization). Installed with the
579
+ * `event-emitter` cap. Sources: HA `event.*` entities (structured) and
580
+ * HA bus events (e.g. `zha_event`, generic). */
581
+ DeviceType["EventEmitter"] = "event-emitter";
582
+ /** Firmware/software update entity — current vs available version,
583
+ * updatable flag, update state, and an install action. Installed with
584
+ * the `update` cap. Sources: Homematic firmware-update channels (and
585
+ * reusable by other providers, e.g. HA `update.*` entities). */
586
+ DeviceType["Update"] = "update";
587
+ DeviceType["Generic"] = "generic";
588
+ /** Generic notification delivery target (HA `notify.<service>`, future
589
+ * Telegram / Discord / ntfy / SMTP, …). One device per delivery
590
+ * endpoint; the `notifier` cap defines the send surface. */
591
+ DeviceType["Notifier"] = "notifier";
592
+ /** Pre-recorded action sequence with optional parameters
593
+ * (HA `script.*`). Runnable via `script-runner` cap. */
594
+ DeviceType["Script"] = "script";
595
+ /** Automation rule (HA `automation.*`) — enable/disable + manual
596
+ * trigger surface exposed via `automation-control` cap. */
597
+ DeviceType["Automation"] = "automation";
598
+ /** Door / smart lock device (HA `lock.*`). `lock-control` cap. */
599
+ DeviceType["Lock"] = "lock";
600
+ /** Window covering, blinds, garage door, valve, etc. (HA `cover.*`,
601
+ * `valve.*`). `cover` cap with sub-roles for variant. */
602
+ DeviceType["Cover"] = "cover";
603
+ /** Pipe / water / gas valve with open/close/stop and optional
604
+ * position (HA `valve.*`). `valve` cap — a cover-sibling actuator
605
+ * modelled on the same open/closed lifecycle. */
606
+ DeviceType["Valve"] = "valve";
607
+ /** Humidifier / dehumidifier with on/off + target humidity + mode
608
+ * (HA `humidifier.*`). `humidifier` cap — a climate-family actuator
609
+ * modelled on the same target / mode lifecycle. */
610
+ DeviceType["Humidifier"] = "humidifier";
611
+ /** Water heater / boiler with target temperature + operation mode +
612
+ * away mode (HA `water_heater.*`). `water-heater` cap — a
613
+ * climate-family actuator. */
614
+ DeviceType["WaterHeater"] = "water-heater";
615
+ /** Ceiling / standing / exhaust fan (HA `fan.*`). `fan-control` cap. */
616
+ DeviceType["Fan"] = "fan";
617
+ /** Audio / video playback endpoint (HA `media_player.*`). Disjoint from
618
+ * the camera surface — those use `Camera`. `media-player` cap. */
619
+ DeviceType["MediaPlayer"] = "media-player";
620
+ /** Security panel / alarm system (HA `alarm_control_panel.*`).
621
+ * `alarm-panel` cap. */
622
+ DeviceType["AlarmPanel"] = "alarm-panel";
623
+ /** Generic user-settable input (HA `number` / `input_number` / `select`
624
+ * / `input_select` / `text` / `input_text` / `input_datetime`).
625
+ * Sub-type via `DeviceRole`: NumericControl / SelectControl /
626
+ * TextControl / DateTimeControl. */
627
+ DeviceType["Control"] = "control";
628
+ /** Person / device-tracker presence (HA `person.*`, `device_tracker.*`).
629
+ * `presence` cap. */
630
+ DeviceType["Presence"] = "presence";
631
+ /** Weather provider (HA `weather.*`). Tier-3, low MVP priority.
632
+ * `weather` cap. */
633
+ DeviceType["Weather"] = "weather";
634
+ /** Robot vacuum (HA `vacuum.*`). Tier-3. `vacuum-control` cap. */
635
+ DeviceType["Vacuum"] = "vacuum";
636
+ /** Robotic lawn mower (HA `lawn_mower.*`). Tier-3.
637
+ * `lawn-mower-control` cap. */
638
+ DeviceType["LawnMower"] = "lawn-mower";
639
+ /** Physical HA device group — parent container for entity-children
640
+ * adopted from a single HA device entry. Not renderable as a
641
+ * standalone device; exists only to anchor child entities. */
642
+ DeviceType["Container"] = "container";
643
+ /** Single still-image entity (HA `image.*`). Read-only display of an
644
+ * `entity_picture` signed URL the browser loads directly. `image` cap. */
645
+ DeviceType["Image"] = "image";
646
+ /** Smart pet feeder — cloud-connected food dispenser with a bowl food
647
+ * level, battery, desiccant life, feeding state and manual-feed /
648
+ * call-pet / maintenance actions. Installed with the `pet-feeder` cap;
649
+ * dual-hopper models (D4S/D4SH) expose per-hopper portions. Sources:
650
+ * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
651
+ * integrations sharing the same food/desiccant/hopper surface. */
652
+ DeviceType["PetFeeder"] = "pet-feeder";
653
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
654
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
655
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
656
+ DeviceType["Dishwasher"] = "dishwasher";
657
+ return DeviceType;
658
+ }({});
560
659
  z.enum(["new-session", "step-up"]);
561
660
  z.enum(["en", "it"]);
562
661
  /** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
@@ -910,105 +1009,6 @@ function optionalMethod(input, output, options) {
910
1009
  };
911
1010
  }
912
1011
  //#endregion
913
- //#region src/device/device-type.ts
914
- var DeviceType = /* @__PURE__ */ function(DeviceType) {
915
- DeviceType["Camera"] = "camera";
916
- DeviceType["Hub"] = "hub";
917
- DeviceType["Light"] = "light";
918
- DeviceType["Siren"] = "siren";
919
- DeviceType["Switch"] = "switch";
920
- DeviceType["Sensor"] = "sensor";
921
- DeviceType["Thermostat"] = "thermostat";
922
- /** Air-conditioner / heat-pump climate device (HVAC) — shares the
923
- * `climate-control` cap surface with `Thermostat` but renders a
924
- * dedicated AC-appropriate control UI (mode chips, fan speed,
925
- * independent vertical/horizontal swing). Sources: native Gree, and
926
- * reusable by other AC integrations. */
927
- DeviceType["Climate"] = "climate";
928
- DeviceType["Button"] = "button";
929
- /** Generic stateless event emitter — carries a device's EXACT declared
930
- * event vocabulary verbatim (no normalization). Installed with the
931
- * `event-emitter` cap. Sources: HA `event.*` entities (structured) and
932
- * HA bus events (e.g. `zha_event`, generic). */
933
- DeviceType["EventEmitter"] = "event-emitter";
934
- /** Firmware/software update entity — current vs available version,
935
- * updatable flag, update state, and an install action. Installed with
936
- * the `update` cap. Sources: Homematic firmware-update channels (and
937
- * reusable by other providers, e.g. HA `update.*` entities). */
938
- DeviceType["Update"] = "update";
939
- DeviceType["Generic"] = "generic";
940
- /** Generic notification delivery target (HA `notify.<service>`, future
941
- * Telegram / Discord / ntfy / SMTP, …). One device per delivery
942
- * endpoint; the `notifier` cap defines the send surface. */
943
- DeviceType["Notifier"] = "notifier";
944
- /** Pre-recorded action sequence with optional parameters
945
- * (HA `script.*`). Runnable via `script-runner` cap. */
946
- DeviceType["Script"] = "script";
947
- /** Automation rule (HA `automation.*`) — enable/disable + manual
948
- * trigger surface exposed via `automation-control` cap. */
949
- DeviceType["Automation"] = "automation";
950
- /** Door / smart lock device (HA `lock.*`). `lock-control` cap. */
951
- DeviceType["Lock"] = "lock";
952
- /** Window covering, blinds, garage door, valve, etc. (HA `cover.*`,
953
- * `valve.*`). `cover` cap with sub-roles for variant. */
954
- DeviceType["Cover"] = "cover";
955
- /** Pipe / water / gas valve with open/close/stop and optional
956
- * position (HA `valve.*`). `valve` cap — a cover-sibling actuator
957
- * modelled on the same open/closed lifecycle. */
958
- DeviceType["Valve"] = "valve";
959
- /** Humidifier / dehumidifier with on/off + target humidity + mode
960
- * (HA `humidifier.*`). `humidifier` cap — a climate-family actuator
961
- * modelled on the same target / mode lifecycle. */
962
- DeviceType["Humidifier"] = "humidifier";
963
- /** Water heater / boiler with target temperature + operation mode +
964
- * away mode (HA `water_heater.*`). `water-heater` cap — a
965
- * climate-family actuator. */
966
- DeviceType["WaterHeater"] = "water-heater";
967
- /** Ceiling / standing / exhaust fan (HA `fan.*`). `fan-control` cap. */
968
- DeviceType["Fan"] = "fan";
969
- /** Audio / video playback endpoint (HA `media_player.*`). Disjoint from
970
- * the camera surface — those use `Camera`. `media-player` cap. */
971
- DeviceType["MediaPlayer"] = "media-player";
972
- /** Security panel / alarm system (HA `alarm_control_panel.*`).
973
- * `alarm-panel` cap. */
974
- DeviceType["AlarmPanel"] = "alarm-panel";
975
- /** Generic user-settable input (HA `number` / `input_number` / `select`
976
- * / `input_select` / `text` / `input_text` / `input_datetime`).
977
- * Sub-type via `DeviceRole`: NumericControl / SelectControl /
978
- * TextControl / DateTimeControl. */
979
- DeviceType["Control"] = "control";
980
- /** Person / device-tracker presence (HA `person.*`, `device_tracker.*`).
981
- * `presence` cap. */
982
- DeviceType["Presence"] = "presence";
983
- /** Weather provider (HA `weather.*`). Tier-3, low MVP priority.
984
- * `weather` cap. */
985
- DeviceType["Weather"] = "weather";
986
- /** Robot vacuum (HA `vacuum.*`). Tier-3. `vacuum-control` cap. */
987
- DeviceType["Vacuum"] = "vacuum";
988
- /** Robotic lawn mower (HA `lawn_mower.*`). Tier-3.
989
- * `lawn-mower-control` cap. */
990
- DeviceType["LawnMower"] = "lawn-mower";
991
- /** Physical HA device group — parent container for entity-children
992
- * adopted from a single HA device entry. Not renderable as a
993
- * standalone device; exists only to anchor child entities. */
994
- DeviceType["Container"] = "container";
995
- /** Single still-image entity (HA `image.*`). Read-only display of an
996
- * `entity_picture` signed URL the browser loads directly. `image` cap. */
997
- DeviceType["Image"] = "image";
998
- /** Smart pet feeder — cloud-connected food dispenser with a bowl food
999
- * level, battery, desiccant life, feeding state and manual-feed /
1000
- * call-pet / maintenance actions. Installed with the `pet-feeder` cap;
1001
- * dual-hopper models (D4S/D4SH) expose per-hopper portions. Sources:
1002
- * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
1003
- * integrations sharing the same food/desiccant/hopper surface. */
1004
- DeviceType["PetFeeder"] = "pet-feeder";
1005
- /** Built-in dishwasher — program lifecycle, door / remote-start gates,
1006
- * salt and rinse-aid levels. Installed with the `dishwasher` cap.
1007
- * Sources: native Bosch Home Connect, reusable by similar integrations. */
1008
- DeviceType["Dishwasher"] = "dishwasher";
1009
- return DeviceType;
1010
- }({});
1011
- //#endregion
1012
1012
  //#region src/device/icon-catalog.generated.ts
1013
1013
  /** Lucide category ids, alphabetical. `ICON_META` indexes into this. */
1014
1014
  var ICON_CATEGORY_IDS = [
@@ -22287,6 +22287,9 @@ var NcSystemEventKindSchema = z.enum([
22287
22287
  "server-updated",
22288
22288
  "export-completed",
22289
22289
  "backup-completed",
22290
+ "alert-critical",
22291
+ "alert-error",
22292
+ "alert-critical-resolved",
22290
22293
  "camera-online",
22291
22294
  "camera-offline",
22292
22295
  "camera-disabled",
@@ -26136,6 +26139,7 @@ function createDeviceProxy(api, binding, opts) {
26136
26139
  const dishwasherInterface = {
26137
26140
  start: (input) => dispatch("dishwasher", "dishwasher", "start", "mutation", input),
26138
26141
  pause: (input) => dispatch("dishwasher", "dishwasher", "pause", "mutation", input),
26142
+ resume: (input) => dispatch("dishwasher", "dishwasher", "resume", "mutation", input),
26139
26143
  stop: (input) => dispatch("dishwasher", "dishwasher", "stop", "mutation", input),
26140
26144
  setProgram: (input) => dispatch("dishwasher", "dishwasher", "setProgram", "mutation", input),
26141
26145
  setPower: (input) => dispatch("dishwasher", "dishwasher", "setPower", "mutation", input),
@@ -26146,6 +26150,7 @@ function createDeviceProxy(api, binding, opts) {
26146
26150
  setVarioSpeedPlus: (input) => dispatch("dishwasher", "dishwasher", "setVarioSpeedPlus", "mutation", input),
26147
26151
  setChildLock: (input) => dispatch("dishwasher", "dishwasher", "setChildLock", "mutation", input),
26148
26152
  setOption: (input) => dispatch("dishwasher", "dishwasher", "setOption", "mutation", input),
26153
+ getOptions: (input) => dispatch("dishwasher", "dishwasher", "getOptions", "query", input),
26149
26154
  getStatus: (input) => dispatch("dishwasher", "dishwasher", "getStatus", "query", input)
26150
26155
  };
26151
26156
  const doorbellInterface = { getStatus: (input) => dispatch("doorbell", "doorbell", "getStatus", "query", input) };
@@ -28214,6 +28219,7 @@ function createSystemProxy(api) {
28214
28219
  status: (input) => dispatch("storageMigration", "status", "query", input),
28215
28220
  cancel: (input) => dispatch("storageMigration", "cancel", "mutation", input),
28216
28221
  movers: (input) => dispatch("storageMigration", "movers", "query", input),
28222
+ moverClearance: (input) => dispatch("storageMigration", "moverClearance", "query", input),
28217
28223
  residue: (input) => dispatch("storageMigration", "residue", "query", input),
28218
28224
  drain: (input) => dispatch("storageMigration", "drain", "mutation", input),
28219
28225
  cleanupStart: (input) => dispatch("storageMigration", "cleanupStart", "mutation", input),
@@ -28662,7 +28668,7 @@ function systemEventFilterApplies(kind, filter) {
28662
28668
  switch (filter) {
28663
28669
  case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("recording-") || kind === "alarm-triggered";
28664
28670
  case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind";
28665
- case "nodeIds": return kind.startsWith("node-") || kind === "addon-crash-loop" || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "wrapper-update-available" || kind === "server-updated" || kind.startsWith("storage-location-");
28671
+ case "nodeIds": return kind.startsWith("node-") || kind === "addon-crash-loop" || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "wrapper-update-available" || kind === "server-updated" || kind.startsWith("storage-location-") || kind.startsWith("alert-");
28666
28672
  case "packageNames": return kind.endsWith("update-available") || kind === "addon-updated" || kind === "node-updating" || kind === "server-updated";
28667
28673
  case "consumableLowPercent": return NC_CONSUMABLE_SYSTEM_EVENT_KINDS.includes(kind);
28668
28674
  }
@@ -28735,6 +28741,9 @@ var FAMILY_BY_NAME = new Map(Object.entries({
28735
28741
  "wrapper-update-available": "system",
28736
28742
  "backup-completed": "system",
28737
28743
  "export-completed": "system",
28744
+ "alert-critical": "system",
28745
+ "alert-error": "system",
28746
+ "alert-critical-resolved": "system",
28738
28747
  "storage-location-low": "system",
28739
28748
  "storage-location-critical": "system",
28740
28749
  "storage-location-ok": "system",
@@ -28875,6 +28884,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
28875
28884
  "storage-location-ok"
28876
28885
  ]
28877
28886
  },
28887
+ {
28888
+ id: "alerts",
28889
+ family: "system",
28890
+ label: "Alerts",
28891
+ kinds: [
28892
+ "alert-critical",
28893
+ "alert-error",
28894
+ "alert-critical-resolved"
28895
+ ]
28896
+ },
28878
28897
  {
28879
28898
  id: "alarm",
28880
28899
  family: "alarm",
@@ -29583,6 +29602,11 @@ var TANK = [
29583
29602
  "device-tank-full",
29584
29603
  "device-tank-normal"
29585
29604
  ];
29605
+ var ALERT_EPISODE = [
29606
+ "alert-critical",
29607
+ "alert-error",
29608
+ "alert-critical-resolved"
29609
+ ];
29586
29610
  var UPDATES = [
29587
29611
  "addon-update-available",
29588
29612
  "server-update-available",
@@ -30107,7 +30131,8 @@ var NC_TEMPLATE_VARS = [
30107
30131
  "server-updated",
30108
30132
  "storage-location-low",
30109
30133
  "storage-location-critical",
30110
- "storage-location-ok"
30134
+ "storage-location-ok",
30135
+ ...ALERT_EPISODE
30111
30136
  ]
30112
30137
  },
30113
30138
  {
@@ -30129,7 +30154,8 @@ var NC_TEMPLATE_VARS = [
30129
30154
  "server-updated",
30130
30155
  "storage-location-low",
30131
30156
  "storage-location-critical",
30132
- "storage-location-ok"
30157
+ "storage-location-ok",
30158
+ ...ALERT_EPISODE
30133
30159
  ]
30134
30160
  },
30135
30161
  {
@@ -30196,7 +30222,7 @@ var NC_TEMPLATE_VARS = [
30196
30222
  families: ["rule"],
30197
30223
  fields: [...RULE_TEXT],
30198
30224
  kinds: ["system"],
30199
- systemEventKinds: ["recording-degraded"]
30225
+ systemEventKinds: ["recording-degraded", ...ALERT_EPISODE]
30200
30226
  },
30201
30227
  {
30202
30228
  name: "locationName",
@@ -30393,13 +30419,53 @@ var NC_TEMPLATE_VARS = [
30393
30419
  },
30394
30420
  {
30395
30421
  name: "title",
30396
- label: "Export title",
30422
+ label: "Export or alert title",
30397
30423
  example: "Ingresso 08:00",
30398
30424
  group: "system",
30399
30425
  families: ["rule"],
30400
30426
  fields: [...RULE_TEXT],
30401
30427
  kinds: ["system"],
30402
- systemEventKinds: ["export-completed"]
30428
+ systemEventKinds: ["export-completed", ...ALERT_EPISODE]
30429
+ },
30430
+ {
30431
+ name: "severity",
30432
+ label: "Alert severity",
30433
+ example: "critical",
30434
+ group: "system",
30435
+ families: ["rule"],
30436
+ fields: [...RULE_TEXT],
30437
+ kinds: ["system"],
30438
+ systemEventKinds: [...ALERT_EPISODE]
30439
+ },
30440
+ {
30441
+ name: "category",
30442
+ label: "Alert category",
30443
+ example: "addon.runner-failed",
30444
+ group: "system",
30445
+ families: ["rule"],
30446
+ fields: [...RULE_TEXT],
30447
+ kinds: ["system"],
30448
+ systemEventKinds: [...ALERT_EPISODE]
30449
+ },
30450
+ {
30451
+ name: "source",
30452
+ label: "Alert source (addon, node or runner)",
30453
+ example: "recorder",
30454
+ group: "system",
30455
+ families: ["rule"],
30456
+ fields: [...RULE_TEXT],
30457
+ kinds: ["system"],
30458
+ systemEventKinds: [...ALERT_EPISODE]
30459
+ },
30460
+ {
30461
+ name: "actionUrl",
30462
+ label: "Alert action link",
30463
+ example: "/system/addons",
30464
+ group: "system",
30465
+ families: ["rule"],
30466
+ fields: [...RULE_TEXT],
30467
+ kinds: ["system"],
30468
+ systemEventKinds: [...ALERT_EPISODE]
30403
30469
  },
30404
30470
  {
30405
30471
  name: "exportId",
@@ -30610,7 +30676,10 @@ var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
30610
30676
  "device-tank-full",
30611
30677
  "device-tank-normal",
30612
30678
  "node-restarting",
30613
- "node-updating"
30679
+ "node-updating",
30680
+ "alert-critical",
30681
+ "alert-error",
30682
+ "alert-critical-resolved"
30614
30683
  ];
30615
30684
  /**
30616
30685
  * Is this descriptor held back from the SERVED catalog as a whole (D647)?
@@ -76,9 +76,18 @@ export declare enum EventCategory {
76
76
  /**
77
77
  * The node's one-shot runner boot check (D877): planned runners against the
78
78
  * process service, `degraded` when any is failed, refused or missing. The
79
- * alert centre turns it into one alert and a direct critical push.
79
+ * alert centre turns it into one critical alert.
80
80
  */
81
81
  SystemRunnerCheck = "system.runner-check",
82
+ /**
83
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
84
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
85
+ * centre sends no notification of its own: Notification Center turns this
86
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
87
+ * system-event kinds, and reconciles from the alerts store because a bus
88
+ * event may be dropped (D8, D11).
89
+ */
90
+ AlertEpisode = "alert.episode",
82
91
  AddonError = "addon.error",
83
92
  AddonPageReady = "addon.page-ready",
84
93
  AddonWidgetReady = "addon.widget-ready",
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-Hoe-mqbd.js");
2
+ const require_event_category = require("./event-category-eSqkye-K.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-BvOFi6PY.mjs";
1
+ import { t as EventCategory } from "./event-category-DOl51-Ij.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -77,9 +77,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
77
77
  /**
78
78
  * The node's one-shot runner boot check (D877): planned runners against the
79
79
  * process service, `degraded` when any is failed, refused or missing. The
80
- * alert centre turns it into one alert and a direct critical push.
80
+ * alert centre turns it into one critical alert.
81
81
  */
82
82
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
83
+ /**
84
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
85
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
86
+ * centre sends no notification of its own: Notification Center turns this
87
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
88
+ * system-event kinds, and reconciles from the alerts store because a bus
89
+ * event may be dropped (D8, D11).
90
+ */
91
+ EventCategory["AlertEpisode"] = "alert.episode";
83
92
  EventCategory["AddonError"] = "addon.error";
84
93
  EventCategory["AddonPageReady"] = "addon.page-ready";
85
94
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -77,9 +77,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
77
77
  /**
78
78
  * The node's one-shot runner boot check (D877): planned runners against the
79
79
  * process service, `degraded` when any is failed, refused or missing. The
80
- * alert centre turns it into one alert and a direct critical push.
80
+ * alert centre turns it into one critical alert.
81
81
  */
82
82
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
83
+ /**
84
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
85
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
86
+ * centre sends no notification of its own: Notification Center turns this
87
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
88
+ * system-event kinds, and reconciles from the alerts store because a bus
89
+ * event may be dropped (D8, D11).
90
+ */
91
+ EventCategory["AlertEpisode"] = "alert.episode";
83
92
  EventCategory["AddonError"] = "addon.error";
84
93
  EventCategory["AddonPageReady"] = "addon.page-ready";
85
94
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -3392,6 +3392,13 @@ export type AppRouter = TrpcCoreRouter<{
3392
3392
  output: z.infer<typeof dishwasherCapability.methods.pause.output>;
3393
3393
  meta: object;
3394
3394
  }>;
3395
+ resume: TRPCMutationProcedure<{
3396
+ input: {
3397
+ [x: string]: unknown;
3398
+ } & z.input<typeof dishwasherCapability.methods.resume.input>;
3399
+ output: z.infer<typeof dishwasherCapability.methods.resume.output>;
3400
+ meta: object;
3401
+ }>;
3395
3402
  stop: TRPCMutationProcedure<{
3396
3403
  input: {
3397
3404
  [x: string]: unknown;
@@ -3462,6 +3469,13 @@ export type AppRouter = TrpcCoreRouter<{
3462
3469
  output: z.infer<typeof dishwasherCapability.methods.setOption.output>;
3463
3470
  meta: object;
3464
3471
  }>;
3472
+ getOptions: TRPCQueryProcedure<{
3473
+ input: {
3474
+ [x: string]: unknown;
3475
+ } & z.input<typeof dishwasherCapability.methods.getOptions.input>;
3476
+ output: z.infer<typeof dishwasherCapability.methods.getOptions.output>;
3477
+ meta: object;
3478
+ }>;
3465
3479
  }>>;
3466
3480
  doorbell: TRPCBuiltRouter<{
3467
3481
  ctx: TrpcContext;
@@ -9221,6 +9235,13 @@ export type AppRouter = TrpcCoreRouter<{
9221
9235
  output: z.infer<typeof storageMigrationCapability.methods.movers.output>;
9222
9236
  meta: object;
9223
9237
  }>;
9238
+ moverClearance: TRPCQueryProcedure<{
9239
+ input: {
9240
+ [x: string]: unknown;
9241
+ } & z.input<typeof storageMigrationCapability.methods.moverClearance.input>;
9242
+ output: z.infer<typeof storageMigrationCapability.methods.moverClearance.output>;
9243
+ meta: object;
9244
+ }>;
9224
9245
  residue: TRPCQueryProcedure<{
9225
9246
  input: {
9226
9247
  [x: string]: unknown;
@@ -5,7 +5,7 @@
5
5
  * `ALL_CAPABILITY_DEFINITIONS` (the whole Zod schema graph, ~+100 MB heap per
6
6
  * runner). See docs/decisions/adr-0028.md.
7
7
  *
8
- * Coverage: 1 advance-derived caps, 73 caps with 362 state leaves.
8
+ * Coverage: 1 advance-derived caps, 73 caps with 370 state leaves.
9
9
  */
10
10
  /** A bindable scalar in a capability's runtime state. */
11
11
  export interface CapStateLeaf {
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1383 method paths across 179 capabilities.
9
+ * Coverage: 1386 method paths across 179 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 548 methods carry a device reference, of which
9
+ * Coverage: 550 methods carry a device reference, of which
10
10
  * 179 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
@@ -107,7 +107,7 @@ export interface SystemProxy {
107
107
  readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
108
108
  readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'upsert' | 'upsertMany' | 'insert' | 'insertMany' | 'transact' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
109
109
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'listDrainProgress' | 'testLocation' | 'listProviders' | 'testConfig'>;
110
- readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
110
+ readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'moverClearance' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
111
111
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'getLiveViewerCounts' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
112
112
  readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getFailureContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
113
113
  readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listInstances' | 'createInstance' | 'updateInstance' | 'deleteInstance' | 'setInstanceEnabled' | 'listLegacyCameras' | 'adoptLegacyMonitor' | 'listSessions' | 'openSession' | 'resize' | 'pullOutput' | 'writeInput' | 'close'>;
package/dist/index.d.ts CHANGED
@@ -151,6 +151,7 @@ export type { AvailableEngine, PipelineAddonSchema, PipelineDefaultStep, Pipelin
151
151
  export * from './types/pipeline-step.js';
152
152
  export * from './types/tracked.js';
153
153
  export { type BearerPayloadShape, type BearerPrincipal, classifyBearerPrincipal, methodAccessForHttpMethod, type PrincipalAddonReachInput, type PrincipalAddonReachVerdict, principalMayReachAddon, scopesAllowAddon, scopesAllowDeviceCap, } from './auth/principal-scope.js';
154
+ export { ADMIN_SCOPE, ALL_METHOD_ACCESS, type AddonRoutesScope, AddonRoutesScopeSchema, capabilityScopesOf, CREDENTIAL_TOKEN_KIND, type CredentialScope, CredentialScopeSchema, type CredentialTokenClaims, CredentialTokenClaimsSchema, parseCredentialScopes, SHARE_VIEW_MAX_DEVICES, scopesAllowAddonRoutes, scopesGrantAdmin, type ShareViewGrant, ShareViewGrantSchema, type ShareViewScope, ShareViewScopeSchema, shareViewGrantOf, } from './auth/credential-scope.js';
154
155
  export { APP_AUTH_CALLBACK_MAX_LENGTH, APP_AUTH_CALLBACK_URLS, canonicalizeAppCallback, hasUrlScheme, parseAppAuthCallback, } from './auth/app-callback.js';
155
156
  export { APP_FLOW_DEFAULT_REDIRECT, APP_FLOW_REFUSAL_MESSAGES, APP_FLOW_STATE_PREFIX, APP_REFUSED_PATH, APP_START_REFUSAL_MESSAGES, type AppFlowParse, type AppFlowPurpose, AppFlowPurposeSchema, type AppFlowRefusal, type AppFlowRequest, type AppPageLang, AppPageLangSchema, type AppLoginPath, AppLoginPathSchema, type AppStartRefusal, appFlowLocation, isAppStartRefusal, parseAppFlowRequest, parseAppPageLang, } from './auth/app-flow.js';
156
157
  export { SSO_STATE_COOKIE, SSO_STATE_COOKIE_MAX_AGE_SEC } from './auth/sso-state.js';
@@ -265,6 +266,7 @@ export { alarmDeviceBlocksArming, alarmDeviceSecureOnArm, type AlarmDeviceBlocks
265
266
  export { alarmPatchLanded, applyBlockingEdit, applyModeDelaysEdits, applyModeDeviceListEdit, applyNonBlockingEdit, applySecureOnArmEdit, derivePostTriggeredAction, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, NC_ALARM_DELAY_FIELDS, NC_ALARM_NOTIFY_FIELDS, type NcAlarmDelayField, type NcAlarmDelaySettings, type NcAlarmDelaySource, type NcAlarmModeDeviceListEditResult, type NcAlarmModeNotifyPolicy, type NcAlarmNonBlockingEditResult, type NcAlarmNotifyField, type NcAlarmResolvedDelays, resolveModeDelays, resolveModeNotifyPolicy, } from './notification/alarm-settings.js';
266
267
  export { activateAlarmProfile, alarmProfileById, cloneAlarmSettings, createAlarmProfile, deleteAlarmProfile, ensureAlarmProfiles, isDefaultAlarmProfileId, NC_ALARM_DEFAULT_PROFILE_ID, NC_ALARM_DEFAULT_PROFILE_NAME, NC_ALARM_SYSTEM_DEFAULT_DELAYS, ncAlarmSystemDefaultSettings, type NcAlarmProfileCreateSource, type NcAlarmProfileRecord, type NcAlarmProfilesMutationResult, type NcAlarmProfilesRefuseReason, type NcAlarmProfilesState, renameAlarmProfile, syncActiveAlarmProfileSettings, } from './notification/alarm-profiles.js';
267
268
  export { NC_SENSOR_RAISED_FIELD_BY_KIND, NC_SENSOR_TRANSITION_KINDS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, sensorRaisedOf, sensorTransitionOffered, } from './notification/sensor-raised.js';
269
+ export { alertEpisodeId, alertEpisodeKind, alertEpisodePayload, alertNodeId, isAlertEpisodeOpen, isAlertEpisodeSeverity, parseAlertEpisodePayload, AlertEpisodePayloadSchema, type AlertEpisodePayload, type AlertEpisodePhase, } from './notification/alert-episode.js';
268
270
  export { NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, isHeldBackTemplateVar, isKnownTemplateVar, servedTemplateVars, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, } from './notification/template-vars.js';
269
271
  export { NC_SYSTEM_EVENT_FILTER_KEYS, type NcSystemEventFilterKey, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, } from './notification/system-event-filters.js';
270
272
  export { describeSystemEventFamilyProblem, isSystemEventFamily, NC_SYSTEM_EVENT_CONDITION_FILTER_KEYS, NC_SYSTEM_EVENT_FAMILIES, NC_SYSTEM_EVENT_FAMILY, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, type NcSystemEventConditionFilterKey, type NcSystemEventFamily, type NcSystemEventFamilyProblem, type NcSystemEventFamilyVerdict, type NcSystemEventKindGroupSpec, systemEventFamilyOf, systemEventFamilyProblems, systemEventKindNamesOf, systemEventKindsOfFamily, } from './notification/system-event-families.js';
@@ -312,6 +314,7 @@ export { errMsg } from './utils/err-msg.js';
312
314
  export { hfModelUrl } from './utils/hf-url.js';
313
315
  export { asBoolean, asJsonArray, asJsonObject, asNumber, asString, parseJsonArray, parseJsonObject, parseJsonUnknown, } from './utils/json-safe.js';
314
316
  export { maskUrlCredentials } from './utils/mask-url.js';
317
+ export { OAUTH_LANDING_PATH, OAUTH_LANDING_REASONS, isOauthLandingReason, oauthLandingUrl, parseOauthLandingFragment, type OauthLandingOutcome, type OauthLandingReason, } from './utils/oauth-landing.js';
315
318
  export { commitWatchdogRestart, DEFAULT_POOL_MEMORY_POLICY, evaluatePoolMemory, initialPoolMemoryState, type PoolMemoryAction, type PoolMemoryPolicy, type PoolMemoryState, type PoolMemoryTelemetry, type PoolMemoryVerdict, PoolMemoryWatchdog, type PoolMemoryWatchdogOptions, type ProcMemory, parseProcStatus, pickRestartCandidate, poolMemoryThreshold, type RestartCandidate, resetPoolBaseline, resolvePoolMemoryPolicy, } from './utils/pool-memory-watchdog.js';
316
319
  export { cellsToRects, type NormRect, rectsToCells } from './utils/privacy-grid-raster.js';
317
320
  export { RingBuffer } from './utils/ring-buffer.js';