@camstack/system 1.2.362 → 1.2.364

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 (68) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/autotrack/index.js +1 -1
  12. package/dist/builtins/autotrack/index.mjs +1 -1
  13. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  15. package/dist/builtins/calendars/calendars.addon.js +1 -1
  16. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  17. package/dist/builtins/camera-grid/index.js +1 -1
  18. package/dist/builtins/camera-grid/index.mjs +1 -1
  19. package/dist/builtins/composer/composer.addon.js +2 -2
  20. package/dist/builtins/composer/composer.addon.mjs +2 -2
  21. package/dist/builtins/console-logging/index.js +1 -1
  22. package/dist/builtins/console-logging/index.mjs +1 -1
  23. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  24. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  25. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  26. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  27. package/dist/builtins/hub-forwarder/index.js +1 -1
  28. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  29. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  30. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  31. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  32. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  33. package/dist/builtins/local-network/local-network.addon.js +1 -1
  34. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  35. package/dist/builtins/loki-logging/index.js +1 -1
  36. package/dist/builtins/loki-logging/index.mjs +1 -1
  37. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  38. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  39. package/dist/builtins/platform-probe/index.js +1 -1
  40. package/dist/builtins/platform-probe/index.mjs +1 -1
  41. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  42. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  43. package/dist/builtins/snapshot/index.js +1 -1
  44. package/dist/builtins/snapshot/index.mjs +1 -1
  45. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  46. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  47. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  48. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  49. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  50. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  51. package/dist/builtins/system-config/system-config.addon.js +1 -1
  52. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  53. package/dist/builtins/winston-logging/index.js +1 -1
  54. package/dist/builtins/winston-logging/index.mjs +1 -1
  55. package/dist/{child-cap-dispatch-CV8_LDxx.js → child-cap-dispatch-B79ITdeA.js} +1 -1
  56. package/dist/{child-cap-dispatch-Cr70toWw.mjs → child-cap-dispatch-CtBHqm2J.mjs} +1 -1
  57. package/dist/{composition-sources-BzO8kNlB.js → composition-sources-CNVBIV_9.js} +1 -1
  58. package/dist/{composition-sources-BscSIjHf.mjs → composition-sources-Dj84elbu.mjs} +1 -1
  59. package/dist/{dist-BgJZdlW6.mjs → dist-C-IdBSWx.mjs} +49 -1
  60. package/dist/{dist-UT1QNI9K.js → dist-DiScyAO6.js} +49 -1
  61. package/dist/download/model-downloader.d.ts +11 -1
  62. package/dist/{event-loop-stall-monitor-ey4mbofz.js → event-loop-stall-monitor-CuTt1wq7.js} +72 -2
  63. package/dist/{event-loop-stall-monitor-EXjzIxDz.mjs → event-loop-stall-monitor-NFG6boF5.mjs} +72 -2
  64. package/dist/index.js +3 -3
  65. package/dist/index.mjs +3 -3
  66. package/dist/{retired-settings-keys-CmEqB_0Q.js → retired-settings-keys-CJpnYIp1.js} +1 -1
  67. package/dist/{retired-settings-keys-exwNGxqv.mjs → retired-settings-keys-DIzyi9Jf.mjs} +1 -1
  68. 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-CV8_LDxx.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-B79ITdeA.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 { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-Cr70toWw.mjs";
1
+ import { $t as RUNNER_RSS_BUDGET_ENV, Ft as resolveAddonClass, H as createUdsLoggerWithControl, Pt as installManifestNativeDeps, U as LocalChildClient, _t as getWorkerNativeCapSnapshot, f as installManifestSystemDeps, fn as startRunnerHeapWatch, g as createUdsAddonContext, gt as getWorkerNativeCapProvider, i as killOwnRunnerGroupAfterParentLoss, n as createChildCapDispatch, p as installManifestPythonDeps, u as startRunnerParentDeathWatchdog, wn as emitHeapDiagnosticReport, xt as validateProviderRegistrations, yt as setWorkerNativeCapsChangeListener } from "./child-cap-dispatch-CtBHqm2J.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";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("./chunk-Cek0wNdY.js");
3
- const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-ey4mbofz.js");
3
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CuTt1wq7.js");
4
4
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
5
5
  const require_snapshot_courtesy = require("./snapshot-courtesy-D_C5-nC0.js");
6
6
  exports.COURTESY_DEFAULT_WIDTH = require_snapshot_courtesy.COURTESY_DEFAULT_WIDTH;
@@ -1,4 +1,4 @@
1
- import { _ as ensureModel, a as createFileDataPlaneHandler, b as isModelDownloadHttpError, c as parseRangeHeader, d as ModelDownloadService, f as ModelDownloadHttpError, h as downloadFile, i as startEventLoopStallMonitor, m as deleteModelFromDisk, n as STALL_TICK_MS, o as contentTypeFor, p as collectModelFiles, r as attributeStall, t as STALL_REPORT_MS, x as isModelDownloaded, y as getModelFilePath } from "./event-loop-stall-monitor-EXjzIxDz.mjs";
1
+ import { _ as ensureModel, a as createFileDataPlaneHandler, b as isModelDownloadHttpError, c as parseRangeHeader, d as ModelDownloadService, f as ModelDownloadHttpError, h as downloadFile, i as startEventLoopStallMonitor, m as deleteModelFromDisk, n as STALL_TICK_MS, o as contentTypeFor, p as collectModelFiles, r as attributeStall, t as STALL_REPORT_MS, x as isModelDownloaded, y as getModelFilePath } from "./event-loop-stall-monitor-NFG6boF5.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
3
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg, t as COURTESY_DEFAULT_WIDTH } from "./snapshot-courtesy-CyFs1M3I.mjs";
4
4
  export { COURTESY_DEFAULT_WIDTH, CustomActionRegistry, ModelDownloadHttpError, ModelDownloadService, STALL_REPORT_MS, STALL_TICK_MS, attributeStall, collectModelFiles, contentTypeFor, courtesyCacheKey, createFileDataPlaneHandler, deleteModelFromDisk, downloadFile, ensureModel, getModelFilePath, isModelDownloadHttpError, isModelDownloaded, parseRangeHeader, renderCourtesyJpeg, renderCourtesyOverlayJpeg, startEventLoopStallMonitor };
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { Ar as EventCategory, U as addonPagesCapability, ar as BaseAddon, ir as errMsg } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, U as addonPagesCapability, ar as BaseAddon, ir as errMsg } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { Ar as EventCategory, G as addonWidgetsCapability, ar as BaseAddon, ir as errMsg } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, G as addonWidgetsCapability, ar as BaseAddon, ir as errMsg } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  //#region src/builtins/alerts/device-label.ts
8
8
  /**
9
9
  * Operator-facing device label for alert messages.
@@ -1,4 +1,4 @@
1
- import { Ar as EventCategory, K as alertsCapability, ar as BaseAddon, hr as createEvent, ir as errMsg, n as AlertSchema } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, K as alertsCapability, ar as BaseAddon, hr as createEvent, ir as errMsg, n as AlertSchema } from "../../dist-C-IdBSWx.mjs";
2
2
  //#region src/builtins/alerts/device-label.ts
3
3
  /**
4
4
  * Operator-facing device label for alert messages.
@@ -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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { Ar as EventCategory, S as FIRST_LEVEL_MACRO_CLASSES, Y as bareAddonId, ar as BaseAddon, fn as ptzAutotrackCapability, ir as errMsg, xr as isEvent } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, S as FIRST_LEVEL_MACRO_CLASSES, Y as bareAddonId, ar as BaseAddon, fn as ptzAutotrackCapability, ir as errMsg, xr as isEvent } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { Ar as EventCategory, J as backupCapability, Mn as storageOccupancyCapability, Qt as mayWriteToLocation, Sr as nodePin, ar as BaseAddon, g as DATABASE_SNAPSHOT_SUFFIX, kr as toNodeId } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, J as backupCapability, Mn as storageOccupancyCapability, Qt as mayWriteToLocation, Sr as nodePin, ar as BaseAddon, g as DATABASE_SNAPSHOT_SUFFIX, kr as toNodeId } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/calendars/calendar-color.ts
@@ -1,4 +1,4 @@
1
- import { $ as calendarsCapability, ar as BaseAddon, p as CalendarPreferencesSchema } from "../../dist-BgJZdlW6.mjs";
1
+ import { $ as calendarsCapability, ar as BaseAddon, p as CalendarPreferencesSchema } from "../../dist-C-IdBSWx.mjs";
2
2
  import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/calendars/calendar-color.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { $t as memoizePinnedFfmpeg, A as MOTION_CLOSE_AFTER_MS, Ar as EventCategory, Pn as streamCatalogCapability, Wn as buildFfmpegArgs, ar as BaseAddon, b as DeclaredDevices, et as cameraGridLayoutCapability, hr as createEvent, i as BaseDevice, ir as errMsg, kn as snapshotCapability, mt as declarationOwnerNodeId, nn as motionCapability, rr as DeviceType, tr as DeviceFeature, y as DERIVED_CAMERA_SILENCED_CAP_NAMES, yr as hydrateSchema } from "../../dist-BgJZdlW6.mjs";
1
+ import { $t as memoizePinnedFfmpeg, A as MOTION_CLOSE_AFTER_MS, Ar as EventCategory, Pn as streamCatalogCapability, Wn as buildFfmpegArgs, ar as BaseAddon, b as DeclaredDevices, et as cameraGridLayoutCapability, hr as createEvent, i as BaseDevice, ir as errMsg, kn as snapshotCapability, mt as declarationOwnerNodeId, nn as motionCapability, rr as DeviceType, tr as DeviceFeature, y as DERIVED_CAMERA_SILENCED_CAP_NAMES, yr as hydrateSchema } from "../../dist-C-IdBSWx.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } 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-UT1QNI9K.js");
7
- const require_composition_sources = require("../../composition-sources-BzO8kNlB.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
+ const require_composition_sources = require("../../composition-sources-CNVBIV_9.js");
8
8
  let zod = require("zod");
9
9
  //#region src/builtins/shared/device-state-changed.ts
10
10
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -1,5 +1,5 @@
1
- import { $n as disarmRoseMemory, Ar as EventCategory, Et as evaluateCompositionField, Gn as cloneStatefulExpressionMemory, Jn as compositionFeatureEnabled, Kn as composedDeviceRef, Qn as createStatefulExpressionMemory, Un as COMPOSER_ADDON_ID, Xn as compositionSliceKey, Yn as compositionItemFieldPath, Z as buildCapabilityLookup, Zn as compositionSourceKey, ar as BaseAddon, b as DeclaredDevices, er as toExpressionValue, hr as createEvent, i as BaseDevice, ir as errMsg, it as compositionFieldKey, kt as expressionContainsBuiltinCall, l as COMPOSED_ITEM_FIXED_FIELDS, ln as planComposition, qn as composedDeviceStableId, rr as DeviceType, rt as composerCapability, t as ALL_CAPABILITY_DEFINITIONS } from "../../dist-BgJZdlW6.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-BscSIjHf.mjs";
1
+ import { $n as disarmRoseMemory, Ar as EventCategory, Et as evaluateCompositionField, Gn as cloneStatefulExpressionMemory, Jn as compositionFeatureEnabled, Kn as composedDeviceRef, Qn as createStatefulExpressionMemory, Un as COMPOSER_ADDON_ID, Xn as compositionSliceKey, Yn as compositionItemFieldPath, Z as buildCapabilityLookup, Zn as compositionSourceKey, ar as BaseAddon, b as DeclaredDevices, er as toExpressionValue, hr as createEvent, i as BaseDevice, ir as errMsg, it as compositionFieldKey, kt as expressionContainsBuiltinCall, l as COMPOSED_ITEM_FIXED_FIELDS, ln as planComposition, qn as composedDeviceStableId, rr as DeviceType, rt as composerCapability, t as ALL_CAPABILITY_DEFINITIONS } from "../../dist-C-IdBSWx.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-Dj84elbu.mjs";
3
3
  import { z } from "zod";
4
4
  //#region src/builtins/shared/device-state-changed.ts
5
5
  /** Structural narrowing helper for untrusted bus payloads. */
