@camstack/system 1.2.461 → 1.2.462

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 (104) hide show
  1. package/dist/addon-runner.js +21 -276
  2. package/dist/addon-runner.mjs +21 -276
  3. package/dist/{agent-https-Dnr_nIVx.js → agent-https-C6M6apPV.js} +1 -1
  4. package/dist/{agent-https-Iw3RSQup.mjs → agent-https-CC7jpktS.mjs} +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/autotrack/index.js +1 -1
  12. package/dist/builtins/autotrack/index.mjs +1 -1
  13. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +1 -3
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +51 -502
  15. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +51 -502
  16. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +5 -21
  17. package/dist/builtins/backup-orchestrator/record-kinds.d.ts +0 -2
  18. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +5 -13
  19. package/dist/builtins/backup-orchestrator/seed-marker-store.d.ts +9 -19
  20. package/dist/builtins/calendars/calendars.addon.js +1 -1
  21. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  22. package/dist/builtins/camera-grid/index.js +1 -1
  23. package/dist/builtins/camera-grid/index.mjs +1 -1
  24. package/dist/builtins/cluster-agent/record-kinds.d.ts +0 -1
  25. package/dist/builtins/composer/composer.addon.js +2 -2
  26. package/dist/builtins/composer/composer.addon.mjs +2 -2
  27. package/dist/builtins/console-logging/index.js +1 -1
  28. package/dist/builtins/console-logging/index.mjs +1 -1
  29. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  30. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  31. package/dist/builtins/device-history/device-history.addon.js +1 -1
  32. package/dist/builtins/device-history/device-history.addon.mjs +1 -1
  33. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  34. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  35. package/dist/builtins/hub-forwarder/index.js +1 -1
  36. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  37. package/dist/builtins/keychain/index.js +3 -3
  38. package/dist/builtins/keychain/index.mjs +3 -3
  39. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  40. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  41. package/dist/builtins/local-auth/auth-schema.d.ts +2 -12
  42. package/dist/builtins/local-auth/local-auth.addon.js +52 -191
  43. package/dist/builtins/local-auth/local-auth.addon.mjs +52 -191
  44. package/dist/builtins/local-auth/oauth-session-manager.d.ts +13 -4
  45. package/dist/builtins/local-auth/record-kinds.d.ts +1 -1
  46. package/dist/builtins/local-network/local-network.addon.js +2 -2
  47. package/dist/builtins/local-network/local-network.addon.mjs +2 -2
  48. package/dist/builtins/loki-logging/index.js +1 -1
  49. package/dist/builtins/loki-logging/index.mjs +1 -1
  50. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  51. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  52. package/dist/builtins/platform-probe/index.js +1 -1
  53. package/dist/builtins/platform-probe/index.mjs +1 -1
  54. package/dist/builtins/record-entries/index.js +1 -1
  55. package/dist/builtins/record-entries/index.mjs +1 -1
  56. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  57. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  58. package/dist/builtins/snapshot/index.js +1 -1
  59. package/dist/builtins/snapshot/index.mjs +1 -1
  60. package/dist/builtins/sqlite-storage/file-host-protocol.d.ts +0 -9
  61. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  62. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  63. package/dist/builtins/sqlite-storage/index.js +1 -1
  64. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  65. package/dist/builtins/sqlite-storage/owned-sqlite-file.d.ts +0 -8
  66. package/dist/builtins/sqlite-storage/records/records-sql.d.ts +0 -2
  67. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +0 -28
  68. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +1 -2
  69. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +6 -170
  70. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +6 -170
  71. package/dist/builtins/sqlite-storage/storage-admin-provider.d.ts +3 -17
  72. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  73. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  74. package/dist/builtins/system-config/system-config.addon.js +3 -3
  75. package/dist/builtins/system-config/system-config.addon.mjs +280 -280
  76. package/dist/builtins/winston-logging/index.js +1 -1
  77. package/dist/builtins/winston-logging/index.mjs +1 -1
  78. package/dist/{composition-sources-b0e_2I-D.js → composition-sources-BPnpB9XG.js} +1 -1
  79. package/dist/{composition-sources-DNRZWR1j.mjs → composition-sources-BlcYzFwY.mjs} +1 -1
  80. package/dist/{constants-6OeJiZgi.js → constants-7ZMxWr8Z.js} +1 -1
  81. package/dist/{constants-BnkOdj9Q.mjs → constants-CH5UXe_G.mjs} +1 -1
  82. package/dist/{device-ca-Bnkw8GyU.mjs → device-ca-BU_gnd-q.mjs} +1 -1
  83. package/dist/{device-ca-CPTDs--d.js → device-ca-CUEx7sti.js} +1 -1
  84. package/dist/{dist-Wy8cTxg6.mjs → dist-8tWIDoWp.mjs} +15 -55
  85. package/dist/{dist-Bn-RNanh.js → dist-Ct-4tTeX.js} +14 -66
  86. package/dist/file-host-worker.js +1 -1
  87. package/dist/file-host-worker.mjs +1 -1
  88. package/dist/{hub-mdns-ciao-CJu0nhla.mjs → hub-mdns-ciao-Cuy7LUdz.mjs} +2 -2
  89. package/dist/{hub-mdns-ciao-CTBTlia4.js → hub-mdns-ciao-DJ-Amqd7.js} +2 -2
  90. package/dist/index.d.ts +1 -1
  91. package/dist/index.js +88 -240
  92. package/dist/index.mjs +89 -236
  93. package/dist/kernel/index.d.ts +0 -1
  94. package/dist/kernel/moleculer/runner-addon-settings.d.ts +1 -6
  95. package/dist/kernel/moleculer/runner-device-settings.d.ts +2 -2
  96. package/dist/{restore-archive-CM23Pq9B.mjs → restore-archive-BDua3jO6.mjs} +78 -78
  97. package/dist/{restore-archive-DM1OBYq4.js → restore-archive-HwOA83v3.js} +1 -1
  98. package/dist/{retired-settings-keys-D_VwZiDt.js → retired-settings-keys-CGUqX-Oz.js} +0 -6
  99. package/dist/{retired-settings-keys-Bhwe4ymb.mjs → retired-settings-keys-C_Kjp-Bj.mjs} +1 -1
  100. package/dist/{wal-maintenance-Bj_MmDkr.mjs → wal-maintenance-BvzVehem.mjs} +0 -0
  101. package/dist/{wal-maintenance-CaJjuLHq.js → wal-maintenance-DBvuVU9s.js} +0 -0
  102. package/package.json +1 -1
  103. package/dist/builtins/sqlite-storage/retired-collections.d.ts +0 -146
  104. package/dist/kernel/legacy-blob-guard.d.ts +0 -63
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { i as __require } from "./chunk-CNf5ZN-e.mjs";
2
- import { An as isVoidInput, Bn as logLevelAtMost, Ca as userError, Ci as ReadinessTimeoutError, Fi as asString$1, Gi as defineRecordKinds, Hi as createEvent$1, In as lifecycleJobSchema, J as METHOD_ACCESS_MAP, Ji as expandCapMethods, K as LOG_LEVEL_RANK, Ki as emitDownForOwnedCaps, Mr as supportedRuntimes, Ni as asJsonObject$1, Pi as asNumber, Si as ReadinessRegistry, Ta as EventCategory$1, Tn as isCollectionArrayMethod, Vn as looseSchema, Xn as objectInputDeclaresAddonId, Zn as objectInputDeclaresRequiredDeviceId, _r as scopesAllowAddon, ai as DATAPLANE_SECRET_HEADER$1, bn as interpolate, bt as addonSettingsCapability, d as CATALOG_LANGS, fa as readinessKey, ga as scopeKey, ii as CALLER_STAMPED_CAPABILITIES$1, jn as kebabToCamel$1, kn as isObjectInput, la as parseJsonObject, ma as resolveCapMount, mn as extractNestedAddonId, mr as resolveMethodAuth, n as AGENT_MDNS_TXT_KEYS, nr as procedureAuthKey, oi as DEVICE_SETTINGS_CONTRIBUTION_METHODS, r as ALL_CAPABILITY_DEFINITIONS, si as DEVICE_STATUS_METHOD, t as AGENT_MDNS_SERVICE_TYPE, ti as errMsg$1, ua as parseJsonUnknown, v as CatalogFileSchema, vr as scopesAllowDeviceCap, wa as withoutCallerStamp, wn as isArrayOutputSchema, wr as splitTranslationRef, xi as RUNTIME_DEFAULTS } from "./dist-Wy8cTxg6.mjs";
2
+ import { $r as errMsg$1, Ar as supportedRuntimes, Bi as createEvent$1, Ca as EventCategory$1, Cn as isCollectionArrayMethod, Dn as isObjectInput, J as METHOD_ACCESS_MAP, Jn as objectInputDeclaresAddonId, K as LOG_LEVEL_RANK, Ki as expandCapMethods, Mi as asNumber, Ni as asString$1, On as isVoidInput, Pn as lifecycleJobSchema, Rn as logLevelAtMost, Sa as withoutCallerStamp, Sn as isArrayOutputSchema, Sr as splitTranslationRef, Ui as defineRecordKinds, Wi as emitDownForOwnedCaps, Yn as objectInputDeclaresRequiredDeviceId, ai as DEVICE_STATUS_METHOD, bi as ReadinessRegistry, ca as parseJsonUnknown, d as CATALOG_LANGS, er as procedureAuthKey, fa as resolveCapMount, fn as extractNestedAddonId, fr as resolveMethodAuth, gr as scopesAllowDeviceCap, hr as scopesAllowAddon, ii as DEVICE_SETTINGS_CONTRIBUTION_METHODS, ji as asJsonObject$1, kn as kebabToCamel$1, ma as scopeKey, n as AGENT_MDNS_TXT_KEYS, ni as CALLER_STAMPED_CAPABILITIES$1, r as ALL_CAPABILITY_DEFINITIONS, ri as DATAPLANE_SECRET_HEADER$1, sa as parseJsonObject, t as AGENT_MDNS_SERVICE_TYPE, ua as readinessKey, v as CatalogFileSchema, vn as interpolate, vt as addonSettingsCapability, xa as userError, xi as ReadinessTimeoutError, yi as RUNTIME_DEFAULTS, zn as looseSchema } from "./dist-8tWIDoWp.mjs";
3
3
  import { t as require_read_all_rows } from "./read-all-rows-TaPqdWNF.mjs";
