@camstack/system 1.2.216 → 1.2.218

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 (66) hide show
  1. package/dist/addon-runner.js +9 -6
  2. package/dist/addon-runner.mjs +9 -6
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/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.d.ts +0 -7
  32. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -8
  33. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -8
  34. package/dist/builtins/platform-probe/index.js +1 -1
  35. package/dist/builtins/platform-probe/index.mjs +1 -1
  36. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  38. package/dist/builtins/snapshot/index.js +1 -1
  39. package/dist/builtins/snapshot/index.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  42. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  46. package/dist/builtins/system-config/system-config.addon.js +1 -1
  47. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  48. package/dist/builtins/winston-logging/index.js +1 -1
  49. package/dist/builtins/winston-logging/index.mjs +1 -1
  50. package/dist/{custom-action-registry-jY0NOZK8.js → custom-action-registry-BDwM5qAK.js} +19 -0
  51. package/dist/{custom-action-registry-F__gp_VX.mjs → custom-action-registry-CsONUlhC.mjs} +19 -0
  52. package/dist/{dist-DYWqXngV.js → dist-BOlMCOeT.js} +157 -5
  53. package/dist/{dist-MtqqwJVI.mjs → dist-DigmGsQS.mjs} +152 -6
  54. package/dist/index.d.ts +3 -1
  55. package/dist/index.js +11 -3
  56. package/dist/index.mjs +4 -4
  57. package/dist/kernel/array-buffer-census.d.ts +122 -0
  58. package/dist/kernel/custom-action-registry.d.ts +10 -1
  59. package/dist/kernel/heap-watch.d.ts +15 -0
  60. package/dist/kernel/transport/child-cap-protocol.d.ts +15 -1
  61. package/dist/kernel/transport/local-child-client.d.ts +18 -2
  62. package/dist/{manifest-system-deps-DvY1bY_n.js → manifest-system-deps-Bo92lg5u.js} +350 -14
  63. package/dist/{manifest-system-deps-726RBOX7.mjs → manifest-system-deps-D--wyMD9.mjs} +303 -15
  64. package/dist/{retired-settings-keys-BBrgMHDy.mjs → retired-settings-keys-vK_U-CG2.mjs} +1 -1
  65. package/dist/{retired-settings-keys-CXLIB19R.js → retired-settings-keys-xEAlYnv7.js} +1 -1
  66. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_system_deps = require("./manifest-system-deps-DvY1bY_n.js");
