@camstack/system 1.2.297 → 1.2.298

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/autotrack/index.js +1 -1
  10. package/dist/builtins/autotrack/index.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/camera-grid/index.js +1 -1
  14. package/dist/builtins/camera-grid/index.mjs +1 -1
  15. package/dist/builtins/console-logging/index.js +1 -1
  16. package/dist/builtins/console-logging/index.mjs +1 -1
  17. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  18. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  19. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  20. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  21. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  22. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  23. package/dist/builtins/hub-forwarder/index.js +1 -1
  24. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  25. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  26. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  27. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  28. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  29. package/dist/builtins/local-network/local-network.addon.js +1 -1
  30. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  31. package/dist/builtins/loki-logging/index.js +1 -1
  32. package/dist/builtins/loki-logging/index.mjs +1 -1
  33. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  34. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  35. package/dist/builtins/platform-probe/index.js +1 -1
  36. package/dist/builtins/platform-probe/index.mjs +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  38. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  39. package/dist/builtins/snapshot/index.js +1 -1
  40. package/dist/builtins/snapshot/index.mjs +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  42. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  44. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  46. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  47. package/dist/builtins/system-config/system-config.addon.js +1 -1
  48. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  49. package/dist/builtins/winston-logging/index.js +1 -1
  50. package/dist/builtins/winston-logging/index.mjs +1 -1
  51. package/dist/{child-cap-dispatch-CWkcQIRe.mjs → child-cap-dispatch-C1c3rWaX.mjs} +25 -2
  52. package/dist/{child-cap-dispatch-CzNzGnGm.js → child-cap-dispatch-De5_HcvR.js} +30 -1
  53. package/dist/{dist-DaqbC6N5.js → dist-BoZJWfY7.js} +137 -11
  54. package/dist/{dist-O_Cf9RQm.mjs → dist-pTyVeilm.mjs} +137 -11
  55. package/dist/index.js +3 -2
  56. package/dist/index.mjs +3 -3
  57. package/dist/kernel/transport/index.d.ts +1 -0
  58. package/dist/kernel/transport/peer-answered-error.d.ts +17 -0
  59. package/dist/{retired-settings-keys-DCcJa0nH.mjs → retired-settings-keys-Brx2hina.mjs} +1 -1
  60. package/dist/{retired-settings-keys-_jB8F9wE.js → retired-settings-keys-DKipTkws.js} +1 -1
  61. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_child_cap_dispatch = require("./child-cap-dispatch-CzNzGnGm.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-De5_HcvR.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { B as LocalChildClient, Ct as resolveAddonClass, N as createUdsLoggerWithControl, St as installManifestNativeDeps, Vt as RUNNER_RSS_BUDGET_ENV, at as getWorkerNativeCapSnapshot, en as startRunnerHeapWatch, fn as emitHeapDiagnosticReport, i as installManifestPythonDeps, it as getWorkerNativeCapProvider, lt as validateProviderRegistrations, n as createChildCapDispatch, r as installManifestSystemDeps, s as createUdsAddonContext, st as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-CWkcQIRe.mjs";
1
+ import { B as LocalChildClient, Ct as installManifestNativeDeps, Ht as RUNNER_RSS_BUDGET_ENV, N as createUdsLoggerWithControl, at as getWorkerNativeCapProvider, ct as setWorkerNativeCapsChangeListener, i as installManifestPythonDeps, n as createChildCapDispatch, ot as getWorkerNativeCapSnapshot, pn as emitHeapDiagnosticReport, r as installManifestSystemDeps, s as createUdsAddonContext, tn as startRunnerHeapWatch, ut as validateProviderRegistrations, wt as resolveAddonClass } from "./child-cap-dispatch-C1c3rWaX.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, L as addonPagesCapability, dn as errMsg, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, L as addonPagesCapability, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, dn as errMsg, pn as BaseAddon, z as addonWidgetsCapability } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, dn as errMsg, pn as BaseAddon, z as addonWidgetsCapability } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  //#region src/builtins/alerts/prune-policy.ts
8
8
  /**
9
9
  * Ids older than `cutoffMs`, oldest first.
@@ -1,4 +1,4 @@
1
- import { B as alertsCapability, Bn as EventCategory, En as createEvent, dn as errMsg, n as AlertSchema, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { B as alertsCapability, Bn as EventCategory, En as createEvent, dn as errMsg, n as AlertSchema, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
2
2
  //#region src/builtins/alerts/prune-policy.ts
3
3
  /**
4
4
  * Ids older than `cutoffMs`, oldest first.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  //#region src/builtins/autotrack/autotrack-config.ts
8
8
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
9
9
  deadZoneFraction: .5,
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, Mn as isEvent, U as bareAddonId, Ut as ptzAutotrackCapability, dn as errMsg, g as FIRST_LEVEL_MACRO_CLASSES, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, Mn as isEvent, U as bareAddonId, Ut as ptzAutotrackCapability, dn as errMsg, g as FIRST_LEVEL_MACRO_CLASSES, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
2
2
  //#region src/builtins/autotrack/autotrack-config.ts
3
3
  var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
4
4
  deadZoneFraction: .5,
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let buffer = require("buffer");
9
9
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, H as backupCapability, Nt as mayWriteToLocation, pn as BaseAddon, rn as storageOccupancyCapability } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, H as backupCapability, Nt as mayWriteToLocation, pn as BaseAddon, rn as storageOccupancyCapability } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  let zod = require("zod");
8
8
  let _camstack_types_node = require("@camstack/types/node");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { An as hydrateSchema, Bn as EventCategory, En as createEvent, It as motionCapability, K as cameraGridLayoutCapability, Q as declarationOwnerNodeId, S as MOTION_CLOSE_AFTER_MS, _n as DeviceFeature, an as streamCatalogCapability, dn as errMsg, en as snapshotCapability, fn as buildFfmpegArgs, i as BaseDevice, m as DeclaredDevices, p as DERIVED_CAMERA_SILENCED_CAP_NAMES, pn as BaseAddon, yn as DeviceType } from "../../dist-O_Cf9RQm.mjs";
1
+ import { An as hydrateSchema, Bn as EventCategory, En as createEvent, It as motionCapability, K as cameraGridLayoutCapability, Q as declarationOwnerNodeId, S as MOTION_CLOSE_AFTER_MS, _n as DeviceFeature, an as streamCatalogCapability, dn as errMsg, en as snapshotCapability, fn as buildFfmpegArgs, i as BaseDevice, m as DeclaredDevices, p as DERIVED_CAMERA_SILENCED_CAP_NAMES, pn as BaseAddon, yn as DeviceType } from "../../dist-pTyVeilm.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
3
+ const require_dist = require("../../dist-BoZJWfY7.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,4 +1,4 @@
1
- import { J as coreBlockAddonId, X as coreBlocksCapability, Y as coreBlockIdFromAddonId, c as CORE_BLOCKS_ADDON_ID, dn as errMsg, l as CORE_BLOCK_ADDON_PREFIX, m as DeclaredDevices, pn as BaseAddon, u as CoreBlockSchema } from "../../dist-O_Cf9RQm.mjs";
1
+ import { J as coreBlockAddonId, X as coreBlocksCapability, Y as coreBlockIdFromAddonId, c as CORE_BLOCKS_ADDON_ID, dn as errMsg, l as CORE_BLOCK_ADDON_PREFIX, m as DeclaredDevices, pn as BaseAddon, u as CoreBlockSchema } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-_jB8F9wE.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-DKipTkws.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
10
10
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -1,5 +1,5 @@
1
- import { $t as siteZoneKey, A as STREAM_PROFILE_META, Bn as EventCategory, Bt as parseStreamParamsFormPatch, G as buildStreamParamsConfigSchema, Jt as runtimeStatePolicyFor, Lt as normalizeUnit, Ot as locationIconKey, Sn as WELL_KNOWN_TAB_MAP, _n as DeviceFeature, d as DAY_NAMES, dn as errMsg, h as DeviceStatusSchema, jn as isDeviceConfigCap, mt as formatMinutes, nt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, ot as enumerateItemArrayFields, pn as BaseAddon, rt as deviceStatusCapability, s as CAP_NAMES_WITH_STATUS, st as enumerateSchemaFields, t as ALL_CAPABILITY_DEFINITIONS, tt as deviceManagerCapability, ut as expandContainer, vn as DeviceRole, wt as legacyAutoLinkIds, x as MINUTES_PER_DAY, y as LocationIconIdSchema, yn as DeviceType, zn as sleep$1 } from "../../dist-O_Cf9RQm.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DCcJa0nH.mjs";
1
+ import { $t as siteZoneKey, A as STREAM_PROFILE_META, Bn as EventCategory, Bt as parseStreamParamsFormPatch, G as buildStreamParamsConfigSchema, Jt as runtimeStatePolicyFor, Lt as normalizeUnit, Ot as locationIconKey, Sn as WELL_KNOWN_TAB_MAP, _n as DeviceFeature, d as DAY_NAMES, dn as errMsg, h as DeviceStatusSchema, jn as isDeviceConfigCap, mt as formatMinutes, nt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, ot as enumerateItemArrayFields, pn as BaseAddon, rt as deviceStatusCapability, s as CAP_NAMES_WITH_STATUS, st as enumerateSchemaFields, t as ALL_CAPABILITY_DEFINITIONS, tt as deviceManagerCapability, ut as expandContainer, vn as DeviceRole, wt as legacyAutoLinkIds, x as MINUTES_PER_DAY, y as LocationIconIdSchema, yn as DeviceType, zn as sleep$1 } from "../../dist-pTyVeilm.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-Brx2hina.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, D as SOURCE_CAPS, En as createEvent, O as SOURCE_DEVICE_TYPES, U as bareAddonId, bt as isSameAddonId, ct as evaluateSensorEdge, dn as errMsg, it as doorbellCapability, pn as BaseAddon, xt as isSourceCap, yn as DeviceType } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, D as SOURCE_CAPS, En as createEvent, O as SOURCE_DEVICE_TYPES, U as bareAddonId, bt as isSameAddonId, ct as evaluateSensorEdge, dn as errMsg, it as doorbellCapability, pn as BaseAddon, xt as isSourceCap, yn as DeviceType } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
3
+ const require_dist = require("../../dist-BoZJWfY7.js");
4
4
  //#region src/builtins/liveness-monitor/liveness-checks.ts
5
5
  var NO_DEVICES = "liveness:no-devices";
6
6
  var ALL_OFFLINE = "liveness:all-devices-offline";
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, C as RECORDING_SOURCE_CAMSTACK_ADDON, E as RecordingStatusSchema, En as createEvent, dn as errMsg, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, C as RECORDING_SOURCE_CAMSTACK_ADDON, E as RecordingStatusSchema, En as createEvent, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { I as UserRecordSchema, V as authProviderCapability, j as ScopedTokenSchema, pn as BaseAddon, r as ApiKeyRecordSchema, sn as userManagementCapability } from "../../dist-O_Cf9RQm.mjs";
2
+ import { I as UserRecordSchema, V as authProviderCapability, j as ScopedTokenSchema, pn as BaseAddon, r as ApiKeyRecordSchema, sn as userManagementCapability } from "../../dist-pTyVeilm.mjs";
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-DaqbC6N5.js");
3
+ const require_dist = require("../../dist-BoZJWfY7.js");
4
4
  const require_tls = require("../../tls-D_wUeOTD.js");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, Dt as localNetworkCapability, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, Dt as localNetworkCapability, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
2
2
  import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-IM-v7JV4.mjs";
3
3
  import { mkdir, writeFile } from "node:fs/promises";
4
4
  import { join } from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  //#region src/builtins/loki-logging/loki-payload.ts
8
8
  /**
9
9
  * Loki rejects a label name that is not a valid Prometheus label
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, En as createEvent, Gt as resolveBucketMs, Pt as metricsProviderCapability, Wt as reducePoints, dn as errMsg, pn as BaseAddon, pt as foldSnapshotByFunction } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, En as createEvent, Gt as resolveBucketMs, Pt as metricsProviderCapability, Wt as reducePoints, dn as errMsg, pn as BaseAddon, pt as foldSnapshotByFunction } from "../../dist-pTyVeilm.mjs";
2
2
  import { access, readFile, readdir } from "node:fs/promises";
3
3
  import * as fs from "node:fs";
4
4
  import { constants, readFileSync } from "node:fs";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  let node_fs = require("node:fs");
8
8
  node_fs = require_chunk.__toESM(node_fs);
9
9
  let node_child_process = require("node:child_process");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Bn as EventCategory, On as emitReadiness, Vt as platformProbeCapability, Zt as scoreRuntimes, at as enumerateInferenceDevices, dn as errMsg, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
2
+ import { Bn as EventCategory, On as emitReadiness, Vt as platformProbeCapability, Zt as scoreRuntimes, at as enumerateInferenceDevices, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.mjs";
3
3
  import * as fs from "node:fs";
4
4
  import { execFile } from "node:child_process";
5
5
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  //#region src/builtins/remote-access-orchestrator/enabled-providers-reconcile.ts
8
8
  /**
9
9
  * Reconcile the durable `enabledProviders` set against authoritative
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, Nn as nodePin, U as bareAddonId, W as batteryCapability, _n as DeviceFeature, a as BatteryStatusSchema, dn as errMsg, en as snapshotCapability, et as deriveBatteryPresence, on as streamQualityLabel, pn as BaseAddon, yn as DeviceType } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, Nn as nodePin, U as bareAddonId, W as batteryCapability, _n as DeviceFeature, a as BatteryStatusSchema, dn as errMsg, en as snapshotCapability, et as deriveBatteryPresence, on as streamQualityLabel, pn as BaseAddon, yn as DeviceType } from "../../dist-pTyVeilm.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { ft as filesystemBrowseCapability, in as storageProviderCapability, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { ft as filesystemBrowseCapability, in as storageProviderCapability, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_hub_cap_forward = require("../../hub-cap-forward-DmHNjbB0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Bn as EventCategory, F as StorageMigrationJobSchema, Ft as modeMayWrite, Kt as resolveLocationMode, M as StorageCleanupJobSchema, Mt as mayReadLocation, N as StorageLocationModeSchema, Nt as mayWriteToLocation, P as StorageLocationTypeSchema, Pn as parseJsonObject, Qt as settingsStoreCapability, Tt as legacyModeOf, ht as gbToBytes, lt as evictionPolicyOfLocation, nn as storageMigrationCapability, pn as BaseAddon, q as collectSecretConfigKeys, tn as storageCapability, un as withLocationMode, v as LegacyStorageLocationDefaultSchema, vt as isLocationEnabled, w as REDACTED_SECRET } from "../../dist-O_Cf9RQm.mjs";
1
+ import { Bn as EventCategory, F as StorageMigrationJobSchema, Ft as modeMayWrite, Kt as resolveLocationMode, M as StorageCleanupJobSchema, Mt as mayReadLocation, N as StorageLocationModeSchema, Nt as mayWriteToLocation, P as StorageLocationTypeSchema, Pn as parseJsonObject, Qt as settingsStoreCapability, Tt as legacyModeOf, ht as gbToBytes, lt as evictionPolicyOfLocation, nn as storageMigrationCapability, pn as BaseAddon, q as collectSecretConfigKeys, tn as storageCapability, un as withLocationMode, v as LegacyStorageLocationDefaultSchema, vt as isLocationEnabled, w as REDACTED_SECRET } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  //#region src/builtins/system-config/system-config.addon.ts
8
8
  /**
9
9
  * Built-in `system-config` addon — Phase 4 of the settings redesign.
@@ -1,4 +1,4 @@
1
- import { An as hydrateSchema, dn as errMsg, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { An as hydrateSchema, dn as errMsg, pn as BaseAddon } from "../../dist-pTyVeilm.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-DaqbC6N5.js");
6
+ const require_dist = require("../../dist-BoZJWfY7.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-O_Cf9RQm.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-pTyVeilm.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";
@@ -6954,6 +6954,28 @@ function localEndpointPath(nodeId) {
6954
6954
  return join(tmpdir(), `camstack-${safe}.sock`);
6955
6955
  }
6956
6956
  //#endregion
6957
+ //#region src/kernel/transport/peer-answered-error.ts
6958
+ /**
6959
+ * An error the FAR END of a channel answered with.
6960
+ *
6961
+ * The request was delivered, a handler ran, and it said no — typically a
6962
+ * provider refusing by throwing ("No home preset configured for this
6963
+ * camera"). That is an application answer, and it must reach the caller as
6964
+ * the provider's own sentence. A transport failure (channel closed, request
6965
+ * timed out, no child) is a plain `Error` and nobody answered it.
6966
+ *
6967
+ * `CapRouteResolver.dispatch` keys on this class: it used to wrap EVERY
6968
+ * non-routing throw as `CapRouteError{reason:'transport-failed'}`, so an
6969
+ * operator pressing PTZ Home was told the node was "not routable" when the
6970
+ * node had answered (2026-09-25, device 3836).
6971
+ */
6972
+ var PeerAnsweredError = class extends Error {
6973
+ constructor(message) {
6974
+ super(message);
6975
+ this.name = "PeerAnsweredError";
6976
+ }
6977
+ };
6978
+ //#endregion
6957
6979
  //#region src/kernel/transport/local-transport.ts
6958
6980
  /**
6959
6981
  * An answer that carries an opaque payload beside its body.
@@ -7199,7 +7221,7 @@ var SocketChannel = class {
7199
7221
  this.pending.delete(frame.id);
7200
7222
  if (p.timer !== null) clearTimeout(p.timer);
7201
7223
  if (p.action !== null) this.recordAction(p.action.label, p.action.reqBytes, wireBytes);
7202
- if (!frame.ok) p.reject(new Error(frame.err));
7224
+ if (!frame.ok) p.reject(new PeerAnsweredError(frame.err));
7203
7225
  else if (frame.pl !== void 0) p.resolve(new PayloadReply(frame.body, frame.pl));
7204
7226
  else p.resolve(frame.body);
7205
7227
  return;
@@ -9385,6 +9407,7 @@ var CapRouteResolver = class {
9385
9407
  return await this.dispatchInner(route, method, args, addonId, callerAddonId);
9386
9408
  } catch (err) {
9387
9409
  if (err instanceof CapRouteError) throw err;
9410
+ if (route.kind === "hub-in-process" || err instanceof PeerAnsweredError) throw err;
9388
9411
  const nodeId = this.routeNodeId(route);
9389
9412
  const cause = err instanceof Error ? err : new Error(String(err));
9390
9413
  throw new CapRouteError(route.capName, method, {
@@ -12320,4 +12343,4 @@ function createChildCapDispatch(deps) {
12320
12343
  };
12321
12344
  }
12322
12345
  //#endregion
12323
- export { FrameDecoder as $, startHeapWatch as $t, createUdsEventBus as A, diffSocketPlane as An, HEAP_RECLAIM_MIN_INTERVAL_MS as At, LocalChildClient as B, CAP_ACTION_UNLABELLED as Bn, RUNNER_HEAP_WATCH_INTERVAL_MS as Bt, brokerTransportLink as C, createMeshQueueReader as Cn, resolveAddonClass as Ct, localProviderLink as D, SOCKET_QUEUE_TOP_N as Dn, createAddonPeerBytesFacility as Dt, ipcParentLink as E, SOCKET_PLANE_TOP_N as En, runNpm as Et, AGENT_CAP_FWD_SERVICE as F, recordSocketFrame as Fn, HUB_MAIN_HEAP_WATCH_LABEL as Ft, PARENT_ROUTED_PROVIDER_ADDON_ID as G, diffCapActionCensus as Gn, createLoopDelayMeter as Gt, UDS_NO_ROUTE_PREFIX as H, MAX_CAP_ACTIONS_PER_PEER as Hn, ZERO_LOOP_DELAY as Ht, CapRouteResolver as I, sampleSocketDirection as In, HUB_MAIN_RSS_BUDGET_MB as It, createLocalTransport as J, createEventPlaneReader as Jn, hubMainRssBudget as Jt, __resetCapUsageRegistryForTests as K, EVENT_PLANE_TOP_N as Kn, createV8Reclaimer as Kt, callWithServiceDiscovery as L, socketDirectionBytes as Ln, HUB_RSS_BUDGET_ENV as Lt, createUdsLogger as M, readSocketQueues as Mn, HEAP_RECLAIM_TRIGGER_MB as Mt, createUdsLoggerWithControl as N, EMPTY_SOCKET_DIRECTION as Nn, HEAP_WATCH_INTERVAL_MS as Nt, createParentUnownedCallHandler as O, createSocketPlaneMeter as On, hostNodeIdOf as Ot, AGENT_CAP_FWD_ACTION as P, createSocketDirectionCounters as Pn, HEAP_WATCH_WARN_RATIO as Pt, localEndpointPath as Q, shouldReclaim as Qt, CapRouteError as R, socketDirectionMessages as Rn, RSS_BUDGET_REANNOUNCE_MIN_MS as Rt, brokerCallForCap as S, MESH_QUEUE_TOP_N as Sn, installManifestNativeDeps as St, deviceCapResolverLink as T, EMPTY_SOCKET_PLANE_BASELINE as Tn, resolveNpmInvocation as Tt, readMoleculerFanoutMode as U, capActionLabel as Un, buildHeapSample as Ut, LocalChildRegistry as V, EMPTY_CAP_ACTION_READING as Vn, RUNNER_RSS_BUDGET_ENV as Vt, CapUsageRegistry as W, createCapActionCensus as Wn, createDeferredHeapWatchSink as Wt, UdsLocalTransportServer as X, formatEventPlane as Xn, parseRssBudgetMb as Xt, UdsLocalTransportClient as Y, diffEventPlane as Yn, nextRssBudgetState as Yt, SocketChannel as Z, reclaimIntervalMs as Zt, setNodeEventInterest as _, OUTBOUND_QUEUE_COOLDOWN_MS as _n, serializeTypedArrays as _t, adaptBrokerToCluster as a, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO as an, getWorkerNativeCapSnapshot as at, createKernelHwAccel as b, createOutboundQueueGate as bn, CapabilityUnavailableError as bt, getWorkerDeviceRegistry as c, formatArrayBufferCensus as cn, createAddonService as ct, setHubConnected as d, HEAP_SPACE_REPORT_MIN_MB as dn, capActionName as dt, startRunnerHeapWatch as en, encodeFrame as et, EVENT_TOPIC_PREFIX as f, emitHeapDiagnosticReport as fn, capActionSuffix as ft, registerEventBusService as g, selectReportedSpaces as gn, deserializeTypedArrays as gt, getMoleculerEventStats as h, readHeapSpaces as hn, parseCapAction as ht, installManifestPythonDeps as i, ARRAY_BUFFER_CENSUS_THRESHOLD_MB as in, getWorkerNativeCapProvider as it, udsChildLogToWorkerEntry as j, formatSocketPlane as jn, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS as jt, createUdsEventBridge as k, createSocketPlaneReader as kn, createAddonDataPlaneFacility as kt, getOrInitReadinessRegistry as l, isArrayBufferCensusReport as ln, validateProviderRegistrations as lt, getBrokerEventBus as m, heapSpaceField as mn, capServiceName as mt, createChildCapDispatch as n, ARRAY_BUFFER_CENSUS_COOLDOWN_MS as nn, buildUdsNativeCapProxy as nt, createAddonContext as o, createArrayBufferCensusGate as on, mountNativeCapService as ot, clusterEventTopic as p, formatHeapSpaces as pn, capBareAction as pt, getCapUsageRegistry as q, createEventPlaneMeter as qn, describeRss as qt, installManifestSystemDeps as r, ARRAY_BUFFER_CENSUS_SUSTAIN_MS as rn, createBrokerDeviceManagerApi as rt, createUdsAddonContext as s, createInspectorArrayBufferCensus as sn, setWorkerNativeCapsChangeListener as st, CAP_METHOD_NOT_IMPLEMENTED as t, strandedMb as tn, buildNativeCapProxy as tt, getOrInitReadinessRegistryForClient as u, DECISIVE_HEAP_SPACES as un, NATIVE_PROVIDER_SERVICE_INFIX as ut, subscribePassthrough as v, OUTBOUND_QUEUE_SUSTAIN_MS as vn, DeviceRegistry as vt, buildLinkChain as w, formatMeshQueue as wn, buildNpmChildEnv as wt, resolveHwAccel as x, formatOutboundQueueVerdict as xn, copyBundledNativeModules as xt, AddonDepsManager as y, OUTBOUND_QUEUE_THRESHOLD_BYTES as yn, CapabilityHandle as yt, classifyCapRoute as z, CAP_ACTION_OVERFLOW_LABEL as zn, RSS_BUDGET_RELEASE_RATIO as zt };
12346
+ export { localEndpointPath as $, shouldReclaim as $t, createUdsEventBus as A, createSocketPlaneReader as An, createAddonDataPlaneFacility as At, LocalChildClient as B, CAP_ACTION_OVERFLOW_LABEL as Bn, RSS_BUDGET_RELEASE_RATIO as Bt, brokerTransportLink as C, MESH_QUEUE_TOP_N as Cn, installManifestNativeDeps as Ct, localProviderLink as D, SOCKET_PLANE_TOP_N as Dn, runNpm as Dt, ipcParentLink as E, EMPTY_SOCKET_PLANE_BASELINE as En, resolveNpmInvocation as Et, AGENT_CAP_FWD_SERVICE as F, createSocketDirectionCounters as Fn, HEAP_WATCH_WARN_RATIO as Ft, PARENT_ROUTED_PROVIDER_ADDON_ID as G, createCapActionCensus as Gn, createDeferredHeapWatchSink as Gt, UDS_NO_ROUTE_PREFIX as H, EMPTY_CAP_ACTION_READING as Hn, RUNNER_RSS_BUDGET_ENV as Ht, CapRouteResolver as I, recordSocketFrame as In, HUB_MAIN_HEAP_WATCH_LABEL as It, createLocalTransport as J, createEventPlaneMeter as Jn, describeRss as Jt, __resetCapUsageRegistryForTests as K, diffCapActionCensus as Kn, createLoopDelayMeter as Kt, callWithServiceDiscovery as L, sampleSocketDirection as Ln, HUB_MAIN_RSS_BUDGET_MB as Lt, createUdsLogger as M, formatSocketPlane as Mn, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS as Mt, createUdsLoggerWithControl as N, readSocketQueues as Nn, HEAP_RECLAIM_TRIGGER_MB as Nt, createParentUnownedCallHandler as O, SOCKET_QUEUE_TOP_N as On, createAddonPeerBytesFacility as Ot, AGENT_CAP_FWD_ACTION as P, EMPTY_SOCKET_DIRECTION as Pn, HEAP_WATCH_INTERVAL_MS as Pt, PeerAnsweredError as Q, reclaimIntervalMs as Qt, CapRouteError as R, socketDirectionBytes as Rn, HUB_RSS_BUDGET_ENV as Rt, brokerCallForCap as S, formatOutboundQueueVerdict as Sn, copyBundledNativeModules as St, deviceCapResolverLink as T, formatMeshQueue as Tn, buildNpmChildEnv as Tt, readMoleculerFanoutMode as U, MAX_CAP_ACTIONS_PER_PEER as Un, ZERO_LOOP_DELAY as Ut, LocalChildRegistry as V, CAP_ACTION_UNLABELLED as Vn, RUNNER_HEAP_WATCH_INTERVAL_MS as Vt, CapUsageRegistry as W, capActionLabel as Wn, buildHeapSample as Wt, UdsLocalTransportServer as X, diffEventPlane as Xn, nextRssBudgetState as Xt, UdsLocalTransportClient as Y, createEventPlaneReader as Yn, hubMainRssBudget as Yt, SocketChannel as Z, formatEventPlane as Zn, parseRssBudgetMb as Zt, setNodeEventInterest as _, selectReportedSpaces as _n, deserializeTypedArrays as _t, adaptBrokerToCluster as a, ARRAY_BUFFER_CENSUS_THRESHOLD_MB as an, getWorkerNativeCapProvider as at, createKernelHwAccel as b, OUTBOUND_QUEUE_THRESHOLD_BYTES as bn, CapabilityHandle as bt, getWorkerDeviceRegistry as c, createInspectorArrayBufferCensus as cn, setWorkerNativeCapsChangeListener as ct, setHubConnected as d, DECISIVE_HEAP_SPACES as dn, NATIVE_PROVIDER_SERVICE_INFIX as dt, startHeapWatch as en, FrameDecoder as et, EVENT_TOPIC_PREFIX as f, HEAP_SPACE_REPORT_MIN_MB as fn, capActionName as ft, registerEventBusService as g, readHeapSpaces as gn, parseCapAction as gt, getMoleculerEventStats as h, heapSpaceField as hn, capServiceName as ht, installManifestPythonDeps as i, ARRAY_BUFFER_CENSUS_SUSTAIN_MS as in, createBrokerDeviceManagerApi as it, udsChildLogToWorkerEntry as j, diffSocketPlane as jn, HEAP_RECLAIM_MIN_INTERVAL_MS as jt, createUdsEventBridge as k, createSocketPlaneMeter as kn, hostNodeIdOf as kt, getOrInitReadinessRegistry as l, formatArrayBufferCensus as ln, createAddonService as lt, getBrokerEventBus as m, formatHeapSpaces as mn, capBareAction as mt, createChildCapDispatch as n, strandedMb as nn, buildNativeCapProxy as nt, createAddonContext as o, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO as on, getWorkerNativeCapSnapshot as ot, clusterEventTopic as p, emitHeapDiagnosticReport as pn, capActionSuffix as pt, getCapUsageRegistry as q, EVENT_PLANE_TOP_N as qn, createV8Reclaimer as qt, installManifestSystemDeps as r, ARRAY_BUFFER_CENSUS_COOLDOWN_MS as rn, buildUdsNativeCapProxy as rt, createUdsAddonContext as s, createArrayBufferCensusGate as sn, mountNativeCapService as st, CAP_METHOD_NOT_IMPLEMENTED as t, startRunnerHeapWatch as tn, encodeFrame as tt, getOrInitReadinessRegistryForClient as u, isArrayBufferCensusReport as un, validateProviderRegistrations as ut, subscribePassthrough as v, OUTBOUND_QUEUE_COOLDOWN_MS as vn, serializeTypedArrays as vt, buildLinkChain as w, createMeshQueueReader as wn, resolveAddonClass as wt, resolveHwAccel as x, createOutboundQueueGate as xn, CapabilityUnavailableError as xt, AddonDepsManager as y, OUTBOUND_QUEUE_SUSTAIN_MS as yn, DeviceRegistry as yt, classifyCapRoute as z, socketDirectionMessages as zn, RSS_BUDGET_REANNOUNCE_MIN_MS as zt };
@@ -6957,6 +6957,28 @@ function localEndpointPath(nodeId) {
6957
6957
  return (0, node_path.join)((0, node_os.tmpdir)(), `camstack-${safe}.sock`);
6958
6958
  }
6959
6959
  //#endregion
6960
+ //#region src/kernel/transport/peer-answered-error.ts
6961
+ /**
6962
+ * An error the FAR END of a channel answered with.
6963
+ *
6964
+ * The request was delivered, a handler ran, and it said no — typically a
6965
+ * provider refusing by throwing ("No home preset configured for this
6966
+ * camera"). That is an application answer, and it must reach the caller as
6967
+ * the provider's own sentence. A transport failure (channel closed, request
6968
+ * timed out, no child) is a plain `Error` and nobody answered it.
6969
+ *
6970
+ * `CapRouteResolver.dispatch` keys on this class: it used to wrap EVERY
6971
+ * non-routing throw as `CapRouteError{reason:'transport-failed'}`, so an
6972
+ * operator pressing PTZ Home was told the node was "not routable" when the
6973
+ * node had answered (2026-09-25, device 3836).
6974
+ */
6975
+ var PeerAnsweredError = class extends Error {
6976
+ constructor(message) {
6977
+ super(message);
6978
+ this.name = "PeerAnsweredError";
6979
+ }
6980
+ };
6981
+ //#endregion
6960
6982
  //#region src/kernel/transport/local-transport.ts
6961
6983
  /**
6962
6984
  * An answer that carries an opaque payload beside its body.
@@ -7202,7 +7224,7 @@ var SocketChannel = class {
7202
7224
  this.pending.delete(frame.id);
7203
7225
  if (p.timer !== null) clearTimeout(p.timer);
7204
7226
  if (p.action !== null) this.recordAction(p.action.label, p.action.reqBytes, wireBytes);
7205
- if (!frame.ok) p.reject(new Error(frame.err));
7227
+ if (!frame.ok) p.reject(new PeerAnsweredError(frame.err));
7206
7228
  else if (frame.pl !== void 0) p.resolve(new PayloadReply(frame.body, frame.pl));
7207
7229
  else p.resolve(frame.body);
7208
7230
  return;
@@ -9388,6 +9410,7 @@ var CapRouteResolver = class {
9388
9410
  return await this.dispatchInner(route, method, args, addonId, callerAddonId);
9389
9411
  } catch (err) {
9390
9412
  if (err instanceof CapRouteError) throw err;
9413
+ if (route.kind === "hub-in-process" || err instanceof PeerAnsweredError) throw err;
9391
9414
  const nodeId = this.routeNodeId(route);
9392
9415
  const cause = err instanceof Error ? err : new Error(String(err));
9393
9416
  throw new CapRouteError(route.capName, method, {
@@ -12569,6 +12592,12 @@ Object.defineProperty(exports, "PARENT_ROUTED_PROVIDER_ADDON_ID", {
12569
12592
  return PARENT_ROUTED_PROVIDER_ADDON_ID;
12570
12593
  }
12571
12594
  });
12595
+ Object.defineProperty(exports, "PeerAnsweredError", {
12596
+ enumerable: true,
12597
+ get: function() {
12598
+ return PeerAnsweredError;
12599
+ }
12600
+ });
12572
12601
  Object.defineProperty(exports, "RSS_BUDGET_REANNOUNCE_MIN_MS", {
12573
12602
  enumerable: true,
12574
12603
  get: function() {
@@ -14060,11 +14060,22 @@ var LlmGenerateOkSchema = zod.z.object({
14060
14060
  truncated: zod.z.boolean(),
14061
14061
  latencyMs: zod.z.number()
14062
14062
  });
14063
+ /**
14064
+ * WHO refused, on a `refusal`. `guardrail` = a safety filter in front of the
14065
+ * model rejected the request before it answered (Apple Foundation Models
14066
+ * refuses surveillance-framed prompts in 0.1 s); `model` = the model itself
14067
+ * declined. They are different faults: a guardrail refusal is a property of
14068
+ * the BACKEND, so the provider falls back to the next profile; a model refusal
14069
+ * is an answer. Absent on every other code, and on a refusal a wire cannot
14070
+ * attribute.
14071
+ */
14072
+ var LlmRefusalSourceSchema = zod.z.enum(["guardrail", "model"]);
14063
14073
  var LlmGenerateErrSchema = zod.z.object({
14064
14074
  ok: zod.z.literal(false),
14065
14075
  code: LlmErrorCodeSchema,
14066
14076
  message: zod.z.string(),
14067
- retryAfterMs: zod.z.number().optional()
14077
+ retryAfterMs: zod.z.number().optional(),
14078
+ refusalSource: LlmRefusalSourceSchema.optional()
14068
14079
  });
14069
14080
  var LlmGenerateResultSchema = zod.z.discriminatedUnion("ok", [LlmGenerateOkSchema, LlmGenerateErrSchema]);
14070
14081
  /**
@@ -14295,6 +14306,77 @@ var LlmRuntimeDiskUsageSchema = zod.z.object({
14295
14306
  modelsBytes: zod.z.number(),
14296
14307
  freeBytes: zod.z.number().optional()
14297
14308
  });
14309
+ var LlmRuntimeCompleteInputSchema = LlmGenerateBaseInputSchema.extend({
14310
+ images: zod.z.array(LlmImageSchema).optional(),
14311
+ runtime: ManagedRuntimeConfigSchema,
14312
+ /** The managed profile's timeout, threaded by the hub provider. */
14313
+ timeoutMs: zod.z.number().int().positive().optional()
14314
+ });
14315
+ /**
14316
+ * Why Apple Foundation Models cannot run on a node that has it in principle.
14317
+ * The first three are Apple's own `UnavailableReason`s, verbatim; the rest are
14318
+ * ours: the OS predates the framework (macOS < 26), the helper binary is not
14319
+ * in the installed addon, or it crashed past the respawn bound.
14320
+ */
14321
+ var AppleFmUnavailableReasonSchema = zod.z.enum([
14322
+ "deviceNotEligible",
14323
+ "appleIntelligenceNotEnabled",
14324
+ "modelNotReady",
14325
+ "osTooOld",
14326
+ "helperMissing",
14327
+ "helperCrashed"
14328
+ ]);
14329
+ /**
14330
+ * Apple Foundation Models on ONE node — four states, never a boolean (D315).
14331
+ *
14332
+ * - `available` — the helper probed it; what it CAN do is reported
14333
+ * here (`imageInput`, `contextSize`, languages),
14334
+ * never typed by an operator.
14335
+ * - `unavailable` — a known absence, with the reason to act on.
14336
+ * - `unsupported-platform` — not a Mac; there is nothing to enable.
14337
+ * - `unknown` — the probe did not answer (not yet run, timed
14338
+ * out, helper crashed mid-probe). A failed
14339
+ * measurement is NEVER `unavailable` (D393).
14340
+ */
14341
+ var AppleFmAvailabilitySchema = zod.z.discriminatedUnion("state", [
14342
+ zod.z.object({
14343
+ state: zod.z.literal("available"),
14344
+ osVersion: zod.z.string(),
14345
+ /** Tokens, as the framework reports it. Read at runtime, never assumed. */
14346
+ contextSize: zod.z.number().int().positive(),
14347
+ /** BCP-47-ish tags (`it-IT`) of the languages the model supports. */
14348
+ languages: zod.z.array(zod.z.string()),
14349
+ /** Whether prompts may carry images. `false` on a macOS 26 build. */
14350
+ imageInput: zod.z.boolean()
14351
+ }),
14352
+ zod.z.object({
14353
+ state: zod.z.literal("unavailable"),
14354
+ reason: AppleFmUnavailableReasonSchema,
14355
+ osVersion: zod.z.string().nullable(),
14356
+ detail: zod.z.string()
14357
+ }),
14358
+ zod.z.object({
14359
+ state: zod.z.literal("unsupported-platform"),
14360
+ platform: zod.z.string()
14361
+ }),
14362
+ zod.z.object({
14363
+ state: zod.z.literal("unknown"),
14364
+ error: zod.z.string()
14365
+ })
14366
+ ]);
14367
+ /**
14368
+ * A generation on the node's Apple Foundation Models helper. A separate verb
14369
+ * from `complete`, whose `runtime` is a llama.cpp config: overloading it would
14370
+ * drag a GGUF model reference into a backend that has none. `images` is part
14371
+ * of the contract so vision needs no cap change later; a node whose model has
14372
+ * no image input REFUSES them (`unavailable`), never drops them.
14373
+ */
14374
+ var LlmRuntimeAppleCompleteInputSchema = LlmGenerateBaseInputSchema.extend({
14375
+ images: zod.z.array(LlmImageSchema).optional(),
14376
+ /** The profile's timeout, threaded by the hub provider. */
14377
+ timeoutMs: zod.z.number().int().positive().optional()
14378
+ });
14379
+ var LlmRuntimeCancelInputSchema = zod.z.object({ requestId: zod.z.string() });
14298
14380
  var llmRuntimeCapability = {
14299
14381
  name: "llm-runtime",
14300
14382
  scope: "system",
@@ -14314,12 +14396,7 @@ var llmRuntimeCapability = {
14314
14396
  * nothing; the public `llm` cap (which end users and non-admin sessions
14315
14397
  * legitimately call for chat/generation) is untouched.
14316
14398
  */
14317
- complete: method(LlmGenerateBaseInputSchema.extend({
14318
- images: zod.z.array(LlmImageSchema).optional(),
14319
- runtime: ManagedRuntimeConfigSchema,
14320
- /** The managed profile's timeout, threaded by the hub provider. */
14321
- timeoutMs: zod.z.number().int().positive().optional()
14322
- }), LlmGenerateResultSchema, {
14399
+ complete: method(LlmRuntimeCompleteInputSchema, LlmGenerateResultSchema, {
14323
14400
  kind: "mutation",
14324
14401
  auth: "admin",
14325
14402
  timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
@@ -14344,7 +14421,28 @@ var llmRuntimeCapability = {
14344
14421
  auth: "admin"
14345
14422
  }),
14346
14423
  listLocalModels: method(zod.z.object({}), zod.z.array(LlmNodeModelSchema), { auth: "admin" }),
14347
- getDiskUsage: method(zod.z.object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" })
14424
+ getDiskUsage: method(zod.z.object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" }),
14425
+ /**
14426
+ * Stop a node-side generation started with a `requestId` — `complete` or
14427
+ * `completeApple`. The hub's `llm.cancel` forwards here with the same
14428
+ * nodePin the generation took; before this existed a cancelled
14429
+ * managed-local generation kept running on the node to its own timeout.
14430
+ * Idempotent: an unknown or finished id is a no-op.
14431
+ */
14432
+ cancel: method(LlmRuntimeCancelInputSchema, zod.z.void(), {
14433
+ kind: "mutation",
14434
+ auth: "admin"
14435
+ }),
14436
+ /**
14437
+ * This node's Apple Foundation Models state, answered from a mirror the
14438
+ * node refreshes in the background — it never waits on a probe.
14439
+ */
14440
+ appleAvailability: method(zod.z.object({}), AppleFmAvailabilitySchema, { auth: "admin" }),
14441
+ completeApple: method(LlmRuntimeAppleCompleteInputSchema, LlmGenerateResultSchema, {
14442
+ kind: "mutation",
14443
+ auth: "admin",
14444
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14445
+ })
14348
14446
  }
14349
14447
  };
14350
14448
  /**
@@ -14363,7 +14461,8 @@ var LlmProfileKindSchema = zod.z.enum([
14363
14461
  "openai",
14364
14462
  "anthropic",
14365
14463
  "google",
14366
- "managed-local"
14464
+ "managed-local",
14465
+ "apple-foundation"
14367
14466
  ]);
14368
14467
  var LlmProfileSchema = zod.z.object({
14369
14468
  id: zod.z.string(),
@@ -14421,7 +14520,14 @@ var LlmProfileSchema = zod.z.object({
14421
14520
  toolsEnabled: zod.z.boolean().default(false),
14422
14521
  extraHeaders: zod.z.record(zod.z.string(), zod.z.string()).optional(),
14423
14522
  /** kind === 'managed-local' only (spec §4). */
14424
- runtime: ManagedRuntimeConfigSchema.optional()
14523
+ runtime: ManagedRuntimeConfigSchema.optional(),
14524
+ /**
14525
+ * kind === 'apple-foundation' only: WHERE it runs — the only thing there is
14526
+ * to configure (no key, no URL, no download; `model` is `apple-system`).
14527
+ * `supportsVision` on such a row is stamped by the provider from the node's
14528
+ * reported `imageInput`, never taken from the operator (D62).
14529
+ */
14530
+ appleFoundation: zod.z.object({ nodeId: zod.z.string() }).optional()
14425
14531
  });
14426
14532
  /** ConfigUISchema tree passed through untyped on the wire (the
14427
14533
  * notification-output `ConfigSchemaPassthrough` precedent at
@@ -14503,7 +14609,9 @@ var LlmRuntimeNodeSchema = zod.z.object({
14503
14609
  reachable: zod.z.boolean(),
14504
14610
  status: LlmRuntimeStatusSchema.optional(),
14505
14611
  disk: LlmRuntimeDiskUsageSchema.optional(),
14506
- error: zod.z.string().optional()
14612
+ error: zod.z.string().optional(),
14613
+ /** Absent = the node did not answer the question (render as unknown). */
14614
+ apple: AppleFmAvailabilitySchema.optional()
14507
14615
  });
14508
14616
  var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: zod.z.array(LlmImageSchema).min(1) });