4
- 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-Bnkw8GyU.mjs";
4
+ 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-BU_gnd-q.mjs";
5
5
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
6
6
  import "./builtins/alerts/index.mjs";
7
7
  import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
@@ -10,11 +10,9 @@ import { ComposerAddon } from "./builtins/composer/composer.addon.mjs";
10
10
  import "./builtins/composer/index.mjs";
11
11
  import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
12
12
  import { ConsoleDestination, ConsoleLoggingAddon } from "./builtins/console-logging/index.mjs";
13
- import { t as prefixRange } from "./prefix-range-Dl0znowN.mjs";
14
13
  import { t as loadPrefixed } from "./prefix-walk-DAOBSyH1.mjs";
15
14
  import { CoreBlocksAddon, o as createAddonSettingsStore } from "./builtins/core-blocks/core-blocks.addon.mjs";
16
15
  import "./builtins/core-blocks/index.mjs";
17
- import { t as RETIRED_SETTINGS_KEYS } from "./retired-settings-keys-Bhwe4ymb.mjs";
18
16
  import { DeviceManagerAddon, n as readDeviceOrThrow, r as setWrapperActive, t as createDeviceSettingsStore } from "./builtins/device-manager/device-manager.addon.mjs";
19
17
  import "./builtins/device-manager/index.mjs";
20
18
  import { HubForwarderAddon, HubForwarderDestination } from "./builtins/hub-forwarder/index.mjs";
@@ -27,21 +25,21 @@ import { LokiDestination, LokiLoggingAddon } from "./builtins/loki-logging/index
27
25
  import NativeMetricsAddon, { a as NativeMetricsProvider, n as nodeProcReader, r as parseProcStat } from "./builtins/native-metrics/native-metrics.addon.mjs";
28
26
  import { DeviceHistoryAddon } from "./builtins/device-history/device-history.addon.mjs";
29
27
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
30
- import { C as RecordsEngine, l as SqliteSettingsBackend } from "./wal-maintenance-Bj_MmDkr.mjs";
28
+ import { C as RecordsEngine, l as SqliteSettingsBackend } from "./wal-maintenance-BvzVehem.mjs";
31
29
  import { SqliteSettingsAddon } from "./builtins/sqlite-storage/sqlite-settings.addon.mjs";
32
30
  import { ConfigStore, DeviceStore } from "./builtins/sqlite-storage/index.mjs";
33
31
  import { StorageOrchestratorAddon, a as stripForwardedCaller, i as createHubCapForwardService, l as STORAGE_DRAIN_STATE_LEGACY, n as HUB_CAP_FWD_ACTION, o as buildStorageLocationRegistry, r as HUB_CAP_FWD_SERVICE, t as StorageOrchestratorService, u as storageOrchestratorRecordKinds } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
34
32
  import "./builtins/storage-orchestrator/index.mjs";
35
- import { A as buildNameConstraintSet, B as setProcessAgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, F as readNameConstraints, I as AGENT_HTTPS_NAMES_COLLECTION, L as AGENT_HTTPS_NAMES_COLUMNS, M as isLocalOnlyHostname, N as permitsIdentity, O as PERMITTED_DNS_SUFFIXES, P as permitsName, R as AgentHttpsNames, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as issueAgentHttpsLeaf, f as loadAgentHttps, h as CA_COMMON_NAME, i as certificateNames, j as isConstrainedCa, k as PERMITTED_IP_RANGES, l as isContainerBridgeAddress, m as pinnedHttpsCaFingerprint, n as acceptAgentSans, o as createAgentHttpsRequest, p as pemDigest, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isPrivateAddress, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts, y as localCaCommonName, z as getProcessAgentHttpsNames } from "./agent-https-Iw3RSQup.mjs";
36
- import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "./constants-BnkOdj9Q.mjs";
33
+ import { A as buildNameConstraintSet, B as setProcessAgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, F as readNameConstraints, I as AGENT_HTTPS_NAMES_COLLECTION, L as AGENT_HTTPS_NAMES_COLUMNS, M as isLocalOnlyHostname, N as permitsIdentity, O as PERMITTED_DNS_SUFFIXES, P as permitsName, R as AgentHttpsNames, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as issueAgentHttpsLeaf, f as loadAgentHttps, h as CA_COMMON_NAME, i as certificateNames, j as isConstrainedCa, k as PERMITTED_IP_RANGES, l as isContainerBridgeAddress, m as pinnedHttpsCaFingerprint, n as acceptAgentSans, o as createAgentHttpsRequest, p as pemDigest, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isPrivateAddress, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts, y as localCaCommonName, z as getProcessAgentHttpsNames } from "./agent-https-CC7jpktS.mjs";
34
+ import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "./constants-CH5UXe_G.mjs";
37
35
  import { $ as generateMeshKeyPair, A as setProcessMeshPeerTransportLookup, B as describeMeshLeaf, C as setProcessMeshTlsEnabler, D as getProcessPeerLeaf, E as getProcessNodeMeshTransport, F as setProcessMeshTlsListenerState, G as MeshCaKeeper, H as setProcessMeshCertificateRegistry, I as MESH_NODE_CERTIFICATES_COLLECTION, J as caFingerprint, K as getProcessMeshCaState, L as MESH_NODE_CERTIFICATES_COLUMNS, M as revokeMeshCertificate, N as getProcessMeshTlsListenerState, O as isProcessVerifiedMeshPeer, P as openMeshTlsWhenRevocationsLoaded, Q as generateMeshCa, R as MeshCertificateRegistry, S as ServiceBroker, SystemConfigAddon, T as emitProcessNodeRegistered, U as MeshCrl, V as getProcessMeshCertificateRegistry, W as processMeshCrl, X as createMeshCsrPem, Y as caFingerprintCompact, Z as exportMeshPrivateKeyPem, _ as signPairingProof, _t as readCidrSetting, a as hubHostFromMeshAddress, at as AGENT_UI_UNLOCK_TTL_MS, b as TlsTcpTransporter, c as PAIRING_MAX_SESSIONS, ct as AGENT_UI_UNLOCK_VERSION, d as PAIRING_PROTOCOL, dt as mintAgentUiUnlockTicket, et as isValidAgentNodeId, f as PAIRING_TTL_MS, ft as parseAgentDashboardOrigins, g as keyFingerprintShort, gt as parseCidrList, h as describeCsr, ht as normalizeIp, i as AgentPairing, it as AGENT_DASHBOARD_ORIGINS_FIELD, j as renewMeshCertificate, k as onProcessNodeRegistered, l as PAIRING_PATHS, lt as UnlockTicketJtiStore, m as computePairingSas, mt as createCidrMatcher, n as HubPairing, nt as issueMeshLeafFromCsr, o as PAIRING_CODE_DIGITS, ot as AGENT_UI_UNLOCK_TYP, p as computePairingCommitment, pt as verifyAgentUiUnlockTicket, q as requireProcessMeshCa, r as PairingHttpError, rt as loadMeshCa, s as PAIRING_MAX_CODE_ATTEMPTS, st as AGENT_UI_UNLOCK_USE, tt as issueMeshLeafForNode, u as PAIRING_PIN_DIGITS, ut as isAllowedAgentDashboardReturnTo, v as verifyPairingProof, w as dropProcessPeer, x as Errors, y as MESH_TLS_PORT_HELLO_FIELD, z as RENEWAL_ABANDONED } from "./builtins/system-config/system-config.addon.mjs";
