@camstack/system 1.2.143 → 1.2.144

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 (53) 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 +1 -1
  40. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  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-CVuVKA-O.mjs → dist-6rM7chzb.mjs} +87 -5
  46. package/dist/{dist-CQs1b7uh.js → dist-D3lqzV40.js} +87 -5
  47. package/dist/index.js +12 -2
  48. package/dist/index.mjs +12 -2
  49. package/dist/kernel/index.d.ts +1 -1
  50. package/dist/kernel/moleculer/core-cap-service.d.ts +17 -2
  51. package/dist/{retired-settings-keys-DnMYSIEr.mjs → retired-settings-keys-BtvClSPu.mjs} +1 -1
  52. package/dist/{retired-settings-keys-Dvei9nhG.js → retired-settings-keys-OtUQtEbq.js} +1 -1
  53. 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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, Qt as EventCategory, S as addonPagesCapability, Tt as errMsg } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory, S as addonPagesCapability, Tt as errMsg } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, Qt as EventCategory, Tt as errMsg, w as addonWidgetsCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory, Tt as errMsg, w as addonWidgetsCapability } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, Qt as EventCategory, T as alertsCapability, Tt as errMsg, n as AlertSchema, zt as createEvent } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory, T as alertsCapability, Tt as errMsg, n as AlertSchema, zt as createEvent } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { D as backupCapability, Et as BaseAddon, Qt as EventCategory } from "../../dist-CVuVKA-O.mjs";
1
+ import { D as backupCapability, Et as BaseAddon, Qt as EventCategory } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
3
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, M as coreBlockIdFromAddonId, N as coreBlocksCapability, Tt as errMsg, c as CoreBlockSchema, j as coreBlockAddonId, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX, u as DeclaredDevices } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, M as coreBlockIdFromAddonId, N as coreBlocksCapability, Tt as errMsg, c as CoreBlockSchema, j as coreBlockAddonId, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX, u as DeclaredDevices } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-Dvei9nhG.js");
6
+ const require_dist = require("../../dist-D3lqzV40.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-OtUQtEbq.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 { A as buildStreamParamsConfigSchema, At as DeviceFeature, Et as BaseAddon, Ft as WELL_KNOWN_TAB_MAP, H as enumerateItemArrayFields, L as deviceManagerCapability, Mt as DeviceType, Qt as EventCategory, R as deviceStateCapability, Tt as errMsg, U as enumerateSchemaFields, Wt as isDeviceConfigCap, Zt as sleep, _ as STREAM_PROFILE_META, a as CAP_NAMES_WITH_STATUS, ct as parseStreamParamsFormPatch, d as DeviceStatusSchema, ft as runtimeStatePolicyFor, jt as DeviceRole, ot as normalizeUnit, t as ALL_CAPABILITY_DEFINITIONS, z as deviceStatusCapability } from "../../dist-CVuVKA-O.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DnMYSIEr.mjs";
1
+ import { A as buildStreamParamsConfigSchema, At as DeviceFeature, Et as BaseAddon, Ft as WELL_KNOWN_TAB_MAP, H as enumerateItemArrayFields, L as deviceManagerCapability, Mt as DeviceType, Qt as EventCategory, R as deviceStateCapability, Tt as errMsg, U as enumerateSchemaFields, Wt as isDeviceConfigCap, Zt as sleep, _ as STREAM_PROFILE_META, a as CAP_NAMES_WITH_STATUS, ct as parseStreamParamsFormPatch, d as DeviceStatusSchema, ft as runtimeStatePolicyFor, jt as DeviceRole, ot as normalizeUnit, t as ALL_CAPABILITY_DEFINITIONS, z as deviceStatusCapability } from "../../dist-6rM7chzb.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BtvClSPu.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { B as doorbellCapability, Et as BaseAddon, Mt as DeviceType, O as bareAddonId, Qt as EventCategory, Tt as errMsg, W as evaluateSensorEdge, X as isSameAddonId, Z as isSourceCap, g as SOURCE_DEVICE_TYPES, h as SOURCE_CAPS, zt as createEvent } from "../../dist-CVuVKA-O.mjs";
1
+ import { B as doorbellCapability, Et as BaseAddon, Mt as DeviceType, O as bareAddonId, Qt as EventCategory, Tt as errMsg, W as evaluateSensorEdge, X as isSameAddonId, Z as isSourceCap, g as SOURCE_DEVICE_TYPES, h as SOURCE_CAPS, zt as createEvent } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
3
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, Qt as EventCategory, Tt as errMsg, zt as createEvent } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory, Tt as errMsg, zt as createEvent } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { E as authProviderCapability, Et as BaseAddon, St as userManagementCapability, r as ApiKeyRecordSchema, v as ScopedTokenSchema, x as UserRecordSchema } from "../../dist-CVuVKA-O.mjs";
2
+ import { E as authProviderCapability, Et as BaseAddon, St as userManagementCapability, r as ApiKeyRecordSchema, v as ScopedTokenSchema, x as UserRecordSchema } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
3
+ const require_dist = require("../../dist-D3lqzV40.js");
4
4
  const require_tls = require("../../tls-u8QCJCFE.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 { Et as BaseAddon, Qt as EventCategory, tt as localNetworkCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory, tt as localNetworkCapability } from "../../dist-6rM7chzb.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-CQhPGSJm.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  let node_util = require("node:util");
9
9
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { Et as BaseAddon, Qt as EventCategory, at as metricsProviderCapability, zt as createEvent } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory, at as metricsProviderCapability, zt as createEvent } from "../../dist-6rM7chzb.mjs";
2
2
  import { execFile, execFileSync } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as os from "node:os";
