@camstack/system 1.2.329 → 1.2.330

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 (59) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/autotrack/index.js +1 -1
  8. package/dist/builtins/autotrack/index.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/camera-grid/index.js +1 -1
  12. package/dist/builtins/camera-grid/index.mjs +1 -1
  13. package/dist/builtins/composer/composer.addon.js +2 -2
  14. package/dist/builtins/composer/composer.addon.mjs +2 -2
  15. package/dist/builtins/console-logging/index.js +1 -1
  16. package/dist/builtins/console-logging/index.mjs +1 -1
  17. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  18. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  19. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  20. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  21. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  22. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  23. package/dist/builtins/hub-forwarder/index.js +1 -1
  24. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  25. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  26. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  27. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  28. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  29. package/dist/builtins/local-network/local-network.addon.js +1 -1
  30. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  31. package/dist/builtins/loki-logging/index.js +1 -1
  32. package/dist/builtins/loki-logging/index.mjs +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  34. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  35. package/dist/builtins/platform-probe/index.js +1 -1
  36. package/dist/builtins/platform-probe/index.mjs +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  38. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  39. package/dist/builtins/snapshot/index.js +1 -1
  40. package/dist/builtins/snapshot/index.mjs +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  42. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  44. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  46. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  47. package/dist/builtins/system-config/system-config.addon.js +1 -1
  48. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  49. package/dist/builtins/winston-logging/index.js +1 -1
  50. package/dist/builtins/winston-logging/index.mjs +1 -1
  51. package/dist/{composition-sources-B7hfTiPS.js → composition-sources-2XxNEet3.js} +1 -1
  52. package/dist/{composition-sources-BHPqf6So.mjs → composition-sources-Wj2kWund.mjs} +1 -1
  53. package/dist/{dist-CSs0cFDN.js → dist-Bx4zxM9N.js} +38 -4
  54. package/dist/{dist-CV7IqaYq.mjs → dist-Dp043AI0.mjs} +38 -4
  55. package/dist/index.js +1 -1
  56. package/dist/index.mjs +1 -1
  57. package/dist/{retired-settings-keys-CGQnAoRx.js → retired-settings-keys-DR2WMe5d.js} +1 -1
  58. package/dist/{retired-settings-keys-DSUs7U6l.mjs → retired-settings-keys-Dxf9vELs.mjs} +1 -1
  59. package/package.json +2 -2
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, V as addonPagesCapability, Xn as errMsg, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Sr as EventCategory, V as addonPagesCapability, Xn as errMsg, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, U as addonWidgetsCapability, Xn as errMsg, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Sr as EventCategory, U as addonWidgetsCapability, Xn as errMsg, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  //#region src/builtins/alerts/prune-policy.ts
8
8
  /**
9
9
  * Ids older than `cutoffMs`, oldest first.
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, W as alertsCapability, Xn as errMsg, Zn as BaseAddon, n as AlertSchema, sr as createEvent } from "../../dist-CV7IqaYq.mjs";
1
+ import { Sr as EventCategory, W as alertsCapability, Xn as errMsg, Zn as BaseAddon, n as AlertSchema, sr as createEvent } from "../../dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/alerts/prune-policy.ts
3
3
  /**
4
4
  * Ids older than `cutoffMs`, oldest first.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, b as FIRST_LEVEL_MACRO_CLASSES, pr as isEvent, q as bareAddonId, sn as ptzAutotrackCapability } from "../../dist-CV7IqaYq.mjs";
1
+ import { Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, b as FIRST_LEVEL_MACRO_CLASSES, pr as isEvent, q as bareAddonId, sn as ptzAutotrackCapability } from "../../dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let buffer = require("buffer");
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { K as backupCapability, Sn as storageOccupancyCapability, Sr as EventCategory, Yt as mayWriteToLocation, Zn as BaseAddon, m as DATABASE_SNAPSHOT_SUFFIX, mr as nodePin, xr as toNodeId } from "../../dist-CV7IqaYq.mjs";
1
+ import { K as backupCapability, Sn as storageOccupancyCapability, Sr as EventCategory, Yt as mayWriteToLocation, Zn as BaseAddon, m as DATABASE_SNAPSHOT_SUFFIX, mr as nodePin, xr as toNodeId } from "../../dist-Dp043AI0.mjs";
2
2
  import { randomBytes, randomUUID } from "node:crypto";
3
3
  import { Buffer as Buffer$1 } from "buffer";
4
4
  import * as fsp from "node:fs/promises";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  let zod = require("zod");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { $t as motionCapability, Fn as buildFfmpegArgs, O as MOTION_CLOSE_AFTER_MS, Q as cameraGridLayoutCapability, Sr as EventCategory, Xn as errMsg, Xt as memoizePinnedFfmpeg, Yn as DeviceType, Zn as BaseAddon, _ as DERIVED_CAMERA_SILENCED_CAP_NAMES, dr as hydrateSchema, dt as declarationOwnerNodeId, i as BaseDevice, qn as DeviceFeature, sr as createEvent, v as DeclaredDevices, wn as streamCatalogCapability, yn as snapshotCapability } from "../../dist-CV7IqaYq.mjs";
1
+ import { $t as motionCapability, Fn as buildFfmpegArgs, O as MOTION_CLOSE_AFTER_MS, Q as cameraGridLayoutCapability, Sr as EventCategory, Xn as errMsg, Xt as memoizePinnedFfmpeg, Yn as DeviceType, Zn as BaseAddon, _ as DERIVED_CAMERA_SILENCED_CAP_NAMES, dr as hydrateSchema, dt as declarationOwnerNodeId, i as BaseDevice, qn as DeviceFeature, sr as createEvent, v as DeclaredDevices, wn as streamCatalogCapability, yn as snapshotCapability } from "../../dist-Dp043AI0.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_device_state_changed = require("../../device-state-changed-Bk7cvTnz.js");
8
- const require_composition_sources = require("../../composition-sources-B7hfTiPS.js");
8
+ const require_composition_sources = require("../../composition-sources-2XxNEet3.js");
9
9
  //#region src/builtins/composer/composed-device.ts
10
10
  /**
11
11
  * A composed device: an ordinary `BaseDevice` whose caps are served by the
@@ -1,6 +1,6 @@
1
- import { Bn as compositionItemFieldPath, Hn as compositionSourceKey, In as cloneStatefulExpressionMemory, Kn as toExpressionValue, Ln as composedDeviceRef, Mn as COMPOSER_ADDON_ID, Rn as composedDeviceStableId, Sr as EventCategory, Tt as evaluateCompositionField, Un as createStatefulExpressionMemory, Vn as compositionSliceKey, Xn as errMsg, Y as buildCapabilityLookup, Yn as DeviceType, Zn as BaseAddon, c as COMPOSED_ITEM_FIXED_FIELDS, et as composerCapability, i as BaseDevice, in as planComposition, sr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, tt as compositionFieldKey, v as DeclaredDevices, zn as compositionFeatureEnabled } from "../../dist-CV7IqaYq.mjs";
1
+ import { Bn as compositionItemFieldPath, Hn as compositionSourceKey, In as cloneStatefulExpressionMemory, Kn as toExpressionValue, Ln as composedDeviceRef, Mn as COMPOSER_ADDON_ID, Rn as composedDeviceStableId, Sr as EventCategory, Tt as evaluateCompositionField, Un as createStatefulExpressionMemory, Vn as compositionSliceKey, Xn as errMsg, Y as buildCapabilityLookup, Yn as DeviceType, Zn as BaseAddon, c as COMPOSED_ITEM_FIXED_FIELDS, et as composerCapability, i as BaseDevice, in as planComposition, sr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, tt as compositionFieldKey, v as DeclaredDevices, zn as compositionFeatureEnabled } from "../../dist-Dp043AI0.mjs";
2
2
  import { n as parseDeviceStateChanged, t as isRecord$2 } from "../../device-state-changed-DoBbkyEI.mjs";
3
- import { n as normalizedNativeOwner } from "../../composition-sources-BHPqf6So.mjs";
3
+ import { n as normalizedNativeOwner } from "../../composition-sources-Wj2kWund.mjs";
4
4
  import { z } from "zod";
5
5
  //#region src/builtins/composer/composed-device.ts
6
6
  /**
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/console-logging/console-destination.ts
4
4
  var LEVEL_RANK = {
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-CSs0cFDN.js");
4
- const require_composition_sources = require("../../composition-sources-B7hfTiPS.js");
3
+ const require_dist = require("../../dist-Bx4zxM9N.js");
4
+ const require_composition_sources = require("../../composition-sources-2XxNEet3.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
@@ -1,5 +1,5 @@
1
- import { Dn as validateComposition, Hn as compositionSourceKey, Ln as composedDeviceRef, Xn as errMsg, Y as buildCapabilityLookup, Zn as BaseAddon, at as coreBlockIdFromAddonId, d as CORE_BLOCK_ADDON_PREFIX, f as CoreBlockSchema, ht as describeComposableCaps, in as planComposition, it as coreBlockComposition, l as COMPOSER_RUNNER_ID, ln as replacedFieldKeys, nt as compositionSourceRefs, ot as coreBlockSourceKind, rt as coreBlockAddonId, st as coreBlocksCapability, t as ALL_CAPABILITY_DEFINITIONS, u as CORE_BLOCKS_ADDON_ID, v as DeclaredDevices } from "../../dist-CV7IqaYq.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-BHPqf6So.mjs";
1
+ import { Dn as validateComposition, Hn as compositionSourceKey, Ln as composedDeviceRef, Xn as errMsg, Y as buildCapabilityLookup, Zn as BaseAddon, at as coreBlockIdFromAddonId, d as CORE_BLOCK_ADDON_PREFIX, f as CoreBlockSchema, ht as describeComposableCaps, in as planComposition, it as coreBlockComposition, l as COMPOSER_RUNNER_ID, ln as replacedFieldKeys, nt as compositionSourceRefs, ot as coreBlockSourceKind, rt as coreBlockAddonId, st as coreBlocksCapability, t as ALL_CAPABILITY_DEFINITIONS, u as CORE_BLOCKS_ADDON_ID, v as DeclaredDevices } from "../../dist-Dp043AI0.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-Wj2kWund.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { customizationBlockName } from "@camstack/types/node";
5
5
  import * as fs from "node:fs/promises";
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-CGQnAoRx.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-DR2WMe5d.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
10
10
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,5 +1,5 @@
1
- import { Bt as legacyAutoLinkIds, Ct as enumerateItemArrayFields, D as MINUTES_PER_DAY, Dt as expandContainer, Jn as DeviceRole, P as STREAM_PROFILE_META, S as FieldClaimSchema, Sr as EventCategory, T as LocationIconIdSchema, Wt as locationIconKey, Xn as errMsg, Yn as DeviceType, Z as buildStreamParamsConfigSchema, Zn as BaseAddon, _t as deviceManagerCapability, br as sleep$1, ct as createDeviceExtensionProvider, en as normalizeUnit, fr as isDeviceConfigCap, g as DAY_NAMES, gt as deviceExtensionCapability, jt as formatMinutes, o as CAMERA_SWITCH_ORDER, pn as runtimeStatePolicyFor, pt as defineExtensionSlotProvider, qn as DeviceFeature, rn as parseStreamParamsFormPatch, rr as WELL_KNOWN_TAB_MAP, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, vn as siteZoneKey, vt as deviceStateCapability, wt as enumerateSchemaFields, x as FieldClaimModeSchema, y as DeviceStatusSchema, yt as deviceStatusCapability } from "../../dist-CV7IqaYq.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DSUs7U6l.mjs";
1
+ import { Bt as legacyAutoLinkIds, Ct as enumerateItemArrayFields, D as MINUTES_PER_DAY, Dt as expandContainer, Jn as DeviceRole, P as STREAM_PROFILE_META, S as FieldClaimSchema, Sr as EventCategory, T as LocationIconIdSchema, Wt as locationIconKey, Xn as errMsg, Yn as DeviceType, Z as buildStreamParamsConfigSchema, Zn as BaseAddon, _t as deviceManagerCapability, br as sleep$1, ct as createDeviceExtensionProvider, en as normalizeUnit, fr as isDeviceConfigCap, g as DAY_NAMES, gt as deviceExtensionCapability, jt as formatMinutes, o as CAMERA_SWITCH_ORDER, pn as runtimeStatePolicyFor, pt as defineExtensionSlotProvider, qn as DeviceFeature, rn as parseStreamParamsFormPatch, rr as WELL_KNOWN_TAB_MAP, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, vn as siteZoneKey, vt as deviceStateCapability, wt as enumerateSchemaFields, x as FieldClaimModeSchema, y as DeviceStatusSchema, yt as deviceStatusCapability } from "../../dist-Dp043AI0.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-Dxf9vELs.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_device_state_changed = require("../../device-state-changed-Bk7cvTnz.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/doorbell/trigger-engine.ts
@@ -1,4 +1,4 @@
1
- import { Gn as isSourceCap, Lt as isSameAddonId, Pn as SOURCE_CAPS, Sr as EventCategory, Wn as evaluateSensorEdge, X as buildDoorbellCompositionFeature, Xn as errMsg, Yn as DeviceType, Zn as BaseAddon, bt as doorbellCapability, ct as createDeviceExtensionProvider, gt as deviceExtensionCapability, pt as defineExtensionSlotProvider, q as bareAddonId, sr as createEvent, xt as doorbellFeatureSources } from "../../dist-CV7IqaYq.mjs";
1
+ import { Gn as isSourceCap, Lt as isSameAddonId, Pn as SOURCE_CAPS, Sr as EventCategory, Wn as evaluateSensorEdge, X as buildDoorbellCompositionFeature, Xn as errMsg, Yn as DeviceType, Zn as BaseAddon, bt as doorbellCapability, ct as createDeviceExtensionProvider, gt as deviceExtensionCapability, pt as defineExtensionSlotProvider, q as bareAddonId, sr as createEvent, xt as doorbellFeatureSources } from "../../dist-Dp043AI0.mjs";
2
2
  import { n as parseDeviceStateChanged } from "../../device-state-changed-DoBbkyEI.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/doorbell/trigger-engine.ts
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
4
4
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-CSs0cFDN.js");
3
+ const require_dist = require("../../dist-Bx4zxM9N.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { M as RecordingStatusSchema, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, k as RECORDING_SOURCE_CAMSTACK_ADDON, sr as createEvent } from "../../dist-CV7IqaYq.mjs";
1
+ import { M as RecordingStatusSchema, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, k as RECORDING_SOURCE_CAMSTACK_ADDON, sr as createEvent } from "../../dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/liveness-monitor/liveness-checks.ts
3
3
  var NO_DEVICES = "liveness:no-devices";
4
4
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { B as UserRecordSchema, En as userManagementCapability, F as ScopedTokenSchema, G as authProviderCapability, Zn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-CV7IqaYq.mjs";
2
+ import { B as UserRecordSchema, En as userManagementCapability, F as ScopedTokenSchema, G as authProviderCapability, Zn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-Dp043AI0.mjs";
3
3
  import * as crypto$2 from "node:crypto";
4
4
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
5
5
  import nodeCrypto from "crypto";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-CSs0cFDN.js");
3
+ const require_dist = require("../../dist-Bx4zxM9N.js");
4
4
  const require_tls = require("../../tls-D_wUeOTD.js");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, Ut as localNetworkCapability, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Sr as EventCategory, Ut as localNetworkCapability, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-IM-v7JV4.mjs";
3
3
  import { mkdir, writeFile } from "node:fs/promises";
4
4
  import { join } from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  //#region src/builtins/loki-logging/loki-payload.ts
8
8
  /**
9
9
  * Loki rejects a label name that is not a valid Prometheus label
@@ -1,4 +1,4 @@
1
- import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/loki-logging/loki-payload.ts
3
3
  /**
4
4
  * Loki rejects a label name that is not a valid Prometheus label
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_proc_stat = require("../../proc-stat-DL-WUOhl.js");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { At as foldSnapshotByFunction, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, Zt as metricsProviderCapability, cn as reducePoints, sr as createEvent, un as resolveBucketMs } from "../../dist-CV7IqaYq.mjs";
1
+ import { At as foldSnapshotByFunction, Sr as EventCategory, Xn as errMsg, Zn as BaseAddon, Zt as metricsProviderCapability, cn as reducePoints, sr as createEvent, un as resolveBucketMs } from "../../dist-Dp043AI0.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader, n as elapsedSecSince, o as parseProcStatusRss, r as lifetimeCpuPercent, t as commandFromCmdline } from "../../proc-stat-CbC55Kqi.mjs";
3
3
  import { access, readFile, readdir } from "node:fs/promises";
4
4
  import * as fs from "node:fs";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Sr as EventCategory, St as enumerateInferenceDevices, Xn as errMsg, Zn as BaseAddon, an as platformProbeCapability, gn as scoreRuntimes, lr as emitReadiness } from "../../dist-CV7IqaYq.mjs";
2
+ import { Sr as EventCategory, St as enumerateInferenceDevices, Xn as errMsg, Zn as BaseAddon, an as platformProbeCapability, gn as scoreRuntimes, lr as emitReadiness } from "../../dist-Dp043AI0.mjs";
3
3
  import * as fs from "node:fs";
4
4
  import { execFile } from "node:child_process";
5
5
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
8
8
  /**
9
9
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -1,4 +1,4 @@
1
- import { Sr as EventCategory, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Sr as EventCategory, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
3
3
  /**
4
4
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { J as batteryCapability, Sr as EventCategory, Tn as streamQualityLabel, Xn as errMsg, Xt as memoizePinnedFfmpeg, Yn as DeviceType, Zn as BaseAddon, a as BatteryStatusSchema, mr as nodePin, mt as deriveBatteryPresence, q as bareAddonId, qn as DeviceFeature, yn as snapshotCapability } from "../../dist-CV7IqaYq.mjs";
1
+ import { J as batteryCapability, Sr as EventCategory, Tn as streamQualityLabel, Xn as errMsg, Xt as memoizePinnedFfmpeg, Yn as DeviceType, Zn as BaseAddon, a as BatteryStatusSchema, mr as nodePin, mt as deriveBatteryPresence, q as bareAddonId, qn as DeviceFeature, yn as snapshotCapability } from "../../dist-Dp043AI0.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Cn as storageProviderCapability, Zn as BaseAddon, kt as filesystemBrowseCapability } from "../../dist-CV7IqaYq.mjs";
1
+ import { Cn as storageProviderCapability, Zn as BaseAddon, kt as filesystemBrowseCapability } from "../../dist-Dp043AI0.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { mkdir, readdir, realpath, statfs } from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { $ as collectSecretConfigKeys, A as REDACTED_SECRET, Et as evictionPolicyOfLocation, Ft as isLocationEnabled, I as StorageCleanupJobSchema, Jt as mayReadLocation, L as StorageLocationModeSchema, Mt as gbToBytes, Qt as modeMayWrite, R as StorageLocationTypeSchema, Sr as EventCategory, Vt as legacyModeOf, Yt as mayWriteToLocation, Zn as BaseAddon, _n as settingsStoreCapability, bn as storageCapability, dn as resolveLocationMode, hr as parseJsonObject, jn as withLocationMode, w as LegacyStorageLocationDefaultSchema, xn as storageMigrationCapability, z as StorageMigrationJobSchema } from "../../dist-CV7IqaYq.mjs";
1
+ import { $ as collectSecretConfigKeys, A as REDACTED_SECRET, Et as evictionPolicyOfLocation, Ft as isLocationEnabled, I as StorageCleanupJobSchema, Jt as mayReadLocation, L as StorageLocationModeSchema, Mt as gbToBytes, Qt as modeMayWrite, R as StorageLocationTypeSchema, Sr as EventCategory, Vt as legacyModeOf, Yt as mayWriteToLocation, Zn as BaseAddon, _n as settingsStoreCapability, bn as storageCapability, dn as resolveLocationMode, hr as parseJsonObject, jn as withLocationMode, w as LegacyStorageLocationDefaultSchema, xn as storageMigrationCapability, z as StorageMigrationJobSchema } from "../../dist-Dp043AI0.mjs";
2
2
  import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  //#region src/builtins/system-config/system-config.addon.ts
8
8
  /**
9
9
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -1,4 +1,4 @@
1
- import { Xn as errMsg, Zn as BaseAddon, dr as hydrateSchema } from "../../dist-CV7IqaYq.mjs";
1
+ import { Xn as errMsg, Zn as BaseAddon, dr as hydrateSchema } from "../../dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/system-config/system-config.addon.ts
3
3
  /**
4
4
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CSs0cFDN.js");
6
+ const require_dist = require("../../dist-Bx4zxM9N.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-CV7IqaYq.mjs";
1
+ import { Gt as logDestinationCapability, Zn as BaseAddon } from "../../dist-Dp043AI0.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CSs0cFDN.js");
1
+ const require_dist = require("./dist-Bx4zxM9N.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Hn as compositionSourceKey, Xn as errMsg } from "./dist-CV7IqaYq.mjs";
1
+ import { Hn as compositionSourceKey, Xn as errMsg } from "./dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -20128,17 +20128,25 @@ var NcScheduleSchema = zod.z.object({
20128
20128
  */
