@camstack/system 1.2.207 → 1.2.209

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 (51) 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/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  8. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  9. package/dist/builtins/console-logging/index.js +1 -1
  10. package/dist/builtins/console-logging/index.mjs +1 -1
  11. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  12. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  13. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  14. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  15. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  16. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  17. package/dist/builtins/hub-forwarder/index.js +1 -1
  18. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  19. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  20. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  21. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  22. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  23. package/dist/builtins/local-network/local-network.addon.js +1 -1
  24. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  25. package/dist/builtins/loki-logging/index.js +1 -1
  26. package/dist/builtins/loki-logging/index.mjs +1 -1
  27. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  28. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  29. package/dist/builtins/platform-probe/index.js +1 -1
  30. package/dist/builtins/platform-probe/index.mjs +1 -1
  31. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  32. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  33. package/dist/builtins/snapshot/index.js +1 -1
  34. package/dist/builtins/snapshot/index.mjs +1 -1
  35. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  36. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  37. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  38. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  39. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +2 -2
  40. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +2 -2
  41. package/dist/builtins/system-config/system-config.addon.js +1 -1
  42. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  43. package/dist/builtins/winston-logging/index.js +1 -1
  44. package/dist/builtins/winston-logging/index.mjs +1 -1
  45. package/dist/{dist-BTJq0ddi.mjs → dist-CLFBZQH6.mjs} +72 -0
  46. package/dist/{dist-CEUwB91M.js → dist-CNxDnJwz.js} +72 -0
  47. package/dist/index.js +1 -1
  48. package/dist/index.mjs +1 -1
  49. package/dist/{retired-settings-keys-BZZPFp77.mjs → retired-settings-keys-BQydEL_M.mjs} +1 -1
  50. package/dist/{retired-settings-keys-DtPZcaQ_.js → retired-settings-keys-D9wnrXOC.js} +1 -1
  51. 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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, bn as EventCategory, k as addonPagesCapability, qt as errMsg } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, k as addonPagesCapability, qt as errMsg } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, bn as EventCategory, j as addonWidgetsCapability, qt as errMsg } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, j as addonWidgetsCapability, qt as errMsg } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, M as alertsCapability, bn as EventCategory, n as AlertSchema, qt as errMsg, sn as createEvent } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, M as alertsCapability, bn as EventCategory, n as AlertSchema, qt as errMsg, sn as createEvent } from "../../dist-CLFBZQH6.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
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Bt as storageOccupancyCapability, Jt as BaseAddon, P as backupCapability, bn as EventCategory, yt as mayWriteToLocation } from "../../dist-BTJq0ddi.mjs";
1
+ import { Bt as storageOccupancyCapability, Jt as BaseAddon, P as backupCapability, bn as EventCategory, yt as mayWriteToLocation } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
3
+ const require_dist = require("../../dist-CNxDnJwz.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 { B as coreBlockIdFromAddonId, Jt as BaseAddon, V as coreBlocksCapability, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, qt as errMsg, s as CORE_BLOCKS_ADDON_ID, z as coreBlockAddonId } from "../../dist-BTJq0ddi.mjs";
1
+ import { B as coreBlockIdFromAddonId, Jt as BaseAddon, V as coreBlocksCapability, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, qt as errMsg, s as CORE_BLOCKS_ADDON_ID, z as coreBlockAddonId } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-DtPZcaQ_.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-D9wnrXOC.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 DeviceRole, G as deviceManagerCapability, Jt as BaseAddon, K as deviceStateCapability, L as buildStreamParamsConfigSchema, Mt as runtimeStatePolicyFor, Qt as DeviceFeature, S as STREAM_PROFILE_META, St as normalizeUnit, X as enumerateItemArrayFields, Z as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bn as EventCategory, en as DeviceType, f as DeviceStatusSchema, fn as isDeviceConfigCap, kt as resolveContainerPrimaryChild, o as CAP_NAMES_WITH_STATUS, q as deviceStatusCapability, qt as errMsg, rn as WELL_KNOWN_TAB_MAP, t as ALL_CAPABILITY_DEFINITIONS, wt as parseStreamParamsFormPatch, yn as sleep } from "../../dist-BTJq0ddi.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BZZPFp77.mjs";
1
+ import { $t as DeviceRole, G as deviceManagerCapability, Jt as BaseAddon, K as deviceStateCapability, L as buildStreamParamsConfigSchema, Mt as runtimeStatePolicyFor, Qt as DeviceFeature, S as STREAM_PROFILE_META, St as normalizeUnit, X as enumerateItemArrayFields, Z as enumerateSchemaFields, a as CAMERA_SWITCH_ORDER, bn as EventCategory, en as DeviceType, f as DeviceStatusSchema, fn as isDeviceConfigCap, kt as resolveContainerPrimaryChild, o as CAP_NAMES_WITH_STATUS, q as deviceStatusCapability, qt as errMsg, rn as WELL_KNOWN_TAB_MAP, t as ALL_CAPABILITY_DEFINITIONS, wt as parseStreamParamsFormPatch, yn as sleep } from "../../dist-CLFBZQH6.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BQydEL_M.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { F as bareAddonId, J as doorbellCapability, Jt as BaseAddon, Q as evaluateSensorEdge, b as SOURCE_DEVICE_TYPES, bn as EventCategory, ct as isSameAddonId, en as DeviceType, lt as isSourceCap, qt as errMsg, sn as createEvent, y as SOURCE_CAPS } from "../../dist-BTJq0ddi.mjs";
1
+ import { F as bareAddonId, J as doorbellCapability, Jt as BaseAddon, Q as evaluateSensorEdge, b as SOURCE_DEVICE_TYPES, bn as EventCategory, ct as isSameAddonId, en as DeviceType, lt as isSourceCap, qt as errMsg, sn as createEvent, y as SOURCE_CAPS } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
3
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, bn as EventCategory, qt as errMsg, sn as createEvent, v as RecordingStatusSchema } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, qt as errMsg, sn as createEvent, v as RecordingStatusSchema } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { C as ScopedTokenSchema, Jt as BaseAddon, N as authProviderCapability, O as UserRecordSchema, Ut as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-BTJq0ddi.mjs";
2
+ import { C as ScopedTokenSchema, Jt as BaseAddon, N as authProviderCapability, O as UserRecordSchema, Ut as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
3
+ const require_dist = require("../../dist-CNxDnJwz.js");
4
4
  const require_tls = require("../../tls-BxQlomxd.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 { Jt as BaseAddon, bn as EventCategory, mt as localNetworkCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory, mt as localNetworkCapability } from "../../dist-CLFBZQH6.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-DOTmtLCW.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_child_process = require("node:child_process");
9
9
  let node_util = require("node:util");
@@ -1,4 +1,4 @@
1
- import { Dt as reducePoints, Jt as BaseAddon, Ot as resolveBucketMs, bn as EventCategory, bt as metricsProviderCapability, nt as foldSnapshotByFunction, qt as errMsg, sn as createEvent } from "../../dist-BTJq0ddi.mjs";
1
+ import { Dt as reducePoints, Jt as BaseAddon, Ot as resolveBucketMs, bn as EventCategory, bt as metricsProviderCapability, nt as foldSnapshotByFunction, qt as errMsg, sn as createEvent } from "../../dist-CLFBZQH6.mjs";
2
2
  import { readFile, readdir } from "node:fs/promises";
3
3
  import { execFile, execFileSync } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  let node_util = require("node:util");
9
9
  let node_fs = require("node:fs");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Ft as scoreRuntimes, Jt as BaseAddon, Tt as platformProbeCapability, Y as enumerateInferenceDevices, bn as EventCategory, ln as emitReadiness, qt as errMsg } from "../../dist-BTJq0ddi.mjs";
2
+ import { Ft as scoreRuntimes, Jt as BaseAddon, Tt as platformProbeCapability, Y as enumerateInferenceDevices, bn as EventCategory, ln as emitReadiness, qt as errMsg } from "../../dist-CLFBZQH6.mjs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
5
5
  import * as fs from "node:fs";
@@ -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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, bn as EventCategory } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, bn as EventCategory } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.js");
7
7
  let zod = require("zod");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,4 +1,4 @@