@@ -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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  let node_util = require("node:util");
9
9
  let node_os = require("node:os");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Et as BaseAddon, Qt as EventCategory, Tt as errMsg, V as enumerateInferenceDevices, Vt as emitReadiness, ht as scoreRuntimes, lt as platformProbeCapability } from "../../dist-CVuVKA-O.mjs";
2
+ import { Et as BaseAddon, Qt as EventCategory, Tt as errMsg, V as enumerateInferenceDevices, Vt as emitReadiness, ht as scoreRuntimes, lt as platformProbeCapability } from "../../dist-6rM7chzb.mjs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, Qt as EventCategory } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Qt as EventCategory } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { At as DeviceFeature, Et as BaseAddon, Gt as nodePin, I as deriveBatteryPresence, Mt as DeviceType, O as bareAddonId, Qt as EventCategory, Tt as errMsg, _t as snapshotCapability, i as BatteryStatusSchema, k as batteryCapability, xt as streamQualityLabel } from "../../dist-CVuVKA-O.mjs";
1
+ import { At as DeviceFeature, Et as BaseAddon, Gt as nodePin, I as deriveBatteryPresence, Mt as DeviceType, O as bareAddonId, Qt as EventCategory, Tt as errMsg, _t as snapshotCapability, i as BatteryStatusSchema, k as batteryCapability, xt as streamQualityLabel } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 BaseAddon, K as filesystemBrowseCapability, bt as storageProviderCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, K as filesystemBrowseCapability, bt as storageProviderCapability } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,4 +1,4 @@
1
- import { Et as BaseAddon, Kt as parseJsonObject, b as StorageMigrationJobSchema, gt as settingsStoreCapability, vt as storageCapability, y as StorageLocationTypeSchema, yt as storageMigrationCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Kt as parseJsonObject, b as StorageMigrationJobSchema, gt as settingsStoreCapability, vt as storageCapability, y as StorageLocationTypeSchema, yt as storageMigrationCapability } from "../../dist-6rM7chzb.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,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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, Tt as errMsg, Ut as hydrateSchema } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, Tt as errMsg, Ut as hydrateSchema } from "../../dist-6rM7chzb.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-CQs1b7uh.js");
6
+ const require_dist = require("../../dist-D3lqzV40.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 { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-CVuVKA-O.mjs";
1
+ import { Et as BaseAddon, nt as logDestinationCapability } from "../../dist-6rM7chzb.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";
@@ -29567,17 +29567,60 @@ var SetSiteLocationInputSchema = z.object({
29567
29567
  longitude: z.number().min(-180).max(180)
29568
29568
  }).nullable();
29569
29569
  /**
29570
- * One `(procedure, user-agent, ip, principal)` tuple of the HTTP request
29570
+ * The TRANSPORT a call arrived on.
29571
+ *
29572
+ * Every counted call carries exactly one of these, and `unknown` is a PLANE
29573
+ * rather than a gap: a plane that cannot attribute a call declares it here, so
29574
+ * the call lands in a named bucket instead of vanishing. `planes` summing to
29575
+ * `procedureCalls` is what makes "the sum of the planes explains the total"
29576
+ * checkable rather than asserted.
29577
+ *
29578
+ * - `http` — the Fastify tRPC plugin (`/trpc/*`), one context per request.
29579
+ * - `ws` — `applyWSSHandler`, counted per OPERATION rather than per
29580
+ * connection; the viewer talks to the hub over `wsLink`
29581
+ * exclusively, so this is the plane the HTTP census could not see.
29582
+ * - `mesh` — the in-process `$core-caps` bridge (`createCaller`), which
29583
+ * never touches a socket and therefore never touched a census.
29584
+ * - `unknown` — counted, plane undecidable. No hook produces it today, and
29585
+ * that is exactly what its `0` asserts: every plane the hub has can name
29586
+ * itself. It is an output bucket, never a knob — a call that arrives on a
29587
+ * plane nobody instrumented lands here instead of vanishing from the total.
29588
+ */
29589
+ var TransportPlaneSchema = z.enum([
29590
+ "http",
29591
+ "ws",
29592
+ "mesh",
29593
+ "unknown"
29594
+ ]);
29595
+ /**
29596
+ * Calls per plane. Every key is always present, `0` included — an absent plane
29597
+ * reads as "not instrumented", which is the one thing this census must never
29598
+ * make an operator wonder about.
29599
+ */
29600
+ var TransportPlaneCountsSchema = z.object({
29601
+ http: z.number(),
29602
+ ws: z.number(),
29603
+ mesh: z.number(),
29604
+ unknown: z.number()
29605
+ });
29606
+ /**
29607
+ * One `(plane, procedure, user-agent, ip, principal)` tuple of the transport
29571
29608
  * census. `principal` is the DERIVED identity (`apocaliss92 (admin)`,
29572
29609
  * `scoped:1a2b3c4d (scoped-token)`, `anonymous`) that the tRPC error log
29573
29610
  * already prints - never a token, never an `Authorization` header.
29611
+ *
29612
+ * `subscriptions` is counted APART from `calls`: a subscription is opened once
29613
+ * and lives for hours, so folding it into a call count makes one long-lived
29614
+ * stream look like a storm.
29574
29615
  */
29575
29616
  var RequestCensusGroupSchema = z.object({
29617
+ plane: TransportPlaneSchema,
29576
29618
  procedure: z.string(),
29577
29619
  userAgent: z.string(),
29578
29620
  ip: z.string(),
29579
29621
  principal: z.string(),
29580
29622
  calls: z.number(),
29623
+ subscriptions: z.number(),
29581
29624
  perMin: z.number()
29582
29625
  });
29583
29626
  /**
@@ -29590,6 +29633,14 @@ var RequestCensusGroupSchema = z.object({
29590
29633
  var RequestCensusProcedureSchema = z.object({
29591
29634
  procedure: z.string(),
29592
29635
  calls: z.number(),
29636
+ /**
29637
+ * The same total, split by transport. THIS is the row that answers the
29638
+ * question the census exists for: one look at `deviceManager.listAll` says
29639
+ * which plane carried the 4 960, without joining two log lines by eye.
29640
+ */
29641
+ planes: TransportPlaneCountsSchema,
29642
+ /** Subscription STARTS on this procedure. Never folded into `calls`. */
29643
+ subscriptions: z.number(),
29593
29644
  perMin: z.number()
29594
29645
  });
