@camstack/system 1.2.390 → 1.2.391

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 (503) 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/auth/admin-token-manager.d.ts +37 -67
  7. package/dist/auth/api-key-manager.d.ts +8 -8
  8. package/dist/auth/auth-audit-log.d.ts +29 -49
  9. package/dist/auth/auth-manager.d.ts +127 -126
  10. package/dist/auth/cidr.d.ts +8 -8
  11. package/dist/auth/external-identity-manager.d.ts +46 -34
  12. package/dist/auth/jwt-signing-key.d.ts +14 -14
  13. package/dist/auth/login-session-manager.d.ts +95 -135
  14. package/dist/auth/parse-record.d.ts +13 -13
  15. package/dist/auth/scope-matcher.d.ts +7 -7
  16. package/dist/auth/scoped-token-manager.d.ts +62 -62
  17. package/dist/auth/token-expiry.d.ts +49 -26
  18. package/dist/auth/totp-manager.d.ts +48 -48
  19. package/dist/auth/user-management-internal.d.ts +67 -52
  20. package/dist/auth/user-manager.d.ts +58 -58
  21. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  22. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  23. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  24. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  25. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  26. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  27. package/dist/builtins/alerts/device-label.d.ts +6 -6
  28. package/dist/builtins/alerts/index.d.ts +1 -1
  29. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  30. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  31. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  32. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  33. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  34. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  35. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  36. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  37. package/dist/builtins/autotrack/index.d.ts +2 -2
  38. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  39. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  40. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  41. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  42. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  43. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  44. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  45. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  46. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  47. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  48. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  49. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  50. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  51. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  52. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  53. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  54. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  55. package/dist/builtins/calendars/index.d.ts +1 -1
  56. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  57. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  58. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  59. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  60. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  61. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  62. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  63. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  64. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  65. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  66. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  67. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  68. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  69. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  70. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  71. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  72. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  73. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  74. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  75. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  76. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  77. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  78. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  79. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  80. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  81. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  82. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  83. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  84. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  85. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  86. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  87. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  88. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  89. package/dist/builtins/camera-grid/index.d.ts +44 -44
  90. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  91. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  92. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  93. package/dist/builtins/composer/composed-device.d.ts +39 -17
  94. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  95. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  96. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  97. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  98. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  99. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  100. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  101. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  102. package/dist/builtins/composer/composer.d.ts +145 -100
  103. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  104. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  105. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  106. package/dist/builtins/composer/composition-target.d.ts +38 -34
  107. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  108. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  109. package/dist/builtins/composer/existing-target.d.ts +90 -73
  110. package/dist/builtins/composer/field-record.d.ts +26 -19
  111. package/dist/builtins/composer/graft-host.d.ts +56 -32
  112. package/dist/builtins/composer/held-claims.d.ts +26 -9
  113. package/dist/builtins/composer/index.d.ts +1 -1
  114. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  115. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  116. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  117. package/dist/builtins/composer/source-readings.d.ts +67 -61
  118. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  119. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  120. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  121. package/dist/builtins/console-logging/index.d.ts +3 -3
  122. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  123. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  124. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  125. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  126. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  127. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  128. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  129. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  130. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  131. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  132. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  133. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  134. package/dist/builtins/core-blocks/index.d.ts +8 -8
  135. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  136. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  137. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  138. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  139. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  140. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  141. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  142. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  143. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  144. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  145. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  146. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  147. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  148. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  149. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  150. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  151. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  152. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  153. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  154. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  155. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  156. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  157. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  158. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  159. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  160. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  161. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  162. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  163. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  164. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  165. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  166. package/dist/builtins/device-manager/index.d.ts +2 -2
  167. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  168. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  169. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  170. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  171. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  172. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  173. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  174. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  175. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  176. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  177. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  178. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  179. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  180. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  181. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  182. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  183. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  184. package/dist/builtins/keychain/index.d.ts +1 -1
  185. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  186. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  187. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  188. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  189. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  190. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  191. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  192. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  193. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  194. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  195. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  196. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  197. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  198. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  199. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  200. package/dist/builtins/local-auth/index.d.ts +1 -1
  201. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  202. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  203. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  204. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  205. package/dist/builtins/local-network/address-book.d.ts +61 -36
  206. package/dist/builtins/local-network/index.d.ts +2 -2
  207. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  208. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  209. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  210. package/dist/builtins/loki-logging/index.d.ts +4 -4
  211. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  212. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  213. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  214. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  215. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  216. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  217. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  218. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  219. package/dist/builtins/native-metrics/index.d.ts +2 -2
  220. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  221. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  222. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  223. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  224. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  225. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  226. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  227. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  228. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  229. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  230. package/dist/builtins/platform-probe/index.d.ts +38 -30
  231. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  232. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  233. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  234. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  235. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  236. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  237. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  238. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  239. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  240. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  241. package/dist/builtins/snapshot/index.d.ts +2 -2
  242. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  243. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  244. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  245. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  246. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  247. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  248. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  249. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  250. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  251. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  252. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  253. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  254. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  255. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  256. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  257. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  258. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  259. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  260. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  261. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  262. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  263. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  264. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  265. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  266. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  267. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  268. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  269. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  270. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  271. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  272. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  273. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  274. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  275. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  276. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  277. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  278. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  279. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  280. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  281. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  282. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  283. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  284. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  285. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  286. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  287. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  288. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  289. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  290. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  291. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  292. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  293. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  294. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  295. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  296. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  297. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  298. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  299. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  300. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  301. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  302. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  303. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  304. package/dist/builtins/system-config/index.d.ts +2 -2
  305. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  306. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  307. package/dist/builtins/system-config/system-config.addon.js +37 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +37 -33
  309. package/dist/builtins/winston-logging/index.d.ts +3 -3
  310. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  311. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  312. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
  313. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
  314. package/dist/download/hosted-model-revisions.d.ts +8 -8
  315. package/dist/download/model-download-service.d.ts +32 -32
  316. package/dist/download/model-downloader.d.ts +88 -88
  317. package/dist/events/event-bus.d.ts +6 -6
  318. package/dist/events/system-event-bus.d.ts +11 -11
  319. package/dist/feature/feature-manager.d.ts +6 -6
  320. package/dist/http/asset-compression.d.ts +35 -73
  321. package/dist/http/authenticated-file-server.d.ts +32 -32
  322. package/dist/http/data-plane-registry.d.ts +49 -39
  323. package/dist/http/file-data-plane.d.ts +14 -14
  324. package/dist/http/lan-http-bind.d.ts +24 -13
  325. package/dist/http/reverse-proxy.d.ts +36 -24
  326. package/dist/index.d.ts +137 -137
  327. package/dist/index.js +4 -3
  328. package/dist/index.mjs +2 -4
  329. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  330. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  331. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  332. package/dist/kernel/addon-installer.d.ts +609 -609
  333. package/dist/kernel/addon-loader.d.ts +133 -133
  334. package/dist/kernel/addon-manifest.d.ts +118 -118
  335. package/dist/kernel/addon-residue.d.ts +28 -32
  336. package/dist/kernel/array-buffer-census.d.ts +84 -88
  337. package/dist/kernel/bootstrap-config.d.ts +3 -3
  338. package/dist/kernel/cap-router-builder.d.ts +145 -101
  339. package/dist/kernel/capability-handle.d.ts +41 -41
  340. package/dist/kernel/capability-registry.d.ts +588 -576
  341. package/dist/kernel/config-manager.d.ts +199 -199
  342. package/dist/kernel/config-schema.d.ts +132 -128
  343. package/dist/kernel/custom-action-registry.d.ts +25 -25
  344. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  345. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  346. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  347. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  348. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  349. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  350. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  351. package/dist/kernel/deps/npm-command.d.ts +45 -45
  352. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  353. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  354. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  355. package/dist/kernel/device-registry.d.ts +27 -27
  356. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  357. package/dist/kernel/event-plane-report.d.ts +174 -174
  358. package/dist/kernel/fs-utils.d.ts +70 -70
  359. package/dist/kernel/gc-census.d.ts +119 -119
  360. package/dist/kernel/heap-spaces.d.ts +87 -87
  361. package/dist/kernel/heap-watch.d.ts +706 -706
  362. package/dist/kernel/host-externals.d.ts +8 -8
  363. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  364. package/dist/kernel/index.d.ts +115 -113
  365. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  366. package/dist/kernel/infra-capabilities.d.ts +7 -7
  367. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  368. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  369. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  370. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  371. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  372. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  373. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  374. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  375. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  376. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  377. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  378. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  379. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  380. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  381. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  382. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  383. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  384. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  385. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  386. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  387. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  388. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  389. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  390. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  391. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  392. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  393. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  394. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  395. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  396. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  397. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  398. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  399. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  400. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  401. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  402. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  403. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  404. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  405. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  406. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  407. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  408. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  409. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  410. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  411. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  412. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  413. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  414. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  415. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  416. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  417. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  418. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  419. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  420. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  421. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  422. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  423. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  424. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  425. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  426. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  427. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  428. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  429. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  430. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  431. package/dist/kernel/process-cpu-census.d.ts +55 -55
  432. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  433. package/dist/kernel/restart-coordinator.d.ts +71 -71
  434. package/dist/kernel/settings-door-view.d.ts +36 -25
  435. package/dist/kernel/settings-read-error.d.ts +29 -31
  436. package/dist/kernel/settings-view-types.d.ts +100 -95
  437. package/dist/kernel/socket-plane-report.d.ts +214 -153
  438. package/dist/kernel/status-overlay.d.ts +31 -11
  439. package/dist/kernel/storage-location-registry.d.ts +50 -50
  440. package/dist/kernel/store-settings-view.d.ts +13 -13
  441. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  442. package/dist/kernel/system-settings-policy.d.ts +15 -34
  443. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  444. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  445. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  446. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  447. package/dist/kernel/transport/cap-route.d.ts +139 -139
  448. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  449. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  450. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  451. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  452. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  453. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  454. package/dist/kernel/transport/index.d.ts +36 -36
  455. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  456. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  457. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  458. package/dist/kernel/transport/local-transport.d.ts +92 -92
  459. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  460. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  461. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  462. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  463. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  464. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  465. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  466. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  467. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  468. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  469. package/dist/kernel/workspace-detect.d.ts +7 -7
  470. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  471. package/dist/logging/formatter.d.ts +52 -25
  472. package/dist/logging/log-manager.d.ts +133 -133
  473. package/dist/logging/log-redactor.d.ts +22 -1
  474. package/dist/logging/log-ring-buffer.d.ts +57 -57
  475. package/dist/logging/logging-gate.d.ts +69 -25
  476. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  477. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  478. package/dist/logging/scoped-logger.d.ts +14 -14
  479. package/dist/network/network-quality.d.ts +8 -8
  480. package/dist/notification/notification-service.d.ts +37 -37
  481. package/dist/notification/toast-service.d.ts +18 -18
  482. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  483. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  484. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  485. package/dist/process/proc-stat.d.ts +51 -51
  486. package/dist/process/resource-monitor.d.ts +19 -19
  487. package/dist/python/python-env-manager.d.ts +10 -10
  488. package/dist/repl/interfaces.d.ts +21 -21
  489. package/dist/repl/repl-engine.d.ts +6 -6
  490. package/dist/storage/fs-storage-backend.d.ts +35 -35
  491. package/dist/storage/storage-location-manager.d.ts +21 -21
  492. package/dist/storage/storage-manager.d.ts +68 -68
  493. package/dist/tls/boot-tls.d.ts +24 -24
  494. package/dist/tls/cert-evaluation.d.ts +25 -25
  495. package/dist/tls/cert-identity.d.ts +39 -39
  496. package/dist/tls/cert-issue.d.ts +37 -17
  497. package/dist/tls/cert-manager.d.ts +86 -84
  498. package/dist/tls/https-listener.d.ts +16 -16
  499. package/dist/tls/index.d.ts +8 -8
  500. package/dist/tls/tls-actions.d.ts +18 -18
  501. package/dist/tls/tls-status.d.ts +15 -15
  502. package/dist/tls/uploaded-cert.d.ts +9 -9
  503. package/package.json +9 -3
