@camstack/system 1.2.390 → 1.2.392

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 (575) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/addon-utils.js +1 -1
  7. package/dist/addon-utils.mjs +1 -1
  8. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  9. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  10. package/dist/amd-npu-B-QyyMyF.js +53 -0
  11. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  12. package/dist/auth/admin-token-manager.d.ts +37 -67
  13. package/dist/auth/api-key-manager.d.ts +8 -8
  14. package/dist/auth/auth-audit-log.d.ts +29 -49
  15. package/dist/auth/auth-manager.d.ts +127 -126
  16. package/dist/auth/cidr.d.ts +8 -8
  17. package/dist/auth/external-identity-manager.d.ts +46 -34
  18. package/dist/auth/jwt-signing-key.d.ts +14 -14
  19. package/dist/auth/login-session-manager.d.ts +95 -135
  20. package/dist/auth/parse-record.d.ts +13 -13
  21. package/dist/auth/scope-matcher.d.ts +7 -7
  22. package/dist/auth/scoped-token-manager.d.ts +62 -62
  23. package/dist/auth/token-expiry.d.ts +49 -26
  24. package/dist/auth/totp-manager.d.ts +48 -48
  25. package/dist/auth/user-management-internal.d.ts +67 -52
  26. package/dist/auth/user-manager.d.ts +58 -58
  27. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  28. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  29. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  30. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  31. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  32. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  33. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  34. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  35. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  36. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  37. package/dist/builtins/alerts/alerts.addon.js +1 -1
  38. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  39. package/dist/builtins/alerts/device-label.d.ts +6 -6
  40. package/dist/builtins/alerts/index.d.ts +1 -1
  41. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  42. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  43. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  44. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  45. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  46. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  47. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  48. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  49. package/dist/builtins/autotrack/index.d.ts +2 -2
  50. package/dist/builtins/autotrack/index.js +1 -1
  51. package/dist/builtins/autotrack/index.mjs +1 -1
  52. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  53. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  54. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  57. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  58. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  59. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  60. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  61. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  62. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  63. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  64. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  65. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  66. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  67. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  68. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  69. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  70. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  71. package/dist/builtins/calendars/calendars.addon.js +1 -1
  72. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  73. package/dist/builtins/calendars/index.d.ts +1 -1
  74. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  75. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  76. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  77. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  78. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  79. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  80. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  81. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  82. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  83. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  84. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  85. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  86. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  87. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  88. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  89. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  90. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  91. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  92. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  93. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  94. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  95. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  96. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  97. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  98. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  99. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  100. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  101. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  102. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  103. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  104. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  105. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  106. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  107. package/dist/builtins/camera-grid/index.d.ts +44 -44
  108. package/dist/builtins/camera-grid/index.js +1 -1
  109. package/dist/builtins/camera-grid/index.mjs +1 -1
  110. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  111. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  112. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  113. package/dist/builtins/composer/composed-device.d.ts +39 -17
  114. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  115. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  116. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  117. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  118. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  119. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  120. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  121. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  122. package/dist/builtins/composer/composer.addon.js +2 -2
  123. package/dist/builtins/composer/composer.addon.mjs +2 -2
  124. package/dist/builtins/composer/composer.d.ts +145 -100
  125. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  126. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  127. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  128. package/dist/builtins/composer/composition-target.d.ts +38 -34
  129. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  130. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  131. package/dist/builtins/composer/existing-target.d.ts +90 -73
  132. package/dist/builtins/composer/field-record.d.ts +26 -19
  133. package/dist/builtins/composer/graft-host.d.ts +56 -32
  134. package/dist/builtins/composer/held-claims.d.ts +26 -9
  135. package/dist/builtins/composer/index.d.ts +1 -1
  136. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  137. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  138. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  139. package/dist/builtins/composer/source-readings.d.ts +67 -61
  140. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  141. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  142. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  143. package/dist/builtins/console-logging/index.d.ts +3 -3
  144. package/dist/builtins/console-logging/index.js +1 -1
  145. package/dist/builtins/console-logging/index.mjs +1 -1
  146. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  147. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  148. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  149. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  150. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  151. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  152. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  153. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  154. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  155. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  156. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  157. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  158. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  159. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  160. package/dist/builtins/core-blocks/index.d.ts +8 -8
  161. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  162. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  163. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  164. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  165. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  166. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  167. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  168. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  169. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  170. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  171. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  172. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  173. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  174. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  175. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  176. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  177. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  178. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  179. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  180. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  181. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  182. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  183. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  184. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  185. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  186. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  187. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  188. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  189. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  190. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  191. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  192. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  193. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  194. package/dist/builtins/device-manager/index.d.ts +2 -2
  195. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  196. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  197. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  198. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  199. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  200. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  201. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  202. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  203. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  204. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  205. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  206. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  207. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  208. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  209. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  210. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  211. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  212. package/dist/builtins/hub-forwarder/index.js +1 -1
  213. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  214. package/dist/builtins/keychain/index.d.ts +1 -1
  215. package/dist/builtins/keychain/index.js +3 -3
  216. package/dist/builtins/keychain/index.mjs +3 -3
  217. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  218. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  219. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  220. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  221. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  222. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  223. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  224. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  225. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  226. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  227. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  228. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  229. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  230. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  231. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  232. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  233. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  234. package/dist/builtins/local-auth/index.d.ts +1 -1
  235. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  236. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  237. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  238. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  239. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  240. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  241. package/dist/builtins/local-network/address-book.d.ts +61 -36
  242. package/dist/builtins/local-network/index.d.ts +2 -2
  243. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  244. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  245. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  246. package/dist/builtins/local-network/local-network.addon.js +1 -1
  247. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  248. package/dist/builtins/loki-logging/index.d.ts +4 -4
  249. package/dist/builtins/loki-logging/index.js +1 -1
  250. package/dist/builtins/loki-logging/index.mjs +1 -1
  251. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  252. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  253. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  254. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  255. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  256. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  257. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  258. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  259. package/dist/builtins/native-metrics/index.d.ts +2 -2
  260. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  261. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  262. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  263. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  264. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  265. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  266. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  267. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  268. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  269. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  270. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  271. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  272. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  273. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  274. package/dist/builtins/platform-probe/index.d.ts +38 -30
  275. package/dist/builtins/platform-probe/index.js +59 -22
  276. package/dist/builtins/platform-probe/index.mjs +59 -22
  277. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  278. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  279. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  280. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  281. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  282. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  283. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  284. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  285. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  286. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  287. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  288. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  289. package/dist/builtins/snapshot/index.d.ts +2 -2
  290. package/dist/builtins/snapshot/index.js +1 -1
  291. package/dist/builtins/snapshot/index.mjs +1 -1
  292. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  293. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  294. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  295. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  296. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  297. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  298. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  299. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  300. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  301. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  302. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  303. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  304. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  305. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  306. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  307. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  308. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  309. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  310. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  311. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  312. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  313. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  314. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  315. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  316. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  317. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  318. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  319. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  320. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  321. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  322. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  323. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  324. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  325. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  326. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  327. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  328. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  329. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  330. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  331. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  332. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  333. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  334. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  335. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  336. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  337. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  338. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  339. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  340. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  341. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  342. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  343. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  344. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  345. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  346. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  347. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  348. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  349. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  350. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  351. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  352. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  353. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  354. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  355. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  356. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  357. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  358. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  359. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  360. package/dist/builtins/system-config/index.d.ts +2 -2
  361. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  362. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  363. package/dist/builtins/system-config/system-config.addon.js +39 -35
  364. package/dist/builtins/system-config/system-config.addon.mjs +320 -316
  365. package/dist/builtins/winston-logging/index.d.ts +3 -3
  366. package/dist/builtins/winston-logging/index.js +1 -1
  367. package/dist/builtins/winston-logging/index.mjs +1 -1
  368. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  369. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  370. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Nx-lrlHR.js} +19 -1
  371. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
  372. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
  373. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
  374. package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
  375. package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
  376. package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
  377. package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -1
  378. package/dist/download/hosted-model-revisions.d.ts +8 -8
  379. package/dist/download/model-download-service.d.ts +32 -32
  380. package/dist/download/model-downloader.d.ts +88 -88
  381. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
  382. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
  383. package/dist/events/event-bus.d.ts +6 -6
  384. package/dist/events/system-event-bus.d.ts +11 -11
  385. package/dist/feature/feature-manager.d.ts +6 -6
  386. package/dist/http/asset-compression.d.ts +35 -73
  387. package/dist/http/authenticated-file-server.d.ts +32 -32
  388. package/dist/http/data-plane-registry.d.ts +49 -39
  389. package/dist/http/file-data-plane.d.ts +14 -14
  390. package/dist/http/lan-http-bind.d.ts +24 -13
  391. package/dist/http/reverse-proxy.d.ts +36 -24
  392. package/dist/index.d.ts +137 -137
  393. package/dist/index.js +9 -8
  394. package/dist/index.mjs +7 -9
  395. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
  396. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
  397. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  398. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  399. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  400. package/dist/kernel/addon-installer.d.ts +609 -609
  401. package/dist/kernel/addon-loader.d.ts +133 -133
  402. package/dist/kernel/addon-manifest.d.ts +118 -118
  403. package/dist/kernel/addon-residue.d.ts +28 -32
  404. package/dist/kernel/array-buffer-census.d.ts +84 -88
  405. package/dist/kernel/bootstrap-config.d.ts +3 -3
  406. package/dist/kernel/cap-router-builder.d.ts +145 -101
  407. package/dist/kernel/capability-handle.d.ts +41 -41
  408. package/dist/kernel/capability-registry.d.ts +588 -576
  409. package/dist/kernel/config-manager.d.ts +199 -199
  410. package/dist/kernel/config-schema.d.ts +132 -128
  411. package/dist/kernel/custom-action-registry.d.ts +25 -25
  412. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  413. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  414. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  415. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  416. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  417. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  418. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  419. package/dist/kernel/deps/npm-command.d.ts +45 -45
  420. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  421. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  422. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  423. package/dist/kernel/device-registry.d.ts +27 -27
  424. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  425. package/dist/kernel/event-plane-report.d.ts +174 -174
  426. package/dist/kernel/fs-utils.d.ts +70 -70
  427. package/dist/kernel/gc-census.d.ts +119 -119
  428. package/dist/kernel/heap-spaces.d.ts +87 -87
  429. package/dist/kernel/heap-watch.d.ts +706 -706
  430. package/dist/kernel/host-externals.d.ts +8 -8
  431. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  432. package/dist/kernel/index.d.ts +115 -113
  433. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  434. package/dist/kernel/infra-capabilities.d.ts +7 -7
  435. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  436. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  437. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  438. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  439. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  440. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  441. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  442. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  443. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  444. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  445. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  446. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  447. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  448. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  449. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  450. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  451. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  452. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  453. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  454. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  455. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  456. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  457. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  458. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  459. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  460. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  461. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  462. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  463. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  464. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  465. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  466. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  467. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  468. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  469. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  470. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  471. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  472. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  473. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  474. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  475. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  476. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  477. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  478. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  479. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  480. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  481. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  482. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  483. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  484. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  485. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  486. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  487. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  488. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  489. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  490. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  491. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  492. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  493. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  494. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  495. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  496. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  497. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  498. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  499. package/dist/kernel/process-cpu-census.d.ts +55 -55
  500. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  501. package/dist/kernel/restart-coordinator.d.ts +71 -71
  502. package/dist/kernel/settings-door-view.d.ts +36 -25
  503. package/dist/kernel/settings-read-error.d.ts +29 -31
  504. package/dist/kernel/settings-view-types.d.ts +100 -95
  505. package/dist/kernel/socket-plane-report.d.ts +214 -153
  506. package/dist/kernel/status-overlay.d.ts +31 -11
  507. package/dist/kernel/storage-location-registry.d.ts +50 -50
  508. package/dist/kernel/store-settings-view.d.ts +13 -13
  509. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  510. package/dist/kernel/system-settings-policy.d.ts +15 -34
  511. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  512. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  513. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  514. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  515. package/dist/kernel/transport/cap-route.d.ts +139 -139
  516. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  517. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  518. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  519. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  520. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  521. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  522. package/dist/kernel/transport/index.d.ts +36 -36
  523. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  524. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  525. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  526. package/dist/kernel/transport/local-transport.d.ts +92 -92
  527. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  528. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  529. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  530. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  531. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  532. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  533. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  534. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  535. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  536. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  537. package/dist/kernel/workspace-detect.d.ts +7 -7
  538. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  539. package/dist/logging/formatter.d.ts +52 -25
  540. package/dist/logging/log-manager.d.ts +133 -133
  541. package/dist/logging/log-redactor.d.ts +22 -1
  542. package/dist/logging/log-ring-buffer.d.ts +57 -57
  543. package/dist/logging/logging-gate.d.ts +69 -25
  544. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  545. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  546. package/dist/logging/scoped-logger.d.ts +14 -14
  547. package/dist/network/network-quality.d.ts +8 -8
  548. package/dist/notification/notification-service.d.ts +37 -37
  549. package/dist/notification/toast-service.d.ts +18 -18
  550. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  551. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  552. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  553. package/dist/process/proc-stat.d.ts +51 -51
  554. package/dist/process/resource-monitor.d.ts +19 -19
  555. package/dist/python/python-env-manager.d.ts +10 -10
  556. package/dist/repl/interfaces.d.ts +21 -21
  557. package/dist/repl/repl-engine.d.ts +6 -6
  558. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
  559. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
  560. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
  561. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
  562. package/dist/storage/fs-storage-backend.d.ts +35 -35
  563. package/dist/storage/storage-location-manager.d.ts +21 -21
  564. package/dist/storage/storage-manager.d.ts +68 -68
  565. package/dist/tls/boot-tls.d.ts +24 -24
  566. package/dist/tls/cert-evaluation.d.ts +25 -25
  567. package/dist/tls/cert-identity.d.ts +39 -39
  568. package/dist/tls/cert-issue.d.ts +37 -17
  569. package/dist/tls/cert-manager.d.ts +86 -84
  570. package/dist/tls/https-listener.d.ts +16 -16
  571. package/dist/tls/index.d.ts +8 -8
  572. package/dist/tls/tls-actions.d.ts +18 -18
  573. package/dist/tls/tls-status.d.ts +15 -15
  574. package/dist/tls/uploaded-cert.d.ts +9 -9
  575. package/package.json +9 -3
