@camstack/types 1.2.287 → 1.2.289

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/index.js CHANGED
@@ -20035,6 +20035,19 @@ var NcConfirmSchema = zod.z.object({
20035
20035
  /** Longest edge the judged image is downscaled to before it is sent. */
20036
20036
  maxImagePx: zod.z.number().int().min(64).max(2048).default(448)
20037
20037
  });
20038
+ /**
20039
+ * IMMEDIATE GROUPED (D692) — the window bounds. ONE owner; both editors import them.
20040
+ * MIN: below it nothing has time to be promoted, and operator decision 1 (2026-10-01) makes
20041
+ * it the window's floor too — a window never closes earlier, so companions arriving
20042
+ * together share one message.
20043
+ * DEFAULT: equals the tracker's face-settle cap (`FACE_SETTLE_HOLD_MS`, D683 (f)); what an
20044
+ * editor PRE-FILLS, never what absence means (absent = plain immediate).
20045
+ * MAX: equals {@link NC_CLIP_RETENTION_MAX_SEC} — past it a gif/clip is always a recordings cut,
20046
+ * and a lock-screen alert a minute late has lost its purpose.
20047
+ */
20048
+ var NC_GROUPING_MIN_SEC = 5;
20049
+ var NC_GROUPING_DEFAULT_SEC = 20;
20050
+ var NC_GROUPING_MAX_SEC = 60;
20038
20051
  /** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
20039
20052
  var NcRuleInputSchema = zod.z.object({
20040
20053
  name: zod.z.string().min(1).max(200),
@@ -20137,78 +20150,16 @@ var NcRuleInputSchema = zod.z.object({
20137
20150
  */
20138
20151
  confirm: NcConfirmSchema.optional(),
20139
20152
  /**
20140
- * WAIT for face/plate recognition before saying anything.
20141
- *
20142
- * A notification's TEXT is frozen at enqueue and its media is re-resolved at
20143
- * send; the identity is neither. A face is confirmed after `confirmFrames`
20144
- * agreeing observations — p50 **11.4 s** after the track was first seen,
20145
- * measured on this hub — and an `immediate` rule enqueues on the first object
20146
- * event, seconds before that. So "Gianluca è arrivato" is unsayable on the
20147
- * immediate path, and no amount of media re-resolution fixes a sentence.
20148
- *
20149
- * Only two honest answers exist, and this flag picks between them. It has
20150
- * effect ONLY on a rule that declares a recognition scope
20151
- * ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
20152
- * other rule there is nothing to wait for and the flag is inert.
20153
- *
20154
- * | value | what happens |
20155
- * | --- | --- |
20156
- * | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
20157
- * | absent / `false` | it fires at once WITHOUT the name, and if recognition lands before the track closes a SECOND, "…is Gianluca" notification follows (one per track, per rule, per target) |
20158
- *
20159
- * `.optional()` and deliberately NOT `.default()`: a Zod default does not run
20160
- * on the addon cap path, and absent has to keep meaning exactly what every
20161
- * rule authored before this field meant.
20162
- *
20163
- * The cost of `true` is stated here because the editor states it too: a rule
20164
- * that waits also inherits track-close SEMANTICS — its `zones` condition
20165
- * tests every zone the track visited and a `crossing` condition can no longer
20166
- * be satisfied, because a closed track carries no crossing.
20153
+ * IMMEDIATE GROUPED (D692): the first matching subject opens a window of this many
20154
+ * seconds; the rule sends ONE message when the window closes — early, once every
20155
+ * subject in it is final, never before {@link NC_GROUPING_MIN_SEC} — naming everybody
20156
+ * the rule matched, with one mosaic tile per subject.
20157
+ * Absent = plain immediate (one message per track, at the first match).
20158
+ * Only an `immediate` DETECTION rule may carry it (`ruleGroupingApplies`, enforced on
20159
+ * save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
20160
+ * path does not run Zod defaults.
20167
20161
  */
20168
- waitForEnhancement: zod.z.boolean().optional(),
20169
- /**
20170
- * GROUP a burst of subjects into ONE notification that grows.
20171
- *
20172
- * Seconds of quiet after the last matching subject before the burst is
20173
- * considered over. While it is open, the first subject enqueues immediately —
20174
- * **exactly as today, with no added latency** — and every real growth (a new
20175
- * subject, or a name confirmed on one already in it) REPLACES that
20176
- * notification with an updated one naming everybody. The push carries the
20177
- * group's own coalescing tag, so the phone replaces rather than stacks.
20178
- *
20179
- * `0` / absent = off, and off is today's behaviour byte for byte.
20180
- *
20181
- * ### Why an idle cutoff and not a window
20182
- *
20183
- * The measured seven-person arrival on device 590 spans 110 s with every
20184
- * internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
20185
- * idle cutoff holds it as one and ends it when the arrival actually ends.
20186
- * 30 s is a widely shipped value for the same decision.
20187
- *
20188
- * ### What it replaces
20189
- *
20190
- * The blind cooldown, which collapses a burst by DISCARDING it. Measured on
20191
- * device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
20192
- * notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
20193
- * track that did fire and 7 carrying a confirmed identity nobody heard about.
20194
- * A group collapses the same volume by MERGING, so the cooldown becomes a
20195
- * budget over GROUPS — which is what it always meant — and a growth is never
20196
- * throttled by the window its own first member spent.
20197
- *
20198
- * ### Interaction with {@link waitForEnhancement}
20199
- *
20200
- * They compose, and the order matters. `waitForEnhancement` defers the rule to
20201
- * TRACK CLOSE, so with both set the group is opened by the first member to
20202
- * CLOSE — already carrying its name — and grows as later members close. That
20203
- * is later, and complete. With grouping alone the group opens on the first
20204
- * object event and picks up names as they are confirmed, through the growth
20205
- * path. Neither combination fires twice for one subject.
20206
- *
20207
- * `.optional()` and deliberately NOT `.default()`: a Zod default does not run
20208
- * on the addon cap path, so absent must keep meaning what it meant before this
20209
- * field existed.
20210
- */
20211
- groupIdleSec: zod.z.number().int().min(0).max(600).optional()
20162
+ groupingSec: zod.z.number().int().min(5).max(60).optional()
20212
20163
  });
