@camstack/system 1.2.332 → 1.2.334

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 (72) 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/autotrack-cameras.d.ts +1 -1
  12. package/dist/builtins/autotrack/index.js +1 -1
  13. package/dist/builtins/autotrack/index.mjs +1 -1
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  15. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  16. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +1 -1
  17. package/dist/builtins/camera-grid/index.js +2 -2
  18. package/dist/builtins/camera-grid/index.mjs +2 -2
  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 +17 -2
  26. package/dist/builtins/device-manager/device-manager.addon.mjs +17 -2
  27. package/dist/builtins/device-manager/device-meta-types.d.ts +1 -1
  28. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +6 -0
  29. package/dist/builtins/hub-forwarder/index.js +1 -1
  30. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  31. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  32. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  33. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  34. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  35. package/dist/builtins/local-network/local-network.addon.js +1 -1
  36. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  37. package/dist/builtins/loki-logging/index.js +1 -1
  38. package/dist/builtins/loki-logging/index.mjs +1 -1
  39. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  40. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  41. package/dist/builtins/platform-probe/index.js +1 -1
  42. package/dist/builtins/platform-probe/index.mjs +1 -1
  43. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  44. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  45. package/dist/builtins/snapshot/index.js +3 -3
  46. package/dist/builtins/snapshot/index.mjs +3 -3
  47. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +1 -1
  48. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  49. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  50. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  51. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  52. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  53. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  54. package/dist/builtins/system-config/system-config.addon.js +1 -1
  55. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  56. package/dist/builtins/winston-logging/index.js +1 -1
  57. package/dist/builtins/winston-logging/index.mjs +1 -1
  58. package/dist/{child-cap-dispatch-93MfsaZL.js → child-cap-dispatch-Cy56Y66E.js} +39 -0
  59. package/dist/{child-cap-dispatch-kLIiU1CG.mjs → child-cap-dispatch-Dmo2YJFe.mjs} +39 -0
  60. package/dist/{composition-sources-BpyaHvoR.mjs → composition-sources-BWautla8.mjs} +1 -1
  61. package/dist/{composition-sources-DK--XR5V.js → composition-sources-BuIRUkTE.js} +1 -1
  62. package/dist/{dist-BEPK2RUO.mjs → dist-COj36Fwm.mjs} +77 -67
  63. package/dist/{dist-CH3jfPMi.js → dist-Ex-rbzic.js} +77 -67
  64. package/dist/index.js +4 -4
  65. package/dist/index.mjs +4 -4
  66. package/dist/kernel/capability-registry.d.ts +1 -1
  67. package/dist/kernel/transport/local-child-registry.d.ts +30 -0
  68. package/dist/{retired-settings-keys-C5mSevGV.js → retired-settings-keys-Bmyl7KuD.js} +1 -1
  69. package/dist/{retired-settings-keys-tDI1g7ab.mjs → retired-settings-keys-DzbmRUhF.mjs} +1 -1
  70. package/dist/{snapshot-courtesy-CZPvteq2.mjs → snapshot-courtesy-CyFs1M3I.mjs} +1 -1
  71. package/dist/{snapshot-courtesy-Cqs7GkOV.js → snapshot-courtesy-D_C5-nC0.js} +1 -1
  72. 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-93MfsaZL.js");