14509
14617
  var ProfileRefInputSchema = zod.z.object({
@@ -46133,12 +46241,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
46133
46241
  addonId: null,
46134
46242
  access: "create"
46135
46243
  },
46244
+ "llmRuntime.appleAvailability": {
46245
+ capName: "llm-runtime",
46246
+ capScope: "system",
46247
+ addonId: null,
46248
+ access: "view"
46249
+ },
46250
+ "llmRuntime.cancel": {
46251
+ capName: "llm-runtime",
46252
+ capScope: "system",
46253
+ addonId: null,
46254
+ access: "create"
46255
+ },
46136
46256
  "llmRuntime.complete": {
46137
46257
  capName: "llm-runtime",
46138
46258
  capScope: "system",
46139
46259
  addonId: null,
46140
46260
  access: "create"
46141
46261
  },
46262
+ "llmRuntime.completeApple": {
46263
+ capName: "llm-runtime",
46264
+ capScope: "system",
46265
+ addonId: null,
46266
+ access: "create"
46267
+ },
46142
46268
  "llmRuntime.deleteModel": {
46143
46269
  capName: "llm-runtime",
46144
46270
  capScope: "system",
@@ -14060,11 +14060,22 @@ var LlmGenerateOkSchema = z.object({
14060
14060
  truncated: z.boolean(),
14061
14061
  latencyMs: z.number()
14062
14062
  });
14063
+ /**
14064
+ * WHO refused, on a `refusal`. `guardrail` = a safety filter in front of the
14065
+ * model rejected the request before it answered (Apple Foundation Models
14066
+ * refuses surveillance-framed prompts in 0.1 s); `model` = the model itself
14067
+ * declined. They are different faults: a guardrail refusal is a property of
14068
+ * the BACKEND, so the provider falls back to the next profile; a model refusal
14069
+ * is an answer. Absent on every other code, and on a refusal a wire cannot
14070
+ * attribute.
14071
+ */
14072
+ var LlmRefusalSourceSchema = z.enum(["guardrail", "model"]);
14063
14073
  var LlmGenerateErrSchema = z.object({
14064
14074
  ok: z.literal(false),
14065
14075
  code: LlmErrorCodeSchema,
14066
14076
  message: z.string(),
14067
- retryAfterMs: z.number().optional()
14077
+ retryAfterMs: z.number().optional(),
14078
+ refusalSource: LlmRefusalSourceSchema.optional()
14068
14079
  });
14069
14080
  var LlmGenerateResultSchema = z.discriminatedUnion("ok", [LlmGenerateOkSchema, LlmGenerateErrSchema]);
14070
14081
  /**
@@ -14295,6 +14306,77 @@ var LlmRuntimeDiskUsageSchema = z.object({
14295
14306
  modelsBytes: z.number(),
14296
14307
  freeBytes: z.number().optional()
14297
14308
  });
14309
+ var LlmRuntimeCompleteInputSchema = LlmGenerateBaseInputSchema.extend({
14310
+ images: z.array(LlmImageSchema).optional(),
14311
+ runtime: ManagedRuntimeConfigSchema,
14312
+ /** The managed profile's timeout, threaded by the hub provider. */
14313
+ timeoutMs: z.number().int().positive().optional()
14314
+ });
14315
+ /**
14316
+ * Why Apple Foundation Models cannot run on a node that has it in principle.
14317
+ * The first three are Apple's own `UnavailableReason`s, verbatim; the rest are
14318
+ * ours: the OS predates the framework (macOS < 26), the helper binary is not
14319
+ * in the installed addon, or it crashed past the respawn bound.
14320
+ */
14321
+ var AppleFmUnavailableReasonSchema = z.enum([
14322
+ "deviceNotEligible",
14323
+ "appleIntelligenceNotEnabled",
14324
+ "modelNotReady",
14325
+ "osTooOld",
14326
+ "helperMissing",
14327
+ "helperCrashed"
14328
+ ]);
14329
+ /**
14330
+ * Apple Foundation Models on ONE node — four states, never a boolean (D315).
14331
+ *
14332
+ * - `available` — the helper probed it; what it CAN do is reported
14333
+ * here (`imageInput`, `contextSize`, languages),
14334
+ * never typed by an operator.
14335
+ * - `unavailable` — a known absence, with the reason to act on.
14336
+ * - `unsupported-platform` — not a Mac; there is nothing to enable.
14337
+ * - `unknown` — the probe did not answer (not yet run, timed
14338
+ * out, helper crashed mid-probe). A failed
14339
+ * measurement is NEVER `unavailable` (D393).
14340
+ */
14341
+ var AppleFmAvailabilitySchema = z.discriminatedUnion("state", [
14342
+ z.object({
14343
+ state: z.literal("available"),
14344
+ osVersion: z.string(),
14345
+ /** Tokens, as the framework reports it. Read at runtime, never assumed. */
14346
+ contextSize: z.number().int().positive(),
14347
+ /** BCP-47-ish tags (`it-IT`) of the languages the model supports. */
14348
+ languages: z.array(z.string()),
14349
+ /** Whether prompts may carry images. `false` on a macOS 26 build. */
14350
+ imageInput: z.boolean()
14351
+ }),
14352
+ z.object({
14353
+ state: z.literal("unavailable"),
14354
+ reason: AppleFmUnavailableReasonSchema,
14355
+ osVersion: z.string().nullable(),
14356
+ detail: z.string()
14357
+ }),
14358
+ z.object({
14359
+ state: z.literal("unsupported-platform"),
14360
+ platform: z.string()
14361
+ }),
14362
+ z.object({
14363
+ state: z.literal("unknown"),
14364
+ error: z.string()
14365
+ })
14366
+ ]);
14367
+ /**
14368
+ * A generation on the node's Apple Foundation Models helper. A separate verb
14369
+ * from `complete`, whose `runtime` is a llama.cpp config: overloading it would
14370
+ * drag a GGUF model reference into a backend that has none. `images` is part
14371
+ * of the contract so vision needs no cap change later; a node whose model has
14372
+ * no image input REFUSES them (`unavailable`), never drops them.
14373
+ */
14374
+ var LlmRuntimeAppleCompleteInputSchema = LlmGenerateBaseInputSchema.extend({
14375
+ images: z.array(LlmImageSchema).optional(),
14376
+ /** The profile's timeout, threaded by the hub provider. */
14377
+ timeoutMs: z.number().int().positive().optional()
14378
+ });
14379
+ var LlmRuntimeCancelInputSchema = z.object({ requestId: z.string() });
14298
14380
  var llmRuntimeCapability = {
14299
14381
  name: "llm-runtime",
14300
14382
  scope: "system",
@@ -14314,12 +14396,7 @@ var llmRuntimeCapability = {
14314
14396
  * nothing; the public `llm` cap (which end users and non-admin sessions
14315
14397
  * legitimately call for chat/generation) is untouched.
14316
14398
  */
14317
- complete: method(LlmGenerateBaseInputSchema.extend({
14318
- images: z.array(LlmImageSchema).optional(),
14319
- runtime: ManagedRuntimeConfigSchema,
14320
- /** The managed profile's timeout, threaded by the hub provider. */
14321
- timeoutMs: z.number().int().positive().optional()
14322
- }), LlmGenerateResultSchema, {
14399
+ complete: method(LlmRuntimeCompleteInputSchema, LlmGenerateResultSchema, {
14323
14400
  kind: "mutation",
14324
14401
  auth: "admin",
14325
14402
  timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
@@ -14344,7 +14421,28 @@ var llmRuntimeCapability = {
14344
14421
  auth: "admin"
14345
14422
  }),
14346
14423
  listLocalModels: method(z.object({}), z.array(LlmNodeModelSchema), { auth: "admin" }),
14347
- getDiskUsage: method(z.object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" })
14424
+ getDiskUsage: method(z.object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" }),
14425
+ /**
14426
+ * Stop a node-side generation started with a `requestId` — `complete` or
14427
+ * `completeApple`. The hub's `llm.cancel` forwards here with the same
14428
+ * nodePin the generation took; before this existed a cancelled
14429
+ * managed-local generation kept running on the node to its own timeout.
14430
+ * Idempotent: an unknown or finished id is a no-op.
14431
+ */
14432
+ cancel: method(LlmRuntimeCancelInputSchema, z.void(), {
14433
+ kind: "mutation",
14434
+ auth: "admin"
14435
+ }),
14436
+ /**
14437
+ * This node's Apple Foundation Models state, answered from a mirror the
14438
+ * node refreshes in the background — it never waits on a probe.
14439
+ */
14440
+ appleAvailability: method(z.object({}), AppleFmAvailabilitySchema, { auth: "admin" }),
14441
+ completeApple: method(LlmRuntimeAppleCompleteInputSchema, LlmGenerateResultSchema, {
14442
+ kind: "mutation",
14443
+ auth: "admin",
14444
+ timeoutMs: AI_CAP_TRANSPORT_TIMEOUT_MS
14445
+ })
14348
14446
  }
14349
14447
  };
14350
14448
  /**
@@ -14363,7 +14461,8 @@ var LlmProfileKindSchema = z.enum([
14363
14461
  "openai",
14364
14462
  "anthropic",
14365
14463
  "google",
14366
- "managed-local"
14464
+ "managed-local",
14465
+ "apple-foundation"
14367
14466
  ]);
14368
14467
  var LlmProfileSchema = z.object({
14369
14468
  id: z.string(),
@@ -14421,7 +14520,14 @@ var LlmProfileSchema = z.object({
14421
14520
  toolsEnabled: z.boolean().default(false),
14422
14521
  extraHeaders: z.record(z.string(), z.string()).optional(),
14423
14522
  /** kind === 'managed-local' only (spec §4). */
14424
- runtime: ManagedRuntimeConfigSchema.optional()
14523
+ runtime: ManagedRuntimeConfigSchema.optional(),
14524
+ /**
14525
+ * kind === 'apple-foundation' only: WHERE it runs — the only thing there is
14526
+ * to configure (no key, no URL, no download; `model` is `apple-system`).
14527
+ * `supportsVision` on such a row is stamped by the provider from the node's
14528
+ * reported `imageInput`, never taken from the operator (D62).
14529
+ */
14530
+ appleFoundation: z.object({ nodeId: z.string() }).optional()
14425
14531
  });
14426
14532
  /** ConfigUISchema tree passed through untyped on the wire (the
14427
14533
  * notification-output `ConfigSchemaPassthrough` precedent at
@@ -14503,7 +14609,9 @@ var LlmRuntimeNodeSchema = z.object({
14503
14609
  reachable: z.boolean(),
14504
14610
  status: LlmRuntimeStatusSchema.optional(),
14505
14611
  disk: LlmRuntimeDiskUsageSchema.optional(),
14506
- error: z.string().optional()
14612
+ error: z.string().optional(),
14613
+ /** Absent = the node did not answer the question (render as unknown). */
14614
+ apple: AppleFmAvailabilitySchema.optional()
14507
14615
  });
14508
14616
  var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: z.array(LlmImageSchema).min(1) });