20213
20164
  /**
20214
20165
  * Partial patch for `updateRule` — any subset of the input fields, plus the
@@ -20251,6 +20202,21 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
20251
20202
  priority: zod.z.number().int().min(1).max(5).optional()
20252
20203
  });
20253
20204
  /**
20205
+ * Keys an older client may still name in `clear` (D692 §2.3). Accepted so its saves are never
20206
+ * refused. They are no longer rule fields: `NcRuleStore.update` only strips them from the
20207
+ * STORED row, and `NcRuleStore.load` projects what a stored row still carries (D692 §9).
20208
+ * Removed one release after the viewer pin in camstack-server stops sending them.
20209
+ */
20210
+ var NC_RULE_RETIRED_CLEAR_KEYS = ["waitForEnhancement", "groupIdleSec"];
20211
+ /**
20212
+ * Is this clearable key one of the retired ones? A type guard, so the store can split the
20213
+ * `clear` list WITHOUT a cast: a retired key is no property of `NcRulePatch` or `NcRule`, and
20214
+ * indexing either with it does not compile.
20215
+ */
20216
+ function isRetiredClearKey(key) {
20217
+ return NC_RULE_RETIRED_CLEAR_KEYS.some((retired) => retired === key);
20218
+ }
20219
+ /**
20254
20220
  * Optional rule fields an editor may EMPTY on an update.
20255
20221
  *
20256
20222
  * `updateRule` merges `{ ...existing, ...patch }`, so an omitted key keeps its
@@ -20266,9 +20232,10 @@ var NC_RULE_CLEARABLE_KEYS = [
20266
20232
  "targetUsers",
20267
20233
  "snoozeOptions",
20268
20234
  "snoozeAllowGlobal",
20269
- "waitForEnhancement",
20270
20235
  "actions",
20271
20236
  "confirm",
20237
+ "groupingSec",
20238
+ "waitForEnhancement",
20272
20239
  "groupIdleSec"
20273
20240
  ];
20274
20241
  var NcRuleClearableKeySchema = zod.z.enum(NC_RULE_CLEARABLE_KEYS);
@@ -20823,7 +20790,7 @@ var NC_CONDITION_CATALOG = [
20823
20790
  operator: "in",
20824
20791
  appliesTo: ["immediate", "track-end"],
20825
20792
  phase: "P1",
20826
- description: "Only recognised people. Selecting NOBODY means every identity in the face gallery; selecting some narrows to those. Matched on the gallery id, so renaming a person does not break the rule. On immediate delivery the name is not known yet when the notification is enqueued — see the rule’s \"wait for recognition\" switch."
20793
+ description: "Only recognised people. Selecting NOBODY means every identity in the face gallery; selecting some narrows to those. Matched on the gallery id, so renaming a person does not break the rule. On Immediate delivery the name must already be known when an event is written — choose Immediate, grouped to wait for it (D692)."
20827
20794
  },
20828
20795
  {
20829
20796
  id: "plates",
@@ -60437,6 +60404,11 @@ var SYSTEM_CAP_NAMES = [
60437
60404
  //#endregion
60438
60405
  //#region src/generated/method-device-selectors.ts
60439
60406
  var METHOD_DEVICE_SELECTORS = Object.freeze({
60407
+ "accessories.getStatus": [{
60408
+ name: "deviceId",
60409
+ form: "single",
60410
+ optional: false
60411
+ }],
60440
60412
  "accessories.setChildHidden": [{
60441
60413
  name: "childDeviceId",
60442
60414
  form: "single",
@@ -60456,6 +60428,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60456
60428
  form: "single",
60457
60429
  optional: false
60458
60430
  }],
60431
+ "airQualitySensor.getStatus": [{
60432
+ name: "deviceId",
60433
+ form: "single",
60434
+ optional: false
60435
+ }],
60459
60436
  "alarmPanel.arm": [{
60460
60437
  name: "deviceId",
60461
60438
  form: "single",
@@ -60466,11 +60443,36 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60466
60443
  form: "single",
60467
60444
  optional: false
60468
60445
  }],
60446
+ "alarmPanel.getStatus": [{
60447
+ name: "deviceId",
60448
+ form: "single",
60449
+ optional: false
60450
+ }],
60469
60451
  "alarmPanel.trigger": [{
60470
60452
  name: "deviceId",
60471
60453
  form: "single",
60472
60454
  optional: false
60473
60455
  }],
60456
+ "ambientLightSensor.getStatus": [{
60457
+ name: "deviceId",
60458
+ form: "single",
60459
+ optional: false
60460
+ }],
60461
+ "audioAnalysis.applyDeviceSettingsPatch": [{
60462
+ name: "deviceId",
60463
+ form: "single",
60464
+ optional: false
60465
+ }],
60466
+ "audioAnalysis.getDeviceLiveContribution": [{
60467
+ name: "deviceId",
60468
+ form: "single",
60469
+ optional: false
60470
+ }],
60471
+ "audioAnalysis.getDeviceSettingsContribution": [{
60472
+ name: "deviceId",
60473
+ form: "single",
60474
+ optional: false
60475
+ }],
60474
60476
  "audioAnalysis.resolveDeviceSettings": [{
60475
60477
  name: "deviceId",
60476
60478
  form: "single",
@@ -60511,16 +60513,36 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60511
60513
  form: "single",
60512
60514
  optional: false
60513
60515
  }],
60516
+ "automationControl.getStatus": [{
60517
+ name: "deviceId",
60518
+ form: "single",
60519
+ optional: false
60520
+ }],
60514
60521
  "automationControl.trigger": [{
60515
60522
  name: "deviceId",
60516
60523
  form: "single",
60517
60524
  optional: false
60518
60525
  }],
60526
+ "battery.getStatus": [{
60527
+ name: "deviceId",
60528
+ form: "single",
60529
+ optional: false
60530
+ }],
60519
60531
  "battery.wakeForStream": [{
60520
60532
  name: "deviceId",
60521
60533
  form: "single",
60522
60534
  optional: false
60523
60535
  }],
60536
+ "binary.getStatus": [{
60537
+ name: "deviceId",
60538
+ form: "single",
60539
+ optional: false
60540
+ }],
60541
+ "brightness.getStatus": [{
60542
+ name: "deviceId",
60543
+ form: "single",
60544
+ optional: false
60545
+ }],
60524
60546
  "brightness.setBrightness": [{
60525
60547
  name: "deviceId",
60526
60548
  form: "single",
@@ -60536,6 +60558,26 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60536
60558
  form: "single",
60537
60559
  optional: false
60538
60560
  }],
60561
+ "cameraCredentials.getStatus": [{
60562
+ name: "deviceId",
60563
+ form: "single",
60564
+ optional: false
60565
+ }],
60566
+ "cameraGridLayout.applyDeviceSettingsPatch": [{
60567
+ name: "deviceId",
60568
+ form: "single",
60569
+ optional: false
60570
+ }],
60571
+ "cameraGridLayout.getDeviceLiveContribution": [{
60572
+ name: "deviceId",
60573
+ form: "single",
60574
+ optional: false
60575
+ }],
60576
+ "cameraGridLayout.getDeviceSettingsContribution": [{
60577
+ name: "deviceId",
60578
+ form: "single",
60579
+ optional: false
60580
+ }],
60539
60581
  "cameraGridLayout.getLayout": [{
60540
60582
  name: "deviceId",
60541
60583
  form: "single",
@@ -60551,6 +60593,21 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60551
60593
  form: "single",
60552
60594
  optional: false
60553
60595
  }],
60596
+ "cameraPipelineConfig.applyDeviceSettingsPatch": [{
60597
+ name: "deviceId",
60598
+ form: "single",
60599
+ optional: false
60600
+ }],
60601
+ "cameraPipelineConfig.getDeviceLiveContribution": [{
60602
+ name: "deviceId",
60603
+ form: "single",
60604
+ optional: false
60605
+ }],
60606
+ "cameraPipelineConfig.getDeviceSettingsContribution": [{
60607
+ name: "deviceId",
60608
+ form: "single",
60609
+ optional: false
60610
+ }],
60554
60611
  "cameraStreams.getBrokerStreams": [{
60555
60612
  name: "deviceId",
60556
60613
  form: "single",
@@ -60576,6 +60633,16 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60576
60633
  form: "single",
60577
60634
  optional: false
60578
60635
  }],
60636
+ "carbonMonoxide.getStatus": [{
60637
+ name: "deviceId",
60638
+ form: "single",
60639
+ optional: false
60640
+ }],
60641
+ "climateControl.getStatus": [{
60642
+ name: "deviceId",
60643
+ form: "single",
60644
+ optional: false
60645
+ }],
60579
60646
  "climateControl.setFanMode": [{
60580
60647
  name: "deviceId",
60581
60648
  form: "single",
@@ -60616,16 +60683,41 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60616
60683
  form: "single",
60617
60684
  optional: false
60618
60685
  }],
60686
+ "color.getStatus": [{
60687
+ name: "deviceId",
60688
+ form: "single",
60689
+ optional: false
60690
+ }],
60619
60691
  "color.setColor": [{
60620
60692
  name: "deviceId",
60621
60693
  form: "single",
60622
60694
  optional: false
60623
60695
  }],
60696
+ "connectivity.getStatus": [{
60697
+ name: "deviceId",
60698
+ form: "single",
60699
+ optional: false
60700
+ }],
60701
+ "consumables.getStatus": [{
60702
+ name: "deviceId",
60703
+ form: "single",
60704
+ optional: false
60705
+ }],
60624
60706
  "consumables.reset": [{
60625
60707
  name: "deviceId",
60626
60708
  form: "single",
60627
60709
  optional: false
60628
60710
  }],
60711
+ "contact.getStatus": [{
60712
+ name: "deviceId",
60713
+ form: "single",
60714
+ optional: false
60715
+ }],
60716
+ "control.getStatus": [{
60717
+ name: "deviceId",
60718
+ form: "single",
60719
+ optional: false
60720
+ }],
60629
60721
  "control.setValue": [{
60630
60722
  name: "deviceId",
60631
60723
  form: "single",
@@ -60636,6 +60728,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60636
60728
  form: "single",
60637
60729
  optional: false
60638
60730
  }],
60731
+ "cover.getStatus": [{
60732
+ name: "deviceId",
60733
+ form: "single",
60734
+ optional: false
60735
+ }],
60639
60736
  "cover.open": [{
60640
60737
  name: "deviceId",
60641
60738
  form: "single",
@@ -60661,6 +60758,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60661
60758
  form: "single",
60662
60759
  optional: false
60663
60760
  }],
60761
+ "dayNight.getStatus": [{
60762
+ name: "deviceId",
60763
+ form: "single",
60764
+ optional: false
60765
+ }],
60664
60766
  "dayNight.setSettings": [{
60665
60767
  name: "deviceId",
60666
60768
  form: "single",
@@ -60671,11 +60773,31 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60671
60773
  form: "single",
60672
60774
  optional: true
60673
60775
  }],
60776
+ "detectionPipeline.applyDeviceSettingsPatch": [{
60777
+ name: "deviceId",
60778
+ form: "single",
60779
+ optional: false
60780
+ }],
60781
+ "detectionPipeline.getDeviceLiveContribution": [{
60782
+ name: "deviceId",
60783
+ form: "single",
60784
+ optional: false
60785
+ }],
60786
+ "detectionPipeline.getDeviceSettingsContribution": [{
60787
+ name: "deviceId",
60788
+ form: "single",
60789
+ optional: false
60790
+ }],
60674
60791
  "deviceAdminLink.getAdminLink": [{
60675
60792
  name: "deviceId",
60676
60793
  form: "single",
60677
60794
  optional: false
60678
60795
  }],
60796
+ "deviceAdoption.getStatus": [{
60797
+ name: "deviceId",
60798
+ form: "single",
60799
+ optional: false
60800
+ }],
60679
60801
  "deviceAdoption.release": [{
60680
60802
  name: "camDeviceId",
60681
60803
  form: "single",
@@ -60691,6 +60813,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60691
60813
  form: "single",
60692
60814
  optional: false
60693
60815
  }],
60816
+ "deviceDiscovery.getStatus": [{
60817
+ name: "deviceId",
60818
+ form: "single",
60819
+ optional: false
60820
+ }],
60694
60821
  "deviceDiscovery.listDiscovered": [{
60695
60822
  name: "deviceId",
60696
60823
  form: "single",
@@ -60710,6 +60837,21 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
60710
60837
  form: "single",
60711
60838
  optional: false
60712
60839
  }],
60840
+ "deviceExport.applyDeviceSettingsPatch": [{
60841
+ name: "deviceId",
60842
+ form: "single",
60843
+ optional: false
60844
+ }],
60845
+ "deviceExport.getDeviceLiveContribution": [{
60846
+ name: "deviceId",
60847
+ form: "single",
60848
+ optional: false
60849
+ }],
60850
+ "deviceExport.getDeviceSettingsContribution": [{
60851
+ name: "deviceId",
60852
+ form: "single",
60853
+ optional: false
60854
+ }],
60713
60855
  "deviceExtension.listCandidates": [{
60714
60856
  name: "deviceId",
60715
60857
  form: "single",
@@ -61058,6 +61200,26 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61058
61200
  form: "single",
61059
61201
  optional: false
61060
61202
  }],
61203
+ "deviceStatus.getStatus": [{
61204
+ name: "deviceId",
61205
+ form: "single",
61206
+ optional: false
61207
+ }],
61208
+ "doorbell.getStatus": [{
61209
+ name: "deviceId",
61210
+ form: "single",
61211
+ optional: false
61212
+ }],
61213
+ "enumSensor.getStatus": [{
61214
+ name: "deviceId",
61215
+ form: "single",
61216
+ optional: false
61217
+ }],
61218
+ "eventEmitter.getStatus": [{
61219
+ name: "deviceId",
61220
+ form: "single",
61221
+ optional: false
61222
+ }],
61061
61223
  "faceGallery.getFaceByTrack": [{
61062
61224
  name: "deviceId",
61063
61225
  form: "single",
@@ -61072,6 +61234,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61072
61234
  form: "array",
61073
61235
  optional: true
61074
61236
  }],
61237
+ "fanControl.getStatus": [{
61238
+ name: "deviceId",
61239
+ form: "single",
61240
+ optional: false
61241
+ }],
61075
61242
  "fanControl.setDirection": [{
61076
61243
  name: "deviceId",
61077
61244
  form: "single",
@@ -61092,6 +61259,26 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61092
61259
  form: "single",
61093
61260
  optional: false
61094
61261
  }],
61262
+ "featureProbe.getStatus": [{
61263
+ name: "deviceId",
61264
+ form: "single",
61265
+ optional: false
61266
+ }],
61267
+ "flood.getStatus": [{
61268
+ name: "deviceId",
61269
+ form: "single",
61270
+ optional: false
61271
+ }],
61272
+ "gas.getStatus": [{
61273
+ name: "deviceId",
61274
+ form: "single",
61275
+ optional: false
61276
+ }],
61277
+ "humidifier.getStatus": [{
61278
+ name: "deviceId",
61279
+ form: "single",
61280
+ optional: false
61281
+ }],
61095
61282
  "humidifier.setMode": [{
61096
61283
  name: "deviceId",
61097
61284
  form: "single",
@@ -61107,11 +61294,26 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61107
61294
  form: "single",
61108
61295
  optional: false
61109
61296
  }],
61297
+ "humiditySensor.getStatus": [{
61298
+ name: "deviceId",
61299
+ form: "single",
61300
+ optional: false
61301
+ }],
61302
+ "image.getStatus": [{
61303
+ name: "deviceId",
61304
+ form: "single",
61305
+ optional: false
61306
+ }],
61110
61307
  "imageSettings.getOptions": [{
61111
61308
  name: "deviceId",
61112
61309
  form: "single",
61113
61310
  optional: false
61114
61311
  }],
61312
+ "imageSettings.getStatus": [{
61313
+ name: "deviceId",
61314
+ form: "single",
61315
+ optional: false
61316
+ }],
61115
61317
  "imageSettings.setSettings": [{
61116
61318
  name: "deviceId",
61117
61319
  form: "single",
@@ -61122,6 +61324,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61122
61324
  form: "single",
61123
61325
  optional: false
61124
61326
  }],
61327
+ "intercom.getStatus": [{
61328
+ name: "deviceId",
61329
+ form: "single",
61330
+ optional: false
61331
+ }],
61125
61332
  "intercom.handleAnswer": [{
61126
61333
  name: "deviceId",
61127
61334
  form: "single",
@@ -61152,6 +61359,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61152
61359
  form: "single",
61153
61360
  optional: false
61154
61361
  }],
61362
+ "lawnMowerControl.getStatus": [{
61363
+ name: "deviceId",
61364
+ form: "single",
61365
+ optional: false
61366
+ }],
61155
61367
  "lawnMowerControl.pause": [{
61156
61368
  name: "deviceId",
61157
61369
  form: "single",
@@ -61162,6 +61374,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61162
61374
  form: "single",
61163
61375
  optional: false
61164
61376
  }],
61377
+ "lockControl.getStatus": [{
61378
+ name: "deviceId",
61379
+ form: "single",
61380
+ optional: false
61381
+ }],
61165
61382
  "lockControl.lock": [{
61166
61383
  name: "deviceId",
61167
61384
  form: "single",
@@ -61177,6 +61394,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61177
61394
  form: "single",
61178
61395
  optional: false
61179
61396
  }],
61397
+ "mediaPlayer.getStatus": [{
61398
+ name: "deviceId",
61399
+ form: "single",
61400
+ optional: false
61401
+ }],
61180
61402
  "mediaPlayer.next": [{
61181
61403
  name: "deviceId",
61182
61404
  form: "single",
@@ -61237,6 +61459,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61237
61459
  form: "single",
61238
61460
  optional: false
61239
61461
  }],
61462
+ "motion.getStatus": [{
61463
+ name: "deviceId",
61464
+ form: "single",
61465
+ optional: false
61466
+ }],
61240
61467
  "motion.isDetected": [{
61241
61468
  name: "deviceId",
61242
61469
  form: "single",
@@ -61247,11 +61474,31 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61247
61474
  form: "single",
61248
61475
  optional: false
61249
61476
  }],
61477
+ "motionDetection.applyDeviceSettingsPatch": [{
61478
+ name: "deviceId",
61479
+ form: "single",
61480
+ optional: false
61481
+ }],
61482
+ "motionDetection.getDeviceLiveContribution": [{
61483
+ name: "deviceId",
61484
+ form: "single",
61485
+ optional: false
61486
+ }],
61487
+ "motionDetection.getDeviceSettingsContribution": [{
61488
+ name: "deviceId",
61489
+ form: "single",
61490
+ optional: false
61491
+ }],
61250
61492
  "motionDetection.removeCamera": [{
61251
61493
  name: "deviceId",
61252
61494
  form: "single",
61253
61495
  optional: false
61254
61496
  }],
61497
+ "motionTrigger.getStatus": [{
61498
+ name: "deviceId",
61499
+ form: "single",
61500
+ optional: false
61501
+ }],
61255
61502
  "motionTrigger.setMotionTrigger": [{
61256
61503
  name: "deviceId",
61257
61504
  form: "single",
@@ -61262,6 +61509,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61262
61509
  form: "single",
61263
61510
  optional: false
61264
61511
  }],
61512
+ "motionZones.getStatus": [{
61513
+ name: "deviceId",
61514
+ form: "single",
61515
+ optional: false
61516
+ }],
61265
61517
  "motionZones.setZone": [{
61266
61518
  name: "deviceId",
61267
61519
  form: "single",
@@ -61272,6 +61524,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61272
61524
  form: "single",
61273
61525
  optional: false
61274
61526
  }],
61527
+ "nativeObjectDetection.getStatus": [{
61528
+ name: "deviceId",
61529
+ form: "single",
61530
+ optional: false
61531
+ }],
61275
61532
  "nativeObjectDetection.setEnabled": [{
61276
61533
  name: "deviceId",
61277
61534
  form: "single",
@@ -61287,6 +61544,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61287
61544
  form: "single",
61288
61545
  optional: false
61289
61546
  }],
61547
+ "navigation.getStatus": [{
61548
+ name: "deviceId",
61549
+ form: "single",
61550
+ optional: false
61551
+ }],
61290
61552
  "navigation.goToPoint": [{
61291
61553
  name: "deviceId",
61292
61554
  form: "single",
@@ -61332,6 +61594,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61332
61594
  form: "single",
61333
61595
  optional: false
61334
61596
  }],
61597
+ "networkLink.getStatus": [{
61598
+ name: "deviceId",
61599
+ form: "single",
61600
+ optional: false
61601
+ }],
61335
61602
  "networkQuality.getDeviceStats": [{
61336
61603
  name: "deviceId",
61337
61604
  form: "single",
@@ -61357,11 +61624,26 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61357
61624
  form: "single",
61358
61625
  optional: false
61359
61626
  }],
61627
+ "notifier.getStatus": [{
61628
+ name: "deviceId",
61629
+ form: "single",
61630
+ optional: false
61631
+ }],
61360
61632
  "notifier.send": [{
61361
61633
  name: "deviceId",
61362
61634
  form: "single",
61363
61635
  optional: false
61364
61636
  }],
61637
+ "numericSensor.getStatus": [{
61638
+ name: "deviceId",
61639
+ form: "single",
61640
+ optional: false
61641
+ }],
61642
+ "osd.getStatus": [{
61643
+ name: "deviceId",
61644
+ form: "single",
61645
+ optional: false
61646
+ }],
61365
61647
  "osd.setOverlay": [{
61366
61648
  name: "deviceId",
61367
61649
  form: "single",
@@ -61421,6 +61703,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61421
61703
  form: "single",
61422
61704
  optional: false
61423
61705
  }],
61706
+ "petFeeder.getStatus": [{
61707
+ name: "deviceId",
61708
+ form: "single",
61709
+ optional: false
61710
+ }],
61424
61711
  "petFeeder.markFoodReplenished": [{
61425
61712
  name: "deviceId",
61426
61713
  form: "single",
@@ -61456,6 +61743,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61456
61743
  form: "single",
61457
61744
  optional: false
61458
61745
  }],
61746
+ "pipelineAnalytics.applyDeviceSettingsPatch": [{
61747
+ name: "deviceId",
61748
+ form: "single",
61749
+ optional: false
61750
+ }],
61459
61751
  "pipelineAnalytics.clearTrackRelation": [{
61460
61752
  name: "deviceId",
61461
61753
  form: "single",
@@ -61496,6 +61788,16 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61496
61788
  form: "single",
61497
61789
  optional: false
61498
61790
  }],
61791
+ "pipelineAnalytics.getDeviceLiveContribution": [{
61792
+ name: "deviceId",
61793
+ form: "single",
61794
+ optional: false
61795
+ }],
61796
+ "pipelineAnalytics.getDeviceSettingsContribution": [{
61797
+ name: "deviceId",
61798
+ form: "single",
61799
+ optional: false
61800
+ }],
61499
61801
  "pipelineAnalytics.getEventDensity": [{
61500
61802
  name: "deviceId",
61501
61803
  form: "single",
@@ -61711,6 +62013,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61711
62013
  form: "single",
61712
62014
  optional: true
61713
62015
  }],
62016
+ "pipelineOrchestrator.applyDeviceSettingsPatch": [{
62017
+ name: "deviceId",
62018
+ form: "single",
62019
+ optional: false
62020
+ }],
61714
62021
  "pipelineOrchestrator.assignAudio": [{
61715
62022
  name: "deviceId",
61716
62023
  form: "single",
@@ -61756,6 +62063,16 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61756
62063
  form: "single",
61757
62064
  optional: false
61758
62065
  }],
62066
+ "pipelineOrchestrator.getDeviceLiveContribution": [{
62067
+ name: "deviceId",
62068
+ form: "single",
62069
+ optional: false
62070
+ }],
62071
+ "pipelineOrchestrator.getDeviceSettingsContribution": [{
62072
+ name: "deviceId",
62073
+ form: "single",
62074
+ optional: false
62075
+ }],
61759
62076
  "pipelineOrchestrator.getPipelineAssignment": [{
61760
62077
  name: "deviceId",
61761
62078
  form: "single",
@@ -61876,11 +62193,31 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61876
62193
  form: "single",
61877
62194
  optional: true
61878
62195
  }],
62196
+ "powerMeter.getStatus": [{
62197
+ name: "deviceId",
62198
+ form: "single",
62199
+ optional: false
62200
+ }],
62201
+ "presence.getStatus": [{
62202
+ name: "deviceId",
62203
+ form: "single",
62204
+ optional: false
62205
+ }],
62206
+ "pressureSensor.getStatus": [{
62207
+ name: "deviceId",
62208
+ form: "single",
62209
+ optional: false
62210
+ }],
61879
62211
  "privacyMask.getOptions": [{
61880
62212
  name: "deviceId",
61881
62213
  form: "single",
61882
62214
  optional: false
61883
62215
  }],
62216
+ "privacyMask.getStatus": [{
62217
+ name: "deviceId",
62218
+ form: "single",
62219
+ optional: false
62220
+ }],
61884
62221
  "privacyMask.setAudioEnabled": [{
61885
62222
  name: "deviceId",
61886
62223
  form: "single",
@@ -61931,6 +62268,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
61931
62268
  form: "single",
61932
62269
  optional: false
61933
62270
  }],
62271
+ "ptz.getStatus": [{
62272
+ name: "deviceId",
62273
+ form: "single",
62274
+ optional: false
62275
+ }],
61934
62276
  "ptz.goHome": [{
61935
62277
  name: "deviceId",
61936
62278
  form: "single",
@@ -62021,6 +62363,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62021
62363
  form: "single",
62022
62364
  optional: false
62023
62365
  }],
62366
+ "recordingArchive.applyDeviceSettingsPatch": [{
62367
+ name: "deviceId",
62368
+ form: "single",
62369
+ optional: false
62370
+ }],
62024
62371
  "recordingArchive.deleteFootprint": [{
62025
62372
  name: "deviceId",
62026
62373
  form: "single",
@@ -62041,6 +62388,21 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62041
62388
  form: "single",
62042
62389
  optional: false
62043
62390
  }],
62391
+ "recordingArchive.getDeviceLiveContribution": [{
62392
+ name: "deviceId",
62393
+ form: "single",
62394
+ optional: false
62395
+ }],
62396
+ "recordingArchive.getDeviceSettingsContribution": [{
62397
+ name: "deviceId",
62398
+ form: "single",
62399
+ optional: false
62400
+ }],
62401
+ "recordingArchive.getStatus": [{
62402
+ name: "deviceId",
62403
+ form: "single",
62404
+ optional: false
62405
+ }],
62044
62406
  "recordingArchive.listOpsLog": [{
62045
62407
  name: "deviceId",
62046
62408
  form: "single",
@@ -62126,6 +62488,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62126
62488
  form: "single",
62127
62489
  optional: false
62128
62490
  }],
62491
+ "recordingOnboard.getStatus": [{
62492
+ name: "deviceId",
62493
+ form: "single",
62494
+ optional: false
62495
+ }],
62129
62496
  "recordingOnboard.setSettings": [{
62130
62497
  name: "deviceId",
62131
62498
  form: "single",
@@ -62156,6 +62523,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62156
62523
  form: "single",
62157
62524
  optional: false
62158
62525
  }],
62526
+ "sceneMonitor.getStatus": [{
62527
+ name: "deviceId",
62528
+ form: "single",
62529
+ optional: false
62530
+ }],
62159
62531
  "sceneMonitor.listScenes": [{
62160
62532
  name: "deviceId",
62161
62533
  form: "single",
@@ -62181,6 +62553,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62181
62553
  form: "single",
62182
62554
  optional: false
62183
62555
  }],
62556
+ "scriptRunner.getStatus": [{
62557
+ name: "deviceId",
62558
+ form: "single",
62559
+ optional: false
62560
+ }],
62184
62561
  "scriptRunner.run": [{
62185
62562
  name: "deviceId",
62186
62563
  form: "single",
@@ -62191,11 +62568,31 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62191
62568
  form: "single",
62192
62569
  optional: false
62193
62570
  }],
62571
+ "smoke.getStatus": [{
62572
+ name: "deviceId",
62573
+ form: "single",
62574
+ optional: false
62575
+ }],
62576
+ "snapshot.applyDeviceSettingsPatch": [{
62577
+ name: "deviceId",
62578
+ form: "single",
62579
+ optional: false
62580
+ }],
62194
62581
  "snapshot.getDebugState": [{
62195
62582
  name: "deviceId",
62196
62583
  form: "single",
62197
62584
  optional: false
62198
62585
  }],
62586
+ "snapshot.getDeviceLiveContribution": [{
62587
+ name: "deviceId",
62588
+ form: "single",
62589
+ optional: false
62590
+ }],
62591
+ "snapshot.getDeviceSettingsContribution": [{
62592
+ name: "deviceId",
62593
+ form: "single",
62594
+ optional: false
62595
+ }],
62199
62596
  "snapshot.getSnapshot": [{
62200
62597
  name: "deviceId",
62201
62598
  form: "single",
@@ -62212,6 +62609,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62212
62609
  form: "array",
62213
62610
  optional: false
62214
62611
  }],
62612
+ "snapshot.getStatus": [{
62613
+ name: "deviceId",
62614
+ form: "single",
62615
+ optional: false
62616
+ }],
62215
62617
  "snapshot.invalidateCache": [{
62216
62618
  name: "deviceId",
62217
62619
  form: "single",
@@ -62222,6 +62624,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62222
62624
  form: "single",
62223
62625
  optional: false
62224
62626
  }],
62627
+ "streamBroker.applyDeviceSettingsPatch": [{
62628
+ name: "deviceId",
62629
+ form: "single",
62630
+ optional: false
62631
+ }],
62225
62632
  "streamBroker.assignProfile": [{
62226
62633
  name: "deviceId",
62227
62634
  form: "single",
@@ -62237,6 +62644,16 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62237
62644
  form: "single",
62238
62645
  optional: false
62239
62646
  }],
62647
+ "streamBroker.getDeviceLiveContribution": [{
62648
+ name: "deviceId",
62649
+ form: "single",
62650
+ optional: false
62651
+ }],
62652
+ "streamBroker.getDeviceSettingsContribution": [{
62653
+ name: "deviceId",
62654
+ form: "single",
62655
+ optional: false
62656
+ }],
62240
62657
  "streamBroker.getStreamWithCodec": [{
62241
62658
  name: "deviceId",
62242
62659
  form: "single",
@@ -62297,16 +62714,46 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62297
62714
  form: "single",
62298
62715
  optional: false
62299
62716
  }],
62717
+ "streamParams.getStatus": [{
62718
+ name: "deviceId",
62719
+ form: "single",
62720
+ optional: false
62721
+ }],
62300
62722
  "streamParams.setProfile": [{
62301
62723
  name: "deviceId",
62302
62724
  form: "single",
62303
62725
  optional: false
62304
62726
  }],
62727
+ "switch.getStatus": [{
62728
+ name: "deviceId",
62729
+ form: "single",
62730
+ optional: false
62731
+ }],
62305
62732
  "switch.setState": [{
62306
62733
  name: "deviceId",
62307
62734
  form: "single",
62308
62735
  optional: false
62309
62736
  }],
62737
+ "tamper.getStatus": [{
62738
+ name: "deviceId",
62739
+ form: "single",
62740
+ optional: false
62741
+ }],
62742
+ "temperatureSensor.getStatus": [{
62743
+ name: "deviceId",
62744
+ form: "single",
62745
+ optional: false
62746
+ }],
62747
+ "update.getStatus": [{
62748
+ name: "deviceId",
62749
+ form: "single",
62750
+ optional: false
62751
+ }],
62752
+ "vacuumControl.getStatus": [{
62753
+ name: "deviceId",
62754
+ form: "single",
62755
+ optional: false
62756
+ }],
62310
62757
  "vacuumControl.locate": [{
62311
62758
  name: "deviceId",
62312
62759
  form: "single",
@@ -62342,6 +62789,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62342
62789
  form: "single",
62343
62790
  optional: false
62344
62791
  }],
62792
+ "valve.getStatus": [{
62793
+ name: "deviceId",
62794
+ form: "single",
62795
+ optional: false
62796
+ }],
62345
62797
  "valve.open": [{
62346
62798
  name: "deviceId",
62347
62799
  form: "single",
@@ -62357,6 +62809,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62357
62809
  form: "single",
62358
62810
  optional: false
62359
62811
  }],
62812
+ "vibration.getStatus": [{
62813
+ name: "deviceId",
62814
+ form: "single",
62815
+ optional: false
62816
+ }],
62360
62817
  "videoclips.dialClipStream": [{
62361
62818
  name: "deviceId",
62362
62819
  form: "single",
@@ -62392,6 +62849,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62392
62849
  form: "single",
62393
62850
  optional: false
62394
62851
  }],
62852
+ "waterHeater.getStatus": [{
62853
+ name: "deviceId",
62854
+ form: "single",
62855
+ optional: false
62856
+ }],
62395
62857
  "waterHeater.setAway": [{
62396
62858
  name: "deviceId",
62397
62859
  form: "single",
@@ -62407,6 +62869,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
62407
62869
  form: "single",
62408
62870
  optional: false
62409
62871
  }],
62872
+ "weather.getStatus": [{
62873
+ name: "deviceId",
62874
+ form: "single",
62875
+ optional: false
62876
+ }],
62410
62877
  "webrtcSession.addIceCandidate": [{
62411
62878
  name: "deviceId",
62412
62879
  form: "single",
@@ -62522,8 +62989,12 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
62522
62989
  "audioAnalyzer.classify",
62523
62990
  "audioAnalyzer.detachDevice",
62524
62991
  "decoder.createSession",
62992
+ "deviceAdoption.getStatus",
62525
62993
  "deviceAdoption.release",
62526
62994
  "deviceAdoption.resync",
62995
+ "deviceExport.applyDeviceSettingsPatch",
62996
+ "deviceExport.getDeviceLiveContribution",
62997
+ "deviceExport.getDeviceSettingsContribution",
62527
62998
  "deviceManager.adoptionRelease",
62528
62999
  "deviceManager.adoptionResync",
62529
63000
  "deviceManager.applyInitialMeta",
@@ -62596,6 +63067,7 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
62596
63067
  "osdManager.setSlotBinding",
62597
63068
  "pipelineExecutor.runPipeline",
62598
63069
  "pipelineExecutor.runPipelineBatch",
63070
+ "pipelineOrchestrator.applyDeviceSettingsPatch",
62599
63071
  "pipelineOrchestrator.assignAudio",
62600
63072
  "pipelineOrchestrator.assignPipeline",
62601
63073
  "pipelineOrchestrator.getAudioAssignment",
@@ -62605,6 +63077,8 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
62605
63077
  "pipelineOrchestrator.getCameraStatuses",
62606
63078
  "pipelineOrchestrator.getCameraStepOverrides",
62607
63079
  "pipelineOrchestrator.getCameraSwitches",
63080
+ "pipelineOrchestrator.getDeviceLiveContribution",
63081
+ "pipelineOrchestrator.getDeviceSettingsContribution",
62608
63082
  "pipelineOrchestrator.getPipelineAssignment",
62609
63083
  "pipelineOrchestrator.getPipelineDevicePin",
62610
63084
  "pipelineOrchestrator.requestOccupancyLook",
@@ -62629,10 +63103,14 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
62629
63103
  "pipelineRunner.runStatelessStep",
62630
63104
  "plateGallery.getPlateByTrack",
62631
63105
  "plateGallery.listPlates",
63106
+ "recordingArchive.applyDeviceSettingsPatch",
62632
63107
  "recordingArchive.deleteFootprint",
62633
63108
  "recordingArchive.getAvailabilityBatch",
62634
63109
  "recordingArchive.getDaysWithRecordingsBatch",
62635
63110
  "recordingArchive.getDeviceConfig",
63111
+ "recordingArchive.getDeviceLiveContribution",
63112
+ "recordingArchive.getDeviceSettingsContribution",
63113
+ "recordingArchive.getStatus",
62636
63114
  "recordingArchive.listOpsLog",
62637
63115
  "recordingArchive.locateSegment",
62638
63116
  "recordingArchive.pruneFootage",
@@ -62650,9 +63128,12 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
62650
63128
  "recordingExport.createExport",
62651
63129
  "recordingExport.listExports",
62652
63130
  "streamBroker.acquireEgressTranscode",
63131
+ "streamBroker.applyDeviceSettingsPatch",
62653
63132
  "streamBroker.assignProfile",
62654
63133
  "streamBroker.forgetDeviceHardware",
62655
63134
  "streamBroker.getDeviceAudioMute",
63135
+ "streamBroker.getDeviceLiveContribution",
63136
+ "streamBroker.getDeviceSettingsContribution",
62656
63137
  "streamBroker.getStreamWithCodec",
62657
63138
  "streamBroker.produceEventMedia",
62658
63139
  "streamBroker.publishCameraStream",
@@ -65141,6 +65622,16 @@ function ruleKindOf(rule) {
65141
65622
  return "detection";
65142
65623
  }
65143
65624
  /**
65625
+ * May this rule carry `groupingSec` (D692 §2.2)? Only an `immediate` DETECTION rule: a
65626
+ * track-end rule fires at close and already carries the name; a parcel, a sound (its
65627
+ * `trackId` is a photograph owner, not a subject), a sensor, an occupancy edge and every
65628
+ * system family have no subject to promote and no tile per subject. ONE predicate, read by
65629
+ * both editors and the hub's save guard.
65630
+ */
65631
+ function ruleGroupingApplies(rule) {
65632
+ return rule.delivery === "immediate" && ruleKindOf(rule) === "detection";
65633
+ }
65634
+ /**
65144
65635
  * A system rule's kind: its one family, or `mixed` (D637).
65145
65636
  *
65146
65637
  * Takes the UNTYPED condition for the same reason {@link NcRuleConditionsSubject}
@@ -70399,6 +70890,9 @@ exports.NC_CONSUMABLE_LOW_PERCENT_DEFAULT = NC_CONSUMABLE_LOW_PERCENT_DEFAULT;
70399
70890
  exports.NC_CONSUMABLE_LOW_PERCENT_MAX = NC_CONSUMABLE_LOW_PERCENT_MAX;
70400
70891
  exports.NC_CONSUMABLE_SYSTEM_EVENT_KINDS = NC_CONSUMABLE_SYSTEM_EVENT_KINDS;
70401
70892
  exports.NC_DEFAULT_SNOOZE_MINUTES = NC_DEFAULT_SNOOZE_MINUTES;
70893
+ exports.NC_GROUPING_DEFAULT_SEC = NC_GROUPING_DEFAULT_SEC;
70894
+ exports.NC_GROUPING_MAX_SEC = NC_GROUPING_MAX_SEC;
70895
+ exports.NC_GROUPING_MIN_SEC = NC_GROUPING_MIN_SEC;
70402
70896
  exports.NC_HISTORY_LIMIT_DEFAULT = NC_HISTORY_LIMIT_DEFAULT;
70403
70897
  exports.NC_HISTORY_LIMIT_MAX = NC_HISTORY_LIMIT_MAX;
70404
70898
  exports.NC_MAX_PER_TRACK_IMMEDIATE = NC_MAX_PER_TRACK_IMMEDIATE;
@@ -70406,6 +70900,7 @@ exports.NC_OCCUPANCY_DEFAULTS = NC_OCCUPANCY_DEFAULTS;
70406
70900
  exports.NC_RULE_CLEARABLE_KEYS = NC_RULE_CLEARABLE_KEYS;
70407
70901
  exports.NC_RULE_EDITOR_SECTION_ORDER = NC_RULE_EDITOR_SECTION_ORDER;
70408
70902
  exports.NC_RULE_KIND_SPECS = NC_RULE_KIND_SPECS;
70903
+ exports.NC_RULE_RETIRED_CLEAR_KEYS = NC_RULE_RETIRED_CLEAR_KEYS;
70409
70904
  exports.NC_RULE_SECTIONS = NC_RULE_SECTIONS;
70410
70905
  exports.NC_SENSOR_RAISED_FIELD_BY_KIND = NC_SENSOR_RAISED_FIELD_BY_KIND;
70411
70906
  exports.NC_SENSOR_TRANSITION_KINDS = NC_SENSOR_TRANSITION_KINDS;
@@ -71321,6 +71816,7 @@ exports.isObjectInput = isObjectInput;
71321
71816
  exports.isOccupancyRule = isOccupancyRule;
71322
71817
  exports.isOwnerOnlyEventCategory = require_event_category.isOwnerOnlyEventCategory;
71323
71818
  exports.isRestoredCap = isRestoredCap;
71819
+ exports.isRetiredClearKey = isRetiredClearKey;
71324
71820
  exports.isSameAddonId = isSameAddonId;
71325
71821
  exports.isScheduleActive = isScheduleActive;
71326
71822
  exports.isSecretConfigField = isSecretConfigField;
@@ -71519,6 +72015,7 @@ exports.ruleBelongsToAlarm = ruleBelongsToAlarm;
71519
72015
  exports.ruleDeviceCompatCapNames = ruleDeviceCompatCapNames;
71520
72016
  exports.ruleDeviceCompatCapQueries = ruleDeviceCompatCapQueries;
71521
72017
  exports.ruleEditorSectionsForKind = ruleEditorSectionsForKind;
72018
+ exports.ruleGroupingApplies = ruleGroupingApplies;
71522
72019
  exports.ruleKindOf = ruleKindOf;
71523
72020
  exports.ruleKindSpec = ruleKindSpec;
71524
72021
  exports.ruleMatchesSection = ruleMatchesSection;