@camstack/system 1.2.298 → 1.2.299

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 (55) 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/console-logging/index.js +1 -1
  14. package/dist/builtins/console-logging/index.mjs +1 -1
  15. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  16. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  17. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  18. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  19. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  20. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  21. package/dist/builtins/hub-forwarder/index.js +1 -1
  22. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  23. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  24. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  25. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  26. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  27. package/dist/builtins/local-network/local-network.addon.js +1 -1
  28. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  29. package/dist/builtins/loki-logging/index.js +1 -1
  30. package/dist/builtins/loki-logging/index.mjs +1 -1
  31. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  32. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  33. package/dist/builtins/platform-probe/index.js +1 -1
  34. package/dist/builtins/platform-probe/index.mjs +1 -1
  35. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  36. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  37. package/dist/builtins/snapshot/index.js +1 -1
  38. package/dist/builtins/snapshot/index.mjs +1 -1
  39. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  40. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  41. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  42. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  43. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  45. package/dist/builtins/system-config/system-config.addon.js +1 -1
  46. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  47. package/dist/builtins/winston-logging/index.js +1 -1
  48. package/dist/builtins/winston-logging/index.mjs +1 -1
  49. package/dist/{dist-BoZJWfY7.js → dist-B_U69lgJ.js} +110 -4
  50. package/dist/{dist-pTyVeilm.mjs → dist-BoYDYdae.mjs} +110 -4
  51. package/dist/index.js +1 -1
  52. package/dist/index.mjs +1 -1
  53. package/dist/{retired-settings-keys-DKipTkws.js → retired-settings-keys-CVUkMN5T.js} +1 -1
  54. package/dist/{retired-settings-keys-Brx2hina.mjs → retired-settings-keys-CffDz4qX.mjs} +1 -1
  55. package/package.json +1 -1
