@camstack/addon-osd-manager 0.1.259 → 0.1.261

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 (18) hide show
  1. package/dist/{MotionZonesSettings-DAu-wwAg.mjs → MotionZonesSettings-DRzVtBFW.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-B5hdg0aq.mjs → PrivacyMaskSettings-C7wUecND.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-C1EXCUMa.mjs → SceneMonitorEditor-BkIBeRgq.mjs} +3 -3
  4. package/dist/_stub.js +23 -12
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DJs_KsVD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-B4ntcc3T.mjs} +4 -4
  6. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CWzPWMLE.mjs +26 -0
  7. package/dist/{hostInit-aoIP4B4C.mjs → hostInit-BEL9T-ZE.mjs} +3 -3
  8. package/dist/index.js +273 -61
  9. package/dist/index.mjs +273 -61
  10. package/dist/{player-overlays-B3g0-FJ_.mjs → player-overlays-DzjfQTb4.mjs} +1 -1
  11. package/dist/remoteEntry.js +1 -1
  12. package/dist/{responsive-CWtvzc-D.mjs → responsive-DXxTiZk_.mjs} +1 -1
  13. package/dist/{scene-monitor-copy-BMqx3tf5.mjs → scene-monitor-copy-BqnDA31r.mjs} +1 -1
  14. package/dist/{square-VrCirori.mjs → square-DGRrNJim.mjs} +1 -1
  15. package/dist/{trash-2-CUoGUhr8.mjs → trash-2-Cm4a_frA.mjs} +1 -1
  16. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-B10jZ1JA.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Byjybpdl.mjs} +1 -1
  17. package/package.json +1 -1
  18. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-93IUAGBu.mjs +0 -26
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- //#region ../types/dist/event-category-DOl51-Ij.mjs
1
+ //#region ../types/dist/event-category-BfJwUd2S.mjs
2
2
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
3
3
  EventCategory["SystemBoot"] = "system.boot";
4
4
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -315,6 +315,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
315
315
  */
316
316
  EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
317
317
  /**
318
+ * A camera's motion source has fired constantly with no subject for an hour
319
+ * (motion duty or session count over the bar, zero detections) — it is not
320
+ * blind, its motion zones or sensitivity want tuning (D907). Paired with
321
+ * {@link PipelineMotionCalm}.
322
+ */
323
+ EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
324
+ /** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
325
+ EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
326
+ /**
318
327
  * Per-camera pipeline config was mutated by the orchestrator
319
328
  * (3-level settings change via `setAgentAddonDefaults` /
320
329
  * `setCameraStepToggle` / `setCameraPipelineForAgent` or a
@@ -686,6 +695,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
686
695
  EventCategory["BackupRestored"] = "backup.restored";
687
696
  EventCategory["NotificationDispatched"] = "notification.dispatched";
688
697
  EventCategory["NotificationFailed"] = "notification.failed";
698
+ /**
699
+ * A notification rule that cannot work (D905): its stored row does not load,
700
+ * or it still names a device / delivery target the prune CONFIRMED deleted.
701
+ * One edge per rule per distinct set of reasons; never on an unanswered read.
702
+ */
703
+ EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
704
+ /** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
705
+ EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
689
706
  EventCategory["DeviceUpdated"] = "device.updated";
690
707
  /**
691
708
  * Transport-level connectivity. Emitted by the device driver when
@@ -5413,7 +5430,7 @@ var ZodIssueCode = {
5413
5430
  var ZodFirstPartyTypeKind;
5414
5431
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5415
5432
  //#endregion
5416
- //#region ../types/dist/sleep-_sV1BE2f.mjs
5433
+ //#region ../types/dist/sleep-DJFUfKvA.mjs
5417
5434
  /**
5418
5435
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5419
5436
  * window to float samples (D455).
@@ -7875,7 +7892,7 @@ var EntryDescriptorSchema = object({
7875
7892
  /** JSON Schema of the entry body; `secret: true` marks a password field. */
7876
7893
  fields: record(string(), unknown())
7877
7894
  }).strict();
7878
- /** What crosses the wire and sits in the engine's catalog: JSON only, no Zod. */
7895
+ /** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
7879
7896
  var RecordKindDeclarationSchema = object({
7880
7897
  database: _enum(RECORD_DATABASES).default("settings"),
7881
7898
  class: _enum(RECORD_CLASSES),
@@ -7894,14 +7911,6 @@ var RecordKindDeclarationSchema = object({
7894
7911
  secretPaths: array(string().min(1)).default([]),
7895
7912
  /** The id key of each array that carries a secret (`{ headers: 'name' }`). */