@@ -1,226 +1,276 @@
1
- import { ISettingsBackend, SettingsCollection } from '@camstack/types';
1
+ /**
2
+ * Retired settings keys — the boot-time purge of DEAD configuration.
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * When a feature is removed, its persisted keys stay in the store. Nothing
7
+ * reads them, so nothing breaks — and that is exactly the problem: a dead key
8
+ * still LOOKS like live configuration. On 2026-08-07 an audit read
9
+ * `object-detection: yolo26m-256` out of `detection-pipeline`'s `pipelineSteps`
10
+ * blob — a global step seed removed months earlier, that no live per-camera
11
+ * dispatch has ever consulted — and spent an hour investigating a package-zone
12
+ * fault against a model the node was not running.
13
+ *
14
+ * The fix is not a hand `DELETE`. A hand delete cleans one machine once: the
15
+ * next boot of that node, and every restore of a backup taken before it, brings
16
+ * the keys back. This purge runs at every boot of the settings engine ON THE
17
+ * HUB, so the store CONVERGES no matter how it got there.
18
+ *
19
+ * ## Where it runs: the hub, and only the hub
20
+ *
21
+ * The addon settings store is hub-central. `settings-store` is a `singleton`
22
+ * cap that resolves to the hub, so every node's `ctx.settings` reads and writes
23
+ * the HUB's rows — an agent's own SQLite file holds node-local collections only
24
+ * (`platform-probe`, `metrics-native`, `hub-forwarder`). Measured 2026-08-07:
25
+ * neither agent even has a `detection-pipeline:addon-settings` table.
26
+ *
27
+ * So there is exactly one copy of the data to clean, and running the machinery
28
+ * on every node's boot would be work that can never find anything. The gate is
29
+ * {@link settingsStoreIsAuthoritativeHere}, and an agent skips SILENTLY — a
30
+ * "skipped" line on every agent boot forever is noise about work that has no
31
+ * reason to happen there.
32
+ *
33
+ * ## Contract
34
+ *
35
+ * - **Idempotent.** A clean row plans nothing, writes nothing, logs nothing.
36
+ * - **Loud exactly once**, and only when it actually deletes: one line naming
37
+ * the addon, the row and the keys.
38
+ * - **Exact-match only.** A retired key never prefix- or substring-matches, so
39
+ * the live `videoPipelineSteps` survives the retirement of `pipelineSteps`.
40
+ * `perNodeKeys` additionally match the `<key>@<nodeId>` form the per-node
41
+ * store writes (`nodeScopedKey`), and nothing else.
42
+ * - **A failed read never writes.** Same rule as `settings-read-guard.ts`: a
43
+ * read fault answering "empty" would rewrite the row to `{}` and destroy the
44
+ * live keys the purge exists to protect.
45
+ *
46
+ * ## Adding a key
47
+ *
48
+ * Only add a key you have TRACED to having no reader. The registry is a claim
49
+ * that the key is dead; it is enforced by nothing else.
50
+ */
51
+ import type { ISettingsBackend, SettingsCollection } from "@camstack/types";
2
52
  /** One retired-key declaration, scoped to a single store row. */