20129
20129
  var NcSystemEventDeliveryModeSchema = zod.z.enum(["instant", "summary"]);
20130
20130
  /**
20131
+ * How a summary window is SENT (D698): `rule` (absent) = ONE notification with
20132
+ * every section; `section` = one notification per section with something to
20133
+ * say (an unavailable section included), each titled by its section.
20134
+ */
20135
+ var NcStateSummarySplitSchema = zod.z.enum(["rule", "section"]);
20136
+ /**
20131
20137
  * `summary`: the rule sends NOTHING per event. When a window of `schedule`
20132
20138
  * CLOSES, it sends one notification with the current state of its kinds
20133
20139
  * (low batteries, consumables to replace, devices offline, updates
20134
- * available, ...), after its own filters. Nothing to report sends nothing.
20140
+ * available, ...), after its own filters — or, with `split: 'section'`
20141
+ * (D698), one notification per section. Nothing to report sends nothing.
20135
20142
  * The schedule is the ordinary `NcSchedule` (weekly windows, IANA timezone,
20136
20143
  * midnight crossing); the send time is each window's END. Refused on the
20137
20144
  * `alarm` family, which stays instant (`systemEventDeliveryProblems`).
20138
20145
  */
20139
20146
  var NcSystemEventDeliverySchema = zod.z.discriminatedUnion("mode", [zod.z.object({ mode: zod.z.literal("instant") }), zod.z.object({
20140
20147
  mode: zod.z.literal("summary"),
20141
- schedule: NcScheduleSchema
20148
+ schedule: NcScheduleSchema,
20149
+ split: NcStateSummarySplitSchema.optional()
20142
20150
  })]);