7896
7913
  secretArrayKeys: record(string(), string()).default({}),
7897
- /**
7898
- * RETIRED (D900): the legacy table a kind adopted from during the records
7899
- * migration. Nothing declares it any more and nothing reads it; the schema
7900
- * still ACCEPTS it because the catalog rows the migration wrote carry it
7901
- * (an orphaned kind is never redeclared) and an addon built before the
7902
- * removal still sends it. Never set it.
7903
- */
7904
- adoptsFrom: string().min(1).optional(),
7905
7914
  /** Kinds that must agree through `transact` sit in one file under one family name. */
7906
7915
  transactFamily: string().min(1).optional(),
7907
7916
  entry: EntryDescriptorSchema.optional()
@@ -12565,17 +12574,6 @@ object({
12565
12574
  createdAt: number(),
12566
12575
  updatedAt: number()
12567
12576
  });
12568
- object({
12569
- id: string(),
12570
- label: string(),
12571
- isAdmin: boolean().default(false),
12572
- allowedProviders: AllowedProviderSchema,
12573
- allowedDevices: AllowedDevicesSchema,
12574
- tokenHash: string(),
12575
- tokenPrefix: string(),
12576
- createdAt: number(),
12577
- lastUsedAt: number().optional()
12578
- });
12579
12577
  object({
12580
12578
  id: string(),
12581
12579
  userId: string(),
@@ -16468,16 +16466,36 @@ var RecordKindStateSchema = _enum([
16468
16466
  var DeclareKindResultSchema = object({
16469
16467
  kindId: number().int(),
16470
16468
  state: RecordKindStateSchema,
16471
- createdIndexes: array(string()),
16472
- /**
16473
- * RETIRED (D900): always `null`. It carried the records-migration boot guard;
16474
- * it stays on the wire, null, because an addon built before the removal reads
16475
- * an ABSENT field as "adoption pending" and refuses to start.
16476
- */
16477
- adoptionPending: _null()
16469
+ createdIndexes: array(string())
16478
16470
  });
16479
16471
  /** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
16480
16472
  var SecretRefsList = array(string());
16473
+ /**
16474
+ * One op of a `transact`: the single-row writes, each on a kind of the caller.
16475
+ * All ops of one call share ONE database file and ONE `transactFamily`.
16476
+ */
16477
+ var RecordTransactOpSchema = discriminatedUnion("op", [
16478
+ object({
16479
+ op: literal("put"),
16480
+ kind: RecordKindNameSchema,
16481
+ record: RecordInputSchema,
16482
+ ifRev: number().int().min(0).optional()
16483
+ }),
16484
+ object({
16485
+ op: literal("patch"),
16486
+ kind: RecordKindNameSchema,
16487
+ id: RecordIdSchema,
16488
+ data: RecordBodySchema,
16489
+ at: number().int().nullable().optional(),
16490
+ expiresAt: number().int().nullable().optional(),
16491
+ ifRev: number().int().min(1).optional()
16492
+ }),
16493
+ object({
16494
+ op: literal("delete"),
16495
+ kind: RecordKindNameSchema,
16496
+ id: RecordIdSchema
16497
+ })
16498
+ ]);
16481
16499
  var RecordSecretRefsSchema = record(string(), record(string(), string()));
16482
16500
  method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
16483
16501
  kind: "mutation",
@@ -16584,6 +16602,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
16584
16602
  }), {
16585
16603
  kind: "mutation",
16586
16604
  auth: "admin"
16605
+ }), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
16606
+ results: array(object({
16607
+ rev: number().int().nullable(),
16608
+ deleted: boolean()
16609
+ })),
16610
+ releasedRefs: SecretRefsList,
16611
+ secretRefs: SecretRefsList
16612
+ }), {
16613
+ kind: "mutation",
16614
+ auth: "admin"
16587
16615
  }), method(object({
16588
16616
  deviceId: number().int(),
16589
16617
  kinds: array(RecordKindNameSchema).optional()
@@ -41987,9 +42015,13 @@ var NcSystemEventKindSchema = _enum([
41987
42015
  "node-updating",
41988
42016
  "node-inference-unavailable",
41989
42017
  "detection-blind",
42018
+ "motion-noisy",
42019
+ "motion-calm",
41990
42020
  "recording-stalled",
41991
42021
  "recording-healthy",
41992
42022
  "recording-degraded",
42023
+ "device-attention-required",
42024
+ "device-attention-resolved",
41993
42025
  "storage-location-low",
41994
42026
  "storage-location-critical",
41995
42027
  "storage-location-ok",
@@ -42013,6 +42045,8 @@ var NcSystemEventKindSchema = _enum([
42013
42045
  "alert-critical",
42014
42046
  "alert-error",
42015
42047
  "alert-critical-resolved",
42048
+ "rule-broken",
42049
+ "rule-repaired",
42016
42050
  "camera-online",
42017
42051
  "camera-offline",
42018
42052
  "camera-disabled",
@@ -43456,6 +43490,14 @@ var NC_CONDITION_CATALOG = [
43456
43490
  value: "detection-blind",
43457
43491
  label: "Camera detecting nothing"
43458
43492
  },
43493
+ {
43494
+ value: "motion-noisy",
43495
+ label: "Camera motion constant, no subject"
43496
+ },
43497
+ {
43498
+ value: "motion-calm",
43499
+ label: "Camera motion calm again"
43500
+ },
43459
43501
  {
43460
43502
  value: "recording-stalled",
43461
43503
  label: "Recording stalled"
@@ -43468,6 +43510,14 @@ var NC_CONDITION_CATALOG = [
43468
43510
  value: "recording-degraded",
43469
43511
  label: "Recording degraded (restart storm)"
43470
43512
  },
43513
+ {
43514
+ value: "device-attention-required",
43515
+ label: "Device needs attention"
43516
+ },
43517
+ {
43518
+ value: "device-attention-resolved",
43519
+ label: "Device attention resolved"
43520
+ },
43471
43521
  {
43472
43522
  value: "storage-location-low",
43473
43523
  label: "Storage location low"
@@ -43552,6 +43602,14 @@ var NC_CONDITION_CATALOG = [
43552
43602
  value: "alert-critical-resolved",
43553
43603
  label: "Critical alert resolved"
43554
43604
  },
43605
+ {
43606
+ value: "rule-broken",
43607
+ label: "Notification rule broken"
43608
+ },
43609
+ {
43610
+ value: "rule-repaired",
43611
+ label: "Notification rule repaired"
43612
+ },
43555
43613
  {
43556
43614
  value: "alarm-arm-refused",
43557
43615
  label: "Alarm arm refused"
@@ -55024,6 +55082,16 @@ object({
55024
55082
  powerState: string().nullable(),
55025
55083
  saltLevel: DishwasherConsumableLevelSchema.nullable(),
55026
55084
  rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
55085
+ /**
55086
+ * True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
55087
+ * combined care-and-filter reminder raised); false when every such reminder reads clear; null
55088
+ * when none is reported. A cleared reminder is not an unknown one.
55089
+ */
55090
+ filterCleaningDue: boolean().nullable(),
55091
+ /** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
55092
+ machineCareDue: boolean().nullable(),
55093
+ /** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
55094
+ machineCareRemainingRuns: number().int().nonnegative().nullable(),
55027
55095
  /** Option states: null when the appliance does not expose the option or has not said. */
55028
55096
  halfLoad: boolean().nullable(),
55029
55097
  hygienePlus: boolean().nullable(),
@@ -61703,16 +61771,6 @@ var UpdateUserInputSchema = object({
61703
61771
  allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
61704
61772
  scopes: array(TokenScopeSchema).optional()
61705
61773
  });
61706
- var ApiKeySummarySchema = object({
61707
- id: string(),
61708
- label: string(),
61709
- isAdmin: boolean().default(false),
61710
- allowedProviders: union([array(string()), literal("*")]).optional(),
61711
- allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
61712
- tokenPrefix: string(),
61713
- createdAt: number(),
61714
- lastUsedAt: number().optional()
61715
- });
61716
61774
  var OauthSessionSummarySchema = object({
61717
61775
  id: string(),
61718
61776
  userId: string(),
@@ -61734,8 +61792,7 @@ var TotpStatusSchema = object({
61734
61792
  confirmedAt: number().nullable()
61735
61793
  });
61736
61794
  /**
61737
- * user-management — singleton capability for user accounts and the
61738
- * legacy API-key rows.
61795
+ * user-management — singleton capability for user accounts.
61739
61796
  *
61740
61797
  * v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
61741
61798
  * — the subset check on `setUserScopes` is moot
@@ -61791,10 +61848,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
61791
61848
  }), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
61792
61849
  kind: "mutation",
61793
61850
  access: "view"
61794
- }), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
61795
- kind: "mutation",
61796
- auth: "admin",
61797
- access: "delete"
61798
61851
  }), method(object({ userId: string() }), TotpSetupResultSchema, {
61799
61852
  kind: "mutation",
61800
61853
  auth: "admin",
@@ -69623,6 +69676,12 @@ Object.freeze({
69623
69676
  addonId: null,
69624
69677
  access: "view"
69625
69678
  },
69679
+ "records.transact": {
69680
+ capName: "records",
69681
+ capScope: "system",
69682
+ addonId: null,
69683
+ access: "create"
69684
+ },
69626
69685
  "sceneMonitor.captureReference": {
69627
69686
  capName: "scene-monitor",
69628
69687
  capScope: "device",
@@ -70955,12 +71014,6 @@ Object.freeze({
70955
71014
  addonId: null,
70956
71015
  access: "view"
70957
71016
  },
70958
- "userManagement.listApiKeys": {
70959
- capName: "user-management",
70960
- capScope: "system",
70961
- addonId: null,
70962
- access: "view"
70963
- },
70964
71017
  "userManagement.listExternalIdentities": {
70965
71018
  capName: "user-management",
70966
71019
  capScope: "system",
@@ -71015,12 +71068,6 @@ Object.freeze({
71015
71068
  addonId: null,
71016
71069
  access: "create"
71017
71070
  },
71018
- "userManagement.revokeApiKey": {
71019
- capName: "user-management",
71020
- capScope: "system",
71021
- addonId: null,
71022
- access: "delete"
71023
- },
71024
71071
  "userManagement.revokeOauthSession": {
71025
71072
  capName: "user-management",
71026
71073
  capScope: "system",
@@ -74385,9 +74432,13 @@ new Map(Object.entries({
74385
74432
  "stream-online": "device-events",
74386
74433
  "stream-offline": "device-events",
74387
74434
  "detection-blind": "device-events",
74435
+ "motion-noisy": "device-events",
74436
+ "motion-calm": "device-events",
74388
74437
  "recording-stalled": "device-events",
74389
74438
  "recording-healthy": "device-events",
74390
74439
  "recording-degraded": "device-events",
74440
+ "device-attention-required": "device-events",
74441
+ "device-attention-resolved": "device-events",
74391
74442
  "node-online": "system",
74392
74443
  "node-offline": "system",
74393
74444
  "node-restarting": "system",
@@ -74404,6 +74455,8 @@ new Map(Object.entries({
74404
74455
  "alert-critical": "system",
74405
74456
  "alert-error": "system",
74406
74457
  "alert-critical-resolved": "system",
74458
+ "rule-broken": "system",
74459
+ "rule-repaired": "system",
74407
74460
  "storage-location-low": "system",
74408
74461
  "storage-location-critical": "system",
74409
74462
  "storage-location-ok": "system",
@@ -74468,6 +74521,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
74468
74521
  label: "Detecting nothing",
74469
74522
  kinds: ["detection-blind"]
74470
74523
  },
74524
+ {
74525
+ id: "motion-noise",
74526
+ family: "device-events",
74527
+ label: "Motion without a subject",
74528
+ kinds: ["motion-noisy", "motion-calm"]
74529
+ },
74471
74530
  {
74472
74531
  id: "recording",
74473
74532
  family: "device-events",
@@ -74478,6 +74537,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
74478
74537
  "recording-degraded"
74479
74538
  ]
74480
74539
  },
74540
+ {
74541
+ id: "device-attention",
74542
+ family: "device-events",
74543
+ label: "Needs attention",
74544
+ kinds: ["device-attention-required", "device-attention-resolved"]
74545
+ },
74481
74546
  {
74482
74547
  id: "nodes",
74483
74548
  family: "system",
@@ -74538,6 +74603,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
74538
74603
  "alert-critical-resolved"
74539
74604
  ]
74540
74605
  },
74606
+ {
74607
+ id: "rule-health",
74608
+ family: "system",
74609
+ label: "Notification rules",
74610
+ kinds: ["rule-broken", "rule-repaired"]
74611
+ },
74541
74612
  {
74542
74613
  id: "alarm",
74543
74614
  family: "alarm",
@@ -74691,6 +74762,7 @@ var ALERT_EPISODE = [
74691
74762
  "alert-error",
74692
74763
  "alert-critical-resolved"
74693
74764
  ];
74765
+ var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
74694
74766
  var UPDATES = [
74695
74767
  "addon-update-available",
74696
74768
  "server-update-available",
@@ -74720,9 +74792,12 @@ var DEVICE_EVENTS = [
74720
74792
  "stream-online",
74721
74793
  "stream-offline",
74722
74794
  "detection-blind",
74795
+ "motion-noisy",
74796
+ "motion-calm",
74723
74797
  "recording-stalled",
74724
74798
  "recording-healthy",
74725
74799
  "recording-degraded",
74800
+ ...DEVICE_ATTENTION,
74726
74801
  ...ALARM
74727
74802
  ];
74728
74803
  /** Every kind a summary may speak about — the two summarisable families. */
@@ -74890,7 +74965,13 @@ var STATE_SUMMARY_VARS = [
74890
74965
  [...RULE_TEXT],
74891
74966
  [...RULE_TEXT],
74892
74967
  [...RULE_TEXT],
74893
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74968
+ [...RULE_TEXT],
74969
+ [...RULE_TEXT],
74970
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74971
+ [...RULE_TEXT],
74972
+ [...RULE_TEXT],
74973
+ [...RULE_TEXT],
74974
+ [...RULE_TEXT],
74894
74975
  [...RULE_TEXT],
74895
74976
  [...RULE_TEXT],
74896
74977
  [...RULE_TEXT],
@@ -74908,11 +74989,11 @@ var STATE_SUMMARY_VARS = [
74908
74989
  [...RULE_TEXT],
74909
74990
  [...RULE_TEXT],
74910
74991
  [...RULE_TEXT],
74992
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74911
74993
  ([...RULE_TEXT], [...ALERT_EPISODE]),
74994
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74912
74995
  ([...RULE_TEXT], [...ALERT_EPISODE]),
74913
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74914
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74915
- ([...RULE_TEXT], [...ALERT_EPISODE]),
74996
+ ([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
74916
74997
  [...RULE_TEXT],
74917
74998
  [...RULE_TEXT],
74918
74999
  [...RULE_TEXT],
@@ -74933,6 +75014,125 @@ var STATE_SUMMARY_VARS = [
74933
75014
  [...RULE_TEXT],
74934
75015
  ...STATE_SUMMARY_VARS
74935
75016
  ];
75017
+ new Map([
75018
+ {
75019
+ id: "device-connectivity",
75020
+ family: "device-events",
75021
+ label: "Device connectivity (offline / back online)",
75022
+ bad: ["device-offline"],
75023
+ recovery: ["device-online"],
75024
+ snapshotLabel: "Devices offline now",
75025
+ snapshotSection: "device-state"
75026
+ },
75027
+ {
75028
+ id: "device-switch",
75029
+ family: "device-events",
75030
+ label: "Device switched off / back on",
75031
+ bad: ["device-disabled"],
75032
+ recovery: ["device-enabled"],
75033
+ snapshotLabel: "Devices switched off now",
75034
+ snapshotSection: "device-state"
75035
+ },
75036
+ {
75037
+ id: "stream-connectivity",
75038
+ family: "device-events",
75039
+ label: "Stream connectivity (offline / back online)",
75040
+ bad: ["stream-offline"],
75041
+ recovery: ["stream-online"],
75042
+ snapshotLabel: "Streams offline now",
75043
+ snapshotSection: "streams"
75044
+ },
75045
+ {
75046
+ id: "battery",
75047
+ family: "device-events",
75048
+ label: "Battery (low / back to normal)",
75049
+ bad: ["device-battery-low"],
75050
+ recovery: ["device-battery-normal"],
75051
+ snapshotLabel: "Batteries low now",
75052
+ snapshotSection: "battery"
75053
+ },
75054
+ {
75055
+ id: "consumables",
75056
+ family: "device-events",
75057
+ label: "Consumables (low / replaced)",
75058
+ bad: ["device-consumable-low"],
75059
+ recovery: ["device-consumable-normal"],
75060
+ snapshotLabel: "Consumables low now",
75061
+ snapshotSection: "consumables"
75062
+ },
75063
+ {
75064
+ id: "tanks",
75065
+ family: "device-events",
75066
+ label: "Tanks (low or full / back to normal)",
75067
+ bad: ["device-tank-low", "device-tank-full"],
75068
+ recovery: ["device-tank-normal"],
75069
+ snapshotLabel: "Tanks low or full now",
75070
+ snapshotSection: "tanks"
75071
+ },
75072
+ {
75073
+ id: "motion-noise",
75074
+ family: "device-events",
75075
+ label: "Motion without a subject (constant / calm again)",
75076
+ bad: ["motion-noisy"],
75077
+ recovery: ["motion-calm"],
75078
+ snapshotLabel: "Cameras with constant motion now",
75079
+ snapshotSection: null
75080
+ },
75081
+ {
75082
+ id: "recording-health",
75083
+ family: "device-events",
75084
+ label: "Recording health (stalled or degraded / recording again)",
75085
+ bad: ["recording-stalled", "recording-degraded"],
75086
+ recovery: ["recording-healthy"],
75087
+ snapshotLabel: "Recordings stalled now",
75088
+ snapshotSection: null
75089
+ },
75090
+ {
75091
+ id: "device-attention",
75092
+ family: "device-events",
75093
+ label: "Device needs attention (raised / resolved)",
75094
+ bad: ["device-attention-required"],
75095
+ recovery: ["device-attention-resolved"],
75096
+ snapshotLabel: "Devices needing attention now",
75097
+ snapshotSection: null
75098
+ },
75099
+ {
75100
+ id: "node-connectivity",
75101
+ family: "system",
75102
+ label: "Node connectivity (offline / back online)",
75103
+ bad: ["node-offline"],
75104
+ recovery: ["node-online"],
75105
+ snapshotLabel: "Nodes offline now",
75106
+ snapshotSection: "nodes"
75107
+ },
75108
+ {
75109
+ id: "storage-space",
75110
+ family: "system",
75111
+ label: "Storage space (low or critical / ok again)",
75112
+ bad: ["storage-location-low", "storage-location-critical"],
75113
+ recovery: ["storage-location-ok"],
75114
+ snapshotLabel: "Storage locations low now",
75115
+ snapshotSection: null
75116
+ },
75117
+ {
75118
+ id: "critical-alerts",
75119
+ family: "system",
75120
+ label: "Critical alerts (raised / resolved)",
75121
+ bad: ["alert-critical"],
75122
+ recovery: ["alert-critical-resolved"],
75123
+ snapshotLabel: "Critical alerts open now",
75124
+ snapshotSection: null
75125
+ },
75126
+ {
75127
+ id: "rule-health",
75128
+ family: "system",
75129
+ label: "Rule health (broken / repaired)",
75130
+ bad: ["rule-broken"],
75131
+ recovery: ["rule-repaired"],
75132
+ snapshotLabel: "Notification rules broken now",
75133
+ snapshotSection: null
75134
+ }
75135
+ ].flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
74936
75136
  new Set([
74937
75137
  "disarmed",
74938
75138
  "armed_home",
@@ -77098,6 +77298,18 @@ var CAP_STATE_LEAVES = Object.freeze({
77098
77298
  "empty"
77099
77299
  ]
77100
77300
  },
77301
+ {
77302
+ "path": "filterCleaningDue",
77303
+ "valueType": "boolean"
77304
+ },
77305
+ {
77306
+ "path": "machineCareDue",
77307
+ "valueType": "boolean"
77308
+ },
77309
+ {
77310
+ "path": "machineCareRemainingRuns",
77311
+ "valueType": "number"
77312
+ },
77101
77313
  {
77102
77314
  "path": "halfLoad",
77103
77315
  "valueType": "boolean"
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { c as s, l as c } from "./responsive-CWtvzc-D.mjs";
3
+ import { c as s, l as c } from "./responsive-DXxTiZk_.mjs";
4
4
  var l = c("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
6
6
  key: "qrunsl"
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-B10jZ1JA.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Byjybpdl.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, g as n, i as r, l as i, n as a, r as o, u as s, v as c, y as l } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-93IUAGBu.mjs";
3
+ import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CWzPWMLE.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  e();
6
6
  var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
@@ -1,6 +1,6 @@
1
1
  import { S as e, g as t, l as n, v as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C-pbjC7c.mjs";
2
2
  import { n as i } from "./ui-text-BitwQ50T.mjs";
3
- import { l as a } from "./responsive-CWtvzc-D.mjs";
3
+ import { l as a } from "./responsive-DXxTiZk_.mjs";
4
4
  var o = a("camera", [["path", {
5
5
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
6
6
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { l as e } from "./responsive-CWtvzc-D.mjs";
1
+ import { l as e } from "./responsive-DXxTiZk_.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { l as e } from "./responsive-CWtvzc-D.mjs";
1
+ import { l as e } from "./responsive-DXxTiZk_.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DJs_KsVD.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-B4ntcc3T.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.259",
3
+ "version": "0.1.261",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",