14509
14617
  var ProfileRefInputSchema = z.object({
@@ -46133,12 +46241,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
46133
46241
  addonId: null,
46134
46242
  access: "create"
46135
46243
  },
46244
+ "llmRuntime.appleAvailability": {
46245
+ capName: "llm-runtime",
46246
+ capScope: "system",
46247
+ addonId: null,
46248
+ access: "view"
46249
+ },
46250
+ "llmRuntime.cancel": {
46251
+ capName: "llm-runtime",
46252
+ capScope: "system",
46253
+ addonId: null,
46254
+ access: "create"
46255
+ },
46136
46256
  "llmRuntime.complete": {
46137
46257
  capName: "llm-runtime",
46138
46258
  capScope: "system",
46139
46259
  addonId: null,
46140
46260
  access: "create"
46141
46261
  },
46262
+ "llmRuntime.completeApple": {
46263
+ capName: "llm-runtime",
46264
+ capScope: "system",
46265
+ addonId: null,
46266
+ access: "create"
46267
+ },
46142
46268
  "llmRuntime.deleteModel": {
46143
46269
  capName: "llm-runtime",
46144
46270
  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-DaqbC6N5.js");
3
+ const require_dist = require("./dist-BoZJWfY7.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");
@@ -27,7 +27,7 @@ require("./builtins/system-config/index.js");
27
27
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
28
28
  const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CAsHdMwP.js");
29
29
  const require_tls$1 = require("./tls-D_wUeOTD.js");
30
- const require_child_cap_dispatch = require("./child-cap-dispatch-CzNzGnGm.js");
30
+ const require_child_cap_dispatch = require("./child-cap-dispatch-De5_HcvR.js");
31
31
  const require_resource_monitor = require("./resource-monitor-LVE1BoLs.js");
32
32
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
33
33
  let zod = require("zod");
@@ -95951,6 +95951,7 @@ Object.defineProperty(exports, "PYTHON_VERSION", {
95951
95951
  return _camstack_types_node.PYTHON_VERSION;
95952
95952
  }
95953
95953
  });
95954
+ exports.PeerAnsweredError = require_child_cap_dispatch.PeerAnsweredError;
95954
95955
  exports.PipelineRunner = PipelineRunner;
95955
95956
  exports.PipelineValidator = PipelineValidator;
95956
95957
  exports.PythonEnvManager = PythonEnvManager;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { At as logLevelAtMost, Bn as EventCategory$1, Cn as asJsonObject$1, Ct as kebabToCamel, Dn as emitDownForOwnedCaps, En as createEvent, Et as lifecycleJobSchema, Fn as parseJsonUnknown, Ht as procedureAuthKey, In as readinessKey, Ln as resolveCapMount, Pn as parseJsonObject, R as addonSettingsCapability, Rn as scopeKey, Rt as objectInputDeclaresAddonId, St as isVoidInput, T as RUNTIME_DEFAULTS, Tn as asString$1, Xt as scopesAllowDeviceCap, Yt as scopesAllowAddon, _ as LOG_LEVEL_RANK, _t as isCollectionArrayMethod, b as METHOD_ACCESS_MAP, bn as ReadinessRegistry, dn as errMsg$1, dt as extractNestedAddonId, gn as DEVICE_STATUS_METHOD, gt as isArrayOutputSchema, hn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, jt as looseSchema, kn as expandCapMethods, mn as DATAPLANE_SECRET_HEADER$1, qt as resolveMethodAuth, t as ALL_CAPABILITY_DEFINITIONS, wn as asNumber, xn as ReadinessTimeoutError, yt as isObjectInput, zt as objectInputDeclaresRequiredDeviceId } from "./dist-O_Cf9RQm.mjs";
2
+ import { At as logLevelAtMost, Bn as EventCategory$1, Cn as asJsonObject$1, Ct as kebabToCamel, Dn as emitDownForOwnedCaps, En as createEvent, Et as lifecycleJobSchema, Fn as parseJsonUnknown, Ht as procedureAuthKey, In as readinessKey, Ln as resolveCapMount, Pn as parseJsonObject, R as addonSettingsCapability, Rn as scopeKey, Rt as objectInputDeclaresAddonId, St as isVoidInput, T as RUNTIME_DEFAULTS, Tn as asString$1, Xt as scopesAllowDeviceCap, Yt as scopesAllowAddon, _ as LOG_LEVEL_RANK, _t as isCollectionArrayMethod, b as METHOD_ACCESS_MAP, bn as ReadinessRegistry, dn as errMsg$1, dt as extractNestedAddonId, gn as DEVICE_STATUS_METHOD, gt as isArrayOutputSchema, hn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, jt as looseSchema, kn as expandCapMethods, mn as DATAPLANE_SECRET_HEADER$1, qt as resolveMethodAuth, t as ALL_CAPABILITY_DEFINITIONS, wn as asNumber, xn as ReadinessTimeoutError, yt as isObjectInput, zt as objectInputDeclaresRequiredDeviceId } from "./dist-pTyVeilm.mjs";
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";
@@ -26,7 +26,7 @@ import "./builtins/system-config/index.mjs";
26
26
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
27
27
  import { _ as fetchJson, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, f as collectModelFiles, g as ensureModel, h as downloadModel, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as downloadFile, n as STALL_TICK_MS, o as contentTypeFor, p as deleteModelFromDisk, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as getModelFilePath, y as isModelDownloaded } from "./event-loop-stall-monitor-GPrVvx14.mjs";
28
28
  import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-IM-v7JV4.mjs";
29
- import { $ as FrameDecoder, $t as startHeapWatch, A as createUdsEventBus, An as diffSocketPlane, At as HEAP_RECLAIM_MIN_INTERVAL_MS, B as LocalChildClient, Bn as CAP_ACTION_UNLABELLED, Bt as RUNNER_HEAP_WATCH_INTERVAL_MS, C as brokerTransportLink, Cn as createMeshQueueReader, Ct as resolveAddonClass, D as localProviderLink, Dn as SOCKET_QUEUE_TOP_N, Dt as createAddonPeerBytesFacility, E as ipcParentLink, En as SOCKET_PLANE_TOP_N, Et as runNpm, F as AGENT_CAP_FWD_SERVICE, Fn as recordSocketFrame, Ft as HUB_MAIN_HEAP_WATCH_LABEL, G as PARENT_ROUTED_PROVIDER_ADDON_ID, Gn as diffCapActionCensus, Gt as createLoopDelayMeter, H as UDS_NO_ROUTE_PREFIX, Hn as MAX_CAP_ACTIONS_PER_PEER, Ht as ZERO_LOOP_DELAY, I as CapRouteResolver, In as sampleSocketDirection, It as HUB_MAIN_RSS_BUDGET_MB, J as createLocalTransport, Jn as createEventPlaneReader, Jt as hubMainRssBudget, K as __resetCapUsageRegistryForTests, Kn as EVENT_PLANE_TOP_N, Kt as createV8Reclaimer, L as callWithServiceDiscovery, Ln as socketDirectionBytes, Lt as HUB_RSS_BUDGET_ENV, M as createUdsLogger, Mn as readSocketQueues, Mt as HEAP_RECLAIM_TRIGGER_MB, N as createUdsLoggerWithControl, Nn as EMPTY_SOCKET_DIRECTION, Nt as HEAP_WATCH_INTERVAL_MS, O as createParentUnownedCallHandler, On as createSocketPlaneMeter, Ot as hostNodeIdOf, P as AGENT_CAP_FWD_ACTION, Pn as createSocketDirectionCounters, Pt as HEAP_WATCH_WARN_RATIO, Q as localEndpointPath, Qt as shouldReclaim, R as CapRouteError, Rn as socketDirectionMessages, Rt as RSS_BUDGET_REANNOUNCE_MIN_MS, S as brokerCallForCap, Sn as MESH_QUEUE_TOP_N, St as installManifestNativeDeps, T as deviceCapResolverLink, Tn as EMPTY_SOCKET_PLANE_BASELINE, Tt as resolveNpmInvocation, U as readMoleculerFanoutMode, Un as capActionLabel, Ut as buildHeapSample, V as LocalChildRegistry, Vn as EMPTY_CAP_ACTION_READING, Vt as RUNNER_RSS_BUDGET_ENV, W as CapUsageRegistry, Wn as createCapActionCensus, Wt as createDeferredHeapWatchSink, X as UdsLocalTransportServer, Xn as formatEventPlane, Xt as parseRssBudgetMb, Y as UdsLocalTransportClient, Yn as diffEventPlane, Yt as nextRssBudgetState, Z as SocketChannel, Zt as reclaimIntervalMs, _ as setNodeEventInterest, _n as OUTBOUND_QUEUE_COOLDOWN_MS, _t as serializeTypedArrays, a as adaptBrokerToCluster, an as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, b as createKernelHwAccel, bn as createOutboundQueueGate, bt as CapabilityUnavailableError, c as getWorkerDeviceRegistry, cn as formatArrayBufferCensus, ct as createAddonService, d as setHubConnected, dn as HEAP_SPACE_REPORT_MIN_MB, dt as capActionName, en as startRunnerHeapWatch, et as encodeFrame, f as EVENT_TOPIC_PREFIX, fn as emitHeapDiagnosticReport, ft as capActionSuffix, g as registerEventBusService, gn as selectReportedSpaces, gt as deserializeTypedArrays, h as getMoleculerEventStats, hn as readHeapSpaces, ht as parseCapAction, i as installManifestPythonDeps, in as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, j as udsChildLogToWorkerEntry, jn as formatSocketPlane, jt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, k as createUdsEventBridge, kn as createSocketPlaneReader, kt as createAddonDataPlaneFacility, l as getOrInitReadinessRegistry, ln as isArrayBufferCensusReport, lt as validateProviderRegistrations, m as getBrokerEventBus, mn as heapSpaceField, mt as capServiceName, nn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, nt as buildUdsNativeCapProxy, o as createAddonContext, on as createArrayBufferCensusGate, ot as mountNativeCapService, p as clusterEventTopic, pn as formatHeapSpaces, pt as capBareAction, q as getCapUsageRegistry, qn as createEventPlaneMeter, qt as describeRss, r as installManifestSystemDeps, rn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, rt as createBrokerDeviceManagerApi, s as createUdsAddonContext, sn as createInspectorArrayBufferCensus, t as CAP_METHOD_NOT_IMPLEMENTED, tn as strandedMb, tt as buildNativeCapProxy, u as getOrInitReadinessRegistryForClient, un as DECISIVE_HEAP_SPACES, ut as NATIVE_PROVIDER_SERVICE_INFIX, v as subscribePassthrough, vn as OUTBOUND_QUEUE_SUSTAIN_MS, vt as DeviceRegistry, w as buildLinkChain, wn as formatMeshQueue, wt as buildNpmChildEnv, x as resolveHwAccel, xn as formatOutboundQueueVerdict, xt as copyBundledNativeModules, y as AddonDepsManager, yn as OUTBOUND_QUEUE_THRESHOLD_BYTES, yt as CapabilityHandle, z as classifyCapRoute, zn as CAP_ACTION_OVERFLOW_LABEL, zt as RSS_BUDGET_RELEASE_RATIO } from "./child-cap-dispatch-CWkcQIRe.mjs";
29
+ import { $ as localEndpointPath, $t as shouldReclaim, A as createUdsEventBus, An as createSocketPlaneReader, At as createAddonDataPlaneFacility, B as LocalChildClient, Bn as CAP_ACTION_OVERFLOW_LABEL, Bt as RSS_BUDGET_RELEASE_RATIO, C as brokerTransportLink, Cn as MESH_QUEUE_TOP_N, Ct as installManifestNativeDeps, D as localProviderLink, Dn as SOCKET_PLANE_TOP_N, Dt as runNpm, E as ipcParentLink, En as EMPTY_SOCKET_PLANE_BASELINE, Et as resolveNpmInvocation, F as AGENT_CAP_FWD_SERVICE, Fn as createSocketDirectionCounters, Ft as HEAP_WATCH_WARN_RATIO, G as PARENT_ROUTED_PROVIDER_ADDON_ID, Gn as createCapActionCensus, Gt as createDeferredHeapWatchSink, H as UDS_NO_ROUTE_PREFIX, Hn as EMPTY_CAP_ACTION_READING, Ht as RUNNER_RSS_BUDGET_ENV, I as CapRouteResolver, In as recordSocketFrame, It as HUB_MAIN_HEAP_WATCH_LABEL, J as createLocalTransport, Jn as createEventPlaneMeter, Jt as describeRss, K as __resetCapUsageRegistryForTests, Kn as diffCapActionCensus, Kt as createLoopDelayMeter, L as callWithServiceDiscovery, Ln as sampleSocketDirection, Lt as HUB_MAIN_RSS_BUDGET_MB, M as createUdsLogger, Mn as formatSocketPlane, Mt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, N as createUdsLoggerWithControl, Nn as readSocketQueues, Nt as HEAP_RECLAIM_TRIGGER_MB, O as createParentUnownedCallHandler, On as SOCKET_QUEUE_TOP_N, Ot as createAddonPeerBytesFacility, P as AGENT_CAP_FWD_ACTION, Pn as EMPTY_SOCKET_DIRECTION, Pt as HEAP_WATCH_INTERVAL_MS, Q as PeerAnsweredError, Qt as reclaimIntervalMs, R as CapRouteError, Rn as socketDirectionBytes, Rt as HUB_RSS_BUDGET_ENV, S as brokerCallForCap, Sn as formatOutboundQueueVerdict, St as copyBundledNativeModules, T as deviceCapResolverLink, Tn as formatMeshQueue, Tt as buildNpmChildEnv, U as readMoleculerFanoutMode, Un as MAX_CAP_ACTIONS_PER_PEER, Ut as ZERO_LOOP_DELAY, V as LocalChildRegistry, Vn as CAP_ACTION_UNLABELLED, Vt as RUNNER_HEAP_WATCH_INTERVAL_MS, W as CapUsageRegistry, Wn as capActionLabel, Wt as buildHeapSample, X as UdsLocalTransportServer, Xn as diffEventPlane, Xt as nextRssBudgetState, Y as UdsLocalTransportClient, Yn as createEventPlaneReader, Yt as hubMainRssBudget, Z as SocketChannel, Zn as formatEventPlane, Zt as parseRssBudgetMb, _ as setNodeEventInterest, _n as selectReportedSpaces, _t as deserializeTypedArrays, a as adaptBrokerToCluster, an as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, b as createKernelHwAccel, bn as OUTBOUND_QUEUE_THRESHOLD_BYTES, bt as CapabilityHandle, c as getWorkerDeviceRegistry, cn as createInspectorArrayBufferCensus, d as setHubConnected, dn as DECISIVE_HEAP_SPACES, dt as NATIVE_PROVIDER_SERVICE_INFIX, en as startHeapWatch, et as FrameDecoder, f as EVENT_TOPIC_PREFIX, fn as HEAP_SPACE_REPORT_MIN_MB, ft as capActionName, g as registerEventBusService, gn as readHeapSpaces, gt as parseCapAction, h as getMoleculerEventStats, hn as heapSpaceField, ht as capServiceName, i as installManifestPythonDeps, in as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, it as createBrokerDeviceManagerApi, j as udsChildLogToWorkerEntry, jn as diffSocketPlane, jt as HEAP_RECLAIM_MIN_INTERVAL_MS, k as createUdsEventBridge, kn as createSocketPlaneMeter, kt as hostNodeIdOf, l as getOrInitReadinessRegistry, ln as formatArrayBufferCensus, lt as createAddonService, m as getBrokerEventBus, mn as formatHeapSpaces, mt as capBareAction, nn as strandedMb, nt as buildNativeCapProxy, o as createAddonContext, on as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, p as clusterEventTopic, pn as emitHeapDiagnosticReport, pt as capActionSuffix, q as getCapUsageRegistry, qn as EVENT_PLANE_TOP_N, qt as createV8Reclaimer, r as installManifestSystemDeps, rn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, rt as buildUdsNativeCapProxy, s as createUdsAddonContext, sn as createArrayBufferCensusGate, st as mountNativeCapService, t as CAP_METHOD_NOT_IMPLEMENTED, tn as startRunnerHeapWatch, tt as encodeFrame, u as getOrInitReadinessRegistryForClient, un as isArrayBufferCensusReport, ut as validateProviderRegistrations, v as subscribePassthrough, vn as OUTBOUND_QUEUE_COOLDOWN_MS, vt as serializeTypedArrays, w as buildLinkChain, wn as createMeshQueueReader, wt as resolveAddonClass, x as resolveHwAccel, xn as createOutboundQueueGate, xt as CapabilityUnavailableError, y as AddonDepsManager, yn as OUTBOUND_QUEUE_SUSTAIN_MS, yt as DeviceRegistry, z as classifyCapRoute, zn as socketDirectionMessages, zt as RSS_BUDGET_REANNOUNCE_MIN_MS } from "./child-cap-dispatch-C1c3rWaX.mjs";
30
30
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Vp0bPV3U.mjs";
31
31
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
32
32
  import { z } from "zod";
@@ -95829,4 +95829,4 @@ var LifecycleJobEngine = class {
95829
95829
  }
95830
95830
  };