38
36
  import "./builtins/system-config/index.mjs";
39
37
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
40
38
  import { C as isModelDownloaded, T as revisionWeightUrl, _ as downloadFile, a as startEventLoopStallMonitor, b as fetchJson, c as createAuthenticatedFileServer, d as resolveFilePath, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, u as parseTokenizedUrl, v as downloadModel, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-DZSCLBuT.mjs";
41
- import { A as allFamiliesListenHost, C as caReplacementMarkerFile, D as replaceUnconstrainedLocalCa, E as reissueTlsLeaf, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as retirePreviousLocalCa, P as readLanHttpState, S as validateUploadedTls, T as loadTlsCert, _ as splitPemCertificates, a as storeUploadedCertificate, b as chainsToPublicRoot, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as ensureTlsCert, x as checkUploadedCa, y as writeTlsMode } from "./hub-mdns-ciao-CJu0nhla.mjs";
39
+ import { A as allFamiliesListenHost, C as caReplacementMarkerFile, D as replaceUnconstrainedLocalCa, E as reissueTlsLeaf, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as retirePreviousLocalCa, P as readLanHttpState, S as validateUploadedTls, T as loadTlsCert, _ as splitPemCertificates, a as storeUploadedCertificate, b as chainsToPublicRoot, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as ensureTlsCert, x as checkUploadedCa, y as writeTlsMode } from "./hub-mdns-ciao-Cuy7LUdz.mjs";
42
40
  import { n as getPlatformKeychainKey, r as setPlatformKeychainKey, t as clearPlatformKeychainKey } from "./platform-key-source-BWlq0jjn.mjs";
43
41
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Di9daRwI.mjs";
44
- import { _ as backupRecordStoresOf, c as BackupDecryptError, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-CM23Pq9B.mjs";
42
+ import { _ as backupRecordStoresOf, c as BackupDecryptError, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-BDua3jO6.mjs";
45
43
  import { n as nodeCoralFs, t as classifyCoralAccelerator } from "./coral-accelerators-Qhn5TOYZ.mjs";
46
44
  import { z } from "zod";
47
45
  import * as crypto$1 from "node:crypto";
@@ -1178,23 +1176,23 @@ function formatSocketPlane(window) {
1178
1176
  }
1179
1177
  //#endregion
1180
1178
  //#region src/kernel/moleculer/mesh-queue-report.ts
1181
- function isRecord$7(value) {
1179
+ function isRecord$6(value) {
1182
1180
  return typeof value === "object" && value !== null;
1183
1181
  }
1184
1182
  /** The shape `TcpWriter` keeps its sockets in. Anything else is not a mesh. */
1185
1183
  function writerSocketsOf(broker) {
1186
- if (!isRecord$7(broker)) return void 0;
1184
+ if (!isRecord$6(broker)) return void 0;
1187
1185
  const transit = broker["transit"];
1188
- if (!isRecord$7(transit)) return void 0;
1186
+ if (!isRecord$6(transit)) return void 0;
1189
1187
  const transporter = transit["tx"];
1190
- if (!isRecord$7(transporter)) return void 0;
1188
+ if (!isRecord$6(transporter)) return void 0;
1191
1189
  const writer = transporter["writer"];
1192
- if (!isRecord$7(writer)) return void 0;
1190
+ if (!isRecord$6(writer)) return void 0;
1193
1191
  const sockets = writer["sockets"];
1194
1192
  return sockets instanceof Map ? sockets : void 0;
1195
1193
  }
1196
1194
  function readSocket(nodeId, socket) {
1197
- if (typeof nodeId !== "string" || !isRecord$7(socket)) return void 0;
1195
+ if (typeof nodeId !== "string" || !isRecord$6(socket)) return void 0;
1198
1196
  const queuedBytes = socket["writableLength"];
1199
1197
  const bytesWritten = socket["bytesWritten"];
1200
1198
  if (typeof queuedBytes !== "number" || typeof bytesWritten !== "number") return void 0;
@@ -6085,7 +6083,6 @@ var IntegrationRegistry = class IntegrationRegistry {
6085
6083
  /**
6086
6084
  * Record kinds owned by cluster-agent (phase 4 — hub-main).
6087
6085
  */
6088
- var CLUSTER_NODE_HISTORY_COLLECTION = "cluster-node-history";
6089
6086
  var NodePackageEntrySchema = z.object({
6090
6087
  name: z.string(),
6091
6088
  version: z.string().nullable()
@@ -6547,7 +6544,7 @@ async function resolveUncached(options) {
6547
6544
  }
6548
6545
  //#endregion
6549
6546
  //#region src/kernel/addon-class-resolver.ts
6550
- function isRecord$6(value) {
6547
+ function isRecord$5(value) {
6551
6548
  return typeof value === "object" && value !== null && !Array.isArray(value);
6552
6549
  }
6553
6550
  /**
@@ -6571,14 +6568,14 @@ function isRecord$6(value) {
6571
6568
  function isAddonConstructor(fn) {
6572
6569
  if (typeof fn !== "function") return false;
6573
6570
  const proto = fn.prototype;
6574
- if (!isRecord$6(proto)) return false;
6571
+ if (!isRecord$5(proto)) return false;
6575
6572
  return typeof proto["initialize"] === "function";
6576
6573
  }
6577
6574
  function resolveAddonClass(mod) {
6578
6575
  let candidate = mod["default"];
6579
- if (isRecord$6(candidate) && "default" in candidate) candidate = candidate["default"];
6576
+ if (isRecord$5(candidate) && "default" in candidate) candidate = candidate["default"];
6580
6577
  if (isAddonConstructor(candidate)) return candidate;
6581
- if (isRecord$6(candidate)) {
6578
+ if (isRecord$5(candidate)) {
6582
6579
  const fn = Object.values(candidate).find(isAddonConstructor);
6583
6580
  if (fn) return fn;
6584
6581
  }
@@ -6587,7 +6584,7 @@ function resolveAddonClass(mod) {
6587
6584
  }
6588
6585
  //#endregion
6589
6586
  //#region src/kernel/addon-loader.ts
6590
- function isRecord$5(value) {
6587
+ function isRecord$4(value) {
6591
6588
  return typeof value === "object" && value !== null && !Array.isArray(value);
6592
6589
  }
6593
6590
  /**
@@ -6685,12 +6682,12 @@ async function importAddonModuleFresh(entryPath) {
6685
6682
  * AddonPackageManifest + AddonDeclaration.
6686
6683
  */
6687
6684
  function isAddonPackageManifest(value) {
6688
- if (!isRecord$5(value)) return false;
6685
+ if (!isRecord$4(value)) return false;
6689
6686
  if (!Array.isArray(value.addons)) return false;
6690
- return value.addons.every((a) => isRecord$5(a) && typeof a.id === "string");
6687
+ return value.addons.every((a) => isRecord$4(a) && typeof a.id === "string");
6691
6688
  }
6692
6689
  function toAddonPackageManifest(value) {
6693
- if (!isRecord$5(value)) return void 0;
6690
+ if (!isRecord$4(value)) return void 0;
6694
6691
  if (!isAddonPackageManifest(value)) return void 0;
6695
6692
  return value;
6696
6693
  }
@@ -6855,7 +6852,7 @@ var AddonLoader = class {
6855
6852
  }
6856
6853
  if (!fs$1.existsSync(entryPath)) throw new Error(`Entry not found: ${entryPath}`);
6857
6854
  const modUnknown = await importAddonModuleFresh(entryPath);
6858
- const mod = isRecord$5(modUnknown) ? modUnknown : {};
6855
+ const mod = isRecord$4(modUnknown) ? modUnknown : {};
6859
6856
  const AddonClass = resolveAddonClass(mod);
6860
6857
  if (!AddonClass) throw new Error(`No addon class in ${entryPath}`);
6861
6858
  this.addons.set(declaration.id, {
@@ -6871,7 +6868,7 @@ var AddonLoader = class {
6871
6868
  /** Load addon from a direct path (for development/testing) */
6872
6869
  async loadFromPath(addonId, modulePath, packageName, declaration, packageVersion = "0.0.0") {
6873
6870
  const modUnknown = await importAddonModuleFresh(modulePath);
6874
- const mod = isRecord$5(modUnknown) ? modUnknown : {};
6871
+ const mod = isRecord$4(modUnknown) ? modUnknown : {};
6875
6872
  const AddonClass = resolveAddonClass(mod);
6876
6873
  if (!AddonClass) throw new Error(`Module ${modulePath} has no default export`);
6877
6874
  this.addons.set(addonId, {
@@ -11802,11 +11799,11 @@ async function runHubAddonBoot(steps) {
11802
11799
  }
11803
11800
  //#endregion
11804
11801
  //#region src/kernel/settings-door-view.ts
11805
- function isRecord$4(value) {
11802
+ function isRecord$3(value) {
11806
11803
  return typeof value === "object" && value !== null && !Array.isArray(value);
11807
11804
  }
11808
11805
  function asBlob(value) {
11809
- return isRecord$4(value) ? value : {};
11806
+ return isRecord$3(value) ? value : {};
11810
11807
  }
11811
11808
  /**
11812
11809
  * Every `system-settings` row under `prefix`, keyed by the suffix — or a throw.
@@ -14375,7 +14372,7 @@ import_js_yaml.default;
14375
14372
  * so that file stays one class. The `console.*` calls are the documented
14376
14373
  * residuals described on `ConfigManager` (no logger exists yet at boot).
14377
14374
  */
14378
- function isRecord$3(value) {
14375
+ function isRecord$2(value) {
14379
14376
  return typeof value === "object" && value !== null && !Array.isArray(value);
14380
14377
  }
14381
14378
  /** Sections that live in config.yaml. Everything else goes to the settings-store. */
@@ -14466,7 +14463,7 @@ function setNested(obj, configPath, value) {
14466
14463
  [head]: value
14467
14464
  };
14468
14465
  const existing = obj[head];
14469
- const child = isRecord$3(existing) ? existing : {};
14466
+ const child = isRecord$2(existing) ? existing : {};
14470
14467
  return {
14471
14468
  ...obj,
14472
14469
  [head]: setNested(child, rest.join("."), value)
@@ -14723,7 +14720,7 @@ var SystemSettingsMirror = class {
14723
14720
  };
14724
14721
  //#endregion
14725
14722
  //#region src/kernel/config-manager.ts
14726
- function isRecord$2(value) {
14723
+ function isRecord$1(value) {
14727
14724
  return typeof value === "object" && value !== null && !Array.isArray(value);
14728
14725
  }
14729
14726
  function errorText(err) {
@@ -15082,7 +15079,7 @@ var ConfigManager = class {
15082
15079
  const keys = configPath.split(".");
15083
15080
  let current = this.bootstrapConfig;
15084
15081
  for (const key of keys) {
15085
- if (!isRecord$2(current)) return void 0;
15082
+ if (!isRecord$1(current)) return void 0;
15086
15083
  current = current[key];
15087
15084
  }
15088
15085
  return current;
@@ -16151,7 +16148,7 @@ var RuntimeStateLoadError = class extends Error {
16151
16148
  this.name = "RuntimeStateLoadError";
16152
16149
  }
16153
16150
  };
16154
- function isRecord$1(value) {
16151
+ function isRecord(value) {
16155
16152
  return typeof value === "object" && value !== null && !Array.isArray(value);
16156
16153
  }
16157
16154
  function errorMessage(err) {
@@ -16182,7 +16179,7 @@ async function loadRuntimeStateOrRefuse(load, logger, target) {
16182
16179
  } catch (err) {
16183
16180
  return refuse(errorMessage(err), err);
16184
16181
  }
16185
- if (!isRecord$1(answer)) return refuse(`answered ${answer === null ? "null" : typeof answer}`);
16182
+ if (!isRecord(answer)) return refuse(`answered ${answer === null ? "null" : typeof answer}`);
16186
16183
  return answer;
16187
16184
  }
16188
16185
  //#endregion
@@ -23338,7 +23335,7 @@ function createSectionsStore(door) {
23338
23335
  //#endregion
23339
23336
  //#region src/kernel/moleculer/runner-addon-settings.ts
23340
23337
  /** @param client the hub's `settingsStore` client; `undefined` makes every call THROW. */
23341
- function createRunnerAddonSettings(client, addonId, before = async () => {}) {
23338
+ function createRunnerAddonSettings(client, addonId) {
23342
23339
  if (client === void 0) {
23343
23340
  const refuse = async () => {
23344
23341
  throw new Error(`settings of "${addonId}": settings store not wired`);
@@ -23360,22 +23357,10 @@ function createRunnerAddonSettings(client, addonId, before = async () => {}) {
23360
23357
  };
23361
23358
  }
23362
23359
  const door = {
23363
- query: async (input) => {
23364
- await before();
23365
- return client.query.query(input);
23366
- },
23367
- get: async (input) => {
23368
- await before();
23369
- return client.get.query(input);
23370
- },
23371
- set: async (input) => {
23372
- await before();
23373
- return client.set.mutate(input);
23374
- },
23375
- transact: async (input) => {
23376
- await before();
23377
- return client.transact.mutate(input);
23378
- }
23360
+ query: (input) => client.query.query(input),
23361
+ get: (input) => client.get.query(input),
23362
+ set: (input) => client.set.mutate(input),
23363
+ transact: (input) => client.transact.mutate(input)
23379
23364
  };
23380
23365
  const store = createAddonSettingsStore(door, addonId);
23381
23366
  const sections = createSectionsStore(door);
@@ -23416,159 +23401,6 @@ function createRunnerAddonSettings(client, addonId, before = async () => {}) {
23416
23401
  };
23417
23402
  }
23418
23403
  //#endregion
23419
- //#region src/kernel/addon-refused-error.ts
23420
- /**
23421
- * A deterministic Init refusal (D877): an addon that says, in a typed way,
23422
- * "I will not start, and here is why" - as opposed to a crash.
23423
- *
23424
- * The difference matters to the supervisor. A crash may be transient (a camera
23425
- * dropping mid-handshake) and is bounded by the D6 circuit-breaker; a refusal
23426
- * repeats identically until somebody changes the world (runs a migration,
23427
- * fixes a setting), so counting it toward the breaker only turns "waiting for
23428
- * the operator" into a terminal `failed` with a stack trace nobody needed.
23429
- * On 2026-10-17 twenty-eight addons refused on an unmigrated store, exited five
23430
- * times in ten seconds and were marked `failed` as if they had crashed.
23431
- *
23432
- * The runner reports a refusal to its parent (see `runner-refusal.ts`); the
23433
- * process service parks the runner in `refused` with the reason and retries it
23434
- * only when an operator acts.
23435
- */
23436
- var AddonRefusedError = class extends Error {
23437
- /** Stable, greppable cause, e.g. `unmigrated-settings`. */
23438
- code;
23439
- /** What the operator does about it. */
23440
- remedy;
23441
- constructor(code, message, remedy, options) {
23442
- super(message, options);
23443
- this.name = "AddonRefusedError";
23444
- this.code = code;
23445
- this.remedy = remedy;
23446
- }
23447
- };
23448
- /**
23449
- * The refusal in `err`'s cause chain, if any. An addon that wraps the error it
23450
- * got from the kernel (`new Error('init failed', { cause })`) is still refusing.
23451
- */
23452
- function findAddonRefusal(err) {
23453
- const seen = /* @__PURE__ */ new Set();
23454
- let current = err;
23455
- while (current !== null && current !== void 0 && !seen.has(current)) {
23456
- if (current instanceof AddonRefusedError) return current;
23457
- seen.add(current);
23458
- current = current instanceof Error ? current.cause : void 0;
23459
- }
23460
- return null;
23461
- }
23462
- //#endregion
23463
- //#region src/kernel/legacy-blob-guard.ts
23464
- /** Root keys retired long before D870: they never count as "settings still to migrate". */
23465
- var OWN_RETIRED_ROOT_KEYS = new Set([
23466
- "recordingConfigs",
23467
- "recordingExports",
23468
- "recordingOpsLog",
23469
- "probeSnapshots",
23470
- "rtspTokens",
23471
- "profileMap"
23472
- ]);
23473
- /** Is `key` of `addonId` a root key that was retired (and must not be migrated)? */
23474
- function isRetiredRootKey(addonId, key) {
23475
- if (OWN_RETIRED_ROOT_KEYS.has(key)) return true;
23476
- return RETIRED_SETTINGS_KEYS.some((spec) => spec.namespace === addonId && (spec.keys.includes(key) || spec.perNodeKeys.some((k) => key === k || key.startsWith(`${k}@`))));
23477
- }
23478
- /** Stable `code` of the D870 refusal. */
23479
- var UNMIGRATED_SETTINGS_CODE = "unmigrated-settings";
23480
- /** The remedy the refusal (and the update pre-flight) names. */
23481
- var UNMIGRATED_SETTINGS_REMEDY = "Run scripts/hub/migrate-device-store.ts --copy --apply (D870), then restart the addon.";
23482
- var UnmigratedSettingsError = class extends AddonRefusedError {
23483
- constructor(addonId, what) {
23484
- super(UNMIGRATED_SETTINGS_CODE, `addon "${addonId}" refuses to start: ${what} - the settings it had are still in the per-addon tables and the standard store holds none. Run scripts/hub/migrate-device-store.ts --copy --apply (D870) before starting it.`, UNMIGRATED_SETTINGS_REMEDY);
23485
- this.name = "UnmigratedSettingsError";
23486
- }
23487
- };
23488
- async function countOf(client, input) {
23489
- const n = await client.count.query(input);
23490
- if (typeof n !== "number") throw new Error("settings store answered a non-number to a count");
23491
- return n;
23492
- }
23493
- var LEGACY_PAGE = 500;
23494
- var LEGACY_PAGE_BUDGET = 200;
23495
- var ID_TAIL = "";
23496
- function isRecord(value) {
23497
- return typeof value === "object" && value !== null && !Array.isArray(value);
23498
- }
23499
- /**
23500
- * Does the addon's per-device blob table hold a row the copy would actually
23501
- * migrate - a positive numeric id with a non-empty record? An addon whose rows
23502
- * the copy skips anyway must not be refused for them.
23503
- */
23504
- async function hasMigratableDeviceRow(client, addonId) {
23505
- let cursor = "";
23506
- for (let page = 0; page < LEGACY_PAGE_BUDGET; page++) {
23507
- const rows = await client.query.query({
23508
- namespace: addonId,
23509
- collection: "addon-devices",
23510
- filter: {
23511
- whereBetween: { id: [cursor, ID_TAIL] },
23512
- orderBy: {
23513
- field: "id",
23514
- direction: "asc"
23515
- },
23516
- limit: LEGACY_PAGE
23517
- }
23518
- });
23519
- if (!Array.isArray(rows)) throw new Error("settings store answered a non-list to a query");
23520
- let lastId = cursor;
23521
- for (const row of rows) {
23522
- if (!isRecord(row) || typeof row["id"] !== "string") continue;
23523
- lastId = row["id"];
23524
- const id = Number(row["id"]);
23525
- const data = row["data"];
23526
- if (Number.isInteger(id) && id > 0 && isRecord(data) && Object.keys(data).length > 0) return true;
23527
- }
23528
- if (rows.length < LEGACY_PAGE || lastId === cursor) return false;
23529
- cursor = lastId;
23530
- }
23531
- throw new Error(`addon "${addonId}": more legacy blob pages than the guard will read`);
23532
- }
23533
- /**
23534
- * THROWS when the addon has blob settings and the standard store has none of
23535
- * its own. A store that cannot be asked also throws: it is not "no blobs".
23536
- */
23537
- async function assertLegacyBlobsMigrated(client, addonId, logger) {
23538
- const legacyDevices = await hasMigratableDeviceRow(client, addonId);
23539
- const root = await client.get.query({
23540
- namespace: addonId,
23541
- collection: "addon-settings",
23542
- key: "root"
23543
- });
23544
- const legacySettings = isRecord(root) && Object.keys(root).some((key) => !isRetiredRootKey(addonId, key));
23545
- if (!legacyDevices && !legacySettings) return;
23546
- const rangeOf = (prefix) => {
23547
- const range = prefixRange(prefix);
23548
- if (range === null) throw new Error(`no id range for addon "${addonId}"`);
23549
- return { whereBetween: { id: [range.lo, range.hi] } };
23550
- };
23551
- const newDevices = await countOf(client, {
23552
- collection: "addon-device-settings",
23553
- filter: rangeOf(`${addonId}:`)
23554
- });
23555
- const newSettings = await countOf(client, {
23556
- collection: "addon-settings",
23557
- filter: rangeOf(`${addonId}.`)
23558
- });
23559
- const problems = [];
23560
- if (legacyDevices && newDevices === 0) problems.push("per-device blobs");
23561
- if (legacySettings && newSettings === 0) problems.push("an addon settings blob");
23562
- if (problems.length === 0) return;
23563
- const error = new UnmigratedSettingsError(addonId, problems.join(" and "));
23564
- logger.error(error.message, { meta: {
23565
- addonId,
23566
- newDevices,
23567
- newSettings
23568
- } });
23569
- throw error;
23570
- }
23571
- //#endregion
23572
23404
  //#region src/kernel/moleculer/runner-device-settings.ts
23573
23405
  /**
23574
23406
  * The forked runner's `ctx.settings` device methods (D870).
@@ -23581,20 +23413,11 @@ async function assertLegacyBlobsMigrated(client, addonId, logger) {
23581
23413
  * blob per device; a hub-side write to the rows was invisible to it.
23582
23414
  */
23583
23415
  /** The door slice the per-device store needs, over a tRPC client. */
23584
- function doorOverClient(client, before = async () => {}) {
23416
+ function doorOverClient(client) {
23585
23417
  return {
23586
- query: async (input) => {
23587
- await before();
23588
- return client.query.query(input);
23589
- },
23590
- transact: async (input) => {
23591
- await before();
23592
- return client.transact.mutate(input);
23593
- },
23594
- deleteWhere: async (input) => {
23595
- await before();
23596
- return client.deleteWhere.mutate(input);
23597
- }
23418
+ query: (input) => client.query.query(input),
23419
+ transact: (input) => client.transact.mutate(input),
23420
+ deleteWhere: (input) => client.deleteWhere.mutate(input)
23598
23421
  };
23599
23422
  }
23600
23423
  /**
@@ -23602,7 +23425,7 @@ function doorOverClient(client, before = async () => {}) {
23602
23425
  * runner has none — every call then THROWS: a store that could not be asked
23603
23426
  * is not an empty one.
23604
23427
  */
23605
- function createRunnerDeviceSettings(client, addonId, before = async () => {}) {
23428
+ function createRunnerDeviceSettings(client, addonId) {
23606
23429
  if (client === void 0) {
23607
23430
  const refuse = () => {
23608
23431
  throw new Error(`device settings of "${addonId}": settings store not wired`);
@@ -23615,7 +23438,7 @@ function createRunnerDeviceSettings(client, addonId, before = async () => {}) {
23615
23438
  clearDeviceStore: async () => refuse()
23616
23439
  };
23617
23440
  }
23618
- const store = createDeviceSettingsStore(doorOverClient(client, before), addonId);
23441
+ const store = createDeviceSettingsStore(doorOverClient(client), addonId);
23619
23442
  return {
23620
23443
  readDeviceStore: (deviceId) => readDeviceOrThrow(store, deviceId),
23621
23444
  readDeviceStoreBatch: (ids) => store.readBatch(ids),
@@ -23914,23 +23737,9 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
23914
23737
  }
23915
23738
  };
23916
23739
  const deviceSettingsClient = Reflect.get(api, "settingsStore");
23917
- let blobsChecked = null;
23918
- const bootGuard = () => {
23919
- const client = deviceSettingsClient;
23920
- if (client === void 0) return Promise.resolve();
23921
- blobsChecked ??= assertLegacyBlobsMigrated({
23922
- get: { query: (input) => client.get.query(input) },
23923
- query: { query: (input) => client.query.query(input) },
23924
- count: { query: (input) => client.count.query(input) }
23925
- }, addonId, scopedLogger).catch((err) => {
23926
- blobsChecked = null;
23927
- throw err;
23928
- });
23929
- return blobsChecked;
23930
- };
23931
23740
  const settingsView = {
23932
- ...createRunnerAddonSettings(deviceSettingsClient, addonId, bootGuard),
23933
- ...createRunnerDeviceSettings(deviceSettingsClient, addonId, bootGuard),
23741
+ ...createRunnerAddonSettings(deviceSettingsClient, addonId),
23742
+ ...createRunnerDeviceSettings(deviceSettingsClient, addonId),
23934
23743
  async readDeviceRuntimeState(deviceId) {
23935
23744
  return readBlob("device-runtime-state", String(deviceId));
23936
23745
  },
@@ -26604,6 +26413,50 @@ function createProcessService(parentNodeId, dataDir, deps, parentTcpPort, parent
26604
26413
  };
26605
26414
  }
26606
26415
  //#endregion
26416
+ //#region src/kernel/addon-refused-error.ts
26417
+ /**
26418
+ * A deterministic Init refusal (D877): an addon that says, in a typed way,
26419
+ * "I will not start, and here is why" - as opposed to a crash.
26420
+ *
26421
+ * The difference matters to the supervisor. A crash may be transient (a camera
26422
+ * dropping mid-handshake) and is bounded by the D6 circuit-breaker; a refusal
26423
+ * repeats identically until somebody changes the world (runs a migration,
26424
+ * fixes a setting), so counting it toward the breaker only turns "waiting for
26425
+ * the operator" into a terminal `failed` with a stack trace nobody needed.
26426
+ * On 2026-10-17 twenty-eight addons refused on an unmigrated store, exited five
26427
+ * times in ten seconds and were marked `failed` as if they had crashed.
26428
+ *
26429
+ * The runner reports a refusal to its parent (see `runner-refusal.ts`); the
26430
+ * process service parks the runner in `refused` with the reason and retries it
26431
+ * only when an operator acts.
26432
+ */
26433
+ var AddonRefusedError = class extends Error {
26434
+ /** Stable, greppable cause, e.g. `unmigrated-settings`. */
26435
+ code;
26436
+ /** What the operator does about it. */
26437
+ remedy;
26438
+ constructor(code, message, remedy, options) {
26439
+ super(message, options);
26440
+ this.name = "AddonRefusedError";
26441
+ this.code = code;
26442
+ this.remedy = remedy;
26443
+ }
26444
+ };
26445
+ /**
26446
+ * The refusal in `err`'s cause chain, if any. An addon that wraps the error it
26447
+ * got from the kernel (`new Error('init failed', { cause })`) is still refusing.
26448
+ */
26449
+ function findAddonRefusal(err) {
26450
+ const seen = /* @__PURE__ */ new Set();
26451
+ let current = err;
26452
+ while (current !== null && current !== void 0 && !seen.has(current)) {
26453
+ if (current instanceof AddonRefusedError) return current;
26454
+ seen.add(current);
26455
+ current = current instanceof Error ? current.cause : void 0;
26456
+ }
26457
+ return null;
26458
+ }
26459
+ //#endregion
26607
26460
  //#region src/kernel/moleculer/process-context.ts
26608
26461
  function createScopedProcessManager(broker, addonId) {
26609
26462
  return {
@@ -27687,4 +27540,4 @@ function resetCatalogRegistryForTests() {
27687
27540
  }
27688
27541
  //#endregion
27689
27542
  var readAllRows = import_read_all_rows.readAllRows;
27690
- export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_DASHBOARD_ORIGINS_FIELD, AGENT_HTTPS_NAMES_COLLECTION, AGENT_HTTPS_NAMES_COLUMNS, AGENT_READINESS_SERVICE_NAME, AGENT_UI_UNLOCK_TTL_MS, AGENT_UI_UNLOCK_TYP, AGENT_UI_UNLOCK_USE, AGENT_UI_UNLOCK_VERSION, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRefusedError, AddonRouteRegistry, AgentHttpsInstallError, AgentHttpsNames, AgentMdnsAdvertiser, AgentMeshIdentityGate, AgentPairing, AlertCenterAddon, ApiKeyManager, AuthAuditLog, AuthManager, BackupDecryptError, BackupKeyFormatError, BackupKeyMismatchError, BackupKeyRequiredError, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CAP_METHOD_NOT_IMPLEMENTED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_NODE_HISTORY_COLLECTION, CORE_CAP_SERVICE_NAME, CalendarsAddon, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, CatalogRegistry, ClusterNodeHistoryBodySchema, ComposerAddon, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_HUB_TLS_TCP_PORT, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_CA_KEY_REF, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceCaStore, DeviceCredentialManager, DeviceHistoryAddon, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FIRST_BOOT_ADMIN_PASSWORD, FIRST_BOOT_ADMIN_USERNAME, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, GET_STATUS_METHOD, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, HubPairing, INFRA_CAPABILITIES, INTEGRATIONS_LEGACY, INTEGRATION_SETTINGS_LEGACY, IntegrationRegistry, JWT_SIGNING_KEY_REF, JobJournal, JwtSigningKeyUnavailableError, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LoginSessionManager, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_ACTION_FORBIDDEN_TYPE, MESH_CA_FIELD, MESH_CA_KEY_REF, MESH_CA_SETTINGS_KEY, MESH_NODE_CERTIFICATES_COLLECTION, MESH_NODE_CERTIFICATES_COLUMNS, MESH_NODE_UNAUTHENTICATED_TYPE, MESH_QUEUE_TOP_N, MESH_TLS_PORT_HELLO_FIELD, METHOD_ACCESS_MAP, MeshCaKeeper, MeshCertificateRegistry, MeshCrl, MeshIdentityGate, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PAIRING_CODE_DIGITS, PAIRING_MAX_CODE_ATTEMPTS, PAIRING_MAX_SESSIONS, PAIRING_PATHS, PAIRING_PIN_DIGITS, PAIRING_PROTOCOL, PAIRING_TTL_MS, PARENT_ROUTED_PROVIDER_ADDON_ID, PERMITTED_DNS_SUFFIXES, PERMITTED_IP_RANGES, PREVIOUS_LEAF_GRACE_MS, PYTHON_VERSION, PairingHttpError, PeerAnsweredError, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, REFRESH_TOKEN_PREFIX, RENEWAL_ABANDONED, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, RecordsEngine, ReplEngine, RingBuffer, SERVER_AUTH_OID, SERVER_NAMESPACE, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, STORAGE_DRAIN_STATE_LEGACY, STORE_READABLE_BOOTSTRAP_KEYS, SYSTEM_SECRET_OWNER, ScopedLogger, SettingsReadUnavailableError, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemBackupService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, TlsTcpTransporter, ToastService, UDS_NO_ROUTE_PREFIX, UNCLAIMED, UNMIGRATED_SETTINGS_CODE, UNMIGRATED_SETTINGS_REMEDY, UPLOADED_CA_FILE, USER_MANAGEMENT_INTERNAL, UdsLocalTransportClient, UdsLocalTransportServer, UnlockTicketJtiStore, UnmigratedSettingsError, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, acceptAgentSans, adaptBrokerToCluster, addonSettingsCapability, adoptModelRevisions, afterWorkerOnlineAnnounce, agentHttpsPaths, allFamiliesListenHost, answerClaimedGetStatus, applyCertificateToListener, applyLanHttp, asBrokerLike, assertLegacyBlobsMigrated, attachUserManagementInternal, attributeStall, backupOrchestratorRecordKinds, backupRecordStoresOf, bareAddonOf, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildAgentAnnouncement, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNameConstraintSet, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, buildTransporter, builderMountedCapNames, caFingerprint, caFingerprintCompact, caReplacementMarkerFile, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, catalogNamespaceOf, certificateNames, chainsToPublicRoot, checkUploadedCa, classifyAddonDir, classifyCapRoute, clearHttpsListener, clearPendingRestart, clearPlatformKeychainKey, closeLanHttp, clusterAgentRecordKinds, clusterEventTopic, clusterNodeHistoryRecordKind, collectAgentNames, collectCertIdentity, collectModelFiles, compileLogFilter, computePairingCommitment, computePairingSas, connectBrokerTransport, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonPeerBytesFacility, createAddonService, createAgentEventScope, createAgentHttpsRequest, createAgentTransport, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCiaoPublisher, createCidrMatcher, createCoreCapService, createCoreCatalogRegistry, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createKernelInferenceEngine, createLocalTransport, createLoopDelayMeter, createMeshAccessMiddleware, createMeshCsrPem, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, currentBrokerTransporter, deleteModelFromDisk, deriveAgentListenPort, describeCsr, describeHttpsLeaf, describeMeshLeaf, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, deviceOfGetStatus, diffCapActionCensus, diffEventPlane, diffSocketPlane, disconnectBrokerTransport, downloadBinary, downloadFile, downloadModel, dropProcessPeer, emitDownForOwnedCaps, emitHeapDiagnosticReport, emitProcessNodeRegistered, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, exportMeshPrivateKeyPem, fetchJson, filterIsEmpty, findAddonRefusal, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, generateBackupKeyPair, generateDeviceCa, generateMeshCa, generateMeshKeyPair, getBrokerEventBus, getBrokerTlsTransporter, getCapUsageRegistry, getCatalogRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPlatformKeychainKey, getProcessAgentHttpsNames, getProcessJwtSigningKeyState, getProcessMeshCaState, getProcessMeshCertificateRegistry, getProcessMeshTlsListenerState, getProcessNodeMeshTransport, getProcessPeerLeaf, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getUserManagementInternal, getWorkerDeviceRegistry, hasDotNode, heapSpaceField, hostNodeIdOf, hubHostFromMeshAddress, hubMainRssBudget, installAgentHttps, installBrokerTransporter, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, integrationRegistryRecordKinds, ipcParentLink, isAddonDeploySource, isAllowedAgentDashboardReturnTo, isArrayBufferCensusReport, isArrayOutputSchema, isCollectionArrayMethod, isConstrainedCa, isContainerBridgeAddress, isCredentialKeyName, isInfraCapability, isInstalledTransporter, isLocalOnlyHostname, isModelDownloaded, isPeerEventPacket, isPrivateAddress, isProcessVerifiedMeshPeer, isRemoteForbiddenAction, isRemoteForbiddenOnAgent, isSettingsReadUnavailable, isSourceNewer, isValidAgentNodeId, isolatedBuiltinPhase, issueAgentHttpsLeaf, issueDeviceLeaf, issueMeshLeafForNode, issueMeshLeafFromCsr, keyFingerprintShort, leafFingerprintOf, levelRank, lineContainsText, lineMatches, loadAgentHttps, loadDeviceCa, loadMeshCa, loadTlsCert, localCaCommonName, localEndpointPath, localProviderLink, localSupportedPythonRuntimes, mapSignalsToInferenceHardware, meshErrorType, mintAgentUiUnlockTicket, mountNativeCapService, nextRssBudgetState, normalizeIp, onProcessNodeRegistered, onSessionsRevoked, openMeshTlsWhenRevocationsLoaded, originNodeOf, overlayGetStatus, parseAgentDashboardOrigins, parseCapAction, parseCidrList, parseRangeHeader, parseRssBudgetMb, parseTokenExpiry, parseTokenizedUrl, partitionIsolatedBuiltinIds, pemDigest, permitsIdentity, permitsName, pinnedHttpsCaFingerprint, preferencesLimitReasonOf, prepareBootTls, prepareRestoreArchive, probePlatform, processJwtSigningKey, processMeshCrl, proxyToUpstream, quarantineAddonResidue, readAllRows, readBackupEncryptionHeader, readCidrSetting, readExtraSans, readHeapSpaces, readLanHttpState, readNameConstraints, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, redactLogEntry, redactLogMeta, redactLogText, regenerateCertificate, registerEventBusService, registerHttpsListener, registerLanHttpHandler, reissueTlsLeaf, reloadHttpsListener, renewMeshCertificate, replaceUnconstrainedLocalCa, requireProcessMeshCa, resetCatalogRegistryForTests, resolveFilePath, resolveFormatRevision, resolveHwAccel, resolveNpmInvocation, retirePreviousLocalCa, revertToGeneratedCertificate, revisionWeightUrl, revokeMeshCertificate, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, servedHttpsLeafFingerprint, setHubConnected, setNodeEventInterest, setPlatformKeychainKey, setProcessAgentHttpsNames, setProcessMeshCertificateRegistry, setProcessMeshPeerTransportLookup, setProcessMeshTlsEnabler, setProcessMeshTlsListenerState, setWrapperActive, shouldReclaim, signPairingProof, signalAllRunnerGroups, socketDirectionBytes, socketDirectionMessages, splitPemCertificates, stampCallerAddonId, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, staticJwtSigningKey, storageOrchestratorRecordKinds, storeMayAnswer, storeUploadedCertificate, strandedMb, stripCamstackDeps, stripForgedIdentity, stripForwardedCaller, subscribePassthrough, systemHostFacts, udsChildLogToWorkerEntry, useStoredUploadedCertificate, validateProviderRegistrations, validateUploadedTls, verifyAgentUiUnlockTicket, verifyDeviceLeaf, verifyDeviceSignature, verifyPairingProof, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
27543
+ export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_DASHBOARD_ORIGINS_FIELD, AGENT_HTTPS_NAMES_COLLECTION, AGENT_HTTPS_NAMES_COLUMNS, AGENT_READINESS_SERVICE_NAME, AGENT_UI_UNLOCK_TTL_MS, AGENT_UI_UNLOCK_TYP, AGENT_UI_UNLOCK_USE, AGENT_UI_UNLOCK_VERSION, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRefusedError, AddonRouteRegistry, AgentHttpsInstallError, AgentHttpsNames, AgentMdnsAdvertiser, AgentMeshIdentityGate, AgentPairing, AlertCenterAddon, ApiKeyManager, AuthAuditLog, AuthManager, BackupDecryptError, BackupKeyFormatError, BackupKeyMismatchError, BackupKeyRequiredError, CAP_ACTION_OVERFLOW_LABEL, CAP_ACTION_UNLABELLED, CAP_METHOD_NOT_IMPLEMENTED, CA_COMMON_NAME, CA_VALIDITY_DAYS, CORE_CAP_SERVICE_NAME, CalendarsAddon, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, CatalogRegistry, ClusterNodeHistoryBodySchema, ComposerAddon, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_HUB_TLS_TCP_PORT, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_CA_KEY_REF, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceCaStore, DeviceCredentialManager, DeviceHistoryAddon, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_CAP_ACTION_READING, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FIRST_BOOT_ADMIN_PASSWORD, FIRST_BOOT_ADMIN_USERNAME, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, GET_STATUS_METHOD, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, HubPairing, INFRA_CAPABILITIES, INTEGRATIONS_LEGACY, INTEGRATION_SETTINGS_LEGACY, IntegrationRegistry, JWT_SIGNING_KEY_REF, JobJournal, JwtSigningKeyUnavailableError, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LoginSessionManager, LokiDestination, LokiLoggingAddon, MAX_CAP_ACTIONS_PER_PEER, MAX_LEAF_VALIDITY_DAYS, MESH_ACTION_FORBIDDEN_TYPE, MESH_CA_FIELD, MESH_CA_KEY_REF, MESH_CA_SETTINGS_KEY, MESH_NODE_CERTIFICATES_COLLECTION, MESH_NODE_CERTIFICATES_COLUMNS, MESH_NODE_UNAUTHENTICATED_TYPE, MESH_QUEUE_TOP_N, MESH_TLS_PORT_HELLO_FIELD, METHOD_ACCESS_MAP, MeshCaKeeper, MeshCertificateRegistry, MeshCrl, MeshIdentityGate, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, OUTBOUND_QUEUE_COOLDOWN_MS, OUTBOUND_QUEUE_SUSTAIN_MS, OUTBOUND_QUEUE_THRESHOLD_BYTES, PAIRING_CODE_DIGITS, PAIRING_MAX_CODE_ATTEMPTS, PAIRING_MAX_SESSIONS, PAIRING_PATHS, PAIRING_PIN_DIGITS, PAIRING_PROTOCOL, PAIRING_TTL_MS, PARENT_ROUTED_PROVIDER_ADDON_ID, PERMITTED_DNS_SUFFIXES, PERMITTED_IP_RANGES, PREVIOUS_LEAF_GRACE_MS, PYTHON_VERSION, PairingHttpError, PeerAnsweredError, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, REFRESH_TOKEN_PREFIX, RENEWAL_ABANDONED, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, RecordsEngine, ReplEngine, RingBuffer, SERVER_AUTH_OID, SERVER_NAMESPACE, SOCKET_PLANE_TOP_N, SOCKET_QUEUE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, STORAGE_DRAIN_STATE_LEGACY, STORE_READABLE_BOOTSTRAP_KEYS, SYSTEM_SECRET_OWNER, ScopedLogger, SettingsReadUnavailableError, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemBackupService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, TlsTcpTransporter, ToastService, UDS_NO_ROUTE_PREFIX, UNCLAIMED, UPLOADED_CA_FILE, USER_MANAGEMENT_INTERNAL, UdsLocalTransportClient, UdsLocalTransportServer, UnlockTicketJtiStore, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, acceptAgentSans, adaptBrokerToCluster, addonSettingsCapability, adoptModelRevisions, afterWorkerOnlineAnnounce, agentHttpsPaths, allFamiliesListenHost, answerClaimedGetStatus, applyCertificateToListener, applyLanHttp, asBrokerLike, attachUserManagementInternal, attributeStall, backupOrchestratorRecordKinds, backupRecordStoresOf, bareAddonOf, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildAgentAnnouncement, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNameConstraintSet, buildNativeCapProxy, buildNodeManifest, buildNpmChildEnv, buildStorageLocationRegistry, buildTransporter, builderMountedCapNames, caFingerprint, caFingerprintCompact, caReplacementMarkerFile, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionLabel, capActionName, capActionSuffix, capBareAction, capServiceName, catalogNamespaceOf, certificateNames, chainsToPublicRoot, checkUploadedCa, classifyAddonDir, classifyCapRoute, clearHttpsListener, clearPendingRestart, clearPlatformKeychainKey, closeLanHttp, clusterAgentRecordKinds, clusterEventTopic, clusterNodeHistoryRecordKind, collectAgentNames, collectCertIdentity, collectModelFiles, compileLogFilter, computePairingCommitment, computePairingSas, connectBrokerTransport, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonPeerBytesFacility, createAddonService, createAgentEventScope, createAgentHttpsRequest, createAgentTransport, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCapActionCensus, createCiaoPublisher, createCidrMatcher, createCoreCapService, createCoreCatalogRegistry, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createKernelInferenceEngine, createLocalTransport, createLoopDelayMeter, createMeshAccessMiddleware, createMeshCsrPem, createMeshQueueReader, createOutboundQueueGate, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, currentBrokerTransporter, deleteModelFromDisk, deriveAgentListenPort, describeCsr, describeHttpsLeaf, describeMeshLeaf, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, deviceCapResolverLink, deviceOfGetStatus, diffCapActionCensus, diffEventPlane, diffSocketPlane, disconnectBrokerTransport, downloadBinary, downloadFile, downloadModel, dropProcessPeer, emitDownForOwnedCaps, emitHeapDiagnosticReport, emitProcessNodeRegistered, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, exportMeshPrivateKeyPem, fetchJson, filterIsEmpty, findAddonRefusal, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatMeshQueue, formatOutboundQueueVerdict, formatSocketPlane, generateBackupKeyPair, generateDeviceCa, generateMeshCa, generateMeshKeyPair, getBrokerEventBus, getBrokerTlsTransporter, getCapUsageRegistry, getCatalogRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPlatformKeychainKey, getProcessAgentHttpsNames, getProcessJwtSigningKeyState, getProcessMeshCaState, getProcessMeshCertificateRegistry, getProcessMeshTlsListenerState, getProcessNodeMeshTransport, getProcessPeerLeaf, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getUserManagementInternal, getWorkerDeviceRegistry, hasDotNode, heapSpaceField, hostNodeIdOf, hubHostFromMeshAddress, hubMainRssBudget, installAgentHttps, installBrokerTransporter, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, integrationRegistryRecordKinds, ipcParentLink, isAddonDeploySource, isAllowedAgentDashboardReturnTo, isArrayBufferCensusReport, isArrayOutputSchema, isCollectionArrayMethod, isConstrainedCa, isContainerBridgeAddress, isCredentialKeyName, isInfraCapability, isInstalledTransporter, isLocalOnlyHostname, isModelDownloaded, isPeerEventPacket, isPrivateAddress, isProcessVerifiedMeshPeer, isRemoteForbiddenAction, isRemoteForbiddenOnAgent, isSettingsReadUnavailable, isSourceNewer, isValidAgentNodeId, isolatedBuiltinPhase, issueAgentHttpsLeaf, issueDeviceLeaf, issueMeshLeafForNode, issueMeshLeafFromCsr, keyFingerprintShort, leafFingerprintOf, levelRank, lineContainsText, lineMatches, loadAgentHttps, loadDeviceCa, loadMeshCa, loadTlsCert, localCaCommonName, localEndpointPath, localProviderLink, localSupportedPythonRuntimes, mapSignalsToInferenceHardware, meshErrorType, mintAgentUiUnlockTicket, mountNativeCapService, nextRssBudgetState, normalizeIp, onProcessNodeRegistered, onSessionsRevoked, openMeshTlsWhenRevocationsLoaded, originNodeOf, overlayGetStatus, parseAgentDashboardOrigins, parseCapAction, parseCidrList, parseRangeHeader, parseRssBudgetMb, parseTokenExpiry, parseTokenizedUrl, partitionIsolatedBuiltinIds, pemDigest, permitsIdentity, permitsName, pinnedHttpsCaFingerprint, preferencesLimitReasonOf, prepareBootTls, prepareRestoreArchive, probePlatform, processJwtSigningKey, processMeshCrl, proxyToUpstream, quarantineAddonResidue, readAllRows, readBackupEncryptionHeader, readCidrSetting, readExtraSans, readHeapSpaces, readLanHttpState, readNameConstraints, readPendingRestart, readSocketQueues, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, redactLogEntry, redactLogMeta, redactLogText, regenerateCertificate, registerEventBusService, registerHttpsListener, registerLanHttpHandler, reissueTlsLeaf, reloadHttpsListener, renewMeshCertificate, replaceUnconstrainedLocalCa, requireProcessMeshCa, resetCatalogRegistryForTests, resolveFilePath, resolveFormatRevision, resolveHwAccel, resolveNpmInvocation, retirePreviousLocalCa, revertToGeneratedCertificate, revisionWeightUrl, revokeMeshCertificate, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, servedHttpsLeafFingerprint, setHubConnected, setNodeEventInterest, setPlatformKeychainKey, setProcessAgentHttpsNames, setProcessMeshCertificateRegistry, setProcessMeshPeerTransportLookup, setProcessMeshTlsEnabler, setProcessMeshTlsListenerState, setWrapperActive, shouldReclaim, signPairingProof, signalAllRunnerGroups, socketDirectionBytes, socketDirectionMessages, splitPemCertificates, stampCallerAddonId, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, staticJwtSigningKey, storageOrchestratorRecordKinds, storeMayAnswer, storeUploadedCertificate, strandedMb, stripCamstackDeps, stripForgedIdentity, stripForwardedCaller, subscribePassthrough, systemHostFacts, udsChildLogToWorkerEntry, useStoredUploadedCertificate, validateProviderRegistrations, validateUploadedTls, verifyAgentUiUnlockTicket, verifyDeviceLeaf, verifyDeviceSignature, verifyPairingProof, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
@@ -94,7 +94,6 @@ export type { LocalProviderResolver, BrokerCapCallOpts } from "./moleculer/trpc-
94
94
  export { createProcessService } from "./moleculer/process-service.js";
95
95
  export type { ProcessInfo } from "./moleculer/process-service.js";
96
96
  export { AddonRefusedError, findAddonRefusal } from "./addon-refused-error.js";
97
- export { UNMIGRATED_SETTINGS_CODE, UNMIGRATED_SETTINGS_REMEDY, UnmigratedSettingsError, assertLegacyBlobsMigrated, type LegacyGuardClient } from "./legacy-blob-guard.js";
98
97
  export type { RunnerRefusalReport } from "./moleculer/runner-refusal.js";
99
98
  export { signalAllRunnerGroups } from "./moleculer/runner-process-group.js";
100
99
  export { CapUsageRegistry, getCapUsageRegistry, PARENT_ROUTED_PROVIDER_ADDON_ID, __resetCapUsageRegistryForTests } from "./moleculer/cap-usage-registry.js";
@@ -6,7 +6,6 @@
6
6
  */
7
7
  import type { AddonStoreRead, StoredKeyRead } from "@camstack/types";
8
8
  import { type AddonSettingsDoor } from "../addon-settings-store.js";
9
- import type { LegacyGuardClient } from "../legacy-blob-guard.js";
10
9
  import { type SectionsDoor } from "../sections-store.js";
11
10
  import type { RunnerSettingsClient } from "./runner-device-settings.js";
12
11
  /** The client calls the addon-level adapter uses, on top of the device ones. */
@@ -17,10 +16,6 @@ export interface RunnerAddonSettingsClient extends RunnerSettingsClient {
17
16
  readonly set: {
18
17
  mutate: SectionsDoor["set"];
19
18
  };
20
- /** For the boot guard against unmigrated blobs (D870). */
21
- readonly count: {
22
- query: LegacyGuardClient["count"]["query"];
23
- };
24
19
  }
25
20
  export interface RunnerAddonSettingsView {
26
21
  readAddonStore(): Promise<Record<string, unknown>>;
@@ -31,4 +26,4 @@ export interface RunnerAddonSettingsView {
31
26
  setSection(section: string, patch: Record<string, unknown>): Promise<void>;
32
27
  }
33
28
  /** @param client the hub's `settingsStore` client; `undefined` makes every call THROW. */
34
- export declare function createRunnerAddonSettings(client: RunnerAddonSettingsClient | undefined, addonId: string, before?: () => Promise<void>): RunnerAddonSettingsView;
29
+ export declare function createRunnerAddonSettings(client: RunnerAddonSettingsClient | undefined, addonId: string): RunnerAddonSettingsView;