@@ -1,68 +1,128 @@
1
- import { IClusterBroker, IScopedLogger, ISettingsStoreProvider } from '@camstack/types';
2
1
  /**
3
- * The envelope `$hub-cap-fwd.forward` takes. Structurally
4
- * `HubCapForwardParams` minus the routing hints this door never sets: a
5
- * settings call carries no `deviceId`, pins no node (the hub's store is THE
6
- * store) and asks for no native provider.
7
- */
2
+ * The data door with the HUB behind it — an agent's `settings-store` provider.
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * Persistence is the hub's. An agent runs no `data-store-provider` engine
7
+ * (see `resolveAgentInfraCapabilities` in `server/backend/src/agent/`), so the
8
+ * `settings-store` door the storage-orchestrator registers on an agent has
9
+ * nothing local behind it. Rather than refuse — which would strand the four
10
+ * infra addons that boot inside agent-main (`hub-forwarder`, `native-metrics`,
11
+ * `platform-probe`, the orchestrator itself) with a `ctx.settings` that throws
12
+ * on every read — the door FORWARDS into the hub's own routing.
13
+ *
14
+ * This is not a new transport. It is the same `$hub-cap-fwd.forward` a forked
15
+ * addon on an agent has always used to reach a hub-hosted cap
16
+ * (`kernel/transport/hub-cap-forward.ts` names `settings-store` in its own
17
+ * header); agent-main's infra addons simply never had it, because they resolve
18
+ * `ctx.api.settingsStore` through `localProviderLink` against the process's own
19
+ * provider registry — which is exactly the local door.
20
+ *
21
+ * ## The payload crosses untouched
22
+ *
23
+ * The engine composes its table name from `namespace` + `collection` **out of
24
+ * the payload**. A forwarder that injected, defaulted or stripped a namespace
25
+ * would silently rename every table on the hub. Every method here is the same
26
+ * forward, and the args are the caller's object verbatim — the same rule
27
+ * `data-store-dispatch.ts` states for the local path, for the same reason.
28
+ *
29
+ * ## No second key space
30
+ *
31
+ * Per-node scoping already exists, one layer up, and it is per FIELD:
32
+ * `BaseAddon` persists a `perNode: true` schema field as `<key>@<nodeId>`
33
+ * inside the addon's single shared blob (`packages/types/src/addon/
34
+ * per-node-store.ts`). The agent therefore reads and writes the SAME row the
35
+ * hub's copy of that addon reads — `<addonId>:addon-settings` / `root` — and
36
+ * the two agree by construction. Introducing a second, addon-level
37
+ * `(nodeId, addonId)` row here would be a second authority over one fact,
38
+ * which is the shape [D224](../../../../../docs/decisions/adr-0224-the-freshness-of-a-camera-fact-lives-in-its-provider.md)
39
+ * forbids: the hub's copy would keep writing the bare row and nothing would
40
+ * reconcile them.
41
+ *
42
+ * ## A hub NEVER forwards
43
+ *
44
+ * {@link nodeOwnsItsDataStore} gates construction. A hub that built one would
45
+ * route its own door back into itself through `$hub-cap-fwd`, which resolves
46
+ * `settings-store` to… this. The gate reads the same env var, with the same
47
+ * default, as `settingsStoreIsAuthoritativeHere` — unset means hub, because
48
+ * that is what the launcher defaults to.
49
+ *
50
+ * ## When the hub is down
51
+ *
52
+ * Every method REJECTS. It never answers "empty": `ctx.settings`' read path
53
+ * (`addon-context-factory.ts`) distinguishes a MISS from a FAILURE precisely
54
+ * so a failed read cannot make the next read-modify-write persist the patch
55
+ * alone and destroy every field the patch does not mention. An empty answer
56
+ * would be indistinguishable from an empty store; a rejection is not. The
57
+ * operator's rule for this node is the same one that already governs it —
58
+ * without the hub an agent has no work — so a rejection is the whole of the
59
+ * degraded behaviour, and it is loud.
60
+ */
61
+ import { type IClusterBroker, type IScopedLogger, type ISettingsStoreProvider } from "@camstack/types";
62
+ /**
63
+ * The envelope `$hub-cap-fwd.forward` takes. Structurally
64
+ * `HubCapForwardParams` minus the routing hints this door never sets: a
65
+ * settings call carries no `deviceId`, pins no node (the hub's store is THE
66
+ * store) and asks for no native provider.
67
+ */
8
68
  export interface HubForwardEnvelope {
9
- readonly capName: string;
10
- readonly method: string;
11
- readonly args: unknown;
69
+ readonly capName: string;
70
+ readonly method: string;
71
+ readonly args: unknown;
12
72
  }
13
73
  /**
14
- * How a forward reaches the hub. Generic in the result so the provider's
15
- * per-method return types flow through without a cast — the transport is the
16
- * documented type boundary, exactly as it is for the generated cap routers'
17
- * remote proxies.
18
- */
74
+ * How a forward reaches the hub. Generic in the result so the provider's
75
+ * per-method return types flow through without a cast — the transport is the
76
+ * documented type boundary, exactly as it is for the generated cap routers'
77
+ * remote proxies.
78
+ */
19
79
  export type HubForwardCall = <TResult>(envelope: HubForwardEnvelope) => Promise<TResult>;
20
80
  /**
21
- * Does THIS node hold its own data store?
22
- *
23
- * Unset or `'hub'` means hub — the launcher's own default, mirrored from
24
- * `resolveNodeRole` (`server/backend/src/node-role.ts`) the same way
25
- * `settingsStoreIsAuthoritativeHere` mirrors it, and duplicated rather than
26
- * imported for the same reason: `@camstack/system` is a dependency OF the
27
- * backend, not the other way round.
28
- *
29
- * Anything else is an agent, and an agent's answer is the hub's store.
30
- */
81
+ * Does THIS node hold its own data store?
82
+ *
83
+ * Unset or `'hub'` means hub — the launcher's own default, mirrored from
84
+ * `resolveNodeRole` (`server/backend/src/node-role.ts`) the same way
85
+ * `settingsStoreIsAuthoritativeHere` mirrors it, and duplicated rather than
86
+ * imported for the same reason: `@camstack/system` is a dependency OF the
87
+ * backend, not the other way round.
88
+ *
89
+ * Anything else is an agent, and an agent's answer is the hub's store.
90
+ */
31
91
  export declare function nodeOwnsItsDataStore(env: NodeJS.ProcessEnv): boolean;
32
92
  /**
33
- * Build the `settings-store` provider that forwards to the hub.
34
- *
35
- * Every method is the same forward under the CAP name — never the engine
36
- * name. The hub routes `settings-store` to its own door, which then picks its
37
- * local engine; asking for `data-store-provider` would step around the door on
38
- * the far side and lose whatever the door is for.
39
- */
93
+ * Build the `settings-store` provider that forwards to the hub.
94
+ *
95
+ * Every method is the same forward under the CAP name — never the engine
96
+ * name. The hub routes `settings-store` to its own door, which then picks its
97
+ * local engine; asking for `data-store-provider` would step around the door on
98
+ * the far side and lose whatever the door is for.
99
+ */
40
100
  export declare function createHubSettingsForward(forward: HubForwardCall): ISettingsStoreProvider;
41
101
  /**
42
- * How long an agent waits for the hub to answer a settings call before the
43
- * door rejects. Matches the agent's own `forwardToHub` budget in
44
- * `server/backend/src/agent/main.ts` — the same hop, over the same action, so
45
- * a shorter one here would only manufacture a timeout the transport did not
46
- * have.
47
- */
48
- export declare const HUB_SETTINGS_FORWARD_TIMEOUT_MS = 60000;
102
+ * How long an agent waits for the hub to answer a settings call before the
103
+ * door rejects. Matches the agent's own `forwardToHub` budget in
104
+ * `server/backend/src/agent/main.ts` — the same hop, over the same action, so
105
+ * a shorter one here would only manufacture a timeout the transport did not
106
+ * have.
107
+ */
108
+ export declare const HUB_SETTINGS_FORWARD_TIMEOUT_MS = 6e4;
49
109
  /** What {@link resolveHubSettingsForward} needs. Narrow on purpose — fakeable. */
50
110
  export interface HubSettingsForwardOptions {
51
- readonly env: NodeJS.ProcessEnv;
52
- /** `undefined` in a forked worker or a test harness — no cluster to reach. */
53
- readonly broker: IClusterBroker | undefined;
54
- readonly logger: Pick<IScopedLogger, 'info'>;
111
+ readonly env: NodeJS.ProcessEnv;
112
+ /** `undefined` in a forked worker or a test harness — no cluster to reach. */
113
+ readonly broker: IClusterBroker | undefined;
114
+ readonly logger: Pick<IScopedLogger, "info">;
55
115
  }
56
116
  /**
57
- * The whole decision, in one place: does this node's data door have the hub
58
- * behind it, and how does it get there?
59
- *
60
- * `null` means "no remote" and the door keeps its old behaviour — it refuses
61
- * when no engine is registered. That is the answer on a hub (which IS the
62
- * store) and in any process with no cluster broker.
63
- *
64
- * Extracted from the addon so the gate is unit-testable without booting a
65
- * `BaseAddon` — the same reason `data-store-dispatch.ts` and
66
- * `provider-discovery.ts` exist.
67
- */
117
+ * The whole decision, in one place: does this node's data door have the hub
118
+ * behind it, and how does it get there?
119
+ *
120
+ * `null` means "no remote" and the door keeps its old behaviour — it refuses
121
+ * when no engine is registered. That is the answer on a hub (which IS the
122
+ * store) and in any process with no cluster broker.
123
+ *
124
+ * Extracted from the addon so the gate is unit-testable without booting a
125
+ * `BaseAddon` — the same reason `data-store-dispatch.ts` and
126
+ * `provider-discovery.ts` exist.
127
+ */
68
128
  export declare function resolveHubSettingsForward(options: HubSettingsForwardOptions): ISettingsStoreProvider | null;
@@ -1,7 +1,7 @@
1
- export type { ILocationStore } from './location-store.js';
2
- export { SqliteLocationStore } from './location-store.js';
3
- export type { FootageMigrationParticipant, LeaseParticipant, MediaMigrationParticipant, MigrationState, StorageMigrationCoordinatorDeps, StorageMigrationParticipants, } from './storage-migration-coordinator.js';
4
- export { StorageMigrationCoordinator } from './storage-migration-coordinator.js';
5
- export { StorageOrchestratorAddon, StorageOrchestratorAddon as default, } from './storage-orchestrator.addon.js';
6
- export type { ListLocationsFilter, StorageProviderLookup } from './storage-orchestrator.service.js';
7
- export { StorageOrchestratorService } from './storage-orchestrator.service.js';
1
+ export type { ILocationStore } from "./location-store.js";
2
+ export { SqliteLocationStore } from "./location-store.js";
3
+ export type { FootageMigrationParticipant, LeaseParticipant, MediaMigrationParticipant, MigrationState, StorageMigrationCoordinatorDeps, StorageMigrationParticipants } from "./storage-migration-coordinator.js";
4
+ export { StorageMigrationCoordinator } from "./storage-migration-coordinator.js";
5
+ export { StorageOrchestratorAddon, StorageOrchestratorAddon as default } from "./storage-orchestrator.addon.js";
6
+ export type { ListLocationsFilter, StorageProviderLookup } from "./storage-orchestrator.service.js";
7
+ export { StorageOrchestratorService } from "./storage-orchestrator.service.js";
@@ -1,47 +1,71 @@
1
- import { IScopedLogger, IStorageOccupancyProvider } from '@camstack/types';
1
+ /**
2
+ * How much of each location CamStack ITSELF holds (D388) — the slice
3
+ * `listLocations` stamps from.
4
+ *
5
+ * ## Why this is a slice and not a call
6
+ *
7
+ * `listLocations` is on the admin UI's hot path. Fanning out a per-addon RPC
8
+ * synchronously on every list would put a cross-process round trip (and, in the
9
+ * providers, an indexed SQL aggregate) in front of a screen that repaints on
10
+ * every navigation, and a slow or dead addon would hang the whole page.
11
+ *
12
+ * So this follows D224's freshness discipline: the figure has a WINDOW, a read
13
+ * is answered from the slice — empty included — and a read NEVER joins a
14
+ * refresh already in flight. Staleness costs the operator a figure that is up
15
+ * to one window old, which the stamped `measuredAtMs` tells them; the
16
+ * alternative costs them the screen.
17
+ *
18
+ * ## Absence is the answer (D315)
19
+ *
20
+ * A location no provider reported for is UNKNOWN, and this module has no code
21
+ * path that turns that into a zero. `ownedFor` returns `undefined`, the
22
+ * orchestrator omits the field, and a UI omits the segment. A share drawn at
23
+ * zero would claim we occupy nothing, which is a different and false statement.
24
+ */
25
+ import type { IScopedLogger, IStorageOccupancyProvider } from "@camstack/types";
2
26
  /** What one location's owners hold there, merged. */
3
27
  export interface LocationOwnedBytes {
4
- readonly bytes: number;
5
- /** The OLDEST contributing measurement — honest about the whole figure
6
- * rather than about its freshest part. */
7
- readonly measuredAtMs: number;
28
+ readonly bytes: number;
29
+ /** The OLDEST contributing measurement — honest about the whole figure
30
+ * rather than about its freshest part. */
31
+ readonly measuredAtMs: number;
8
32
  }
9
33
  export interface OccupancySliceDeps {
10
- readonly logger: IScopedLogger;
11
- /** Registered `storage-occupancy` providers (cross-process proxies). */
12
- readonly getProviders: () => readonly IStorageOccupancyProvider[];
13
- /** Every location worth asking about, at refresh time. */
14
- readonly locationIds: () => readonly string[];
15
- readonly now: () => number;
16
- /** How long a figure stays servable before a refresh is kicked. */
17
- readonly staleAfterMs?: number;
34
+ readonly logger: IScopedLogger;
35
+ /** Registered `storage-occupancy` providers (cross-process proxies). */
36
+ readonly getProviders: () => readonly IStorageOccupancyProvider[];
37
+ /** Every location worth asking about, at refresh time. */
38
+ readonly locationIds: () => readonly string[];
39
+ readonly now: () => number;
40
+ /** How long a figure stays servable before a refresh is kicked. */
41
+ readonly staleAfterMs?: number;
18
42
  }
19
43
  export declare class LocationOccupancySlice {
20
- private readonly deps;
21
- private slice;
22
- private refreshing;
23
- private lastRefreshMs;
24
- constructor(deps: OccupancySliceDeps);
25
- /**
26
- * What the last completed refresh saw for this location, or `undefined` when
27
- * nothing has reported for it. There is deliberately no fallback: unknown is
28
- * the truth about a location nobody owns bytes on.
29
- */
30
- ownedFor(locationId: string): LocationOwnedBytes | undefined;
31
- /**
32
- * Serve-and-revalidate. Called by every read: it returns immediately, and
33
- * kicks a background refresh when the slice is older than the window. A read
34
- * never awaits, and never joins a refresh already in flight (D224).
35
- */
36
- serveAndRevalidate(): void;
37
- /**
38
- * Ask every provider once and replace the slice.
39
- *
40
- * A provider that throws contributes NOTHING and is logged — it does not
41
- * contribute a zero, and it does not take the other providers' answers down
42
- * with it. A location that ends up with no contribution at all simply stays
43
- * out of the slice, which is what makes it read back as unknown.
44
- */
45
- refresh(): Promise<void>;
46
- private runRefresh;
44
+ private readonly deps;
45
+ private slice;
46
+ private refreshing;
47
+ private lastRefreshMs;
48
+ constructor(deps: OccupancySliceDeps);
49
+ /**
50
+ * What the last completed refresh saw for this location, or `undefined` when
51
+ * nothing has reported for it. There is deliberately no fallback: unknown is
52
+ * the truth about a location nobody owns bytes on.
53
+ */
54
+ ownedFor(locationId: string): LocationOwnedBytes | undefined;
55
+ /**
56
+ * Serve-and-revalidate. Called by every read: it returns immediately, and
57
+ * kicks a background refresh when the slice is older than the window. A read
58
+ * never awaits, and never joins a refresh already in flight (D224).
59
+ */
60
+ serveAndRevalidate(): void;
61
+ /**
62
+ * Ask every provider once and replace the slice.
63
+ *
64
+ * A provider that throws contributes NOTHING and is logged — it does not
65
+ * contribute a zero, and it does not take the other providers' answers down
66
+ * with it. A location that ends up with no contribution at all simply stays
67
+ * out of the slice, which is what makes it read back as unknown.
68
+ */
69
+ refresh(): Promise<void>;
70
+ private runRefresh;
47
71
  }
@@ -1,19 +1,19 @@
1
- import { LocationOccupancy } from './storage-orchestrator.service.js';
1
+ import type { LocationOccupancy } from "./storage-orchestrator.service.js";
2
2
  /**
3
- * Class → directories under `<root>/<camera>/`. Same map as the discard
4
- * wipe (`DISCARD_SUBTREES` in the recorder / pipeline-analytics addons).
5
- * Types not listed keep the legacy "any non-dot entry at the root" rule
6
- * (backups, addon-data, …).
7
- */
3
+ * Class → directories under `<root>/<camera>/`. Same map as the discard
4
+ * wipe (`DISCARD_SUBTREES` in the recorder / pipeline-analytics addons).
5
+ * Types not listed keep the legacy "any non-dot entry at the root" rule
6
+ * (backups, addon-data, …).
7
+ */
8
8
  export declare const STORAGE_CLASS_SUBTREES: Readonly<Record<string, readonly string[]>>;
9
9
  /**
10
- * Occupancy of `basePath` for a location of `type`.
11
- *
12
- * - missing root → `empty` (nothing this delete can strand)
13
- * - class-mapped type → occupied iff any `<camera>/<subtree>` has an entry
14
- * - other types → occupied iff the root has a non-dot entry
15
- */
10
+ * Occupancy of `basePath` for a location of `type`.
11
+ *
12
+ * - missing root → `empty` (nothing this delete can strand)
13
+ * - class-mapped type → occupied iff any `<camera>/<subtree>` has an entry
14
+ * - other types → occupied iff the root has a non-dot entry
15
+ */
16
16
  export declare function probeLocalDirectoryOccupancy(input: {
17
- readonly type: string;
18
- readonly basePath: string;
17
+ readonly type: string;
18
+ readonly basePath: string;
19
19
  }): Promise<LocationOccupancy>;
@@ -1,20 +1,20 @@
1
1
  /** statfs of the location's volume, when this node could take it. */
2
2
  export interface LocationVolumeCapacity {
3
- readonly totalBytes: number;
4
- readonly availableBytes: number;
3
+ readonly totalBytes: number;
4
+ readonly availableBytes: number;
5
5
  }
6
6
  /** One line, at most once per location per process. */
7
7
  export type ProtectionNotice = (message: string, meta: Record<string, unknown>) => void;
8
8
  /**
9
- * The free-space percentage the guard enforces for one location.
10
- *
11
- * Order:
12
- * 1. `config.minFreeGb`, converted against the volume total — the operator's
13
- * criterion in the unit they set it in.
14
- * 2. `config.minFreePercent` — the legacy per-location override, and the
15
- * fallback when `minFreeGb` cannot be converted (no volume total: a
16
- * remote-node or unstattable location). Falling back is the right
17
- * direction — the alternative is a location with no guard at all.
18
- * 3. the provider's declared default.
19
- */
9
+ * The free-space percentage the guard enforces for one location.
10
+ *
11
+ * Order:
12
+ * 1. `config.minFreeGb`, converted against the volume total — the operator's
13
+ * criterion in the unit they set it in.
14
+ * 2. `config.minFreePercent` — the legacy per-location override, and the
15
+ * fallback when `minFreeGb` cannot be converted (no volume total: a
16
+ * remote-node or unstattable location). Falling back is the right
17
+ * direction — the alternative is a location with no guard at all.
18
+ * 3. the provider's declared default.
19
+ */
20
20
  export declare function resolveMinFreePercent(config: Readonly<Record<string, unknown>>, providerDefaultPercent: number, capacity: LocationVolumeCapacity | null, notice: ProtectionNotice): number;
@@ -1,52 +1,52 @@
1
1
  /**
2
- * Moving a location's bytes when its root is re-pointed.
3
- *
4
- * ## Why this exists, and why only for singletons
5
- *
6
- * A `multi` location moves the sanctioned way: register a second instance,
7
- * drain the first, watch it empty (D386). A **singleton** cannot — the
8
- * cardinality guard in `upsertLocation` refuses the second instance by
9
- * declaration, so there is no destination to drain into. For those, editing
10
- * the `basePath` IS the migration, and either it carries the data or the data
11
- * is stranded.
12
- *
13
- * It was stranded. On 2026-09-08 the `artifacts` root moved and 320 enrolled
14
- * gallery blobs stayed at the previous path — invisible until every face in the
15
- * Review panel answered 404, and one boot away from being collected as "the
16
- * pixels are gone" by a reconcile that had no way to know better.
17
- *
18
- * ## The order is the safety property
19
- *
20
- * copy → verify → (caller saves the row) → delete. A crash at any point leaves
21
- * the bytes somewhere that a location still points at: before the row moves,
22
- * that is the OLD root; after it, the new one holds a verified copy. Nothing
23
- * here deletes anything until every file has landed and been read back.
24
- *
25
- * A failure ABORTS with nothing deleted, so the caller can refuse the edit and
26
- * leave the operator pointing at intact data.
27
- *
28
- * I/O is injected: the walk and the ordering are what matter and they are
29
- * testable without a filesystem.
30
- */
2
+ * Moving a location's bytes when its root is re-pointed.
3
+ *
4
+ * ## Why this exists, and why only for singletons
5
+ *
6
+ * A `multi` location moves the sanctioned way: register a second instance,
7
+ * drain the first, watch it empty (D386). A **singleton** cannot — the
8
+ * cardinality guard in `upsertLocation` refuses the second instance by
9
+ * declaration, so there is no destination to drain into. For those, editing
10
+ * the `basePath` IS the migration, and either it carries the data or the data
11
+ * is stranded.
12
+ *
13
+ * It was stranded. On 2026-09-08 the `artifacts` root moved and 320 enrolled
14
+ * gallery blobs stayed at the previous path — invisible until every face in the
15
+ * Review panel answered 404, and one boot away from being collected as "the
16
+ * pixels are gone" by a reconcile that had no way to know better.
17
+ *
18
+ * ## The order is the safety property
19
+ *
20
+ * copy → verify → (caller saves the row) → delete. A crash at any point leaves
21
+ * the bytes somewhere that a location still points at: before the row moves,
22
+ * that is the OLD root; after it, the new one holds a verified copy. Nothing
23
+ * here deletes anything until every file has landed and been read back.
24
+ *
25
+ * A failure ABORTS with nothing deleted, so the caller can refuse the edit and
26
+ * leave the operator pointing at intact data.
27
+ *
28
+ * I/O is injected: the walk and the ordering are what matter and they are
29
+ * testable without a filesystem.
30
+ */
31
31
  /** The four operations a move needs, in the caller's own terms. */
32
32
  export interface RepointMoveIo {
33
- /** Entries directly under `prefix` (undefined = the root), as relative paths. */
34
- list(prefix: string | undefined): Promise<readonly string[]>;
35
- /** Bytes of a source file. THROWS when the path is a directory. */
36
- read(relativePath: string): Promise<Uint8Array<ArrayBuffer>>;
37
- /** Write into the destination root. */
38
- write(relativePath: string, data: Uint8Array<ArrayBuffer>): Promise<void>;
39
- /** Read back from the DESTINATION, to prove the copy landed. */
40
- readBack(relativePath: string): Promise<Uint8Array<ArrayBuffer>>;
41
- /** Remove one file from the source root. */
42
- deleteSource(relativePath: string): Promise<void>;
33
+ /** Entries directly under `prefix` (undefined = the root), as relative paths. */
34
+ list(prefix: string | undefined): Promise<readonly string[]>;
35
+ /** Bytes of a source file. THROWS when the path is a directory. */
36
+ read(relativePath: string): Promise<Uint8Array<ArrayBuffer>>;
37
+ /** Write into the destination root. */
38
+ write(relativePath: string, data: Uint8Array<ArrayBuffer>): Promise<void>;
39
+ /** Read back from the DESTINATION, to prove the copy landed. */
40
+ readBack(relativePath: string): Promise<Uint8Array<ArrayBuffer>>;
41
+ /** Remove one file from the source root. */
42
+ deleteSource(relativePath: string): Promise<void>;
43
43
  }
44
44
  export interface RepointMoveResult {
45
- readonly files: number;
46
- readonly bytes: number;
45
+ readonly files: number;
46
+ readonly bytes: number;
47
47
  }
48
48
  /**
49
- * Copy every file from the source root to the destination, verify each, then
50
- * delete the originals. Throws with NOTHING deleted if any copy fails.
51
- */
49
+ * Copy every file from the source root to the destination, verify each, then
50
+ * delete the originals. Throws with NOTHING deleted if any copy fails.
51
+ */
52
52
  export declare function moveLocationTree(io: RepointMoveIo): Promise<RepointMoveResult>;
@@ -1,44 +1,80 @@
1
- import { PhysicalRoot } from '@camstack/types/node';
1
+ /**
2
+ * Two locations of the SAME type must not share a physical root (D389).
3
+ *
4
+ * ## What is legitimate and must stay legitimate
5
+ *
6
+ * Two locations of DIFFERENT types on one root is a designed configuration, not
7
+ * an accident: stock `recordings` and `recordingsLow` deliberately share a root
8
+ * (D327 scores occupancy by class SUBTREE — `high|mid` against `low` — and the
9
+ * recorder's eviction domain merges same-root aliases into one oldest-first
10
+ * pool on purpose). A check that refused every shared root would break the
11
+ * default install.
12
+ *
13
+ * ## What is a collision
14
+ *
15
+ * Two locations of the same TYPE on one physical root. Their class subtrees are
16
+ * identical, so every per-location figure double-counts and every deletion
17
+ * under one is a deletion under the other. The recorder already has a late
18
+ * parachute for this — `demoteWritableAliasConflicts` demotes the extras to
19
+ * read-only and logs — but by then the operator has created the row and may
20
+ * have pointed configuration at it. This refuses it at the door, and the
21
+ * parachute stays: it still guards rows created before this check existed, and
22
+ * a guard that only exists at the door is not a guard.
23
+ *
24
+ * Containment counts, in BOTH directions. A location nested inside another's
25
+ * tree is worse than two equal roots: the accounting overlaps and a deletion
26
+ * under the outer one can take the inner one's footage with it.
27
+ *
28
+ * ## "They collide" is not "I cannot tell"
29
+ *
30
+ * A location on another node, or behind a remote provider, cannot be resolved
31
+ * from here. An unresolvable root produces a WARNING and lets the write
32
+ * through — never a refusal. Refusing on an unanswerable read blocks the
33
+ * operator on a doubt (D49's spirit: a fallible read is not the gate).
34
+ *
35
+ * Pure: the realpath derivation is injected.
36
+ */
37
+ import type { PhysicalRoot } from "@camstack/types/node";
2
38
  /** The minimum a row must expose for this check. */
3
39
  export interface RootCollisionCandidate {
4
- readonly id: string;
5
- readonly type: string;
6
- /** Which node the path lives on. Two locations on DIFFERENT nodes can never
7
- * collide, however identical their paths look. */
8
- readonly nodeId?: string;
9
- readonly config: Readonly<Record<string, unknown>>;
40
+ readonly id: string;
41
+ readonly type: string;
42
+ /** Which node the path lives on. Two locations on DIFFERENT nodes can never
43
+ * collide, however identical their paths look. */
44
+ readonly nodeId?: string;
45
+ readonly config: Readonly<Record<string, unknown>>;
10
46
  }
11
47
  /** How this location's physical root was derived, or that it could not be. */
12
48
  export type ResolveRoot = (basePath: string) => PhysicalRoot;
13
49
  /** A same-type root collision, with everything the message needs to name it. */
14
50
  export interface RootCollision {
15
- readonly otherId: string;
16
- readonly type: string;
17
- readonly sharedRoot: string;
18
- /** `equal` — the same directory. `nested` — one inside the other's tree. */
19
- readonly kind: 'equal' | 'nested';
51
+ readonly otherId: string;
52
+ readonly type: string;
53
+ readonly sharedRoot: string;
54
+ /** `equal` — the same directory. `nested` — one inside the other's tree. */
55
+ readonly kind: "equal" | "nested";
20
56
  }
21
57
  /** Why the check could not be made. Never a refusal — the caller warns. */
22
58
  export interface RootCollisionUnknown {
23
- readonly reason: 'no-base-path' | 'unresolvable';
24
- readonly detail: string;
59
+ readonly reason: "no-base-path" | "unresolvable";
60
+ readonly detail: string;
25
61
  }
26
62
  export type RootCollisionVerdict = {
27
- readonly outcome: 'clear';
63
+ readonly outcome: "clear";
28
64
  } | {
29
- readonly outcome: 'collides';
30
- readonly collision: RootCollision;
65
+ readonly outcome: "collides";
66
+ readonly collision: RootCollision;
31
67
  } | {
32
- readonly outcome: 'unknown';
33
- readonly unknown: RootCollisionUnknown;
68
+ readonly outcome: "unknown";
69
+ readonly unknown: RootCollisionUnknown;
34
70
  };
35
71
  /**
36
- * Does `next` collide with anything already stored?
37
- *
38
- * `existing` is every other location; the row being EDITED is excluded by id,
39
- * so re-saving a location without moving its root never refuses itself.
40
- */
72
+ * Does `next` collide with anything already stored?
73
+ *
74
+ * `existing` is every other location; the row being EDITED is excluded by id,
75
+ * so re-saving a location without moving its root never refuses itself.
76
+ */
41
77
  export declare function findRootCollision(next: RootCollisionCandidate, existing: Iterable<RootCollisionCandidate>, resolveRoot: ResolveRoot, storedSelf?: RootCollisionCandidate): RootCollisionVerdict;
42
78
  /** The operator-facing refusal. Names the location it collides with and the
43
- * shared root — a refusal that says only "conflict" makes the operator hunt. */
79
+ * shared root — a refusal that says only "conflict" makes the operator hunt. */
44
80
  export declare function rootCollisionMessage(id: string, collision: RootCollision): string;