@@ -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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/console-logging/console-destination.ts
9
9
  var LEVEL_RANK = {
@@ -1,4 +1,4 @@
1
- import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-BgJZdlW6.mjs";
1
+ import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-C-IdBSWx.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,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-UT1QNI9K.js");
4
- const require_composition_sources = require("../../composition-sources-BzO8kNlB.js");
3
+ const require_dist = require("../../dist-DiScyAO6.js");
4
+ const require_composition_sources = require("../../composition-sources-CNVBIV_9.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
@@ -1,5 +1,5 @@
1
- import { Kn as composedDeviceRef, Ln as validateComposition, Z as buildCapabilityLookup, Zn as compositionSourceKey, _n as resolveCoreBlockEntry, ar as BaseAddon, at as compositionSourceRefs, b as DeclaredDevices, ct as coreBlockIdFromAddonId, d as CORE_BLOCKS_ADDON_ID, f as CORE_BLOCK_ADDON_PREFIX, ir as errMsg, ln as planComposition, lt as coreBlockSourceKind, m as CoreBlockSchema, mn as replacedFieldKeys, ot as coreBlockAddonId, rn as normalizeCoreBlockWrite, st as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, ut as coreBlocksCapability, vn as resolveCoreBlockFiles, vt as describeComposableCaps, yr as hydrateSchema } from "../../dist-BgJZdlW6.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-BscSIjHf.mjs";
1
+ import { Kn as composedDeviceRef, Ln as validateComposition, Z as buildCapabilityLookup, Zn as compositionSourceKey, _n as resolveCoreBlockEntry, ar as BaseAddon, at as compositionSourceRefs, b as DeclaredDevices, ct as coreBlockIdFromAddonId, d as CORE_BLOCKS_ADDON_ID, f as CORE_BLOCK_ADDON_PREFIX, ir as errMsg, ln as planComposition, lt as coreBlockSourceKind, m as CoreBlockSchema, mn as replacedFieldKeys, ot as coreBlockAddonId, rn as normalizeCoreBlockWrite, st as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, u as COMPOSER_RUNNER_ID, ut as coreBlocksCapability, vn as resolveCoreBlockFiles, vt as describeComposableCaps, yr as hydrateSchema } from "../../dist-C-IdBSWx.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-Dj84elbu.mjs";
3
3
  import { createRequire } from "node:module";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { customizationBlockName } from "@camstack/types/node";
@@ -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-UT1QNI9K.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-CmEqB_0Q.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-CJpnYIp1.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
10
10
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,5 +1,5 @@
1
- import { Ar as EventCategory, C as FieldClaimModeSchema, Cn as runtimeStatePolicyFor, D as LocationIconIdSchema, I as STREAM_PROFILE_META, Nt as formatMinutes, On as siteZoneKey, Or as sleep$1, Ot as expandContainer, Q as buildStreamParamsConfigSchema, St as deviceStatusCapability, Tt as enumerateSchemaFields, Ut as legacyAutoLinkIds, ar as BaseAddon, br as isDeviceConfigCap, bt as deviceManagerCapability, c as CAP_NAMES_WITH_STATUS, dr as WELL_KNOWN_TAB_MAP, dt as createDeviceExtensionProvider, gt as defineExtensionSlotProvider, in as normalizeUnit, ir as errMsg, k as MINUTES_PER_DAY, nr as DeviceRole, o as CAMERA_SWITCH_ORDER, qt as locationIconKey, rr as DeviceType, sn as parseStreamParamsFormPatch, t as ALL_CAPABILITY_DEFINITIONS, tr as DeviceFeature, v as DAY_NAMES, w as FieldClaimSchema, wt as enumerateItemArrayFields, x as DeviceStatusSchema, xt as deviceStateCapability, yt as deviceExtensionCapability } from "../../dist-BgJZdlW6.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-exwNGxqv.mjs";
1
+ import { Ar as EventCategory, C as FieldClaimModeSchema, Cn as runtimeStatePolicyFor, D as LocationIconIdSchema, I as STREAM_PROFILE_META, Nt as formatMinutes, On as siteZoneKey, Or as sleep$1, Ot as expandContainer, Q as buildStreamParamsConfigSchema, St as deviceStatusCapability, Tt as enumerateSchemaFields, Ut as legacyAutoLinkIds, ar as BaseAddon, br as isDeviceConfigCap, bt as deviceManagerCapability, c as CAP_NAMES_WITH_STATUS, dr as WELL_KNOWN_TAB_MAP, dt as createDeviceExtensionProvider, gt as defineExtensionSlotProvider, in as normalizeUnit, ir as errMsg, k as MINUTES_PER_DAY, nr as DeviceRole, o as CAMERA_SWITCH_ORDER, qt as locationIconKey, rr as DeviceType, sn as parseStreamParamsFormPatch, t as ALL_CAPABILITY_DEFINITIONS, tr as DeviceFeature, v as DAY_NAMES, w as FieldClaimSchema, wt as enumerateItemArrayFields, x as DeviceStatusSchema, xt as deviceStateCapability, yt as deviceExtensionCapability } from "../../dist-C-IdBSWx.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DIzyi9Jf.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
@@ -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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-BgJZdlW6.mjs";
1
+ import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
3
+ const require_dist = require("../../dist-DiScyAO6.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 { Ar as EventCategory, P as RecordingStatusSchema, ar as BaseAddon, hr as createEvent, ir as errMsg, j as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, P as RecordingStatusSchema, ar as BaseAddon, hr as createEvent, ir as errMsg, j as RECORDING_SOURCE_CAMSTACK_ADDON } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  let zod = require("zod");
8
8
  let node_crypto = require("node:crypto");
9
9
  node_crypto = require_chunk.__toESM(node_crypto);
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { H as UserRecordSchema, In as userManagementCapability, L as ScopedTokenSchema, ar as BaseAddon, q as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-BgJZdlW6.mjs";
2
+ import { H as UserRecordSchema, In as userManagementCapability, L as ScopedTokenSchema, ar as BaseAddon, q as authProviderCapability, r as ApiKeyRecordSchema } from "../../dist-C-IdBSWx.mjs";
3
3
  import { z } from "zod";
4
4
  import * as crypto$2 from "node:crypto";
5
5
  import { createHash, randomUUID, timingSafeEqual } from "node: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-UT1QNI9K.js");
3
+ const require_dist = require("../../dist-DiScyAO6.js");
4
4
  const require_tls = require("../../tls-CCMX7MjX.js");
5
5
  let zod = require("zod");
6
6
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { Ar as EventCategory, Ft as isAppLinkBase, Kt as localNetworkCapability, Rn as validateCustomAddress, Rt as isDefaultAppConnectionEndpoint, Sn as resolveNotificationTapAddress, ar as BaseAddon, cn as pickAppLinkHub, hn as resolveAppConnections, s as CAMSTACK_APP_LINK_ORIGIN, tt as checkRoleAddress, yn as resolveHubAddressRoles } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, Ft as isAppLinkBase, Kt as localNetworkCapability, Rn as validateCustomAddress, Rt as isDefaultAppConnectionEndpoint, Sn as resolveNotificationTapAddress, ar as BaseAddon, cn as pickAppLinkHub, hn as resolveAppConnections, s as CAMSTACK_APP_LINK_ORIGIN, tt as checkRoleAddress, yn as resolveHubAddressRoles } from "../../dist-C-IdBSWx.mjs";
2
2
  import { P as readLanHttpState, _ as writeExtraSans, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, m as readTlsAccessStatus, n as regenerateCertificate, p as readExtraSans, r as revertToGeneratedCertificate, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, y as ensureTlsCert } from "../../tls-CJHogwTl.mjs";
3
3
  import { z } from "zod";
4
4
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  //#region src/builtins/loki-logging/loki-payload.ts
8
8
  /**
9
9
  * Loki rejects a label name that is not a valid Prometheus label
@@ -1,4 +1,4 @@
1
- import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-BgJZdlW6.mjs";
1
+ import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  const require_proc_stat = require("../../proc-stat-DL-WUOhl.js");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { Ar as EventCategory, Mt as foldSnapshotByFunction, ar as BaseAddon, en as metricsProviderCapability, gn as resolveBucketMs, hr as createEvent, ir as errMsg, pn as reducePoints } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, Mt as foldSnapshotByFunction, ar as BaseAddon, en as metricsProviderCapability, gn as resolveBucketMs, hr as createEvent, ir as errMsg, pn as reducePoints } from "../../dist-C-IdBSWx.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader, n as elapsedSecSince, o as parseProcStatusRss, r as lifetimeCpuPercent, t as commandFromCmdline } from "../../proc-stat-CbC55Kqi.mjs";
3
3
  import { access, readFile, readdir } from "node:fs/promises";
4
4
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  let node_os = require("node:os");
8
8
  node_os = require_chunk.__toESM(node_os);
9
9
  let node_fs = require("node:fs");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Ar as EventCategory, Ct as enumerateInferenceDevices, En as scoreRuntimes, _r as emitReadiness, ar as BaseAddon, ir as errMsg, un as platformProbeCapability } from "../../dist-BgJZdlW6.mjs";
2
+ import { Ar as EventCategory, Ct as enumerateInferenceDevices, En as scoreRuntimes, _r as emitReadiness, ar as BaseAddon, ir as errMsg, un as platformProbeCapability } from "../../dist-C-IdBSWx.mjs";
3
3
  import * as os from "node:os";
4
4
  import * as fs from "node:fs";
5
5
  import { execFile } from "node:child_process";
@@ -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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { Ar as EventCategory, ar as BaseAddon } from "../../dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory, ar as BaseAddon } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { $t as memoizePinnedFfmpeg, Ar as EventCategory, Fn as streamQualityLabel, Sr as nodePin, X as batteryCapability, Y as bareAddonId, _t as deriveBatteryPresence, a as BatteryStatusSchema, ar as BaseAddon, ir as errMsg, kn as snapshotCapability, rr as DeviceType, tr as DeviceFeature } from "../../dist-BgJZdlW6.mjs";
1
+ import { $t as memoizePinnedFfmpeg, Ar as EventCategory, Fn as streamQualityLabel, Sr as nodePin, X as batteryCapability, Y as bareAddonId, _t as deriveBatteryPresence, a as BatteryStatusSchema, ar as BaseAddon, ir as errMsg, kn as snapshotCapability, rr as DeviceType, tr as DeviceFeature } from "../../dist-C-IdBSWx.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { Nn as storageProviderCapability, ar as BaseAddon, jt as filesystemBrowseCapability } from "../../dist-BgJZdlW6.mjs";
1
+ import { Nn as storageProviderCapability, ar as BaseAddon, jt as filesystemBrowseCapability } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { An as storageCapability, Ar as EventCategory, B as StorageLocationTypeSchema, Cr as parseJsonObject, Dn as settingsStoreCapability, Dt as evictionPolicyOfLocation, E as LegacyStorageLocationDefaultSchema, Hn as withLocationMode, M as REDACTED_SECRET, Pt as gbToBytes, Qt as mayWriteToLocation, R as StorageCleanupJobSchema, V as StorageMigrationJobSchema, Wt as legacyModeOf, Zt as mayReadLocation, ar as BaseAddon, bn as resolveLocationMode, jn as storageMigrationCapability, nt as collectSecretConfigKeys, tn as modeMayWrite, z as StorageLocationModeSchema, zt as isLocationEnabled } from "../../dist-BgJZdlW6.mjs";
1
+ import { An as storageCapability, Ar as EventCategory, B as StorageLocationTypeSchema, Cr as parseJsonObject, Dn as settingsStoreCapability, Dt as evictionPolicyOfLocation, E as LegacyStorageLocationDefaultSchema, Hn as withLocationMode, M as REDACTED_SECRET, Pt as gbToBytes, Qt as mayWriteToLocation, R as StorageCleanupJobSchema, V as StorageMigrationJobSchema, Wt as legacyModeOf, Zt as mayReadLocation, ar as BaseAddon, bn as resolveLocationMode, jn as storageMigrationCapability, nt as collectSecretConfigKeys, tn as modeMayWrite, z as StorageLocationModeSchema, zt as isLocationEnabled } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.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 { ar as BaseAddon, ir as errMsg, yr as hydrateSchema } from "../../dist-BgJZdlW6.mjs";
1
+ import { ar as BaseAddon, ir as errMsg, yr as hydrateSchema } from "../../dist-C-IdBSWx.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-UT1QNI9K.js");
6
+ const require_dist = require("../../dist-DiScyAO6.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-BgJZdlW6.mjs";
1
+ import { Jt as logDestinationCapability, ar as BaseAddon } from "../../dist-C-IdBSWx.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-UT1QNI9K.js");
2
+ const require_dist = require("./dist-DiScyAO6.js");
3
3
  const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
4
4
  require("./hub-cap-forward-DmHNjbB0.js");
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Ar as EventCategory$1, hr as createEvent } from "./dist-BgJZdlW6.mjs";
1
+ import { Ar as EventCategory$1, hr as createEvent } from "./dist-C-IdBSWx.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader } from "./proc-stat-CbC55Kqi.mjs";
3
3
  import "./hub-cap-forward-BdT320dq.mjs";
4
4
  import * as crypto$1 from "node:crypto";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-UT1QNI9K.js");
1
+ const require_dist = require("./dist-DiScyAO6.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Zn as compositionSourceKey, ir as errMsg } from "./dist-BgJZdlW6.mjs";
1
+ import { Zn as compositionSourceKey, ir as errMsg } from "./dist-C-IdBSWx.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -7915,7 +7915,16 @@ var ModelFormatEntrySchema = z.object({
7915
7915
  /** Multi-file payload (directory members or sibling files). */
7916
7916
  files: z.array(z.string()).readonly().optional(),
7917
7917
  /** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
7918
- runtimes: z.array(z.enum(["python"])).readonly().optional()
7918
+ runtimes: z.array(z.enum(["python"])).readonly().optional(),
7919
+ /**
7920
+ * Content revision of the hosted artefact. Set it, or change it, whenever
7921
+ * the bytes at `url` are replaced in place (same path, new content). A node
7922
+ * records the revision it downloaded next to the file
7923
+ * (`<file>.revision`); a copy with no record or a different one is stale
7924
+ * and is downloaded again, the old copy serving until the new one is
7925
+ * complete. Omitted ⇒ a file on disk is current, whatever it holds (D743).
7926
+ */
7927
+ revision: z.string().min(1).optional()
7919
7928
  });
