@camstack/system 1.2.356 → 1.2.358

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 (76) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/auth/user-manager.d.ts +43 -2
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  8. package/dist/builtins/alerts/alerts.addon.js +1 -1
  9. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  10. package/dist/builtins/autotrack/index.js +2 -2
  11. package/dist/builtins/autotrack/index.mjs +2 -2
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  13. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  14. package/dist/builtins/calendars/calendars.addon.js +1 -1
  15. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  16. package/dist/builtins/camera-grid/index.js +1 -1
  17. package/dist/builtins/camera-grid/index.mjs +1 -1
  18. package/dist/builtins/composer/composer.addon.js +8 -8
  19. package/dist/builtins/composer/composer.addon.mjs +8 -8
  20. package/dist/builtins/console-logging/index.js +1 -1
  21. package/dist/builtins/console-logging/index.mjs +1 -1
  22. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  23. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  24. package/dist/builtins/device-manager/device-manager.addon.js +9 -9
  25. package/dist/builtins/device-manager/device-manager.addon.mjs +9 -9
  26. package/dist/builtins/hub-forwarder/index.js +1 -1
  27. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  28. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  29. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  30. package/dist/builtins/local-auth/admin-account-boot.d.ts +27 -0
  31. package/dist/builtins/local-auth/auth-schema.d.ts +3 -2
  32. package/dist/builtins/local-auth/local-auth.addon.js +281 -8
  33. package/dist/builtins/local-auth/local-auth.addon.mjs +291 -22
  34. package/dist/builtins/local-network/local-network.addon.d.ts +26 -0
  35. package/dist/builtins/local-network/local-network.addon.js +74 -25
  36. package/dist/builtins/local-network/local-network.addon.mjs +74 -25
  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 +1 -1
  46. package/dist/builtins/snapshot/index.mjs +1 -1
  47. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  48. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  49. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  50. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  51. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  52. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  53. package/dist/builtins/system-config/system-config.addon.js +1 -1
  54. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  55. package/dist/builtins/winston-logging/index.js +1 -1
  56. package/dist/builtins/winston-logging/index.mjs +1 -1
  57. package/dist/{child-cap-dispatch-wbIQJctP.js → child-cap-dispatch-BWk99kmA.js} +2 -2
  58. package/dist/{child-cap-dispatch-BcRHQBKW.mjs → child-cap-dispatch-C2dFiu87.mjs} +2 -2
  59. package/dist/{composition-sources-CeO0K2cl.js → composition-sources-BaHPH661.js} +1 -1
  60. package/dist/{composition-sources-BBfqepyT.mjs → composition-sources-D8Hapyav.mjs} +1 -1
  61. package/dist/{dist-B7WRgEZY.mjs → dist-D3bhbMY3.mjs} +321 -65
  62. package/dist/{dist-CFVOy8VT.js → dist-DzAHit0a.js} +332 -64
  63. package/dist/index.js +19 -143
  64. package/dist/index.mjs +6 -142
  65. package/dist/kernel/config-manager.d.ts +1 -1
  66. package/dist/kernel/config-schema.d.ts +6 -3
  67. package/dist/{retired-settings-keys-DKRjfz0U.mjs → retired-settings-keys-B6AFmtlO.mjs} +1 -1
  68. package/dist/{retired-settings-keys-CRlTzxaS.js → retired-settings-keys-CkXoPjKy.js} +1 -1
  69. package/dist/tls/boot-tls.d.ts +29 -0
  70. package/dist/tls/https-listener.d.ts +30 -0
  71. package/dist/tls/index.d.ts +4 -1
  72. package/dist/tls/tls-actions.d.ts +29 -0
  73. package/dist/tls/tls-status.d.ts +12 -1
  74. package/dist/{tls-ue_Xefmv.js → tls-CCMX7MjX.js} +319 -54
  75. package/dist/{tls-DTlVWwAI.mjs → tls-CJHogwTl.mjs} +246 -53
  76. package/package.json +3 -3