29595
29646
  /**
@@ -29617,14 +29668,45 @@ var RequestCensusStatusSchema = z.object({
29617
29668
  */
29618
29669
  procedureCalls: z.number(),
29619
29670
  /**
29671
+ * `procedureCalls` split by transport. The four keys sum to
29672
+ * `procedureCalls` by construction - {@link RequestCensusSnapshotSchema}'s
29673
+ * `planesExplainTotal` is that identity, checked rather than assumed.
29674
+ */
29675
+ planes: TransportPlaneCountsSchema,
29676
+ /**
29677
+ * True iff `planes` sums to `procedureCalls`. False means a call was counted
29678
+ * on no plane at all - which is a RESULT (a plane is missing from the
29679
+ * instrument), not a failure, and it has to be visible to be read as one.
29680
+ */
29681
+ planesExplainTotal: z.boolean(),
29682
+ /**
29620
29683
  * tRPC WebSocket connections opened during the window. NOT calls - the WS
29621
- * transport resolves one context per connection - but the number that says
29622
- * whether a plane this census cannot see was busy while HTTP was quiet.
29684
+ * adapter resolves one context per connection - kept because a plane's call
29685
+ * count of zero against 37 open connections says something different from a
29686
+ * plane with no connections at all.
29623
29687
  */
