@camstack/system 1.2.290 → 1.2.292

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 (64) hide show
  1. package/dist/addon-runner.js +20 -62
  2. package/dist/addon-runner.mjs +4 -46
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/autotrack/index.js +1 -1
  10. package/dist/builtins/autotrack/index.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/camera-grid/index.js +1 -1
  14. package/dist/builtins/camera-grid/index.mjs +1 -1
  15. package/dist/builtins/console-logging/index.js +1 -1
  16. package/dist/builtins/console-logging/index.mjs +1 -1
  17. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  18. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  19. package/dist/builtins/device-manager/device-linked-devices.d.ts +2 -37
  20. package/dist/builtins/device-manager/device-manager.addon.js +4 -73
  21. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -71
  22. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  23. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  24. package/dist/builtins/hub-forwarder/index.js +1 -1
  25. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  26. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +9 -0
  27. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +18 -2
  28. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +18 -2
  29. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  30. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  31. package/dist/builtins/local-network/local-network.addon.js +1 -1
  32. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  33. package/dist/builtins/loki-logging/index.js +1 -1
  34. package/dist/builtins/loki-logging/index.mjs +1 -1
  35. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  36. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  37. package/dist/builtins/platform-probe/index.js +1 -1
  38. package/dist/builtins/platform-probe/index.mjs +1 -1
  39. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  40. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  41. package/dist/builtins/snapshot/index.js +1 -1
  42. package/dist/builtins/snapshot/index.mjs +1 -1
  43. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  44. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  45. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  46. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  47. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +11 -11
  48. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +11 -11
  49. package/dist/builtins/system-config/system-config.addon.js +1 -1
  50. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  51. package/dist/builtins/winston-logging/index.js +1 -1
  52. package/dist/builtins/winston-logging/index.mjs +1 -1
  53. package/dist/{manifest-system-deps-D_5UXqDb.mjs → child-cap-dispatch-CWkcQIRe.mjs} +55 -6
  54. package/dist/{manifest-system-deps-Dm7QhyvL.js → child-cap-dispatch-CzNzGnGm.js} +66 -5
  55. package/dist/{dist-KRK9zLWt.js → dist-D3zw1yHp.js} +1727 -1407
  56. package/dist/{dist-BkjMEa2F.mjs → dist-DU72-y3J.mjs} +1375 -1049
  57. package/dist/index.d.ts +4 -0
  58. package/dist/index.js +167 -166
  59. package/dist/index.mjs +3 -3
  60. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +2 -1
  61. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +19 -0
  62. package/dist/{retired-settings-keys-DNK-p6aa.mjs → retired-settings-keys-DLOBYMC4.mjs} +1 -1
  63. package/dist/{retired-settings-keys-BSLMlTcz.js → retired-settings-keys-t6UWp6mL.js} +1 -1
  64. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { Bn as sleep$1, Bt as parseStreamParamsFormPatch, Cn as WELL_KNOWN_TAB_MAP, Kt as resolveContainerPrimaryChild, Lt as normalizeUnit, M as STREAM_PROFILE_META, Mn as isDeviceConfigCap, Ot as locationIconKey, Vn as EventCategory, Yt as runtimeStatePolicyFor, at as deviceStatusCapability, bn as DeviceType, ct as enumerateItemArrayFields, d as DAY_NAMES, en as siteZoneKey, fn as errMsg, h as DeviceStatusSchema, ht as formatMinutes, it as deviceStateCapability, lt as enumerateSchemaFields, mn as BaseAddon, o as CAMERA_SWITCH_ORDER, q as buildStreamParamsConfigSchema, rt as deviceManagerCapability, s as CAP_NAMES_WITH_STATUS, t as ALL_CAPABILITY_DEFINITIONS, vn as DeviceFeature, x as MINUTES_PER_DAY, y as LocationIconIdSchema, yn as DeviceRole } from "../../dist-BkjMEa2F.mjs";