3
- const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
2
+ const require_manifest_system_deps = require("./manifest-system-deps-Bo92lg5u.js");
3
+ const require_custom_action_registry = require("./custom-action-registry-BDwM5qAK.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
6
6
  let node_fs = require("node:fs");
@@ -85,7 +85,10 @@ function createChildAddonCallDispatch(deps) {
85
85
  if (typeof action !== "string" || action.length === 0) throw new Error(`child-addon-call: addon "${addonId}" custom call missing action name`);
86
86
  const entry = deps.customActions.resolve(addonId, action);
87
87
  if (entry === null) throw new Error(`child-addon-call: addon "${addonId}" has no custom action "${action}"`);
88
- return entry.handler(call.args, call.caller);
88
+ const parsedInput = entry.spec.input.safeParse(call.args);
89
+ if (!parsedInput.success) throw new Error(`child-addon-call: addon "${addonId}" custom action "${action}" rejected its input — ` + parsedInput.error.issues.map((issue) => `${issue.path.join(".") || "(root)"}: ${issue.message}`).join("; "));
90
+ const result = await entry.handler(parsedInput.data, call.caller);
91
+ return entry.spec.output.parse(result);
89
92
  }
90
93
  case "settings": {
91
94
  const method = call.method;
@@ -584,9 +587,9 @@ async function main() {
584
587
  runnerLog.info("UDS child transport connected", { meta: { childId: runnerId } });
585
588
  if (storageProvider) runnerLog.info(`"${nodeId}" storage provider rooted at ${dataDir}`);
586
589
  else runnerLog.warn(`"${nodeId}" failed to load FilesystemStorageProvider`, { meta: { error: (0, _camstack_types_addon.errMsg)(storageProviderError) } });
587
- const refreshChildCaps = (reason) => {
590
+ const refreshChildCaps = (reason, customActions) => {
588
591
  const freshDescriptors = buildChildCapDescriptors(runnerManifest, require_manifest_system_deps.getWorkerNativeCapSnapshot());
589
- udsChildClient.updateCaps(freshDescriptors).catch((err) => {
592
+ udsChildClient.updateCaps(freshDescriptors, customActions).catch((err) => {
590
593
  runnerLog.warn(`UDS updateCaps failed (${reason})`, { meta: { error: err instanceof Error ? err.message : String(err) } });
591
594
  });
592
595
  };
@@ -673,7 +676,7 @@ async function main() {
673
676
  process.exit(1);
674
677
  }
675
678
  if (deviceRestorePromises.length > 0 && !shuttingDown) await Promise.allSettled(deviceRestorePromises);
676
- refreshChildCaps("post-init");
679
+ refreshChildCaps("post-init", customActionRegistry.describeAll(specs.map((spec) => spec.addonId)));
677
680
  let hubReachableFired = false;
678
681
  const fireHubReachableOnce = () => {
679
682
  if (hubReachableFired) return;
@@ -1,5 +1,5 @@
1
- import { A as createUdsLoggerWithControl, Ft as RUNNER_RSS_BUDGET_ENV, Jt as startRunnerHeapWatch, Qt as emitHeapDiagnosticReport, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, j as LocalChildClient, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, ot as validateProviderRegistrations, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-726RBOX7.mjs";
2
- import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
1
+ import { A as createUdsLoggerWithControl, Ft as RUNNER_RSS_BUDGET_ENV, Jt as startRunnerHeapWatch, a as createUdsAddonContext, bt as resolveAddonClass, it as setWorkerNativeCapsChangeListener, j as LocalChildClient, n as installManifestPythonDeps, nt as getWorkerNativeCapSnapshot, on as emitHeapDiagnosticReport, ot as validateProviderRegistrations, t as installManifestSystemDeps, tt as getWorkerNativeCapProvider, yt as installManifestNativeDeps } from "./manifest-system-deps-D--wyMD9.mjs";
2
+ import { t as CustomActionRegistry } from "./custom-action-registry-CsONUlhC.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
5
5
  import * as fs from "node:fs";
@@ -82,7 +82,10 @@ function createChildAddonCallDispatch(deps) {
82
82
  if (typeof action !== "string" || action.length === 0) throw new Error(`child-addon-call: addon "${addonId}" custom call missing action name`);
83
83
  const entry = deps.customActions.resolve(addonId, action);
84
84
  if (entry === null) throw new Error(`child-addon-call: addon "${addonId}" has no custom action "${action}"`);
85
- return entry.handler(call.args, call.caller);
85
+ const parsedInput = entry.spec.input.safeParse(call.args);
86
+ if (!parsedInput.success) throw new Error(`child-addon-call: addon "${addonId}" custom action "${action}" rejected its input — ` + parsedInput.error.issues.map((issue) => `${issue.path.join(".") || "(root)"}: ${issue.message}`).join("; "));
87
+ const result = await entry.handler(parsedInput.data, call.caller);
88
+ return entry.spec.output.parse(result);
86
89
  }
87
90
  case "settings": {
88
91
  const method = call.method;
@@ -581,9 +584,9 @@ async function main() {
581
584
  runnerLog.info("UDS child transport connected", { meta: { childId: runnerId } });
582
585
  if (storageProvider) runnerLog.info(`"${nodeId}" storage provider rooted at ${dataDir}`);
583
586
  else runnerLog.warn(`"${nodeId}" failed to load FilesystemStorageProvider`, { meta: { error: errMsg(storageProviderError) } });
584
- const refreshChildCaps = (reason) => {
587
+ const refreshChildCaps = (reason, customActions) => {
585
588
  const freshDescriptors = buildChildCapDescriptors(runnerManifest, getWorkerNativeCapSnapshot());
586
- udsChildClient.updateCaps(freshDescriptors).catch((err) => {
589
+ udsChildClient.updateCaps(freshDescriptors, customActions).catch((err) => {
587
590
  runnerLog.warn(`UDS updateCaps failed (${reason})`, { meta: { error: err instanceof Error ? err.message : String(err) } });
588
591
  });
589
592
  };
@@ -670,7 +673,7 @@ async function main() {
670
673
  process.exit(1);
671
674
  }
672
675
  if (deviceRestorePromises.length > 0 && !shuttingDown) await Promise.allSettled(deviceRestorePromises);
673
- refreshChildCaps("post-init");
676
+ refreshChildCaps("post-init", customActionRegistry.describeAll(specs.map((spec) => spec.addonId)));
674
677
  let hubReachableFired = false;
675
678
  const fireHubReachableOnce = () => {
676
679
  if (hubReachableFired) return;
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("./chunk-Cek0wNdY.js");
3
3
  const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-DM9OAzy8.js");
4
- const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
4
+ const require_custom_action_registry = require("./custom-action-registry-BDwM5qAK.js");
5
5
  exports.CustomActionRegistry = require_custom_action_registry.CustomActionRegistry;
6
6
  exports.ModelDownloadService = require_event_loop_stall_monitor.ModelDownloadService;
7
7
  exports.STALL_REPORT_MS = require_event_loop_stall_monitor.STALL_REPORT_MS;
@@ -1,3 +1,3 @@
1
1
  import { a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, f as collectModelFiles, g as ensureModel, i as startEventLoopStallMonitor, m as downloadFile, n as STALL_TICK_MS, o as contentTypeFor, p as deleteModelFromDisk, r as attributeStall, t as STALL_REPORT_MS, v as getModelFilePath, y as isModelDownloaded } from "./event-loop-stall-monitor-B3CFd9tM.mjs";
2
- import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
2
+ import { t as CustomActionRegistry } from "./custom-action-registry-CsONUlhC.mjs";
3
3
  export { CustomActionRegistry, ModelDownloadService, STALL_REPORT_MS, STALL_TICK_MS, attributeStall, collectModelFiles, contentTypeFor, createFileDataPlaneHandler, deleteModelFromDisk, downloadFile, ensureModel, getModelFilePath, isModelDownloaded, parseRangeHeader, startEventLoopStallMonitor };
@@ -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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Jt as errMsg, Yt as BaseAddon, k as addonPagesCapability, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Jt as errMsg, Yt as BaseAddon, j as addonWidgetsCapability, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Jt as errMsg, M as alertsCapability, Yt as BaseAddon, cn as createEvent, n as AlertSchema, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { P as backupCapability, Vt as storageOccupancyCapability, Yt as BaseAddon, bt as mayWriteToLocation, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Yt as BaseAddon, gt as logDestinationCapability } from "../../dist-DigmGsQS.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-DYWqXngV.js");
3
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { B as coreBlockIdFromAddonId, Jt as errMsg, V as coreBlocksCapability, Yt as BaseAddon, c as CORE_BLOCK_ADDON_PREFIX, d as DeclaredDevices, l as CoreBlockSchema, s as CORE_BLOCKS_ADDON_ID, z as coreBlockAddonId } from "../../dist-DigmGsQS.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-DYWqXngV.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-CXLIB19R.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-xEAlYnv7.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-MtqqwJVI.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BBrgMHDy.mjs";
1
+ import { $t as DeviceFeature, At as resolveContainerPrimaryChild, Ct as normalizeUnit, J as deviceStatusCapability, Jt as errMsg, K as deviceManagerCapability, L as buildStreamParamsConfigSchema, Nt as runtimeStatePolicyFor, Q as enumerateSchemaFields, S as STREAM_PROFILE_META, Tt as parseStreamParamsFormPatch, Yt as BaseAddon, Z as enumerateItemArrayFields, a as CAMERA_SWITCH_ORDER, bn as sleep, en as DeviceRole, f as DeviceStatusSchema, in as WELL_KNOWN_TAB_MAP, o as CAP_NAMES_WITH_STATUS, pn as isDeviceConfigCap, q as deviceStateCapability, t as ALL_CAPABILITY_DEFINITIONS, tn as DeviceType, xn as EventCategory } from "../../dist-DigmGsQS.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-vK_U-CG2.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { $ as evaluateSensorEdge, F as bareAddonId, Jt as errMsg, Y as doorbellCapability, Yt as BaseAddon, b as SOURCE_DEVICE_TYPES, cn as createEvent, lt as isSameAddonId, tn as DeviceType, ut as isSourceCap, xn as EventCategory, y as SOURCE_CAPS } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Yt as BaseAddon, gt as logDestinationCapability } from "../../dist-DigmGsQS.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-DYWqXngV.js");
3
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Jt as errMsg, Yt as BaseAddon, cn as createEvent, v as RecordingStatusSchema, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
2
+ import { C as ScopedTokenSchema, N as authProviderCapability, O as UserRecordSchema, Wt as userManagementCapability, Yt as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-DigmGsQS.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-DYWqXngV.js");
3
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Yt as BaseAddon, ht as localNetworkCapability, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Yt as BaseAddon, gt as logDestinationCapability } from "../../dist-DigmGsQS.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
@@ -170,13 +170,6 @@ export default class NativeMetricsAddon extends BaseAddon<NativeMetricsConfig> {
170
170
  * walk behind them — live in `process-classification.ts`.
171
171
  */
172
172
  private listNodeProcesses;
173
- /**
174
- * Ask the addon's forked runner to write a V8 heap snapshot (SIGUSR2 → the
175
- * runner's diagnostic handler in addon-runner.ts), for deep per-addon memory
176
- * attribution. Resolves the addon's worker pid from the kernel `$process.list`
177
- * and signals it; the runner writes `/tmp/heap-<sanitized nodeId>.heapsnapshot`
178
- * and logs its memoryUsage + heap-space breakdown. '$hub' targets this process.
179
- */
180
173
  /** Raw `ps` scan returning every pid + command + resource stats. */
181
174
  private runPs;
182
175
  /**
@@ -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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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");
@@ -2962,13 +2962,6 @@ var NativeMetricsAddon = class NativeMetricsAddon extends require_dist.BaseAddon
2962
2962
  cpuSplits
2963
2963
  });
2964
2964
  }
2965
- /**
2966
- * Ask the addon's forked runner to write a V8 heap snapshot (SIGUSR2 → the
2967
- * runner's diagnostic handler in addon-runner.ts), for deep per-addon memory
2968
- * attribution. Resolves the addon's worker pid from the kernel `$process.list`
2969
- * and signals it; the runner writes `/tmp/heap-<sanitized nodeId>.heapsnapshot`
2970
- * and logs its memoryUsage + heap-space breakdown. '$hub' targets this process.
2971
- */
2972
2965
  /** Raw `ps` scan returning every pid + command + resource stats. */
2973
2966
  async runPs() {
2974
2967
  try {
@@ -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-MtqqwJVI.mjs";
1
+ import { Jt as errMsg, Ot as reducePoints, Yt as BaseAddon, cn as createEvent, kt as resolveBucketMs, rt as foldSnapshotByFunction, xn as EventCategory, xt as metricsProviderCapability } from "../../dist-DigmGsQS.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";
@@ -2956,13 +2956,6 @@ var NativeMetricsAddon = class NativeMetricsAddon extends BaseAddon {
2956
2956
  cpuSplits
2957
2957
  });
2958
2958
  }
2959
- /**
2960
- * Ask the addon's forked runner to write a V8 heap snapshot (SIGUSR2 → the
2961
- * runner's diagnostic handler in addon-runner.ts), for deep per-addon memory
2962
- * attribution. Resolves the addon's worker pid from the kernel `$process.list`
2963
- * and signals it; the runner writes `/tmp/heap-<sanitized nodeId>.heapsnapshot`
2964
- * and logs its memoryUsage + heap-space breakdown. '$hub' targets this process.
2965
- */
2966
2959
  /** Raw `ps` scan returning every pid + command + resource stats. */
2967
2960
  async runPs() {
2968
2961
  try {
@@ -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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
2
+ import { Et as platformProbeCapability, It as scoreRuntimes, Jt as errMsg, X as enumerateInferenceDevices, Yt as BaseAddon, un as emitReadiness, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Yt as BaseAddon, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { $t as DeviceFeature, F as bareAddonId, I as batteryCapability, Jt as errMsg, Rt as snapshotCapability, Ut as streamQualityLabel, W as deriveBatteryPresence, Yt as BaseAddon, i as BatteryStatusSchema, mn as nodePin, tn as DeviceType, xn as EventCategory } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Ht as storageProviderCapability, Yt as BaseAddon, nt as filesystemBrowseCapability } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.js");
7
7
  const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { $ as 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-MtqqwJVI.mjs";
1
+ import { Bt as storageMigrationCapability, D as StorageMigrationJobSchema, E as StorageLocationTypeSchema, Lt as settingsStoreCapability, R as collectSecretConfigKeys, St as modeMayWrite, T as StorageLocationModeSchema, Yt as BaseAddon, bt as mayWriteToLocation, et as evictionPolicyOfLocation, g as REDACTED_SECRET, hn as parseJsonObject, it as gbToBytes, jt as resolveLocationMode, m as LegacyStorageLocationDefaultSchema, pt as legacyModeOf, qt as withLocationMode, st as isLocationEnabled, w as StorageCleanupJobSchema, xn as EventCategory, yt as mayReadLocation, zt as storageCapability } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Jt as errMsg, Yt as BaseAddon, fn as hydrateSchema } from "../../dist-DigmGsQS.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-DYWqXngV.js");
6
+ const require_dist = require("../../dist-BOlMCOeT.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-MtqqwJVI.mjs";
1
+ import { Yt as BaseAddon, gt as logDestinationCapability } from "../../dist-DigmGsQS.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,3 +1,4 @@
1
+ const require_dist = require("./dist-BOlMCOeT.js");
1
2
  //#region src/kernel/custom-action-registry.ts
2
3
  /**
3
4
  * CustomActionRegistry — per-process registry of addon custom actions.
@@ -33,6 +34,24 @@ var CustomActionRegistry = class {
33
34
  listAddons() {
34
35
  return [...this.byAddon.keys()];
35
36
  }
37
+ /**
38
+ * Every registered catalog with its schemas stripped, keyed by addon id —
39
+ * what a runner puts in its register frame so the hub learns the catalogs
40
+ * from the process that owns them (D444). `hostedAddonIds` are the addons
41
+ * this runner hosts: each is present in the result, with an EMPTY catalog
42
+ * when it registered none, so the parent can say "declares no actions" per
43
+ * addon instead of guessing from an absent key.
44
+ */
45
+ describeAll(hostedAddonIds) {
46
+ const out = {};
47
+ for (const addonId of hostedAddonIds) out[addonId] = {};
48
+ for (const [addonId, actions] of this.byAddon) {
49
+ const catalog = {};
50
+ for (const [name, entry] of actions) catalog[name] = entry.spec;
51
+ out[addonId] = require_dist.describeCustomActions(catalog);
52
+ }
53
+ return out;
54
+ }
36
55
  };
37
56
  //#endregion
38
57
  Object.defineProperty(exports, "CustomActionRegistry", {
@@ -1,3 +1,4 @@
1
+ import { G as describeCustomActions } from "./dist-DigmGsQS.mjs";
1
2
  //#region src/kernel/custom-action-registry.ts
2
3
  /**
3
4
  * CustomActionRegistry — per-process registry of addon custom actions.
@@ -33,6 +34,24 @@ var CustomActionRegistry = class {
33
34
  listAddons() {
34
35
  return [...this.byAddon.keys()];
35
36
  }
37
+ /**
38
+ * Every registered catalog with its schemas stripped, keyed by addon id —
39
+ * what a runner puts in its register frame so the hub learns the catalogs
40
+ * from the process that owns them (D444). `hostedAddonIds` are the addons
41
+ * this runner hosts: each is present in the result, with an EMPTY catalog
42
+ * when it registered none, so the parent can say "declares no actions" per
43
+ * addon instead of guessing from an absent key.
44
+ */
45
+ describeAll(hostedAddonIds) {
46
+ const out = {};
47
+ for (const addonId of hostedAddonIds) out[addonId] = {};
48
+ for (const [addonId, actions] of this.byAddon) {
49
+ const catalog = {};
50
+ for (const [name, entry] of actions) catalog[name] = entry.spec;
51
+ out[addonId] = describeCustomActions(catalog);
52
+ }
53
+ return out;
54
+ }
36
55
  };
37
56
  //#endregion
38
57
  export { CustomActionRegistry as t };