29624
29688
  wsConnections: z.number(),
29689
+ /**
29690
+ * Client frames the WS plane looked at. `wsMessages` far above
29691
+ * `planes.ws + subscriptions` means most traffic is not operations
29692
+ * (keepalives, connection params) - which is itself an answer.
29693
+ */
29694
+ wsMessages: z.number(),
29695
+ /**
29696
+ * Subscription STARTS across every plane, excluded from `procedureCalls` on
29697
+ * purpose: one live-events stream opened at boot and held for six hours is
29698
+ * one subscription, and counting it as a call would let a quiet plane
29699
+ * masquerade as the storm.
29700
+ */
29701
+ subscriptions: z.number(),
29702
+ /** `subscription.stop` frames. Starts minus stops is what is still open. */
29703
+ subscriptionStops: z.number(),
29625
29704
  distinctGroups: z.number(),
29626
- /** Calls counted in the totals whose group attribution was shed at the
29627
- * cardinality bound. */
29705
+ /**
29706
+ * Operations counted in the totals whose CALLER attribution was shed at the
29707
+ * cardinality bound. Unrelated to the `unknown` PLANE: these calls know
29708
+ * which transport they arrived on, they just lost their group row.
29709
+ */
29628
29710
  unattributedCalls: z.number(),
29629
29711
  procedures: z.array(RequestCensusProcedureSchema).readonly(),
29630
29712
  groups: z.array(RequestCensusGroupSchema).readonly()
@@ -29567,17 +29567,60 @@ var SetSiteLocationInputSchema = zod.z.object({
29567
29567
  longitude: zod.z.number().min(-180).max(180)
29568
29568
  }).nullable();
29569
29569
  /**
29570
- * One `(procedure, user-agent, ip, principal)` tuple of the HTTP request
29570
+ * The TRANSPORT a call arrived on.
29571
+ *
29572
+ * Every counted call carries exactly one of these, and `unknown` is a PLANE
29573
+ * rather than a gap: a plane that cannot attribute a call declares it here, so
29574
+ * the call lands in a named bucket instead of vanishing. `planes` summing to
29575
+ * `procedureCalls` is what makes "the sum of the planes explains the total"
29576
+ * checkable rather than asserted.
29577
+ *
29578
+ * - `http` — the Fastify tRPC plugin (`/trpc/*`), one context per request.
29579
+ * - `ws` — `applyWSSHandler`, counted per OPERATION rather than per
29580
+ * connection; the viewer talks to the hub over `wsLink`
29581
+ * exclusively, so this is the plane the HTTP census could not see.
29582
+ * - `mesh` — the in-process `$core-caps` bridge (`createCaller`), which
29583
+ * never touches a socket and therefore never touched a census.
29584
+ * - `unknown` — counted, plane undecidable. No hook produces it today, and
29585
+ * that is exactly what its `0` asserts: every plane the hub has can name
29586
+ * itself. It is an output bucket, never a knob — a call that arrives on a
29587
+ * plane nobody instrumented lands here instead of vanishing from the total.
29588
+ */
29589
+ var TransportPlaneSchema = zod.z.enum([
29590
+ "http",
29591
+ "ws",
29592
+ "mesh",
29593
+ "unknown"
29594
+ ]);
29595
+ /**
29596
+ * Calls per plane. Every key is always present, `0` included — an absent plane
29597
+ * reads as "not instrumented", which is the one thing this census must never
29598
+ * make an operator wonder about.
29599
+ */
29600
+ var TransportPlaneCountsSchema = zod.z.object({
29601
+ http: zod.z.number(),
29602
+ ws: zod.z.number(),
29603
+ mesh: zod.z.number(),
29604
+ unknown: zod.z.number()
29605
+ });
29606
+ /**
29607
+ * One `(plane, procedure, user-agent, ip, principal)` tuple of the transport
29571
29608
  * census. `principal` is the DERIVED identity (`apocaliss92 (admin)`,
29572
29609
  * `scoped:1a2b3c4d (scoped-token)`, `anonymous`) that the tRPC error log
29573
29610
  * already prints - never a token, never an `Authorization` header.
29611
+ *
29612
+ * `subscriptions` is counted APART from `calls`: a subscription is opened once
29613
+ * and lives for hours, so folding it into a call count makes one long-lived
29614
+ * stream look like a storm.
29574
29615
  */