7920
7929
  /**
7921
7930
  * Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
@@ -8125,6 +8134,35 @@ var ModelCatalogEntrySchema = z.object({
8125
8134
  */
8126
8135
  defaultConfidence: z.number().min(0).max(1).optional(),
8127
8136
  /**
8137
+ * Per-MODEL default of the per-class confidence floors (`minConfidence<Macro>`
8138
+ * on a detector step), keyed by macro class: `{ person: 0.45 }`. A class
8139
+ * absent here runs at the step slider's global default. The same row shape
8140
+ * the floor measurement produces (`model-floors.json`: modelId → floors), so
8141
+ * a measured table is copied in as-is. An operator override is bound to the
8142
+ * model it was made for and does not survive a model change (D738). A custom
8143
+ * / imported model may declare it; without it, the global defaults apply.
8144
+ */
8145
+ defaultClassFloors: z.record(z.string(), z.number().min(0).max(1)).optional(),
8146
+ /**
8147
+ * The inference precision this model's OpenVINO IR needs on an Intel GPU.
8148
+ * Absent ⇒ the device default (f16 on a GPU). Set to `'f32'` for an FP32 IR
8149
+ * that produces invalid output at f16 — measured 2026-10-07 for YOLO26
8150
+ * base IRs (`yolo26s`: 0 true / 146 false positives; `yolo26m*`: NaN
8151
+ * scores) on the Core Ultra iGPU and the N100. Threaded to the pool as
8152
+ * `PoolModelConfig.gpuInferencePrecision`; the pool sets
8153
+ * INFERENCE_PRECISION_HINT on a GPU only. Costs ~60% latency on the GPU.
8154
+ */
8155
+ gpuInferencePrecision: z.enum(["f32", "f16"]).optional(),
8156
+ /**
8157
+ * ROOT detectors only: per supplied step (`animal-classifier`, …), the
8158
+ * minimum DETECTION score from which this root's own fine label (species,
8159
+ * vehicle type — D736 root supply) is taken (D741). Below it the detection
8160
+ * keeps its macro class without the fine label. `1` = never take it from
8161
+ * this root. Absent ⇒ no floor beyond the macro floor. The supplied step's
8162
+ * `minConfidence` slider, bound to the ROOT model, overrides it.
8163
+ */
8164
+ suppliedLabelFloors: z.record(z.string(), z.number().min(0).max(1)).optional(),
8165
+ /**
8128
8166
  * When true, the executor produces a landmark-aligned crop (similarity warp
8129
8167
  * onto the canonical template) before this step runs, instead of a plain
8130
8168
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -45874,6 +45912,16 @@ function evaluateCompositionField(input) {
45874
45912
  }
45875
45913
  }
45876
45914
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
45915
+ Object.freeze({
45916
+ person: .5,
45917
+ vehicle: .5,
45918
+ animal: .5
45919
+ });
45920
+ Object.freeze({
45921
+ person: .65,
45922
+ vehicle: .65,
45923
+ animal: .65
45924
+ });
45877
45925
  /**
45878
45926
  * Runtime defaults -- used by ConfigManager.get() for backward compatibility
45879
45927
  * until Plan B wires all runtime settings to the system_settings SQL table.
@@ -7915,7 +7915,16 @@ var ModelFormatEntrySchema = zod.z.object({
7915
7915
  /** Multi-file payload (directory members or sibling files). */