1
- import { F as bareAddonId, Ht as streamQualityLabel, I as batteryCapability, Jt as BaseAddon, Lt as snapshotCapability, Qt as DeviceFeature, W as deriveBatteryPresence, bn as EventCategory, en as DeviceType, i as BatteryStatusSchema, pn as nodePin, qt as errMsg } from "../../dist-BTJq0ddi.mjs";
1
+ import { F as bareAddonId, Ht as streamQualityLabel, I as batteryCapability, Jt as BaseAddon, Lt as snapshotCapability, Qt as DeviceFeature, W as deriveBatteryPresence, bn as EventCategory, en as DeviceType, i as BatteryStatusSchema, pn as nodePin, qt as errMsg } from "../../dist-CLFBZQH6.mjs";
2
2
  import { z } from "zod";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { signExpiringUrl, verifyExpiringUrl } from "@camstack/types/node";
@@ -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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, Vt as storageProviderCapability, tt as filesystemBrowseCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, Vt as storageProviderCapability, tt as filesystemBrowseCapability } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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");
@@ -3292,7 +3292,7 @@ var StorageOrchestratorAddon = class extends require_dist.BaseAddon {
3292
3292
  return Promise.all(rows.map(async (loc) => ({
3293
3293
  ...this.redacted(loc),
3294
3294
  ...this.occupancy.ownedFor(loc.id) !== void 0 ? { owned: this.occupancy.ownedFor(loc.id) } : {},
3295
- capacity: require_dist.isLocationEnabled(loc) ? await this.localCapacityOf(loc) : null
3295
+ capacity: require_dist.mayReadLocation(loc) ? await this.localCapacityOf(loc) : null
3296
3296
  })));
3297
3297
  },