3
53
  export interface RetiredKeySpec {
4
- /** Addon id owning the store (the settings-store namespace). */
5
- readonly namespace: string;
6
- /** Collection inside that namespace, e.g. `addon-settings`. */
7
- readonly collection: SettingsCollection;
8
- /** Row id inside the collection, e.g. `root`. */
9
- readonly row: string;
10
- /** Keys retired verbatim. Matched exactly. */
11
- readonly keys: readonly string[];
12
- /**
13
- * Keys retired in both their bare form and their per-node form
14
- * (`<key>@<nodeId>`), which is how `nodeScopedKey` persists a
15
- * `perNode: true` schema field.
16
- */
17
- readonly perNodeKeys: readonly string[];
18
- /**
19
- * Keys retired one level DOWN, inside each object value of a map-shaped row.
20
- *
21
- * `device-manager`'s `deviceMeta` row is `{ [deviceId]: PersistedDeviceMeta }`:
22
- * the dead key is not a key of the row, it is a key of each device's meta.
23
- * Absent ⇒ the row is treated as flat and nothing nested is touched.
24
- */
25
- readonly mapValueKeys?: readonly string[];
26
- /** Why they are dead — cited in the record, not re-derived at the call site. */
27
- readonly reason: string;
54
+ /** Addon id owning the store (the settings-store namespace). */
55
+ readonly namespace: string;
56
+ /** Collection inside that namespace, e.g. `addon-settings`. */
57
+ readonly collection: SettingsCollection;
58
+ /** Row id inside the collection, e.g. `root`. */
59
+ readonly row: string;
60
+ /** Keys retired verbatim. Matched exactly. */
61
+ readonly keys: readonly string[];
62
+ /**
63
+ * Keys retired in both their bare form and their per-node form
64
+ * (`<key>@<nodeId>`), which is how `nodeScopedKey` persists a
65
+ * `perNode: true` schema field.
66
+ */
67
+ readonly perNodeKeys: readonly string[];
68
+ /**
69
+ * Keys retired one level DOWN, inside each object value of a map-shaped row.
70
+ *
71
+ * `device-manager`'s `deviceMeta` row is `{ [deviceId]: PersistedDeviceMeta }`:
72
+ * the dead key is not a key of the row, it is a key of each device's meta.
73
+ * Absent ⇒ the row is treated as flat and nothing nested is touched.
74
+ */
75
+ readonly mapValueKeys?: readonly string[];
76
+ /** Why they are dead — cited in the record, not re-derived at the call site. */
77
+ readonly reason: string;
28
78
  }