7916
7916
  files: zod.z.array(zod.z.string()).readonly().optional(),
7917
7917
  /** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
7918
- runtimes: zod.z.array(zod.z.enum(["python"])).readonly().optional()
7918
+ runtimes: zod.z.array(zod.z.enum(["python"])).readonly().optional(),
7919
+ /**
7920
+ * Content revision of the hosted artefact. Set it, or change it, whenever
7921
+ * the bytes at `url` are replaced in place (same path, new content). A node
7922
+ * records the revision it downloaded next to the file
7923
+ * (`<file>.revision`); a copy with no record or a different one is stale
7924
+ * and is downloaded again, the old copy serving until the new one is
7925
+ * complete. Omitted ⇒ a file on disk is current, whatever it holds (D743).
7926
+ */
7927
+ revision: zod.z.string().min(1).optional()
7919
7928
  });
7920
7929
  /**
7921
7930
  * Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
@@ -8125,6 +8134,35 @@ var ModelCatalogEntrySchema = zod.z.object({
8125
8134
  */
8126
8135
  defaultConfidence: zod.z.number().min(0).max(1).optional(),
8127
8136
  /**
8137
+ * Per-MODEL default of the per-class confidence floors (`minConfidence<Macro>`
8138
+ * on a detector step), keyed by macro class: `{ person: 0.45 }`. A class
8139
+ * absent here runs at the step slider's global default. The same row shape
8140
+ * the floor measurement produces (`model-floors.json`: modelId → floors), so
8141
+ * a measured table is copied in as-is. An operator override is bound to the
8142
+ * model it was made for and does not survive a model change (D738). A custom
8143
+ * / imported model may declare it; without it, the global defaults apply.
8144
+ */
8145
+ defaultClassFloors: zod.z.record(zod.z.string(), zod.z.number().min(0).max(1)).optional(),
8146
+ /**
8147
+ * The inference precision this model's OpenVINO IR needs on an Intel GPU.
8148
+ * Absent ⇒ the device default (f16 on a GPU). Set to `'f32'` for an FP32 IR
8149
+ * that produces invalid output at f16 — measured 2026-10-07 for YOLO26
8150
+ * base IRs (`yolo26s`: 0 true / 146 false positives; `yolo26m*`: NaN
8151
+ * scores) on the Core Ultra iGPU and the N100. Threaded to the pool as
8152
+ * `PoolModelConfig.gpuInferencePrecision`; the pool sets
8153
+ * INFERENCE_PRECISION_HINT on a GPU only. Costs ~60% latency on the GPU.
8154
+ */
8155
+ gpuInferencePrecision: zod.z.enum(["f32", "f16"]).optional(),
8156
+ /**
8157
+ * ROOT detectors only: per supplied step (`animal-classifier`, …), the
8158
+ * minimum DETECTION score from which this root's own fine label (species,
8159
+ * vehicle type — D736 root supply) is taken (D741). Below it the detection
8160
+ * keeps its macro class without the fine label. `1` = never take it from
8161
+ * this root. Absent ⇒ no floor beyond the macro floor. The supplied step's
8162
+ * `minConfidence` slider, bound to the ROOT model, overrides it.
8163
+ */
8164
+ suppliedLabelFloors: zod.z.record(zod.z.string(), zod.z.number().min(0).max(1)).optional(),
8165
+ /**
8128
8166
  * When true, the executor produces a landmark-aligned crop (similarity warp
8129
8167
  * onto the canonical template) before this step runs, instead of a plain
8130
8168
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -45874,6 +45912,16 @@ function evaluateCompositionField(input) {
45874
45912
  }
45875
45913
  }
45876
45914
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
45915
+ Object.freeze({
45916
+ person: .5,
45917
+ vehicle: .5,
45918
+ animal: .5
45919
+ });
45920
+ Object.freeze({
45921
+ person: .65,
45922
+ vehicle: .65,
45923
+ animal: .65
45924
+ });
45877
45925
  /**
45878
45926
  * Runtime defaults -- used by ConfigManager.get() for backward compatibility
45879
45927
  * until Plan B wires all runtime settings to the system_settings SQL table.
@@ -73,6 +73,12 @@ export declare function fetchJson(url: string): Promise<unknown>;
73
73
  export declare function downloadModel(options: ModelDownloadOptions): Promise<ModelDownloadResult>;
74
74
  /** Progress callback: (downloadedBytes, totalBytes | undefined) */