@@ -1,7 +1,5 @@
1
- import { Cr as EventCategory, Qn as BaseAddon, Ut as localNetworkCapability, an as pickAppLinkHub, s as CAMSTACK_APP_LINK_ORIGIN } from "../../dist-B7WRgEZY.mjs";
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-DTlVWwAI.mjs";
3
- import { mkdir, writeFile } from "node:fs/promises";
4
- import { join } from "node:path";
1
+ import { Nn as validateHubAddressOverride, Tr as EventCategory, Ut as localNetworkCapability, an as pickAppLinkHub, er as BaseAddon, hn as resolveHubAddress, s as CAMSTACK_APP_LINK_ORIGIN } from "../../dist-D3bhbMY3.mjs";
2
+ import { P as readLanHttpState, _ as writeExtraSans, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, m as readTlsAccessStatus, n as regenerateCertificate, p as readExtraSans, r as revertToGeneratedCertificate, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, y as ensureTlsCert } from "../../tls-CJHogwTl.mjs";
5
3
  import * as os from "node:os";
6
4
  import { readFileSync } from "node:fs";
7
5
  import { isIP } from "node:net";
@@ -200,10 +198,25 @@ var LocalNetworkAddon = class extends BaseAddon {
200
198
  viewerBaseUrls: [],
201
199
  httpEnabled: true,
202
200
  httpPort: DEFAULT_LAN_HTTP_PORT,
203
- localHostname: ""
201
+ localHostname: "",
202
+ agentBaseUrl: "",
203
+ signInBaseUrl: ""
204
204
  });
205
205
  }