2
+ const require_child_cap_dispatch = require("./child-cap-dispatch-Cy56Y66E.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-kLIiU1CG.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-Dmo2YJFe.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";
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("./chunk-Cek0wNdY.js");
3
3
  const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-ey4mbofz.js");
4
4
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
5
- const require_snapshot_courtesy = require("./snapshot-courtesy-Cqs7GkOV.js");
5
+ const require_snapshot_courtesy = require("./snapshot-courtesy-D_C5-nC0.js");
6
6
  exports.COURTESY_DEFAULT_WIDTH = require_snapshot_courtesy.COURTESY_DEFAULT_WIDTH;
7
7
  exports.CustomActionRegistry = require_custom_action_registry.CustomActionRegistry;
8
8
  exports.ModelDownloadHttpError = require_event_loop_stall_monitor.ModelDownloadHttpError;
@@ -1,4 +1,4 @@
1
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";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
3
- import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg, t as COURTESY_DEFAULT_WIDTH } from "./snapshot-courtesy-CZPvteq2.mjs";
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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Hn as errMsg, Un as BaseAddon, V as addonPagesCapability, mr as EventCategory } from "../../dist-BEPK2RUO.mjs";
1
+ import { Hn as errMsg, Un as BaseAddon, V as addonPagesCapability, mr as EventCategory } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Hn as errMsg, U as addonWidgetsCapability, Un as BaseAddon, mr as EventCategory } from "../../dist-BEPK2RUO.mjs";
1
+ import { Hn as errMsg, U as addonWidgetsCapability, Un as BaseAddon, mr as EventCategory } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { $n as createEvent, Hn as errMsg, Un as BaseAddon, W as alertsCapability, mr as EventCategory, n as AlertSchema } from "../../dist-BEPK2RUO.mjs";
1
+ import { $n as createEvent, Hn as errMsg, Un as BaseAddon, W as alertsCapability, mr as EventCategory, n as AlertSchema } from "../../dist-COj36Fwm.mjs";
2
2
  //#region src/builtins/alerts/prune-policy.ts
