@camstack/system 1.2.434 → 1.2.435

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 (74) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/autotrack/index.js +1 -1
  8. package/dist/builtins/autotrack/index.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  11. package/dist/builtins/calendars/calendars.addon.js +1 -1
  12. package/dist/builtins/calendars/calendars.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/composer/composer.addon.js +2 -2
  16. package/dist/builtins/composer/composer.addon.mjs +2 -2
  17. package/dist/builtins/console-logging/index.js +1 -1
  18. package/dist/builtins/console-logging/index.mjs +1 -1
  19. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  20. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  21. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  22. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  23. package/dist/builtins/hub-forwarder/index.js +1 -1
  24. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  25. package/dist/builtins/keychain/index.js +3 -3
  26. package/dist/builtins/keychain/index.mjs +3 -3
  27. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  28. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  29. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  30. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  31. package/dist/builtins/local-network/local-network.addon.d.ts +4 -2
  32. package/dist/builtins/local-network/local-network.addon.js +23 -13
  33. package/dist/builtins/local-network/local-network.addon.mjs +23 -13
  34. package/dist/builtins/loki-logging/index.js +1 -1
  35. package/dist/builtins/loki-logging/index.mjs +1 -1
  36. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  37. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  38. package/dist/builtins/platform-probe/index.js +1 -1
  39. package/dist/builtins/platform-probe/index.mjs +1 -1
  40. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  41. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  42. package/dist/builtins/snapshot/index.js +1 -1
  43. package/dist/builtins/snapshot/index.mjs +1 -1
  44. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  45. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  46. package/dist/builtins/sqlite-storage/index.js +1 -1
  47. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  48. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +3 -3
  49. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +3 -3
  50. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  51. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  52. package/dist/builtins/system-config/system-config.addon.js +2 -2
  53. package/dist/builtins/system-config/system-config.addon.mjs +2 -2
  54. package/dist/builtins/winston-logging/index.js +1 -1
  55. package/dist/builtins/winston-logging/index.mjs +1 -1
  56. package/dist/{composition-sources-B7R1oQnY.js → composition-sources-Cm42mgbv.js} +1 -1
  57. package/dist/{composition-sources-CqrDyHM1.mjs → composition-sources-_7W2Ly9s.mjs} +1 -1
  58. package/dist/{constants-CuOfMdYe.js → constants-DL87WgeN.js} +1 -1
  59. package/dist/{constants-CrMPWOug.mjs → constants-DoiTA134.mjs} +1 -1
  60. package/dist/{device-ca-CDjGQQPd.mjs → device-ca-B6YJZus6.mjs} +1 -1
  61. package/dist/{device-ca-D21ZP00q.js → device-ca-WXuKc8AX.js} +1 -1
  62. package/dist/{dist-CYcBqnXk.mjs → dist-Bz4_y8Xy.mjs} +43 -5
  63. package/dist/{dist-CCH3XPqO.js → dist-CnUtkSwN.js} +48 -4
  64. package/dist/file-host-worker.js +1 -1
  65. package/dist/file-host-worker.mjs +1 -1
  66. package/dist/index.js +5 -5
  67. package/dist/index.mjs +5 -5
  68. package/dist/{restore-archive-Do0QwAik.js → restore-archive-BNoFLAg8.js} +1 -1
  69. package/dist/{restore-archive-5ml7uYMf.mjs → restore-archive-DJYuznWP.mjs} +1 -1
  70. package/dist/{retired-settings-keys-CyDdyjLP.mjs → retired-settings-keys-9nA85bwT.mjs} +1 -1
  71. package/dist/{retired-settings-keys-CEiCaI_j.js → retired-settings-keys-CO3RqsDw.js} +1 -1
  72. package/dist/{wal-maintenance-LZYd8iT-.js → wal-maintenance-D3gwRj1B.js} +0 -0
  73. package/dist/{wal-maintenance-DgLLPK14.mjs → wal-maintenance-DLrbapzi.mjs} +0 -0
  74. package/package.json +1 -1
@@ -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-CCH3XPqO.js");
6
+ const require_dist = require("../../dist-CnUtkSwN.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 { Dt as deriveBatteryPresence, Un as snapshotCapability, Yn as streamQualityLabel, Zr as nodePin, br as BaseAddon, fi as EventCategory, gr as DeviceFeature, it as batteryCapability, pn as memoizePinnedFfmpeg, rt as bareAddonId, s as BatteryStatusSchema, vr as DeviceType, yr as errMsg } from "../../dist-CYcBqnXk.mjs";
1
+ import { Ot as deriveBatteryPresence, Qr as nodePin, Wn as snapshotCapability, Xn as streamQualityLabel, _r as DeviceFeature, at as batteryCapability, br as errMsg, it as bareAddonId, mn as memoizePinnedFfmpeg, pi as EventCategory, s as BatteryStatusSchema, xr as BaseAddon, yr as DeviceType } from "../../dist-Bz4_y8Xy.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-CCH3XPqO.js");
6
+ const require_dist = require("../../dist-CnUtkSwN.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 { Ht as filesystemBrowseCapability, br as BaseAddon, qn as storageProviderCapability } from "../../dist-CYcBqnXk.mjs";
1
+ import { Jn as storageProviderCapability, Ut as filesystemBrowseCapability, xr as BaseAddon } from "../../dist-Bz4_y8Xy.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 @@ Object.defineProperties(exports, {
4
4
  });
5
5
  require("../../chunk-Cek0wNdY.js");
6
6
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./filesystem-storage.addon.js");
7
- const require_wal_maintenance = require("../../wal-maintenance-LZYd8iT-.js");
7
+ const require_wal_maintenance = require("../../wal-maintenance-D3gwRj1B.js");
8
8
  const require_builtins_sqlite_storage_sqlite_settings_addon = require("./sqlite-settings.addon.js");
9
9
  //#region src/builtins/sqlite-storage/config-store.ts