29
79
  /** What a purge pass deleted from one row. */
30
80
  export interface RetiredKeyPurgeResult {
31
- readonly addon: string;
32
- readonly collection: string;
33
- readonly row: string;
34
- readonly keys: readonly string[];
35
- /** `<mapKey>.<retiredKey>` for every nested deletion. Empty for a flat row. */
36
- readonly nested: readonly string[];
81
+ readonly addon: string;
82
+ readonly collection: string;
83
+ readonly row: string;
84
+ readonly keys: readonly string[];
85
+ /** `<mapKey>.<retiredKey>` for every nested deletion. Empty for a flat row. */
86
+ readonly nested: readonly string[];
37
87
  }
38
88
  /** The store access the purge needs. Narrow on purpose — trivially fakeable. */
39
89
  export interface RetiredKeyStore {
40
- /** Current row value, or `null` when the row does not exist. Throws on fault. */
41
- read(spec: RetiredKeySpec): Promise<Record<string, unknown> | null>;
42
- /** Replace the row with `value`. */
43
- write(spec: RetiredKeySpec, value: Record<string, unknown>): Promise<void>;
90
+ /** Current row value, or `null` when the row does not exist. Throws on fault. */
91
+ read(spec: RetiredKeySpec): Promise<Record<string, unknown> | null>;
92
+ /** Replace the row with `value`. */
93
+ write(spec: RetiredKeySpec, value: Record<string, unknown>): Promise<void>;
44
94
  }
45
95
  /**
46
- * The store access the ROW purge needs. Separate from {@link RetiredKeyStore}
47
- * because it has a different owner: a retired row is purged by the ADDON that
48
- * stopped writing it, right after it has declared the successor collection —
49
- * not by the settings engine at its own boot, which runs before any addon has
50
- * declared anything and would find every successor unreadable, forever.
51
- */
96
+ * The store access the ROW purge needs. Separate from {@link RetiredKeyStore}
97
+ * because it has a different owner: a retired row is purged by the ADDON that
98
+ * stopped writing it, right after it has declared the successor collection —
99
+ * not by the settings engine at its own boot, which runs before any addon has
100
+ * declared anything and would find every successor unreadable, forever.
101
+ */
52
102
  export interface RetiredRowStore {
53
- /** Does the row exist at all? Throws on fault. */
54
- hasRow(spec: RetiredRowSpec): Promise<boolean>;
55
- /** Delete the row outright. Idempotent. */
56
- deleteRow(spec: RetiredRowSpec): Promise<void>;
57
- /** How many rows the evidence collection holds. Throws on fault. */
58
- countRows(collection: SettingsCollection): Promise<number>;
103
+ /** Does the row exist at all? Throws on fault. */
104
+ hasRow(spec: RetiredRowSpec): Promise<boolean>;
105
+ /** Delete the row outright. Idempotent. */
106
+ deleteRow(spec: RetiredRowSpec): Promise<void>;
107
+ /** How many rows the evidence collection holds. Throws on fault. */
108
+ countRows(collection: SettingsCollection): Promise<number>;
59
109
  }