@@ -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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, L as addonPagesCapability, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, L as addonPagesCapability, dn as errMsg, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, dn as errMsg, pn as BaseAddon, z as addonWidgetsCapability } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, dn as errMsg, pn as BaseAddon, z as addonWidgetsCapability } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { B as alertsCapability, Bn as EventCategory, En as createEvent, dn as errMsg, n as AlertSchema, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { B as alertsCapability, Bn as EventCategory, En as createEvent, dn as errMsg, n as AlertSchema, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, Mn as isEvent, U as bareAddonId, Ut as ptzAutotrackCapability, dn as errMsg, g as FIRST_LEVEL_MACRO_CLASSES, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, Mn as isEvent, U as bareAddonId, Ut as ptzAutotrackCapability, dn as errMsg, g as FIRST_LEVEL_MACRO_CLASSES, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, H as backupCapability, Nt as mayWriteToLocation, pn as BaseAddon, rn as storageOccupancyCapability } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, H as backupCapability, Nt as mayWriteToLocation, pn as BaseAddon, rn as storageOccupancyCapability } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { An as hydrateSchema, Bn as EventCategory, En as createEvent, It as motionCapability, K as cameraGridLayoutCapability, Q as declarationOwnerNodeId, S as MOTION_CLOSE_AFTER_MS, _n as DeviceFeature, an as streamCatalogCapability, dn as errMsg, en as snapshotCapability, fn as buildFfmpegArgs, i as BaseDevice, m as DeclaredDevices, p as DERIVED_CAMERA_SILENCED_CAP_NAMES, pn as BaseAddon, yn as DeviceType } from "../../dist-pTyVeilm.mjs";
1
+ import { An as hydrateSchema, Bn as EventCategory, En as createEvent, It as motionCapability, K as cameraGridLayoutCapability, Q as declarationOwnerNodeId, S as MOTION_CLOSE_AFTER_MS, _n as DeviceFeature, an as streamCatalogCapability, dn as errMsg, en as snapshotCapability, fn as buildFfmpegArgs, i as BaseDevice, m as DeclaredDevices, p as DERIVED_CAMERA_SILENCED_CAP_NAMES, pn as BaseAddon, yn as DeviceType } from "../../dist-BoYDYdae.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-BoYDYdae.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,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-BoZJWfY7.js");
3
+ const require_dist = require("../../dist-B_U69lgJ.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,4 +1,4 @@
1
- import { J as coreBlockAddonId, X as coreBlocksCapability, Y as coreBlockIdFromAddonId, c as CORE_BLOCKS_ADDON_ID, dn as errMsg, l as CORE_BLOCK_ADDON_PREFIX, m as DeclaredDevices, pn as BaseAddon, u as CoreBlockSchema } from "../../dist-pTyVeilm.mjs";
1
+ import { J as coreBlockAddonId, X as coreBlocksCapability, Y as coreBlockIdFromAddonId, c as CORE_BLOCKS_ADDON_ID, dn as errMsg, l as CORE_BLOCK_ADDON_PREFIX, m as DeclaredDevices, pn as BaseAddon, u as CoreBlockSchema } from "../../dist-BoYDYdae.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import * as fs from "node:fs/promises";
4
4
  import * as path$1 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-BoZJWfY7.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-DKipTkws.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-CVUkMN5T.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
10
10
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -1,5 +1,5 @@
1
- import { $t as siteZoneKey, A as STREAM_PROFILE_META, Bn as EventCategory, Bt as parseStreamParamsFormPatch, G as buildStreamParamsConfigSchema, Jt as runtimeStatePolicyFor, Lt as normalizeUnit, Ot as locationIconKey, Sn as WELL_KNOWN_TAB_MAP, _n as DeviceFeature, d as DAY_NAMES, dn as errMsg, h as DeviceStatusSchema, jn as isDeviceConfigCap, mt as formatMinutes, nt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, ot as enumerateItemArrayFields, pn as BaseAddon, rt as deviceStatusCapability, s as CAP_NAMES_WITH_STATUS, st as enumerateSchemaFields, t as ALL_CAPABILITY_DEFINITIONS, tt as deviceManagerCapability, ut as expandContainer, vn as DeviceRole, wt as legacyAutoLinkIds, x as MINUTES_PER_DAY, y as LocationIconIdSchema, yn as DeviceType, zn as sleep$1 } from "../../dist-pTyVeilm.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-Brx2hina.mjs";
1
+ import { $t as siteZoneKey, A as STREAM_PROFILE_META, Bn as EventCategory, Bt as parseStreamParamsFormPatch, G as buildStreamParamsConfigSchema, Jt as runtimeStatePolicyFor, Lt as normalizeUnit, Ot as locationIconKey, Sn as WELL_KNOWN_TAB_MAP, _n as DeviceFeature, d as DAY_NAMES, dn as errMsg, h as DeviceStatusSchema, jn as isDeviceConfigCap, mt as formatMinutes, nt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, ot as enumerateItemArrayFields, pn as BaseAddon, rt as deviceStatusCapability, s as CAP_NAMES_WITH_STATUS, st as enumerateSchemaFields, t as ALL_CAPABILITY_DEFINITIONS, tt as deviceManagerCapability, ut as expandContainer, vn as DeviceRole, wt as legacyAutoLinkIds, x as MINUTES_PER_DAY, y as LocationIconIdSchema, yn as DeviceType, zn as sleep$1 } from "../../dist-BoYDYdae.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-CffDz4qX.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
5
5
  //#region src/builtins/device-manager/adoption-job-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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, D as SOURCE_CAPS, En as createEvent, O as SOURCE_DEVICE_TYPES, U as bareAddonId, bt as isSameAddonId, ct as evaluateSensorEdge, dn as errMsg, it as doorbellCapability, pn as BaseAddon, xt as isSourceCap, yn as DeviceType } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, D as SOURCE_CAPS, En as createEvent, O as SOURCE_DEVICE_TYPES, U as bareAddonId, bt as isSameAddonId, ct as evaluateSensorEdge, dn as errMsg, it as doorbellCapability, pn as BaseAddon, xt as isSourceCap, yn as DeviceType } from "../../dist-BoYDYdae.mjs";
2
2
  //#region src/builtins/doorbell/trigger-engine.ts
3
3
  /**
4
4
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
3
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, C as RECORDING_SOURCE_CAMSTACK_ADDON, E as RecordingStatusSchema, En as createEvent, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, C as RECORDING_SOURCE_CAMSTACK_ADDON, E as RecordingStatusSchema, En as createEvent, dn as errMsg, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { I as UserRecordSchema, V as authProviderCapability, j as ScopedTokenSchema, pn as BaseAddon, r as ApiKeyRecordSchema, sn as userManagementCapability } from "../../dist-pTyVeilm.mjs";
2
+ import { I as UserRecordSchema, V as authProviderCapability, j as ScopedTokenSchema, pn as BaseAddon, r as ApiKeyRecordSchema, sn as userManagementCapability } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
3
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, Dt as localNetworkCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, Dt as localNetworkCapability, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, En as createEvent, Gt as resolveBucketMs, Pt as metricsProviderCapability, Wt as reducePoints, dn as errMsg, pn as BaseAddon, pt as foldSnapshotByFunction } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, En as createEvent, Gt as resolveBucketMs, Pt as metricsProviderCapability, Wt as reducePoints, dn as errMsg, pn as BaseAddon, pt as foldSnapshotByFunction } from "../../dist-BoYDYdae.mjs";
2
2
  import { access, readFile, readdir } from "node:fs/promises";
3
3
  import * as fs from "node:fs";
4
4
  import { constants, readFileSync } 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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, On as emitReadiness, Vt as platformProbeCapability, Zt as scoreRuntimes, at as enumerateInferenceDevices, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
2
+ import { Bn as EventCategory, On as emitReadiness, Vt as platformProbeCapability, Zt as scoreRuntimes, at as enumerateInferenceDevices, dn as errMsg, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, Nn as nodePin, U as bareAddonId, W as batteryCapability, _n as DeviceFeature, a as BatteryStatusSchema, dn as errMsg, en as snapshotCapability, et as deriveBatteryPresence, on as streamQualityLabel, pn as BaseAddon, yn as DeviceType } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, Nn as nodePin, U as bareAddonId, W as batteryCapability, _n as DeviceFeature, a as BatteryStatusSchema, dn as errMsg, en as snapshotCapability, et as deriveBatteryPresence, on as streamQualityLabel, pn as BaseAddon, yn as DeviceType } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { ft as filesystemBrowseCapability, in as storageProviderCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { ft as filesystemBrowseCapability, in as storageProviderCapability, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { Bn as EventCategory, F as StorageMigrationJobSchema, Ft as modeMayWrite, Kt as resolveLocationMode, M as StorageCleanupJobSchema, Mt as mayReadLocation, N as StorageLocationModeSchema, Nt as mayWriteToLocation, P as StorageLocationTypeSchema, Pn as parseJsonObject, Qt as settingsStoreCapability, Tt as legacyModeOf, ht as gbToBytes, lt as evictionPolicyOfLocation, nn as storageMigrationCapability, pn as BaseAddon, q as collectSecretConfigKeys, tn as storageCapability, un as withLocationMode, v as LegacyStorageLocationDefaultSchema, vt as isLocationEnabled, w as REDACTED_SECRET } from "../../dist-pTyVeilm.mjs";
1
+ import { Bn as EventCategory, F as StorageMigrationJobSchema, Ft as modeMayWrite, Kt as resolveLocationMode, M as StorageCleanupJobSchema, Mt as mayReadLocation, N as StorageLocationModeSchema, Nt as mayWriteToLocation, P as StorageLocationTypeSchema, Pn as parseJsonObject, Qt as settingsStoreCapability, Tt as legacyModeOf, ht as gbToBytes, lt as evictionPolicyOfLocation, nn as storageMigrationCapability, pn as BaseAddon, q as collectSecretConfigKeys, tn as storageCapability, un as withLocationMode, v as LegacyStorageLocationDefaultSchema, vt as isLocationEnabled, w as REDACTED_SECRET } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { An as hydrateSchema, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { An as hydrateSchema, dn as errMsg, pn as BaseAddon } from "../../dist-BoYDYdae.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-BoZJWfY7.js");
6
+ const require_dist = require("../../dist-B_U69lgJ.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 { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-BoYDYdae.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";
@@ -17902,9 +17902,29 @@ var NcTestResultSchema = zod.z.object({
17902
17902
  className: zod.z.string().optional(),
17903
17903
  label: zod.z.string().optional()
17904
17904
  });
17905
- /** The five rule kinds, as data. `NcRuleKind` in `notification/rule-kinds.ts`
17906
- * is the same union; the template-vars spec pins the two together. */
17905
+ /** The rule kinds, as data. `NcRuleKind` in `notification/rule-kinds.ts` is the
17906
+ * same union; the template-vars spec pins the two together. `mixed` is DERIVED
17907
+ * (a stored system rule whose kinds span families, D637) and never authored. */
17907
17908
  var NcRuleKindSchema = zod.z.enum([
17909
+ "detection",
17910
+ "sensor",
17911
+ "occupancy",
17912
+ "sound",
17913
+ "device-events",
17914
+ "system",
17915
+ "alarm",
17916
+ "mixed"
17917
+ ]);
17918
+ /**
17919
+ * The kinds a SERVED template-variable descriptor may name: the five that
17920
+ * existed before D637, frozen. `getTemplateCatalog` ships `kinds` to every
17921
+ * installed viewer, and a viewer at `@camstack/types` 1.2.25x parses them with a
17922
+ * strict five-member enum — one `device-events` in one descriptor fails the
17923
+ * whole catalog parse. So the WIRE says `system`, and the MATCH widens it:
17924
+ * `templateVarKindApplies` reads a `system` descriptor as applying to every
17925
+ * system rule kind (`device-events`, `system`, `alarm`, `mixed`).
17926
+ */
17927
+ var NcTemplateVarKindSchema = zod.z.enum([
17908
17928
  "detection",
17909
17929
  "sensor",
17910
17930
  "occupancy",
@@ -17942,7 +17962,7 @@ var NcTemplateVarGroupSchema = zod.z.enum([
17942
17962
  *
17943
17963
  * `families` / `fields` / `kinds` / `deliveries` / `systemEventKinds` say WHERE
17944
17964
  * it has a value; absent = no restriction on that axis. `systemEventKinds` is
17945
- * read only for a `system` rule. `dynamic` declares a FAMILY of names
17965
+ * read only for a system-event rule (any family, or `mixed`). `dynamic` declares a FAMILY of names
17946
17966
  * (`count_<class>`): the descriptor's `name` is the example member.
17947
17967
  */
17948
17968
  var NcTemplateVarDescriptorSchema = zod.z.object({
@@ -17953,7 +17973,7 @@ var NcTemplateVarDescriptorSchema = zod.z.object({
17953
17973
  group: NcTemplateVarGroupSchema,
17954
17974
  families: zod.z.array(NcTemplateFamilySchema).min(1),
17955
17975
  fields: zod.z.array(NcTemplateFieldSchema).optional(),
17956
- kinds: zod.z.array(NcRuleKindSchema).optional(),
17976
+ kinds: zod.z.array(NcTemplateVarKindSchema).optional(),
17957
17977
  deliveries: zod.z.array(NcDeliverySchema).optional(),
17958
17978
  systemEventKinds: zod.z.array(NcSystemEventKindSchema).optional(),
17959
17979
  dynamic: zod.z.object({
@@ -33740,6 +33760,35 @@ var RenameNodeResultSchema = zod.z.object({
33740
33760
  name: zod.z.string()
33741
33761
  });
33742
33762
  /**
33763
+ * One row of the CHEAP node list (D637): what a node picker needs and nothing
33764
+ * else. Read from the hub's in-memory registry plus the durable node history.
33765
+ * No per-node RPC, unlike `topology`, which walks the whole cluster (32–51 s).
33766
+ */
33767
+ var NodeDirectoryEntrySchema = zod.z.object({
33768
+ id: zod.z.string(),
33769
+ name: zod.z.string(),
33770
+ isHub: zod.z.boolean(),
33771
+ isOnline: zod.z.boolean()
33772
+ });
33773
+ /**
33774
+ * The cheap node list. A consumer's rule for a STORED node id (a rule's
33775
+ * `nodeIds`) that is missing from `nodes`, whatever `complete` says: render it
33776
+ * as a removable chip labelled unknown, never drop it (D49). Even a complete
33777
+ * list omits a node that joined and left between two history captures, so a
33778
+ * missing id means "not known to the hub", never "removed". Only the operator
33779
+ * removes it.
33780
+ *
33781
+ * `complete` changes only the WORDING: `false` = no history read has ever
33782
+ * answered, so the list may be missing offline nodes the hub does know (D315).
33783
+ *
33784
+ * `name` is the history row's name (≤ 30 s behind a rename), or the id when
33785
+ * the history has none.
33786
+ */
33787
+ var NodeDirectorySchema = zod.z.object({
33788
+ nodes: zod.z.array(NodeDirectoryEntrySchema).readonly(),
33789
+ complete: zod.z.boolean()
33790
+ });
33791
+ /**
33743
33792
  * `nodes` is a **hub-centric** cluster-management cap: the hub hosts
33744
33793
  * the single provider and every per-node method (`getNodeAddons`,
33745
33794
  * `restartProcess`, `restartNode`, `undeployAddon`, …) takes `nodeId`
@@ -33758,6 +33807,12 @@ var nodesCapability = {
33758
33807
  nodeIdMode: "data",
33759
33808
  methods: {
33760
33809
  topology: method(zod.z.void(), zod.z.array(TopologyNodeSchema).readonly(), { auth: "admin" }),
33810
+ /**
33811
+ * The cheap node list for pickers (D637): the hub's in-memory registry plus
33812
+ * the durable node history, no per-node RPC. `complete: false` when the
33813
+ * history could not be read.
33814
+ */
33815
+ directory: method(zod.z.void(), NodeDirectorySchema, { auth: "admin" }),
33761
33816
  deployAddon: method(NodeAddonInputSchema, SuccessSchema, {
33762
33817
  kind: "mutation",
33763
33818
  auth: "admin"
@@ -46937,6 +46992,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
46937
46992
  addonId: null,
46938
46993
  access: "create"
46939
46994
  },
46995
+ "nodes.directory": {
46996
+ capName: "nodes",
46997
+ capScope: "system",
46998
+ addonId: null,
46999
+ access: "view"
47000
+ },
46940
47001
  "nodes.executeQuery": {
46941
47002
  capName: "nodes",
46942
47003
  capScope: "system",
@@ -53001,6 +53062,51 @@ var NC_AUDIO_DEFAULTS = {
53001
53062
  samplingSeconds: 10
53002
53063
  };
53003
53064
  new Set(["devices", "classes"]);
53065
+ /** Every filter, for the callers that must cover all four (guards, tests). */
53066
+ var NC_SYSTEM_EVENT_FILTER_KEYS = [
53067
+ "deviceIds",
53068
+ "deviceTypes",
53069
+ "nodeIds",
53070
+ "packageNames"
53071
+ ];
53072
+ new Map(Object.entries({
53073
+ "device-online": "device-events",
53074
+ "device-offline": "device-events",
53075
+ "device-disabled": "device-events",
53076
+ "device-enabled": "device-events",
53077
+ "device-battery-low": "device-events",
53078
+ "device-battery-normal": "device-events",
53079
+ "device-consumable-low": "device-events",
53080
+ "device-consumable-normal": "device-events",
53081
+ "stream-online": "device-events",
53082
+ "stream-offline": "device-events",
53083
+ "detection-blind": "device-events",
53084
+ "node-online": "system",
53085
+ "node-offline": "system",
53086
+ "node-inference-unavailable": "system",
53087
+ "addon-crash-loop": "system",
53088
+ "addon-update-available": "system",
53089
+ "addon-updated": "system",
53090
+ "server-update-available": "system",
53091
+ "server-updated": "system",
53092
+ "wrapper-update-available": "system",
53093
+ "backup-completed": "system",
53094
+ "export-completed": "system",
53095
+ "alarm-triggered": "alarm",
53096
+ "alarm-armed": "alarm",
53097
+ "alarm-disarmed": "alarm",
53098
+ "alarm-arming": "alarm",
53099
+ "alarm-arm-refused": "alarm",
53100
+ "alarm-pending": "alarm",
53101
+ "alarm-rearmed": "alarm",
53102
+ "alarm-sensor-bypass": "alarm",
53103
+ "alarm-check-failed": "alarm",
53104
+ "camera-online": null,
53105
+ "camera-offline": null,
53106
+ "camera-disabled": null,
53107
+ "camera-enabled": null
53108
+ }));
53109
+ [...NC_SYSTEM_EVENT_FILTER_KEYS];
53004
53110
  NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
53005
53111
  var RULE_BODY_ONLY = ["body"];
53006
53112
  var RULE_TEXT = ["title", "body"];
@@ -17902,9 +17902,29 @@ var NcTestResultSchema = z.object({
17902
17902
  className: z.string().optional(),
17903
17903
  label: z.string().optional()
17904
17904
  });
17905
- /** The five rule kinds, as data. `NcRuleKind` in `notification/rule-kinds.ts`
17906
- * is the same union; the template-vars spec pins the two together. */
17905
+ /** The rule kinds, as data. `NcRuleKind` in `notification/rule-kinds.ts` is the
17906
+ * same union; the template-vars spec pins the two together. `mixed` is DERIVED
17907
+ * (a stored system rule whose kinds span families, D637) and never authored. */
17907
17908
  var NcRuleKindSchema = z.enum([
17909
+ "detection",
17910
+ "sensor",
17911
+ "occupancy",
17912
+ "sound",
17913
+ "device-events",
17914
+ "system",
17915
+ "alarm",
17916
+ "mixed"
17917
+ ]);
17918
+ /**
17919
+ * The kinds a SERVED template-variable descriptor may name: the five that
17920
+ * existed before D637, frozen. `getTemplateCatalog` ships `kinds` to every
17921
+ * installed viewer, and a viewer at `@camstack/types` 1.2.25x parses them with a
17922
+ * strict five-member enum — one `device-events` in one descriptor fails the
17923
+ * whole catalog parse. So the WIRE says `system`, and the MATCH widens it:
17924
+ * `templateVarKindApplies` reads a `system` descriptor as applying to every
17925
+ * system rule kind (`device-events`, `system`, `alarm`, `mixed`).
17926
+ */
17927
+ var NcTemplateVarKindSchema = z.enum([
17908
17928
  "detection",
17909
17929
  "sensor",
17910
17930
  "occupancy",
@@ -17942,7 +17962,7 @@ var NcTemplateVarGroupSchema = z.enum([
17942
17962
  *
17943
17963
  * `families` / `fields` / `kinds` / `deliveries` / `systemEventKinds` say WHERE
17944
17964
  * it has a value; absent = no restriction on that axis. `systemEventKinds` is
17945
- * read only for a `system` rule. `dynamic` declares a FAMILY of names
17965
+ * read only for a system-event rule (any family, or `mixed`). `dynamic` declares a FAMILY of names
17946
17966
  * (`count_<class>`): the descriptor's `name` is the example member.
17947
17967
  */
17948
17968
  var NcTemplateVarDescriptorSchema = z.object({
@@ -17953,7 +17973,7 @@ var NcTemplateVarDescriptorSchema = z.object({
17953
17973
  group: NcTemplateVarGroupSchema,
17954
17974
  families: z.array(NcTemplateFamilySchema).min(1),
17955
17975
  fields: z.array(NcTemplateFieldSchema).optional(),
17956
- kinds: z.array(NcRuleKindSchema).optional(),
17976
+ kinds: z.array(NcTemplateVarKindSchema).optional(),
17957
17977
  deliveries: z.array(NcDeliverySchema).optional(),
17958
17978
  systemEventKinds: z.array(NcSystemEventKindSchema).optional(),
17959
17979
  dynamic: z.object({
@@ -33740,6 +33760,35 @@ var RenameNodeResultSchema = z.object({
33740
33760
  name: z.string()
33741
33761
  });
33742
33762
  /**
33763
+ * One row of the CHEAP node list (D637): what a node picker needs and nothing
33764
+ * else. Read from the hub's in-memory registry plus the durable node history.
33765
+ * No per-node RPC, unlike `topology`, which walks the whole cluster (32–51 s).
33766
+ */
33767
+ var NodeDirectoryEntrySchema = z.object({
33768
+ id: z.string(),
33769
+ name: z.string(),
33770
+ isHub: z.boolean(),
33771
+ isOnline: z.boolean()
33772
+ });
33773
+ /**
33774
+ * The cheap node list. A consumer's rule for a STORED node id (a rule's
33775
+ * `nodeIds`) that is missing from `nodes`, whatever `complete` says: render it
33776
+ * as a removable chip labelled unknown, never drop it (D49). Even a complete
33777
+ * list omits a node that joined and left between two history captures, so a
33778
+ * missing id means "not known to the hub", never "removed". Only the operator
33779
+ * removes it.
33780
+ *
33781
+ * `complete` changes only the WORDING: `false` = no history read has ever
33782
+ * answered, so the list may be missing offline nodes the hub does know (D315).
33783
+ *
33784
+ * `name` is the history row's name (≤ 30 s behind a rename), or the id when
33785
+ * the history has none.
33786
+ */
33787
+ var NodeDirectorySchema = z.object({
33788
+ nodes: z.array(NodeDirectoryEntrySchema).readonly(),
33789
+ complete: z.boolean()
33790
+ });
33791
+ /**
33743
33792
  * `nodes` is a **hub-centric** cluster-management cap: the hub hosts
33744
33793
  * the single provider and every per-node method (`getNodeAddons`,
33745
33794
  * `restartProcess`, `restartNode`, `undeployAddon`, …) takes `nodeId`
@@ -33758,6 +33807,12 @@ var nodesCapability = {
33758
33807
  nodeIdMode: "data",
33759
33808
  methods: {
33760
33809
  topology: method(z.void(), z.array(TopologyNodeSchema).readonly(), { auth: "admin" }),
33810
+ /**
33811
+ * The cheap node list for pickers (D637): the hub's in-memory registry plus
33812
+ * the durable node history, no per-node RPC. `complete: false` when the
33813
+ * history could not be read.
33814
+ */
33815
+ directory: method(z.void(), NodeDirectorySchema, { auth: "admin" }),
33761
33816
  deployAddon: method(NodeAddonInputSchema, SuccessSchema, {
33762
33817
  kind: "mutation",
33763
33818
  auth: "admin"
@@ -46937,6 +46992,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
46937
46992
  addonId: null,
46938
46993
  access: "create"
46939
46994
  },
46995
+ "nodes.directory": {
46996
+ capName: "nodes",
46997
+ capScope: "system",
46998
+ addonId: null,
46999
+ access: "view"
47000
+ },
46940
47001
  "nodes.executeQuery": {
46941
47002
  capName: "nodes",
46942
47003
  capScope: "system",
@@ -53001,6 +53062,51 @@ var NC_AUDIO_DEFAULTS = {
53001
53062
  samplingSeconds: 10
53002
53063
  };
53003
53064
  new Set(["devices", "classes"]);
53065
+ /** Every filter, for the callers that must cover all four (guards, tests). */
53066
+ var NC_SYSTEM_EVENT_FILTER_KEYS = [
53067
+ "deviceIds",
53068
+ "deviceTypes",
53069
+ "nodeIds",
53070
+ "packageNames"
53071
+ ];
53072
+ new Map(Object.entries({
53073
+ "device-online": "device-events",
53074
+ "device-offline": "device-events",
53075
+ "device-disabled": "device-events",
53076
+ "device-enabled": "device-events",
53077
+ "device-battery-low": "device-events",
53078
+ "device-battery-normal": "device-events",
53079
+ "device-consumable-low": "device-events",
53080
+ "device-consumable-normal": "device-events",
53081
+ "stream-online": "device-events",
53082
+ "stream-offline": "device-events",
53083
+ "detection-blind": "device-events",
53084
+ "node-online": "system",
53085
+ "node-offline": "system",
53086
+ "node-inference-unavailable": "system",
53087
+ "addon-crash-loop": "system",
53088
+ "addon-update-available": "system",
53089
+ "addon-updated": "system",
53090
+ "server-update-available": "system",
53091
+ "server-updated": "system",
53092
+ "wrapper-update-available": "system",
53093
+ "backup-completed": "system",
53094
+ "export-completed": "system",
53095
+ "alarm-triggered": "alarm",
53096
+ "alarm-armed": "alarm",
53097
+ "alarm-disarmed": "alarm",
53098
+ "alarm-arming": "alarm",
53099
+ "alarm-arm-refused": "alarm",
53100
+ "alarm-pending": "alarm",
53101
+ "alarm-rearmed": "alarm",
53102
+ "alarm-sensor-bypass": "alarm",
53103
+ "alarm-check-failed": "alarm",
53104
+ "camera-online": null,
53105
+ "camera-offline": null,
53106
+ "camera-disabled": null,
53107
+ "camera-enabled": null
53108
+ }));
53109
+ [...NC_SYSTEM_EVENT_FILTER_KEYS];
53004
53110
  NC_AUDIO_DEFAULTS.hitPercent, NC_AUDIO_DEFAULTS.samplingSeconds;
53005
53111
  var RULE_BODY_ONLY = ["body"];
53006
53112
  var RULE_TEXT = ["title", "body"];
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-BoZJWfY7.js");
3
+ const require_dist = require("./dist-B_U69lgJ.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_formatter = require("./formatter-DqAKDlvN.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 { At as logLevelAtMost, Bn as EventCategory$1, Cn as asJsonObject$1, Ct as kebabToCamel, Dn as emitDownForOwnedCaps, En as createEvent, Et as lifecycleJobSchema, Fn as parseJsonUnknown, Ht as procedureAuthKey, In as readinessKey, Ln as resolveCapMount, Pn as parseJsonObject, R as addonSettingsCapability, Rn as scopeKey, Rt as objectInputDeclaresAddonId, St as isVoidInput, T as RUNTIME_DEFAULTS, Tn as asString$1, Xt as scopesAllowDeviceCap, Yt as scopesAllowAddon, _ as LOG_LEVEL_RANK, _t as isCollectionArrayMethod, b as METHOD_ACCESS_MAP, bn as ReadinessRegistry, dn as errMsg$1, dt as extractNestedAddonId, gn as DEVICE_STATUS_METHOD, gt as isArrayOutputSchema, hn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, jt as looseSchema, kn as expandCapMethods, mn as DATAPLANE_SECRET_HEADER$1, qt as resolveMethodAuth, t as ALL_CAPABILITY_DEFINITIONS, wn as asNumber, xn as ReadinessTimeoutError, yt as isObjectInput, zt as objectInputDeclaresRequiredDeviceId } from "./dist-pTyVeilm.mjs";
2
+ import { At as logLevelAtMost, Bn as EventCategory$1, Cn as asJsonObject$1, Ct as kebabToCamel, Dn as emitDownForOwnedCaps, En as createEvent, Et as lifecycleJobSchema, Fn as parseJsonUnknown, Ht as procedureAuthKey, In as readinessKey, Ln as resolveCapMount, Pn as parseJsonObject, R as addonSettingsCapability, Rn as scopeKey, Rt as objectInputDeclaresAddonId, St as isVoidInput, T as RUNTIME_DEFAULTS, Tn as asString$1, Xt as scopesAllowDeviceCap, Yt as scopesAllowAddon, _ as LOG_LEVEL_RANK, _t as isCollectionArrayMethod, b as METHOD_ACCESS_MAP, bn as ReadinessRegistry, dn as errMsg$1, dt as extractNestedAddonId, gn as DEVICE_STATUS_METHOD, gt as isArrayOutputSchema, hn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, jt as looseSchema, kn as expandCapMethods, mn as DATAPLANE_SECRET_HEADER$1, qt as resolveMethodAuth, t as ALL_CAPABILITY_DEFINITIONS, wn as asNumber, xn as ReadinessTimeoutError, yt as isObjectInput, zt as objectInputDeclaresRequiredDeviceId } from "./dist-BoYDYdae.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-BoZJWfY7.js");
1
+ const require_dist = require("./dist-B_U69lgJ.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 { Cn as asJsonObject } from "./dist-pTyVeilm.mjs";
1
+ import { Cn as asJsonObject } from "./dist-BoYDYdae.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.298",
3
+ "version": "1.2.299",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",