@camstack/system 1.2.341 → 1.2.343

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 (61) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/autotrack/index.js +1 -1
  10. package/dist/builtins/autotrack/index.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/camera-grid/index.js +1 -1
  14. package/dist/builtins/camera-grid/index.mjs +1 -1
  15. package/dist/builtins/composer/composer.addon.js +2 -2
  16. package/dist/builtins/composer/composer.addon.mjs +2 -2
  17. package/dist/builtins/console-logging/index.js +1 -1
  18. package/dist/builtins/console-logging/index.mjs +1 -1
  19. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  20. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  21. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  22. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  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/{child-cap-dispatch-CFBFivGj.mjs → child-cap-dispatch-BQO5Pi4A.mjs} +1 -1
  52. package/dist/{child-cap-dispatch-CE8FZPwx.js → child-cap-dispatch-XDFcFrSy.js} +1 -1
  53. package/dist/{composition-sources-D7poRDHO.mjs → composition-sources-9CvbvMM1.mjs} +1 -1
  54. package/dist/{composition-sources-D3jZT3Xx.js → composition-sources-BMpC1mTs.js} +1 -1
  55. package/dist/{dist-dflxzOjI.js → dist-B8ev8DjI.js} +78 -29
  56. package/dist/{dist-C9uyNQLN.mjs → dist-Dbo54UVI.mjs} +78 -29
  57. package/dist/index.js +2 -2
  58. package/dist/index.mjs +2 -2
  59. package/dist/{retired-settings-keys-DIlQ685i.js → retired-settings-keys-B_CcOSNX.js} +1 -1
  60. package/dist/{retired-settings-keys-BWwZzByT.mjs → retired-settings-keys-Cv3Shwcw.mjs} +1 -1
  61. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_child_cap_dispatch = require("./child-cap-dispatch-CE8FZPwx.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-XDFcFrSy.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Ft as installManifestNativeDeps, H as createUdsLoggerWithControl, It as resolveAddonClass, St as validateProviderRegistrations, Tn as emitHeapDiagnosticReport, U as LocalChildClient, _t as getWorkerNativeCapProvider, bt as setWorkerNativeCapsChangeListener, en as RUNNER_RSS_BUDGET_ENV, f as installManifestSystemDeps, g as createUdsAddonContext, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, pn as startRunnerHeapWatch, u as startRunnerParentDeathWatchdog, vt as getWorkerNativeCapSnapshot } from "./child-cap-dispatch-CFBFivGj.mjs";
1
+ import { Ft as installManifestNativeDeps, H as createUdsLoggerWithControl, It as resolveAddonClass, St as validateProviderRegistrations, Tn as emitHeapDiagnosticReport, U as LocalChildClient, _t as getWorkerNativeCapProvider, bt as setWorkerNativeCapsChangeListener, en as RUNNER_RSS_BUDGET_ENV, f as installManifestSystemDeps, g as createUdsAddonContext, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, pn as startRunnerHeapWatch, u as startRunnerParentDeathWatchdog, vt as getWorkerNativeCapSnapshot } from "./child-cap-dispatch-BQO5Pi4A.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Un as errMsg, V as addonPagesCapability, Wn as BaseAddon, hr as EventCategory } from "../../dist-C9uyNQLN.mjs";
1
+ import { Un as errMsg, V as addonPagesCapability, Wn as BaseAddon, hr as EventCategory } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { U as addonWidgetsCapability, Un as errMsg, Wn as BaseAddon, hr as EventCategory } from "../../dist-C9uyNQLN.mjs";
1
+ import { U as addonWidgetsCapability, Un as errMsg, Wn as BaseAddon, hr as EventCategory } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Un as errMsg, W as alertsCapability, Wn as BaseAddon, er as createEvent, hr as EventCategory, n as AlertSchema } from "../../dist-C9uyNQLN.mjs";
1
+ import { Un as errMsg, W as alertsCapability, Wn as BaseAddon, er as createEvent, hr as EventCategory, n as AlertSchema } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Un as errMsg, Wn as BaseAddon, b as FIRST_LEVEL_MACRO_CLASSES, hr as EventCategory, or as isEvent, q as bareAddonId, rn as ptzAutotrackCapability } from "../../dist-C9uyNQLN.mjs";
1
+ import { Un as errMsg, Wn as BaseAddon, b as FIRST_LEVEL_MACRO_CLASSES, hr as EventCategory, or as isEvent, q as bareAddonId, rn as ptzAutotrackCapability } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Gt as mayWriteToLocation, K as backupCapability, Wn as BaseAddon, hr as EventCategory, m as DATABASE_SNAPSHOT_SUFFIX, mr as toNodeId, sr as nodePin, vn as storageOccupancyCapability } from "../../dist-C9uyNQLN.mjs";
1
+ import { Gt as mayWriteToLocation, K as backupCapability, Wn as BaseAddon, hr as EventCategory, m as DATABASE_SNAPSHOT_SUFFIX, mr as toNodeId, sr as nodePin, vn as storageOccupancyCapability } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Bn as DeviceFeature, Hn as DeviceType, Kt as memoizePinnedFfmpeg, O as MOTION_CLOSE_AFTER_MS, Un as errMsg, Wn as BaseAddon, Yt as motionCapability, Z as cameraGridLayoutCapability, _ as DERIVED_CAMERA_SILENCED_CAP_NAMES, bn as streamCatalogCapability, er as createEvent, hn as snapshotCapability, hr as EventCategory, i as BaseDevice, ir as hydrateSchema, kn as buildFfmpegArgs, ut as declarationOwnerNodeId, v as DeclaredDevices } from "../../dist-C9uyNQLN.mjs";
1
+ import { Bn as DeviceFeature, Hn as DeviceType, Kt as memoizePinnedFfmpeg, O as MOTION_CLOSE_AFTER_MS, Un as errMsg, Wn as BaseAddon, Yt as motionCapability, Z as cameraGridLayoutCapability, _ as DERIVED_CAMERA_SILENCED_CAP_NAMES, bn as streamCatalogCapability, er as createEvent, hn as snapshotCapability, hr as EventCategory, i as BaseDevice, ir as hydrateSchema, kn as buildFfmpegArgs, ut as declarationOwnerNodeId, v as DeclaredDevices } from "../../dist-Dbo54UVI.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -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-dflxzOjI.js");
7
- const require_composition_sources = require("../../composition-sources-D3jZT3Xx.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.js");
7
+ const require_composition_sources = require("../../composition-sources-BMpC1mTs.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/shared/device-state-changed.ts
10
10
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1,5 +1,5 @@
1
- import { $ as composerCapability, An as cloneStatefulExpressionMemory, Fn as compositionSliceKey, Hn as DeviceType, In as compositionSourceKey, Ln as createStatefulExpressionMemory, Mn as composedDeviceStableId, Nn as compositionFeatureEnabled, On as COMPOSER_ADDON_ID, Pn as compositionItemFieldPath, Rn as disarmRoseMemory, St as evaluateCompositionField, Un as errMsg, Wn as BaseAddon, Y as buildCapabilityLookup, c as COMPOSED_ITEM_FIXED_FIELDS, en as planComposition, er as createEvent, et as compositionFieldKey, hr as EventCategory, i as BaseDevice, jn as composedDeviceRef, t as ALL_CAPABILITY_DEFINITIONS, v as DeclaredDevices, zn as toExpressionValue } from "../../dist-C9uyNQLN.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-D7poRDHO.mjs";
1
+ import { $ as composerCapability, An as cloneStatefulExpressionMemory, Fn as compositionSliceKey, Hn as DeviceType, In as compositionSourceKey, Ln as createStatefulExpressionMemory, Mn as composedDeviceStableId, Nn as compositionFeatureEnabled, On as COMPOSER_ADDON_ID, Pn as compositionItemFieldPath, Rn as disarmRoseMemory, St as evaluateCompositionField, Un as errMsg, Wn as BaseAddon, Y as buildCapabilityLookup, c as COMPOSED_ITEM_FIXED_FIELDS, en as planComposition, er as createEvent, et as compositionFieldKey, hr as EventCategory, i as BaseDevice, jn as composedDeviceRef, t as ALL_CAPABILITY_DEFINITIONS, v as DeclaredDevices, zn as toExpressionValue } from "../../dist-Dbo54UVI.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-9CvbvMM1.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/shared/device-state-changed.ts
5
5
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-C9uyNQLN.mjs";
1
+ import { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
4
- const require_composition_sources = require("../../composition-sources-D3jZT3Xx.js");
3
+ const require_dist = require("../../dist-B8ev8DjI.js");
4
+ const require_composition_sources = require("../../composition-sources-BMpC1mTs.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 { Cn as validateComposition, In as compositionSourceKey, Un as errMsg, Wn as BaseAddon, Y as buildCapabilityLookup, an as replacedFieldKeys, at as coreBlockSourceKind, d as CORE_BLOCK_ADDON_PREFIX, en as planComposition, f as CoreBlockSchema, it as coreBlockIdFromAddonId, jn as composedDeviceRef, l as COMPOSER_RUNNER_ID, mt as describeComposableCaps, nt as coreBlockAddonId, ot as coreBlocksCapability, rt as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, tt as compositionSourceRefs, u as CORE_BLOCKS_ADDON_ID, v as DeclaredDevices } from "../../dist-C9uyNQLN.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-D7poRDHO.mjs";
1
+ import { Cn as validateComposition, In as compositionSourceKey, Un as errMsg, Wn as BaseAddon, Y as buildCapabilityLookup, an as replacedFieldKeys, at as coreBlockSourceKind, d as CORE_BLOCK_ADDON_PREFIX, en as planComposition, f as CoreBlockSchema, it as coreBlockIdFromAddonId, jn as composedDeviceRef, l as COMPOSER_RUNNER_ID, mt as describeComposableCaps, nt as coreBlockAddonId, ot as coreBlocksCapability, rt as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, tt as compositionSourceRefs, u as CORE_BLOCKS_ADDON_ID, v as DeclaredDevices } from "../../dist-Dbo54UVI.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-9CvbvMM1.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-dflxzOjI.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-DIlQ685i.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-B_CcOSNX.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 { $t as parseStreamParamsFormPatch, Bn as DeviceFeature, Bt as locationIconKey, D as MINUTES_PER_DAY, Hn as DeviceType, It as legacyAutoLinkIds, Ot as formatMinutes, P as STREAM_PROFILE_META, S as FieldClaimSchema, T as LocationIconIdSchema, Un as errMsg, Vn as DeviceRole, Wn as BaseAddon, X as buildStreamParamsConfigSchema, Xn as WELL_KNOWN_TAB_MAP, Xt as normalizeUnit, _t as deviceStateCapability, ar as isDeviceConfigCap, bt as enumerateItemArrayFields, ft as defineExtensionSlotProvider, g as DAY_NAMES, gt as deviceManagerCapability, hr as EventCategory, ht as deviceExtensionCapability, ln as runtimeStatePolicyFor, mn as siteZoneKey, o as CAMERA_SWITCH_ORDER, pr as sleep$1, s as CAP_NAMES_WITH_STATUS, st as createDeviceExtensionProvider, t as ALL_CAPABILITY_DEFINITIONS, vt as deviceStatusCapability, wt as expandContainer, x as FieldClaimModeSchema, xt as enumerateSchemaFields, y as DeviceStatusSchema } from "../../dist-C9uyNQLN.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BWwZzByT.mjs";
1
+ import { $t as parseStreamParamsFormPatch, Bn as DeviceFeature, Bt as locationIconKey, D as MINUTES_PER_DAY, Hn as DeviceType, It as legacyAutoLinkIds, Ot as formatMinutes, P as STREAM_PROFILE_META, S as FieldClaimSchema, T as LocationIconIdSchema, Un as errMsg, Vn as DeviceRole, Wn as BaseAddon, X as buildStreamParamsConfigSchema, Xn as WELL_KNOWN_TAB_MAP, Xt as normalizeUnit, _t as deviceStateCapability, ar as isDeviceConfigCap, bt as enumerateItemArrayFields, ft as defineExtensionSlotProvider, g as DAY_NAMES, gt as deviceManagerCapability, hr as EventCategory, ht as deviceExtensionCapability, ln as runtimeStatePolicyFor, mn as siteZoneKey, o as CAMERA_SWITCH_ORDER, pr as sleep$1, s as CAP_NAMES_WITH_STATUS, st as createDeviceExtensionProvider, t as ALL_CAPABILITY_DEFINITIONS, vt as deviceStatusCapability, wt as expandContainer, x as FieldClaimModeSchema, xt as enumerateSchemaFields, y as DeviceStatusSchema } from "../../dist-Dbo54UVI.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-Cv3Shwcw.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-C9uyNQLN.mjs";
1
+ import { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
3
+ const require_dist = require("../../dist-B8ev8DjI.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, Un as errMsg, Wn as BaseAddon, er as createEvent, hr as EventCategory, k as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-C9uyNQLN.mjs";
1
+ import { M as RecordingStatusSchema, Un as errMsg, Wn as BaseAddon, er as createEvent, hr as EventCategory, k as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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, F as ScopedTokenSchema, G as authProviderCapability, Sn as userManagementCapability, Wn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-C9uyNQLN.mjs";
2
+ import { B as UserRecordSchema, F as ScopedTokenSchema, G as authProviderCapability, Sn as userManagementCapability, Wn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
3
+ const require_dist = require("../../dist-B8ev8DjI.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 { Wn as BaseAddon, hr as EventCategory, zt as localNetworkCapability } from "../../dist-C9uyNQLN.mjs";
1
+ import { Wn as BaseAddon, hr as EventCategory, zt as localNetworkCapability } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-C9uyNQLN.mjs";
1
+ import { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Dt as foldSnapshotByFunction, Un as errMsg, Wn as BaseAddon, er as createEvent, hr as EventCategory, in as reducePoints, on as resolveBucketMs, qt as metricsProviderCapability } from "../../dist-C9uyNQLN.mjs";
1
+ import { Dt as foldSnapshotByFunction, Un as errMsg, Wn as BaseAddon, er as createEvent, hr as EventCategory, in as reducePoints, on as resolveBucketMs, qt as metricsProviderCapability } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Un as errMsg, Wn as BaseAddon, fn as scoreRuntimes, hr as EventCategory, nr as emitReadiness, tn as platformProbeCapability, yt as enumerateInferenceDevices } from "../../dist-C9uyNQLN.mjs";
2
+ import { Un as errMsg, Wn as BaseAddon, fn as scoreRuntimes, hr as EventCategory, nr as emitReadiness, tn as platformProbeCapability, yt as enumerateInferenceDevices } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Wn as BaseAddon, hr as EventCategory } from "../../dist-C9uyNQLN.mjs";
1
+ import { Wn as BaseAddon, hr as EventCategory } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Bn as DeviceFeature, Hn as DeviceType, J as batteryCapability, Kt as memoizePinnedFfmpeg, Un as errMsg, Wn as BaseAddon, a as BatteryStatusSchema, hn as snapshotCapability, hr as EventCategory, pt as deriveBatteryPresence, q as bareAddonId, sr as nodePin, xn as streamQualityLabel } from "../../dist-C9uyNQLN.mjs";
1
+ import { Bn as DeviceFeature, Hn as DeviceType, J as batteryCapability, Kt as memoizePinnedFfmpeg, Un as errMsg, Wn as BaseAddon, a as BatteryStatusSchema, hn as snapshotCapability, hr as EventCategory, pt as deriveBatteryPresence, q as bareAddonId, sr as nodePin, xn as streamQualityLabel } from "../../dist-Dbo54UVI.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Et as filesystemBrowseCapability, Wn as BaseAddon, yn as storageProviderCapability } from "../../dist-C9uyNQLN.mjs";
1
+ import { Et as filesystemBrowseCapability, Wn as BaseAddon, yn as storageProviderCapability } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { A as REDACTED_SECRET, Ct as evictionPolicyOfLocation, Dn as withLocationMode, Gt as mayWriteToLocation, I as StorageCleanupJobSchema, Jt as modeMayWrite, L as StorageLocationModeSchema, Lt as legacyModeOf, Mt as isLocationEnabled, Q as collectSecretConfigKeys, R as StorageLocationTypeSchema, Wn as BaseAddon, Wt as mayReadLocation, _n as storageMigrationCapability, cr as parseJsonObject, gn as storageCapability, hr as EventCategory, kt as gbToBytes, pn as settingsStoreCapability, sn as resolveLocationMode, w as LegacyStorageLocationDefaultSchema, z as StorageMigrationJobSchema } from "../../dist-C9uyNQLN.mjs";
1
+ import { A as REDACTED_SECRET, Ct as evictionPolicyOfLocation, Dn as withLocationMode, Gt as mayWriteToLocation, I as StorageCleanupJobSchema, Jt as modeMayWrite, L as StorageLocationModeSchema, Lt as legacyModeOf, Mt as isLocationEnabled, Q as collectSecretConfigKeys, R as StorageLocationTypeSchema, Wn as BaseAddon, Wt as mayReadLocation, _n as storageMigrationCapability, cr as parseJsonObject, gn as storageCapability, hr as EventCategory, kt as gbToBytes, pn as settingsStoreCapability, sn as resolveLocationMode, w as LegacyStorageLocationDefaultSchema, z as StorageMigrationJobSchema } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Un as errMsg, Wn as BaseAddon, ir as hydrateSchema } from "../../dist-C9uyNQLN.mjs";
1
+ import { Un as errMsg, Wn as BaseAddon, ir as hydrateSchema } from "../../dist-Dbo54UVI.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-dflxzOjI.js");
6
+ const require_dist = require("../../dist-B8ev8DjI.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 { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-C9uyNQLN.mjs";
1
+ import { Vt as logDestinationCapability, Wn as BaseAddon } from "../../dist-Dbo54UVI.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
- import { er as createEvent, hr as EventCategory$1 } from "./dist-C9uyNQLN.mjs";
1
+ import { er as createEvent, hr as EventCategory$1 } from "./dist-Dbo54UVI.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader } from "./proc-stat-CbC55Kqi.mjs";
3
3
  import "./hub-cap-forward-BdT320dq.mjs";
4
4
  import * as crypto$1 from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-dflxzOjI.js");
2
+ const require_dist = require("./dist-B8ev8DjI.js");
3
3
  const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
4
4
  require("./hub-cap-forward-DmHNjbB0.js");
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { In as compositionSourceKey, Un as errMsg } from "./dist-C9uyNQLN.mjs";
1
+ import { In as compositionSourceKey, Un as errMsg } from "./dist-Dbo54UVI.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
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-dflxzOjI.js");
1
+ const require_dist = require("./dist-B8ev8DjI.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
@@ -21413,19 +21413,52 @@ var NcAlarmNonBlockingEditSchema = zod.z.object({
21413
21413
  nonBlocking: zod.z.boolean()
21414
21414
  });
21415
21415
  /**
21416
- * One arm mode's non-blocking list: devices that may be open when that mode
21417
- * arms, without the arm being refused.
21416
+ * Controllable openings: opt IN to blocking (default is do not block). Contacts
21417
+ * keep using {@link NcAlarmNonBlockingEditSchema}.
21418
21418
  */
21419
- var NcAlarmNonBlockingSchema = zod.z.object({
21419
+ var NcAlarmBlockingEditSchema = zod.z.object({
21420
+ mode: AlarmArmModeSchema,
21421
+ deviceId: zod.z.number().int().positive(),
21422
+ /** true = on the list (blocks when open); false = off the list (default). */
21423
+ blocking: zod.z.boolean()
21424
+ });
21425
+ /**
21426
+ * Controllable openings: opt OUT of secure-on-arm (default is secure ON —
21427
+ * close / lock / turn off when this mode arms).
21428
+ */
21429
+ var NcAlarmSecureOnArmEditSchema = zod.z.object({
21430
+ mode: AlarmArmModeSchema,
21431
+ deviceId: zod.z.number().int().positive(),
21432
+ /** true = secure on arm (default); false = do not actuate on arm. */
21433
+ secureOnArm: zod.z.boolean()
21434
+ });
21435
+ /**
21436
+ * One arm mode's device-id list (non-blocking, blocking, or secure-on-arm-off).
21437
+ */
21438
+ var NcAlarmModeDeviceListSchema = zod.z.object({
21420
21439
  mode: AlarmArmModeSchema,
21421
21440
  deviceIds: zod.z.array(zod.z.number().int()).max(200)
21422
21441
  });
21423
21442
  /**
21443
+ * One arm mode's non-blocking list: devices that may be open when that mode
21444
+ * arms, without the arm being refused.
21445
+ */
21446
+ var NcAlarmNonBlockingSchema = NcAlarmModeDeviceListSchema;
21447
+ /** Controllable devices that DO block when open (opt-in; default empty). */
21448
+ var NcAlarmBlockingSchema = NcAlarmModeDeviceListSchema;
21449
+ /**
21450
+ * Controllable devices that do NOT secure on arm (opt-out; default empty =
21451
+ * every controllable secures).
21452
+ */
21453
+ var NcAlarmSecureOnArmOffSchema = NcAlarmModeDeviceListSchema;
21454
+ /**
21424
21455
  * The per-mode lists, at most one per mode. Two lists for one mode have no
21425
21456
  * meaning a reader could agree on (union? the last one?), so they are refused
21426
21457
  * at the boundary rather than interpreted.
21427
21458
  */
21428
21459
  var NcAlarmNonBlockingListSchema = zod.z.array(NcAlarmNonBlockingSchema).max(8).refine(uniqueModes, { message: "nonBlocking: at most one list per arm mode" });
21460
+ var NcAlarmBlockingListSchema = zod.z.array(NcAlarmBlockingSchema).max(8).refine(uniqueModes, { message: "blocking: at most one list per arm mode" });
21461
+ var NcAlarmSecureOnArmOffListSchema = zod.z.array(NcAlarmSecureOnArmOffSchema).max(8).refine(uniqueModes, { message: "secureOnArmOff: at most one list per arm mode" });
21429
21462
  /**
21430
21463
  * The three durations — global, and per mode since D697 — the panel's state
21431
21464
  * machine runs on, who hears about its transitions, and which openings each mode tolerates.
@@ -21468,9 +21501,23 @@ var NcAlarmSettingsSchema = zod.z.object({
21468
21501
  * arm (a window left ajar for the cat under `home`, say). At most one entry
21469
21502
  * per mode is meaningful. Defaulted to `[]` so a blob stored before D630
21470
21503
  * parses as "every opening blocks" — the behaviour it was written under.
21504
+ * Contacts use this list; controllable openings use {@link blocking} instead
21505
+ * (default: do not block).
21471
21506
  */
21472
21507
  nonBlocking: NcAlarmNonBlockingListSchema.default([]),
21473
21508
  /**
21509
+ * Per arm mode, controllable openings that DO refuse the arm when open.
21510
+ * Default `[]` = none block (secure-on-arm closes them instead). Absent on a
21511
+ * blob older than this field — read as empty.
21512
+ */
21513
+ blocking: NcAlarmBlockingListSchema.default([]),
21514
+ /**
21515
+ * Per arm mode, controllable openings that must NOT be actuated on arm.
21516
+ * Default `[]` = every controllable secures (close / lock / off). Absent on
21517
+ * an older blob — read as empty (secure ON).
21518
+ */
21519
+ secureOnArmOff: NcAlarmSecureOnArmOffListSchema.default([]),
21520
+ /**
21474
21521
  * Per arm mode, the delays that mode OVERRIDES (D697). A mode with no entry, or an entry
21475
21522
  * without a field, uses the global value above — so `[]`, the default, is exactly the
21476
21523
  * behaviour of a blob stored before this field existed. Read through `resolveModeDelays`.
@@ -21480,7 +21527,7 @@ var NcAlarmSettingsSchema = zod.z.object({
21480
21527
  /**
21481
21528
  * Every field optional — a tab edits one control at a time.
21482
21529
  *
21483
- * `nonBlocking` and `modeDelays` are re-declared WITHOUT their defaults:
21530
+ * List fields and `modeDelays` are re-declared WITHOUT their defaults:
21484
21531
  * `.partial()` does not remove an inner `.default()`, so a patch that never
21485
21532
  * named the field would parse to `[]` and wipe every mode's list on an
21486
21533
  * unrelated edit (the same trap {@link NcRulePatchSchema} documents). Here
@@ -21488,11 +21535,15 @@ var NcAlarmSettingsSchema = zod.z.object({
21488
21535
  */
21489
21536
  var NcAlarmSettingsPatchSchema = NcAlarmSettingsSchema.extend({
21490
21537
  nonBlocking: NcAlarmNonBlockingListSchema,
21538
+ blocking: NcAlarmBlockingListSchema,
21539
+ secureOnArmOff: NcAlarmSecureOnArmOffListSchema,
21491
21540
  /** Per-mode, per-field edits — NOT the whole list (see NcAlarmModeDelaysEditSchema). */
21492
21541
  modeDelays: NcAlarmModeDelaysEditListSchema,
21493
21542
  /** ONE membership change; the panel applies it to the list it holds at its turn. */
21494
- nonBlockingEdit: NcAlarmNonBlockingEditSchema
21495
- }).partial().refine((p) => p.nonBlocking === void 0 || p.nonBlockingEdit === void 0, { message: "nonBlocking and nonBlockingEdit are exclusive — send the whole lists or one edit" });
21543
+ nonBlockingEdit: NcAlarmNonBlockingEditSchema,
21544
+ blockingEdit: NcAlarmBlockingEditSchema,
21545
+ secureOnArmEdit: NcAlarmSecureOnArmEditSchema
21546
+ }).partial().refine((p) => p.nonBlocking === void 0 || p.nonBlockingEdit === void 0, { message: "nonBlocking and nonBlockingEdit are exclusive — send the whole lists or one edit" }).refine((p) => p.blocking === void 0 || p.blockingEdit === void 0, { message: "blocking and blockingEdit are exclusive — send the whole lists or one edit" }).refine((p) => p.secureOnArmOff === void 0 || p.secureOnArmEdit === void 0, { message: "secureOnArmOff and secureOnArmEdit are exclusive — send the whole lists or one edit" });
21496
21547
  /**
21497
21548
  * What one arm mode actually arms, DERIVED from the enabled rules gated on it.
21498
21549
  * Never authored, never stored — see `alarm-mode-coverage.ts` for why a stored
@@ -21607,7 +21658,13 @@ var NcAlarmSensorStateSchema = zod.z.object({
21607
21658
  /** Why `unknown`: the read failed, or the slice holds no word its cap defines (a placeholder included). */
21608
21659
  unknownWhy: zod.z.enum(["read-failed", "unknown-word"]).nullable(),
21609
21660
  /** The device manager's liveness as the centre mirrors it; null = not known. */
21610
- online: zod.z.boolean().nullable()
21661
+ online: zod.z.boolean().nullable(),
21662
+ /**
21663
+ * True when the opening is a cover / lock / switch — the table shows the
21664
+ * Secure-on-arm switch and uses the controllable defaults. False for contacts
21665
+ * and for non-openings. Defaulted so an older hub answer still parses.
21666
+ */
21667
+ controllable: zod.z.boolean().default(false)
21611
21668
  });
21612
21669
  var NcAlarmSensorsInputSchema = zod.z.object({ deviceIds: zod.z.array(zod.z.number().int().positive()).max(500) });
21613
21670
  var NcAlarmSensorsSchema = zod.z.object({
@@ -37821,21 +37878,12 @@ setOverlay: method(zod.z.object({
37821
37878
  }
37822
37879
  }] }
37823
37880
  };
37824
- /**
37825
- * `osd-manager` — the ORCHESTRATOR over the device-scope `osd` cap.
37826
- *
37827
- * The `osd` cap is the firmware contract: it probes a camera's overlay
37828
- * SLOTS and writes literal text into one. It has no idea WHERE that text
37829
- * comes from, and it must not — a driver that grew a "show the temperature
37830
- * here" feature would grow it once per vendor.
37831
- *
37832
- * This cap owns the other half: a per-(camera, slot) BINDING that says
37833
- * which value feeds the slot, how it is formatted, and under which
37834
- * conditions it is shown at all. Named TEMPLATES combine many device
37835
- * fields into one overlay string (Scrypted OSD Manager parity).
37836
- */
37837
- /** What `{alias}` expands to for one template binding. Exactly one choice. */
37838
- var OsdTemplateFormatSchema = zod.z.enum([
37881
+ zod.z.enum([
37882
+ "value",
37883
+ "unit",
37884
+ "full"
37885
+ ]);
37886
+ zod.z.enum([
37839
37887
  "value+unit",
37840
37888
  "value",
37841
37889
  "unit"
@@ -37850,29 +37898,30 @@ var OsdTemplatePickSchema = zod.z.object({
37850
37898
  deviceId: zod.z.number().int()
37851
37899
  });
37852
37900
  /**
37853
- * One named binding inside a multi-device template. The parser only
37854
- * sees `{alias}`; format / unit / decimals live here structurally.
37901
+ * One named binding inside a multi-device template: device path + unit
37902
+ * selection + precision. The parser expands `{alias}`, `{alias.value}`,
37903
+ * `{alias.unit}`, or `{alias.full}` from the same binding — there is no
37904
+ * per-binding format lock.
37855
37905
  */
37856
37906
  var OsdTemplateBindingSchema = zod.z.object({
37857
- /** Token in the parser, e.g. `t` → `{t}`. Unique within the template. */
37907
+ /** Token stem in the parser, e.g. `t` → `{t}` / `{t.value}`. Unique within the template. */
37858
37908
  alias: zod.z.string().min(1).max(32).regex(/^[A-Za-z][A-Za-z0-9_-]*$/, "alias must start with a letter"),
37859
37909
  pick: OsdTemplatePickSchema,
37860
37910
  capName: zod.z.string().min(1).max(64),
37861
37911
  valuePath: zod.z.string().min(1).max(64),
37862
- format: OsdTemplateFormatSchema.default("value+unit"),
37863
37912
  /** Convert TO this unit at render (`tryConvertUnit`). Absent = source unit. */
37864
37913
  displayUnit: zod.z.string().max(16).optional(),
37865
37914
  maxDecimals: zod.z.number().int().min(0).max(4).default(1)
37866
37915
  });
37867
37916
  /**
37868
- * A named template: bindings (alias → leaf field) + a parser that only
37869
- * references `{alias}` tokens.
37917
+ * A named template: bindings (alias → leaf field) + a parser that
37918
+ * references `{alias}` / `{alias.value}` / `{alias.unit}` / `{alias.full}`.
37870
37919
  */
37871
37920
  var OsdNamedTemplateSchema = zod.z.object({
37872
37921
  id: zod.z.string().min(1).max(64),
37873
37922
  name: zod.z.string().min(1).max(64),
37874
37923
  bindings: zod.z.array(OsdTemplateBindingSchema).max(32).default([]),
37875
- /** Parser with alias placeholders, e.g. `{t} / {h}`. */
37924
+ /** Parser with alias placeholders, e.g. `{t.value} {t.unit} / {h}`. */
37876
37925
  parser: zod.z.string().max(256).default("")
37877
37926
  });
37878
37927
  /** Where a slot's value comes from. */
@@ -21413,19 +21413,52 @@ var NcAlarmNonBlockingEditSchema = z.object({
21413
21413
  nonBlocking: z.boolean()
21414
21414
  });
21415
21415
  /**
21416
- * One arm mode's non-blocking list: devices that may be open when that mode
21417
- * arms, without the arm being refused.
21416
+ * Controllable openings: opt IN to blocking (default is do not block). Contacts
21417
+ * keep using {@link NcAlarmNonBlockingEditSchema}.
21418
21418
  */
21419
- var NcAlarmNonBlockingSchema = z.object({
21419
+ var NcAlarmBlockingEditSchema = z.object({
21420
+ mode: AlarmArmModeSchema,
21421
+ deviceId: z.number().int().positive(),
21422
+ /** true = on the list (blocks when open); false = off the list (default). */
21423
+ blocking: z.boolean()
21424
+ });
21425
+ /**
21426
+ * Controllable openings: opt OUT of secure-on-arm (default is secure ON —
21427
+ * close / lock / turn off when this mode arms).
21428
+ */
21429
+ var NcAlarmSecureOnArmEditSchema = z.object({
21430
+ mode: AlarmArmModeSchema,
21431
+ deviceId: z.number().int().positive(),
21432
+ /** true = secure on arm (default); false = do not actuate on arm. */
21433
+ secureOnArm: z.boolean()
21434
+ });
21435
+ /**
21436
+ * One arm mode's device-id list (non-blocking, blocking, or secure-on-arm-off).
21437
+ */
21438
+ var NcAlarmModeDeviceListSchema = z.object({
21420
21439
  mode: AlarmArmModeSchema,
21421
21440
  deviceIds: z.array(z.number().int()).max(200)
21422
21441
  });
21423
21442
  /**
21443
+ * One arm mode's non-blocking list: devices that may be open when that mode
21444
+ * arms, without the arm being refused.
21445
+ */
21446
+ var NcAlarmNonBlockingSchema = NcAlarmModeDeviceListSchema;
21447
+ /** Controllable devices that DO block when open (opt-in; default empty). */
21448
+ var NcAlarmBlockingSchema = NcAlarmModeDeviceListSchema;
21449
+ /**
21450
+ * Controllable devices that do NOT secure on arm (opt-out; default empty =
21451
+ * every controllable secures).
21452
+ */
21453
+ var NcAlarmSecureOnArmOffSchema = NcAlarmModeDeviceListSchema;
21454
+ /**
21424
21455
  * The per-mode lists, at most one per mode. Two lists for one mode have no
21425
21456
  * meaning a reader could agree on (union? the last one?), so they are refused
21426
21457
  * at the boundary rather than interpreted.
21427
21458
  */
21428
21459
  var NcAlarmNonBlockingListSchema = z.array(NcAlarmNonBlockingSchema).max(8).refine(uniqueModes, { message: "nonBlocking: at most one list per arm mode" });
21460
+ var NcAlarmBlockingListSchema = z.array(NcAlarmBlockingSchema).max(8).refine(uniqueModes, { message: "blocking: at most one list per arm mode" });
21461
+ var NcAlarmSecureOnArmOffListSchema = z.array(NcAlarmSecureOnArmOffSchema).max(8).refine(uniqueModes, { message: "secureOnArmOff: at most one list per arm mode" });
21429
21462
  /**
21430
21463
  * The three durations — global, and per mode since D697 — the panel's state
21431
21464
  * machine runs on, who hears about its transitions, and which openings each mode tolerates.
@@ -21468,9 +21501,23 @@ var NcAlarmSettingsSchema = z.object({
21468
21501
  * arm (a window left ajar for the cat under `home`, say). At most one entry
21469
21502
  * per mode is meaningful. Defaulted to `[]` so a blob stored before D630
21470
21503
  * parses as "every opening blocks" — the behaviour it was written under.
21504
+ * Contacts use this list; controllable openings use {@link blocking} instead
21505
+ * (default: do not block).
21471
21506
  */
21472
21507
  nonBlocking: NcAlarmNonBlockingListSchema.default([]),
21473
21508
  /**
21509
+ * Per arm mode, controllable openings that DO refuse the arm when open.
21510
+ * Default `[]` = none block (secure-on-arm closes them instead). Absent on a
21511
+ * blob older than this field — read as empty.
21512
+ */
21513
+ blocking: NcAlarmBlockingListSchema.default([]),
21514
+ /**
21515
+ * Per arm mode, controllable openings that must NOT be actuated on arm.
21516
+ * Default `[]` = every controllable secures (close / lock / off). Absent on
21517
+ * an older blob — read as empty (secure ON).
21518
+ */
21519
+ secureOnArmOff: NcAlarmSecureOnArmOffListSchema.default([]),
21520
+ /**
21474
21521
  * Per arm mode, the delays that mode OVERRIDES (D697). A mode with no entry, or an entry
21475
21522
  * without a field, uses the global value above — so `[]`, the default, is exactly the
21476
21523
  * behaviour of a blob stored before this field existed. Read through `resolveModeDelays`.
@@ -21480,7 +21527,7 @@ var NcAlarmSettingsSchema = z.object({
21480
21527
  /**
21481
21528
  * Every field optional — a tab edits one control at a time.
21482
21529
  *
21483
- * `nonBlocking` and `modeDelays` are re-declared WITHOUT their defaults:
21530
+ * List fields and `modeDelays` are re-declared WITHOUT their defaults:
21484
21531
  * `.partial()` does not remove an inner `.default()`, so a patch that never
21485
21532
  * named the field would parse to `[]` and wipe every mode's list on an
21486
21533
  * unrelated edit (the same trap {@link NcRulePatchSchema} documents). Here
@@ -21488,11 +21535,15 @@ var NcAlarmSettingsSchema = z.object({
21488
21535
  */
21489
21536
  var NcAlarmSettingsPatchSchema = NcAlarmSettingsSchema.extend({
21490
21537
  nonBlocking: NcAlarmNonBlockingListSchema,
21538
+ blocking: NcAlarmBlockingListSchema,
21539
+ secureOnArmOff: NcAlarmSecureOnArmOffListSchema,
21491
21540
  /** Per-mode, per-field edits — NOT the whole list (see NcAlarmModeDelaysEditSchema). */
21492
21541
  modeDelays: NcAlarmModeDelaysEditListSchema,
21493
21542
  /** ONE membership change; the panel applies it to the list it holds at its turn. */
21494
- nonBlockingEdit: NcAlarmNonBlockingEditSchema
21495
- }).partial().refine((p) => p.nonBlocking === void 0 || p.nonBlockingEdit === void 0, { message: "nonBlocking and nonBlockingEdit are exclusive — send the whole lists or one edit" });
21543
+ nonBlockingEdit: NcAlarmNonBlockingEditSchema,
21544
+ blockingEdit: NcAlarmBlockingEditSchema,
21545
+ secureOnArmEdit: NcAlarmSecureOnArmEditSchema
21546
+ }).partial().refine((p) => p.nonBlocking === void 0 || p.nonBlockingEdit === void 0, { message: "nonBlocking and nonBlockingEdit are exclusive — send the whole lists or one edit" }).refine((p) => p.blocking === void 0 || p.blockingEdit === void 0, { message: "blocking and blockingEdit are exclusive — send the whole lists or one edit" }).refine((p) => p.secureOnArmOff === void 0 || p.secureOnArmEdit === void 0, { message: "secureOnArmOff and secureOnArmEdit are exclusive — send the whole lists or one edit" });
21496
21547
  /**
21497
21548
  * What one arm mode actually arms, DERIVED from the enabled rules gated on it.
21498
21549
  * Never authored, never stored — see `alarm-mode-coverage.ts` for why a stored
@@ -21607,7 +21658,13 @@ var NcAlarmSensorStateSchema = z.object({
21607
21658
  /** Why `unknown`: the read failed, or the slice holds no word its cap defines (a placeholder included). */
21608
21659
  unknownWhy: z.enum(["read-failed", "unknown-word"]).nullable(),
21609
21660
  /** The device manager's liveness as the centre mirrors it; null = not known. */
21610
- online: z.boolean().nullable()
21661
+ online: z.boolean().nullable(),
21662
+ /**
21663
+ * True when the opening is a cover / lock / switch — the table shows the
21664
+ * Secure-on-arm switch and uses the controllable defaults. False for contacts
21665
+ * and for non-openings. Defaulted so an older hub answer still parses.
21666
+ */
21667
+ controllable: z.boolean().default(false)
21611
21668
  });
21612
21669
  var NcAlarmSensorsInputSchema = z.object({ deviceIds: z.array(z.number().int().positive()).max(500) });
21613
21670
  var NcAlarmSensorsSchema = z.object({
@@ -37821,21 +37878,12 @@ setOverlay: method(z.object({
37821
37878
  }
37822
37879
  }] }
37823
37880
  };
37824
- /**
37825
- * `osd-manager` — the ORCHESTRATOR over the device-scope `osd` cap.
37826
- *
37827
- * The `osd` cap is the firmware contract: it probes a camera's overlay
37828
- * SLOTS and writes literal text into one. It has no idea WHERE that text
37829
- * comes from, and it must not — a driver that grew a "show the temperature
37830
- * here" feature would grow it once per vendor.
37831
- *
37832
- * This cap owns the other half: a per-(camera, slot) BINDING that says
37833
- * which value feeds the slot, how it is formatted, and under which
37834
- * conditions it is shown at all. Named TEMPLATES combine many device
37835
- * fields into one overlay string (Scrypted OSD Manager parity).
37836
- */
37837
- /** What `{alias}` expands to for one template binding. Exactly one choice. */
37838
- var OsdTemplateFormatSchema = z.enum([
37881
+ z.enum([
37882
+ "value",
37883
+ "unit",
37884
+ "full"
37885
+ ]);
37886
+ z.enum([
37839
37887
  "value+unit",
37840
37888
  "value",
37841
37889
  "unit"
@@ -37850,29 +37898,30 @@ var OsdTemplatePickSchema = z.object({
37850
37898
  deviceId: z.number().int()
37851
37899
  });
37852
37900
  /**
37853
- * One named binding inside a multi-device template. The parser only
37854
- * sees `{alias}`; format / unit / decimals live here structurally.
37901
+ * One named binding inside a multi-device template: device path + unit
37902
+ * selection + precision. The parser expands `{alias}`, `{alias.value}`,
37903
+ * `{alias.unit}`, or `{alias.full}` from the same binding — there is no
37904
+ * per-binding format lock.
37855
37905
  */
37856
37906
  var OsdTemplateBindingSchema = z.object({
37857
- /** Token in the parser, e.g. `t` → `{t}`. Unique within the template. */
37907
+ /** Token stem in the parser, e.g. `t` → `{t}` / `{t.value}`. Unique within the template. */
37858
37908
  alias: z.string().min(1).max(32).regex(/^[A-Za-z][A-Za-z0-9_-]*$/, "alias must start with a letter"),
37859
37909
  pick: OsdTemplatePickSchema,
37860
37910
  capName: z.string().min(1).max(64),
37861
37911
  valuePath: z.string().min(1).max(64),
37862
- format: OsdTemplateFormatSchema.default("value+unit"),
37863
37912
  /** Convert TO this unit at render (`tryConvertUnit`). Absent = source unit. */
37864
37913
  displayUnit: z.string().max(16).optional(),
37865
37914
  maxDecimals: z.number().int().min(0).max(4).default(1)
37866
37915
  });
37867
37916
  /**
37868
- * A named template: bindings (alias → leaf field) + a parser that only
37869
- * references `{alias}` tokens.
37917
+ * A named template: bindings (alias → leaf field) + a parser that
37918
+ * references `{alias}` / `{alias.value}` / `{alias.unit}` / `{alias.full}`.
37870
37919
  */
37871
37920
  var OsdNamedTemplateSchema = z.object({
37872
37921
  id: z.string().min(1).max(64),
37873
37922
  name: z.string().min(1).max(64),
37874
37923
  bindings: z.array(OsdTemplateBindingSchema).max(32).default([]),
37875
- /** Parser with alias placeholders, e.g. `{t} / {h}`. */
37924
+ /** Parser with alias placeholders, e.g. `{t.value} {t.unit} / {h}`. */
37876
37925
  parser: z.string().max(256).default("")
37877
37926
  });
37878
37927
  /** Where a slot's value comes from. */
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-dflxzOjI.js");
3
+ const require_dist = require("./dist-B8ev8DjI.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");
@@ -29,7 +29,7 @@ require("./builtins/system-config/index.js");
29
29
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
30
30
  const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-ey4mbofz.js");
31
31
  const require_tls$1 = require("./tls-D_wUeOTD.js");
32
- const require_child_cap_dispatch = require("./child-cap-dispatch-CE8FZPwx.js");
32
+ const require_child_cap_dispatch = require("./child-cap-dispatch-XDFcFrSy.js");
33
33
  const require_resource_monitor = require("./resource-monitor-DzNn_IZK.js");
34
34
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
35
35
  let zod = require("zod");
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 asString$1, At as isArrayOutputSchema, C as LOG_LEVEL_RANK, E as METHOD_ACCESS_MAP, Ft as kebabToCamel, Gn as DATAPLANE_SECRET_HEADER$1, H as addonSettingsCapability, Ht as logLevelAtMost, Jn as ReadinessRegistry, Kn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Nt as isObjectInput, Pt as isVoidInput, Qn as asNumber, Qt as objectInputDeclaresRequiredDeviceId, Rt as lifecycleJobSchema, Tt as extractNestedAddonId, Un as errMsg$1, Ut as looseSchema, Yn as ReadinessTimeoutError, Zn as asJsonObject$1, Zt as objectInputDeclaresAddonId, cn as resolveMethodAuth, cr as parseJsonObject, dn as scopesAllowDeviceCap, dr as resolveCapMount, er as createEvent, fr as scopeKey, hr as EventCategory$1, j as RUNTIME_DEFAULTS, jt as isCollectionArrayMethod, lr as parseJsonUnknown, nn as procedureAuthKey, qn as DEVICE_STATUS_METHOD, rr as expandCapMethods, t as ALL_CAPABILITY_DEFINITIONS, tr as emitDownForOwnedCaps, un as scopesAllowAddon, ur as readinessKey } from "./dist-C9uyNQLN.mjs";
2
+ import { $n as asString$1, At as isArrayOutputSchema, C as LOG_LEVEL_RANK, E as METHOD_ACCESS_MAP, Ft as kebabToCamel, Gn as DATAPLANE_SECRET_HEADER$1, H as addonSettingsCapability, Ht as logLevelAtMost, Jn as ReadinessRegistry, Kn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Nt as isObjectInput, Pt as isVoidInput, Qn as asNumber, Qt as objectInputDeclaresRequiredDeviceId, Rt as lifecycleJobSchema, Tt as extractNestedAddonId, Un as errMsg$1, Ut as looseSchema, Yn as ReadinessTimeoutError, Zn as asJsonObject$1, Zt as objectInputDeclaresAddonId, cn as resolveMethodAuth, cr as parseJsonObject, dn as scopesAllowDeviceCap, dr as resolveCapMount, er as createEvent, fr as scopeKey, hr as EventCategory$1, j as RUNTIME_DEFAULTS, jt as isCollectionArrayMethod, lr as parseJsonUnknown, nn as procedureAuthKey, qn as DEVICE_STATUS_METHOD, rr as expandCapMethods, t as ALL_CAPABILITY_DEFINITIONS, tr as emitDownForOwnedCaps, un as scopesAllowAddon, ur as readinessKey } from "./dist-Dbo54UVI.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";
@@ -28,7 +28,7 @@ import "./builtins/system-config/index.mjs";
28
28
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
29
29
  import { _ as ensureModel, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, g as downloadModel, h as downloadFile, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as deleteModelFromDisk, n as STALL_TICK_MS, o as contentTypeFor, p as collectModelFiles, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as fetchJson, x as isModelDownloaded, y as getModelFilePath } from "./event-loop-stall-monitor-EXjzIxDz.mjs";
30
30
  import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-IM-v7JV4.mjs";
31
- import { $ as CapRouteError, $n as CAP_ACTION_UNLABELLED, $t as RUNNER_HEAP_WATCH_INTERVAL_MS, A as resolveHwAccel, An as OUTBOUND_QUEUE_COOLDOWN_MS, At as serializeTypedArrays, B as udsChildLogToWorkerEntry, Bn as SOCKET_QUEUE_TOP_N, Bt as createAddonPeerBytesFacility, C as getBrokerEventBus, Cn as DECISIVE_HEAP_SPACES, Ct as NATIVE_PROVIDER_SERVICE_INFIX, D as subscribePassthrough, Dn as heapSpaceField, Dt as capServiceName, E as setNodeEventInterest, En as formatHeapSpaces, Et as capBareAction, F as ipcParentLink, Fn as MESH_QUEUE_TOP_N, Ft as installManifestNativeDeps, G as UDS_NO_ROUTE_PREFIX, Gn as readSocketQueues, Gt as HEAP_RECLAIM_TRIGGER_MB, H as createUdsLoggerWithControl, Hn as createSocketPlaneReader, Ht as createAddonDataPlaneFacility, I as localProviderLink, In as createMeshQueueReader, It as resolveAddonClass, J as answerClaimedGetStatus, Jn as recordSocketFrame, Jt as HUB_MAIN_HEAP_WATCH_LABEL, K as afterWorkerOnlineAnnounce, Kn as EMPTY_SOCKET_DIRECTION, Kt as HEAP_WATCH_INTERVAL_MS, L as createParentUnownedCallHandler, Ln as formatMeshQueue, Lt as buildNpmChildEnv, M as brokerTransportLink, Mn as OUTBOUND_QUEUE_THRESHOLD_BYTES, Mt as CapabilityHandle, N as buildLinkChain, Nn as createOutboundQueueGate, Nt as CapabilityUnavailableError, O as AddonDepsManager, On as readHeapSpaces, Ot as parseCapAction, P as deviceCapResolverLink, Pn as formatOutboundQueueVerdict, Pt as copyBundledNativeModules, Q as CapRouteResolver, Qn as CAP_ACTION_OVERFLOW_LABEL, Qt as RSS_BUDGET_RELEASE_RATIO, R as createUdsEventBridge, Rn as EMPTY_SOCKET_PLANE_BASELINE, Rt as resolveNpmInvocation, S as clusterEventTopic, Sn as isArrayBufferCensusReport, St as validateProviderRegistrations, T as registerEventBusService, Tn as emitHeapDiagnosticReport, Tt as capActionSuffix, U as LocalChildClient, Un as diffSocketPlane, Ut as HEAP_RECLAIM_MIN_INTERVAL_MS, V as createUdsLogger, Vn as createSocketPlaneMeter, Vt as hostNodeIdOf, W as LocalChildRegistry, Wn as formatSocketPlane, Wt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, X as AGENT_CAP_FWD_ACTION, Xn as socketDirectionBytes, Xt as HUB_RSS_BUDGET_ENV, Y as deviceOfGetStatus, Yn as sampleSocketDirection, Yt as HUB_MAIN_RSS_BUDGET_MB, Z as AGENT_CAP_FWD_SERVICE, Zn as socketDirectionMessages, Zt as RSS_BUDGET_REANNOUNCE_MIN_MS, _ as getWorkerDeviceRegistry, _n as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, a as reapProcessGroup, an as createV8Reclaimer, ar as EVENT_PLANE_TOP_N, at as __resetCapUsageRegistryForTests, b as setHubConnected, bn as createInspectorArrayBufferCensus, c as runnerOwnsProcessGroup, cn as nextRssBudgetState, cr as diffEventPlane, ct as UdsLocalTransportClient, d as summarizeMembers, dn as shouldReclaim, dt as PeerAnsweredError, en as RUNNER_RSS_BUDGET_ENV, er as EMPTY_CAP_ACTION_READING, et as classifyCapRoute, f as installManifestSystemDeps, fn as startHeapWatch, ft as localEndpointPath, g as createUdsAddonContext, gn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, gt as createBrokerDeviceManagerApi, h as createAddonContext, hn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ht as buildNativeCapProxy, in as createLoopDelayMeter, ir as diffCapActionCensus, it as PARENT_ROUTED_PROVIDER_ADDON_ID, j as brokerCallForCap, jn as OUTBOUND_QUEUE_SUSTAIN_MS, jt as DeviceRegistry, k as createKernelHwAccel, kn as selectReportedSpaces, kt as deserializeTypedArrays, l as signalAllRunnerGroups, ln as parseRssBudgetMb, lr as formatEventPlane, lt as UdsLocalTransportServer, m as adaptBrokerToCluster, mn as strandedMb, mt as encodeFrame, nn as buildHeapSample, nr as capActionLabel, nt as readMoleculerFanoutMode, o as registerRunnerGroup, on as describeRss, or as createEventPlaneMeter, ot as getCapUsageRegistry, p as installManifestPythonDeps, pn as startRunnerHeapWatch, pt as FrameDecoder, q as GET_STATUS_METHOD, qn as createSocketDirectionCounters, qt as HEAP_WATCH_WARN_RATIO, r as defaultProcessGroupOps, rn as createDeferredHeapWatchSink, rr as createCapActionCensus, rt as CapUsageRegistry, s as releaseRunnerGroup, sn as hubMainRssBudget, sr as createEventPlaneReader, st as createLocalTransport, t as CAP_METHOD_NOT_IMPLEMENTED, tn as ZERO_LOOP_DELAY, tr as MAX_CAP_ACTIONS_PER_PEER, tt as callWithServiceDiscovery, un as reclaimIntervalMs, ut as SocketChannel, v as getOrInitReadinessRegistry, vn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, w as getMoleculerEventStats, wn as HEAP_SPACE_REPORT_MIN_MB, wt as capActionName, x as EVENT_TOPIC_PREFIX, xn as formatArrayBufferCensus, xt as createAddonService, y as getOrInitReadinessRegistryForClient, yn as createArrayBufferCensusGate, yt as mountNativeCapService, z as createUdsEventBus, zn as SOCKET_PLANE_TOP_N, zt as runNpm } from "./child-cap-dispatch-CFBFivGj.mjs";
31
+ import { $ as CapRouteError, $n as CAP_ACTION_UNLABELLED, $t as RUNNER_HEAP_WATCH_INTERVAL_MS, A as resolveHwAccel, An as OUTBOUND_QUEUE_COOLDOWN_MS, At as serializeTypedArrays, B as udsChildLogToWorkerEntry, Bn as SOCKET_QUEUE_TOP_N, Bt as createAddonPeerBytesFacility, C as getBrokerEventBus, Cn as DECISIVE_HEAP_SPACES, Ct as NATIVE_PROVIDER_SERVICE_INFIX, D as subscribePassthrough, Dn as heapSpaceField, Dt as capServiceName, E as setNodeEventInterest, En as formatHeapSpaces, Et as capBareAction, F as ipcParentLink, Fn as MESH_QUEUE_TOP_N, Ft as installManifestNativeDeps, G as UDS_NO_ROUTE_PREFIX, Gn as readSocketQueues, Gt as HEAP_RECLAIM_TRIGGER_MB, H as createUdsLoggerWithControl, Hn as createSocketPlaneReader, Ht as createAddonDataPlaneFacility, I as localProviderLink, In as createMeshQueueReader, It as resolveAddonClass, J as answerClaimedGetStatus, Jn as recordSocketFrame, Jt as HUB_MAIN_HEAP_WATCH_LABEL, K as afterWorkerOnlineAnnounce, Kn as EMPTY_SOCKET_DIRECTION, Kt as HEAP_WATCH_INTERVAL_MS, L as createParentUnownedCallHandler, Ln as formatMeshQueue, Lt as buildNpmChildEnv, M as brokerTransportLink, Mn as OUTBOUND_QUEUE_THRESHOLD_BYTES, Mt as CapabilityHandle, N as buildLinkChain, Nn as createOutboundQueueGate, Nt as CapabilityUnavailableError, O as AddonDepsManager, On as readHeapSpaces, Ot as parseCapAction, P as deviceCapResolverLink, Pn as formatOutboundQueueVerdict, Pt as copyBundledNativeModules, Q as CapRouteResolver, Qn as CAP_ACTION_OVERFLOW_LABEL, Qt as RSS_BUDGET_RELEASE_RATIO, R as createUdsEventBridge, Rn as EMPTY_SOCKET_PLANE_BASELINE, Rt as resolveNpmInvocation, S as clusterEventTopic, Sn as isArrayBufferCensusReport, St as validateProviderRegistrations, T as registerEventBusService, Tn as emitHeapDiagnosticReport, Tt as capActionSuffix, U as LocalChildClient, Un as diffSocketPlane, Ut as HEAP_RECLAIM_MIN_INTERVAL_MS, V as createUdsLogger, Vn as createSocketPlaneMeter, Vt as hostNodeIdOf, W as LocalChildRegistry, Wn as formatSocketPlane, Wt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, X as AGENT_CAP_FWD_ACTION, Xn as socketDirectionBytes, Xt as HUB_RSS_BUDGET_ENV, Y as deviceOfGetStatus, Yn as sampleSocketDirection, Yt as HUB_MAIN_RSS_BUDGET_MB, Z as AGENT_CAP_FWD_SERVICE, Zn as socketDirectionMessages, Zt as RSS_BUDGET_REANNOUNCE_MIN_MS, _ as getWorkerDeviceRegistry, _n as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, a as reapProcessGroup, an as createV8Reclaimer, ar as EVENT_PLANE_TOP_N, at as __resetCapUsageRegistryForTests, b as setHubConnected, bn as createInspectorArrayBufferCensus, c as runnerOwnsProcessGroup, cn as nextRssBudgetState, cr as diffEventPlane, ct as UdsLocalTransportClient, d as summarizeMembers, dn as shouldReclaim, dt as PeerAnsweredError, en as RUNNER_RSS_BUDGET_ENV, er as EMPTY_CAP_ACTION_READING, et as classifyCapRoute, f as installManifestSystemDeps, fn as startHeapWatch, ft as localEndpointPath, g as createUdsAddonContext, gn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, gt as createBrokerDeviceManagerApi, h as createAddonContext, hn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ht as buildNativeCapProxy, in as createLoopDelayMeter, ir as diffCapActionCensus, it as PARENT_ROUTED_PROVIDER_ADDON_ID, j as brokerCallForCap, jn as OUTBOUND_QUEUE_SUSTAIN_MS, jt as DeviceRegistry, k as createKernelHwAccel, kn as selectReportedSpaces, kt as deserializeTypedArrays, l as signalAllRunnerGroups, ln as parseRssBudgetMb, lr as formatEventPlane, lt as UdsLocalTransportServer, m as adaptBrokerToCluster, mn as strandedMb, mt as encodeFrame, nn as buildHeapSample, nr as capActionLabel, nt as readMoleculerFanoutMode, o as registerRunnerGroup, on as describeRss, or as createEventPlaneMeter, ot as getCapUsageRegistry, p as installManifestPythonDeps, pn as startRunnerHeapWatch, pt as FrameDecoder, q as GET_STATUS_METHOD, qn as createSocketDirectionCounters, qt as HEAP_WATCH_WARN_RATIO, r as defaultProcessGroupOps, rn as createDeferredHeapWatchSink, rr as createCapActionCensus, rt as CapUsageRegistry, s as releaseRunnerGroup, sn as hubMainRssBudget, sr as createEventPlaneReader, st as createLocalTransport, t as CAP_METHOD_NOT_IMPLEMENTED, tn as ZERO_LOOP_DELAY, tr as MAX_CAP_ACTIONS_PER_PEER, tt as callWithServiceDiscovery, un as reclaimIntervalMs, ut as SocketChannel, v as getOrInitReadinessRegistry, vn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, w as getMoleculerEventStats, wn as HEAP_SPACE_REPORT_MIN_MB, wt as capActionName, x as EVENT_TOPIC_PREFIX, xn as formatArrayBufferCensus, xt as createAddonService, y as getOrInitReadinessRegistryForClient, yn as createArrayBufferCensusGate, yt as mountNativeCapService, z as createUdsEventBus, zn as SOCKET_PLANE_TOP_N, zt as runNpm } from "./child-cap-dispatch-BQO5Pi4A.mjs";
32
32
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-B1v6E07R.mjs";
33
33
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
34
34
  import { z } from "zod";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-dflxzOjI.js");
1
+ const require_dist = require("./dist-B8ev8DjI.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 { Zn as asJsonObject } from "./dist-C9uyNQLN.mjs";
1
+ import { Zn as asJsonObject } from "./dist-Dbo54UVI.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.341",
3
+ "version": "1.2.343",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",