20143
20151
  /** Fuzzy plate matcher — OCR noise makes exact match useless (spec row 12/13). */
20144
20152
  var NcPlateMatcherSchema = zod.z.object({
@@ -21137,11 +21145,23 @@ var NcStateSummaryPreviewSectionSchema = zod.z.object({
21137
21145
  reason: zod.z.string().optional()
21138
21146
  });
21139
21147
  /**
21148
+ * One notification a previewed summary would send (D698): the whole summary on
21149
+ * a `rule` split (no `section`), one section's on a `section` split.
21150
+ */
21151
+ var NcStateSummaryPreviewRowSchema = zod.z.object({
21152
+ section: zod.z.string().optional(),
21153
+ /** The section's name on a per-section row; every reported section's, joined, on a combined one. */
21154
+ title: zod.z.string(),
21155
+ text: zod.z.string(),
21156
+ count: zod.z.number().int().nonnegative()
21157
+ });
21158
+ /**
21140
21159
  * The summary a rule would send now. `empty` = nothing to report and every
21141
21160
  * section read: such a summary is NOT sent. `dropped` counts the open states
21142
21161
  * the rule's own filters (or a camera mute) left out, by reason.
21143
21162
  * `excludedGroups` names the kind groups selected that have no state to report
21144
- * (backups & exports).
21163
+ * (backups & exports). `split` and `rows` (D698) say how it would be sent —
21164
+ * optional, so an older hub's answer still parses.
21145
21165
  */
21146
21166
  var NcStateSummaryPreviewSchema = zod.z.object({
21147
21167
  empty: zod.z.boolean(),
@@ -21149,7 +21169,9 @@ var NcStateSummaryPreviewSchema = zod.z.object({
21149
21169
  text: zod.z.string(),
21150
21170
  sections: zod.z.array(NcStateSummaryPreviewSectionSchema),
21151
21171
  dropped: zod.z.record(zod.z.string(), zod.z.number().int().nonnegative()),
21152
- excludedGroups: zod.z.array(zod.z.string())
21172
+ excludedGroups: zod.z.array(zod.z.string()),
21173
+ split: NcStateSummarySplitSchema.optional(),
21174
+ rows: zod.z.array(NcStateSummaryPreviewRowSchema).optional()
21153
21175
  });
21154
21176
  var NcTestResultSchema = zod.z.object({
21155
21177
  recordId: zod.z.string(),
@@ -57682,6 +57704,18 @@ var STATE_SUMMARY_VARS = [
57682
57704
  systemEventKinds: [...SUMMARISABLE],
57683
57705
  systemEventDeliveries: ["summary"]
57684
57706
  },
57707
+ {
57708
+ name: "summarySection",
57709
+ label: "Summary: this section",
57710
+ description: "The section a per-section summary row is about (D698); on a summary sent as one message, every section it reports, comma-separated.",
57711
+ example: "Batterie scariche",
57712
+ group: "system",
57713
+ families: ["rule"],
57714
+ fields: [...RULE_TEXT],
57715
+ kinds: ["system"],
57716
+ systemEventKinds: [...SUMMARISABLE],
57717
+ systemEventDeliveries: ["summary"]
57718
+ },
57685
57719
  ...STATE_SUMMARY_SECTION_VARS.map((v) => ({
57686
57720
  name: v.name,
57687
57721
  label: v.label,
@@ -20128,17 +20128,25 @@ var NcScheduleSchema = z.object({
20128
20128
  */
20129
20129
  var NcSystemEventDeliveryModeSchema = z.enum(["instant", "summary"]);
20130
20130
  /**
20131
+ * How a summary window is SENT (D698): `rule` (absent) = ONE notification with
20132
+ * every section; `section` = one notification per section with something to
20133
+ * say (an unavailable section included), each titled by its section.
20134
+ */
20135
+ var NcStateSummarySplitSchema = z.enum(["rule", "section"]);
20136
+ /**
20131
20137
  * `summary`: the rule sends NOTHING per event. When a window of `schedule`
20132
20138
  * CLOSES, it sends one notification with the current state of its kinds
20133
20139
  * (low batteries, consumables to replace, devices offline, updates
20134
- * available, ...), after its own filters. Nothing to report sends nothing.
20140
+ * available, ...), after its own filters — or, with `split: 'section'`
20141
+ * (D698), one notification per section. Nothing to report sends nothing.
20135
20142
  * The schedule is the ordinary `NcSchedule` (weekly windows, IANA timezone,
20136
20143
  * midnight crossing); the send time is each window's END. Refused on the
20137
20144
  * `alarm` family, which stays instant (`systemEventDeliveryProblems`).
20138
20145
  */
20139
20146
  var NcSystemEventDeliverySchema = z.discriminatedUnion("mode", [z.object({ mode: z.literal("instant") }), z.object({
20140
20147
  mode: z.literal("summary"),
20141
- schedule: NcScheduleSchema
20148
+ schedule: NcScheduleSchema,
20149
+ split: NcStateSummarySplitSchema.optional()
20142
20150
  })]);
20143
20151
  /** Fuzzy plate matcher — OCR noise makes exact match useless (spec row 12/13). */
20144
20152
  var NcPlateMatcherSchema = z.object({
@@ -21137,11 +21145,23 @@ var NcStateSummaryPreviewSectionSchema = z.object({
21137
21145
  reason: z.string().optional()
21138
21146
  });
21139
21147
  /**
21148
+ * One notification a previewed summary would send (D698): the whole summary on
21149
+ * a `rule` split (no `section`), one section's on a `section` split.
21150
+ */
21151
+ var NcStateSummaryPreviewRowSchema = z.object({
21152
+ section: z.string().optional(),
21153
+ /** The section's name on a per-section row; every reported section's, joined, on a combined one. */
21154
+ title: z.string(),
21155
+ text: z.string(),
21156
+ count: z.number().int().nonnegative()
21157
+ });
21158
+ /**
21140
21159
  * The summary a rule would send now. `empty` = nothing to report and every
21141
21160
  * section read: such a summary is NOT sent. `dropped` counts the open states
21142
21161
  * the rule's own filters (or a camera mute) left out, by reason.
21143
21162
  * `excludedGroups` names the kind groups selected that have no state to report
21144
- * (backups & exports).
21163
+ * (backups & exports). `split` and `rows` (D698) say how it would be sent —
21164
+ * optional, so an older hub's answer still parses.
21145
21165
  */
21146
21166
  var NcStateSummaryPreviewSchema = z.object({
21147
21167
  empty: z.boolean(),
@@ -21149,7 +21169,9 @@ var NcStateSummaryPreviewSchema = z.object({
21149
21169
  text: z.string(),
21150
21170
  sections: z.array(NcStateSummaryPreviewSectionSchema),
21151
21171
  dropped: z.record(z.string(), z.number().int().nonnegative()),
21152
- excludedGroups: z.array(z.string())
21172
+ excludedGroups: z.array(z.string()),
21173
+ split: NcStateSummarySplitSchema.optional(),
21174
+ rows: z.array(NcStateSummaryPreviewRowSchema).optional()
21153
21175
  });
21154
21176
  var NcTestResultSchema = z.object({
21155
21177
  recordId: z.string(),
@@ -57682,6 +57704,18 @@ var STATE_SUMMARY_VARS = [
57682
57704
  systemEventKinds: [...SUMMARISABLE],
57683
57705
  systemEventDeliveries: ["summary"]
57684
57706
  },
57707
+ {
57708
+ name: "summarySection",
57709
+ label: "Summary: this section",
57710
+ description: "The section a per-section summary row is about (D698); on a summary sent as one message, every section it reports, comma-separated.",
57711
+ example: "Batterie scariche",
57712
+ group: "system",
57713
+ families: ["rule"],
57714
+ fields: [...RULE_TEXT],
57715
+ kinds: ["system"],
57716
+ systemEventKinds: [...SUMMARISABLE],
57717
+ systemEventDeliveries: ["summary"]
57718
+ },
57685
57719
  ...STATE_SUMMARY_SECTION_VARS.map((v) => ({
57686
57720
  name: v.name,
57687
57721
  label: v.label,
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-CSs0cFDN.js");
3
+ const require_dist = require("./dist-Bx4zxM9N.js");
4
4
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
5
5
  require("./builtins/alerts/index.js");
6
6
  const require_builtins_composer_composer_addon = require("./builtins/composer/composer.addon.js");
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { $n as DEVICE_SETTINGS_CONTRIBUTION_METHODS, C as LOG_LEVEL_RANK, E as METHOD_ACCESS_MAP, H as addonSettingsCapability, Ht as lifecycleJobSchema, It as isObjectInput, Kt as logLevelAtMost, Nt as isArrayOutputSchema, Ot as extractNestedAddonId, Pt as isCollectionArrayMethod, Qn as DATAPLANE_SECRET_HEADER$1, Rt as isVoidInput, Sr as EventCategory$1, Xn as errMsg$1, _r as readinessKey, ar as asNumber, cr as emitDownForOwnedCaps, er as DEVICE_STATUS_METHOD, fn as resolveMethodAuth, gr as parseJsonUnknown, hn as scopesAllowDeviceCap, hr as parseJsonObject, ir as asJsonObject$1, j as RUNTIME_DEFAULTS, mn as scopesAllowAddon, nn as objectInputDeclaresRequiredDeviceId, nr as ReadinessTimeoutError, on as procedureAuthKey, or as asString$1, qt as looseSchema, sr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, tn as objectInputDeclaresAddonId, tr as ReadinessRegistry, ur as expandCapMethods, vr as resolveCapMount, yr as scopeKey, zt as kebabToCamel } from "./dist-CV7IqaYq.mjs";
2
+ import { $n as DEVICE_SETTINGS_CONTRIBUTION_METHODS, C as LOG_LEVEL_RANK, E as METHOD_ACCESS_MAP, H as addonSettingsCapability, Ht as lifecycleJobSchema, It as isObjectInput, Kt as logLevelAtMost, Nt as isArrayOutputSchema, Ot as extractNestedAddonId, Pt as isCollectionArrayMethod, Qn as DATAPLANE_SECRET_HEADER$1, Rt as isVoidInput, Sr as EventCategory$1, Xn as errMsg$1, _r as readinessKey, ar as asNumber, cr as emitDownForOwnedCaps, er as DEVICE_STATUS_METHOD, fn as resolveMethodAuth, gr as parseJsonUnknown, hn as scopesAllowDeviceCap, hr as parseJsonObject, ir as asJsonObject$1, j as RUNTIME_DEFAULTS, mn as scopesAllowAddon, nn as objectInputDeclaresRequiredDeviceId, nr as ReadinessTimeoutError, on as procedureAuthKey, or as asString$1, qt as looseSchema, sr as createEvent, t as ALL_CAPABILITY_DEFINITIONS, tn as objectInputDeclaresAddonId, tr as ReadinessRegistry, ur as expandCapMethods, vr as resolveCapMount, yr as scopeKey, zt as kebabToCamel } from "./dist-Dp043AI0.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { ComposerAddon } from "./builtins/composer/composer.addon.mjs";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CSs0cFDN.js");
1
+ const require_dist = require("./dist-Bx4zxM9N.js");
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
@@ -1,4 +1,4 @@
1
- import { ir as asJsonObject } from "./dist-CV7IqaYq.mjs";
1
+ import { ir as asJsonObject } from "./dist-Dp043AI0.mjs";
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.329",
3
+ "version": "1.2.330",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",
@@ -411,7 +411,7 @@
411
411
  "copy:hook": "node -e \"const fs=require('fs'),p=require('path');const dst=p.join('dist');fs.mkdirSync(dst,{recursive:true});fs.copyFileSync(p.join('src','kernel','moleculer','framework-resolver-hook.mjs'),p.join(dst,'framework-resolver-hook.mjs'));console.log('copied framework-resolver-hook.mjs ->',dst)\"",
412
412
  "build": "vite build && npm run copy:hook",
413
413
  "dev": "tsup --watch",
414
- "typecheck": "tsc --noEmit",
414
+ "typecheck": "tsc --noEmit -p tsconfig.spec.json",
415
415
  "test": "vitest run",
416
416
  "test:watch": "vitest",
417
417
  "publish:npm": "npm publish --access public"