60
110
  /** What a row purge deleted. */
61
111
  export interface RetiredRowPurgeResult {
62
- readonly owner: string;
63
- readonly collection: string;
64
- readonly row: string;
112
+ readonly owner: string;
113
+ readonly collection: string;
114
+ readonly row: string;
65
115
  }
66
116
  /**
67
- * Is THIS node the one whose settings store is the cluster's authority?
68
- *
69
- * Mirrors `resolveNodeRole` (server/backend `node-role.ts`) — unset or `'hub'`
70
- * means hub, which is the launcher's own default. It is duplicated rather than
71
- * imported because `@camstack/system` is a dependency OF the backend, not the
72
- * other way round; the parse is four lines and the env var is the contract.
73
- *
74
- * Anything else answers `false`. Skipping where the purge should have run is a
75
- * missed cleanup the next hub boot fixes; running where it should not have is a
76
- * write to a store this node does not own. Only one of those is recoverable.
77
- */
117
+ * Is THIS node the one whose settings store is the cluster's authority?
118
+ *
119
+ * Mirrors `resolveNodeRole` (server/backend `node-role.ts`) — unset or `'hub'`
120
+ * means hub, which is the launcher's own default. It is duplicated rather than
121
+ * imported because `@camstack/system` is a dependency OF the backend, not the
122
+ * other way round; the parse is four lines and the env var is the contract.
123
+ *
124
+ * Anything else answers `false`. Skipping where the purge should have run is a
125
+ * missed cleanup the next hub boot fixes; running where it should not have is a
126
+ * write to a store this node does not own. Only one of those is recoverable.
127
+ */
78
128
  export declare function settingsStoreIsAuthoritativeHere(env: NodeJS.ProcessEnv): boolean;
79
129
  /** The logging surface the purge uses — a structural subset of `IScopedLogger`. */
80
130
  export interface RetiredKeyLogger {
81
- info(message: string, context?: {
82
- readonly meta?: Record<string, unknown>;
83
- }): void;
84
- warn(message: string, context?: {
85
- readonly meta?: Record<string, unknown>;
86
- }): void;
131
+ info(message: string, context?: {
132
+ readonly meta?: Record<string, unknown>;
133
+ }): void;
134
+ warn(message: string, context?: {
135
+ readonly meta?: Record<string, unknown>;
136
+ }): void;
87
137
  }
88
138
  /**
89
- * The dead keys, per row.
90
- *
91
- * ## Addressing these rows
92
- *
93
- * Every namespace below is a FORKED addon, whose `ctx.settings` comes from
94
- * `addon-context-factory` and writes `<addonId>:addon-settings` row `root`. The
95
- * scoped table is therefore the right target — unlike the hub builtin whose
96
- * mis-addressed spec is dissected at {@link RetiredRowSpec}. Confirmed per
97
- * namespace against `packages/<pkg>/package.json`'s manifest `id`.
98
- *
99
- * ## `keys` vs `perNodeKeys` is a data-loss decision, not a style choice
100
- *
101
- * `perNodeKeys` matches `<key>` AND `<key>@<nodeId>`. That is right for a key
102
- * whose per-node copies are all dead (the engine cascade, the decoder
103
- * `backend`). It is WRONG for `probedBestHwaccel` / `probedBestAudioBackend`,
104
- * where the bare key is unreachable residue but every `@<nodeId>` copy is the
105
- * node's live probe result — those go under `keys`, which is exact-match.
106
- *
107
- * `detection-pipeline` / `addon-settings` / `root` — every key in this row is
108
- * dead; the row itself is kept because the addon writes a live key into it
109
- * (`videoPipelineSteps`). `pipelineTemplates` is no longer read or written
110
- * (templates were removed, D759) and is deliberately NOT listed here: stored
111
- * template rows are left exactly as they are.
112
- *
113
- * - `pipelineSteps` / `pipelineEngine`: the persisted GLOBAL step + engine
114
- * seed. Removed with `getGlobalSteps` becoming pure — dispatch builds steps
115
- * from the orchestrator's `agentSettings` plus per-camera overrides, and
116
- * never consulted the seed. See `addon-pipeline/src/detection-pipeline/provider.ts`.
117
- * - `engineRuntime` / `engineBackend` / `engineDevice` / `probedBestEngine`:
118
- * the per-node engine CASCADE, removed with the operator-facing engine
119
- * election. Each node now runs a device-array of inference pools balanced
120
- * per session, and the node-default pool derives live from the node's own
121
- * hardware (`resolveAutoEngine`). See
122
- * `addon-pipeline/src/detection-pipeline/engine-store-keys.ts`.
123
- */
139
+ * The dead keys, per row.
140
+ *
141
+ * ## Addressing these rows
142
+ *
143
+ * Every namespace below is a FORKED addon, whose `ctx.settings` comes from
144
+ * `addon-context-factory` and writes `<addonId>:addon-settings` row `root`. The
145
+ * scoped table is therefore the right target — unlike the hub builtin whose
146
+ * mis-addressed spec is dissected at {@link RetiredRowSpec}. Confirmed per
147
+ * namespace against `packages/<pkg>/package.json`'s manifest `id`.
148
+ *
149
+ * ## `keys` vs `perNodeKeys` is a data-loss decision, not a style choice
150
+ *
151
+ * `perNodeKeys` matches `<key>` AND `<key>@<nodeId>`. That is right for a key
152
+ * whose per-node copies are all dead (the engine cascade, the decoder
153
+ * `backend`). It is WRONG for `probedBestHwaccel` / `probedBestAudioBackend`,
154
+ * where the bare key is unreachable residue but every `@<nodeId>` copy is the
155
+ * node's live probe result — those go under `keys`, which is exact-match.
156
+ *
157
+ * `detection-pipeline` / `addon-settings` / `root` — every key in this row is
158
+ * dead; the row itself is kept because the addon writes a live key into it
159
+ * (`videoPipelineSteps`). `pipelineTemplates` is no longer read or written
160
+ * (templates were removed, D759) and is deliberately NOT listed here: stored
161
+ * template rows are left exactly as they are.
162
+ *
163
+ * - `pipelineSteps` / `pipelineEngine`: the persisted GLOBAL step + engine
164
+ * seed. Removed with `getGlobalSteps` becoming pure — dispatch builds steps
165
+ * from the orchestrator's `agentSettings` plus per-camera overrides, and
166
+ * never consulted the seed. See `addon-pipeline/src/detection-pipeline/provider.ts`.
167
+ * - `engineRuntime` / `engineBackend` / `engineDevice` / `probedBestEngine`:
168
+ * the per-node engine CASCADE, removed with the operator-facing engine
169
+ * election. Each node now runs a device-array of inference pools balanced
170
+ * per session, and the node-default pool derives live from the node's own
171
+ * hardware (`resolveAutoEngine`). See
172
+ * `addon-pipeline/src/detection-pipeline/engine-store-keys.ts`.
173
+ */
124
174
  export declare const RETIRED_SETTINGS_KEYS: readonly RetiredKeySpec[];