29575
29616
  var RequestCensusGroupSchema = zod.z.object({
29617
+ plane: TransportPlaneSchema,
29576
29618
  procedure: zod.z.string(),
29577
29619
  userAgent: zod.z.string(),
29578
29620
  ip: zod.z.string(),
29579
29621
  principal: zod.z.string(),
29580
29622
  calls: zod.z.number(),
29623
+ subscriptions: zod.z.number(),
29581
29624
  perMin: zod.z.number()
29582
29625
  });
29583
29626
  /**
@@ -29590,6 +29633,14 @@ var RequestCensusGroupSchema = zod.z.object({
29590
29633
  var RequestCensusProcedureSchema = zod.z.object({
29591
29634
  procedure: zod.z.string(),
29592
29635
  calls: zod.z.number(),
29636
+ /**
29637
+ * The same total, split by transport. THIS is the row that answers the
29638
+ * question the census exists for: one look at `deviceManager.listAll` says
29639
+ * which plane carried the 4 960, without joining two log lines by eye.
29640
+ */
29641
+ planes: TransportPlaneCountsSchema,
29642
+ /** Subscription STARTS on this procedure. Never folded into `calls`. */
29643
+ subscriptions: zod.z.number(),
29593
29644
  perMin: zod.z.number()
29594
29645
  });
29595
29646
  /**
@@ -29617,14 +29668,45 @@ var RequestCensusStatusSchema = zod.z.object({
29617
29668
  */
29618
29669
  procedureCalls: zod.z.number(),
29619
29670
  /**
29671
+ * `procedureCalls` split by transport. The four keys sum to
29672
+ * `procedureCalls` by construction - {@link RequestCensusSnapshotSchema}'s
29673
+ * `planesExplainTotal` is that identity, checked rather than assumed.
29674
+ */
29675
+ planes: TransportPlaneCountsSchema,
29676
+ /**
29677
+ * True iff `planes` sums to `procedureCalls`. False means a call was counted
29678
+ * on no plane at all - which is a RESULT (a plane is missing from the
29679
+ * instrument), not a failure, and it has to be visible to be read as one.
29680
+ */
29681
+ planesExplainTotal: zod.z.boolean(),
29682
+ /**
29620
29683
  * tRPC WebSocket connections opened during the window. NOT calls - the WS
29621
- * transport resolves one context per connection - but the number that says
29622
- * whether a plane this census cannot see was busy while HTTP was quiet.
29684
+ * adapter resolves one context per connection - kept because a plane's call
29685
+ * count of zero against 37 open connections says something different from a
29686
+ * plane with no connections at all.
29623
29687
  */
29624
29688
  wsConnections: zod.z.number(),
29689
+ /**
29690
+ * Client frames the WS plane looked at. `wsMessages` far above
29691
+ * `planes.ws + subscriptions` means most traffic is not operations
29692
+ * (keepalives, connection params) - which is itself an answer.
29693
+ */
29694
+ wsMessages: zod.z.number(),
29695
+ /**
29696
+ * Subscription STARTS across every plane, excluded from `procedureCalls` on
29697
+ * purpose: one live-events stream opened at boot and held for six hours is
29698
+ * one subscription, and counting it as a call would let a quiet plane
29699
+ * masquerade as the storm.
29700
+ */
29701
+ subscriptions: zod.z.number(),
29702
+ /** `subscription.stop` frames. Starts minus stops is what is still open. */
29703
+ subscriptionStops: zod.z.number(),
29625
29704
  distinctGroups: zod.z.number(),
29626
- /** Calls counted in the totals whose group attribution was shed at the
29627
- * cardinality bound. */
29705
+ /**
29706
+ * Operations counted in the totals whose CALLER attribution was shed at the
29707
+ * cardinality bound. Unrelated to the `unknown` PLANE: these calls know
29708
+ * which transport they arrived on, they just lost their group row.
29709
+ */
29628
29710
  unattributedCalls: zod.z.number(),
29629
29711
  procedures: zod.z.array(RequestCensusProcedureSchema).readonly(),