10
10
  var ConfigStore = class {
@@ -1,5 +1,5 @@
1
1
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./filesystem-storage.addon.mjs";
2
- import { A as SQLITE_PAGE_CACHE_CEILING_KIB, B as sqliteEngineStorm, D as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, F as SQLITE_PROFILE_REPORT_FLOOR_MS, I as SQLITE_PROFILE_REPORT_INTERVAL_MS, L as SQLITE_PROFILE_TOP_N, M as sqliteMmapSizeFor, N as sqlitePageCacheKibFor, O as SQLITE_MMAP_CEILING_BYTES, P as SQLITE_ENGINE_STORM_WALL_SHARE, R as SQLITE_SLOW_CALL_MS, a as WalMaintenance, c as SqliteSettingsBackend, i as WAL_MAINTENANCE_INTERVAL_MS, j as SQLITE_PAGE_CACHE_FLOOR_KIB, k as SQLITE_MMAP_FLOOR_BYTES, n as WAL_HIGH_WATER_BYTES, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, z as SqliteOpProfiler } from "../../wal-maintenance-DgLLPK14.mjs";
2
+ import { A as SQLITE_PAGE_CACHE_CEILING_KIB, B as sqliteEngineStorm, D as SQLITE_JOURNAL_SIZE_LIMIT_BYTES, F as SQLITE_PROFILE_REPORT_FLOOR_MS, I as SQLITE_PROFILE_REPORT_INTERVAL_MS, L as SQLITE_PROFILE_TOP_N, M as sqliteMmapSizeFor, N as sqlitePageCacheKibFor, O as SQLITE_MMAP_CEILING_BYTES, P as SQLITE_ENGINE_STORM_WALL_SHARE, R as SQLITE_SLOW_CALL_MS, a as WalMaintenance, c as SqliteSettingsBackend, i as WAL_MAINTENANCE_INTERVAL_MS, j as SQLITE_PAGE_CACHE_FLOOR_KIB, k as SQLITE_MMAP_FLOOR_BYTES, n as WAL_HIGH_WATER_BYTES, r as WAL_IDLE_QUIET_MS, t as WAL_CHECKPOINT_BUSY_TIMEOUT_MS, z as SqliteOpProfiler } from "../../wal-maintenance-DLrbapzi.mjs";
3
3
  import { SqliteSettingsAddon } from "./sqlite-settings.addon.mjs";
4
4
  //#region src/builtins/sqlite-storage/config-store.ts
5
5
  var ConfigStore = class {
@@ -3,9 +3,9 @@ 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-CCH3XPqO.js");
7
- const require_retired_settings_keys = require("../../retired-settings-keys-CEiCaI_j.js");
8
- const require_wal_maintenance = require("../../wal-maintenance-LZYd8iT-.js");
6
+ const require_dist = require("../../dist-CnUtkSwN.js");
7
+ const require_retired_settings_keys = require("../../retired-settings-keys-CO3RqsDw.js");
8
+ const require_wal_maintenance = require("../../wal-maintenance-D3gwRj1B.js");
9
9
  const require_sqlite_snapshot_protocol = require("../../sqlite-snapshot-protocol-B9OndqZv.js");
10
10
  const require_wal_checkpoint_policy = require("../../wal-checkpoint-policy-d2z2qPqx.js");
11
11
  let node_fs_promises = require("node:fs/promises");
@@ -1,6 +1,6 @@
1
- import { Ct as databaseSnapshotCapability, St as dataStoreProviderCapability, Tr as RUNTIME_DEFAULTS, _ as DATABASE_SNAPSHOT_PARTIAL_SUFFIX, b as DATA_STORE_DATABASES, br as BaseAddon, nr as vectorStoreCapability, rt as bareAddonId, v as DATABASE_SNAPSHOT_SUFFIX, y as DATABASE_SNAPSHOT_TIMEOUT_MS, yr as errMsg } from "../../dist-CYcBqnXk.mjs";
2
- import { r as retiredKeyStoreOf, t as purgeRetiredSettingsKeys } from "../../retired-settings-keys-CyDdyjLP.mjs";
3
- import { C as callControl, E as controlTargetOf, S as trustResult, T as callVector, _ as collectTransferables, a as WalMaintenance, c as SqliteSettingsBackend, d as CrossDatabaseTransactError, f as DatabaseBusyError, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callData } from "../../wal-maintenance-DgLLPK14.mjs";
1
+ import { Ct as dataStoreProviderCapability, Er as RUNTIME_DEFAULTS, _ as DATABASE_SNAPSHOT_PARTIAL_SUFFIX, b as DATA_STORE_DATABASES, br as errMsg, it as bareAddonId, rr as vectorStoreCapability, v as DATABASE_SNAPSHOT_SUFFIX, wt as databaseSnapshotCapability, xr as BaseAddon, y as DATABASE_SNAPSHOT_TIMEOUT_MS } from "../../dist-Bz4_y8Xy.mjs";
2
+ import { r as retiredKeyStoreOf, t as purgeRetiredSettingsKeys } from "../../retired-settings-keys-9nA85bwT.mjs";
3
+ import { C as callControl, E as controlTargetOf, S as trustResult, T as callVector, _ as collectTransferables, a as WalMaintenance, c as SqliteSettingsBackend, d as CrossDatabaseTransactError, f as DatabaseBusyError, m as rehydrateError, o as createVectorIndex, p as DuplicatePlacementError, s as vectorProviderOf, u as CollectionPlacementError, v as isFileHostMessage, w as callData } from "../../wal-maintenance-DLrbapzi.mjs";
4
4
  import { r as isSnapshotWorkerMessage } from "../../sqlite-snapshot-protocol-2QaTouWV.mjs";
5
5
  import { a as isWorkerMessage, t as WAL_CHECKPOINT_LARGE_PASS_FRAMES } from "../../wal-checkpoint-policy-BahrTtyD.mjs";
6
6
  import { createRequire } from "node:module";
@@ -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-CCH3XPqO.js");
6
+ const require_dist = require("../../dist-CnUtkSwN.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 { $r as parseJsonObject, Gn as storageMigrationCapability, I as LegacyStorageLocationDefaultSchema, J as StorageLocationTypeSchema, Jr as isSecretMarker, K as StorageCleanupJobSchema, Kt as gbToBytes, Pn as resolveLocationMode, Pr as collectSecretConfigKeys, Rt as evictionPolicyOfLocation, Vn as settingsStoreCapability, Wn as storageCapability, Y as StorageMigrationJobSchema, Zt as isLocationEnabled, br as BaseAddon, di as transformSecretWrite, dn as mayReadLocation, fi as EventCategory, fn as mayWriteToLocation, hn as modeMayWrite, ii as resolveSecretMarkers, in as legacyModeOf, oi as secretTreeFromPaths, q as StorageLocationModeSchema, rr as withLocationMode, wr as REDACTED_SECRET } from "../../dist-CYcBqnXk.mjs";
1
+ import { Fn as resolveLocationMode, Fr as collectSecretConfigKeys, Gn as storageCapability, Hn as settingsStoreCapability, I as LegacyStorageLocationDefaultSchema, J as StorageLocationModeSchema, Kn as storageMigrationCapability, Qt as isLocationEnabled, Tr as REDACTED_SECRET, X as StorageMigrationJobSchema, Y as StorageLocationTypeSchema, Yr as isSecretMarker, ai as resolveSecretMarkers, an as legacyModeOf, ei as parseJsonObject, fi as transformSecretWrite, fn as mayReadLocation, gn as modeMayWrite, ir as withLocationMode, pi as EventCategory, pn as mayWriteToLocation, q as StorageCleanupJobSchema, qt as gbToBytes, si as secretTreeFromPaths, xr as BaseAddon, zt as evictionPolicyOfLocation } from "../../dist-Bz4_y8Xy.mjs";
2
2
  import { z } from "zod";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { containsOrEquals, physicalRootOf } from "@camstack/types/node";
@@ -3,11 +3,11 @@ 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-CCH3XPqO.js");
6
+ const require_dist = require("../../dist-CnUtkSwN.js");
7
7
  const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
8
8
  const require_x509_es = require("../../x509.es-r7Ht1thA.js");
9
9
  const require_agent_https = require("../../agent-https-BZIwS4xF.js");
10
- const require_constants$8 = require("../../constants-CuOfMdYe.js");
10
+ const require_constants$8 = require("../../constants-DL87WgeN.js");
11
11
  const require_src$1 = require("../../src-CnAqG6EF.js");
12
12
  let zod = require("zod");
13
13
  let node_crypto = require("node:crypto");
@@ -1,9 +1,9 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Jr as isSecretMarker, Lr as customAction, Rr as defineCustomActions, Ur as hydrateSchema, Xr as makeSecretMarker, br as BaseAddon, di as transformSecretWrite, qr as isSecretClear, si as secretTreeFromSchema, yr as errMsg } from "../../dist-CYcBqnXk.mjs";
2
+ import { Jr as isSecretClear, Rr as customAction, Wr as hydrateSchema, Yr as isSecretMarker, Zr as makeSecretMarker, br as errMsg, ci as secretTreeFromSchema, fi as transformSecretWrite, xr as BaseAddon, zr as defineCustomActions } from "../../dist-Bz4_y8Xy.mjs";
3
3
  import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
4
4
  import { a as KeyUsagesExtension, c as Pkcs10CertificateRequestGenerator, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, s as Pkcs10CertificateRequest, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "../../x509.es-CDvj67p1.mjs";
5
5
  import { A as AgentHttpsNames, M as setProcessAgentHttpsNames, O as AGENT_HTTPS_NAMES_COLLECTION, d as isPrivateAddress, j as getProcessAgentHttpsNames, k as AGENT_HTTPS_NAMES_COLUMNS, u as isLocalOnlyHostname } from "../../agent-https-B8lKYVtU.mjs";
6
- import { a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, c as MESH_JOIN_TOKEN_MAX_TTL_SEC, d as CLUSTER_SECRET_REF, i as MESH_CA_FIELD, l as SERVER_AUTH_OID, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID, v as hashClusterSecret } from "../../constants-CrMPWOug.mjs";
6
+ import { a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, c as MESH_JOIN_TOKEN_MAX_TTL_SEC, d as CLUSTER_SECRET_REF, i as MESH_CA_FIELD, l as SERVER_AUTH_OID, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID, v as hashClusterSecret } from "../../constants-DoiTA134.mjs";
7
7
  import { t as require_src } from "../../src-hG4grMU4.mjs";
8
8
  import { z } from "zod";
9
9
  import { X509Certificate, createHash, createHmac, createPrivateKey, randomBytes, randomInt, sign, timingSafeEqual, verify, webcrypto } 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-CCH3XPqO.js");
6
+ const require_dist = require("../../dist-CnUtkSwN.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 { br as BaseAddon, cn as logDestinationCapability } from "../../dist-CYcBqnXk.mjs";
1
+ import { ln as logDestinationCapability, xr as BaseAddon } from "../../dist-Bz4_y8Xy.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,4 +1,4 @@
1
- const require_dist = require("./dist-CCH3XPqO.js");
1
+ const require_dist = require("./dist-CnUtkSwN.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 { fr as compositionSourceKey, yr as errMsg } from "./dist-CYcBqnXk.mjs";
1
+ import { br as errMsg, pr as compositionSourceKey } from "./dist-Bz4_y8Xy.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
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CCH3XPqO.js");
1
+ const require_dist = require("./dist-CnUtkSwN.js");
2
2
  let node_crypto = require("node:crypto");
3
3
  //#region src/kernel/moleculer/cluster-secret.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Nr as buildSecretRef } from "./dist-CYcBqnXk.mjs";
1
+ import { Pr as buildSecretRef } from "./dist-Bz4_y8Xy.mjs";
2
2
  import { createHash, timingSafeEqual } from "node:crypto";
3
3
  //#region src/kernel/moleculer/cluster-secret.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { E as DEVICE_SAN_USER_PREFIX, Nr as buildSecretRef, T as DEVICE_SAN_CREDENTIAL_PREFIX } from "./dist-CYcBqnXk.mjs";
1
+ import { E as DEVICE_SAN_USER_PREFIX, Pr as buildSecretRef, T as DEVICE_SAN_CREDENTIAL_PREFIX } from "./dist-Bz4_y8Xy.mjs";
2
2
  import { a as KeyUsagesExtension, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, l as SubjectAlternativeNameExtension, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "./x509.es-CDvj67p1.mjs";
3
3
  import { X509Certificate, createPublicKey, randomBytes, verify, webcrypto } from "node:crypto";
4
4
  //#region src/auth/jwt-signing-key.ts
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CCH3XPqO.js");
1
+ const require_dist = require("./dist-CnUtkSwN.js");
2
2
  const require_x509_es = require("./x509.es-r7Ht1thA.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  //#region src/auth/jwt-signing-key.ts
@@ -39976,10 +39976,14 @@ function isLanIpv4Literal(endpoint) {
39976
39976
  const host = hostnameOf(endpoint.baseUrl);
39977
39977
  return host !== null && IPV4_LITERAL.test(host);
39978
39978
  }
39979
+ function isUnstable(endpoint) {
39980
+ return endpoint.stable === false;
39981
+ }
39979
39982
  /** Lower = better; `null` = never this role's AUTOMATIC answer. */
39980
39983
  function autoRankFor(role, endpoint) {
39981
39984
  if (endpoint.kind === "loopback" || endpoint.kind === "app-link" || endpoint.kind === "custom") return null;
39982
39985
  if (hostnameOf(endpoint.baseUrl) === null) return null;
39986
+ if (isUnstable(endpoint)) return null;
39983
39987
  if (role === "internal") {
39984
39988
  if (isLanIpv4Literal(endpoint)) return 0;
39985
39989
  if (isPlausibleLan(endpoint)) return 1;
@@ -40134,6 +40138,7 @@ function resolveNotificationTapAddress(flags) {
40134
40138
  }
40135
40139
  /** AUTO app connections: LAN IPv4 + the public tunnel. Never IPv6, mesh, loopback or custom. */
40136
40140
  function isDefaultAppConnectionEndpoint(endpoint) {
40141
+ if (isUnstable(endpoint)) return false;
40137
40142
  if (endpoint.kind === "lan-ipv4") return true;
40138
40143
  return endpoint.kind === "public" && endpoint.interfaceKind === "public";
40139
40144
  }
@@ -41860,7 +41865,25 @@ var NetworkEndpointSchema = z.object({
41860
41865
  url: z.string(),
41861
41866
  hostname: z.string(),
41862
41867
  port: z.number(),
41863
- protocol: z.enum(["http", "https"])
41868
+ protocol: z.enum(["http", "https"]),
41869
+ /**
41870
+ * Whether this address survives a restart of its provider. `false` = it is
41871
+ * re-issued every time (a Quick tunnel's random `*.trycloudflare.com`); the
41872
+ * hub never selects such an address AUTOMATICALLY for a role (D860), though
41873
+ * it stays visible and an operator may still flag it. Absent = stable: every
41874
+ * provider except a Quick tunnel owns a name that does not change.
41875
+ */
41876
+ stable: z.boolean().optional()
41877
+ });
41878
+ /**
41879
+ * `data` of a `network.tunnel.started` event — what `local-network` (which
41880
+ * tails the bus and cannot import a provider) learns about the new address.
41881
+ */
41882
+ var NetworkTunnelStartedDataSchema = z.object({
41883
+ url: z.string(),
41884
+ /** Mirrors {@link NetworkEndpointSchema} `stable`; absent = stable. */
41885
+ stable: z.boolean().optional(),
41886
+ updated: z.boolean().optional()
41864
41887
  });
41865
41888
  var NetworkAccessStatusSchema = z.object({
41866
41889
  connected: z.boolean(),
@@ -57156,7 +57179,12 @@ var SearchResultSchema = z.object({
57156
57179
  publishedAt: z.string(),
57157
57180
  author: z.string(),
57158
57181
  installed: z.boolean(),
57159
- installedVersion: z.string().optional()
57182
+ installedVersion: z.string().optional(),
57183
+ /**
57184
+ * Capability names the package's addons declare (from its published
57185
+ * manifest). `null` = the registry lookup failed — unknown, never `[]` (D393).
57186
+ */
57187
+ capabilities: z.array(z.string()).readonly().nullable()
57160
57188
  });
57161
57189
  var AutoUpdateSettingsSchema = z.object({
57162
57190
  channel: ChannelSchema,
@@ -57375,7 +57403,11 @@ var addonsCapability = {
57375
57403
  kind: "mutation",
57376
57404
  auth: "admin"
57377
57405
  }),
57378
- searchAvailable: method(z.object({ query: z.string().optional() }), z.array(SearchResultSchema)),
57406
+ searchAvailable: method(z.object({
57407
+ query: z.string().optional(),
57408
+ /** Only packages whose addons declare this capability (unknown ones excluded). */
57409
+ capability: z.string().optional()
57410
+ }), z.array(SearchResultSchema)),
57379
57411
  /**
57380
57412
  * Available package updates for a node. `nodeId` omitted (or
57381
57413
  * `'hub'`) checks the hub's own installed packages; an agent
@@ -61482,7 +61514,13 @@ var ConnectionEndpointSchema = z.object({
61482
61514
  * calls so the client can sort even if the cap returns a new
61483
61515
  * ordering between polls.
61484
61516
  */
61485
- priority: z.number()
61517
+ priority: z.number(),
61518
+ /**
61519
+ * `false` = the address changes on its own (a Quick tunnel, re-issued on
61520
+ * every respawn). Automatic role resolution skips it (D860); an explicit
61521
+ * operator flag still honours it. Absent = stable.
61522
+ */
61523
+ stable: z.boolean().optional()
61486
61524
  });
61487
61525
  /**
61488
61526
  * Where the advertised local port came from. Ordered most → least
@@ -85545,4 +85583,4 @@ function enumerateInferenceDevices(hw) {
85545
85583
  return out;
85546
85584
  }
85547
85585
  //#endregion
85548
- export { addonWidgetsCapability as $, validateCustomAddress as $n, parseJsonObject as $r, isVoidInput as $t, FieldClaimModeSchema as A, resolveBucketMs as An, asJsonObject as Ar, deviceExtensionCapability as At, RECORDING_SOURCE_CAMSTACK_ADDON as B, scoreRuntimes as Bn, emitReadiness as Br, expressionContainsBuiltinCall as Bt, DEVICE_ENROLLMENT_TTL_MS as C, planComposition as Cn, DEVICE_STATUS_METHOD as Cr, databaseSnapshotCapability as Ct, DeclaredDevices as D, reducePoints as Dn, ReadinessTimeoutError as Dr, deriveBatteryPresence as Dt, DEVICE_SAN_USER_PREFIX as E, ptzAutotrackCapability as En, ReadinessRegistry as Er, defineExtensionSlotProvider as Et, LOG_LEVEL_RANK as F, resolveMethodAuth as Fn, collectZodSecretPaths as Fr, enumerateItemArrayFields as Ft, SsoBridgeClaimsSchema as G, storageMigrationCapability as Gn, isEvent as Gr, formatMinutes as Gt, STORAGE_ACCESS_FALLBACK as H, siteZoneKey as Hn, formatSecretScope as Hr, filesystemBrowseCapability as Ht, LegacyStorageLocationDefaultSchema as I, resolveNotificationTapAddress as In, createEvent as Ir, enumerateSchemaFields as It, StorageLocationTypeSchema as J, streamCatalogCapability as Jn, isSecretMarker as Jr, isArrayOutputSchema as Jt, StorageCleanupJobSchema as K, storageOccupancyCapability as Kn, isKeychainStoredField as Kr, gbToBytes as Kt, METHOD_ACCESS_MAP as L, runtimeStatePolicyFor as Ln, customAction as Lr, evaluateCompositionField as Lt, HUB_MDNS_SERVICE_TYPE as M, resolveCoreBlockFiles as Mn, asString$1 as Mr, deviceStateCapability as Mt, HUB_MDNS_TXT_KEYS as N, resolveHubAddressRoles as Nn, buildSecretRef as Nr, deviceStatusCapability as Nt, DeviceStatusSchema as O, replacedFieldKeys as On, SECRET_CLEAR as Or, describeComposableCaps as Ot, KEYCHAIN_RESET_TRIGGER_ACTOR as P, resolveLocationMode as Pn, collectSecretConfigKeys as Pr, enumerateInferenceDevices as Pt, addonSettingsCapability as Q, validateComposition as Qn, normalizeSecretOwner as Qr, isObjectInput as Qt, MINUTES_PER_DAY as R, scopesAllowAddon as Rn, defineCustomActions as Rr, evictionPolicyOfLocation as Rt, DERIVED_CAMERA_SILENCED_CAP_NAMES as S, pickAppLinkHub as Sn, DEVICE_SETTINGS_CONTRIBUTION_METHODS as Sr, dataStoreProviderCapability as St, DEVICE_SAN_CREDENTIAL_PREFIX as T, procedureAuthKey as Tn, RUNTIME_DEFAULTS as Tr, decodeVectorBase64 as Tt, STREAM_PROFILE_META as U, snapshotCapability as Un, hydrateSchema as Ur, foldSnapshotByFunction as Ut, RecordingStatusSchema as V, settingsStoreCapability as Vn, expandCapMethods as Vr, extractNestedAddonId as Vt, ScopedTokenSchema as W, storageCapability as Wn, isDeviceConfigCap as Wr, formatDeviceRevoker as Wt, UserRecordSchema as X, supportedRuntimes as Xn, makeSecretMarker as Xr, isDefaultAppConnectionEndpoint as Xt, StorageMigrationJobSchema as Y, streamQualityLabel as Yn, isSecretMarkerLike as Yr, isCollectionArrayMethod as Yt, addonPagesCapability as Z, userManagementCapability as Zn, nodePin as Zr, isLocationEnabled as Zt, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as _, normalizeCoreBlockWrite as _n, DeviceRole as _r, coreBlockComposition as _t, ApiKeyRecordSchema as a, scopeKey as ai, lifecycleJobSchema as an, buildFfmpegArgs as ar, buildCapabilityLookup as at, DATA_STORE_DATABASES as b, objectInputDeclaresRequiredDeviceId as bn, BaseAddon as br, coreBlocksCapability as bt, CAMERA_SWITCH_ORDER as c, sleep as ci, logDestinationCapability as cn, composedDeviceStableId as cr, buildStreamParamsConfigSchema as ct, COMPOSED_ITEM_FIXED_FIELDS as d, transformSecretWrite as di, mayReadLocation as dn, compositionSliceKey as dr, canonicalIconKey as dt, parseJsonUnknown as ei, kebabToCamel as en, vectorDimFromBase64 as er, alertsCapability as et, COMPOSER_RUNNER_ID as f, EventCategory as fi, mayWriteToLocation as fn, compositionSourceKey as fr, checkRoleAddress as ft, CoreBlockSchema as g, motionCapability as gn, DeviceFeature as gr, coreBlockAddonId as gt, CalendarPreferencesSchema as h, modeMayWrite as hn, toExpressionValue as hr, compositionSourceRefs as ht, AlertSchema as i, resolveSecretMarkers as ii, legacyModeOf as in, COMPOSER_ADDON_ID as ir, batteryCapability as it, FieldClaimSchema as j, resolveCoreBlockEntry as jn, asNumber as jr, deviceManagerCapability as jt, FIRST_LEVEL_MACRO_CLASSES as k, resolveAppConnections as kn, WELL_KNOWN_TAB_MAP as kr, deviceCredentialsCapability as kt, CAMSTACK_APP_LINK_ORIGIN as l, toNodeId as li, logLevelAtMost as ln, compositionFeatureEnabled as lr, calendarsCapability as lt, CORE_BLOCK_ADDON_PREFIX as m, metricsProviderCapability as mn, disarmRoseMemory as mr, compositionFieldKey as mt, AGENT_MDNS_TXT_KEYS as n, readinessKey as ni, keychainCapability as nn, vectorStoreCapability as nr, backupCapability as nt, BaseDevice as o, secretTreeFromPaths as oi, localNetworkCapability as on, cloneStatefulExpressionMemory as or, buildDeviceEnrollmentLink as ot, CORE_BLOCKS_ADDON_ID as p, memoizePinnedFfmpeg as pn, createStatefulExpressionMemory as pr, composerCapability as pt, StorageLocationModeSchema as q, storageProviderCapability as qn, isSecretClear as qr, isAppLinkBase as qt, ALL_CAPABILITY_DEFINITIONS as r, resolveCapMount as ri, legacyAutoLinkIds as rn, withLocationMode as rr, bareAddonId as rt, BatteryStatusSchema as s, secretTreeFromSchema as si, locationIconKey as sn, composedDeviceRef as sr, buildDeviceSignatureMessage as st, AGENT_MDNS_SERVICE_TYPE as t, parseSecretRef as ti, keychainAdminCapability as tn, vectorIndexDimConflictError as tr, authProviderCapability as tt, CAP_NAMES_WITH_STATUS as u, toSecretFieldView as ui, looseSchema as un, compositionItemFieldPath as ur, cameraGridLayoutCapability as ut, DATABASE_SNAPSHOT_SUFFIX as v, normalizeUnit as vn, DeviceType as vr, coreBlockIdFromAddonId as vt, DEVICE_NONCE_TTL_MS as w, platformProbeCapability as wn, REDACTED_SECRET as wr, declarationOwnerNodeId as wt, DAY_NAMES as x, parseStreamParamsFormPatch as xn, DATAPLANE_SECRET_HEADER as xr, createDeviceExtensionProvider as xt, DATABASE_SNAPSHOT_TIMEOUT_MS as y, objectInputDeclaresAddonId as yn, errMsg as yr, coreBlockSourceKind as yt, MOTION_CLOSE_AFTER_MS as z, scopesAllowDeviceCap as zn, emitDownForOwnedCaps as zr, expandContainer as zt };
85586
+ export { addonSettingsCapability as $, validateComposition as $n, normalizeSecretOwner as $r, isObjectInput as $t, FieldClaimModeSchema as A, resolveAppConnections as An, WELL_KNOWN_TAB_MAP as Ar, deviceCredentialsCapability as At, NetworkTunnelStartedDataSchema as B, scopesAllowDeviceCap as Bn, emitDownForOwnedCaps as Br, expandContainer as Bt, DEVICE_ENROLLMENT_TTL_MS as C, pickAppLinkHub as Cn, DEVICE_SETTINGS_CONTRIBUTION_METHODS as Cr, dataStoreProviderCapability as Ct, DeclaredDevices as D, ptzAutotrackCapability as Dn, ReadinessRegistry as Dr, defineExtensionSlotProvider as Dt, DEVICE_SAN_USER_PREFIX as E, procedureAuthKey as En, RUNTIME_DEFAULTS as Er, decodeVectorBase64 as Et, LOG_LEVEL_RANK as F, resolveLocationMode as Fn, collectSecretConfigKeys as Fr, enumerateInferenceDevices as Ft, ScopedTokenSchema as G, storageCapability as Gn, isDeviceConfigCap as Gr, formatDeviceRevoker as Gt, RecordingStatusSchema as H, settingsStoreCapability as Hn, expandCapMethods as Hr, extractNestedAddonId as Ht, LegacyStorageLocationDefaultSchema as I, resolveMethodAuth as In, collectZodSecretPaths as Ir, enumerateItemArrayFields as It, StorageLocationModeSchema as J, storageProviderCapability as Jn, isSecretClear as Jr, isAppLinkBase as Jt, SsoBridgeClaimsSchema as K, storageMigrationCapability as Kn, isEvent as Kr, formatMinutes as Kt, METHOD_ACCESS_MAP as L, resolveNotificationTapAddress as Ln, createEvent as Lr, enumerateSchemaFields as Lt, HUB_MDNS_SERVICE_TYPE as M, resolveCoreBlockEntry as Mn, asNumber as Mr, deviceManagerCapability as Mt, HUB_MDNS_TXT_KEYS as N, resolveCoreBlockFiles as Nn, asString$1 as Nr, deviceStateCapability as Nt, DeviceStatusSchema as O, reducePoints as On, ReadinessTimeoutError as Or, deriveBatteryPresence as Ot, KEYCHAIN_RESET_TRIGGER_ACTOR as P, resolveHubAddressRoles as Pn, buildSecretRef as Pr, deviceStatusCapability as Pt, addonPagesCapability as Q, userManagementCapability as Qn, nodePin as Qr, isLocationEnabled as Qt, MINUTES_PER_DAY as R, runtimeStatePolicyFor as Rn, customAction as Rr, evaluateCompositionField as Rt, DERIVED_CAMERA_SILENCED_CAP_NAMES as S, parseStreamParamsFormPatch as Sn, DATAPLANE_SECRET_HEADER as Sr, createDeviceExtensionProvider as St, DEVICE_SAN_CREDENTIAL_PREFIX as T, platformProbeCapability as Tn, REDACTED_SECRET as Tr, declarationOwnerNodeId as Tt, STORAGE_ACCESS_FALLBACK as U, siteZoneKey as Un, formatSecretScope as Ur, filesystemBrowseCapability as Ut, RECORDING_SOURCE_CAMSTACK_ADDON as V, scoreRuntimes as Vn, emitReadiness as Vr, expressionContainsBuiltinCall as Vt, STREAM_PROFILE_META as W, snapshotCapability as Wn, hydrateSchema as Wr, foldSnapshotByFunction as Wt, StorageMigrationJobSchema as X, streamQualityLabel as Xn, isSecretMarkerLike as Xr, isCollectionArrayMethod as Xt, StorageLocationTypeSchema as Y, streamCatalogCapability as Yn, isSecretMarker as Yr, isArrayOutputSchema as Yt, UserRecordSchema as Z, supportedRuntimes as Zn, makeSecretMarker as Zr, isDefaultAppConnectionEndpoint as Zt, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as _, motionCapability as _n, DeviceFeature as _r, coreBlockAddonId as _t, ApiKeyRecordSchema as a, resolveSecretMarkers as ai, legacyModeOf as an, COMPOSER_ADDON_ID as ar, batteryCapability as at, DATA_STORE_DATABASES as b, objectInputDeclaresAddonId as bn, errMsg as br, coreBlockSourceKind as bt, CAMERA_SWITCH_ORDER as c, secretTreeFromSchema as ci, locationIconKey as cn, composedDeviceRef as cr, buildDeviceSignatureMessage as ct, COMPOSED_ITEM_FIXED_FIELDS as d, toSecretFieldView as di, looseSchema as dn, compositionItemFieldPath as dr, cameraGridLayoutCapability as dt, parseJsonObject as ei, isVoidInput as en, validateCustomAddress as er, addonWidgetsCapability as et, COMPOSER_RUNNER_ID as f, transformSecretWrite as fi, mayReadLocation as fn, compositionSliceKey as fr, canonicalIconKey as ft, CoreBlockSchema as g, modeMayWrite as gn, toExpressionValue as gr, compositionSourceRefs as gt, CalendarPreferencesSchema as h, metricsProviderCapability as hn, disarmRoseMemory as hr, compositionFieldKey as ht, AlertSchema as i, resolveCapMount as ii, legacyAutoLinkIds as in, withLocationMode as ir, bareAddonId as it, FieldClaimSchema as j, resolveBucketMs as jn, asJsonObject as jr, deviceExtensionCapability as jt, FIRST_LEVEL_MACRO_CLASSES as k, replacedFieldKeys as kn, SECRET_CLEAR as kr, describeComposableCaps as kt, CAMSTACK_APP_LINK_ORIGIN as l, sleep as li, logDestinationCapability as ln, composedDeviceStableId as lr, buildStreamParamsConfigSchema as lt, CORE_BLOCK_ADDON_PREFIX as m, memoizePinnedFfmpeg as mn, createStatefulExpressionMemory as mr, composerCapability as mt, AGENT_MDNS_TXT_KEYS as n, parseSecretRef as ni, keychainAdminCapability as nn, vectorIndexDimConflictError as nr, authProviderCapability as nt, BaseDevice as o, scopeKey as oi, lifecycleJobSchema as on, buildFfmpegArgs as or, buildCapabilityLookup as ot, CORE_BLOCKS_ADDON_ID as p, EventCategory as pi, mayWriteToLocation as pn, compositionSourceKey as pr, checkRoleAddress as pt, StorageCleanupJobSchema as q, storageOccupancyCapability as qn, isKeychainStoredField as qr, gbToBytes as qt, ALL_CAPABILITY_DEFINITIONS as r, readinessKey as ri, keychainCapability as rn, vectorStoreCapability as rr, backupCapability as rt, BatteryStatusSchema as s, secretTreeFromPaths as si, localNetworkCapability as sn, cloneStatefulExpressionMemory as sr, buildDeviceEnrollmentLink as st, AGENT_MDNS_SERVICE_TYPE as t, parseJsonUnknown as ti, kebabToCamel as tn, vectorDimFromBase64 as tr, alertsCapability as tt, CAP_NAMES_WITH_STATUS as u, toNodeId as ui, logLevelAtMost as un, compositionFeatureEnabled as ur, calendarsCapability as ut, DATABASE_SNAPSHOT_SUFFIX as v, normalizeCoreBlockWrite as vn, DeviceRole as vr, coreBlockComposition as vt, DEVICE_NONCE_TTL_MS as w, planComposition as wn, DEVICE_STATUS_METHOD as wr, databaseSnapshotCapability as wt, DAY_NAMES as x, objectInputDeclaresRequiredDeviceId as xn, BaseAddon as xr, coreBlocksCapability as xt, DATABASE_SNAPSHOT_TIMEOUT_MS as y, normalizeUnit as yn, DeviceType as yr, coreBlockIdFromAddonId as yt, MOTION_CLOSE_AFTER_MS as z, scopesAllowAddon as zn, defineCustomActions as zr, evictionPolicyOfLocation as zt };
@@ -39976,10 +39976,14 @@ function isLanIpv4Literal(endpoint) {
39976
39976
  const host = hostnameOf(endpoint.baseUrl);
39977
39977
  return host !== null && IPV4_LITERAL.test(host);
39978
39978
  }
39979
+ function isUnstable(endpoint) {
39980
+ return endpoint.stable === false;
39981
+ }
39979
39982
  /** Lower = better; `null` = never this role's AUTOMATIC answer. */
39980
39983
  function autoRankFor(role, endpoint) {
39981
39984
  if (endpoint.kind === "loopback" || endpoint.kind === "app-link" || endpoint.kind === "custom") return null;
39982
39985
  if (hostnameOf(endpoint.baseUrl) === null) return null;
39986
+ if (isUnstable(endpoint)) return null;
39983
39987
  if (role === "internal") {
39984
39988
  if (isLanIpv4Literal(endpoint)) return 0;
39985
39989
  if (isPlausibleLan(endpoint)) return 1;
@@ -40134,6 +40138,7 @@ function resolveNotificationTapAddress(flags) {
40134
40138
  }
40135
40139
  /** AUTO app connections: LAN IPv4 + the public tunnel. Never IPv6, mesh, loopback or custom. */
40136
40140
  function isDefaultAppConnectionEndpoint(endpoint) {
40141
+ if (isUnstable(endpoint)) return false;
40137
40142
  if (endpoint.kind === "lan-ipv4") return true;
40138
40143
  return endpoint.kind === "public" && endpoint.interfaceKind === "public";
40139
40144
  }
@@ -41860,7 +41865,25 @@ var NetworkEndpointSchema = zod.z.object({
41860
41865
  url: zod.z.string(),
41861
41866
  hostname: zod.z.string(),
41862
41867
  port: zod.z.number(),
41863
- protocol: zod.z.enum(["http", "https"])
41868
+ protocol: zod.z.enum(["http", "https"]),
41869
+ /**
41870
+ * Whether this address survives a restart of its provider. `false` = it is
41871
+ * re-issued every time (a Quick tunnel's random `*.trycloudflare.com`); the
41872
+ * hub never selects such an address AUTOMATICALLY for a role (D860), though
41873
+ * it stays visible and an operator may still flag it. Absent = stable: every
41874
+ * provider except a Quick tunnel owns a name that does not change.
41875
+ */
41876
+ stable: zod.z.boolean().optional()
41877
+ });
41878
+ /**
41879
+ * `data` of a `network.tunnel.started` event — what `local-network` (which
41880
+ * tails the bus and cannot import a provider) learns about the new address.
41881
+ */
41882
+ var NetworkTunnelStartedDataSchema = zod.z.object({
41883
+ url: zod.z.string(),
41884
+ /** Mirrors {@link NetworkEndpointSchema} `stable`; absent = stable. */
41885
+ stable: zod.z.boolean().optional(),
41886
+ updated: zod.z.boolean().optional()
41864
41887
  });
41865
41888
  var NetworkAccessStatusSchema = zod.z.object({
41866
41889
  connected: zod.z.boolean(),
@@ -57156,7 +57179,12 @@ var SearchResultSchema = zod.z.object({
57156
57179
  publishedAt: zod.z.string(),
57157
57180
  author: zod.z.string(),
57158
57181
  installed: zod.z.boolean(),
57159
- installedVersion: zod.z.string().optional()
57182
+ installedVersion: zod.z.string().optional(),
57183
+ /**
57184
+ * Capability names the package's addons declare (from its published
57185
+ * manifest). `null` = the registry lookup failed — unknown, never `[]` (D393).
57186
+ */
57187
+ capabilities: zod.z.array(zod.z.string()).readonly().nullable()
57160
57188
  });
57161
57189
  var AutoUpdateSettingsSchema = zod.z.object({
57162
57190
  channel: ChannelSchema,
@@ -57375,7 +57403,11 @@ var addonsCapability = {
57375
57403
  kind: "mutation",
57376
57404
  auth: "admin"
57377
57405
  }),
57378
- searchAvailable: method(zod.z.object({ query: zod.z.string().optional() }), zod.z.array(SearchResultSchema)),
57406
+ searchAvailable: method(zod.z.object({
57407
+ query: zod.z.string().optional(),
57408
+ /** Only packages whose addons declare this capability (unknown ones excluded). */
57409
+ capability: zod.z.string().optional()
57410
+ }), zod.z.array(SearchResultSchema)),
57379
57411
  /**
57380
57412
  * Available package updates for a node. `nodeId` omitted (or
57381
57413
  * `'hub'`) checks the hub's own installed packages; an agent
@@ -61482,7 +61514,13 @@ var ConnectionEndpointSchema = zod.z.object({
61482
61514
  * calls so the client can sort even if the cap returns a new
61483
61515
  * ordering between polls.
61484
61516
  */
61485
- priority: zod.z.number()
61517
+ priority: zod.z.number(),
61518
+ /**
61519
+ * `false` = the address changes on its own (a Quick tunnel, re-issued on
61520
+ * every respawn). Automatic role resolution skips it (D860); an explicit
61521
+ * operator flag still honours it. Absent = stable.
61522
+ */
61523
+ stable: zod.z.boolean().optional()
61486
61524
  });
61487
61525
  /**
61488
61526
  * Where the advertised local port came from. Ordered most → least
@@ -85833,6 +85871,12 @@ Object.defineProperty(exports, "MOTION_CLOSE_AFTER_MS", {
85833
85871
  return MOTION_CLOSE_AFTER_MS;
85834
85872
  }
85835
85873
  });
85874
+ Object.defineProperty(exports, "NetworkTunnelStartedDataSchema", {
85875
+ enumerable: true,
85876
+ get: function() {
85877
+ return NetworkTunnelStartedDataSchema;
85878
+ }
85879
+ });
85836
85880
  Object.defineProperty(exports, "RECORDING_SOURCE_CAMSTACK_ADDON", {
85837
85881
  enumerable: true,
85838
85882
  get: function() {
@@ -1,5 +1,5 @@
1
1
  require("./chunk-Cek0wNdY.js");
2
- const require_wal_maintenance = require("./wal-maintenance-LZYd8iT-.js");
2
+ const require_wal_maintenance = require("./wal-maintenance-D3gwRj1B.js");
3
3
  let node_worker_threads = require("node:worker_threads");
4
4
  //#region src/builtins/sqlite-storage/file-host-worker.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-DgLLPK14.mjs";
1
+ import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-DLrbapzi.mjs";
2
2
  import { parentPort, threadId, workerData } from "node:worker_threads";
3
3
  //#region src/builtins/sqlite-storage/file-host-worker.ts
4
4
  /**
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-CCH3XPqO.js");
4
- const require_device_ca = require("./device-ca-D21ZP00q.js");
3
+ const require_dist = require("./dist-CnUtkSwN.js");
4
+ const require_device_ca = require("./device-ca-WXuKc8AX.js");
5
5
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
6
6
  require("./builtins/alerts/index.js");
7
7
  const require_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
@@ -22,13 +22,13 @@ require("./builtins/local-auth/index.js");
22
22
  const require_builtins_loki_logging_index = require("./builtins/loki-logging/index.js");
23
23
  const require_builtins_native_metrics_native_metrics_addon = require("./builtins/native-metrics/native-metrics.addon.js");
24
24
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
25
- const require_wal_maintenance = require("./wal-maintenance-LZYd8iT-.js");
25
+ const require_wal_maintenance = require("./wal-maintenance-D3gwRj1B.js");
26
26
  const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtins/sqlite-storage/sqlite-settings.addon.js");
27
27
  const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage/index.js");
28
28
  const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
29
29
  require("./builtins/storage-orchestrator/index.js");
30
30
  const require_agent_https = require("./agent-https-BZIwS4xF.js");
31
- const require_constants = require("./constants-CuOfMdYe.js");
31
+ const require_constants = require("./constants-DL87WgeN.js");
32
32
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
33
33
  require("./builtins/system-config/index.js");
34
34
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
@@ -36,7 +36,7 @@ const require_custom_action_registry = require("./custom-action-registry-Bf_Ynag
36
36
  const require_hub_mdns_ciao = require("./hub-mdns-ciao-CBLvq2oj.js");
37
37
  const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
38
38
  const require_resource_monitor = require("./resource-monitor-mio9dSCT.js");
39
- const require_restore_archive = require("./restore-archive-Do0QwAik.js");
39
+ const require_restore_archive = require("./restore-archive-BNoFLAg8.js");
40
40
  let zod = require("zod");
41
41
  let node_crypto = require("node:crypto");
42
42
  node_crypto = require_chunk.__toESM(node_crypto);
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { i as __require } from "./chunk-CNf5ZN-e.mjs";
2
- import { $r as parseJsonObject, $t as isVoidInput, Ar as asJsonObject$1, Cr as DEVICE_STATUS_METHOD, Dr as ReadinessTimeoutError, Er as ReadinessRegistry, F as LOG_LEVEL_RANK, Fn as resolveMethodAuth, Ir as createEvent$1, Jt as isArrayOutputSchema, L as METHOD_ACCESS_MAP, Mr as asString$1, Q as addonSettingsCapability, Qt as isObjectInput, Rn as scopesAllowAddon, Sr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Tn as procedureAuthKey, Tr as RUNTIME_DEFAULTS, Vr as expandCapMethods, Vt as extractNestedAddonId, Xn as supportedRuntimes, Yt as isCollectionArrayMethod, ai as scopeKey, an as lifecycleJobSchema, bn as objectInputDeclaresRequiredDeviceId, ei as parseJsonUnknown, en as kebabToCamel$1, fi as EventCategory$1, jr as asNumber, ln as logLevelAtMost, n as AGENT_MDNS_TXT_KEYS, ni as readinessKey, r as ALL_CAPABILITY_DEFINITIONS, ri as resolveCapMount, t as AGENT_MDNS_SERVICE_TYPE, un as looseSchema, xr as DATAPLANE_SECRET_HEADER$1, yn as objectInputDeclaresAddonId, yr as errMsg$1, zn as scopesAllowDeviceCap, zr as emitDownForOwnedCaps } from "./dist-CYcBqnXk.mjs";
3
- import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-CDjGQQPd.mjs";
2
+ import { $ as addonSettingsCapability, $t as isObjectInput, Bn as scopesAllowDeviceCap, Br as emitDownForOwnedCaps, Cr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Dr as ReadinessRegistry, En as procedureAuthKey, Er as RUNTIME_DEFAULTS, F as LOG_LEVEL_RANK, Hr as expandCapMethods, Ht as extractNestedAddonId, In as resolveMethodAuth, L as METHOD_ACCESS_MAP, Lr as createEvent$1, Mr as asNumber, Nr as asString$1, Or as ReadinessTimeoutError, Sr as DATAPLANE_SECRET_HEADER$1, Xt as isCollectionArrayMethod, Yt as isArrayOutputSchema, Zn as supportedRuntimes, bn as objectInputDeclaresAddonId, br as errMsg$1, dn as looseSchema, ei as parseJsonObject, en as isVoidInput, ii as resolveCapMount, jr as asJsonObject$1, n as AGENT_MDNS_TXT_KEYS, oi as scopeKey, on as lifecycleJobSchema, pi as EventCategory$1, r as ALL_CAPABILITY_DEFINITIONS, ri as readinessKey, t as AGENT_MDNS_SERVICE_TYPE, ti as parseJsonUnknown, tn as kebabToCamel$1, un as logLevelAtMost, wr as DEVICE_STATUS_METHOD, xn as objectInputDeclaresRequiredDeviceId, zn as scopesAllowAddon } from "./dist-Bz4_y8Xy.mjs";
3
+ import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-B6YJZus6.mjs";
4
4
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
5
5
  import "./builtins/alerts/index.mjs";
6
6
  import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
@@ -21,13 +21,13 @@ import "./builtins/local-auth/index.mjs";
21
21
  import { LokiDestination, LokiLoggingAddon } from "./builtins/loki-logging/index.mjs";
22
22
  import NativeMetricsAddon, { a as NativeMetricsProvider, n as nodeProcReader, r as parseProcStat } from "./builtins/native-metrics/native-metrics.addon.mjs";
23
23
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
24
- import { c as SqliteSettingsBackend, l as prefixRange } from "./wal-maintenance-DgLLPK14.mjs";
24
+ import { c as SqliteSettingsBackend, l as prefixRange } from "./wal-maintenance-DLrbapzi.mjs";
25
25
  import { SqliteSettingsAddon } from "./builtins/sqlite-storage/sqlite-settings.addon.mjs";
26
26
  import { ConfigStore, DeviceStore } from "./builtins/sqlite-storage/index.mjs";
27
27
  import { StorageOrchestratorAddon, a as stripForwardedCaller, i as createHubCapForwardService, n as HUB_CAP_FWD_ACTION, o as buildStorageLocationRegistry, r as HUB_CAP_FWD_SERVICE, t as StorageOrchestratorService } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
28
28
  import "./builtins/storage-orchestrator/index.mjs";
29
29
  import { A as AgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, M as setProcessAgentHttpsNames, O as AGENT_HTTPS_NAMES_COLLECTION, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as isPrivateAddress, f as issueAgentHttpsLeaf, g as CA_COMMON_NAME, h as pinnedHttpsCaFingerprint, i as certificateNames, j as getProcessAgentHttpsNames, k as AGENT_HTTPS_NAMES_COLUMNS, l as isContainerBridgeAddress, m as pemDigest, n as acceptAgentSans, o as createAgentHttpsRequest, p as loadAgentHttps, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isLocalOnlyHostname, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts } from "./agent-https-B8lKYVtU.mjs";
30
- import { _ as getProcessClusterSecretGate, a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, d as CLUSTER_SECRET_REF, f as CLUSTER_SECRET_REJECTED_EXIT_CODE, g as clusterSecretMatches, h as checkClusterSecret, i as MESH_CA_FIELD, m as CLUSTER_SECRET_UNAVAILABLE_TYPE, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, p as CLUSTER_SECRET_SETTINGS_KEY, u as CLUSTER_SECRET_MISMATCH_TYPE, v as hashClusterSecret, y as isClusterSecretMismatchError } from "./constants-CrMPWOug.mjs";
30
+ import { _ as getProcessClusterSecretGate, a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, d as CLUSTER_SECRET_REF, f as CLUSTER_SECRET_REJECTED_EXIT_CODE, g as clusterSecretMatches, h as checkClusterSecret, i as MESH_CA_FIELD, m as CLUSTER_SECRET_UNAVAILABLE_TYPE, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, p as CLUSTER_SECRET_SETTINGS_KEY, u as CLUSTER_SECRET_MISMATCH_TYPE, v as hashClusterSecret, y as isClusterSecretMismatchError } from "./constants-DoiTA134.mjs";
31
31
  import { $ as requireProcessMeshCa, A as dropProcessPeer, At as setProcessMeshAuthStatusSource, B as openMeshTlsWhenRevocationsLoaded, C as Transporters, Ct as MESH_AUTH_MODE_FIELD, D as mintMeshJoinToken, Dt as parseMeshAuthMode, E as JoinTokenJtiStore, Et as isMeshAuthMode, F as onProcessNodeRegistered, Ft as readCidrSetting, G as RENEWAL_ABANDONED, H as MESH_NODE_CERTIFICATES_COLLECTION, I as setProcessMeshPeerTransportLookup, J as setProcessMeshCertificateRegistry, K as describeMeshLeaf, L as renewMeshCertificate, M as getProcessNodeMeshTransport, Mt as createCidrMatcher, N as getProcessPeerLeaf, Nt as normalizeIp, O as processJoinTokenJtiStore, Ot as requestProcessMeshEnforcement, P as isProcessVerifiedMeshPeer, Pt as parseCidrList, Q as getProcessMeshCaState, R as revokeMeshCertificate, S as ServiceBroker, St as verifyAgentUiUnlockTicketEs256, SystemConfigAddon, T as enrollMeshNode, Tt as getProcessMeshAuthStatus, U as MESH_NODE_CERTIFICATES_COLUMNS, V as setProcessMeshTlsListenerState, W as MeshCertificateRegistry, X as processMeshCrl, Y as MeshCrl, Z as MeshCaKeeper, _ as signPairingProof, _t as isAllowedAgentDashboardReturnTo, a as hubHostFromMeshAddress, at as generateMeshKeyPair, b as TlsTcpTransporter, bt as parseAgentDashboardOrigins, c as PAIRING_MAX_SESSIONS, ct as issueMeshLeafFromCsr, d as PAIRING_PROTOCOL, dt as AGENT_UI_UNLOCK_DOMAIN, et as caFingerprint, f as PAIRING_TTL_MS, ft as AGENT_UI_UNLOCK_TTL_MS, g as keyFingerprintShort, gt as UnlockTicketJtiStore, h as describeCsr, ht as AGENT_UI_UNLOCK_VERSION, i as AgentPairing, it as generateMeshCa, j as emitProcessNodeRegistered, jt as setProcessMeshEnforcer, k as verifyMeshJoinToken, kt as setProcessMeshAuthMode, l as PAIRING_PATHS, lt as loadMeshCa, m as computePairingSas, mt as AGENT_UI_UNLOCK_USE, n as HubPairing, nt as createMeshCsrPem, o as PAIRING_CODE_DIGITS, ot as isValidAgentNodeId, p as computePairingCommitment, pt as AGENT_UI_UNLOCK_TYP, q as getProcessMeshCertificateRegistry, r as PairingHttpError, rt as exportMeshPrivateKeyPem, s as PAIRING_MAX_CODE_ATTEMPTS, st as issueMeshLeafForNode, tt as caFingerprintCompact, u as PAIRING_PIN_DIGITS, ut as AGENT_DASHBOARD_ORIGINS_FIELD, v as verifyPairingProof, vt as mintAgentUiUnlockTicket, w as setProcessMeshTlsEnabler, wt as getProcessMeshAuthMode, x as Errors, xt as verifyAgentUiUnlockTicket, y as MESH_TLS_PORT_HELLO_FIELD, yt as mintAgentUiUnlockTicketEs256, z as getProcessMeshTlsListenerState } from "./builtins/system-config/system-config.addon.mjs";
32
32
  import "./builtins/system-config/index.mjs";
33
33
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
@@ -35,7 +35,7 @@ import { C as isModelDownloaded, T as revisionWeightUrl, _ as downloadFile, a as
35
35
  import { C as DEFAULT_LAN_HTTP_PORT, D as closeLanHttp, E as bindPendingLanHttp, O as readLanHttpState, S as reissueTlsLeaf, T as applyLanHttp, _ as splitPemCertificates, a as storeUploadedCertificate, b as ensureTlsCert, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, k as registerLanHttpHandler, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as validateUploadedTls, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as allFamiliesListenHost, x as loadTlsCert, y as writeTlsMode } from "./hub-mdns-ciao-DJRwtlA8.mjs";
36
36
  import { n as getPlatformKeychainKey, r as setPlatformKeychainKey, t as clearPlatformKeychainKey } from "./platform-key-source-BWlq0jjn.mjs";
37
37
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Di9daRwI.mjs";
38
- import { c as BackupDecryptError, f as generateBackupKeyPair, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-5ml7uYMf.mjs";
38
+ import { c as BackupDecryptError, f as generateBackupKeyPair, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-DJYuznWP.mjs";
39
39
  import { z } from "zod";
40
40
  import * as crypto$1 from "node:crypto";
41
41
  import { createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-CCH3XPqO.js");
2
+ const require_dist = require("./dist-CnUtkSwN.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let buffer = require("buffer");
5
5
  let node_fs_promises = require("node:fs/promises");
@@ -1,4 +1,4 @@
1
- import { v as DATABASE_SNAPSHOT_SUFFIX } from "./dist-CYcBqnXk.mjs";
1
+ import { v as DATABASE_SNAPSHOT_SUFFIX } from "./dist-Bz4_y8Xy.mjs";
2
2
  import { createCipheriv, createDecipheriv, createHash, createPrivateKey, createPublicKey, diffieHellman, generateKeyPairSync, hkdfSync, randomBytes } from "node:crypto";
3
3
  import { Buffer as Buffer$1 } from "buffer";
4
4
  import * as fsp from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { Ar as asJsonObject } from "./dist-CYcBqnXk.mjs";
1
+ import { jr as asJsonObject } from "./dist-Bz4_y8Xy.mjs";
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CCH3XPqO.js");
1
+ const require_dist = require("./dist-CnUtkSwN.js");
2
2
  //#region src/builtins/sqlite-storage/retired-settings-keys.ts
3
3
  /**
4
4
  * Is THIS node the one whose settings store is the cluster's authority?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/system",
3
- "version": "1.2.434",
3
+ "version": "1.2.435",
4
4
  "description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
5
5
  "keywords": [
6
6
  "camstack",