125
175
  /**
126
- * Whole ROWS whose owner stopped writing them.
127
- *
128
- * A key purge cannot express this. It reads a row, drops keys, writes the rest
129
- * back — so retiring everything in a row leaves an empty row behind, and
130
- * retiring a row that IS a map of devices would mean listing 974 keys. What is
131
- * dead here is the row itself.
132
- *
133
- * ### Addressing: these rows are NOT namespaced
134
- *
135
- * `namespace` on a {@link RetiredKeySpec} is the settings-store namespace, and
136
- * it resolves to the table `<namespace>:<collection>`. That is right for an
137
- * addon whose `ctx.settings` came from `addon-context-factory` (a forked
138
- * runner), which writes `<addonId>:addon-settings` row `root`. A HUB BUILTIN
139
- * does not: its `ctx.settings` comes from `ConfigManager.createSettingsView`,
140
- * which is `getAllAddon` / `setAllAddon` — one row per key in the UNSCOPED
141
- * `addon-settings` table, keyed `<addonId>.<key>`.
142
- *
143
- * The device-manager is a hub builtin, so its rows are
144
- * `addon-settings` / `device-manager.deviceMeta` and never lived in
145
- * `device-manager:addon-settings`. The previous key-spec pointed at the scoped
146
- * table and was therefore a no-op on every hub that ever ran it — measured on
147
- * the 2026-08-19 evidence copy: `device-manager:addon-settings` has zero rows,
148
- * while `addon-settings` holds all six device-manager keys.
149
- *
150
- * ### Ordering: the guard is not optional
151
- *
152
- * These rows are the ONLY copy of the fleet until
153
- * `scripts/migrate-device-manager-blobs.mjs` has written
154
- * `device-manager:devices`. Purging them on a hub that has not been migrated
155
- * destroys every device. {@link purgeRetiredSettingsRows} therefore refuses
156
- * unless `evidence` — a collection that must be non-empty — actually is.
157
- */
176
+ * Whole ROWS whose owner stopped writing them.
177
+ *
178
+ * A key purge cannot express this. It reads a row, drops keys, writes the rest
179
+ * back — so retiring everything in a row leaves an empty row behind, and
180
+ * retiring a row that IS a map of devices would mean listing 974 keys. What is
181
+ * dead here is the row itself.
182
+ *
183
+ * ### Addressing: these rows are NOT namespaced
184
+ *
185
+ * `namespace` on a {@link RetiredKeySpec} is the settings-store namespace, and
186
+ * it resolves to the table `<namespace>:<collection>`. That is right for an
187
+ * addon whose `ctx.settings` came from `addon-context-factory` (a forked
188
+ * runner), which writes `<addonId>:addon-settings` row `root`. A HUB BUILTIN
189
+ * does not: its `ctx.settings` comes from `ConfigManager.createSettingsView`,
190
+ * which is `getAllAddon` / `setAllAddon` — one row per key in the UNSCOPED
191
+ * `addon-settings` table, keyed `<addonId>.<key>`.
192
+ *
193
+ * The device-manager is a hub builtin, so its rows are
194
+ * `addon-settings` / `device-manager.deviceMeta` and never lived in
195
+ * `device-manager:addon-settings`. The previous key-spec pointed at the scoped
196
+ * table and was therefore a no-op on every hub that ever ran it — measured on
197
+ * the 2026-08-19 evidence copy: `device-manager:addon-settings` has zero rows,
198
+ * while `addon-settings` holds all six device-manager keys.
199
+ *
200
+ * ### Ordering: the guard is not optional
201
+ *
202
+ * These rows are the ONLY copy of the fleet until
203
+ * `scripts/migrate-device-manager-blobs.mjs` has written
204
+ * `device-manager:devices`. Purging them on a hub that has not been migrated
205
+ * destroys every device. {@link purgeRetiredSettingsRows} therefore refuses
206
+ * unless `evidence` — a collection that must be non-empty — actually is.
207
+ */
158
208
  export interface RetiredRowSpec {
159
- /** Settings-store namespace, or absent for an unscoped collection. */
160
- readonly namespace?: string;
161
- readonly collection: SettingsCollection;
162
- /** Row id inside that collection. */
163
- readonly row: string;
164
- /** Addon that owned the row — reported, never used to address it. */
165
- readonly owner: string;
166
- /**
167
- * A collection that must hold at least one row before this one may go.
168
- * The successor of the retired data: if it is empty, the migration has not
169
- * run here and deleting is data loss, not cleanup.
170
- */
171
- readonly evidence: {
172
- readonly collection: SettingsCollection;
173
- };
174
- readonly reason: string;
209
+ /** Settings-store namespace, or absent for an unscoped collection. */
210
+ readonly namespace?: string;
211
+ readonly collection: SettingsCollection;
212
+ /** Row id inside that collection. */
213
+ readonly row: string;
214
+ /** Addon that owned the row — reported, never used to address it. */
215
+ readonly owner: string;
216
+ /**
217
+ * A collection that must hold at least one row before this one may go.
218
+ * The successor of the retired data: if it is empty, the migration has not
219
+ * run here and deleting is data loss, not cleanup.
220
+ */
221
+ readonly evidence: {
222
+ readonly collection: SettingsCollection;
223
+ };
224
+ readonly reason: string;
175
225
  }