3298
3298
  listLocationDeclarations: async () => service.listDeclarations(),
@@ -1,4 +1,4 @@
1
- import { $ as evictionPolicyOfLocation, At as resolveLocationMode, D as StorageMigrationJobSchema, E as StorageLocationTypeSchema, It as settingsStoreCapability, Jt as BaseAddon, Kt as withLocationMode, R as collectSecretConfigKeys, Rt as storageCapability, T as StorageLocationModeSchema, bn as EventCategory, ft as legacyModeOf, g as REDACTED_SECRET, m as LegacyStorageLocationDefaultSchema, mn as parseJsonObject, ot as isLocationEnabled, rt as gbToBytes, vt as mayReadLocation, w as StorageCleanupJobSchema, xt as modeMayWrite, yt as mayWriteToLocation, zt as storageMigrationCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { $ as evictionPolicyOfLocation, At as resolveLocationMode, D as StorageMigrationJobSchema, E as StorageLocationTypeSchema, It as settingsStoreCapability, Jt as BaseAddon, Kt as withLocationMode, R as collectSecretConfigKeys, Rt as storageCapability, T as StorageLocationModeSchema, bn as EventCategory, ft as legacyModeOf, g as REDACTED_SECRET, m as LegacyStorageLocationDefaultSchema, mn as parseJsonObject, ot as isLocationEnabled, rt as gbToBytes, vt as mayReadLocation, w as StorageCleanupJobSchema, xt as modeMayWrite, yt as mayWriteToLocation, zt as storageMigrationCapability } from "../../dist-CLFBZQH6.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";
@@ -3287,7 +3287,7 @@ var StorageOrchestratorAddon = class extends BaseAddon {
3287
3287
  return Promise.all(rows.map(async (loc) => ({
3288
3288
  ...this.redacted(loc),
3289
3289
  ...this.occupancy.ownedFor(loc.id) !== void 0 ? { owned: this.occupancy.ownedFor(loc.id) } : {},
3290
- capacity: isLocationEnabled(loc) ? await this.localCapacityOf(loc) : null
3290
+ capacity: mayReadLocation(loc) ? await this.localCapacityOf(loc) : null
3291
3291
  })));
3292
3292
  },
3293
3293
  listLocationDeclarations: async () => service.listDeclarations(),
@@ -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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, dn as hydrateSchema, qt as errMsg } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, dn as hydrateSchema, qt as errMsg } from "../../dist-CLFBZQH6.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-CEUwB91M.js");
6
+ const require_dist = require("../../dist-CNxDnJwz.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 { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-BTJq0ddi.mjs";
1
+ import { Jt as BaseAddon, ht as logDestinationCapability } from "../../dist-CLFBZQH6.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";
@@ -26326,6 +26326,59 @@ var IdentitySampleInfoSchema = z.object({
26326
26326
  deviceId: z.number().int().optional(),
26327
26327
  base64: z.string().optional()
26328
26328
  });
26329
+ /**
26330
+ * One enrolled sample, judged against the gallery it lives in.
26331
+ *
26332
+ * The gallery is the one input to recognition nobody re-reads: a sample
26333
+ * enrolled from the wrong face keeps voting forever, and because the matches it
26334
+ * pulls then look confident, nobody goes back. The 2026-09-08 audit found
26335
+ * exactly one such pair on this cluster — a sample scoring 0.61 against three
26336
+ * samples of ANOTHER person, enrolled from the same camera in the same minute,
26337
+ * where every other cross-identity pair sits under 0.50.
26338
+ */
26339
+ var IdentitySampleAuditRowSchema = z.object({
26340
+ sampleId: z.string(),
26341
+ enrolledAt: z.number().int(),
26342
+ deviceId: z.number().int().optional(),
26343
+ source: z.enum(["detected", "photo"]),
26344
+ /** The enrolled crop's media key, so the panel can show the evidence. */
26345
+ mediaKey: z.string().optional(),
26346
+ /**
26347
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
26348
+ * across feature spaces is a well-formed float with no meaning. Every number
26349
+ * below then says nothing — it must read as "cannot say", never as an
26350
+ * accusation and never as a clean bill: this list ends in a Remove button.
26351
+ */
26352
+ comparable: z.boolean(),
26353
+ /** Mean cosine against this person's other samples. Null when there are none
26354
+ * to compare with — never 0, which would read as "opposite". */
26355
+ selfMean: z.number().nullable(),
26356
+ /** The other person this sample looks most like, when it looks like one.
26357
+ * This is the half that convicts: not looking like yourself can be a hard
26358
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
26359
+ bestForeign: z.object({
26360
+ identityId: z.string(),
26361
+ name: z.string(),
26362
+ score: z.number()
26363
+ }).optional(),
26364
+ /** 0 = nothing to say. Higher = look at this one sooner. */
26365
+ suspicion: z.number()
26366
+ });
26367
+ var IdentitySampleAuditSchema = z.object({
26368
+ identityId: z.string(),
26369
+ name: z.string(),
26370
+ /** The cluster face model every comparison was made in. */
26371
+ modelId: z.string(),
26372
+ totalSamples: z.number().int(),
26373
+ comparableSamples: z.number().int(),
26374
+ flagged: z.number().int(),
26375
+ /** The bar `flagged` counts against, so the panel states the RULE and not
26376
+ * only its current result. */
26377
+ flagThreshold: z.number(),
26378
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
26379
+ * operator asked to see the gallery, not only its accusations. */
26380
+ rows: z.array(IdentitySampleAuditRowSchema).readonly()
26381
+ });
26329
26382
  var FaceInfoSchema = z.object({
26330
26383
  faceId: z.string(),
26331
26384
  deviceId: z.number().int(),
@@ -26487,6 +26540,19 @@ includeCrops: z.boolean().optional() }).optional(), z.array(IdentitySchema).read
26487
26540
  auth: "admin"
26488
26541
  }),