3
3
  /**
4
4
  * Ids older than `cutoffMs`, oldest first.
@@ -4,7 +4,7 @@ import { AutotrackLoopConfig } from './autotrack-config.js';
4
4
  * How much of the frame the subject SHOULD occupy, and nothing else about zoom.
5
5
  *
6
6
  * Hidden on purpose (operator, 2026-09-18: *"rendiamo lo zoom configurabile,
7
- * nascosto per ora, ci lavoriamo poi quando ne vedo il bisogno"*). It is not in
7
+ * nascosto per ora, ci lavoriamo poi quando ne vedo il bisogno"* [let us make the zoom configurable, hidden for now, we will work on it later when I see the need]). It is not in
8
8
  * `PtzAutotrackSettings` — that schema is the cross-vendor surface the device
9
9
  * page renders, and putting it there would SHOW a control nothing implements.
10
10
  * It lives in this addon's own record instead: settable, persisted, invisible.
@@ -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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Hn as errMsg, Un as BaseAddon, ar as isEvent, b as FIRST_LEVEL_MACRO_CLASSES, mr as EventCategory, q as bareAddonId, rn as ptzAutotrackCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Hn as errMsg, Un as BaseAddon, ar as isEvent, b as FIRST_LEVEL_MACRO_CLASSES, mr as EventCategory, q as bareAddonId, rn as ptzAutotrackCapability } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Gt as mayWriteToLocation, K as backupCapability, Un as BaseAddon, m as DATABASE_SNAPSHOT_SUFFIX, mr as EventCategory, or as nodePin, pr as toNodeId, vn as storageOccupancyCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Gt as mayWriteToLocation, K as backupCapability, Un as BaseAddon, m as DATABASE_SNAPSHOT_SUFFIX, mr as EventCategory, or as nodePin, pr as toNodeId, vn as storageOccupancyCapability } from "../../dist-COj36Fwm.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 @@
3
3
  *
4
4
  * ## What "sentryMuted" turned out to be
5
5
  *
6
- * The operator asked for a stream that *"non esiste ancora"*. It half did.
6
+ * The operator asked for a stream that *"non esiste ancora"* [does not exist yet]. It half did.
7
7
  * `SENTRY_PATH_SUFFIX` has existed since the sentry shipped. What did not exist is the
8
8
  * WRITER that turns an acquired restream url into that dial, and the broker
9
9
  * telling a consumer whether one is on offer. Both are now in
@@ -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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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");
@@ -1258,7 +1258,7 @@ function gridSourceDial(acquired) {
1258
1258
  * ## The decision, and the two things it rejects
1259
1259
  *
1260
1260
  * The operator: *"Lo snapshot possiamo sempre farlo dallo stream sempre, non
1261
- * c'e' bisogno di comporre gli snapshots"*. So:
1261
+ * c'e' bisogno di comporre gli snapshots"* [we can always take the snapshot from the stream, there is no need to compose the snapshots]. So:
1262
1262
  *
1263
1263
  * - **Not composed from source snapshots.** That would be a SECOND compositor,
1264
1264
  * with its own geometry, its own aspect handling and its own bugs, producing
@@ -1,4 +1,4 @@
1
- import { $n as createEvent, Hn as errMsg, Kt as memoizePinnedFfmpeg, O as MOTION_CLOSE_AFTER_MS, Un as BaseAddon, Vn as DeviceType, Yt as motionCapability, Z as cameraGridLayoutCapability, _ as DERIVED_CAMERA_SILENCED_CAP_NAMES, bn as streamCatalogCapability, hn as snapshotCapability, i as BaseDevice, kn as buildFfmpegArgs, mr as EventCategory, rr as hydrateSchema, ut as declarationOwnerNodeId, v as DeclaredDevices, zn as DeviceFeature } from "../../dist-BEPK2RUO.mjs";
1
+ import { $n as createEvent, Hn as errMsg, Kt as memoizePinnedFfmpeg, O as MOTION_CLOSE_AFTER_MS, Un as BaseAddon, Vn as DeviceType, Yt as motionCapability, Z as cameraGridLayoutCapability, _ as DERIVED_CAMERA_SILENCED_CAP_NAMES, bn as streamCatalogCapability, hn as snapshotCapability, i as BaseDevice, kn as buildFfmpegArgs, mr as EventCategory, rr as hydrateSchema, ut as declarationOwnerNodeId, v as DeclaredDevices, zn as DeviceFeature } from "../../dist-COj36Fwm.mjs";
2
2
  import { z } from "zod";
3
3
  import { FfmpegProcess } from "@camstack/types/node";
4
4
  import { join } from "node:path";
@@ -1253,7 +1253,7 @@ function gridSourceDial(acquired) {
1253
1253
  * ## The decision, and the two things it rejects
1254
1254
  *
1255
1255
  * The operator: *"Lo snapshot possiamo sempre farlo dallo stream sempre, non
1256
- * c'e' bisogno di comporre gli snapshots"*. So:
1256
+ * c'e' bisogno di comporre gli snapshots"* [we can always take the snapshot from the stream, there is no need to compose the snapshots]. So:
1257
1257
  *
1258
1258
  * - **Not composed from source snapshots.** That would be a SECOND compositor,
1259
1259
  * with its own geometry, its own aspect handling and its own bugs, producing
@@ -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-CH3jfPMi.js");
7
- const require_composition_sources = require("../../composition-sources-DK--XR5V.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.js");
7
+ const require_composition_sources = require("../../composition-sources-BuIRUkTE.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 { $ as composerCapability, $n as createEvent, An as cloneStatefulExpressionMemory, Fn as compositionSliceKey, Hn as errMsg, In as compositionSourceKey, Ln as createStatefulExpressionMemory, Mn as composedDeviceStableId, Nn as compositionFeatureEnabled, On as COMPOSER_ADDON_ID, Pn as compositionItemFieldPath, Rn as toExpressionValue, St as evaluateCompositionField, Un as BaseAddon, Vn as DeviceType, Y as buildCapabilityLookup, c as COMPOSED_ITEM_FIXED_FIELDS, en as planComposition, et as compositionFieldKey, i as BaseDevice, jn as composedDeviceRef, mr as EventCategory, t as ALL_CAPABILITY_DEFINITIONS, v as DeclaredDevices } from "../../dist-BEPK2RUO.mjs";
2
- import { n as normalizedNativeOwner } from "../../composition-sources-BpyaHvoR.mjs";
1
+ import { $ as composerCapability, $n as createEvent, An as cloneStatefulExpressionMemory, Fn as compositionSliceKey, Hn as errMsg, In as compositionSourceKey, Ln as createStatefulExpressionMemory, Mn as composedDeviceStableId, Nn as compositionFeatureEnabled, On as COMPOSER_ADDON_ID, Pn as compositionItemFieldPath, Rn as toExpressionValue, St as evaluateCompositionField, Un as BaseAddon, Vn as DeviceType, Y as buildCapabilityLookup, c as COMPOSED_ITEM_FIXED_FIELDS, en as planComposition, et as compositionFieldKey, i as BaseDevice, jn as composedDeviceRef, mr as EventCategory, t as ALL_CAPABILITY_DEFINITIONS, v as DeclaredDevices } from "../../dist-COj36Fwm.mjs";
2
+ import { n as normalizedNativeOwner } from "../../composition-sources-BWautla8.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Un as BaseAddon, Vt as logDestinationCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Un as BaseAddon, Vt as logDestinationCapability } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
4
- const require_composition_sources = require("../../composition-sources-DK--XR5V.js");
3
+ const require_dist = require("../../dist-Ex-rbzic.js");
4
+ const require_composition_sources = require("../../composition-sources-BuIRUkTE.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 { Cn as validateComposition, Hn as errMsg, In as compositionSourceKey, Un as BaseAddon, Y as buildCapabilityLookup, an as replacedFieldKeys, at as coreBlockSourceKind, d as CORE_BLOCK_ADDON_PREFIX, en as planComposition, f as CoreBlockSchema, it as coreBlockIdFromAddonId, jn as composedDeviceRef, l as COMPOSER_RUNNER_ID, mt as describeComposableCaps, nt as coreBlockAddonId, ot as coreBlocksCapability, rt as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, tt as compositionSourceRefs, u as CORE_BLOCKS_ADDON_ID, v as DeclaredDevices } from "../../dist-BEPK2RUO.mjs";
2
- import { t as describeCompositionSources } from "../../composition-sources-BpyaHvoR.mjs";
1
+ import { Cn as validateComposition, Hn as errMsg, In as compositionSourceKey, Un as BaseAddon, Y as buildCapabilityLookup, an as replacedFieldKeys, at as coreBlockSourceKind, d as CORE_BLOCK_ADDON_PREFIX, en as planComposition, f as CoreBlockSchema, it as coreBlockIdFromAddonId, jn as composedDeviceRef, l as COMPOSER_RUNNER_ID, mt as describeComposableCaps, nt as coreBlockAddonId, ot as coreBlocksCapability, rt as coreBlockComposition, t as ALL_CAPABILITY_DEFINITIONS, tt as compositionSourceRefs, u as CORE_BLOCKS_ADDON_ID, v as DeclaredDevices } from "../../dist-COj36Fwm.mjs";
2
+ import { t as describeCompositionSources } from "../../composition-sources-BWautla8.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { customizationBlockName } from "@camstack/types/node";
5
5
  import * as fs from "node:fs/promises";
@@ -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-CH3jfPMi.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-C5mSevGV.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-Bmyl7KuD.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");
@@ -1062,6 +1062,20 @@ var RECOVERY = "deviceManager.setWrapperActive({ deviceId, capName, wrapperAddon
1062
1062
  * this for every stored string activation (re-review N2).
1063
1063
  */