176
226
  /**
177
- * The device-manager's three fleet blobs, replaced by one row per device in
178
- * `device-manager:devices` (`device-row-store.ts`).
179
- *
180
- * 625 KB of the `addon-settings` table's 627 KB, re-read and re-parsed on every
181
- * projection and rewritten in full on every rename. `deviceIndex` is listed
182
- * here like the other two even though it was never migrated: `addonId` and
183
- * `stableId` are columns of every row, so an addon's device list is a query,
184
- * and the one bit that was not derivable — "has `registerDevice` run?" — is the
185
- * `registered` column.
186
- */
227
+ * The device-manager's three fleet blobs, replaced by one row per device in
228
+ * `device-manager:devices` (`device-row-store.ts`).
229
+ *
230
+ * 625 KB of the `addon-settings` table's 627 KB, re-read and re-parsed on every
231
+ * projection and rewritten in full on every rename. `deviceIndex` is listed
232
+ * here like the other two even though it was never migrated: `addonId` and
233
+ * `stableId` are columns of every row, so an addon's device list is a query,
234
+ * and the one bit that was not derivable — "has `registerDevice` run?" — is the
235
+ * `registered` column.
236
+ */
187
237
  export declare const RETIRED_SETTINGS_ROWS: readonly RetiredRowSpec[];
188
238
  /**
189
- * Adapt the settings backend to {@link RetiredKeyStore}.
190
- *
191
- * `get` answering a non-object (missing row) is a MISS, not a fault: it maps to
192
- * `null` and the purge skips the row. A backend throw propagates, which is what
193
- * routes it to the "read failed, row left untouched" branch.
194
- */
239
+ * Adapt the settings backend to {@link RetiredKeyStore}.
240
+ *
241
+ * `get` answering a non-object (missing row) is a MISS, not a fault: it maps to
242
+ * `null` and the purge skips the row. A backend throw propagates, which is what
243
+ * routes it to the "read failed, row left untouched" branch.
244
+ */
195
245
  export declare function retiredKeyStoreOf(backend: ISettingsBackend): RetiredKeyStore;
196
246
  /**
197
- * Nested `<mapKey>.<retiredKey>` paths that `spec` retires inside a map-shaped
198
- * row. Pure. Values that are not plain objects are skipped, never rewritten.
199
- */
247
+ * Nested `<mapKey>.<retiredKey>` paths that `spec` retires inside a map-shaped
248
+ * row. Pure. Values that are not plain objects are skipped, never rewritten.
249
+ */
200
250
  export declare function planNestedRetiredKeyPurge(blob: Readonly<Record<string, unknown>>, spec: RetiredKeySpec): readonly string[];
201
251
  /** Keys of `blob` that `spec` retires. Pure. */
202
252
  export declare function planRetiredKeyPurge(blob: Readonly<Record<string, unknown>>, spec: RetiredKeySpec): readonly string[];
203
253
  /**
204
- * Delete every retired key present in the declared rows — on the hub.
205
- *
206
- * Off the authoritative node this is a no-op that touches nothing and says
207
- * nothing (see the module header). Returns one entry per row that actually
208
- * changed — empty when the store is already clean, which is the steady state
209
- * after the first boot that ran it.
210
- */
254
+ * Delete every retired key present in the declared rows — on the hub.
255
+ *
256
+ * Off the authoritative node this is a no-op that touches nothing and says
257
+ * nothing (see the module header). Returns one entry per row that actually
258
+ * changed — empty when the store is already clean, which is the steady state
259
+ * after the first boot that ran it.
260
+ */
211
261
  export declare function purgeRetiredSettingsKeys(store: RetiredKeyStore, logger: RetiredKeyLogger, specs?: readonly RetiredKeySpec[], env?: NodeJS.ProcessEnv): Promise<readonly RetiredKeyPurgeResult[]>;
212
262
  /**
213
- * Delete every retired ROW whose successor is populated — on the hub.
214
- *
215
- * Off the authoritative node this is a no-op that touches nothing and says
216
- * nothing, same gate as {@link purgeRetiredSettingsKeys}.
217
- *
218
- * **The evidence check is the whole safety of this function.** A retired row is
219
- * the only copy of its data until the migration has written the successor
220
- * collection, and the migration is an OFFLINE step an operator runs — it is not
221
- * part of boot. So a hub that boots the new code before being migrated must
222
- * find its blobs intact, not deleted: the purge SKIPS, loudly, and the next
223
- * boot after the migration cleans up. An evidence read that FAILS is treated
224
- * exactly like an empty one — a fault is never permission to delete.
225
- */
263
+ * Delete every retired ROW whose successor is populated — on the hub.
264
+ *
265
+ * Off the authoritative node this is a no-op that touches nothing and says
266
+ * nothing, same gate as {@link purgeRetiredSettingsKeys}.
267
+ *
268
+ * **The evidence check is the whole safety of this function.** A retired row is
269
+ * the only copy of its data until the migration has written the successor
270
+ * collection, and the migration is an OFFLINE step an operator runs — it is not
271
+ * part of boot. So a hub that boots the new code before being migrated must
272
+ * find its blobs intact, not deleted: the purge SKIPS, loudly, and the next
273
+ * boot after the migration cleans up. An evidence read that FAILS is treated
274
+ * exactly like an empty one — a fault is never permission to delete.
275
+ */
226
276
  export declare function purgeRetiredSettingsRows(store: RetiredRowStore, logger: RetiredKeyLogger, specs?: readonly RetiredRowSpec[], env?: NodeJS.ProcessEnv): Promise<readonly RetiredRowPurgeResult[]>;