2
- import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DNK-p6aa.mjs";
1
+ import { $t as siteZoneKey, A as STREAM_PROFILE_META, Bn as EventCategory, Bt as parseStreamParamsFormPatch, G as buildStreamParamsConfigSchema, Jt as runtimeStatePolicyFor, Lt as normalizeUnit, Ot as locationIconKey, Sn as WELL_KNOWN_TAB_MAP, _n as DeviceFeature, d as DAY_NAMES, dn as errMsg, h as DeviceStatusSchema, jn as isDeviceConfigCap, mt as formatMinutes, nt as deviceStateCapability, o as CAMERA_SWITCH_ORDER, ot as enumerateItemArrayFields, pn as BaseAddon, rt as deviceStatusCapability, s as CAP_NAMES_WITH_STATUS, st as enumerateSchemaFields, t as ALL_CAPABILITY_DEFINITIONS, tt as deviceManagerCapability, ut as expandContainer, vn as DeviceRole, wt as legacyAutoLinkIds, x as MINUTES_PER_DAY, y as LocationIconIdSchema, yn as DeviceType, zn as sleep$1 } from "../../dist-DU72-y3J.mjs";
2
+ import { n as purgeRetiredSettingsRows } from "../../retired-settings-keys-DLOBYMC4.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
@@ -2728,41 +2728,6 @@ function parseLinkedDevicesConfig(blob) {
2728
2728
  };
2729
2729
  }
2730
2730
  /**
2731
- * Resolve one candidate id to the ids it should actually contribute to a
2732
- * linked set: itself, unless it is a CONTAINER, in which case its own
2733
- * children (recursively expanded the same way — a container-of-containers
2734
- * is vanishingly unlikely per `DeviceType.Container`'s contract, but this
2735
- * costs nothing to handle). `visited` guards a pathological parent-cycle in
2736
- * persisted data from recursing forever; a candidate already on the current
2737
- * expansion path is dropped rather than re-expanded.
2738
- *
2739
- * This is the STRUCTURAL, location-independent way a container's child
2740
- * becomes reachable: the device-tree "children of the camera" rule and a
2741
- * persisted manual pick are parentDeviceId chains, never location-based —
2742
- * a container named there is excluded by expanding into whatever it
2743
- * actually contains, regardless of what its (or its children's) `location`
2744
- * column holds.
2745
- */
2746
- function expandContainer(id, byId, byParent, visited, out) {
2747
- if (visited.has(id)) return;
2748
- const candidate = byId.get(id);
2749
- if (!candidate) return;
2750
- if (candidate.type !== DeviceType.Container) {
2751
- out.add(id);
2752
- return;
2753
- }
2754
- const nextVisited = new Set(visited);
2755
- nextVisited.add(id);
2756
- const primary = resolveContainerPrimaryChild((byParent.get(id) ?? []).map((c) => ({
2757
- id: c.id,
2758
- stableId: c.stableId,
2759
- type: c.type,
2760
- ...c.role !== void 0 && c.role !== null ? { role: c.role } : {},
2761
- ...c.name !== void 0 ? { name: c.name } : {}
2762
- })), byId.get(id)?.primaryChildEntityId, byId.get(id)?.name);
2763
- if (primary !== null) expandContainer(primary.id, byId, byParent, nextVisited, out);
2764
- }
2765
- /**
2766
2731
  * Pure resolution core: children ∪ (auto → same-location | manual → list),
2767
2732
  * minus self, deduped, CONTAINERS expanded to their children (see file
2768
2733
  * header). Order: children first, then mode additions.
@@ -2785,40 +2750,6 @@ function resolveLinkedDeviceIds(params) {
2785
2750
  return [...ids];
2786
2751
  }
2787
2752
  /**
2788
- * What the retired `auto` mode (pre-D356) added beyond the device-tree
2789
- * children: every non-container candidate sharing the camera's location, a
2790
- * container child standing in for its container's PRIMARY child. Kept ONLY
2791
- * for the one-shot boot backfill that materialises it into the manual list
2792
- * (`linked-devices-manual-backfill.ts`); nothing on the read path calls it.
2793
- */
2794
- function legacyAutoLinkIds(params) {
2795
- const { selfId, selfLocation, candidates } = params;
2796
- if (selfLocation === null || selfLocation.length === 0) return [];
2797
- const byId = new Map(candidates.map((c) => [c.id, c]));
2798
- const byParent = /* @__PURE__ */ new Map();
2799
- for (const c of candidates) {
2800
- if (c.parentDeviceId === null) continue;
2801
- const siblings = byParent.get(c.parentDeviceId);
2802
- if (siblings) siblings.push(c);
2803
- else byParent.set(c.parentDeviceId, [c]);
2804
- }
2805
- const ids = /* @__PURE__ */ new Set();
2806
- const expand = (id) => expandContainer(id, byId, byParent, /* @__PURE__ */ new Set(), ids);
2807
- for (const c of candidates) {
2808
- if (c.type === DeviceType.Container) continue;
2809
- if (c.location !== selfLocation) continue;
2810
- if (c.parentDeviceId === selfId) continue;
2811
- const parent = c.parentDeviceId !== null ? byId.get(c.parentDeviceId) : void 0;
2812
- if (parent !== void 0 && parent.type === DeviceType.Container) {
2813
- expand(parent.id);
2814
- continue;
2815
- }
2816
- ids.add(c.id);
2817
- }
2818
- ids.delete(selfId);
2819
- return [...ids];
2820
- }
2821
- /**
2822
2753
  * Which linked devices materialize synthetic tracked events on the camera.
2823
2754
  * Absent / non-array config key ⇒ NONE — the operator must explicitly pick
2824
2755
  * producers (opt-in; flipped from the legacy absent⇒ALL default, which
@@ -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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.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 SOURCE_DEVICE_TYPES, Dn as createEvent, G as bareAddonId, St as isSourceCap, Vn as EventCategory, bn as DeviceType, fn as errMsg, k as SOURCE_CAPS, mn as BaseAddon, ot as doorbellCapability, ut as evaluateSensorEdge, xt as isSameAddonId } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, D as SOURCE_CAPS, En as createEvent, O as SOURCE_DEVICE_TYPES, U as bareAddonId, bt as isSameAddonId, ct as evaluateSensorEdge, dn as errMsg, it as doorbellCapability, pn as BaseAddon, xt as isSourceCap, yn as DeviceType } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  //#region src/builtins/hub-forwarder/hub-forwarder-destination.ts
9
9
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-DU72-y3J.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;
@@ -26,6 +26,15 @@ export declare class LivenessMonitorAddon extends BaseAddon<LivenessMonitorConfi
26
26
  * the 24-hour lookback that decides whether it records at all.
27
27
  */