1064
1064
  var DECLARED_NON_WRAPPER_CAPS = new Set(require_dist.ALL_CAPABILITY_DEFINITIONS.filter((cap) => cap.kind !== "wrapper").map((cap) => cap.name));
1065
+ /**
1066
+ * Every COLLECTION cap this build declares — the static table, like the set
1067
+ * above, because a stored row must be judged the same whether or not a
1068
+ * provider of the cap is live yet (R1-L1).
1069
+ */
1070
+ var DECLARED_COLLECTION_CAPS = new Set(require_dist.ALL_CAPABILITY_DEFINITIONS.filter((cap) => cap.mode === "collection").map((cap) => cap.name));
1071
+ /**
1072
+ * True when `capName` is a declared COLLECTION cap: its owners are derived by
1073
+ * `getBindings` step 0 and it persists no activation (D556), so a stored row
1074
+ * for it is never an owner.
1075
+ */
1076
+ function isDeclaredCollectionCap(capName) {
1077
+ return DECLARED_COLLECTION_CAPS.has(capName);
1078
+ }
1065
1079
  /** True when `capName` is declared by this build and is NOT a wrapper cap. */
1066
1080
  function isDeclaredNonWrapperCap(capName) {
1067
1081
  return DECLARED_NON_WRAPPER_CAPS.has(capName);
@@ -1421,6 +1435,7 @@ async function resolveBindingsForDevice(deps, deviceId, row, pass) {
1421
1435
  }
1422
1436
  const resolveRemote = (capName) => deps.remoteNativeCaps.get(deviceId)?.get(capName) ?? resolveRemoteNativeCapFromRegistry(deps, capName, deviceId);
1423
1437
  for (const [capName, { wrapperAddonId }] of Object.entries(perDevice)) {
1438
+ if (isDeclaredCollectionCap(capName)) continue;
1424
1439
  if (wrapperAddonId === void 0) continue;
1425
1440
  if (isRetiredWrapperActivation(capName, wrapperAddonId)) {
1426
1441
  deps.staleWrapperActivations.report(deviceId, capName, wrapperAddonId);
@@ -1,5 +1,5 @@
1
- import { $t as parseStreamParamsFormPatch, Bn as DeviceRole, Bt as locationIconKey, D as MINUTES_PER_DAY, Hn as errMsg, It as legacyAutoLinkIds, Ot as formatMinutes, P as STREAM_PROFILE_META, S as FieldClaimSchema, T as LocationIconIdSchema, Un as BaseAddon, Vn as DeviceType, X as buildStreamParamsConfigSchema, Xt as normalizeUnit, Yn as WELL_KNOWN_TAB_MAP, _t as deviceStateCapability, bt as enumerateItemArrayFields, fr as sleep$1, ft as defineExtensionSlotProvider, g as DAY_NAMES, gt as deviceManagerCapability, ht as deviceExtensionCapability, ir as isDeviceConfigCap, ln as runtimeStatePolicyFor, mn as siteZoneKey, mr as EventCategory, o as CAMERA_SWITCH_ORDER, s as CAP_NAMES_WITH_STATUS, st as createDeviceExtensionProvider, t as ALL_CAPABILITY_DEFINITIONS, vt as deviceStatusCapability, wt as expandContainer, x as FieldClaimModeSchema, xt as enumerateSchemaFields, y as DeviceStatusSchema, zn as DeviceFeature } from "../../dist-BEPK2RUO.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-tDI1g7ab.mjs";
1
+ import { $t as parseStreamParamsFormPatch, Bn as DeviceRole, Bt as locationIconKey, D as MINUTES_PER_DAY, Hn as errMsg, It as legacyAutoLinkIds, Ot as formatMinutes, P as STREAM_PROFILE_META, S as FieldClaimSchema, T as LocationIconIdSchema, Un as BaseAddon, Vn as DeviceType, X as buildStreamParamsConfigSchema, Xt as normalizeUnit, Yn as WELL_KNOWN_TAB_MAP, _t as deviceStateCapability, bt as enumerateItemArrayFields, fr as sleep$1, ft as defineExtensionSlotProvider, g as DAY_NAMES, gt as deviceManagerCapability, ht as deviceExtensionCapability, ir as isDeviceConfigCap, ln as runtimeStatePolicyFor, mn as siteZoneKey, mr as EventCategory, o as CAMERA_SWITCH_ORDER, s as CAP_NAMES_WITH_STATUS, st as createDeviceExtensionProvider, t as ALL_CAPABILITY_DEFINITIONS, vt as deviceStatusCapability, wt as expandContainer, x as FieldClaimModeSchema, xt as enumerateSchemaFields, y as DeviceStatusSchema, zn as DeviceFeature } from "../../dist-COj36Fwm.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DzbmRUhF.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
@@ -1057,6 +1057,20 @@ var RECOVERY = "deviceManager.setWrapperActive({ deviceId, capName, wrapperAddon
1057
1057
  * this for every stored string activation (re-review N2).
1058
1058
  */
1059
1059
  var DECLARED_NON_WRAPPER_CAPS = new Set(ALL_CAPABILITY_DEFINITIONS.filter((cap) => cap.kind !== "wrapper").map((cap) => cap.name));
1060
+ /**
1061
+ * Every COLLECTION cap this build declares — the static table, like the set
1062
+ * above, because a stored row must be judged the same whether or not a
1063
+ * provider of the cap is live yet (R1-L1).
1064
+ */
1065
+ var DECLARED_COLLECTION_CAPS = new Set(ALL_CAPABILITY_DEFINITIONS.filter((cap) => cap.mode === "collection").map((cap) => cap.name));
1066
+ /**
1067
+ * True when `capName` is a declared COLLECTION cap: its owners are derived by
1068
+ * `getBindings` step 0 and it persists no activation (D556), so a stored row
1069
+ * for it is never an owner.
1070
+ */
1071
+ function isDeclaredCollectionCap(capName) {
1072
+ return DECLARED_COLLECTION_CAPS.has(capName);
1073
+ }
1060
1074
  /** True when `capName` is declared by this build and is NOT a wrapper cap. */
1061
1075
  function isDeclaredNonWrapperCap(capName) {
1062
1076
  return DECLARED_NON_WRAPPER_CAPS.has(capName);
@@ -1416,6 +1430,7 @@ async function resolveBindingsForDevice(deps, deviceId, row, pass) {
1416
1430
  }
1417
1431
  const resolveRemote = (capName) => deps.remoteNativeCaps.get(deviceId)?.get(capName) ?? resolveRemoteNativeCapFromRegistry(deps, capName, deviceId);
1418
1432
  for (const [capName, { wrapperAddonId }] of Object.entries(perDevice)) {
1433
+ if (isDeclaredCollectionCap(capName)) continue;
1419
1434
  if (wrapperAddonId === void 0) continue;
1420
1435
  if (isRetiredWrapperActivation(capName, wrapperAddonId)) {
1421
1436
  deps.staleWrapperActivations.report(deviceId, capName, wrapperAddonId);
@@ -55,7 +55,7 @@ export type DriverConfigSchemaResult = {
55
55
  * **A COLLECTION capability has no row here, by design.** Its providers are a
56
56
  * SET, and the set is DERIVED from who provides the cap
57
57
  * (`device-bindings-store.ts` step 0) — *"tutti i providers funzionano sempre,
58
- * non serve disattivarli/attivarli … loro vivono lì"* (operator, 2026-09-20).
58
+ * non serve disattivarli/attivarli … loro vivono lì"* [all the providers always work, there is no need to deactivate/activate them … they live there] (operator, 2026-09-20).
59
59
  * Nothing persists it, so nothing has to be back-filled onto a fleet and
60
60
  * nothing goes stale when an addon is deployed to a camera later.
61
61
  * `setWrapperActive` REFUSES a collection cap rather than writing a field the
@@ -1,5 +1,11 @@
1
1
  import { IScopedLogger } from '@camstack/types';
2
2
  import { DeviceBindingsStore } from './device-meta-types.js';
3
+ /**
4
+ * True when `capName` is a declared COLLECTION cap: its owners are derived by
5
+ * `getBindings` step 0 and it persists no activation (D556), so a stored row
6
+ * for it is never an owner.
7
+ */
8
+ export declare function isDeclaredCollectionCap(capName: string): boolean;
3
9
  /** A persisted activation of a wrapper on a cap that has none (see module docblock). */
4
10
  export declare function isRetiredWrapperActivation(capName: string, wrapperAddonId: string | null | undefined): wrapperAddonId is string;
5
11
  /**
@@ -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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Un as BaseAddon, Vt as logDestinationCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Un as BaseAddon, Vt as logDestinationCapability } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
3
+ const require_dist = require("../../dist-Ex-rbzic.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 { $n as createEvent, Hn as errMsg, M as RecordingStatusSchema, Un as BaseAddon, k as RECORDING_SOURCE_CAMSTACK_ADDON, mr as EventCategory } from "../../dist-BEPK2RUO.mjs";
1
+ import { $n as createEvent, Hn as errMsg, M as RecordingStatusSchema, Un as BaseAddon, k as RECORDING_SOURCE_CAMSTACK_ADDON, mr as EventCategory } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { B as UserRecordSchema, F as ScopedTokenSchema, G as authProviderCapability, Sn as userManagementCapability, Un as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-BEPK2RUO.mjs";
2
+ import { B as UserRecordSchema, F as ScopedTokenSchema, G as authProviderCapability, Sn as userManagementCapability, Un as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
3
+ const require_dist = require("../../dist-Ex-rbzic.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 { Un as BaseAddon, mr as EventCategory, zt as localNetworkCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Un as BaseAddon, mr as EventCategory, zt as localNetworkCapability } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Un as BaseAddon, Vt as logDestinationCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Un as BaseAddon, Vt as logDestinationCapability } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { $n as createEvent, Dt as foldSnapshotByFunction, Hn as errMsg, Un as BaseAddon, in as reducePoints, mr as EventCategory, on as resolveBucketMs, qt as metricsProviderCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { $n as createEvent, Dt as foldSnapshotByFunction, Hn as errMsg, Un as BaseAddon, in as reducePoints, mr as EventCategory, on as resolveBucketMs, qt as metricsProviderCapability } from "../../dist-COj36Fwm.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 fs 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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Hn as errMsg, Un as BaseAddon, fn as scoreRuntimes, mr as EventCategory, tn as platformProbeCapability, tr as emitReadiness, yt as enumerateInferenceDevices } from "../../dist-BEPK2RUO.mjs";
2
+ import { Hn as errMsg, Un as BaseAddon, fn as scoreRuntimes, mr as EventCategory, tn as platformProbeCapability, tr as emitReadiness, yt as enumerateInferenceDevices } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 { Un as BaseAddon, mr as EventCategory } from "../../dist-BEPK2RUO.mjs";
1
+ import { Un as BaseAddon, mr as EventCategory } from "../../dist-COj36Fwm.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,8 +3,8 @@ 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-CH3jfPMi.js");
7
- const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.js");
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");
10
10
  let _camstack_types_node = require("@camstack/types/node");
@@ -494,7 +494,7 @@ var NativeSnapshotFatigue = class {
494
494
  * disk with **zero network**. Measured on the live hub, reopening the app after
495
495
  * two minutes idle painted 15 of 16 tiles from disk — frames **168 s old**, with
496
496
  * not one HTTP request, therefore no demand, therefore no capture. The
497
- * operator's report ("gli snapshot sono vecchi, devo aggiornare più volte") is
497
+ * operator's report ("gli snapshot sono vecchi, devo aggiornare più volte" [the snapshots are old, I have to refresh several times]) is
498
498
  * that measurement.
499
499
  *
500
500
  * That gap used to be covered on BOTH sides — by this link plane and by a
@@ -1,5 +1,5 @@
1
- import { Hn as errMsg, J as batteryCapability, Kt as memoizePinnedFfmpeg, Un as BaseAddon, Vn as DeviceType, a as BatteryStatusSchema, hn as snapshotCapability, mr as EventCategory, or as nodePin, pt as deriveBatteryPresence, q as bareAddonId, xn as streamQualityLabel, zn as DeviceFeature } from "../../dist-BEPK2RUO.mjs";
2
- import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
1
+ import { Hn as errMsg, J as batteryCapability, Kt as memoizePinnedFfmpeg, Un as BaseAddon, Vn as DeviceType, a as BatteryStatusSchema, hn as snapshotCapability, mr as EventCategory, or as nodePin, pt as deriveBatteryPresence, q as bareAddonId, xn as streamQualityLabel, zn as DeviceFeature } from "../../dist-COj36Fwm.mjs";
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";
5
5
  import { signExpiringUrl, verifyExpiringUrl } from "@camstack/types/node";
@@ -488,7 +488,7 @@ var NativeSnapshotFatigue = class {
488
488
  * disk with **zero network**. Measured on the live hub, reopening the app after
489
489
  * two minutes idle painted 15 of 16 tiles from disk — frames **168 s old**, with
490
490
  * not one HTTP request, therefore no demand, therefore no capture. The
491
- * operator's report ("gli snapshot sono vecchi, devo aggiornare più volte") is
491
+ * operator's report ("gli snapshot sono vecchi, devo aggiornare più volte" [the snapshots are old, I have to refresh several times]) is
492
492
  * that measurement.
493
493
  *
494
494
  * That gap used to be covered on BOTH sides — by this link plane and by a
@@ -43,7 +43,7 @@ export declare function buildCourtesySvg(spec: CourtesyFrameSpec): string;
43
43
  * "remains visible underneath". A 38 % view of a dark room is not a view of it,
44
44
  * and the operator read the result as a placeholder rather than as their own
45
45
  * camera: *"ma perché Waking? Dovremmo mostrare l'ultimo snapshot
46
- * disponibile"* (Baby monitor, 2026-09-16).
46
+ * disponibile"* [but why Waking? We should show the last available snapshot] (Baby monitor, 2026-09-16).
47
47
  *
48
48
  * The marker still has to earn its place — a stale frame shown clean gets
49
49
  * mistaken for live, which is the reason the treatment exists at all. A band
@@ -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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Et as filesystemBrowseCapability, Un as BaseAddon, yn as storageProviderCapability } from "../../dist-BEPK2RUO.mjs";
1
+ import { Et as filesystemBrowseCapability, Un as BaseAddon, yn as storageProviderCapability } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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 REDACTED_SECRET, Ct as evictionPolicyOfLocation, Dn as withLocationMode, Gt as mayWriteToLocation, I as StorageCleanupJobSchema, Jt as modeMayWrite, L as StorageLocationModeSchema, Lt as legacyModeOf, Mt as isLocationEnabled, Q as collectSecretConfigKeys, R as StorageLocationTypeSchema, Un as BaseAddon, Wt as mayReadLocation, _n as storageMigrationCapability, gn as storageCapability, kt as gbToBytes, mr as EventCategory, pn as settingsStoreCapability, sn as resolveLocationMode, sr as parseJsonObject, w as LegacyStorageLocationDefaultSchema, z as StorageMigrationJobSchema } from "../../dist-BEPK2RUO.mjs";
1
+ import { A as REDACTED_SECRET, Ct as evictionPolicyOfLocation, Dn as withLocationMode, Gt as mayWriteToLocation, I as StorageCleanupJobSchema, Jt as modeMayWrite, L as StorageLocationModeSchema, Lt as legacyModeOf, Mt as isLocationEnabled, Q as collectSecretConfigKeys, R as StorageLocationTypeSchema, Un as BaseAddon, Wt as mayReadLocation, _n as storageMigrationCapability, gn as storageCapability, kt as gbToBytes, mr as EventCategory, pn as settingsStoreCapability, sn as resolveLocationMode, sr as parseJsonObject, w as LegacyStorageLocationDefaultSchema, z as StorageMigrationJobSchema } from "../../dist-COj36Fwm.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-CH3jfPMi.js");
6
+ const require_dist = require("../../dist-Ex-rbzic.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.