29630
29712
  groups: zod.z.array(RequestCensusGroupSchema).readonly()
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-CQs1b7uh.js");
3
+ const require_dist = require("./dist-D3lqzV40.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");
@@ -93435,13 +93435,23 @@ function createCoreCapService(options) {
93435
93435
  const actions = {};
93436
93436
  for (const { actionName, invoke } of options.actions) actions[actionName] = { handler: async (ctx) => {
93437
93437
  const raw = require_manifest_python_deps.deserializeTypedArrays(ctx.params);
93438
- return invoke(raw !== null && typeof raw === "object" && Object.keys(raw).length === 0 ? void 0 : raw);
93438
+ return invoke(raw !== null && typeof raw === "object" && Object.keys(raw).length === 0 ? void 0 : raw, readOrigin(ctx));
93439
93439
  } };
93440
93440
  return {
93441
93441
  name: options.serviceName ?? "$core-caps",
93442
93442
  actions
93443
93443
  };
93444
93444
  }
93445
+ /** Structural read of the calling node/action. Anything unrecognised is `null`. */
93446
+ function readOrigin(ctx) {
93447
+ return {
93448
+ nodeId: asName(ctx.nodeID),
93449
+ caller: asName(ctx.caller)
93450
+ };
93451
+ }
93452
+ function asName(value) {
93453
+ return typeof value === "string" && value.length > 0 ? value : null;
93454
+ }
93445
93455
  //#endregion
93446
93456
  //#region src/kernel/moleculer/hub-log-forwarder.ts
93447
93457
  /**
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 { $ as kebabToCamel, Bt as emitDownForOwnedCaps, C as addonSettingsCapability, Dt as DATAPLANE_SECRET_HEADER$1, G as extractNestedAddonId, Ht as expandCapMethods, It as asJsonObject$1, J as isCollectionArrayMethod, Jt as readinessKey, Kt as parseJsonObject, Lt as asNumber, Nt as ReadinessRegistry, Ot as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Pt as ReadinessTimeoutError, Q as isVoidInput, Qt as EventCategory$1, Rt as asString$1, Tt as errMsg$1, Xt as scopeKey, Y as isObjectInput, Yt as resolveCapMount, dt as resolveMethodAuth, et as lifecycleJobSchema, f as LOG_LEVEL_RANK, it as looseSchema, kt as DEVICE_STATUS_METHOD, m as RUNTIME_DEFAULTS, mt as scopesAllowDeviceCap, p as METHOD_ACCESS_MAP, pt as scopesAllowAddon, q as isArrayOutputSchema, qt as parseJsonUnknown$1, rt as logLevelAtMost, st as objectInputDeclaresAddonId, t as ALL_CAPABILITY_DEFINITIONS, ut as procedureAuthKey, zt as createEvent } from "./dist-CVuVKA-O.mjs";
2
+ import { $ as kebabToCamel, Bt as emitDownForOwnedCaps, C as addonSettingsCapability, Dt as DATAPLANE_SECRET_HEADER$1, G as extractNestedAddonId, Ht as expandCapMethods, It as asJsonObject$1, J as isCollectionArrayMethod, Jt as readinessKey, Kt as parseJsonObject, Lt as asNumber, Nt as ReadinessRegistry, Ot as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Pt as ReadinessTimeoutError, Q as isVoidInput, Qt as EventCategory$1, Rt as asString$1, Tt as errMsg$1, Xt as scopeKey, Y as isObjectInput, Yt as resolveCapMount, dt as resolveMethodAuth, et as lifecycleJobSchema, f as LOG_LEVEL_RANK, it as looseSchema, kt as DEVICE_STATUS_METHOD, m as RUNTIME_DEFAULTS, mt as scopesAllowDeviceCap, p as METHOD_ACCESS_MAP, pt as scopesAllowAddon, q as isArrayOutputSchema, qt as parseJsonUnknown$1, rt as logLevelAtMost, st as objectInputDeclaresAddonId, t as ALL_CAPABILITY_DEFINITIONS, ut as procedureAuthKey, zt as createEvent } from "./dist-6rM7chzb.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";
@@ -93428,13 +93428,23 @@ function createCoreCapService(options) {
93428
93428
  const actions = {};
93429
93429
  for (const { actionName, invoke } of options.actions) actions[actionName] = { handler: async (ctx) => {
93430
93430
  const raw = deserializeTypedArrays(ctx.params);
93431
- return invoke(raw !== null && typeof raw === "object" && Object.keys(raw).length === 0 ? void 0 : raw);
93431
+ return invoke(raw !== null && typeof raw === "object" && Object.keys(raw).length === 0 ? void 0 : raw, readOrigin(ctx));
93432
93432
  } };
93433
93433
  return {
93434
93434
  name: options.serviceName ?? "$core-caps",
93435
93435
  actions
93436
93436
  };
93437
93437
  }
93438
+ /** Structural read of the calling node/action. Anything unrecognised is `null`. */
93439
+ function readOrigin(ctx) {
93440
+ return {
93441
+ nodeId: asName(ctx.nodeID),
93442
+ caller: asName(ctx.caller)
93443
+ };
93444
+ }
93445
+ function asName(value) {
93446
+ return typeof value === "string" && value.length > 0 ? value : null;
93447
+ }
93438
93448
  //#endregion