95831
95831
  //#endregion
95832
- export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CAP_METHOD_NOT_IMPLEMENTED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_QUEUE_TOP_N, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonPeerBytesFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, diffCapActionCensus, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hostNodeIdOf, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, isolatedBuiltinPhase, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, nextRssBudgetState, parseCapAction, parseRangeHeader, parseRssBudgetMb, parseTokenizedUrl, partitionIsolatedBuiltinIds, proxyToUpstream, quarantineAddonResidue, readExtraSans, readHeapSpaces, readLanHttpState, readMoleculerFanoutMode, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, setHubConnected, setNodeEventInterest, setWrapperActive, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
95832
+ export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CAP_METHOD_NOT_IMPLEMENTED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_QUEUE_TOP_N, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PeerAnsweredError, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonPeerBytesFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, diffCapActionCensus, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hostNodeIdOf, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, isolatedBuiltinPhase, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, nextRssBudgetState, parseCapAction, parseRangeHeader, parseRssBudgetMb, parseTokenizedUrl, partitionIsolatedBuiltinIds, proxyToUpstream, quarantineAddonResidue, readExtraSans, readHeapSpaces, readLanHttpState, readMoleculerFanoutMode, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, setHubConnected, setNodeEventInterest, setWrapperActive, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
@@ -6,6 +6,7 @@ export type { CapActionCensus, CapActionChannelObserver, CapActionDelta, CapActi
6
6
  export { CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, capActionLabel, createCapActionCensus, diffCapActionCensus, EMPTY_CAP_ACTION_READING, MAX_CAP_ACTIONS_PER_PEER, } from './cap-action-census.js';
7
7
  export { localEndpointPath } from './local-endpoint-path.js';
8
8
  export { SocketChannel } from './socket-channel.js';
9
+ export { PeerAnsweredError } from './peer-answered-error.js';
9
10
  export { UdsLocalTransportServer, UdsLocalTransportClient } from './uds-local-transport.js';
10
11
  export { createLocalTransport } from './create-local-transport.js';
11
12
  export type { ChildCapDescriptor, RegisterMessage, ChildLogMessage, ChildEventMessage, ChildToParentRequest, CapCallMessage, CapCallInput, CapCallOutMessage, AddonCallMessage, AddonCallInput, AddonCallTarget, AddonSettingsMethod, ParentToChildRequest, RegisteredChild, SetLogLevelMessage, } from './child-cap-protocol.js';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * An error the FAR END of a channel answered with.
3
+ *
4
+ * The request was delivered, a handler ran, and it said no — typically a
5
+ * provider refusing by throwing ("No home preset configured for this
6
+ * camera"). That is an application answer, and it must reach the caller as
7
+ * the provider's own sentence. A transport failure (channel closed, request
8
+ * timed out, no child) is a plain `Error` and nobody answered it.
9
+ *
10
+ * `CapRouteResolver.dispatch` keys on this class: it used to wrap EVERY
11
+ * non-routing throw as `CapRouteError{reason:'transport-failed'}`, so an
12
+ * operator pressing PTZ Home was told the node was "not routable" when the
13
+ * node had answered (2026-09-25, device 3836).
14
+ */
15
+ export declare class PeerAnsweredError extends Error {
16
+ constructor(message: string);
17
+ }
@@ -1,4 +1,4 @@
1
- import { Cn as asJsonObject } from "./dist-O_Cf9RQm.mjs";
1
+ import { Cn as asJsonObject } from "./dist-pTyVeilm.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-DaqbC6N5.js");
1
+ const require_dist = require("./dist-BoZJWfY7.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.297",
3
+ "version": "1.2.298",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",