75
75
  export type DownloadProgressCallback = (downloaded: number, total: number | undefined) => void;
76
+ /**
77
+ * Where a node records the catalog `revision` of the format it downloaded:
78
+ * a sibling of the file or bundle, `<name>.revision` (D743). Outside the
79
+ * bundle, so a `.mlpackage` keeps exactly the hosted files.
80
+ */
81
+ export declare function revisionRecordPath(modelPath: string): string;
76
82
  /**
77
83
  * Resolve a `ModelCatalogEntry` against `modelsDir`: download model file
78
84
  * (or directory bundle) + extra files (labels JSON, charset dict, …),
@@ -81,7 +87,11 @@ export type DownloadProgressCallback = (downloaded: number, total: number | unde
81
87
  export declare function ensureModel(modelsDir: string, entry: ModelCatalogEntry, format: ModelFormat, onProgress?: DownloadProgressCallback): Promise<string>;
82
88
  /** Compute the on-disk path for a given model + format, even when not yet downloaded. */
83
89
  export declare function getModelFilePath(modelsDir: string, entry: ModelCatalogEntry, format: ModelFormat): string | null;
84
- /** True iff the model file (or `Manifest.json` for directory bundles) exists and is non-empty. */
90
+ /**
91
+ * True iff the model file (or `Manifest.json` for directory bundles) exists and
92
+ * is non-empty, and — when the catalog names a `revision` — the node recorded
93
+ * that same revision for it (D743).
94
+ */
85
95
  export declare function isModelDownloaded(modelsDir: string, entry: ModelCatalogEntry, format: ModelFormat): boolean;
86
96
  /** Remove the on-disk model file/directory. Returns true if something was deleted. */
87
97
  export declare function deleteModelFromDisk(modelsDir: string, entry: ModelCatalogEntry, format: ModelFormat): boolean;
@@ -258,6 +258,65 @@ async function downloadDirectory(url, destDir, knownFiles, onProgress) {
258
258
  }
259
259
  }
260
260
  /**
261
+ * Where a node records the catalog `revision` of the format it downloaded:
262
+ * a sibling of the file or bundle, `<name>.revision` (D743). Outside the
263
+ * bundle, so a `.mlpackage` keeps exactly the hosted files.
264
+ */
265
+ function revisionRecordPath(modelPath) {
266
+ return `${modelPath}.revision`;
267
+ }
268
+ function readRevisionRecord(modelPath) {
269
+ try {
270
+ return node_fs.readFileSync(revisionRecordPath(modelPath), "utf8").trim();
271
+ } catch {
272
+ return null;
273
+ }
274
+ }
275
+ /**
276
+ * True when the copy at `modelPath` is the one the catalog names. A format
277
+ * without a `revision` is current whenever it is present (the behaviour
278
+ * before revisions existed); with one, the node's record must match it — no
279
+ * record means the copy predates the revision and may hold replaced bytes.
280
+ */
281
+ function isCurrentRevision(modelPath, formatEntry) {
282
+ return formatEntry.revision === void 0 || readRevisionRecord(modelPath) === formatEntry.revision;
283
+ }
284
+ function writeRevisionRecord(modelPath, formatEntry) {
285
+ if (formatEntry.revision === void 0) return;
286
+ const record = revisionRecordPath(modelPath);
287
+ const tmp = `${record}.tmp`;
288
+ node_fs.writeFileSync(tmp, `${formatEntry.revision}\n`);
289
+ node_fs.renameSync(tmp, record);
290
+ }
291
+ /**
292
+ * Replace a single-file format and its siblings that are already on disk.
293
+ * `downloadFile` keeps an existing file, so every file is fetched to a
294
+ * `.updating` name first and moved over the old one only when ALL of them
295
+ * arrived: a failed fetch leaves the old copy serving.
296
+ */
297
+ async function replaceSingleFileFormat(url, modelPath, modelsDir, siblings, onProgress) {
298
+ const parts = [{
299
+ url,
300
+ dest: modelPath
301
+ }, ...siblings.map((f) => ({
302
+ url: siblingUrl(url, f),
303
+ dest: node_path.join(modelsDir, f)
304
+ }))].map((p) => ({
305
+ ...p,
306
+ staged: `${p.dest}.updating`
307
+ }));
308
+ try {
309
+ for (const [i, part] of parts.entries()) {
310
+ node_fs.rmSync(part.staged, { force: true });
311
+ await downloadFile(part.url, part.staged, i === 0 ? (downloaded, total) => onProgress?.(downloaded, total === 0 ? void 0 : total) : void 0);
312
+ }
313
+ } catch (err) {
314
+ for (const part of parts) node_fs.rmSync(part.staged, { force: true });
315
+ throw err;
316
+ }
317
+ for (const part of parts) node_fs.renameSync(part.staged, part.dest);
318
+ }
319
+ /**
261
320
  * Resolve a `ModelCatalogEntry` against `modelsDir`: download model file
262
321
  * (or directory bundle) + extra files (labels JSON, charset dict, …),
263
322
  * skip if already on disk. Returns the local model path.
@@ -269,17 +328,22 @@ async function ensureModel(modelsDir, entry, format, onProgress) {
269
328
  const filename = formatEntry.url.split("/").pop() ?? `${entry.id}.${format}`;
270
329
  const modelPath = node_path.join(modelsDir, filename);
271
330
  const siblings = siblingFilesFor(formatEntry);
331
+ let outdated = false;
272
332
  if (node_fs.existsSync(modelPath)) if (formatEntry.isDirectory && !node_fs.existsSync(node_path.join(modelPath, "Manifest.json"))) node_fs.rmSync(modelPath, {
273
333
  recursive: true,
274
334
  force: true
275
335
  });
276
- else if (siblings.some((f) => !isNonEmptyFile(node_path.join(modelsDir, f)))) {} else return modelPath;
336
+ else if (siblings.some((f) => !isNonEmptyFile(node_path.join(modelsDir, f)))) outdated = !isCurrentRevision(modelPath, formatEntry);
337
+ else if (isCurrentRevision(modelPath, formatEntry)) return modelPath;
338
+ else outdated = true;
277
339
  node_fs.mkdirSync(modelsDir, { recursive: true });
278
340
  if (formatEntry.isDirectory) await downloadDirectory(formatEntry.url, modelPath, formatEntry.files, onProgress);
341
+ else if (outdated) await replaceSingleFileFormat(formatEntry.url, modelPath, modelsDir, siblings, onProgress);
279
342
  else {
280
343
  await downloadFile(formatEntry.url, modelPath, (downloaded, total) => onProgress?.(downloaded, total === 0 ? void 0 : total));
281
344
  for (const sibling of siblings) await downloadFile(siblingUrl(formatEntry.url, sibling), node_path.join(modelsDir, sibling));
282
345
  }
346
+ writeRevisionRecord(modelPath, formatEntry);
283
347
  return modelPath;
284
348
  }
285
349
  /** Compute the on-disk path for a given model + format, even when not yet downloaded. */
@@ -289,12 +353,17 @@ function getModelFilePath(modelsDir, entry, format) {
289
353
  const filename = formatEntry.url.split("/").pop() ?? `${entry.id}.${format}`;
290
354
  return node_path.join(modelsDir, filename);
291
355
  }