206
206
  /**
207
+ * Both audiences' hub address: the override when set, else the automatic
208
+ * pick over the HTTPS palette (`resolveHubAddress`). The one reading every
209
+ * consumer goes through — `getHubAddresses`.
210
+ */
211
+ async snapshotHubAddresses() {
212
+ const port = (await this.resolveAdvertisedListenPort(null)).port;
213
+ const palette = await this.buildAdvertisedEndpoints(false, false, "https", port);
214
+ return {
215
+ cluster: resolveHubAddress(palette, "cluster", this.config.agentBaseUrl || null),
216
+ browser: resolveHubAddress(palette, "browser", this.config.signInBaseUrl || null)
217
+ };
218
+ }
219
+ /**
207
220
  * The effective flagged notification address: the operator's explicit
208
221
  * choice, else AUTO — the CamStack app link (D709, operator decision
209
222
  * 2026-10-06; before it AUTO was the tunnel, then the mesh). The app link is
@@ -293,6 +306,21 @@ var LocalNetworkAddon = class extends BaseAddon {
293
306
  this.ctx.logger.info("local-network: notification endpoint set", { meta: { baseUrl: baseUrl ?? "(auto)" } });
294
307
  return this.notificationEndpointSnapshot();
295
308
  },
309
+ getHubAddresses: async () => this.snapshotHubAddresses(),
310
+ setHubAddress: async ({ audience, baseUrl }) => {
311
+ let stored = "";
312
+ if (baseUrl !== null && baseUrl.trim() !== "") {
313
+ const check = validateHubAddressOverride(baseUrl);
314
+ if (!check.ok) throw new Error(check.reason);
315
+ stored = check.baseUrl;
316
+ }
317
+ await this.updateGlobalSettings(audience === "cluster" ? { agentBaseUrl: stored } : { signInBaseUrl: stored });
318
+ this.ctx.logger.info("local-network: hub address override set", { meta: {
319
+ audience,
320
+ baseUrl: stored === "" ? "(auto)" : stored
321
+ } });
322
+ return this.snapshotHubAddresses();
323
+ },
296
324
  getViewerEndpoints: async () => this.snapshotViewerEndpoints(),
297
325
  setViewerEndpoints: async ({ baseUrls }) => {
298
326
  const cleaned = [...new Set(baseUrls.filter((u) => u.length > 0))];
@@ -323,32 +351,30 @@ var LocalNetworkAddon = class extends BaseAddon {
323
351
  } });
324
352
  return { success: true };
325
353
  },
326
- getTlsStatus: async () => this.snapshotTls(false),
354
+ getTlsStatus: async () => this.snapshotTls(),
327
355
  regenerateCertificate: async (_input) => {
328
- if (readTlsMode(this.tlsDataDir()) === "uploaded") throw new Error("Cannot regenerate an uploaded certificate — revert to generated first.");
329
356
  const extraSans = [...readExtraSans(this.tlsDataDir())];
330
- await reissueTlsLeaf(this.tlsDataDir(), { extraSans });
331
- return this.snapshotTls(true);
357
+ await regenerateCertificate(this.tlsDataDir(), { extraSans });
358
+ this.putCertificateOnListener("regenerate");
359
+ return this.snapshotTls();
332
360
  },
333
361
  uploadCertificate: async ({ certPem, keyPem, caPem }) => {
334
- const valid = validateUploadedTls(certPem, keyPem);
335
- if (!valid.ok) throw new Error(valid.error);
336
- const dir = join(this.tlsDataDir(), "tls");
337
- await mkdir(dir, { recursive: true });
338
- await writeFile(join(dir, "camstack.crt"), certPem.endsWith("\n") ? certPem : `${certPem}\n`);
339
- await writeFile(join(dir, "camstack.key"), keyPem.endsWith("\n") ? keyPem : `${keyPem}\n`, { mode: 384 });
340
- if (caPem && caPem.trim() !== "") await writeFile(join(dir, "camstack-ca.crt"), caPem.endsWith("\n") ? caPem : `${caPem}\n`);
341
- writeTlsMode(this.tlsDataDir(), "uploaded");
342
- return this.snapshotTls(true);
362
+ await storeUploadedCertificate(this.tlsDataDir(), {
363
+ certPem,
364
+ keyPem,
365
+ caPem
366
+ });
367
+ this.putCertificateOnListener("upload");
368
+ return this.snapshotTls();
343
369
  },
344
370
  downloadCa: async () => {
345
- return { pem: this.snapshotTls(false).caCertPem ?? "" };
371
+ return { pem: this.snapshotTls().caCertPem ?? "" };
346
372
  },
347
373
  revertToGeneratedCertificate: async () => {
348
- writeTlsMode(this.tlsDataDir(), "generated");
349
374
  const extraSans = [...readExtraSans(this.tlsDataDir())];
350
- await ensureTlsCert(this.tlsDataDir(), { extraSans });
351
- return this.snapshotTls(true);
375
+ await revertToGeneratedCertificate(this.tlsDataDir(), { extraSans });
376
+ this.putCertificateOnListener("revert");
377
+ return this.snapshotTls();
352
378
  }
353
379
  };
354
380
  this.lastSnapshotKey = snapshotKey(this.enumerate());
@@ -507,14 +533,35 @@ var LocalNetworkAddon = class extends BaseAddon {
507
533
  tlsDataDir() {
508
534
  return this.ctx.nodeDataDir ?? this.ctx.dataDir;
509
535
  }
510
- snapshotTls(restartRequired) {
511
- const status = readTlsAccessStatus(this.tlsDataDir(), restartRequired);
536
+ snapshotTls() {
537
+ const status = readTlsAccessStatus(this.tlsDataDir(), servedHttpsLeafFingerprint());
512
538
  return {
513
539
  ...status,
514
540
  sans: [...status.sans]
515
541
  };
516
542
  }
517
543
  /**
544
+ * Hot-swap the HTTPS listener onto the pair now on disk. A failure is not
545
+ * thrown — the files are already written and the status reports
546
+ * `restartRequired` from the served-vs-disk fingerprints — but it is logged:
547
+ * a certificate change that did not reach the listener must say so.
548
+ */
549
+ putCertificateOnListener(action) {
550
+ const outcome = applyCertificateToListener(this.tlsDataDir());
551
+ if (outcome.kind === "reloaded") {
552
+ this.ctx.logger.info("local-network: HTTPS listener now serves the new certificate", { meta: {
553
+ action,
554
+ leafFingerprintSha256: outcome.servedLeafFingerprint
555
+ } });
556
+ return;
557
+ }
558
+ this.ctx.logger.warn("local-network: certificate changed on disk but NOT on the listener", { meta: {
559
+ action,
560
+ reason: outcome.kind,
561
+ ...outcome.kind === "failed" ? { error: outcome.error } : {}
562
+ } });
563
+ }
564
+ /**
518
565
  * Bind or unbind the LAN HTTP sibling from the addon's own settings, and
519
566
  * keep the leaf SAN in sync with `localHostname`. This is the settings
520
567
  * side-effect path — there is no second persist API.
@@ -533,7 +580,9 @@ var LocalNetworkAddon = class extends BaseAddon {
533
580
  });
534
581
  if (hostname !== "") {
535
582
  writeExtraSans(this.tlsDataDir(), [hostname]);
536
- if (readTlsMode(this.tlsDataDir()) === "generated") await ensureTlsCert(this.tlsDataDir(), { extraSans: [hostname] });
583
+ if (readTlsMode(this.tlsDataDir()) === "generated") {
584
+ if ((await ensureTlsCert(this.tlsDataDir(), { extraSans: [hostname] })).generated) this.putCertificateOnListener("hostname");
585
+ }
537
586
  } else writeExtraSans(this.tlsDataDir(), []);
538
587
  }
539
588
  /**
@@ -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-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.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 { Gt as logDestinationCapability, Qn as BaseAddon } from "../../dist-B7WRgEZY.mjs";
1
+ import { Gt as logDestinationCapability, er as BaseAddon } from "../../dist-D3bhbMY3.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-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.js");
7
7
  const require_proc_stat = require("../../proc-stat-DL-WUOhl.js");
8
8
  let node_fs_promises = require("node:fs/promises");
9
9
  let node_os = require("node:os");
@@ -1,4 +1,4 @@
1
- import { Cr as EventCategory, Qn as BaseAddon, Zn as errMsg, Zt as metricsProviderCapability, cr as createEvent, fn as resolveBucketMs, jt as foldSnapshotByFunction, un as reducePoints } from "../../dist-B7WRgEZY.mjs";
1
+ import { $n as errMsg, Tr as EventCategory, Zt as metricsProviderCapability, er as BaseAddon, fn as resolveBucketMs, jt as foldSnapshotByFunction, un as reducePoints, ur as createEvent } from "../../dist-D3bhbMY3.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader, n as elapsedSecSince, o as parseProcStatusRss, r as lifetimeCpuPercent, t as commandFromCmdline } from "../../proc-stat-CbC55Kqi.mjs";
3
3
  import { access, readFile, readdir } from "node:fs/promises";
4
4
  import * as os from "node:os";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.js");
7
7
  let node_os = require("node:os");
8
8
  node_os = require_chunk.__toESM(node_os);
9
9
  let node_fs = require("node:fs");
@@ -1,5 +1,5 @@
1
1
  import { o as __toESM } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Cr as EventCategory, Qn as BaseAddon, St as enumerateInferenceDevices, Zn as errMsg, bn as scoreRuntimes, sn as platformProbeCapability, ur as emitReadiness } from "../../dist-B7WRgEZY.mjs";
2
+ import { $n as errMsg, St as enumerateInferenceDevices, Tr as EventCategory, er as BaseAddon, fr as emitReadiness, sn as platformProbeCapability, xn as scoreRuntimes } from "../../dist-D3bhbMY3.mjs";
3
3
  import * as os from "node:os";
4
4
  import * as fs from "node:fs";
5
5
  import { execFile } from "node:child_process";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.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 { Cr as EventCategory, Qn as BaseAddon } from "../../dist-B7WRgEZY.mjs";
1
+ import { Tr as EventCategory, er as BaseAddon } from "../../dist-D3bhbMY3.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-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Cn as snapshotCapability, Cr as EventCategory, Jn as DeviceFeature, Qn as BaseAddon, X as batteryCapability, Xn as DeviceType, Xt as memoizePinnedFfmpeg, Y as bareAddonId, Zn as errMsg, a as BatteryStatusSchema, gt as deriveBatteryPresence, hr as nodePin, kn as streamQualityLabel } from "../../dist-B7WRgEZY.mjs";
1
+ import { $n as errMsg, An as streamQualityLabel, Qn as DeviceType, Tr as EventCategory, X as batteryCapability, Xn as DeviceFeature, Xt as memoizePinnedFfmpeg, Y as bareAddonId, _r as nodePin, a as BatteryStatusSchema, er as BaseAddon, gt as deriveBatteryPresence, wn as snapshotCapability } from "../../dist-D3bhbMY3.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.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 { At as filesystemBrowseCapability, Dn as storageProviderCapability, Qn as BaseAddon } from "../../dist-B7WRgEZY.mjs";
1
+ import { At as filesystemBrowseCapability, On as storageProviderCapability, er as BaseAddon } from "../../dist-D3bhbMY3.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-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.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 { B as StorageLocationTypeSchema, Cr as EventCategory, E as LegacyStorageLocationDefaultSchema, Et as evictionPolicyOfLocation, Fn as withLocationMode, It as isLocationEnabled, Jt as mayReadLocation, M as REDACTED_SECRET, Nt as gbToBytes, Qn as BaseAddon, Qt as modeMayWrite, R as StorageCleanupJobSchema, Tn as storageMigrationCapability, V as StorageMigrationJobSchema, Vt as legacyModeOf, Yt as mayWriteToLocation, gr as parseJsonObject, hn as resolveLocationMode, tt as collectSecretConfigKeys, wn as storageCapability, xn as settingsStoreCapability, z as StorageLocationModeSchema } from "../../dist-B7WRgEZY.mjs";
1
+ import { B as StorageLocationTypeSchema, E as LegacyStorageLocationDefaultSchema, En as storageMigrationCapability, Et as evictionPolicyOfLocation, It as isLocationEnabled, Jt as mayReadLocation, Ln as withLocationMode, M as REDACTED_SECRET, Nt as gbToBytes, Qt as modeMayWrite, R as StorageCleanupJobSchema, Sn as settingsStoreCapability, Tn as storageCapability, Tr as EventCategory, V as StorageMigrationJobSchema, Vt as legacyModeOf, Yt as mayWriteToLocation, er as BaseAddon, gn as resolveLocationMode, tt as collectSecretConfigKeys, vr as parseJsonObject, z as StorageLocationModeSchema } from "../../dist-D3bhbMY3.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-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.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 { Qn as BaseAddon, Zn as errMsg, fr as hydrateSchema } from "../../dist-B7WRgEZY.mjs";
1
+ import { $n as errMsg, er as BaseAddon, mr as hydrateSchema } from "../../dist-D3bhbMY3.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-CFVOy8VT.js");
6
+ const require_dist = require("../../dist-DzAHit0a.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 { Gt as logDestinationCapability, Qn as BaseAddon } from "../../dist-B7WRgEZY.mjs";
1
+ import { Gt as logDestinationCapability, er as BaseAddon } from "../../dist-D3bhbMY3.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-CFVOy8VT.js");
2
+ const require_dist = require("./dist-DzAHit0a.js");
3
3
  const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
4
4
  require("./hub-cap-forward-DmHNjbB0.js");
5
5
  let node_crypto = require("node:crypto");
@@ -4418,7 +4418,7 @@ function createChildrenBatchLoader(opts) {
4418
4418
  var RuntimeStateLoadError = class extends Error {
4419
4419
  deviceId;
4420
4420
  constructor(deviceId, reason, options) {
4421
- super(`runtime state of device ${deviceId} could not be loaded (${reason}) — the device is not built from an empty state (D677)`, options);
4421
+ super(`runtime state of device ${deviceId} could not be loaded (${reason}) — the device is not built from an empty state`, options);
4422
4422
  this.deviceId = deviceId;
4423
4423
  this.name = "RuntimeStateLoadError";
4424
4424
  }
@@ -1,4 +1,4 @@
1
- import { Cr as EventCategory$1, cr as createEvent } from "./dist-B7WRgEZY.mjs";
1
+ import { Tr as EventCategory$1, ur as createEvent } from "./dist-D3bhbMY3.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader } from "./proc-stat-CbC55Kqi.mjs";
3
3
  import "./hub-cap-forward-BdT320dq.mjs";
4
4
  import * as crypto$1 from "node:crypto";
@@ -4415,7 +4415,7 @@ function createChildrenBatchLoader(opts) {
4415
4415
  var RuntimeStateLoadError = class extends Error {
4416
4416
  deviceId;
4417
4417
  constructor(deviceId, reason, options) {
4418
- super(`runtime state of device ${deviceId} could not be loaded (${reason}) — the device is not built from an empty state (D677)`, options);
4418
+ super(`runtime state of device ${deviceId} could not be loaded (${reason}) — the device is not built from an empty state`, options);
4419
4419
  this.deviceId = deviceId;
4420
4420
  this.name = "RuntimeStateLoadError";
4421
4421
  }
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CFVOy8VT.js");
1
+ const require_dist = require("./dist-DzAHit0a.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Wn as compositionSourceKey, Zn as errMsg } from "./dist-B7WRgEZY.mjs";
1
+ import { $n as errMsg, Kn as compositionSourceKey } from "./dist-D3bhbMY3.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation