@camstack/system 1.2.281 → 1.2.283

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 (59) 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/{dist-BEICnNLn.js → dist-CSX0ndRm.js} +17 -0
  52. package/dist/{dist-OKbs4A_r.mjs → dist-DXTl8qwI.mjs} +17 -0
  53. package/dist/index.js +2 -2
  54. package/dist/index.mjs +2 -2
  55. package/dist/{manifest-system-deps-CfVyUKLU.js → manifest-system-deps-D1L_i2Iv.js} +69 -8
  56. package/dist/{manifest-system-deps-BXf-Ouqx.mjs → manifest-system-deps-DMyJsJWO.mjs} +69 -8
  57. package/dist/{retired-settings-keys-eH9h-hTR.js → retired-settings-keys-0CgmlwRY.js} +1 -1
  58. package/dist/{retired-settings-keys-BSensQtj.mjs → retired-settings-keys-TjNMsH7u.mjs} +1 -1
  59. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_system_deps = require("./manifest-system-deps-CfVyUKLU.js");
2
+ const require_manifest_system_deps = require("./manifest-system-deps-D1L_i2Iv.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 { Lt as RUNNER_RSS_BUDGET_ENV, R as LocalChildClient, Xt as startRunnerHeapWatch, a as createUdsAddonContext, at as setWorkerNativeCapsChangeListener, bt as installManifestNativeDeps, cn as emitHeapDiagnosticReport, j as createUdsLoggerWithControl, n as installManifestPythonDeps, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestSystemDeps, xt as resolveAddonClass } from "./manifest-system-deps-BXf-Ouqx.mjs";
1
+ import { Lt as RUNNER_RSS_BUDGET_ENV, R as LocalChildClient, Xt as startRunnerHeapWatch, a as createUdsAddonContext, at as setWorkerNativeCapsChangeListener, bt as installManifestNativeDeps, cn as emitHeapDiagnosticReport, j as createUdsLoggerWithControl, n as installManifestPythonDeps, nt as getWorkerNativeCapProvider, rt as getWorkerNativeCapSnapshot, st as validateProviderRegistrations, t as installManifestSystemDeps, xt as resolveAddonClass } from "./manifest-system-deps-DMyJsJWO.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Fn as EventCategory, P as addonPagesCapability, cn as BaseAddon, on as errMsg } from "../../dist-OKbs4A_r.mjs";
1
+ import { Fn as EventCategory, P as addonPagesCapability, cn as BaseAddon, on as errMsg } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Fn as EventCategory, I as addonWidgetsCapability, cn as BaseAddon, on as errMsg } from "../../dist-OKbs4A_r.mjs";
1
+ import { Fn as EventCategory, I as addonWidgetsCapability, cn as BaseAddon, on as errMsg } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Fn as EventCategory, L as alertsCapability, cn as BaseAddon, n as AlertSchema, on as errMsg, xn as createEvent } from "../../dist-OKbs4A_r.mjs";
1
+ import { Fn as EventCategory, L as alertsCapability, cn as BaseAddon, n as AlertSchema, on as errMsg, xn as createEvent } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { B as bareAddonId, Dn as isEvent, Fn as EventCategory, Lt as ptzAutotrackCapability, cn as BaseAddon, h as FIRST_LEVEL_MACRO_CLASSES, on as errMsg } from "../../dist-OKbs4A_r.mjs";
1
+ import { B as bareAddonId, Dn as isEvent, Fn as EventCategory, Lt as ptzAutotrackCapability, cn as BaseAddon, h as FIRST_LEVEL_MACRO_CLASSES, on as errMsg } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Dt as mayWriteToLocation, Fn as EventCategory, Qt as storageOccupancyCapability, cn as BaseAddon, z as backupCapability } from "../../dist-OKbs4A_r.mjs";
1
+ import { Dt as mayWriteToLocation, Fn as EventCategory, Qt as storageOccupancyCapability, cn as BaseAddon, z as backupCapability } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { At as motionCapability, Fn as EventCategory, Tn as hydrateSchema, U as cameraGridLayoutCapability, Y as declarationOwnerNodeId, Yt as snapshotCapability, b as MOTION_CLOSE_AFTER_MS, cn as BaseAddon, en as streamCatalogCapability, f as DERIVED_CAMERA_SILENCED_CAP_NAMES, fn as DeviceFeature, i as BaseDevice, mn as DeviceType, on as errMsg, p as DeclaredDevices, sn as buildFfmpegArgs, xn as createEvent } from "../../dist-OKbs4A_r.mjs";
1
+ import { At as motionCapability, Fn as EventCategory, Tn as hydrateSchema, U as cameraGridLayoutCapability, Y as declarationOwnerNodeId, Yt as snapshotCapability, b as MOTION_CLOSE_AFTER_MS, cn as BaseAddon, en as streamCatalogCapability, f as DERIVED_CAMERA_SILENCED_CAP_NAMES, fn as DeviceFeature, i as BaseDevice, mn as DeviceType, on as errMsg, p as DeclaredDevices, sn as buildFfmpegArgs, xn as createEvent } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-OKbs4A_r.mjs";
1
+ import { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
3
+ const require_dist = require("../../dist-CSX0ndRm.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 { G as coreBlockAddonId, K as coreBlockIdFromAddonId, c as CORE_BLOCKS_ADDON_ID, cn as BaseAddon, l as CORE_BLOCK_ADDON_PREFIX, on as errMsg, p as DeclaredDevices, q as coreBlocksCapability, u as CoreBlockSchema } from "../../dist-OKbs4A_r.mjs";
1
+ import { G as coreBlockAddonId, K as coreBlockIdFromAddonId, c as CORE_BLOCKS_ADDON_ID, cn as BaseAddon, l as CORE_BLOCK_ADDON_PREFIX, on as errMsg, p as DeclaredDevices, q as coreBlocksCapability, u as CoreBlockSchema } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-eH9h-hTR.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-0CgmlwRY.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 { $ as deviceStateCapability, Bt as resolveContainerPrimaryChild, D as STREAM_PROFILE_META, En as isDeviceConfigCap, Fn as EventCategory, H as buildStreamParamsConfigSchema, Jt as siteZoneKey, Pn as sleep$1, Pt as parseStreamParamsFormPatch, Q as deviceManagerCapability, St as locationIconKey, Ut as runtimeStatePolicyFor, _n as WELL_KNOWN_TAB_MAP, cn as BaseAddon, et as deviceStatusCapability, fn as DeviceFeature, it as enumerateSchemaFields, jt as normalizeUnit, m as DeviceStatusSchema, mn as DeviceType, o as CAMERA_SWITCH_ORDER, on as errMsg, pn as DeviceRole, rt as enumerateItemArrayFields, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, v as LocationIconIdSchema } from "../../dist-OKbs4A_r.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-BSensQtj.mjs";
1
+ import { $ as deviceStateCapability, Bt as resolveContainerPrimaryChild, D as STREAM_PROFILE_META, En as isDeviceConfigCap, Fn as EventCategory, H as buildStreamParamsConfigSchema, Jt as siteZoneKey, Pn as sleep$1, Pt as parseStreamParamsFormPatch, Q as deviceManagerCapability, St as locationIconKey, Ut as runtimeStatePolicyFor, _n as WELL_KNOWN_TAB_MAP, cn as BaseAddon, et as deviceStatusCapability, fn as DeviceFeature, it as enumerateSchemaFields, jt as normalizeUnit, m as DeviceStatusSchema, mn as DeviceType, o as CAMERA_SWITCH_ORDER, on as errMsg, pn as DeviceRole, rt as enumerateItemArrayFields, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, v as LocationIconIdSchema } from "../../dist-DXTl8qwI.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-TjNMsH7u.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { B as bareAddonId, Fn as EventCategory, T as SOURCE_DEVICE_TYPES, at as evaluateSensorEdge, cn as BaseAddon, gt as isSourceCap, ht as isSameAddonId, mn as DeviceType, on as errMsg, tt as doorbellCapability, w as SOURCE_CAPS, xn as createEvent } from "../../dist-OKbs4A_r.mjs";
1
+ import { B as bareAddonId, Fn as EventCategory, T as SOURCE_DEVICE_TYPES, at as evaluateSensorEdge, cn as BaseAddon, gt as isSourceCap, ht as isSameAddonId, mn as DeviceType, on as errMsg, tt as doorbellCapability, w as SOURCE_CAPS, xn as createEvent } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-OKbs4A_r.mjs";
1
+ import { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
3
+ const require_dist = require("../../dist-CSX0ndRm.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 { C as RecordingStatusSchema, Fn as EventCategory, cn as BaseAddon, on as errMsg, xn as createEvent } from "../../dist-OKbs4A_r.mjs";
1
+ import { C as RecordingStatusSchema, Fn as EventCategory, cn as BaseAddon, on as errMsg, xn as createEvent } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { N as UserRecordSchema, O as ScopedTokenSchema, R as authProviderCapability, cn as BaseAddon, nn as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-OKbs4A_r.mjs";
2
+ import { N as UserRecordSchema, O as ScopedTokenSchema, R as authProviderCapability, cn as BaseAddon, nn as userManagementCapability, r as ApiKeyRecordSchema } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
3
+ const require_dist = require("../../dist-CSX0ndRm.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 { Fn as EventCategory, cn as BaseAddon, xt as localNetworkCapability } from "../../dist-OKbs4A_r.mjs";
1
+ import { Fn as EventCategory, cn as BaseAddon, xt as localNetworkCapability } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-OKbs4A_r.mjs";
1
+ import { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Fn as EventCategory, Ot as metricsProviderCapability, Rt as reducePoints, cn as BaseAddon, lt as foldSnapshotByFunction, on as errMsg, xn as createEvent, zt as resolveBucketMs } from "../../dist-OKbs4A_r.mjs";
1
+ import { Fn as EventCategory, Ot as metricsProviderCapability, Rt as reducePoints, cn as BaseAddon, lt as foldSnapshotByFunction, on as errMsg, xn as createEvent, zt as resolveBucketMs } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Cn as emitReadiness, Fn as EventCategory, Ft as platformProbeCapability, Kt as scoreRuntimes, cn as BaseAddon, nt as enumerateInferenceDevices, on as errMsg } from "../../dist-OKbs4A_r.mjs";
2
+ import { Cn as emitReadiness, Fn as EventCategory, Ft as platformProbeCapability, Kt as scoreRuntimes, cn as BaseAddon, nt as enumerateInferenceDevices, on as errMsg } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Fn as EventCategory, cn as BaseAddon } from "../../dist-OKbs4A_r.mjs";
1
+ import { Fn as EventCategory, cn as BaseAddon } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { B as bareAddonId, Fn as EventCategory, On as nodePin, V as batteryCapability, Yt as snapshotCapability, Z as deriveBatteryPresence, a as BatteryStatusSchema, cn as BaseAddon, fn as DeviceFeature, mn as DeviceType, on as errMsg, tn as streamQualityLabel } from "../../dist-OKbs4A_r.mjs";
1
+ import { B as bareAddonId, Fn as EventCategory, On as nodePin, V as batteryCapability, Yt as snapshotCapability, Z as deriveBatteryPresence, a as BatteryStatusSchema, cn as BaseAddon, fn as DeviceFeature, mn as DeviceType, on as errMsg, tn as streamQualityLabel } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { $t as storageProviderCapability, cn as BaseAddon, ct as filesystemBrowseCapability } from "../../dist-OKbs4A_r.mjs";
1
+ import { $t as storageProviderCapability, cn as BaseAddon, ct as filesystemBrowseCapability } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { A as StorageLocationModeSchema, Dt as mayWriteToLocation, Et as mayReadLocation, Fn as EventCategory, M as StorageMigrationJobSchema, Vt as resolveLocationMode, W as collectSecretConfigKeys, Xt as storageCapability, Zt as storageMigrationCapability, _ as LegacyStorageLocationDefaultSchema, an as withLocationMode, cn as BaseAddon, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kn as parseJsonObject, kt as modeMayWrite, ot as evictionPolicyOfLocation, pt as isLocationEnabled, qt as settingsStoreCapability, ut as gbToBytes, x as REDACTED_SECRET, yt as legacyModeOf } from "../../dist-OKbs4A_r.mjs";
1
+ import { A as StorageLocationModeSchema, Dt as mayWriteToLocation, Et as mayReadLocation, Fn as EventCategory, M as StorageMigrationJobSchema, Vt as resolveLocationMode, W as collectSecretConfigKeys, Xt as storageCapability, Zt as storageMigrationCapability, _ as LegacyStorageLocationDefaultSchema, an as withLocationMode, cn as BaseAddon, j as StorageLocationTypeSchema, k as StorageCleanupJobSchema, kn as parseJsonObject, kt as modeMayWrite, ot as evictionPolicyOfLocation, pt as isLocationEnabled, qt as settingsStoreCapability, ut as gbToBytes, x as REDACTED_SECRET, yt as legacyModeOf } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Tn as hydrateSchema, cn as BaseAddon, on as errMsg } from "../../dist-OKbs4A_r.mjs";
1
+ import { Tn as hydrateSchema, cn as BaseAddon, on as errMsg } from "../../dist-DXTl8qwI.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-BEICnNLn.js");
6
+ const require_dist = require("../../dist-CSX0ndRm.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 { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-OKbs4A_r.mjs";
1
+ import { Ct as logDestinationCapability, cn as BaseAddon } from "../../dist-DXTl8qwI.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";
@@ -26489,6 +26489,23 @@ var videoclipsCapability = {
26489
26489
  deviceId: zod.z.number(),
26490
26490
  clipId: zod.z.string().min(1),
26491
26491
  /**
26492
+ * WHICH provider holds the bytes — the `addonId` a
26493
+ * {@link ClipSourceSchema} row carries. **Required**, for the reason
26494
+ * `listClips` states one method above and for a second one this method
26495
+ * learned the hard way.
26496
+ *
26497
+ * The caller is the stream broker, and the broker lives in
26498
+ * `addon-pipeline` — the same addon that registers the RECORDER's
26499
+ * videoclips provider. With no provider named, the in-process
26500
+ * resolution handed it its own sibling, which implements this method
26501
+ * solely to explain that an analytics visit has no file behind it. So
26502
+ * every onboard clip answered with that sentence, a flash of video and
26503
+ * nothing more, while the SAME call from outside the addon reached the
26504
+ * right provider and returned the bytes (measured on 3628,
26505
+ * 2026-09-21).
26506
+ */
26507
+ provider: zod.z.string().min(1),
26508
+ /**
26492
26509
  * Which twin to fetch, on the mapping D549 15 already fixed:
26493
26510
  * `low | mid` → the sub file, `high` → the main twin. `auto` is not
26494
26511
  * accepted here for the same reason it is not accepted by
@@ -26489,6 +26489,23 @@ var videoclipsCapability = {
26489
26489
  deviceId: z.number(),
26490
26490
  clipId: z.string().min(1),
26491
26491
  /**
26492
+ * WHICH provider holds the bytes — the `addonId` a
26493
+ * {@link ClipSourceSchema} row carries. **Required**, for the reason
26494
+ * `listClips` states one method above and for a second one this method
26495
+ * learned the hard way.
26496
+ *
26497
+ * The caller is the stream broker, and the broker lives in
26498
+ * `addon-pipeline` — the same addon that registers the RECORDER's
26499
+ * videoclips provider. With no provider named, the in-process
26500
+ * resolution handed it its own sibling, which implements this method
26501
+ * solely to explain that an analytics visit has no file behind it. So
26502
+ * every onboard clip answered with that sentence, a flash of video and
26503
+ * nothing more, while the SAME call from outside the addon reached the
26504
+ * right provider and returned the bytes (measured on 3628,
26505
+ * 2026-09-21).
26506
+ */
26507
+ provider: z.string().min(1),
26508
+ /**
26492
26509
  * Which twin to fetch, on the mapping D549 15 already fixed:
26493
26510
  * `low | mid` → the sub file, `high` → the main twin. `auto` is not
26494
26511
  * accepted here for the same reason it is not accepted by
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-BEICnNLn.js");
3
+ const require_dist = require("./dist-CSX0ndRm.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_manifest_system_deps = require("./manifest-system-deps-CfVyUKLU.js");
30
+ const require_manifest_system_deps = require("./manifest-system-deps-D1L_i2Iv.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");
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 { An as parseJsonUnknown, F as addonSettingsCapability, Fn as EventCategory$1, Gt as scopesAllowDeviceCap, Ht as resolveMethodAuth, It as procedureAuthKey, Mn as resolveCapMount, Mt as objectInputDeclaresAddonId, Nn as scopeKey, Nt as objectInputDeclaresRequiredDeviceId, S as RUNTIME_DEFAULTS, Sn as emitDownForOwnedCaps, Tt as looseSchema, Wt as scopesAllowAddon, _t as isVoidInput, bn as asString$1, bt as lifecycleJobSchema, dn as DEVICE_STATUS_METHOD, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, g as LOG_LEVEL_RANK, gn as ReadinessTimeoutError, hn as ReadinessRegistry, jn as readinessKey, kn as parseJsonObject, ln as DATAPLANE_SECRET_HEADER$1, mt as isObjectInput, on as errMsg$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, un as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vn as asJsonObject$1, vt as kebabToCamel, wn as expandCapMethods, wt as logLevelAtMost, xn as createEvent, y as METHOD_ACCESS_MAP, yn as asNumber } from "./dist-OKbs4A_r.mjs";
2
+ import { An as parseJsonUnknown, F as addonSettingsCapability, Fn as EventCategory$1, Gt as scopesAllowDeviceCap, Ht as resolveMethodAuth, It as procedureAuthKey, Mn as resolveCapMount, Mt as objectInputDeclaresAddonId, Nn as scopeKey, Nt as objectInputDeclaresRequiredDeviceId, S as RUNTIME_DEFAULTS, Sn as emitDownForOwnedCaps, Tt as looseSchema, Wt as scopesAllowAddon, _t as isVoidInput, bn as asString$1, bt as lifecycleJobSchema, dn as DEVICE_STATUS_METHOD, dt as isArrayOutputSchema, ft as isCollectionArrayMethod, g as LOG_LEVEL_RANK, gn as ReadinessTimeoutError, hn as ReadinessRegistry, jn as readinessKey, kn as parseJsonObject, ln as DATAPLANE_SECRET_HEADER$1, mt as isObjectInput, on as errMsg$1, st as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, un as DEVICE_SETTINGS_CONTRIBUTION_METHODS, vn as asJsonObject$1, vt as kebabToCamel, wn as expandCapMethods, wt as logLevelAtMost, xn as createEvent, y as METHOD_ACCESS_MAP, yn as asNumber } from "./dist-DXTl8qwI.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 buildNativeCapProxy, $t as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, A as createUdsLogger, An as createSocketDirectionCounters, At as HEAP_WATCH_WARN_RATIO, B as UDS_NO_ROUTE_PREFIX, Bn as createCapActionCensus, Bt as createDeferredHeapWatchSink, C as deviceCapResolverLink, Cn as SOCKET_QUEUE_TOP_N, Ct as resolveNpmInvocation, D as createUdsEventBridge, Dn as formatSocketPlane, Dt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, E as createParentUnownedCallHandler, En as diffSocketPlane, Et as HEAP_RECLAIM_MIN_INTERVAL_MS, F as callWithServiceDiscovery, Fn as CAP_ACTION_OVERFLOW_LABEL, Ft as RSS_BUDGET_RELEASE_RATIO, G as getCapUsageRegistry, Gn as diffEventPlane, Gt as nextRssBudgetState, H as CapUsageRegistry, Hn as EVENT_PLANE_TOP_N, Ht as createV8Reclaimer, I as CapRouteError, In as CAP_ACTION_UNLABELLED, It as RUNNER_HEAP_WATCH_INTERVAL_MS, J as UdsLocalTransportServer, Jt as shouldReclaim, K as createLocalTransport, Kn as formatEventPlane, Kt as parseRssBudgetMb, L as classifyCapRoute, Ln as EMPTY_CAP_ACTION_READING, Lt as RUNNER_RSS_BUDGET_ENV, M as AGENT_CAP_FWD_ACTION, Mn as sampleSocketDirection, Mt as HUB_MAIN_RSS_BUDGET_MB, N as AGENT_CAP_FWD_SERVICE, Nn as socketDirectionBytes, Nt as HUB_RSS_BUDGET_ENV, O as createUdsEventBus, On as readSocketQueues, Ot as HEAP_RECLAIM_TRIGGER_MB, P as CapRouteResolver, Pn as socketDirectionMessages, Pt as RSS_BUDGET_REANNOUNCE_MIN_MS, Q as encodeFrame, Qt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, R as LocalChildClient, Rn as MAX_CAP_ACTIONS_PER_PEER, Rt as ZERO_LOOP_DELAY, S as buildLinkChain, Sn as SOCKET_PLANE_TOP_N, St as buildNpmChildEnv, T as localProviderLink, Tn as createSocketPlaneReader, Tt as createAddonDataPlaneFacility, U as PARENT_ROUTED_PROVIDER_ADDON_ID, Un as createEventPlaneMeter, Ut as describeRss, V as readMoleculerFanoutMode, Vn as diffCapActionCensus, Vt as createLoopDelayMeter, W as __resetCapUsageRegistryForTests, Wn as createEventPlaneReader, Wt as hubMainRssBudget, X as localEndpointPath, Xt as startRunnerHeapWatch, Y as SocketChannel, Yt as startHeapWatch, Z as FrameDecoder, Zt as strandedMb, _ as AddonDepsManager, _n as formatOutboundQueueVerdict, _t as CapabilityHandle, a as createUdsAddonContext, an as isArrayBufferCensusReport, b as brokerCallForCap, bn as formatMeshQueue, bt as installManifestNativeDeps, c as getOrInitReadinessRegistryForClient, cn as emitHeapDiagnosticReport, ct as NATIVE_PROVIDER_SERVICE_INFIX, d as clusterEventTopic, dn as readHeapSpaces, dt as capBareAction, en as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, et as buildUdsNativeCapProxy, f as getBrokerEventBus, fn as selectReportedSpaces, ft as capServiceName, g as subscribePassthrough, gn as createOutboundQueueGate, gt as DeviceRegistry, h as setNodeEventInterest, hn as OUTBOUND_QUEUE_THRESHOLD_BYTES, ht as serializeTypedArrays, i as createAddonContext, in as formatArrayBufferCensus, it as mountNativeCapService, j as createUdsLoggerWithControl, jn as recordSocketFrame, jt as HUB_MAIN_HEAP_WATCH_LABEL, k as udsChildLogToWorkerEntry, kn as EMPTY_SOCKET_DIRECTION, kt as HEAP_WATCH_INTERVAL_MS, l as setHubConnected, ln as formatHeapSpaces, lt as capActionName, m as registerEventBusService, mn as OUTBOUND_QUEUE_SUSTAIN_MS, mt as deserializeTypedArrays, n as installManifestPythonDeps, nn as createArrayBufferCensusGate, o as getWorkerDeviceRegistry, on as DECISIVE_HEAP_SPACES, ot as createAddonService, p as getMoleculerEventStats, pn as OUTBOUND_QUEUE_COOLDOWN_MS, pt as parseCapAction, q as UdsLocalTransportClient, qt as reclaimIntervalMs, r as adaptBrokerToCluster, rn as createInspectorArrayBufferCensus, s as getOrInitReadinessRegistry, sn as HEAP_SPACE_REPORT_MIN_MB, st as validateProviderRegistrations, t as installManifestSystemDeps, tn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, tt as createBrokerDeviceManagerApi, u as EVENT_TOPIC_PREFIX, un as heapSpaceField, ut as capActionSuffix, v as createKernelHwAccel, vn as MESH_QUEUE_TOP_N, vt as CapabilityUnavailableError, w as ipcParentLink, wn as createSocketPlaneMeter, wt as runNpm, x as brokerTransportLink, xn as EMPTY_SOCKET_PLANE_BASELINE, xt as resolveAddonClass, y as resolveHwAccel, yn as createMeshQueueReader, yt as copyBundledNativeModules, z as LocalChildRegistry, zn as capActionLabel, zt as buildHeapSample } from "./manifest-system-deps-BXf-Ouqx.mjs";
29
+ import { $ as buildNativeCapProxy, $t as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, A as createUdsLogger, An as createSocketDirectionCounters, At as HEAP_WATCH_WARN_RATIO, B as UDS_NO_ROUTE_PREFIX, Bn as createCapActionCensus, Bt as createDeferredHeapWatchSink, C as deviceCapResolverLink, Cn as SOCKET_QUEUE_TOP_N, Ct as resolveNpmInvocation, D as createUdsEventBridge, Dn as formatSocketPlane, Dt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, E as createParentUnownedCallHandler, En as diffSocketPlane, Et as HEAP_RECLAIM_MIN_INTERVAL_MS, F as callWithServiceDiscovery, Fn as CAP_ACTION_OVERFLOW_LABEL, Ft as RSS_BUDGET_RELEASE_RATIO, G as getCapUsageRegistry, Gn as diffEventPlane, Gt as nextRssBudgetState, H as CapUsageRegistry, Hn as EVENT_PLANE_TOP_N, Ht as createV8Reclaimer, I as CapRouteError, In as CAP_ACTION_UNLABELLED, It as RUNNER_HEAP_WATCH_INTERVAL_MS, J as UdsLocalTransportServer, Jt as shouldReclaim, K as createLocalTransport, Kn as formatEventPlane, Kt as parseRssBudgetMb, L as classifyCapRoute, Ln as EMPTY_CAP_ACTION_READING, Lt as RUNNER_RSS_BUDGET_ENV, M as AGENT_CAP_FWD_ACTION, Mn as sampleSocketDirection, Mt as HUB_MAIN_RSS_BUDGET_MB, N as AGENT_CAP_FWD_SERVICE, Nn as socketDirectionBytes, Nt as HUB_RSS_BUDGET_ENV, O as createUdsEventBus, On as readSocketQueues, Ot as HEAP_RECLAIM_TRIGGER_MB, P as CapRouteResolver, Pn as socketDirectionMessages, Pt as RSS_BUDGET_REANNOUNCE_MIN_MS, Q as encodeFrame, Qt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, R as LocalChildClient, Rn as MAX_CAP_ACTIONS_PER_PEER, Rt as ZERO_LOOP_DELAY, S as buildLinkChain, Sn as SOCKET_PLANE_TOP_N, St as buildNpmChildEnv, T as localProviderLink, Tn as createSocketPlaneReader, Tt as createAddonDataPlaneFacility, U as PARENT_ROUTED_PROVIDER_ADDON_ID, Un as createEventPlaneMeter, Ut as describeRss, V as readMoleculerFanoutMode, Vn as diffCapActionCensus, Vt as createLoopDelayMeter, W as __resetCapUsageRegistryForTests, Wn as createEventPlaneReader, Wt as hubMainRssBudget, X as localEndpointPath, Xt as startRunnerHeapWatch, Y as SocketChannel, Yt as startHeapWatch, Z as FrameDecoder, Zt as strandedMb, _ as AddonDepsManager, _n as formatOutboundQueueVerdict, _t as CapabilityHandle, a as createUdsAddonContext, an as isArrayBufferCensusReport, b as brokerCallForCap, bn as formatMeshQueue, bt as installManifestNativeDeps, c as getOrInitReadinessRegistryForClient, cn as emitHeapDiagnosticReport, ct as NATIVE_PROVIDER_SERVICE_INFIX, d as clusterEventTopic, dn as readHeapSpaces, dt as capBareAction, en as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, et as buildUdsNativeCapProxy, f as getBrokerEventBus, fn as selectReportedSpaces, ft as capServiceName, g as subscribePassthrough, gn as createOutboundQueueGate, gt as DeviceRegistry, h as setNodeEventInterest, hn as OUTBOUND_QUEUE_THRESHOLD_BYTES, ht as serializeTypedArrays, i as createAddonContext, in as formatArrayBufferCensus, it as mountNativeCapService, j as createUdsLoggerWithControl, jn as recordSocketFrame, jt as HUB_MAIN_HEAP_WATCH_LABEL, k as udsChildLogToWorkerEntry, kn as EMPTY_SOCKET_DIRECTION, kt as HEAP_WATCH_INTERVAL_MS, l as setHubConnected, ln as formatHeapSpaces, lt as capActionName, m as registerEventBusService, mn as OUTBOUND_QUEUE_SUSTAIN_MS, mt as deserializeTypedArrays, n as installManifestPythonDeps, nn as createArrayBufferCensusGate, o as getWorkerDeviceRegistry, on as DECISIVE_HEAP_SPACES, ot as createAddonService, p as getMoleculerEventStats, pn as OUTBOUND_QUEUE_COOLDOWN_MS, pt as parseCapAction, q as UdsLocalTransportClient, qt as reclaimIntervalMs, r as adaptBrokerToCluster, rn as createInspectorArrayBufferCensus, s as getOrInitReadinessRegistry, sn as HEAP_SPACE_REPORT_MIN_MB, st as validateProviderRegistrations, t as installManifestSystemDeps, tn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, tt as createBrokerDeviceManagerApi, u as EVENT_TOPIC_PREFIX, un as heapSpaceField, ut as capActionSuffix, v as createKernelHwAccel, vn as MESH_QUEUE_TOP_N, vt as CapabilityUnavailableError, w as ipcParentLink, wn as createSocketPlaneMeter, wt as runNpm, x as brokerTransportLink, xn as EMPTY_SOCKET_PLANE_BASELINE, xt as resolveAddonClass, y as resolveHwAccel, yn as createMeshQueueReader, yt as copyBundledNativeModules, z as LocalChildRegistry, zn as capActionLabel, zt as buildHeapSample } from "./manifest-system-deps-DMyJsJWO.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";
@@ -9499,6 +9499,59 @@ async function awaitPinnedServiceCandidates(broker, capName, method, forceServic
9499
9499
  return [];
9500
9500
  }
9501
9501
  /**
9502
+ * The input field a caller uses to NAME one provider of a collection cap.
9503
+ *
9504
+ * The same spelling the hub-side mount reads (`PROVIDER_PIN_FIELD` in
9505
+ * `device-collection-dispatch.ts`), because a pin with two spellings is a pin
9506
+ * only one half of the system honours — which is exactly what happened.
9507
+ */
9508
+ var PROVIDER_PIN_FIELD = "provider";
9509
+ /**
9510
+ * Narrow the discovered candidates to the provider the caller NAMED.
9511
+ *
9512
+ * ## Why this exists at the transport, and not only at the hub's mount
9513
+ *
9514
+ * A `collection` cap has several providers, and the hub's tRPC mount already
9515
+ * refuses a pin nobody answers rather than letting a sibling answer it
9516
+ * (`pinnedProvider`, D552/D554). A cross-process addon never reaches that
9517
+ * mount: `ctx.api.<cap>.<method>` leaves its runner over Moleculer, and the
9518
+ * dispatch below used to take `candidates[0]` — the first entry in the
9519
+ * broker's discovery order. On this hub `videoclips` has three providers, so
9520
+ * the operator's clip tap was answered by `recorder` ("an analytics visit has
9521
+ * no file behind it") and, after a redeploy in a different order, by
9522
+ * `export-hap` ("was not minted by the HomeKit source") — the same clip, two
9523
+ * different wrong answers, while the call carried the provider's name twice
9524
+ * over and nothing read it (2026-09-22).
9525
+ *
9526
+ * Moleculer service names map 1:1 to addon ids (`createAddonService`), so the
9527
+ * pin is matched against `serviceName` directly.
9528
+ *
9529
+ * ## Why only when the choice is AMBIGUOUS
9530
+ *
9531
+ * `provider` is an ordinary parameter name on caps that have one
9532
+ * implementation, and 44 capabilities on this hub have more than one provider
9533
+ * row. With a single distinct service there is nothing to choose, so an
9534
+ * unmatched string is left alone: turning it into a refusal would break calls
9535
+ * whose routing was never in question. With several, an unmatched pin is
9536
+ * refused BY NAME and the candidates are listed — the caller asked for one
9537
+ * addon and must not silently receive another's answer.
9538
+ *
9539
+ * Unpinned calls are deliberately unchanged. "Which provider should an
9540
+ * unpinned cross-process collection call reach" is a separate question from
9541
+ * "was the pin honoured", and answering it here would change 44 capabilities
9542
+ * at once.
9543
+ */
9544
+ function narrowToPinnedProvider(candidates, input, capName, method) {
9545
+ if (input === null || typeof input !== "object" || Array.isArray(input)) return candidates;
9546
+ const pin = Reflect.get(input, PROVIDER_PIN_FIELD);
9547
+ if (typeof pin !== "string" || pin.length === 0) return candidates;
9548
+ const services = new Set(candidates.map((c) => c.serviceName));
9549
+ if (services.size < 2) return candidates;
9550
+ const picked = candidates.filter((c) => c.serviceName === pin);
9551
+ if (picked.length > 0) return picked;
9552
+ throw new Error(`Capability "${capName}.${method}": no service answers provider "${pin}". Candidates: ${[...services].join(", ")}. A pin nobody answers is refused rather than served by another provider.`);
9553
+ }
9554
+ /**
9502
9555
  * THE single source of truth for turning a (capName, method, args) cap call into
9503
9556
  * a concrete Moleculer dispatch: serialize binary args, strip the routing-only
9504
9557
  * inline `nodeId`, await service discovery (bounded retry when node-pinned,
@@ -9521,9 +9574,9 @@ async function resolveBrokerCapCall(broker, capName, method, rawArgs, opts) {
9521
9574
  const { nodeId: _drop, ...rest } = inputObj;
9522
9575
  return rest;
9523
9576
  })() : safeInput;
9524
- const candidates = pinnedNodeId ? await awaitPinnedServiceCandidates(broker, capName, method, opts.forceServiceName, pinnedNodeId, opts.abort) : await awaitServiceCandidates(broker, capName, method, opts.forceServiceName, opts.abort, opts.discoveryTimeoutMs);
9525
- const resolved = pinnedNodeId ? resolveTargetNode(candidates, pinnedNodeId) : null;
9526
- const serviceName = resolved?.serviceName ?? opts.forceServiceName ?? candidates[0]?.serviceName ?? capName;
9577
+ const eligible = narrowToPinnedProvider(pinnedNodeId ? await awaitPinnedServiceCandidates(broker, capName, method, opts.forceServiceName, pinnedNodeId, opts.abort) : await awaitServiceCandidates(broker, capName, method, opts.forceServiceName, opts.abort, opts.discoveryTimeoutMs), callInput, capName, method);
9578
+ const resolved = pinnedNodeId ? resolveTargetNode(eligible, pinnedNodeId) : null;
9579
+ const serviceName = resolved?.serviceName ?? opts.forceServiceName ?? eligible[0]?.serviceName ?? capName;
9527
9580
  const targetNodeId = resolved?.nodeId ?? pinnedNodeId;
9528
9581
  return {
9529
9582
  action: capActionName(serviceName, capName, method, false),
@@ -9622,11 +9675,19 @@ function brokerTransportLink(broker, serviceMap, observerOpts, linkOptions) {
9622
9675
  if (callerSignal && typeof callerSignal.addEventListener === "function") if (callerSignal.aborted) abort.aborted = true;
9623
9676
  else callerSignal.addEventListener("abort", onAbort, { once: true });
9624
9677
  (async () => {
9625
- const { action, callInput, callOpts, serviceName } = await resolveBrokerCapCall(broker, parsed.capName, parsed.method, op.input, {
9626
- ...mapped !== void 0 ? { forceServiceName: mapped } : {},
9627
- ...discoveryTimeoutMs !== void 0 ? { discoveryTimeoutMs } : {},
9628
- abort
9629
- });
9678
+ let resolvedCall;
9679
+ try {
9680
+ resolvedCall = await resolveBrokerCapCall(broker, parsed.capName, parsed.method, op.input, {
9681
+ ...mapped !== void 0 ? { forceServiceName: mapped } : {},
9682
+ ...discoveryTimeoutMs !== void 0 ? { discoveryTimeoutMs } : {},
9683
+ abort
9684
+ });
9685
+ } catch (cause) {
9686
+ if (abort.aborted) return;
9687
+ observer.error(_trpc_client.TRPCClientError.from(cause instanceof Error ? cause : new Error(String(cause))));
9688
+ return;
9689
+ }
9690
+ const { action, callInput, callOpts, serviceName } = resolvedCall;
9630
9691
  if (abort.aborted) {
9631
9692
  observer.error(_trpc_client.TRPCClientError.from(/* @__PURE__ */ new Error(`brokerTransportLink: aborted while awaiting "${parsed.capName}.${parsed.method}" discovery`)));
9632
9693
  return;
@@ -9496,6 +9496,59 @@ async function awaitPinnedServiceCandidates(broker, capName, method, forceServic
9496
9496
  return [];
9497
9497
  }
9498
9498
  /**
9499
+ * The input field a caller uses to NAME one provider of a collection cap.
9500
+ *
9501
+ * The same spelling the hub-side mount reads (`PROVIDER_PIN_FIELD` in
9502
+ * `device-collection-dispatch.ts`), because a pin with two spellings is a pin
9503
+ * only one half of the system honours — which is exactly what happened.
9504
+ */
9505
+ var PROVIDER_PIN_FIELD = "provider";
9506
+ /**
9507
+ * Narrow the discovered candidates to the provider the caller NAMED.
9508
+ *
9509
+ * ## Why this exists at the transport, and not only at the hub's mount
9510
+ *
9511
+ * A `collection` cap has several providers, and the hub's tRPC mount already
9512
+ * refuses a pin nobody answers rather than letting a sibling answer it
9513
+ * (`pinnedProvider`, D552/D554). A cross-process addon never reaches that
9514
+ * mount: `ctx.api.<cap>.<method>` leaves its runner over Moleculer, and the
9515
+ * dispatch below used to take `candidates[0]` — the first entry in the
9516
+ * broker's discovery order. On this hub `videoclips` has three providers, so
9517
+ * the operator's clip tap was answered by `recorder` ("an analytics visit has
9518
+ * no file behind it") and, after a redeploy in a different order, by
9519
+ * `export-hap` ("was not minted by the HomeKit source") — the same clip, two
9520
+ * different wrong answers, while the call carried the provider's name twice
9521
+ * over and nothing read it (2026-09-22).
9522
+ *
9523
+ * Moleculer service names map 1:1 to addon ids (`createAddonService`), so the
9524
+ * pin is matched against `serviceName` directly.
9525
+ *
9526
+ * ## Why only when the choice is AMBIGUOUS
9527
+ *
9528
+ * `provider` is an ordinary parameter name on caps that have one
9529
+ * implementation, and 44 capabilities on this hub have more than one provider
9530
+ * row. With a single distinct service there is nothing to choose, so an
9531
+ * unmatched string is left alone: turning it into a refusal would break calls
9532
+ * whose routing was never in question. With several, an unmatched pin is
9533
+ * refused BY NAME and the candidates are listed — the caller asked for one
9534
+ * addon and must not silently receive another's answer.
9535
+ *
9536
+ * Unpinned calls are deliberately unchanged. "Which provider should an
9537
+ * unpinned cross-process collection call reach" is a separate question from
9538
+ * "was the pin honoured", and answering it here would change 44 capabilities
9539
+ * at once.
9540
+ */
9541
+ function narrowToPinnedProvider(candidates, input, capName, method) {
9542
+ if (input === null || typeof input !== "object" || Array.isArray(input)) return candidates;
9543
+ const pin = Reflect.get(input, PROVIDER_PIN_FIELD);
9544
+ if (typeof pin !== "string" || pin.length === 0) return candidates;
9545
+ const services = new Set(candidates.map((c) => c.serviceName));
9546
+ if (services.size < 2) return candidates;
9547
+ const picked = candidates.filter((c) => c.serviceName === pin);
9548
+ if (picked.length > 0) return picked;
9549
+ throw new Error(`Capability "${capName}.${method}": no service answers provider "${pin}". Candidates: ${[...services].join(", ")}. A pin nobody answers is refused rather than served by another provider.`);
9550
+ }
9551
+ /**
9499
9552
  * THE single source of truth for turning a (capName, method, args) cap call into
9500
9553
  * a concrete Moleculer dispatch: serialize binary args, strip the routing-only
9501
9554
  * inline `nodeId`, await service discovery (bounded retry when node-pinned,
@@ -9518,9 +9571,9 @@ async function resolveBrokerCapCall(broker, capName, method, rawArgs, opts) {
9518
9571
  const { nodeId: _drop, ...rest } = inputObj;
9519
9572
  return rest;
9520
9573
  })() : safeInput;
9521
- const candidates = pinnedNodeId ? await awaitPinnedServiceCandidates(broker, capName, method, opts.forceServiceName, pinnedNodeId, opts.abort) : await awaitServiceCandidates(broker, capName, method, opts.forceServiceName, opts.abort, opts.discoveryTimeoutMs);
9522
- const resolved = pinnedNodeId ? resolveTargetNode(candidates, pinnedNodeId) : null;
9523
- const serviceName = resolved?.serviceName ?? opts.forceServiceName ?? candidates[0]?.serviceName ?? capName;
9574
+ const eligible = narrowToPinnedProvider(pinnedNodeId ? await awaitPinnedServiceCandidates(broker, capName, method, opts.forceServiceName, pinnedNodeId, opts.abort) : await awaitServiceCandidates(broker, capName, method, opts.forceServiceName, opts.abort, opts.discoveryTimeoutMs), callInput, capName, method);
9575
+ const resolved = pinnedNodeId ? resolveTargetNode(eligible, pinnedNodeId) : null;
9576
+ const serviceName = resolved?.serviceName ?? opts.forceServiceName ?? eligible[0]?.serviceName ?? capName;
9524
9577
  const targetNodeId = resolved?.nodeId ?? pinnedNodeId;
9525
9578
  return {
9526
9579
  action: capActionName(serviceName, capName, method, false),
@@ -9619,11 +9672,19 @@ function brokerTransportLink(broker, serviceMap, observerOpts, linkOptions) {
9619
9672
  if (callerSignal && typeof callerSignal.addEventListener === "function") if (callerSignal.aborted) abort.aborted = true;
9620
9673
  else callerSignal.addEventListener("abort", onAbort, { once: true });
9621
9674
  (async () => {
9622
- const { action, callInput, callOpts, serviceName } = await resolveBrokerCapCall(broker, parsed.capName, parsed.method, op.input, {
9623
- ...mapped !== void 0 ? { forceServiceName: mapped } : {},
9624
- ...discoveryTimeoutMs !== void 0 ? { discoveryTimeoutMs } : {},
9625
- abort
9626
- });
9675
+ let resolvedCall;
9676
+ try {
9677
+ resolvedCall = await resolveBrokerCapCall(broker, parsed.capName, parsed.method, op.input, {
9678
+ ...mapped !== void 0 ? { forceServiceName: mapped } : {},
9679
+ ...discoveryTimeoutMs !== void 0 ? { discoveryTimeoutMs } : {},
9680
+ abort
9681
+ });
9682
+ } catch (cause) {
9683
+ if (abort.aborted) return;
9684
+ observer.error(TRPCClientError.from(cause instanceof Error ? cause : new Error(String(cause))));
9685
+ return;
9686
+ }
9687
+ const { action, callInput, callOpts, serviceName } = resolvedCall;
9627
9688
  if (abort.aborted) {
9628
9689
  observer.error(TRPCClientError.from(/* @__PURE__ */ new Error(`brokerTransportLink: aborted while awaiting "${parsed.capName}.${parsed.method}" discovery`)));
9629
9690
  return;
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-BEICnNLn.js");
1
+ const require_dist = require("./dist-CSX0ndRm.js");
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
@@ -1,4 +1,4 @@
1
- import { vn as asJsonObject } from "./dist-OKbs4A_r.mjs";
1
+ import { vn as asJsonObject } from "./dist-DXTl8qwI.mjs";
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.281",
3
+ "version": "1.2.283",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",