292
- /** True iff the model file (or `Manifest.json` for directory bundles) exists and is non-empty. */
356
+ /**
357
+ * True iff the model file (or `Manifest.json` for directory bundles) exists and
358
+ * is non-empty, and — when the catalog names a `revision` — the node recorded
359
+ * that same revision for it (D743).
360
+ */
293
361
  function isModelDownloaded(modelsDir, entry, format) {
294
362
  const formatEntry = entry.formats[format];
295
363
  if (!formatEntry) return false;
296
364
  const modelPath = getModelFilePath(modelsDir, entry, format);
297
365
  if (!modelPath || !node_fs.existsSync(modelPath)) return false;
366
+ if (!isCurrentRevision(modelPath, formatEntry)) return false;
298
367
  if (formatEntry.isDirectory) return node_fs.existsSync(node_path.join(modelPath, "Manifest.json"));
299
368
  if (node_fs.statSync(modelPath).size <= 0) return false;
300
369
  return siblingFilesFor(formatEntry).every((f) => isNonEmptyFile(node_path.join(modelsDir, f)));
@@ -303,6 +372,7 @@ function isModelDownloaded(modelsDir, entry, format) {
303
372
  function deleteModelFromDisk(modelsDir, entry, format) {
304
373
  const modelPath = getModelFilePath(modelsDir, entry, format);
305
374
  if (!modelPath || !node_fs.existsSync(modelPath)) return false;
375
+ node_fs.rmSync(revisionRecordPath(modelPath), { force: true });
306
376
  const formatEntry = entry.formats[format];
307
377
  if (formatEntry?.isDirectory) node_fs.rmSync(modelPath, {
308
378
  recursive: true,
@@ -257,6 +257,65 @@ async function downloadDirectory(url, destDir, knownFiles, onProgress) {
257
257
  }
258
258
  }
259
259
  /**
260
+ * Where a node records the catalog `revision` of the format it downloaded:
261
+ * a sibling of the file or bundle, `<name>.revision` (D743). Outside the
262
+ * bundle, so a `.mlpackage` keeps exactly the hosted files.
263
+ */
264
+ function revisionRecordPath(modelPath) {
265
+ return `${modelPath}.revision`;
266
+ }
267
+ function readRevisionRecord(modelPath) {
268
+ try {
269
+ return fs.readFileSync(revisionRecordPath(modelPath), "utf8").trim();
270
+ } catch {
271
+ return null;
272
+ }
273
+ }
274
+ /**
275
+ * True when the copy at `modelPath` is the one the catalog names. A format
276
+ * without a `revision` is current whenever it is present (the behaviour
277
+ * before revisions existed); with one, the node's record must match it — no
278
+ * record means the copy predates the revision and may hold replaced bytes.
279
+ */
280
+ function isCurrentRevision(modelPath, formatEntry) {
281
+ return formatEntry.revision === void 0 || readRevisionRecord(modelPath) === formatEntry.revision;
282
+ }
283
+ function writeRevisionRecord(modelPath, formatEntry) {
284
+ if (formatEntry.revision === void 0) return;
285
+ const record = revisionRecordPath(modelPath);
286
+ const tmp = `${record}.tmp`;
287
+ fs.writeFileSync(tmp, `${formatEntry.revision}\n`);
288
+ fs.renameSync(tmp, record);
289
+ }
290
+ /**
291
+ * Replace a single-file format and its siblings that are already on disk.
292
+ * `downloadFile` keeps an existing file, so every file is fetched to a
293
+ * `.updating` name first and moved over the old one only when ALL of them
294
+ * arrived: a failed fetch leaves the old copy serving.
295
+ */
296
+ async function replaceSingleFileFormat(url, modelPath, modelsDir, siblings, onProgress) {
297
+ const parts = [{
298
+ url,
299
+ dest: modelPath
300
+ }, ...siblings.map((f) => ({
301
+ url: siblingUrl(url, f),
302
+ dest: path$1.join(modelsDir, f)
303
+ }))].map((p) => ({
304
+ ...p,
305
+ staged: `${p.dest}.updating`
306
+ }));
307
+ try {
308
+ for (const [i, part] of parts.entries()) {
309
+ fs.rmSync(part.staged, { force: true });
310
+ await downloadFile(part.url, part.staged, i === 0 ? (downloaded, total) => onProgress?.(downloaded, total === 0 ? void 0 : total) : void 0);
311
+ }
312
+ } catch (err) {
313
+ for (const part of parts) fs.rmSync(part.staged, { force: true });
314
+ throw err;
315
+ }
316
+ for (const part of parts) fs.renameSync(part.staged, part.dest);
317
+ }
318
+ /**
260
319
  * Resolve a `ModelCatalogEntry` against `modelsDir`: download model file
261
320
  * (or directory bundle) + extra files (labels JSON, charset dict, …),
262
321
  * skip if already on disk. Returns the local model path.
@@ -268,17 +327,22 @@ async function ensureModel(modelsDir, entry, format, onProgress) {
268
327
  const filename = formatEntry.url.split("/").pop() ?? `${entry.id}.${format}`;
269
328
  const modelPath = path$1.join(modelsDir, filename);
270
329
  const siblings = siblingFilesFor(formatEntry);
330
+ let outdated = false;
271
331
  if (fs.existsSync(modelPath)) if (formatEntry.isDirectory && !fs.existsSync(path$1.join(modelPath, "Manifest.json"))) fs.rmSync(modelPath, {
272
332
  recursive: true,
273
333
  force: true
274
334
  });
275
- else if (siblings.some((f) => !isNonEmptyFile(path$1.join(modelsDir, f)))) {} else return modelPath;
335
+ else if (siblings.some((f) => !isNonEmptyFile(path$1.join(modelsDir, f)))) outdated = !isCurrentRevision(modelPath, formatEntry);
336
+ else if (isCurrentRevision(modelPath, formatEntry)) return modelPath;
337
+ else outdated = true;
276
338
  fs.mkdirSync(modelsDir, { recursive: true });
277
339
  if (formatEntry.isDirectory) await downloadDirectory(formatEntry.url, modelPath, formatEntry.files, onProgress);
340
+ else if (outdated) await replaceSingleFileFormat(formatEntry.url, modelPath, modelsDir, siblings, onProgress);
278
341
  else {
279
342
  await downloadFile(formatEntry.url, modelPath, (downloaded, total) => onProgress?.(downloaded, total === 0 ? void 0 : total));
280
343
  for (const sibling of siblings) await downloadFile(siblingUrl(formatEntry.url, sibling), path$1.join(modelsDir, sibling));
281
344
  }
345
+ writeRevisionRecord(modelPath, formatEntry);
282
346
  return modelPath;
283
347
  }
284
348
  /** Compute the on-disk path for a given model + format, even when not yet downloaded. */
@@ -288,12 +352,17 @@ function getModelFilePath(modelsDir, entry, format) {
288
352
  const filename = formatEntry.url.split("/").pop() ?? `${entry.id}.${format}`;
289
353
  return path$1.join(modelsDir, filename);
290
354
  }
291
- /** True iff the model file (or `Manifest.json` for directory bundles) exists and is non-empty. */
355
+ /**
356
+ * True iff the model file (or `Manifest.json` for directory bundles) exists and
357
+ * is non-empty, and — when the catalog names a `revision` — the node recorded
358
+ * that same revision for it (D743).
359
+ */
292
360
  function isModelDownloaded(modelsDir, entry, format) {
293
361
  const formatEntry = entry.formats[format];
294
362
  if (!formatEntry) return false;
295
363
  const modelPath = getModelFilePath(modelsDir, entry, format);
296
364
  if (!modelPath || !fs.existsSync(modelPath)) return false;
365
+ if (!isCurrentRevision(modelPath, formatEntry)) return false;
297
366
  if (formatEntry.isDirectory) return fs.existsSync(path$1.join(modelPath, "Manifest.json"));
298
367
  if (fs.statSync(modelPath).size <= 0) return false;
299
368
  return siblingFilesFor(formatEntry).every((f) => isNonEmptyFile(path$1.join(modelsDir, f)));
@@ -302,6 +371,7 @@ function isModelDownloaded(modelsDir, entry, format) {
302
371
  function deleteModelFromDisk(modelsDir, entry, format) {
303
372
  const modelPath = getModelFilePath(modelsDir, entry, format);
304
373
  if (!modelPath || !fs.existsSync(modelPath)) return false;
374
+ fs.rmSync(revisionRecordPath(modelPath), { force: true });
305
375
  const formatEntry = entry.formats[format];
306
376
  if (formatEntry?.isDirectory) fs.rmSync(modelPath, {
307
377
  recursive: true,
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-UT1QNI9K.js");
3
+ const require_dist = require("./dist-DiScyAO6.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_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
@@ -29,9 +29,9 @@ require("./builtins/storage-orchestrator/index.js");
29
29
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
30
30
  require("./builtins/system-config/index.js");
31
31
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
32
- const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-ey4mbofz.js");
32
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CuTt1wq7.js");
33
33
  const require_tls$1 = require("./tls-CCMX7MjX.js");
34
- const require_child_cap_dispatch = require("./child-cap-dispatch-CV8_LDxx.js");
34
+ const require_child_cap_dispatch = require("./child-cap-dispatch-B79ITdeA.js");
35
35
  const require_resource_monitor = require("./resource-monitor-BgWGRxN5.js");
36
36
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
37
37
  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 { Ar as EventCategory$1, At as extractNestedAddonId, Bt as isObjectInput, Cr as parseJsonObject, Dr as scopeKey, Er as resolveCapMount, Gt as lifecycleJobSchema, Ht as kebabToCamel, It as isArrayOutputSchema, Lt as isCollectionArrayMethod, N as RUNTIME_DEFAULTS, O as METHOD_ACCESS_MAP, T as LOG_LEVEL_RANK, Tn as scopesAllowDeviceCap, Tr as readinessKey, Vt as isVoidInput, W as addonSettingsCapability, Xt as looseSchema, Yt as logLevelAtMost, an as objectInputDeclaresAddonId, cr as DEVICE_STATUS_METHOD, dn as procedureAuthKey, fr as asJsonObject$1, gr as emitDownForOwnedCaps, hr as createEvent, ir as errMsg$1, lr as ReadinessRegistry, mr as asString$1, on as objectInputDeclaresRequiredDeviceId, or as DATAPLANE_SECRET_HEADER$1, pr as asNumber, sr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, t as ALL_CAPABILITY_DEFINITIONS, ur as ReadinessTimeoutError, vr as expandCapMethods, wn as scopesAllowAddon, wr as parseJsonUnknown, xn as resolveMethodAuth } from "./dist-BgJZdlW6.mjs";
2
+ import { Ar as EventCategory$1, At as extractNestedAddonId, Bt as isObjectInput, Cr as parseJsonObject, Dr as scopeKey, Er as resolveCapMount, Gt as lifecycleJobSchema, Ht as kebabToCamel, It as isArrayOutputSchema, Lt as isCollectionArrayMethod, N as RUNTIME_DEFAULTS, O as METHOD_ACCESS_MAP, T as LOG_LEVEL_RANK, Tn as scopesAllowDeviceCap, Tr as readinessKey, Vt as isVoidInput, W as addonSettingsCapability, Xt as looseSchema, Yt as logLevelAtMost, an as objectInputDeclaresAddonId, cr as DEVICE_STATUS_METHOD, dn as procedureAuthKey, fr as asJsonObject$1, gr as emitDownForOwnedCaps, hr as createEvent, ir as errMsg$1, lr as ReadinessRegistry, mr as asString$1, on as objectInputDeclaresRequiredDeviceId, or as DATAPLANE_SECRET_HEADER$1, pr as asNumber, sr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, t as ALL_CAPABILITY_DEFINITIONS, ur as ReadinessTimeoutError, vr as expandCapMethods, wn as scopesAllowAddon, wr as parseJsonUnknown, xn as resolveMethodAuth } from "./dist-C-IdBSWx.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
@@ -28,9 +28,9 @@ import "./builtins/storage-orchestrator/index.mjs";
28
28
  import { SystemConfigAddon } from "./builtins/system-config/system-config.addon.mjs";
29
29
  import "./builtins/system-config/index.mjs";
30
30
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
31
- import { _ as ensureModel, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, g as downloadModel, h as downloadFile, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as deleteModelFromDisk, n as STALL_TICK_MS, o as contentTypeFor, p as collectModelFiles, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as fetchJson, x as isModelDownloaded, y as getModelFilePath } from "./event-loop-stall-monitor-EXjzIxDz.mjs";
31
+ import { _ as ensureModel, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, g as downloadModel, h as downloadFile, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as deleteModelFromDisk, n as STALL_TICK_MS, o as contentTypeFor, p as collectModelFiles, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as fetchJson, x as isModelDownloaded, y as getModelFilePath } from "./event-loop-stall-monitor-NFG6boF5.mjs";
32
32
  import { A as allFamiliesListenHost, C as collectCertIdentity, D as SERVER_AUTH_OID, E as MAX_LEAF_VALIDITY_DAYS, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as evaluateExistingCert, P as readLanHttpState, S as CA_COMMON_NAME, T as LEAF_RENEWAL_WINDOW_DAYS, _ as writeExtraSans, a as validateUploadedTls, b as loadTlsCert, c as registerHttpsListener, d as prepareBootTls, f as UPLOADED_CA_FILE, g as splitPemCertificates, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as reloadHttpsListener, m as readTlsAccessStatus, n as regenerateCertificate, o as clearHttpsListener, p as readExtraSans, r as revertToGeneratedCertificate, s as leafFingerprintOf, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, v as writeTlsMode, w as CA_VALIDITY_DAYS, x as reissueTlsLeaf, y as ensureTlsCert } from "./tls-CJHogwTl.mjs";
33
- import { $ as CapRouteError, $n as EMPTY_CAP_ACTION_READING, $t as RUNNER_RSS_BUDGET_ENV, A as resolveHwAccel, An as OUTBOUND_QUEUE_SUSTAIN_MS, At as DeviceRegistry, B as udsChildLogToWorkerEntry, Bn as createSocketPlaneMeter, Bt as hostNodeIdOf, C as getBrokerEventBus, Cn as HEAP_SPACE_REPORT_MIN_MB, Ct as capActionName, D as subscribePassthrough, Dn as readHeapSpaces, Dt as parseCapAction, E as setNodeEventInterest, En as heapSpaceField, Et as capServiceName, F as ipcParentLink, Fn as createMeshQueueReader, Ft as resolveAddonClass, G as UDS_NO_ROUTE_PREFIX, Gn as EMPTY_SOCKET_DIRECTION, Gt as HEAP_WATCH_INTERVAL_MS, H as createUdsLoggerWithControl, Hn as diffSocketPlane, Ht as HEAP_RECLAIM_MIN_INTERVAL_MS, I as localProviderLink, In as formatMeshQueue, It as buildNpmChildEnv, J as answerClaimedGetStatus, Jn as sampleSocketDirection, Jt as HUB_MAIN_RSS_BUDGET_MB, K as afterWorkerOnlineAnnounce, Kn as createSocketDirectionCounters, Kt as HEAP_WATCH_WARN_RATIO, L as createParentUnownedCallHandler, Ln as EMPTY_SOCKET_PLANE_BASELINE, Lt as resolveNpmInvocation, M as brokerTransportLink, Mn as createOutboundQueueGate, Mt as CapabilityUnavailableError, N as buildLinkChain, Nn as formatOutboundQueueVerdict, Nt as copyBundledNativeModules, O as AddonDepsManager, On as selectReportedSpaces, Ot as deserializeTypedArrays, P as deviceCapResolverLink, Pn as MESH_QUEUE_TOP_N, Pt as installManifestNativeDeps, Q as CapRouteResolver, Qn as CAP_ACTION_UNLABELLED, Qt as RUNNER_HEAP_WATCH_INTERVAL_MS, R as createUdsEventBridge, Rn as SOCKET_PLANE_TOP_N, Rt as runNpm, S as clusterEventTopic, Sn as DECISIVE_HEAP_SPACES, St as NATIVE_PROVIDER_SERVICE_INFIX, T as registerEventBusService, Tn as formatHeapSpaces, Tt as capBareAction, U as LocalChildClient, Un as formatSocketPlane, Ut as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, V as createUdsLogger, Vn as createSocketPlaneReader, Vt as createAddonDataPlaneFacility, W as LocalChildRegistry, Wn as readSocketQueues, Wt as HEAP_RECLAIM_TRIGGER_MB, X as AGENT_CAP_FWD_ACTION, Xn as socketDirectionMessages, Xt as RSS_BUDGET_REANNOUNCE_MIN_MS, Y as deviceOfGetStatus, Yn as socketDirectionBytes, Yt as HUB_RSS_BUDGET_ENV, Z as AGENT_CAP_FWD_SERVICE, Zn as CAP_ACTION_OVERFLOW_LABEL, Zt as RSS_BUDGET_RELEASE_RATIO, _ as getWorkerDeviceRegistry, _n as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, a as reapProcessGroup, an as describeRss, ar as createEventPlaneMeter, at as getCapUsageRegistry, b as setHubConnected, bn as formatArrayBufferCensus, bt as createAddonService, c as runnerOwnsProcessGroup, cn as parseRssBudgetMb, cr as formatEventPlane, ct as UdsLocalTransportServer, d as summarizeMembers, dn as startHeapWatch, dt as localEndpointPath, en as ZERO_LOOP_DELAY, er as MAX_CAP_ACTIONS_PER_PEER, et as classifyCapRoute, f as installManifestSystemDeps, fn as startRunnerHeapWatch, ft as FrameDecoder, g as createUdsAddonContext, gn as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, h as createAddonContext, hn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ht as createBrokerDeviceManagerApi, in as createV8Reclaimer, ir as EVENT_PLANE_TOP_N, it as __resetCapUsageRegistryForTests, j as brokerCallForCap, jn as OUTBOUND_QUEUE_THRESHOLD_BYTES, jt as CapabilityHandle, k as createKernelHwAccel, kn as OUTBOUND_QUEUE_COOLDOWN_MS, kt as serializeTypedArrays, l as signalAllRunnerGroups, ln as reclaimIntervalMs, lt as SocketChannel, m as adaptBrokerToCluster, mn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, mt as buildNativeCapProxy, nn as createDeferredHeapWatchSink, nr as createCapActionCensus, nt as CapUsageRegistry, o as registerRunnerGroup, on as hubMainRssBudget, or as createEventPlaneReader, ot as createLocalTransport, p as installManifestPythonDeps, pn as strandedMb, pt as encodeFrame, q as GET_STATUS_METHOD, qn as recordSocketFrame, qt as HUB_MAIN_HEAP_WATCH_LABEL, r as defaultProcessGroupOps, rn as createLoopDelayMeter, rr as diffCapActionCensus, rt as PARENT_ROUTED_PROVIDER_ADDON_ID, s as releaseRunnerGroup, sn as nextRssBudgetState, sr as diffEventPlane, st as UdsLocalTransportClient, t as CAP_METHOD_NOT_IMPLEMENTED, tn as buildHeapSample, tr as capActionLabel, tt as callWithServiceDiscovery, un as shouldReclaim, ut as PeerAnsweredError, v as getOrInitReadinessRegistry, vn as createArrayBufferCensusGate, vt as mountNativeCapService, w as getMoleculerEventStats, wn as emitHeapDiagnosticReport, wt as capActionSuffix, x as EVENT_TOPIC_PREFIX, xn as isArrayBufferCensusReport, xt as validateProviderRegistrations, y as getOrInitReadinessRegistryForClient, yn as createInspectorArrayBufferCensus, z as createUdsEventBus, zn as SOCKET_QUEUE_TOP_N, zt as createAddonPeerBytesFacility } from "./child-cap-dispatch-Cr70toWw.mjs";
33
+ import { $ as CapRouteError, $n as EMPTY_CAP_ACTION_READING, $t as RUNNER_RSS_BUDGET_ENV, A as resolveHwAccel, An as OUTBOUND_QUEUE_SUSTAIN_MS, At as DeviceRegistry, B as udsChildLogToWorkerEntry, Bn as createSocketPlaneMeter, Bt as hostNodeIdOf, C as getBrokerEventBus, Cn as HEAP_SPACE_REPORT_MIN_MB, Ct as capActionName, D as subscribePassthrough, Dn as readHeapSpaces, Dt as parseCapAction, E as setNodeEventInterest, En as heapSpaceField, Et as capServiceName, F as ipcParentLink, Fn as createMeshQueueReader, Ft as resolveAddonClass, G as UDS_NO_ROUTE_PREFIX, Gn as EMPTY_SOCKET_DIRECTION, Gt as HEAP_WATCH_INTERVAL_MS, H as createUdsLoggerWithControl, Hn as diffSocketPlane, Ht as HEAP_RECLAIM_MIN_INTERVAL_MS, I as localProviderLink, In as formatMeshQueue, It as buildNpmChildEnv, J as answerClaimedGetStatus, Jn as sampleSocketDirection, Jt as HUB_MAIN_RSS_BUDGET_MB, K as afterWorkerOnlineAnnounce, Kn as createSocketDirectionCounters, Kt as HEAP_WATCH_WARN_RATIO, L as createParentUnownedCallHandler, Ln as EMPTY_SOCKET_PLANE_BASELINE, Lt as resolveNpmInvocation, M as brokerTransportLink, Mn as createOutboundQueueGate, Mt as CapabilityUnavailableError, N as buildLinkChain, Nn as formatOutboundQueueVerdict, Nt as copyBundledNativeModules, O as AddonDepsManager, On as selectReportedSpaces, Ot as deserializeTypedArrays, P as deviceCapResolverLink, Pn as MESH_QUEUE_TOP_N, Pt as installManifestNativeDeps, Q as CapRouteResolver, Qn as CAP_ACTION_UNLABELLED, Qt as RUNNER_HEAP_WATCH_INTERVAL_MS, R as createUdsEventBridge, Rn as SOCKET_PLANE_TOP_N, Rt as runNpm, S as clusterEventTopic, Sn as DECISIVE_HEAP_SPACES, St as NATIVE_PROVIDER_SERVICE_INFIX, T as registerEventBusService, Tn as formatHeapSpaces, Tt as capBareAction, U as LocalChildClient, Un as formatSocketPlane, Ut as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, V as createUdsLogger, Vn as createSocketPlaneReader, Vt as createAddonDataPlaneFacility, W as LocalChildRegistry, Wn as readSocketQueues, Wt as HEAP_RECLAIM_TRIGGER_MB, X as AGENT_CAP_FWD_ACTION, Xn as socketDirectionMessages, Xt as RSS_BUDGET_REANNOUNCE_MIN_MS, Y as deviceOfGetStatus, Yn as socketDirectionBytes, Yt as HUB_RSS_BUDGET_ENV, Z as AGENT_CAP_FWD_SERVICE, Zn as CAP_ACTION_OVERFLOW_LABEL, Zt as RSS_BUDGET_RELEASE_RATIO, _ as getWorkerDeviceRegistry, _n as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, a as reapProcessGroup, an as describeRss, ar as createEventPlaneMeter, at as getCapUsageRegistry, b as setHubConnected, bn as formatArrayBufferCensus, bt as createAddonService, c as runnerOwnsProcessGroup, cn as parseRssBudgetMb, cr as formatEventPlane, ct as UdsLocalTransportServer, d as summarizeMembers, dn as startHeapWatch, dt as localEndpointPath, en as ZERO_LOOP_DELAY, er as MAX_CAP_ACTIONS_PER_PEER, et as classifyCapRoute, f as installManifestSystemDeps, fn as startRunnerHeapWatch, ft as FrameDecoder, g as createUdsAddonContext, gn as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, h as createAddonContext, hn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ht as createBrokerDeviceManagerApi, in as createV8Reclaimer, ir as EVENT_PLANE_TOP_N, it as __resetCapUsageRegistryForTests, j as brokerCallForCap, jn as OUTBOUND_QUEUE_THRESHOLD_BYTES, jt as CapabilityHandle, k as createKernelHwAccel, kn as OUTBOUND_QUEUE_COOLDOWN_MS, kt as serializeTypedArrays, l as signalAllRunnerGroups, ln as reclaimIntervalMs, lt as SocketChannel, m as adaptBrokerToCluster, mn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, mt as buildNativeCapProxy, nn as createDeferredHeapWatchSink, nr as createCapActionCensus, nt as CapUsageRegistry, o as registerRunnerGroup, on as hubMainRssBudget, or as createEventPlaneReader, ot as createLocalTransport, p as installManifestPythonDeps, pn as strandedMb, pt as encodeFrame, q as GET_STATUS_METHOD, qn as recordSocketFrame, qt as HUB_MAIN_HEAP_WATCH_LABEL, r as defaultProcessGroupOps, rn as createLoopDelayMeter, rr as diffCapActionCensus, rt as PARENT_ROUTED_PROVIDER_ADDON_ID, s as releaseRunnerGroup, sn as nextRssBudgetState, sr as diffEventPlane, st as UdsLocalTransportClient, t as CAP_METHOD_NOT_IMPLEMENTED, tn as buildHeapSample, tr as capActionLabel, tt as callWithServiceDiscovery, un as shouldReclaim, ut as PeerAnsweredError, v as getOrInitReadinessRegistry, vn as createArrayBufferCensusGate, vt as mountNativeCapService, w as getMoleculerEventStats, wn as emitHeapDiagnosticReport, wt as capActionSuffix, x as EVENT_TOPIC_PREFIX, xn as isArrayBufferCensusReport, xt as validateProviderRegistrations, y as getOrInitReadinessRegistryForClient, yn as createInspectorArrayBufferCensus, z as createUdsEventBus, zn as SOCKET_QUEUE_TOP_N, zt as createAddonPeerBytesFacility } from "./child-cap-dispatch-CtBHqm2J.mjs";
34
34
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-B2WZ8_q9.mjs";
35
35
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
36
36
  import { z } from "zod";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-UT1QNI9K.js");
1
+ const require_dist = require("./dist-DiScyAO6.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 { fr as asJsonObject } from "./dist-BgJZdlW6.mjs";
1
+ import { fr as asJsonObject } from "./dist-C-IdBSWx.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.362",
3
+ "version": "1.2.364",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",