@camstack/system 1.2.163 → 1.2.165

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  11. package/dist/builtins/console-logging/index.js +1 -1
  12. package/dist/builtins/console-logging/index.mjs +1 -1
  13. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  14. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  15. package/dist/builtins/device-manager/device-manager.addon.js +17 -5
  16. package/dist/builtins/device-manager/device-manager.addon.mjs +17 -5
  17. package/dist/builtins/device-manager/device-projection.d.ts +12 -2
  18. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  19. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  20. package/dist/builtins/hub-forwarder/index.js +1 -1
  21. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  22. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  23. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  24. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  25. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  26. package/dist/builtins/local-network/local-network.addon.js +1 -1
  27. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  28. package/dist/builtins/loki-logging/index.js +1 -1
  29. package/dist/builtins/loki-logging/index.mjs +1 -1
  30. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  31. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  32. package/dist/builtins/platform-probe/index.js +1 -1
  33. package/dist/builtins/platform-probe/index.mjs +1 -1
  34. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  35. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  36. package/dist/builtins/snapshot/index.js +1 -1
  37. package/dist/builtins/snapshot/index.mjs +1 -1
  38. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  39. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/index.d.ts +1 -1
  41. package/dist/builtins/sqlite-storage/index.js +2 -0
  42. package/dist/builtins/sqlite-storage/index.mjs +2 -2
  43. package/dist/builtins/sqlite-storage/query-profiler.d.ts +21 -0
  44. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  45. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  46. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +1 -18
  47. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +43 -75
  48. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +43 -75
  49. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +6 -7
  50. package/dist/builtins/system-config/system-config.addon.js +1 -1
  51. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  52. package/dist/builtins/winston-logging/index.js +1 -1
  53. package/dist/builtins/winston-logging/index.mjs +1 -1
  54. package/dist/{dist-B29Skpzo.js → dist-BhE8zNfY.js} +72 -0
  55. package/dist/{dist-DxFjna2a.mjs → dist-BpsHt11f.mjs} +72 -0
  56. package/dist/index.js +2 -2
  57. package/dist/index.mjs +2 -2
  58. package/dist/kernel/deps/manifest-system-deps.d.ts +5 -2
  59. package/dist/kernel/deps/system-package-allowlist.d.ts +12 -0
  60. package/dist/kernel/deps/system-package-broker.d.ts +31 -0
  61. package/dist/kernel/deps/system-package-client.d.ts +9 -0
  62. package/dist/{manifest-system-deps-CG9ESHhv.mjs → manifest-system-deps-D2GebQTp.mjs} +142 -6
  63. package/dist/{manifest-system-deps-DBje540e.js → manifest-system-deps-uflHvHDB.js} +140 -5
  64. package/dist/{retired-settings-keys-CRL0qOnU.js → retired-settings-keys-CqDbI-vK.js} +1 -1
  65. package/dist/{retired-settings-keys-N0NZzDE3.mjs → retired-settings-keys-DLwieFXR.mjs} +1 -1
  66. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_manifest_system_deps = require("./manifest-system-deps-DBje540e.js");
2
+ const require_manifest_system_deps = require("./manifest-system-deps-uflHvHDB.js");
3
3
  const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Ct as resolveAddonClass, N as createUdsLoggerWithControl, P as LocalChildClient, Rt as RUNNER_RSS_BUDGET_ENV, St as installManifestNativeDeps, Zt as startRunnerHeapWatch, a as createUdsAddonContext, at as getWorkerNativeCapSnapshot, it as getWorkerNativeCapProvider, lt as validateProviderRegistrations, n as installManifestPythonDeps, nn as emitHeapDiagnosticReport, st as setWorkerNativeCapsChangeListener, t as installManifestSystemDeps } from "./manifest-system-deps-CG9ESHhv.mjs";
1
+ import { Ct as resolveAddonClass, N as createUdsLoggerWithControl, P as LocalChildClient, Rt as RUNNER_RSS_BUDGET_ENV, St as installManifestNativeDeps, Zt as startRunnerHeapWatch, a as createUdsAddonContext, at as getWorkerNativeCapSnapshot, it as getWorkerNativeCapProvider, lt as validateProviderRegistrations, n as installManifestPythonDeps, nn as emitHeapDiagnosticReport, st as setWorkerNativeCapsChangeListener, t as installManifestSystemDeps } from "./manifest-system-deps-D2GebQTp.mjs";
2
2
  import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
