@camstack/types 1.2.396 → 1.2.397

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
@@ -22290,6 +22290,8 @@ var NcSystemEventKindSchema = z.enum([
22290
22290
  "alert-critical",
22291
22291
  "alert-error",
22292
22292
  "alert-critical-resolved",
22293
+ "rule-broken",
22294
+ "rule-repaired",
22293
22295
  "camera-online",
22294
22296
  "camera-offline",
22295
22297
  "camera-disabled",
@@ -28783,8 +28785,8 @@ var NC_SYSTEM_EVENT_FAMILIES = [
28783
28785
  function isSystemEventFamily(value) {
28784
28786
  return NC_SYSTEM_EVENT_FAMILIES.some((family) => family === value);
28785
28787
  }
28786
- /** Read by NAME, for kinds that arrive as plain strings (a newer hub, the viewer's mirror). */
28787
- var FAMILY_BY_NAME = new Map(Object.entries({
28788
+ /** Total over the enum: a kind added to the cap without a family fails tsc here. */
28789
+ var NC_SYSTEM_EVENT_FAMILY = {
28788
28790
  "device-online": "device-events",
28789
28791
  "device-offline": "device-events",
28790
28792
  "device-disabled": "device-events",
@@ -28818,6 +28820,8 @@ var FAMILY_BY_NAME = new Map(Object.entries({
28818
28820
  "alert-critical": "system",
28819
28821
  "alert-error": "system",
28820
28822
  "alert-critical-resolved": "system",
28823
+ "rule-broken": "system",
28824
+ "rule-repaired": "system",
28821
28825
  "storage-location-low": "system",
28822
28826
  "storage-location-critical": "system",
28823
28827
  "storage-location-ok": "system",
@@ -28834,7 +28838,9 @@ var FAMILY_BY_NAME = new Map(Object.entries({
28834
28838
  "camera-offline": null,
28835
28839
  "camera-disabled": null,
28836
28840
  "camera-enabled": null
28837
- }));
28841
+ };
28842
+ /** Read by NAME, for kinds that arrive as plain strings (a newer hub, the viewer's mirror). */
28843
+ var FAMILY_BY_NAME = new Map(Object.entries(NC_SYSTEM_EVENT_FAMILY));
28838
28844
  [...NC_SYSTEM_EVENT_FILTER_KEYS];
28839
28845
  /**
28840
28846
  * The filters a family may carry. The base filters are the union of
@@ -28968,6 +28974,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
28968
28974
  "alert-critical-resolved"
28969
28975
  ]
28970
28976
  },
28977
+ {
28978
+ id: "rule-health",
28979
+ family: "system",
28980
+ label: "Notification rules",
28981
+ kinds: ["rule-broken", "rule-repaired"]
28982
+ },
28971
28983
  {
28972
28984
  id: "alarm",
28973
28985
  family: "alarm",
@@ -30474,6 +30486,47 @@ var NC_TEMPLATE_VARS = [
30474
30486
  kinds: ["system"],
30475
30487
  systemEventKinds: ["recording-degraded", ...ALERT_EPISODE]
30476
30488
  },
30489
+ {
30490
+ name: "ruleName",
30491
+ label: "Rule name",
30492
+ example: "Robot",
30493
+ group: "system",
30494
+ families: ["rule"],
30495
+ fields: [...RULE_TEXT],
30496
+ kinds: ["system"],
30497
+ systemEventKinds: ["rule-broken", "rule-repaired"]
30498
+ },
30499
+ {
30500
+ name: "ruleId",
30501
+ label: "Rule id",
30502
+ example: "3db3e226-9b82-4681-a200-de13b260aa48",
30503
+ group: "system",
30504
+ families: ["rule"],
30505
+ fields: [...RULE_TEXT],
30506
+ kinds: ["system"],
30507
+ systemEventKinds: ["rule-broken", "rule-repaired"]
30508
+ },
30509
+ {
30510
+ name: "brokenReason",
30511
+ label: "Why the rule is broken",
30512
+ description: "unparseable, device-deleted or target-deleted",
30513
+ example: "device-deleted",
30514
+ group: "system",
30515
+ families: ["rule"],
30516
+ fields: [...RULE_TEXT],
30517
+ kinds: ["system"],
30518
+ systemEventKinds: ["rule-broken"]
30519
+ },
30520
+ {
30521
+ name: "offendingIds",
30522
+ label: "Deleted devices or destinations",
30523
+ example: "4483",
30524
+ group: "system",
30525
+ families: ["rule"],
30526
+ fields: [...RULE_TEXT],
30527
+ kinds: ["system"],
30528
+ systemEventKinds: ["rule-broken"]
30529
+ },
30477
30530
  {
30478
30531
  name: "locationName",
30479
30532
  label: "Storage location",
@@ -30929,7 +30982,9 @@ var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
30929
30982
  "node-updating",
30930
30983
  "alert-critical",
30931
30984
  "alert-error",
30932
- "alert-critical-resolved"
30985
+ "alert-critical-resolved",
30986
+ "rule-broken",
30987
+ "rule-repaired"
30933
30988
  ];
30934
30989
  /**
30935
30990
  * Is this descriptor held back from the SERVED catalog as a whole (D647)?
@@ -30986,6 +31041,178 @@ function templateVarSystemEventApplies(d, ctx) {
30986
31041
  return declared.some((k) => own.includes(k));
30987
31042
  }
30988
31043
  //#endregion
31044
+ //#region src/notification/system-event-classes.ts
31045
+ var NC_SYSTEM_EVENT_CLASS_SPECS = [
31046
+ {
31047
+ id: "device-connectivity",
31048
+ family: "device-events",
31049
+ label: "Device connectivity (offline / back online)",
31050
+ bad: ["device-offline"],
31051
+ recovery: ["device-online"],
31052
+ snapshotLabel: "Devices offline now",
31053
+ snapshotSection: "device-state"
31054
+ },
31055
+ {
31056
+ id: "device-switch",
31057
+ family: "device-events",
31058
+ label: "Device switched off / back on",
31059
+ bad: ["device-disabled"],
31060
+ recovery: ["device-enabled"],
31061
+ snapshotLabel: "Devices switched off now",
31062
+ snapshotSection: "device-state"
31063
+ },
31064
+ {
31065
+ id: "stream-connectivity",
31066
+ family: "device-events",
31067
+ label: "Stream connectivity (offline / back online)",
31068
+ bad: ["stream-offline"],
31069
+ recovery: ["stream-online"],
31070
+ snapshotLabel: "Streams offline now",
31071
+ snapshotSection: "streams"
31072
+ },
31073
+ {
31074
+ id: "battery",
31075
+ family: "device-events",
31076
+ label: "Battery (low / back to normal)",
31077
+ bad: ["device-battery-low"],
31078
+ recovery: ["device-battery-normal"],
31079
+ snapshotLabel: "Batteries low now",
31080
+ snapshotSection: "battery"
31081
+ },
31082
+ {
31083
+ id: "consumables",
31084
+ family: "device-events",
31085
+ label: "Consumables (low / replaced)",
31086
+ bad: ["device-consumable-low"],
31087
+ recovery: ["device-consumable-normal"],
31088
+ snapshotLabel: "Consumables low now",
31089
+ snapshotSection: "consumables"
31090
+ },
31091
+ {
31092
+ id: "tanks",
31093
+ family: "device-events",
31094
+ label: "Tanks (low or full / back to normal)",
31095
+ bad: ["device-tank-low", "device-tank-full"],
31096
+ recovery: ["device-tank-normal"],
31097
+ snapshotLabel: "Tanks low or full now",
31098
+ snapshotSection: "tanks"
31099
+ },
31100
+ {
31101
+ id: "recording-health",
31102
+ family: "device-events",
31103
+ label: "Recording health (stalled or degraded / recording again)",
31104
+ bad: ["recording-stalled", "recording-degraded"],
31105
+ recovery: ["recording-healthy"],
31106
+ snapshotLabel: "Recordings stalled now",
31107
+ snapshotSection: null
31108
+ },
31109
+ {
31110
+ id: "node-connectivity",
31111
+ family: "system",
31112
+ label: "Node connectivity (offline / back online)",
31113
+ bad: ["node-offline"],
31114
+ recovery: ["node-online"],
31115
+ snapshotLabel: "Nodes offline now",
31116
+ snapshotSection: "nodes"
31117
+ },
31118
+ {
31119
+ id: "storage-space",
31120
+ family: "system",
31121
+ label: "Storage space (low or critical / ok again)",
31122
+ bad: ["storage-location-low", "storage-location-critical"],
31123
+ recovery: ["storage-location-ok"],
31124
+ snapshotLabel: "Storage locations low now",
31125
+ snapshotSection: null
31126
+ },
31127
+ {
31128
+ id: "critical-alerts",
31129
+ family: "system",
31130
+ label: "Critical alerts (raised / resolved)",
31131
+ bad: ["alert-critical"],
31132
+ recovery: ["alert-critical-resolved"],
31133
+ snapshotLabel: "Critical alerts open now",
31134
+ snapshotSection: null
31135
+ },
31136
+ {
31137
+ id: "rule-health",
31138
+ family: "system",
31139
+ label: "Rule health (broken / repaired)",
31140
+ bad: ["rule-broken"],
31141
+ recovery: ["rule-repaired"],
31142
+ snapshotLabel: "Notification rules broken now",
31143
+ snapshotSection: null
31144
+ }
31145
+ ];
31146
+ var CLASS_BY_KIND = new Map(NC_SYSTEM_EVENT_CLASS_SPECS.flatMap((spec) => [...spec.bad, ...spec.recovery].map((kind) => [kind, spec])));
31147
+ /** Every edge of a class: what an instant rule selecting it listens to. */
31148
+ function systemEventClassKinds(spec) {
31149
+ return [...spec.bad, ...spec.recovery];
31150
+ }
31151
+ /** The class a kind belongs to, or `undefined` for a one-edge kind. */
31152
+ function systemEventClassOf(kind) {
31153
+ return CLASS_BY_KIND.get(kind);
31154
+ }
31155
+ /** The classes of ONE family, for that family's editor. */
31156
+ function systemEventClassesFor(family) {
31157
+ return NC_SYSTEM_EVENT_CLASS_SPECS.filter((spec) => spec.family === family);
31158
+ }
31159
+ /**
31160
+ * A kind list with the OTHER front of every class it touches: a bad edge
31161
+ * brings the class's recovery, a recovery brings the class's bad edges. A
31162
+ * sibling bad edge is never added by a bad edge — a rule on
31163
+ * `storage-location-critical` does not start hearing `storage-location-low`.
31164
+ * Input order is kept, each added edge right after the kind that brought it.
31165
+ * Kinds of no class (and legacy names) pass through.
31166
+ */
31167
+ function expandSystemEventClasses(kinds) {
31168
+ const out = [];
31169
+ const seen = /* @__PURE__ */ new Set();
31170
+ const push = (kind) => {
31171
+ if (seen.has(kind)) return;
31172
+ seen.add(kind);
31173
+ out.push(kind);
31174
+ };
31175
+ const listed = new Set(kinds);
31176
+ for (const kind of kinds) {
31177
+ push(kind);
31178
+ const spec = systemEventClassOf(kind);
31179
+ if (spec === void 0) continue;
31180
+ const hasBad = spec.bad.some((k) => listed.has(k));
31181
+ if (spec.bad.some((k) => k === kind)) for (const edge of spec.recovery) push(edge);
31182
+ else if (!hasBad) for (const edge of spec.bad) push(edge);
31183
+ }
31184
+ return out;
31185
+ }
31186
+ /** Does this rule speak per EVENT (not a scheduled summary)? */
31187
+ function isInstantSystemRule(rule) {
31188
+ if (rule.delivery !== "system-event") return false;
31189
+ return rule.systemEventDelivery?.mode !== "summary";
31190
+ }
31191
+ /**
31192
+ * An INSTANT system rule with each class it touches completed with both edges;
31193
+ * the rule itself (same object) when there is nothing to add, a summary rule,
31194
+ * or a rule spanning families (`mixed` stays read-only, D637). A copy, never a
31195
+ * mutation.
31196
+ */
31197
+ function withSystemEventClasses(rule) {
31198
+ const condition = rule.conditions.systemEvent;
31199
+ if (condition === void 0 || !isInstantSystemRule(rule)) return rule;
31200
+ const families = new Set(condition.kinds.map((kind) => NC_SYSTEM_EVENT_FAMILY[kind]));
31201
+ if (families.size !== 1 || families.has(null)) return rule;
31202
+ const kinds = expandSystemEventClasses(condition.kinds);
31203
+ if (kinds.length === condition.kinds.length) return rule;
31204
+ return {
31205
+ ...rule,
31206
+ conditions: {
31207
+ ...rule.conditions,
31208
+ systemEvent: {
31209
+ ...condition,
31210
+ kinds
31211
+ }
31212
+ }
31213
+ };
31214
+ }
31215
+ //#endregion
30989
31216
  //#region src/notification/system-event-summary.ts
30990
31217
  /** The families a rule may summarise. The alarm is not one of them. */
30991
31218
  var NC_SYSTEM_EVENT_SUMMARY_FAMILIES = ["device-events", "system"];
@@ -31521,4 +31748,4 @@ var TimelapseRuleSchema = TimelapseRuleInputSchema.extend({
31521
31748
  updatedAt: z.number()
31522
31749
  });
31523
31750
  //#endregion
31524
- export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, AlarmArmModeSchema, CLIP_BROKER_PACED_RATES, COCO_TO_MACRO, CamProfileSchema, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFINITIVE_DEVICE_REFUSALS, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_CERT_SIGNATURE, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_SIGNATURE_MESSAGE_VERSION, DeviceType, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_TAXONOMY, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IconKeySchema, LOCATION_ICON_FALLBACK, MACRO_LABELS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NcAlarmConfigSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcHistoryEntrySchema, NcRuleLastRunsSchema, NodeDirectorySchema, RECORDING_EXPORT_MAX_READ_BYTES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, SystemMirror, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleSchema, YAMNET_TO_MACRO, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPatchLanded, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildSubjectPath, canonicalIconKey, classifyRetrainReview, conditionVisibleForKind, createSystemProxy, deviceRefusalFromMessage, droppedConditionsForKind, iconCategoryLabel, iconEntry, iconsInCategory, isDefinitiveDeviceRefusal, isDrawableSubjectPath, isHeldBackTemplateVar, isIconKey, isSystemRuleKind, kindsForDiscriminator, knownValues, locationIconKey, nodePickerItems, packagePickerItems, parseDeviceEnrollmentLink, parseRetrainRevisionConflict, pickerForCondition, pickerForRuleClasses, projectSubjectPath, resolveIconKey, resolveModeDelays, retrainBoxIou, retrainRevisionConflictMessage, ruleDeviceCompatCapNames, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleSeedForSection, searchIcons, sensorTransitionNeverFires, sensorTransitionOffered, stateLabel, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeReview, systemEventDeliveryProblems, systemEventFilterAppliesToAnyKind, systemEventKindsOfFamily, systemFamilyOfKind, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies };
31751
+ export { APPLE_SA_TO_MACRO, AUDIO_MACRO_LABELS, AlarmArmModeSchema, CLIP_BROKER_PACED_RATES, COCO_TO_MACRO, CamProfileSchema, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFINITIVE_DEVICE_REFUSALS, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_CERT_SIGNATURE, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_SIGNATURE_MESSAGE_VERSION, DeviceType, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_TAXONOMY, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IconKeySchema, LOCATION_ICON_FALLBACK, MACRO_LABELS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NcAlarmConfigSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcHistoryEntrySchema, NcRuleLastRunsSchema, NodeDirectorySchema, RECORDING_EXPORT_MAX_READ_BYTES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, SystemMirror, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleSchema, YAMNET_TO_MACRO, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPatchLanded, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildSubjectPath, canonicalIconKey, classifyRetrainReview, conditionVisibleForKind, createSystemProxy, deviceRefusalFromMessage, droppedConditionsForKind, expandSystemEventClasses, iconCategoryLabel, iconEntry, iconsInCategory, isDefinitiveDeviceRefusal, isDrawableSubjectPath, isHeldBackTemplateVar, isIconKey, isSystemRuleKind, kindsForDiscriminator, knownValues, locationIconKey, nodePickerItems, packagePickerItems, parseDeviceEnrollmentLink, parseRetrainRevisionConflict, pickerForCondition, pickerForRuleClasses, projectSubjectPath, resolveIconKey, resolveModeDelays, retrainBoxIou, retrainRevisionConflictMessage, ruleDeviceCompatCapNames, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleSeedForSection, searchIcons, sensorTransitionNeverFires, sensorTransitionOffered, stateLabel, subjectPathSampleFromBox, subjectPathSvgPoints, summarizeReview, systemEventClassKinds, systemEventClassesFor, systemEventDeliveryProblems, systemEventFilterAppliesToAnyKind, systemEventKindsOfFamily, systemFamilyOfKind, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, withSystemEventClasses };
@@ -685,6 +685,14 @@ export declare enum EventCategory {
685
685
  BackupRestored = "backup.restored",
686
686
  NotificationDispatched = "notification.dispatched",
687
687
  NotificationFailed = "notification.failed",
688
+ /**
689
+ * A notification rule that cannot work (D905): its stored row does not load,
690
+ * or it still names a device / delivery target the prune CONFIRMED deleted.
691
+ * One edge per rule per distinct set of reasons; never on an unanswered read.
692
+ */
693
+ NotificationRuleBroken = "notification.rule-broken",
694
+ /** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
695
+ NotificationRuleRepaired = "notification.rule-repaired",
688
696
  DeviceUpdated = "device.updated",
689
697
  /**
690
698
  * Transport-level connectivity. Emitted by the device driver when
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-eSqkye-K.js");
2
+ const require_event_category = require("./event-category-kpu1bZMs.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-DOl51-Ij.mjs";
1
+ import { t as EventCategory } from "./event-category-7pZEBmVg.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -686,6 +686,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
686
686
  EventCategory["BackupRestored"] = "backup.restored";
687
687
  EventCategory["NotificationDispatched"] = "notification.dispatched";
688
688
  EventCategory["NotificationFailed"] = "notification.failed";
689
+ /**
690
+ * A notification rule that cannot work (D905): its stored row does not load,
691
+ * or it still names a device / delivery target the prune CONFIRMED deleted.
692
+ * One edge per rule per distinct set of reasons; never on an unanswered read.
693
+ */
694
+ EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
695
+ /** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
696
+ EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
689
697
  EventCategory["DeviceUpdated"] = "device.updated";
690
698
  /**
691
699
  * Transport-level connectivity. Emitted by the device driver when
@@ -686,6 +686,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
686
686
  EventCategory["BackupRestored"] = "backup.restored";
687
687
  EventCategory["NotificationDispatched"] = "notification.dispatched";
688
688
  EventCategory["NotificationFailed"] = "notification.failed";
689
+ /**
690
+ * A notification rule that cannot work (D905): its stored row does not load,
691
+ * or it still names a device / delivery target the prune CONFIRMED deleted.
692
+ * One edge per rule per distinct set of reasons; never on an unanswered read.
693
+ */
694
+ EventCategory["NotificationRuleBroken"] = "notification.rule-broken";
695
+ /** The clear of {@link NotificationRuleBroken}: the rule loads and names nothing deleted. */
696
+ EventCategory["NotificationRuleRepaired"] = "notification.rule-repaired";
689
697
  EventCategory["DeviceUpdated"] = "device.updated";
690
698
  /**
691
699
  * Transport-level connectivity. Emitted by the device driver when
package/dist/index.d.ts CHANGED
@@ -273,6 +273,7 @@ export { alertEpisodeId, alertEpisodeKind, alertEpisodePayload, alertNodeId, isA
273
273
  export { NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, isHeldBackTemplateVar, isKnownTemplateVar, servedTemplateVars, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, } from './notification/template-vars.js';
274
274
  export { NC_SYSTEM_EVENT_FILTER_KEYS, type NcSystemEventFilterKey, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, } from './notification/system-event-filters.js';
275
275
  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';
276
+ export { expandSystemEventClasses, isSystemEventRecoveryKind, NC_SYSTEM_EVENT_CLASS_SPECS, type NcSystemEventClassSpec, type NcSystemEventClassSubject, systemEventClassesFor, systemEventClassKinds, systemEventClassOf, withSystemEventClasses, } from './notification/system-event-classes.js';
276
277
  export { describeSystemEventDeliveryProblem, isSystemEventSummaryRule, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, type NcSummarySendTime, type NcSystemEventDeliveryProblem, type NcSystemEventDeliverySubject, scheduleForSendTimes, sendTimesForEditor, sendTimesOfSchedule, systemEventDeliveryProblems, systemEventSummaryScheduleOf, systemEventSummarySplitOf, templateCarriesSummary, } from './notification/system-event-summary.js';
277
278
  export { NC_SERVER_PACKAGE_NAME, NC_UPDATE_EVENT_PACKAGE_NAMES, type NcInstalledPackageLike, type NcScopePickerItem, nodePickerItems, packagePickerItems, } from './notification/scope-picker-items.js';
278
279
  export type { TimelapseCadencePair, TimelapsePreviewMode, TimelapseRule, TimelapseRuleInput, TimelapseRulePatch, TimelapseTemplate, } from './notification/timelapse-rule.js';