26489
26542
  listIdentitySamples: method(z.object({ identityId: z.string() }), z.array(IdentitySampleInfoSchema).readonly()),
26543
+ /**
26544
+ * Re-analyse ONE person's enrolled samples against the whole gallery.
26545
+ *
26546
+ * A pure read — no write, no inference, just dot products over vectors the
26547
+ * hub already holds (327 of them on this cluster). `admin` for the same
26548
+ * reason `listIdentitySamples` is: the answer names every enrolled person
26549
+ * and how well one person's samples match them, which is the gallery's
26550
+ * shape and not a viewer-level fact.
26551
+ *
26552
+ * Removal deliberately stays `removeSample`: an analysis that could also
26553
+ * delete would be one confirmation away from emptying a gallery.
26554
+ */
26555
+ auditIdentitySamples: method(z.object({ identityId: z.string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }),
26490
26556
  removeSample: method(z.object({
26491
26557
  identityId: z.string(),
26492
26558
  sampleId: z.string()
@@ -37576,6 +37642,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
37576
37642
  addonId: null,
37577
37643
  access: "create"
37578
37644
  },
37645
+ "faceGallery.auditIdentitySamples": {
37646
+ capName: "face-gallery",
37647
+ capScope: "system",
37648
+ addonId: null,
37649
+ access: "view"
37650
+ },
37579
37651
  "faceGallery.createIdentity": {
37580
37652
  capName: "face-gallery",
37581
37653
  capScope: "system",
@@ -26326,6 +26326,59 @@ var IdentitySampleInfoSchema = zod.z.object({
26326
26326
  deviceId: zod.z.number().int().optional(),
26327
26327
  base64: zod.z.string().optional()
26328
26328
  });
26329
+ /**
26330
+ * One enrolled sample, judged against the gallery it lives in.
26331
+ *
26332
+ * The gallery is the one input to recognition nobody re-reads: a sample
26333
+ * enrolled from the wrong face keeps voting forever, and because the matches it
26334
+ * pulls then look confident, nobody goes back. The 2026-09-08 audit found
26335
+ * exactly one such pair on this cluster — a sample scoring 0.61 against three
26336
+ * samples of ANOTHER person, enrolled from the same camera in the same minute,
26337
+ * where every other cross-identity pair sits under 0.50.
26338
+ */
26339
+ var IdentitySampleAuditRowSchema = zod.z.object({
26340
+ sampleId: zod.z.string(),
26341
+ enrolledAt: zod.z.number().int(),
26342
+ deviceId: zod.z.number().int().optional(),
26343
+ source: zod.z.enum(["detected", "photo"]),
26344
+ /** The enrolled crop's media key, so the panel can show the evidence. */
26345
+ mediaKey: zod.z.string().optional(),
26346
+ /**
26347
+ * False = the sample is stamped with a DIFFERENT face model, and a cosine
26348
+ * across feature spaces is a well-formed float with no meaning. Every number
26349
+ * below then says nothing — it must read as "cannot say", never as an
26350
+ * accusation and never as a clean bill: this list ends in a Remove button.
26351
+ */
26352
+ comparable: zod.z.boolean(),
26353
+ /** Mean cosine against this person's other samples. Null when there are none
26354
+ * to compare with — never 0, which would read as "opposite". */
26355
+ selfMean: zod.z.number().nullable(),
26356
+ /** The other person this sample looks most like, when it looks like one.
26357
+ * This is the half that convicts: not looking like yourself can be a hard
26358
+ * angle; looking like someone the gallery can NAME is a mis-enrolment. */
26359
+ bestForeign: zod.z.object({
26360
+ identityId: zod.z.string(),
26361
+ name: zod.z.string(),
26362
+ score: zod.z.number()
26363
+ }).optional(),
26364
+ /** 0 = nothing to say. Higher = look at this one sooner. */
26365
+ suspicion: zod.z.number()
26366
+ });
26367
+ var IdentitySampleAuditSchema = zod.z.object({
26368
+ identityId: zod.z.string(),
26369
+ name: zod.z.string(),
26370
+ /** The cluster face model every comparison was made in. */
26371
+ modelId: zod.z.string(),
26372
+ totalSamples: zod.z.number().int(),
26373
+ comparableSamples: zod.z.number().int(),
26374
+ flagged: zod.z.number().int(),
26375
+ /** The bar `flagged` counts against, so the panel states the RULE and not
26376
+ * only its current result. */
26377
+ flagThreshold: zod.z.number(),
26378
+ /** Worst first. A row with nothing to say still appears, at the bottom: the
26379
+ * operator asked to see the gallery, not only its accusations. */
26380
+ rows: zod.z.array(IdentitySampleAuditRowSchema).readonly()
26381
+ });
26329
26382
  var FaceInfoSchema = zod.z.object({
26330
26383
  faceId: zod.z.string(),
26331
26384
  deviceId: zod.z.number().int(),
@@ -26487,6 +26540,19 @@ includeCrops: zod.z.boolean().optional() }).optional(), zod.z.array(IdentitySche
26487
26540
  auth: "admin"
26488
26541
  }),
26489
26542
  listIdentitySamples: method(zod.z.object({ identityId: zod.z.string() }), zod.z.array(IdentitySampleInfoSchema).readonly()),
26543
+ /**
26544
+ * Re-analyse ONE person's enrolled samples against the whole gallery.
26545
+ *
26546
+ * A pure read — no write, no inference, just dot products over vectors the
26547
+ * hub already holds (327 of them on this cluster). `admin` for the same
26548
+ * reason `listIdentitySamples` is: the answer names every enrolled person
26549
+ * and how well one person's samples match them, which is the gallery's
26550
+ * shape and not a viewer-level fact.
26551
+ *
26552
+ * Removal deliberately stays `removeSample`: an analysis that could also
26553
+ * delete would be one confirmation away from emptying a gallery.
26554
+ */
26555
+ auditIdentitySamples: method(zod.z.object({ identityId: zod.z.string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }),
26490
26556
  removeSample: method(zod.z.object({
26491
26557
  identityId: zod.z.string(),
26492
26558
  sampleId: zod.z.string()
@@ -37576,6 +37642,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
37576
37642
  addonId: null,
37577
37643
  access: "create"
37578
37644
  },
37645
+ "faceGallery.auditIdentitySamples": {
37646
+ capName: "face-gallery",
37647
+ capScope: "system",
37648
+ addonId: null,
37649
+ access: "view"
37650
+ },
37579
37651
  "faceGallery.createIdentity": {
37580
37652
  capName: "face-gallery",
37581
37653
  capScope: "system",
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-CEUwB91M.js");
3
+ const require_dist = require("./dist-CNxDnJwz.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 { A as addonSettingsCapability, Ct as objectInputDeclaresAddonId, Et as procedureAuthKey, Nt as scopesAllowAddon, Pt as scopesAllowDeviceCap, Xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Yt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_STATUS_METHOD, _ as RUNTIME_DEFAULTS, _n as resolveCapMount, _t as looseSchema, an as asNumber, at as isCollectionArrayMethod, bn as EventCategory$1, cn as emitDownForOwnedCaps, dt as kebabToCamel, et as extractNestedAddonId, gn as readinessKey, gt as logLevelAtMost, h as METHOD_ACCESS_MAP, hn as parseJsonUnknown, in as asJsonObject$1, it as isArrayOutputSchema, jt as resolveMethodAuth, mn as parseJsonObject, nn as ReadinessTimeoutError, on as asString$1, p as LOG_LEVEL_RANK, pt as lifecycleJobSchema, qt as errMsg$1, sn as createEvent, st as isObjectInput, t as ALL_CAPABILITY_DEFINITIONS, tn as ReadinessRegistry, un as expandCapMethods, ut as isVoidInput, vn as scopeKey } from "./dist-BTJq0ddi.mjs";
2
+ import { A as addonSettingsCapability, Ct as objectInputDeclaresAddonId, Et as procedureAuthKey, Nt as scopesAllowAddon, Pt as scopesAllowDeviceCap, Xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Yt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_STATUS_METHOD, _ as RUNTIME_DEFAULTS, _n as resolveCapMount, _t as looseSchema, an as asNumber, at as isCollectionArrayMethod, bn as EventCategory$1, cn as emitDownForOwnedCaps, dt as kebabToCamel, et as extractNestedAddonId, gn as readinessKey, gt as logLevelAtMost, h as METHOD_ACCESS_MAP, hn as parseJsonUnknown, in as asJsonObject$1, it as isArrayOutputSchema, jt as resolveMethodAuth, mn as parseJsonObject, nn as ReadinessTimeoutError, on as asString$1, p as LOG_LEVEL_RANK, pt as lifecycleJobSchema, qt as errMsg$1, sn as createEvent, st as isObjectInput, t as ALL_CAPABILITY_DEFINITIONS, tn as ReadinessRegistry, un as expandCapMethods, ut as isVoidInput, vn as scopeKey } from "./dist-CLFBZQH6.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
- import { in as asJsonObject } from "./dist-BTJq0ddi.mjs";
1
+ import { in as asJsonObject } from "./dist-CLFBZQH6.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?
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CEUwB91M.js");
1
+ const require_dist = require("./dist-CNxDnJwz.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?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.207",
3
+ "version": "1.2.209",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",