93439
93449
  //#region src/kernel/moleculer/hub-log-forwarder.ts
93440
93450
  /**
@@ -37,7 +37,7 @@ export type { BrokerConfig } from './moleculer/broker-factory.js';
37
37
  export { type AddonDeploySource, isAddonDeploySource } from './moleculer/addon-deploy-source.js';
38
38
  export { createAddonService, validateProviderRegistrations, } from './moleculer/addon-service-factory.js';
39
39
  export { createCoreCapService, CORE_CAP_SERVICE_NAME } from './moleculer/core-cap-service.js';
40
- export type { CoreCapAction, CoreCapServiceOptions } from './moleculer/core-cap-service.js';
40
+ export type { CoreCapAction, CoreCapCallOrigin, CoreCapServiceOptions, } from './moleculer/core-cap-service.js';
41
41
  export { createAddonContext, createUdsAddonContext, setHubConnected, adaptBrokerToCluster, registerEventBusService, setNodeEventInterest, getMoleculerEventStats, subscribePassthrough, getBrokerEventBus, clusterEventTopic, EVENT_TOPIC_PREFIX, } from './moleculer/addon-context-factory.js';
42
42
  export type { MoleculerEventStats } from './moleculer/addon-context-factory.js';
43
43
  export { HubLogForwarder } from './moleculer/hub-log-forwarder.js';
@@ -1,4 +1,13 @@
1
1
  import { ServiceSchema } from 'moleculer';
2
+ /**
3
+ * Who issued a `$core-caps` action. Both fields are `null` when Moleculer did
4
+ * not carry the information — never blank, so an absent origin reads as absent
5
+ * rather than as a formatting defect.
6
+ */
7
+ export interface CoreCapCallOrigin {
8
+ readonly nodeId: string | null;
9
+ readonly caller: string | null;
10
+ }
2
11
  /**
3
12
  * Default Moleculer service name for the hub core-capability bridge.
4
13
  *
@@ -22,8 +31,14 @@ export declare const CORE_CAP_SERVICE_NAME = "$core-caps";
22
31
  export interface CoreCapAction {
23
32
  /** Kebab-cased `<capName>.<method>` — e.g. `system.info`, `addon-settings-raw.getGlobal`. */
24
33
  readonly actionName: string;
25
- /** Invoke the underlying tRPC procedure with a trusted mesh context. */
26
- readonly invoke: (input: unknown) => Promise<unknown> | unknown;
34
+ /**
35
+ * Invoke the underlying tRPC procedure with a trusted mesh context.
36
+ *
37
+ * `origin` is diagnostics only — the transport census uses it to name the
38
+ * caller of an in-process call, which has no request and therefore no other
39
+ * identity. No implementation may gate on it.
40
+ */
41
+ readonly invoke: (input: unknown, origin: CoreCapCallOrigin) => Promise<unknown> | unknown;
27
42
  }
28
43
  export interface CoreCapServiceOptions {
29
44
  /** Moleculer service name. Defaults to {@link CORE_CAP_SERVICE_NAME}. */
@@ -1,4 +1,4 @@
1
- import { It as asJsonObject } from "./dist-CVuVKA-O.mjs";
1
+ import { It as asJsonObject } from "./dist-6rM7chzb.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-CQs1b7uh.js");
1
+ const require_dist = require("./dist-D3lqzV40.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.143",
3
+ "version": "1.2.144",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",