28
28
  private lastSegmentMs;
29
+ /**
30
+ * A camera nobody could read is NOT a camera with no footage.
31
+ *
32
+ * `null` here means "no claim", and `liveness-checks.ts` skips a camera with
33
+ * no claim — which is the safe direction. But a skip that says nothing is
34
+ * indistinguishable from a healthy tick, so the branch that drops the camera
35
+ * names it, per camera (D393, and CLAUDE.md's logging rule).
36
+ */
37
+ private unreadable;
29
38
  /** Announce new faults and recoveries; say nothing about an unchanged fault. */
30
39
  private report;
31
40
  }
@@ -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-KRK9zLWt.js");
3
+ const require_dist = require("../../dist-D3zw1yHp.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";
@@ -150,7 +150,7 @@ var LivenessMonitorAddon = class extends require_dist.BaseAddon {
150
150
  const cameras = [];
151
151
  for (const device of cameraDevices) {
152
152
  const lastSegmentMs = await this.lastSegmentMs(device.id, nowMs, staleAfterMs);
153
- const activeMode = lastSegmentMs !== null && nowMs - lastSegmentMs > staleAfterMs ? require_dist.RecordingStatusSchema.parse(await this.ctx.api.recording.getStatus.query({ deviceId: device.id })).activeMode : null;
153
+ const activeMode = lastSegmentMs !== null && nowMs - lastSegmentMs > staleAfterMs ? require_dist.RecordingStatusSchema.parse(await this.ctx.api.recordingArchive.getStatus.query({ deviceId: device.id })).activeMode : null;
154
154
  cameras.push({
155
155
  deviceId: device.id,
156
156
  online: device.online === true,
@@ -175,18 +175,34 @@ var LivenessMonitorAddon = class extends require_dist.BaseAddon {
175
175
  async lastSegmentMs(deviceId, nowMs, staleAfterMs) {
176
176
  const recent = await this.ctx.api.recording.getAvailability.query({
177
177
  deviceId,
178
+ provider: require_dist.RECORDING_SOURCE_CAMSTACK_ADDON,
178
179
  fromMs: nowMs - staleAfterMs,
179
180
  toMs: nowMs
180
181
  });
182
+ if (recent.read === "unreadable") return this.unreadable(deviceId, "recent window");
181
183
  if (recent.ranges.length > 0) return Math.max(...recent.ranges.map((r) => r.endMs));
182
184
  const day = await this.ctx.api.recording.getAvailability.query({
183
185
  deviceId,
186
+ provider: require_dist.RECORDING_SOURCE_CAMSTACK_ADDON,
184
187
  fromMs: nowMs - RECORDING_LOOKBACK_MS,
185
188
  toMs: nowMs
186
189
  });
190
+ if (day.read === "unreadable") return this.unreadable(deviceId, "24 h lookback");
187
191
  if (day.ranges.length === 0) return null;
188
192
  return Math.max(...day.ranges.map((r) => r.endMs));
189
193
  }
194
+ /**
195
+ * A camera nobody could read is NOT a camera with no footage.
196
+ *
197
+ * `null` here means "no claim", and `liveness-checks.ts` skips a camera with
198
+ * no claim — which is the safe direction. But a skip that says nothing is
199
+ * indistinguishable from a healthy tick, so the branch that drops the camera
200
+ * names it, per camera (D393, and CLAUDE.md's logging rule).
201
+ */
202
+ unreadable(deviceId, window) {
203
+ this.ctx.logger.warn(`liveness: recording availability was unreadable (${window}) — this camera is not judged this tick`, { tags: { deviceId } });
204
+ return null;
205
+ }
190
206
  /** Announce new faults and recoveries; say nothing about an unchanged fault. */
191
207
  report(findings) {
192
208
  const current = new Set(findings.map((f) => f.id));
@@ -1,4 +1,4 @@
1
- import { Dn as createEvent, O as RecordingStatusSchema, Vn as EventCategory, fn as errMsg, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, C as RECORDING_SOURCE_CAMSTACK_ADDON, E as RecordingStatusSchema, En as createEvent, dn as errMsg, pn as BaseAddon } from "../../dist-DU72-y3J.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";
@@ -148,7 +148,7 @@ var LivenessMonitorAddon = class extends BaseAddon {
148
148
  const cameras = [];
149
149
  for (const device of cameraDevices) {
150
150
  const lastSegmentMs = await this.lastSegmentMs(device.id, nowMs, staleAfterMs);
151
- const activeMode = lastSegmentMs !== null && nowMs - lastSegmentMs > staleAfterMs ? RecordingStatusSchema.parse(await this.ctx.api.recording.getStatus.query({ deviceId: device.id })).activeMode : null;
151
+ const activeMode = lastSegmentMs !== null && nowMs - lastSegmentMs > staleAfterMs ? RecordingStatusSchema.parse(await this.ctx.api.recordingArchive.getStatus.query({ deviceId: device.id })).activeMode : null;
152
152
  cameras.push({
153
153
  deviceId: device.id,
154
154
  online: device.online === true,
@@ -173,18 +173,34 @@ var LivenessMonitorAddon = class extends BaseAddon {
173
173
  async lastSegmentMs(deviceId, nowMs, staleAfterMs) {
174
174
  const recent = await this.ctx.api.recording.getAvailability.query({
175
175
  deviceId,
176
+ provider: RECORDING_SOURCE_CAMSTACK_ADDON,
176
177
  fromMs: nowMs - staleAfterMs,
177
178
  toMs: nowMs
178
179
  });
180
+ if (recent.read === "unreadable") return this.unreadable(deviceId, "recent window");
179
181
  if (recent.ranges.length > 0) return Math.max(...recent.ranges.map((r) => r.endMs));
180
182
  const day = await this.ctx.api.recording.getAvailability.query({
181
183
  deviceId,
184
+ provider: RECORDING_SOURCE_CAMSTACK_ADDON,
182
185
  fromMs: nowMs - RECORDING_LOOKBACK_MS,
183
186
  toMs: nowMs
184
187
  });
188
+ if (day.read === "unreadable") return this.unreadable(deviceId, "24 h lookback");
185
189
  if (day.ranges.length === 0) return null;
186
190
  return Math.max(...day.ranges.map((r) => r.endMs));
187
191
  }
192
+ /**
193
+ * A camera nobody could read is NOT a camera with no footage.
194
+ *
195
+ * `null` here means "no claim", and `liveness-checks.ts` skips a camera with
196
+ * no claim — which is the safe direction. But a skip that says nothing is
197
+ * indistinguishable from a healthy tick, so the branch that drops the camera
198
+ * names it, per camera (D393, and CLAUDE.md's logging rule).
199
+ */
200
+ unreadable(deviceId, window) {
201
+ this.ctx.logger.warn(`liveness: recording availability was unreadable (${window}) — this camera is not judged this tick`, { tags: { deviceId } });
202
+ return null;
203
+ }
188
204
  /** Announce new faults and recoveries; say nothing about an unchanged fault. */
189
205
  report(findings) {
190
206
  const current = new Set(findings.map((f) => f.id));
@@ -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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.js");
7
7
  let node_crypto = require("node:crypto");
8
8
  node_crypto = require_chunk.__toESM(node_crypto);
9
9
  let crypto$1 = require("crypto");
@@ -1,5 +1,5 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { N as ScopedTokenSchema, R as UserRecordSchema, U as authProviderCapability, cn as userManagementCapability, mn as BaseAddon, r as ApiKeyRecordSchema } from "../../dist-BkjMEa2F.mjs";
2
+ import { I as UserRecordSchema, V as authProviderCapability, j as ScopedTokenSchema, pn as BaseAddon, r as ApiKeyRecordSchema, sn as userManagementCapability } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
3
+ const require_dist = require("../../dist-D3zw1yHp.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 { Dt as localNetworkCapability, Vn as EventCategory, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, Dt as localNetworkCapability, pn as BaseAddon } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.js");
7
7
  //#region src/builtins/loki-logging/loki-payload.ts
8
8
  /**
9
9
  * Loki rejects a label name that is not a valid Prometheus label
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.js");
7
7
  let node_fs_promises = require("node:fs/promises");
8
8
  let node_fs = require("node:fs");
9
9
  node_fs = require_chunk.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { Dn as createEvent, Gt as resolveBucketMs, Pt as metricsProviderCapability, Vn as EventCategory, Wt as reducePoints, fn as errMsg, mn as BaseAddon, mt as foldSnapshotByFunction } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, En as createEvent, Gt as resolveBucketMs, Pt as metricsProviderCapability, Wt as reducePoints, dn as errMsg, pn as BaseAddon, pt as foldSnapshotByFunction } from "../../dist-DU72-y3J.mjs";
2
2
  import { access, readFile, readdir } from "node:fs/promises";
3
3
  import * as fs from "node:fs";
4
4
  import { constants, readFileSync } from "node:fs";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.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 { Qt as scoreRuntimes, Vn as EventCategory, Vt as platformProbeCapability, fn as errMsg, kn as emitReadiness, mn as BaseAddon, st as enumerateInferenceDevices } from "../../dist-BkjMEa2F.mjs";
2
+ import { Bn as EventCategory, On as emitReadiness, Vt as platformProbeCapability, Zt as scoreRuntimes, at as enumerateInferenceDevices, dn as errMsg, pn as BaseAddon } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.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 { Vn as EventCategory, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, pn as BaseAddon } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-Cqs7GkOV.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { G as bareAddonId, K as batteryCapability, Pn as nodePin, Vn as EventCategory, a as BatteryStatusSchema, bn as DeviceType, fn as errMsg, mn as BaseAddon, nt as deriveBatteryPresence, sn as streamQualityLabel, tn as snapshotCapability, vn as DeviceFeature } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, Nn as nodePin, U as bareAddonId, W as batteryCapability, _n as DeviceFeature, a as BatteryStatusSchema, dn as errMsg, en as snapshotCapability, et as deriveBatteryPresence, on as streamQualityLabel, pn as BaseAddon, yn as DeviceType } from "../../dist-DU72-y3J.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CZPvteq2.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.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 { an as storageProviderCapability, mn as BaseAddon, pt as filesystemBrowseCapability } from "../../dist-BkjMEa2F.mjs";
1
+ import { ft as filesystemBrowseCapability, in as storageProviderCapability, pn as BaseAddon } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.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");
@@ -3648,19 +3648,19 @@ var StorageOrchestratorAddon = class extends require_dist.BaseAddon {
3648
3648
  },
3649
3649
  recorder: {
3650
3650
  pause: async (leaseId) => {
3651
- await this.ctx.api.recording.pauseForStorageMigration.mutate({ leaseId });
3651
+ await this.ctx.api.recordingArchive.pauseForStorageMigration.mutate({ leaseId });
3652
3652
  },
3653
3653
  resume: async (leaseId) => {
3654
- await this.ctx.api.recording.resumeForStorageMigration.mutate({ leaseId });
3654
+ await this.ctx.api.recordingArchive.resumeForStorageMigration.mutate({ leaseId });
3655
3655
  },
3656
- startMove: (input) => this.ctx.api.recording.startStorageMigrationMove.mutate(input),
3657
- startDrain: (input) => this.ctx.api.recording.relocateFootage.mutate(input),
3658
- getMove: (jobId) => this.ctx.api.recording.getStorageMigrationMoveStatus.query({ jobId }),
3659
- listMovers: () => this.ctx.api.recording.listRelocateJobs.query({}),
3660
- residue: (input) => this.ctx.api.recording.getRelocateResidue.query(input),
3661
- cancelMove: async (jobId) => (await this.ctx.api.recording.cancelStorageMigrationMove.mutate({ jobId })).cancelled,
3656
+ startMove: (input) => this.ctx.api.recordingArchive.startStorageMigrationMove.mutate(input),
3657
+ startDrain: (input) => this.ctx.api.recordingArchive.relocateFootage.mutate(input),
3658
+ getMove: (jobId) => this.ctx.api.recordingArchive.getStorageMigrationMoveStatus.query({ jobId }),
3659
+ listMovers: () => this.ctx.api.recordingArchive.listRelocateJobs.query({}),
3660
+ residue: (input) => this.ctx.api.recordingArchive.getRelocateResidue.query(input),
3661
+ cancelMove: async (jobId) => (await this.ctx.api.recordingArchive.cancelStorageMigrationMove.mutate({ jobId })).cancelled,
3662
3662
  refresh: async (leaseId) => {
3663
- await this.ctx.api.recording.refreshStorageLocationsForMigration.mutate({ leaseId });
3663
+ await this.ctx.api.recordingArchive.refreshStorageLocationsForMigration.mutate({ leaseId });
3664
3664
  }
3665
3665
  },
3666
3666
  analytics: {
@@ -3711,7 +3711,7 @@ var StorageOrchestratorAddon = class extends require_dist.BaseAddon {
3711
3711
  },
3712
3712
  startDebugMedia: () => this.ctx.api.pipelineAnalytics.reclaimDebugMedia.mutate({ mode: "reclaim" }),
3713
3713
  debugMediaStatus: () => this.ctx.api.pipelineAnalytics.getMediaReclaimStatus.query({}),
3714
- walkLedger: (input) => this.ctx.api.recording.reconcileLedgerAgainstDisk.mutate(input)
3714
+ walkLedger: (input) => this.ctx.api.recordingArchive.reconcileLedgerAgainstDisk.mutate(input)
3715
3715
  },
3716
3716
  now: () => Date.now(),
3717
3717
  newId: () => (0, node_crypto.randomUUID)()
@@ -1,4 +1,4 @@
1
- import { $t as settingsStoreCapability, E as REDACTED_SECRET, F as StorageLocationModeSchema, Fn as parseJsonObject, Ft as modeMayWrite, I as StorageLocationTypeSchema, L as StorageMigrationJobSchema, Mt as mayReadLocation, Nt as mayWriteToLocation, P as StorageCleanupJobSchema, Tt as legacyModeOf, Vn as EventCategory, Y as collectSecretConfigKeys, dn as withLocationMode, dt as evictionPolicyOfLocation, gt as gbToBytes, mn as BaseAddon, nn as storageCapability, qt as resolveLocationMode, rn as storageMigrationCapability, v as LegacyStorageLocationDefaultSchema, yt as isLocationEnabled } from "../../dist-BkjMEa2F.mjs";
1
+ import { Bn as EventCategory, F as StorageMigrationJobSchema, Ft as modeMayWrite, Kt as resolveLocationMode, M as StorageCleanupJobSchema, Mt as mayReadLocation, N as StorageLocationModeSchema, Nt as mayWriteToLocation, P as StorageLocationTypeSchema, Pn as parseJsonObject, Qt as settingsStoreCapability, Tt as legacyModeOf, ht as gbToBytes, lt as evictionPolicyOfLocation, nn as storageMigrationCapability, pn as BaseAddon, q as collectSecretConfigKeys, tn as storageCapability, un as withLocationMode, v as LegacyStorageLocationDefaultSchema, vt as isLocationEnabled, w as REDACTED_SECRET } from "../../dist-DU72-y3J.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";
@@ -3643,19 +3643,19 @@ var StorageOrchestratorAddon = class extends BaseAddon {
3643
3643
  },
3644
3644
  recorder: {
3645
3645
  pause: async (leaseId) => {
3646
- await this.ctx.api.recording.pauseForStorageMigration.mutate({ leaseId });
3646
+ await this.ctx.api.recordingArchive.pauseForStorageMigration.mutate({ leaseId });
3647
3647
  },
3648
3648
  resume: async (leaseId) => {
3649
- await this.ctx.api.recording.resumeForStorageMigration.mutate({ leaseId });
3649
+ await this.ctx.api.recordingArchive.resumeForStorageMigration.mutate({ leaseId });
3650
3650
  },
3651
- startMove: (input) => this.ctx.api.recording.startStorageMigrationMove.mutate(input),
3652
- startDrain: (input) => this.ctx.api.recording.relocateFootage.mutate(input),
3653
- getMove: (jobId) => this.ctx.api.recording.getStorageMigrationMoveStatus.query({ jobId }),
3654
- listMovers: () => this.ctx.api.recording.listRelocateJobs.query({}),
3655
- residue: (input) => this.ctx.api.recording.getRelocateResidue.query(input),
3656
- cancelMove: async (jobId) => (await this.ctx.api.recording.cancelStorageMigrationMove.mutate({ jobId })).cancelled,
3651
+ startMove: (input) => this.ctx.api.recordingArchive.startStorageMigrationMove.mutate(input),
3652
+ startDrain: (input) => this.ctx.api.recordingArchive.relocateFootage.mutate(input),
3653
+ getMove: (jobId) => this.ctx.api.recordingArchive.getStorageMigrationMoveStatus.query({ jobId }),
3654
+ listMovers: () => this.ctx.api.recordingArchive.listRelocateJobs.query({}),
3655
+ residue: (input) => this.ctx.api.recordingArchive.getRelocateResidue.query(input),
3656
+ cancelMove: async (jobId) => (await this.ctx.api.recordingArchive.cancelStorageMigrationMove.mutate({ jobId })).cancelled,
3657
3657
  refresh: async (leaseId) => {
3658
- await this.ctx.api.recording.refreshStorageLocationsForMigration.mutate({ leaseId });
3658
+ await this.ctx.api.recordingArchive.refreshStorageLocationsForMigration.mutate({ leaseId });
3659
3659
  }
3660
3660
  },
3661
3661
  analytics: {
@@ -3706,7 +3706,7 @@ var StorageOrchestratorAddon = class extends BaseAddon {
3706
3706
  },
3707
3707
  startDebugMedia: () => this.ctx.api.pipelineAnalytics.reclaimDebugMedia.mutate({ mode: "reclaim" }),
3708
3708
  debugMediaStatus: () => this.ctx.api.pipelineAnalytics.getMediaReclaimStatus.query({}),
3709
- walkLedger: (input) => this.ctx.api.recording.reconcileLedgerAgainstDisk.mutate(input)
3709
+ walkLedger: (input) => this.ctx.api.recordingArchive.reconcileLedgerAgainstDisk.mutate(input)
3710
3710
  },
3711
3711
  now: () => Date.now(),
3712
3712
  newId: () => randomUUID()
@@ -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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.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 { fn as errMsg, jn as hydrateSchema, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { An as hydrateSchema, dn as errMsg, pn as BaseAddon } from "../../dist-DU72-y3J.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-KRK9zLWt.js");
6
+ const require_dist = require("../../dist-D3zw1yHp.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { kt as logDestinationCapability, mn as BaseAddon } from "../../dist-BkjMEa2F.mjs";
1
+ import { kt as logDestinationCapability, pn as BaseAddon } from "../../dist-DU72-y3J.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";