@@ -1,60 +1,60 @@
1
- import { IScopedLogger } from '@camstack/types';
1
+ import type { IScopedLogger } from "@camstack/types";
2
2
  /** `UNIX_SHM_DMS`: the byte of the `-shm` a live connection holds shared. */
3
3
  export declare const SQLITE_SHM_DMS_BYTE = 128;
4
4
  /** How often the canary looks, in ms. One small procfs read. */
5
5
  export declare const SHM_LOCK_CANARY_INTERVAL_MS: number;
6
6
  /** One HELD lock from `/proc/locks`. Waiters (`->` lines) are not locks. */
7
7
  export interface ProcLock {
8
- readonly pid: number;
9
- /** The inode, as the decimal string procfs prints — never rounded through a double. */
10
- readonly inode: string;
11
- readonly start: number;
12
- /** `null` = to end of file (`EOF`). */
13
- readonly end: number | null;
8
+ readonly pid: number;
9
+ /** The inode, as the decimal string procfs prints — never rounded through a double. */
10
+ readonly inode: string;
11
+ readonly start: number;
12
+ /** `null` = to end of file (`EOF`). */
13
+ readonly end: number | null;
14
14
  }
15
15
  /**
16
- * Parse `/proc/locks`. Line shape:
17
- * `1: POSIX ADVISORY READ 3490531 08:31:3769403373 128 128`
18
- * (`id: TYPE MODE ACCESS PID MAJ:MIN:INODE START END`). A blocked waiter is
19
- * printed as `1: -> POSIX …` and holds nothing, so it is skipped; a line that
20
- * does not parse is skipped rather than guessed at.
21
- */
16
+ * Parse `/proc/locks`. Line shape:
17
+ * `1: POSIX ADVISORY READ 3490531 08:31:3769403373 128 128`
18
+ * (`id: TYPE MODE ACCESS PID MAJ:MIN:INODE START END`). A blocked waiter is
19
+ * printed as `1: -> POSIX …` and holds nothing, so it is skipped; a line that
20
+ * does not parse is skipped rather than guessed at.
21
+ */
22
22
  export declare function parseProcLocks(text: string): readonly ProcLock[];
23
23
  /** Does a lock owned by `pid` on `inode` cover the DMS byte? */
24
24
  export declare function holdsDmsLock(locks: readonly ProcLock[], pid: number, inode: string): boolean;
25
25
  /**
26
- * `unavailable` = this platform has no `/proc/locks` (said once, then the
27
- * canary stops). `unreadable` = Linux, but this look failed (the `-shm` absent,
28
- * procfs unreadable) — a different fact, and on the hub a worrying one.
29
- */
30
- export type ShmLockState = 'held' | 'missing' | 'unavailable' | 'unreadable';
26
+ * `unavailable` = this platform has no `/proc/locks` (said once, then the
27
+ * canary stops). `unreadable` = Linux, but this look failed (the `-shm` absent,
28
+ * procfs unreadable) — a different fact, and on the hub a worrying one.
29
+ */
30
+ export type ShmLockState = "held" | "missing" | "unavailable" | "unreadable";
31
31
  /** The canary's impure edges, injectable so a spec drives them. */
32
32
  export interface ShmLockCanaryDeps {
33
- readonly platform: NodeJS.Platform;
34
- readonly pid: number;
35
- /** The `-shm` inode as a decimal string; throws when the file is absent. */
36
- readonly shmInode: (shmPath: string) => string;
37
- readonly readProcLocks: () => string;
33
+ readonly platform: NodeJS.Platform;
34
+ readonly pid: number;
35
+ /** The `-shm` inode as a decimal string; throws when the file is absent. */
36
+ readonly shmInode: (shmPath: string) => string;
37
+ readonly readProcLocks: () => string;
38
38
  }
39
39
  export interface ShmLockCanaryOptions {
40
- readonly dbPath: string;
41
- readonly logger: IScopedLogger;
42
- readonly intervalMs?: number;
43
- readonly deps?: Partial<ShmLockCanaryDeps>;
40
+ readonly dbPath: string;
41
+ readonly logger: IScopedLogger;
42
+ readonly intervalMs?: number;
43
+ readonly deps?: Partial<ShmLockCanaryDeps>;
44
44
  }
45
45
  export declare class ShmLockCanary {
46
- private readonly shmPath;
47
- private readonly logger;
48
- private readonly intervalMs;
49
- private readonly deps;
50
- private timer;
51
- private last;
52
- private lastError;
53
- constructor(options: ShmLockCanaryOptions);
54
- start(): void;
55
- stop(): void;
56
- /** One look. Logs only a change of state. Public for the spec. */
57
- check(): ShmLockState;
58
- private observe;
59
- private report;
46
+ private readonly shmPath;
47
+ private readonly logger;
48
+ private readonly intervalMs;
49
+ private readonly deps;
50
+ private timer;
51
+ private last;
52
+ private lastError;
53
+ constructor(options: ShmLockCanaryOptions);
54
+ start(): void;
55
+ stop(): void;
56
+ /** One look. Logs only a change of state. Public for the spec. */
57
+ check(): ShmLockState;
58
+ private observe;
59
+ private report;
60
60
  }