3
3
  import { register } from "node:module";
4
4
  import * as path$1 from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { Mt as BaseAddon, in as EventCategory, jt as errMsg, w as addonPagesCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, in as EventCategory, jt as errMsg, w as addonPagesCapability } from "../../dist-BpsHt11f.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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { E as addonWidgetsCapability, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-DxFjna2a.mjs";
1
+ import { E as addonWidgetsCapability, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-BpsHt11f.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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { D as alertsCapability, Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg, n as AlertSchema } from "../../dist-DxFjna2a.mjs";
1
+ import { D as alertsCapability, Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg, n as AlertSchema } from "../../dist-BpsHt11f.mjs";
2
2
  //#region src/builtins/alerts/prune-policy.ts
3
3
  /**
4
4
  * Ids older than `cutoffMs`, oldest first.
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { Mt as BaseAddon, in as EventCategory, k as backupCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, in as EventCategory, k as backupCapability } from "../../dist-BpsHt11f.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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-BpsHt11f.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  //#region src/builtins/console-logging/console-destination.ts
4
4
  var LEVEL_RANK = {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../../chunk-Cek0wNdY.js");
3
- const require_dist = require("../../dist-B29Skpzo.js");
3
+ const require_dist = require("../../dist-BhE8zNfY.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  node_fs_promises = require_chunk.__toESM(node_fs_promises);
@@ -1,4 +1,4 @@
1
- import { F as coreBlockIdFromAddonId, I as coreBlocksCapability, Mt as BaseAddon, P as coreBlockAddonId, c as CoreBlockSchema, jt as errMsg, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX, u as DeclaredDevices } from "../../dist-DxFjna2a.mjs";
1
+ import { F as coreBlockIdFromAddonId, I as coreBlocksCapability, Mt as BaseAddon, P as coreBlockAddonId, c as CoreBlockSchema, jt as errMsg, o as CORE_BLOCKS_ADDON_ID, s as CORE_BLOCK_ADDON_PREFIX, u as DeclaredDevices } from "../../dist-BpsHt11f.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import * as fs from "node:fs/promises";
4
4
  import * as path$1 from "node:path";
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-CRL0qOnU.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-CqDbI-vK.js");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
10
10
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -1275,6 +1275,18 @@ function persistedFeatures(features) {
1275
1275
  return out;
1276
1276
  }
1277
1277
  /**
1278
+ * Infer `isCamera` from a persisted DeviceType.
1279
+ *
1280
+ * Live projection uses method presence (`getStreamSources` via
1281
+ * `isCameraDevice`). Forked-worker devices have no `IDevice` on the hub, so
1282
+ * the persisted fallbacks in `listAll` / `getDevice` / `getChildren` share
1283
+ * this one inference — they must not drift (the 4263 Campanello contradiction
1284
+ * of 2026-08-31: `listAll` said camera, `getDevice` said not).
1285
+ */
1286
+ function persistedIsCamera(type) {
1287
+ return type === require_dist.DeviceType.Camera;
1288
+ }
1289
+ /**
1278
1290
  * Build an identity-only `SourceInfo` from the persisted device config blob.
1279
1291
  *
1280
1292
  * Forked-worker accessory children (e.g. HA sensor entities) persist
@@ -1467,7 +1479,7 @@ async function listAll(pctx, input) {
1467
1479
  online: pctx.host.resolveDeviceOnline(m.id, pctx.registry !== null),
1468
1480
  probed: pctx.host.resolveDeviceProbed(m.id),
1469
1481
  features: persistedFeatures(m.features),
1470
- isCamera: persistedType === require_dist.DeviceType.Camera,
1482
+ isCamera: persistedIsCamera(persistedType),
1471
1483
  config: persistedConfig ?? {},
1472
1484
  metadata,
1473
1485
  ...m.integrationId !== void 0 ? { integrationId: m.integrationId } : {},
@@ -1512,7 +1524,7 @@ async function getDevice(pctx, input) {
1512
1524
  online: pctx.host.resolveDeviceOnline(deviceId, true),
1513
1525
  probed: pctx.host.resolveDeviceProbed(deviceId),
1514
1526
  features: persistedFeatures(m.features),
1515
- isCamera: false,
1527
+ isCamera: persistedIsCamera(m.type),
1516
1528
  config: persistedConfig ?? {},
1517
1529
  metadata,
1518
1530
  ...m.integrationId !== void 0 ? { integrationId: m.integrationId } : {},
@@ -1588,7 +1600,7 @@ function projectChildren(pctx, parentDeviceId, ownerAddonId, childRows, liveChil
1588
1600
  online: pctx.host.resolveDeviceOnline(m.id, pctx.registry !== null),
1589
1601
  probed: pctx.host.resolveDeviceProbed(m.id),
1590
1602
  features: persistedFeatures(m.features),
1591
- isCamera: false,
1603
+ isCamera: persistedIsCamera(m.type),
1592
1604
  config: persistedConfig,
1593
1605
  metadata,
1594
1606
  ...m.integrationId !== void 0 ? { integrationId: m.integrationId } : {},
@@ -1,5 +1,5 @@
1
- import { B as deviceManagerCapability, G as enumerateItemArrayFields, H as deviceStatusCapability, It as DeviceFeature, K as enumerateSchemaFields, Lt as DeviceRole, M as buildStreamParamsConfigSchema, Mt as BaseAddon, Rt as DeviceType, V as deviceStateCapability, Vt as WELL_KNOWN_TAB_MAP, Xt as isDeviceConfigCap, a as CAP_NAMES_WITH_STATUS, d as DeviceStatusSchema, ft as parseStreamParamsFormPatch, in as EventCategory, jt as errMsg, rn as sleep, t as ALL_CAPABILITY_DEFINITIONS, ut as normalizeUnit, vt as runtimeStatePolicyFor, y as STREAM_PROFILE_META } from "../../dist-DxFjna2a.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-N0NZzDE3.mjs";
1
+ import { B as deviceManagerCapability, G as enumerateItemArrayFields, H as deviceStatusCapability, It as DeviceFeature, K as enumerateSchemaFields, Lt as DeviceRole, M as buildStreamParamsConfigSchema, Mt as BaseAddon, Rt as DeviceType, V as deviceStateCapability, Vt as WELL_KNOWN_TAB_MAP, Xt as isDeviceConfigCap, a as CAP_NAMES_WITH_STATUS, d as DeviceStatusSchema, ft as parseStreamParamsFormPatch, in as EventCategory, jt as errMsg, rn as sleep, t as ALL_CAPABILITY_DEFINITIONS, ut as normalizeUnit, vt as runtimeStatePolicyFor, y as STREAM_PROFILE_META } from "../../dist-BpsHt11f.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DLwieFXR.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { canonicalDeviceFingerprint } from "@camstack/types/node";
5
5
  //#region src/builtins/device-manager/adoption-job-engine.ts
@@ -1270,6 +1270,18 @@ function persistedFeatures(features) {
1270
1270
  return out;
1271
1271
  }
1272
1272
  /**
1273
+ * Infer `isCamera` from a persisted DeviceType.
1274
+ *
1275
+ * Live projection uses method presence (`getStreamSources` via
1276
+ * `isCameraDevice`). Forked-worker devices have no `IDevice` on the hub, so
1277
+ * the persisted fallbacks in `listAll` / `getDevice` / `getChildren` share
1278
+ * this one inference — they must not drift (the 4263 Campanello contradiction
1279
+ * of 2026-08-31: `listAll` said camera, `getDevice` said not).
1280
+ */
1281
+ function persistedIsCamera(type) {
1282
+ return type === DeviceType.Camera;
1283
+ }
1284
+ /**
1273
1285
  * Build an identity-only `SourceInfo` from the persisted device config blob.
1274
1286
  *
1275
1287
  * Forked-worker accessory children (e.g. HA sensor entities) persist
@@ -1462,7 +1474,7 @@ async function listAll(pctx, input) {
1462
1474
  online: pctx.host.resolveDeviceOnline(m.id, pctx.registry !== null),
1463
1475
  probed: pctx.host.resolveDeviceProbed(m.id),
1464
1476
  features: persistedFeatures(m.features),
1465
- isCamera: persistedType === DeviceType.Camera,
1477
+ isCamera: persistedIsCamera(persistedType),
1466
1478
  config: persistedConfig ?? {},
1467
1479
  metadata,
1468
1480
  ...m.integrationId !== void 0 ? { integrationId: m.integrationId } : {},
@@ -1507,7 +1519,7 @@ async function getDevice(pctx, input) {
1507
1519
  online: pctx.host.resolveDeviceOnline(deviceId, true),
1508
1520
  probed: pctx.host.resolveDeviceProbed(deviceId),
1509
1521
  features: persistedFeatures(m.features),
1510
- isCamera: false,
1522
+ isCamera: persistedIsCamera(m.type),
1511
1523
  config: persistedConfig ?? {},
1512
1524
  metadata,
1513
1525
  ...m.integrationId !== void 0 ? { integrationId: m.integrationId } : {},
@@ -1583,7 +1595,7 @@ function projectChildren(pctx, parentDeviceId, ownerAddonId, childRows, liveChil
1583
1595
  online: pctx.host.resolveDeviceOnline(m.id, pctx.registry !== null),
1584
1596
  probed: pctx.host.resolveDeviceProbed(m.id),
1585
1597
  features: persistedFeatures(m.features),
1586
- isCamera: false,
1598
+ isCamera: persistedIsCamera(m.type),
1587
1599
  config: persistedConfig,
1588
1600
  metadata,
1589
1601
  ...m.integrationId !== void 0 ? { integrationId: m.integrationId } : {},
@@ -1,4 +1,4 @@
1
- import { ICameraDevice, IDevice, IDeviceRegistry, SourceInfo, DeviceFeature, DeviceRole } from '@camstack/types';
1
+ import { ICameraDevice, IDevice, IDeviceRegistry, SourceInfo, DeviceFeature, DeviceRole, DeviceType } from '@camstack/types';
2
2
  import { PersistedDeviceMeta } from './device-meta-types.js';
3
3
  /**
4
4
  * Return true when `err` is a transient Moleculer error that is worth
@@ -22,6 +22,16 @@ export declare function isCameraDevice(device: IDevice): device is ICameraDevice
22
22
  * `getDevice` response without losing the enum-typed contract.
23
23
  */
24
24
  export declare function persistedFeatures(features: readonly string[] | undefined): DeviceFeature[];
25
+ /**
26
+ * Infer `isCamera` from a persisted DeviceType.
27
+ *
28
+ * Live projection uses method presence (`getStreamSources` via
29
+ * `isCameraDevice`). Forked-worker devices have no `IDevice` on the hub, so
30
+ * the persisted fallbacks in `listAll` / `getDevice` / `getChildren` share
31
+ * this one inference — they must not drift (the 4263 Campanello contradiction
32
+ * of 2026-08-31: `listAll` said camera, `getDevice` said not).
33
+ */
34
+ export declare function persistedIsCamera(type: string | undefined): boolean;
25
35
  /**
26
36
  * Build an identity-only `SourceInfo` from the persisted device config blob.
27
37
  *
@@ -55,7 +65,7 @@ export declare function toDeviceInfo(addonId: string, device: IDevice, metadata?
55
65
  id: number;
56
66
  stableId: string;
57
67
  addonId: string;
58
- type: import('@camstack/types').DeviceType;
68
+ type: DeviceType;
59
69
  name: string;
60
70
  location: string | null;
61
71
  disabled: boolean;
@@ -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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.js");
7
7
  //#region src/builtins/doorbell/trigger-engine.ts
8
8
  /**
9
9
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -1,4 +1,4 @@
1
- import { A as bareAddonId, Gt as createEvent, Mt as BaseAddon, Rt as DeviceType, U as doorbellCapability, _ as SOURCE_DEVICE_TYPES, et as isSameAddonId, g as SOURCE_CAPS, in as EventCategory, jt as errMsg, q as evaluateSensorEdge, tt as isSourceCap } from "../../dist-DxFjna2a.mjs";
1
+ import { A as bareAddonId, Gt as createEvent, Mt as BaseAddon, Rt as DeviceType, U as doorbellCapability, _ as SOURCE_DEVICE_TYPES, et as isSameAddonId, g as SOURCE_CAPS, in as EventCategory, jt as errMsg, q as evaluateSensorEdge, tt as isSourceCap } from "../../dist-BpsHt11f.mjs";
2
2
  //#region src/builtins/doorbell/trigger-engine.ts
3
3
  /**
4
4
  * Pure trigger logic for the virtual-doorbell builtin — edge detection over
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-BpsHt11f.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-B29Skpzo.js");
3
+ const require_dist = require("../../dist-BhE8zNfY.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 { Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-DxFjna2a.mjs";
1
+ import { Gt as createEvent, Mt as BaseAddon, in as EventCategory, jt as errMsg } from "../../dist-BpsHt11f.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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { C as UserRecordSchema, Mt as BaseAddon, O as authProviderCapability, Ot as userManagementCapability, b as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-DxFjna2a.mjs";
2
+ import { C as UserRecordSchema, Mt as BaseAddon, O as authProviderCapability, Ot as userManagementCapability, b as ScopedTokenSchema, r as ApiKeyRecordSchema } from "../../dist-BpsHt11f.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-B29Skpzo.js");
3
+ const require_dist = require("../../dist-BhE8zNfY.js");
4
4
  const require_tls = require("../../tls-BxQlomxd.js");
5
5
  let node_fs_promises = require("node:fs/promises");
6
6
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { Mt as BaseAddon, at as localNetworkCapability, in as EventCategory } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, at as localNetworkCapability, in as EventCategory } from "../../dist-BpsHt11f.mjs";
2
2
  import { S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, i as writeExtraSans, l as reissueTlsLeaf, n as readTlsAccessStatus, o as validateUploadedTls, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, y as applyLanHttp } from "../../tls-DOTmtLCW.mjs";
3
3
  import { mkdir, writeFile } from "node:fs/promises";
4
4
  import { join } from "node:path";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, ot as logDestinationCapability } from "../../dist-BpsHt11f.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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_child_process = require("node:child_process");
9
9
  let node_util = require("node:util");
@@ -1,4 +1,4 @@
1
- import { Gt as createEvent, Mt as BaseAddon, X as foldSnapshotByFunction, gt as resolveBucketMs, ht as reducePoints, in as EventCategory, jt as errMsg, lt as metricsProviderCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Gt as createEvent, Mt as BaseAddon, X as foldSnapshotByFunction, gt as resolveBucketMs, ht as reducePoints, in as EventCategory, jt as errMsg, lt as metricsProviderCapability } from "../../dist-BpsHt11f.mjs";
2
2
  import { readFile, readdir } from "node:fs/promises";
3
3
  import { execFile, execFileSync } from "node:child_process";
4
4
  import { promisify } from "node:util";
@@ -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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.js");
7
7
  let node_child_process = require("node:child_process");
8
8
  let node_util = require("node:util");
9
9
  let node_fs = require("node:fs");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Mt as BaseAddon, W as enumerateInferenceDevices, in as EventCategory, jt as errMsg, pt as platformProbeCapability, qt as emitReadiness, xt as scoreRuntimes } from "../../dist-DxFjna2a.mjs";
2
+ import { Mt as BaseAddon, W as enumerateInferenceDevices, in as EventCategory, jt as errMsg, pt as platformProbeCapability, qt as emitReadiness, xt as scoreRuntimes } from "../../dist-BpsHt11f.mjs";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
5
5
  import * as fs from "node:fs";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 { Mt as BaseAddon, in as EventCategory } from "../../dist-DxFjna2a.mjs";
1
+ import { Mt as BaseAddon, in as EventCategory } from "../../dist-BpsHt11f.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-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.js");
7
7
  let zod = require("zod");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,4 +1,4 @@
1
- import { A as bareAddonId, Ct as snapshotCapability, Dt as streamQualityLabel, It as DeviceFeature, Mt as BaseAddon, Rt as DeviceType, Zt as nodePin, i as BatteryStatusSchema, in as EventCategory, j as batteryCapability, jt as errMsg, z as deriveBatteryPresence } from "../../dist-DxFjna2a.mjs";
1
+ import { A as bareAddonId, Ct as snapshotCapability, Dt as streamQualityLabel, It as DeviceFeature, Mt as BaseAddon, Rt as DeviceType, Zt as nodePin, i as BatteryStatusSchema, in as EventCategory, j as batteryCapability, jt as errMsg, z as deriveBatteryPresence } from "../../dist-BpsHt11f.mjs";
2
2
  import { z } from "zod";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { signExpiringUrl, verifyExpiringUrl } from "@camstack/types/node";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-B29Skpzo.js");
6
+ const require_dist = require("../../dist-BhE8zNfY.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 storageProviderCapability, Mt as BaseAddon, Y as filesystemBrowseCapability } from "../../dist-DxFjna2a.mjs";
1
+ import { Et as storageProviderCapability, Mt as BaseAddon, Y as filesystemBrowseCapability } from "../../dist-BpsHt11f.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";
@@ -4,7 +4,7 @@ export { DeviceStore } from './device-store.js';
4
4
  export { FilesystemStorageAddon, FilesystemStorageAddon as default, } from './filesystem-storage.addon.js';
5
5
  export { FilesystemStorageProvider } from './filesystem-storage-provider.js';
6
6
  export type { SqliteOpLabel, SqliteOpSample, SqliteOpStat } from './query-profiler.js';
7
- export { SQLITE_PROFILE_REPORT_FLOOR_MS, SQLITE_PROFILE_REPORT_INTERVAL_MS, SQLITE_PROFILE_TOP_N, SQLITE_SLOW_CALL_MS, SqliteOpProfiler, } from './query-profiler.js';
7
+ export { SQLITE_ENGINE_STORM_WALL_SHARE, SQLITE_PROFILE_REPORT_FLOOR_MS, SQLITE_PROFILE_REPORT_INTERVAL_MS, SQLITE_PROFILE_TOP_N, SQLITE_SLOW_CALL_MS, sqliteEngineStorm, SqliteOpProfiler, } from './query-profiler.js';
8
8
  export { SQLITE_JOURNAL_SIZE_LIMIT_BYTES, SQLITE_MMAP_CEILING_BYTES, SQLITE_MMAP_FLOOR_BYTES, SQLITE_PAGE_CACHE_CEILING_KIB, SQLITE_PAGE_CACHE_FLOOR_KIB, sqliteMmapSizeFor, sqlitePageCacheKibFor, } from './sqlite-pragmas.js';
9
9
  export { SqliteSettingsAddon } from './sqlite-settings.addon.js';
10
10
  export { SqliteSettingsBackend } from './sqlite-settings-backend.js';
@@ -57,6 +57,7 @@ exports.DeviceStore = DeviceStore;
57
57
  exports.DeviceStore$1 = DeviceStore;
58
58
  exports.FilesystemStorageAddon = require_builtins_sqlite_storage_filesystem_storage_addon.FilesystemStorageAddon;
59
59
  exports.FilesystemStorageProvider = require_builtins_sqlite_storage_filesystem_storage_addon.FilesystemStorageProvider;
60
+ exports.SQLITE_ENGINE_STORM_WALL_SHARE = require_builtins_sqlite_storage_sqlite_settings_addon.SQLITE_ENGINE_STORM_WALL_SHARE;
60
61
  exports.SQLITE_JOURNAL_SIZE_LIMIT_BYTES = require_builtins_sqlite_storage_sqlite_settings_addon.SQLITE_JOURNAL_SIZE_LIMIT_BYTES;
61
62
  exports.SQLITE_MMAP_CEILING_BYTES = require_builtins_sqlite_storage_sqlite_settings_addon.SQLITE_MMAP_CEILING_BYTES;
62
63
  exports.SQLITE_MMAP_FLOOR_BYTES = require_builtins_sqlite_storage_sqlite_settings_addon.SQLITE_MMAP_FLOOR_BYTES;
@@ -75,5 +76,6 @@ exports.WAL_IDLE_QUIET_MS = require_builtins_sqlite_storage_sqlite_settings_addo
75
76
  exports.WAL_MAINTENANCE_INTERVAL_MS = require_builtins_sqlite_storage_sqlite_settings_addon.WAL_MAINTENANCE_INTERVAL_MS;
76
77
  exports.WalMaintenance = require_builtins_sqlite_storage_sqlite_settings_addon.WalMaintenance;
77
78
  exports.default = require_builtins_sqlite_storage_filesystem_storage_addon.FilesystemStorageAddon;
79
+ exports.sqliteEngineStorm = require_builtins_sqlite_storage_sqlite_settings_addon.sqliteEngineStorm;
78
80
  exports.sqliteMmapSizeFor = require_builtins_sqlite_storage_sqlite_settings_addon.sqliteMmapSizeFor;
79
81
  exports.sqlitePageCacheKibFor = require_builtins_sqlite_storage_sqlite_settings_addon.sqlitePageCacheKibFor;
@@ -1,5 +1,5 @@
1
1
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./filesystem-storage.addon.mjs";
2
- import { SqliteSettingsAddon, _ as SQLITE_PROFILE_TOP_N, a as WalMaintenance, c as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, d as SQLITE_PAGE_CACHE_CEILING_KIB, f as SQLITE_PAGE_CACHE_FLOOR_KIB, g as SQLITE_PROFILE_REPORT_INTERVAL_MS, h as SQLITE_PROFILE_REPORT_FLOOR_MS, i as WAL_MAINTENANCE_INTERVAL_MS, l as SQLITE_MMAP_CEILING_BYTES, m as sqlitePageCacheKibFor, n as WAL_HIGH_WATER_BYTES, o as SqliteSettingsBackend, p as sqliteMmapSizeFor, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, u as SQLITE_MMAP_FLOOR_BYTES, v as SQLITE_SLOW_CALL_MS, y as SqliteOpProfiler } from "./sqlite-settings.addon.mjs";
2
+ import { SqliteSettingsAddon, _ as SQLITE_PROFILE_REPORT_INTERVAL_MS, a as WalMaintenance, b as SqliteOpProfiler, c as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, d as SQLITE_PAGE_CACHE_CEILING_KIB, f as SQLITE_PAGE_CACHE_FLOOR_KIB, g as SQLITE_PROFILE_REPORT_FLOOR_MS, h as SQLITE_ENGINE_STORM_WALL_SHARE, i as WAL_MAINTENANCE_INTERVAL_MS, l as SQLITE_MMAP_CEILING_BYTES, m as sqlitePageCacheKibFor, n as WAL_HIGH_WATER_BYTES, o as SqliteSettingsBackend, p as sqliteMmapSizeFor, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, u as SQLITE_MMAP_FLOOR_BYTES, v as SQLITE_PROFILE_TOP_N, x as sqliteEngineStorm, y as SQLITE_SLOW_CALL_MS } from "./sqlite-settings.addon.mjs";
3
3
  //#region src/builtins/sqlite-storage/config-store.ts
4
4
  var ConfigStore = class {
5
5
  db;
@@ -46,4 +46,4 @@ var DeviceStore = class {
46
46
  }
47
47
  };
48
48
  //#endregion
49
- export { ConfigStore, DeviceStore, FilesystemStorageAddon, FilesystemStorageAddon as default, FilesystemStorageProvider, SQLITE_JOURNAL_SIZE_LIMIT_BYTES, SQLITE_MMAP_CEILING_BYTES, SQLITE_MMAP_FLOOR_BYTES, SQLITE_PAGE_CACHE_CEILING_KIB, SQLITE_PAGE_CACHE_FLOOR_KIB, SQLITE_PROFILE_REPORT_FLOOR_MS, SQLITE_PROFILE_REPORT_INTERVAL_MS, SQLITE_PROFILE_TOP_N, SQLITE_SLOW_CALL_MS, SqliteOpProfiler, SqliteSettingsAddon, SqliteSettingsBackend, WAL_CHECKPOINT_BUSY_TIMEOUT_MS, WAL_HIGH_WATER_BYTES, WAL_IDLE_QUIET_MS, WAL_MAINTENANCE_INTERVAL_MS, WalMaintenance, sqliteMmapSizeFor, sqlitePageCacheKibFor };
49
+ export { ConfigStore, DeviceStore, FilesystemStorageAddon, FilesystemStorageAddon as default, FilesystemStorageProvider, SQLITE_ENGINE_STORM_WALL_SHARE, SQLITE_JOURNAL_SIZE_LIMIT_BYTES, SQLITE_MMAP_CEILING_BYTES, SQLITE_MMAP_FLOOR_BYTES, SQLITE_PAGE_CACHE_CEILING_KIB, SQLITE_PAGE_CACHE_FLOOR_KIB, SQLITE_PROFILE_REPORT_FLOOR_MS, SQLITE_PROFILE_REPORT_INTERVAL_MS, SQLITE_PROFILE_TOP_N, SQLITE_SLOW_CALL_MS, SqliteOpProfiler, SqliteSettingsAddon, SqliteSettingsBackend, WAL_CHECKPOINT_BUSY_TIMEOUT_MS, WAL_HIGH_WATER_BYTES, WAL_IDLE_QUIET_MS, WAL_MAINTENANCE_INTERVAL_MS, WalMaintenance, sqliteEngineStorm, sqliteMmapSizeFor, sqlitePageCacheKibFor };
@@ -133,6 +133,27 @@ export declare const SQLITE_PROFILE_REPORT_INTERVAL_MS = 60000;
133
133
  export declare const SQLITE_PROFILE_REPORT_FLOOR_MS = 250;
134
134
  /** Pairs named in one report line. Enough to see the shape, short enough to read. */
135
135
  export declare const SQLITE_PROFILE_TOP_N = 5;
136
+ /**
137
+ * Share of window wall-clock at which ONE shape is a storm, not a busy engine.
138
+ *
139
+ * Measured 2026-08-31: the OFFSET census on `pipeline-analytics:media` was
140
+ * 88.7 % of wall for six hours. A healthy bounded census (20 s budget in a
141
+ * 60 s window) is 33 % and must not warn. Half the loop is the line between
142
+ * "the engine is working" and "the cluster is queuing behind one query".
143
+ *
144
+ * Cap-usage rate cannot name this class — see `sqliteEngineStorm`.
145
+ */
146
+ export declare const SQLITE_ENGINE_STORM_WALL_SHARE = 0.5;
147
+ /**
148
+ * The dominating shape if it held {@link SQLITE_ENGINE_STORM_WALL_SHARE} of
149
+ * the window, otherwise `null`.
150
+ *
151
+ * Share is of WINDOW wall, not of busy time: an engine that is 90 % busy with
152
+ * ten equal shapes is healthy; one shape at 50 % of wall is the 2026-08-31
153
+ * store saturation regardless of what else ran. `stats` must already be
154
+ * busiest-first (as {@link SqliteOpProfiler.drain} returns them).
155
+ */
156
+ export declare function sqliteEngineStorm(stats: readonly SqliteOpStat[], windowMs: number): SqliteOpStat | null;
136
157
  export interface SqliteOpProfilerOptions {
137
158
  readonly logger: IScopedLogger;
138
159
  /** Injected for tests; production reads the wall clock. */
@@ -91,21 +91,6 @@ export declare class StorageMigrationCoordinator {
91
91
  private startReserved;
92
92
  constructor(deps: StorageMigrationCoordinatorDeps);
93
93
  plan(input: StorageMigrationInput): Promise<StorageMigrationPlan>;
94
- /**
95
- * HARD refusal: `galleryMedia` onto a volume a recordings class lives on.
96
- *
97
- * This is the one same-device case that is a refusal rather than a finding,
98
- * because its consequence is silent and arrives months later — the gallery is
99
- * wiped by the next footage wipe, quota eviction or recordings disk swap, and
100
- * nothing at that moment points back at this migration.
101
- *
102
- * It can only refuse what it can SEE. `deviceKeyOf` is a realpath, so it
103
- * catches a symlink, a bind mount and a literally-shared directory — and
104
- * misses two distinct directories on one filesystem, and any location pinned
105
- * to another node. Those come back `null`/distinct and produce a
106
- * `deviceIdentityUnknown` finding instead.
107
- */
108
- private refuseGalleryOntoRecordingsVolume;
109
94
  /** Same-device observations that are reported, not refused. */
110
95
  private deviceFindings;
111
96
  private deviceKey;
@@ -200,9 +185,7 @@ export declare class StorageMigrationCoordinator {
200
185
  *
201
186
  * Two lanes — the recorder's footage engine and post-analysis's media engine
202
187
  * — run in parallel with each other and strictly FIFO within themselves.
203
- * `galleryMedia` shares the media lane with `eventMedia` because it shares
204
- * the same `MediaRelocateEngine`, which refuses a second running job; starting
205
- * both would fail the second one instantly.
188
+ * `eventMedia` is the only class on the media lane.
206
189
  */
207
190
  private startOrResumeMoves;
208
191
  private waitForMoves;