@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,137 +1,158 @@
1
- import { ComposerApplyInput, ComposerApplyResult, ComposerUnreadableBlock, CoreBlock, IScopedLogger } from '@camstack/types';
1
+ /**
2
+ * Converging the running block processes onto the stored blocks.
3
+ *
4
+ * Reconcile against the registry, not one-shot reactions to events: a spawn
5
+ * that was missed because an event was dropped (D8 — events are telemetry) has
6
+ * to be fixed by the next pass, and an operator restarting the hub must end up
7
+ * with exactly the blocks the store says are enabled. So `converge()` is
8
+ * idempotent and safe to call from a timer, from a write, and from boot.
9
+ *
10
+ * **The supervision itself is not in this file, and that is deliberate.** A
11
+ * block that never returns is bounded by `process-service`'s `CrashSupervisor`
12
+ * (D6) — the same circuit-breaker that bounds every addon. This class only
13
+ * decides which runners should exist and translates their state back into
14
+ * something the author can read. Re-implementing backoff here would be a second
15
+ * supervisor to keep in step with the first.
16
+ *
17
+ * The invariant it exists to hold: **a block that is not running says why.**
18
+ * Every path out of `converge()` that does not end in a live process writes a
19
+ * status the operator can see, with the reason attached. A block that is
20
+ * silently absent is the failure mode this whole feature has to avoid.
21
+ */
22
+ import { type ComposerApplyInput, type ComposerApplyResult, type ComposerUnreadableBlock, type CoreBlock, type IScopedLogger } from "@camstack/types";
2
23
  /** The runner lifecycle states `$process.list` reports. `stopping`/`stopped`
3
- * are transient states of a runner on its way out and are treated as absent. */
4
- export type BlockRunnerState = 'starting' | 'running' | 'stopping' | 'stopped' | 'crashed' | 'failed';
24
+ * are transient states of a runner on its way out and are treated as absent. */
25
+ export type BlockRunnerState = "starting" | "running" | "stopping" | "stopped" | "crashed" | "failed";
5
26
  export interface BlockRunnerSnapshot {
6
- /** The runner id — equal to the generated addon id for a block runner. */
7
- readonly name: string;
8
- readonly state: BlockRunnerState;
27
+ /** The runner id — equal to the generated addon id for a block runner. */
28
+ readonly name: string;
29
+ readonly state: BlockRunnerState;
9
30
  }
10
31
  /**
11
- * The process plane, narrowed to the three things a block needs.
12
- *
13
- * Injected rather than reached for, so the decision logic above is testable
14
- * without a broker — and so the day a block runs on an agent, only this
15
- * implementation changes.
16
- */
32
+ * The process plane, narrowed to the three things a block needs.
33
+ *
34
+ * Injected rather than reached for, so the decision logic above is testable
35
+ * without a broker — and so the day a block runs on an agent, only this
36
+ * implementation changes.
37
+ */
17
38
  export interface BlockProcessHost {
18
- list(): Promise<readonly BlockRunnerSnapshot[]>;
19
- spawn(input: {
20
- runnerId: string;
21
- addonId: string;
22
- addonDir: string;
23
- }): Promise<void>;
24
- stop(runnerId: string): Promise<void>;
39
+ list(): Promise<readonly BlockRunnerSnapshot[]>;
40
+ spawn(input: {
41
+ runnerId: string;
42
+ addonId: string;
43
+ addonDir: string;
44
+ }): Promise<void>;
45
+ stop(runnerId: string): Promise<void>;
25
46
  }
26
47
  export interface BlockCompileOutcome {
27
- readonly ok: boolean;
28
- readonly error?: string;
29
- readonly js?: string;
48
+ readonly ok: boolean;
49
+ readonly error?: string;
50
+ readonly js?: string;
30
51
  }
31
52
  export interface BlockCompileSource {
32
- readonly code: string;
33
- readonly files?: Readonly<Record<string, string>>;
34
- readonly entry?: string;
53
+ readonly code: string;
54
+ readonly files?: Readonly<Record<string, string>>;
55
+ readonly entry?: string;
35
56
  }
36
57
  /** The composer's one verb, as the supervisor needs it. */
37
58
  export interface ComposerPort {
38
- apply(input: ComposerApplyInput): Promise<ComposerApplyResult>;
59
+ apply(input: ComposerApplyInput): Promise<ComposerApplyResult>;
39
60
  }
40
61
  export interface BlockSupervisorDeps {
41
- /** This node's id, already stripped of any `/<addon>` runner suffix. */
42
- readonly nodeId: string;
43
- /** Where block packages are materialised — one directory per block. */
44
- readonly root: string;
45
- readonly store: BlockStoreView;
46
- readonly host: BlockProcessHost;
47
- readonly compile: (source: BlockCompileSource) => Promise<BlockCompileOutcome>;
48
- readonly logger: IScopedLogger;
49
- /** Null when this node exposes no composer, and then every composition says so. */
50
- readonly composer: ComposerPort | null;
51
- /** The shared Blocks integration, null until it has reconciled. */
52
- readonly integrationId: () => string | null;
53
- /** False while the `core_blocks` read has not succeeded — the composer then withdraws nothing (D49). */
54
- readonly storeLoaded: () => boolean;
55
- /** Re-read `core_blocks`. Called by a converge while `storeLoaded()` is false — the converge IS the retry (D3). Never throws. */
56
- readonly loadStore: () => Promise<void>;
62
+ /** This node's id, already stripped of any `/<addon>` runner suffix. */
63
+ readonly nodeId: string;
64
+ /** Where block packages are materialised — one directory per block. */
65
+ readonly root: string;
66
+ readonly store: BlockStoreView;
67
+ readonly host: BlockProcessHost;
68
+ readonly compile: (source: BlockCompileSource) => Promise<BlockCompileOutcome>;
69
+ readonly logger: IScopedLogger;
70
+ /** Null when this node exposes no composer, and then every composition says so. */
71
+ readonly composer: ComposerPort | null;
72
+ /** The shared Blocks integration, null until it has reconciled. */
73
+ readonly integrationId: () => string | null;
74
+ /** False while the `core_blocks` read has not succeeded — the composer then withdraws nothing (D49). */
75
+ readonly storeLoaded: () => boolean;
76
+ /** Re-read `core_blocks`. Called by a converge while `storeLoaded()` is false — the converge IS the retry (D3). Never throws. */
77
+ readonly loadStore: () => Promise<void>;
57
78
  }
58
79
  /** The slice of `CoreBlockStore` the supervisor uses. */
59
80
  export interface BlockStoreView {
60
- list(): readonly CoreBlock[];
61
- get(blockId: string): CoreBlock | null;
62
- /** Stored composition rows that do not parse: sent to the composer so their devices are held (D49). */
63
- unreadableCompositions(): readonly ComposerUnreadableBlock[];
64
- setStatus(blockId: string, status: CoreBlock['status'], error?: string): Promise<void>;
81
+ list(): readonly CoreBlock[];
82
+ get(blockId: string): CoreBlock | null;
83
+ /** Stored composition rows that do not parse: sent to the composer so their devices are held (D49). */
84
+ unreadableCompositions(): readonly ComposerUnreadableBlock[];
85
+ setStatus(blockId: string, status: CoreBlock["status"], error?: string): Promise<void>;
65
86
  }
66
87
  export declare class BlockSupervisor {
67
- private readonly deps;
68
- /**
69
- * `blockId → updatedAt` of the source this supervisor last materialised.
70
- * The only way to know a running block is running YESTERDAY'S code: the
71
- * process is alive either way, and nothing on disk carries the version.
72
- * In-memory is correct — a hub restart takes every child with it.
73
- */
74
- private readonly materialized;
75
- private timer;
76
- /** Serialises passes so a timer tick cannot interleave with a write-driven
77
- * converge and spawn the same runner twice. */
78
- private inFlight;
79
- /** Composition restarts not yet delivered to the composer. Stores nothing durable (D62). */
80
- private pendingCompositionRestarts;
81
- /**
82
- * Empty applies still owed: the composer withdraws only after TWO agree
83
- * (D49), and a boot sends one. Only an apply the composer says it ACTED on
84
- * (`result.acted`) pays one off — it can refuse with the store loaded.
85
- */
86
- private emptyAppliesOwed;
87
- /** Consecutive applies that could not reach the composer: warned once per run. */
88
- private failedApplies;
89
- constructor(deps: BlockSupervisorDeps);
90
- /** Start the reconcile timer. The first pass runs immediately. */
91
- start(intervalMs: number): void;
92
- stop(): void;
93
- /** One reconcile pass. Never throws — a pass that failed must not stop the
94
- * next one, and the reason belongs in the log, not in a rejected promise
95
- * nobody awaits. */
96
- converge(): Promise<void>;
97
- /**
98
- * Stop one block's runner and let the pass that follows bring it back.
99
- *
100
- * The same path a code change already takes (see `stale` in `reconcile`),
101
- * exposed on purpose. It writes NO state of its own: forgetting the
102
- * materialised `updatedAt` is what makes the next pass treat the block as
103
- * needing a launch, and that pass is still the authority — so a restart that
104
- * raced a converge ends with one runner, not two.
105
- *
106
- * Queued on the same chain as `converge()`: a restart that interleaved with a
107
- * timer tick could stop a runner the tick had just decided was healthy and
108
- * then never re-launch it.
109
- */
110
- restart(blockId: string): Promise<void>;
111
- private runRestart;
112
- private runPass;
113
- private reconcile;
114
- /**
115
- * Send every composition placed here to the composer and mirror its verdicts
116
- * into the block status, reason verbatim. A `starting` verdict (the composer
117
- * does not trust its store or seed yet) is mirrored as `starting`; the next
118
- * pass of this same converge is the retry — no timer of its own (D3).
119
- */
120
- private convergeCompositions;
121
- /** Compile, write the package, spawn. Each failure is reported ON the block
122
- * — the author asked for this to run, so they are owed the reason it does
123
- * not. */
124
- private launch;
125
- private reportRunnerState;
126
- /**
127
- * Write a status only when it actually changed.
128
- *
129
- * A reconcile pass runs on a timer, and every write rewrites the row AND
130
- * moves `lastChangedAt` — which is the only thing telling an operator WHEN a
131
- * block last did something. Rewriting it every tick would make it read as
132
- * "just now", forever.
133
- */
134
- private report;
135
- private isPlacedHere;
136
- private stopReason;
88
+ private readonly deps;
89
+ /**
90
+ * `blockId → updatedAt` of the source this supervisor last materialised.
91
+ * The only way to know a running block is running YESTERDAY'S code: the
92
+ * process is alive either way, and nothing on disk carries the version.
93
+ * In-memory is correct — a hub restart takes every child with it.
94
+ */
95
+ private readonly materialized;
96
+ private timer;
97
+ /** Serialises passes so a timer tick cannot interleave with a write-driven
98
+ * converge and spawn the same runner twice. */
99
+ private inFlight;
100
+ /** Composition restarts not yet delivered to the composer. Stores nothing durable (D62). */
101
+ private pendingCompositionRestarts;
102
+ /**
103
+ * Empty applies still owed: the composer withdraws only after TWO agree
104
+ * (D49), and a boot sends one. Only an apply the composer says it ACTED on
105
+ * (`result.acted`) pays one off — it can refuse with the store loaded.
106
+ */
107
+ private emptyAppliesOwed;
108
+ /** Consecutive applies that could not reach the composer: warned once per run. */
109
+ private failedApplies;
110
+ constructor(deps: BlockSupervisorDeps);
111
+ /** Start the reconcile timer. The first pass runs immediately. */
112
+ start(intervalMs: number): void;
113
+ stop(): void;
114
+ /** One reconcile pass. Never throws — a pass that failed must not stop the
115
+ * next one, and the reason belongs in the log, not in a rejected promise
116
+ * nobody awaits. */
117
+ converge(): Promise<void>;
118
+ /**
119
+ * Stop one block's runner and let the pass that follows bring it back.
120
+ *
121
+ * The same path a code change already takes (see `stale` in `reconcile`),
122
+ * exposed on purpose. It writes NO state of its own: forgetting the
123
+ * materialised `updatedAt` is what makes the next pass treat the block as
124
+ * needing a launch, and that pass is still the authority — so a restart that
125
+ * raced a converge ends with one runner, not two.
126
+ *
127
+ * Queued on the same chain as `converge()`: a restart that interleaved with a
128
+ * timer tick could stop a runner the tick had just decided was healthy and
129
+ * then never re-launch it.
130
+ */
131
+ restart(blockId: string): Promise<void>;
132
+ private runRestart;
133
+ private runPass;
134
+ private reconcile;
135
+ /**
136
+ * Send every composition placed here to the composer and mirror its verdicts
137
+ * into the block status, reason verbatim. A `starting` verdict (the composer
138
+ * does not trust its store or seed yet) is mirrored as `starting`; the next
139
+ * pass of this same converge is the retry — no timer of its own (D3).
140
+ */
141
+ private convergeCompositions;
142
+ /** Compile, write the package, spawn. Each failure is reported ON the block
143
+ * — the author asked for this to run, so they are owed the reason it does
144
+ * not. */
145
+ private launch;
146
+ private reportRunnerState;
147
+ /**
148
+ * Write a status only when it actually changed.
149
+ *
150
+ * A reconcile pass runs on a timer, and every write rewrites the row AND
151
+ * moves `lastChangedAt` — which is the only thing telling an operator WHEN a
152
+ * block last did something. Rewriting it every tick would make it read as
153
+ * "just now", forever.
154
+ */
155
+ private report;
156
+ private isPlacedHere;
157
+ private stopReason;
137
158
  }
@@ -1,29 +1,29 @@
1
- import { IScopedLogger } from '@camstack/types';
1
+ import type { IScopedLogger } from "@camstack/types";
2
2
  export interface BlockTypeLib {
3
- readonly filePath: string;
4
- readonly content: string;
3
+ readonly filePath: string;
4
+ readonly content: string;
5
5
  }
6
6
  /**
7
- * Minimal Node surface for block authorship. Not `@types/node` — that package
8
- * is a build-time dep and is not in the production closure. This is enough
9
- * that Save is not refused for the builtins real scripts use (`process`,
10
- * `node:net`, `node:fs`, `node:path`, `node:http(s)`, `node:crypto`, timers).
11
- * Widen when a block hits a new missing name; do not paste the full DefinitelyTyped
12
- * tree into every getTypeDefs response.
13
- */
7
+ * Minimal Node surface for block authorship. Not `@types/node` — that package
8
+ * is a build-time dep and is not in the production closure. This is enough
9
+ * that Save is not refused for the builtins real scripts use (`process`,
10
+ * `node:net`, `node:fs`, `node:path`, `node:http(s)`, `node:crypto`, timers).
11
+ * Widen when a block hits a new missing name; do not paste the full DefinitelyTyped
12
+ * tree into every getTypeDefs response.
13
+ */
14
14
  export declare const BLOCK_NODE_AMBIENT: string;
15
15
  /**
16
- * Read every declaration a block editor needs: `@camstack/types`, `zod`, and
17
- * the Node ambient.
18
- *
19
- * Best-effort by design: a node that cannot find `@camstack/types` serves an
20
- * EMPTY types list (plus whatever else resolved), and the editor then registers
21
- * an empty lib set rather than keeping a stale one — so an author sees "no
22
- * types" instead of validating against a contract that has moved.
23
- */
16
+ * Read every declaration a block editor needs: `@camstack/types`, `zod`, and
17
+ * the Node ambient.
18
+ *
19
+ * Best-effort by design: a node that cannot find `@camstack/types` serves an
20
+ * EMPTY types list (plus whatever else resolved), and the editor then registers
21
+ * an empty lib set rather than keeping a stale one — so an author sees "no
22
+ * types" instead of validating against a contract that has moved.
23
+ */
24
24
  export declare function loadBlockTypeDefs(logger: IScopedLogger): Promise<readonly BlockTypeLib[]>;
25
25
  /**
26
- * Resolve a package's directory that holds `index.d.ts` (the types dist root).
27
- * Exported for the test that pins createRequire-over-cwd.
28
- */
26
+ * Resolve a package's directory that holds `index.d.ts` (the types dist root).
27
+ * Exported for the test that pins createRequire-over-cwd.
28
+ */
29
29
  export declare function resolveTypesDist(): Promise<string | null>;
@@ -1,62 +1,89 @@
1
- import { DeclaredDevicePorts, IScopedLogger } from '@camstack/types';
1
+ /**
2
+ * The integration every block's devices hang from.
3
+ *
4
+ * ## Why it is not the block's own
5
+ *
6
+ * A core block CANNOT own an integration, and the failure was silent and
7
+ * accumulating. Every integration READ is gated on the installed-addon set
8
+ * (`addon-registry.service.ts` → `createFilteredRegistry`), and a block's addon
9
+ * id — `core-block-<uuid>` — is never in that set: a block is materialised and
10
+ * spawned, not installed. So `getIntegrationByAddonId` answered `null` forever
11
+ * while `createIntegration` succeeded, and every block start minted a fresh row
12
+ * that `listIntegrations` then hid and `integrations.delete` refused to remove.
13
+ * Measured on the live hub 2026-08-09: `int_0021` and `int_0022`, two starts of
14
+ * one block, invisible and undeletable through the API.
15
+ *
16
+ * `core-blocks` is an installed builtin, so it passes the filter. It reconciles
17
+ * ONE integration; a block names that integration by id
18
+ * (`DeclaredDevicesSpec.integrationId`) and mints nothing. Ownership of the
19
+ * DEVICE is untouched — that is `(addonId, stableId)`, and `listOwnDevices`
20
+ * stays addon-scoped, which is what keeps one block's withdrawal sweep away
21
+ * from another block's devices now that the integration no longer distinguishes
22
+ * them.
23
+ *
24
+ * The block-side read is
25
+ * `ctx.api.integrations.getByAddonId.query({ addonId: CORE_BLOCKS_ADDON_ID })`
26
+ * — legal, because `core-blocks` is installed. No new cap method is needed.
27
+ */
28
+ import { type DeclaredDevicePorts, type IScopedLogger } from "@camstack/types";
2
29
  /** Operator-visible name of the shared integration. Seeded once, at create. */
3
30
  export declare const BLOCKS_INTEGRATION_NAME = "Blocks";
4
31
  /**
5
- * The declared-device ports minus the owner — `reconcileBlocksIntegration`
6
- * pins that itself, because getting it wrong is the entire bug above.
7
- */
8
- export type BlocksIntegrationPorts = Omit<DeclaredDevicePorts, 'addonId'>;
32
+ * The declared-device ports minus the owner — `reconcileBlocksIntegration`
33
+ * pins that itself, because getting it wrong is the entire bug above.
34
+ */
35
+ export type BlocksIntegrationPorts = Omit<DeclaredDevicePorts, "addonId">;
9
36
  /**
10
- * Reconcile the shared integration. Idempotent; safe on every boot.
11
- *
12
- * Returns its id, or `null` when this node does not own the declaration (it is
13
- * hub-owned, like every declaration).
14
- *
15
- * **The trap, stated where it lives:** `devices: []` makes every row the index
16
- * returns under this integration a withdrawal candidate. That is safe ONLY
17
- * because `listOwnDevices` is scoped to `core-blocks` and a block's devices are
18
- * owned by `core-block-<uuid>` — so the listing is empty. Two ways to destroy
19
- * that: wire `listOwnDevices` without its owner filter (it would then answer
20
- * with every device on the cluster, and the sweep would delete the blocks'), or
21
- * make `core-blocks` declare a device of its own. Neither is worth the
22
- * convenience; the spec test pins both.
23
- *
24
- * A SECOND owner hangs devices here since D659: `composer` (every composed
25
- * device). It is equally safe for the same reason — its rows are owned by
26
- * `composer`, never by `core-blocks`, and its own withdrawal sweep is scoped to
27
- * `composer`.
28
- */
37
+ * Reconcile the shared integration. Idempotent; safe on every boot.
38
+ *
39
+ * Returns its id, or `null` when this node does not own the declaration (it is
40
+ * hub-owned, like every declaration).
41
+ *
42
+ * **The trap, stated where it lives:** `devices: []` makes every row the index
43
+ * returns under this integration a withdrawal candidate. That is safe ONLY
44
+ * because `listOwnDevices` is scoped to `core-blocks` and a block's devices are
45
+ * owned by `core-block-<uuid>` — so the listing is empty. Two ways to destroy
46
+ * that: wire `listOwnDevices` without its owner filter (it would then answer
47
+ * with every device on the cluster, and the sweep would delete the blocks'), or
48
+ * make `core-blocks` declare a device of its own. Neither is worth the
49
+ * convenience; the spec test pins both.
50
+ *
51
+ * A SECOND owner hangs devices here since D659: `composer` (every composed
52
+ * device). It is equally safe for the same reason — its rows are owned by
53
+ * `composer`, never by `core-blocks`, and its own withdrawal sweep is scoped to
54
+ * `composer`.
55
+ */
29
56
  export declare function reconcileBlocksIntegration(ports: BlocksIntegrationPorts): Promise<string | null>;
30
57
  /** What {@link armBlocksIntegration} needs, and the seam its spec drives. */
31
58
  export interface ArmBlocksIntegrationOptions {
32
- readonly logger: IScopedLogger;
33
- readonly reconcile: () => Promise<string | null>;
34
- readonly onLanded: (integrationId: string | null) => void;
35
- readonly retryDelayMs?: number;
36
- readonly maxAttempts?: number;
59
+ readonly logger: IScopedLogger;
60
+ readonly reconcile: () => Promise<string | null>;
61
+ readonly onLanded: (integrationId: string | null) => void;
62
+ readonly retryDelayMs?: number;
63
+ readonly maxAttempts?: number;
37
64
  }
38
65
  /** A reconcile running in the background, and a handle to await in tests. */
39
66
  export interface ArmedBlocksIntegration {
40
- readonly settled: Promise<void>;
67
+ readonly settled: Promise<void>;
41
68
  }
42
69
  /**
43
- * Arm the shared integration WITHOUT putting it on the boot path (D167).
44
- *
45
- * `integrations` is a hub-core namespace served by the `$core-caps` Moleculer
46
- * service, and that service is registered only after `app.init()` returns —
47
- * which is where the entire addon boot runs. During boot the read is therefore
48
- * not slow, it is unanswerable: it burns the full 30 s discovery deadline and
49
- * fast-fails, with no boot-window retry (core caps are excluded from it).
50
- *
51
- * Awaited inside `onInitialize()`, that 30 s sat on the hub's SERIAL in-process
52
- * builtin loop and delayed `device-manager` — which every provider runner waits
53
- * on before it may publish a single capability. Measured 2026-08-15: builtins
54
- * stalled t0+10 s → t0+40 s, and the first camera's first keyframe landed at
55
- * t0+75 s.
56
- *
57
- * So: arm it, let boot finish, and let the retry land it a few seconds later. A
58
- * block that declares a device before it lands finds `null` and gets the
59
- * integration on the next converge tick — which was already the documented
60
- * behaviour when the API was unavailable.
61
- */
70
+ * Arm the shared integration WITHOUT putting it on the boot path (D167).
71
+ *
72
+ * `integrations` is a hub-core namespace served by the `$core-caps` Moleculer
73
+ * service, and that service is registered only after `app.init()` returns —
74
+ * which is where the entire addon boot runs. During boot the read is therefore
75
+ * not slow, it is unanswerable: it burns the full 30 s discovery deadline and
76
+ * fast-fails, with no boot-window retry (core caps are excluded from it).
77
+ *
78
+ * Awaited inside `onInitialize()`, that 30 s sat on the hub's SERIAL in-process
79
+ * builtin loop and delayed `device-manager` — which every provider runner waits
80
+ * on before it may publish a single capability. Measured 2026-08-15: builtins
81
+ * stalled t0+10 s → t0+40 s, and the first camera's first keyframe landed at
82
+ * t0+75 s.
83
+ *
84
+ * So: arm it, let boot finish, and let the retry land it a few seconds later. A
85
+ * block that declares a device before it lands finds `null` and gets the
86
+ * integration on the next converge tick — which was already the documented
87
+ * behaviour when the API was unavailable.
88
+ */
62
89
  export declare function armBlocksIntegration(options: ArmBlocksIntegrationOptions): ArmedBlocksIntegration;
@@ -1,52 +1,52 @@
1
- import { CoreBlockCompileResult, DEFAULT_CORE_BLOCK_ENTRY } from '@camstack/types';
1
+ import { type CoreBlockCompileResult, DEFAULT_CORE_BLOCK_ENTRY } from "@camstack/types";
2
2
  /** The esbuild surface this needs — injected so the compile is testable and so
3
- * the kernel does not hard-depend on a bundler at import time. */
3
+ * the kernel does not hard-depend on a bundler at import time. */
4
4
  export interface BlockTranspiler {
5
- transform(code: string, options: {
6
- loader: 'ts';
7
- format: 'esm';
8
- target: string;
9
- }): Promise<{
10
- code: string;
11
- }>;
12
- /**
13
- * Multi-file bundle. Absent on a node that only got `transform` (tests that
14
- * never exercise files); then a files compile answers "unavailable".
15
- */
16
- build?(options: BlockBundleOptions): Promise<BlockBundleResult>;
5
+ transform(code: string, options: {
6
+ loader: "ts";
7
+ format: "esm";
8
+ target: string;
9
+ }): Promise<{
10
+ code: string;
11
+ }>;
12
+ /**
13
+ * Multi-file bundle. Absent on a node that only got `transform` (tests that
14
+ * never exercise files); then a files compile answers "unavailable".
15
+ */
16
+ build?(options: BlockBundleOptions): Promise<BlockBundleResult>;
17
17
  }
18
18
  export interface BlockBundleOptions {
19
- readonly absWorkingDir: string;
20
- readonly entryPoints: readonly string[];
21
- readonly outfile: string;
22
- readonly bundle: true;
23
- readonly format: 'esm';
24
- readonly platform: 'node';
25
- readonly target: string;
26
- readonly write: true;
27
- readonly logLevel: 'silent';
19
+ readonly absWorkingDir: string;
20
+ readonly entryPoints: readonly string[];
21
+ readonly outfile: string;
22
+ readonly bundle: true;
23
+ readonly format: "esm";
24
+ readonly platform: "node";
25
+ readonly target: string;
26
+ readonly write: true;
27
+ readonly logLevel: "silent";
28
28
  }
29
29
  export interface BlockBundleResult {
30
- readonly errors: readonly {
31
- text: string;
32
- location?: {
33
- line: number;
34
- column: number;
35
- } | null;
36
- }[];
30
+ readonly errors: readonly {
31
+ text: string;
32
+ location?: {
33
+ line: number;
34
+ column: number;
35
+ } | null;
36
+ }[];
37
37
  }
38
38
  export interface CompileBlockFilesInput {
39
- readonly files: Readonly<Record<string, string>>;
40
- readonly entry?: string;
39
+ readonly files: Readonly<Record<string, string>>;
40
+ readonly entry?: string;
41
41
  }
42
42
  export type CompileBlockSource = string | CompileBlockFilesInput;
43
43
  export interface CompileBlockResult extends CoreBlockCompileResult {
44
- /** The emitted JavaScript, when it compiled. */
45
- readonly js?: string;
44
+ /** The emitted JavaScript, when it compiled. */
45
+ readonly js?: string;
46
46
  }
47
47
  /**
48
- * Never throws. A compile failure is an ANSWER — the author needs to read it,
49
- * and a thrown error at this layer becomes a 500 with the useful part buried.
50
- */
48
+ * Never throws. A compile failure is an ANSWER — the author needs to read it,
49
+ * and a thrown error at this layer becomes a 500 with the useful part buried.
50
+ */
51
51
  export declare function compileBlock(transpiler: BlockTranspiler, source: CompileBlockSource): Promise<CompileBlockResult>;
52
52
  export { DEFAULT_CORE_BLOCK_ENTRY };
@@ -1,30 +1,44 @@
1
- import { CapabilityDefinition, CapabilityLookup, CompositionBlockPatch, CompositionBlockState, CompositionSourceRef, CoreBlock, ICoreBlocksProvider, IScopedLogger } from '@camstack/types';
2
- import { NamedCompositionInput } from './core-block-store.js';
3
- import { CompositionDescriptions } from './composition-sources.js';
1
+ /**
2
+ * The composition half of the `core-blocks` provider (D659). Flat methods,
3
+ * spread into the provider: no nested sub-object.
4
+ *
5
+ * Every save is VALIDATED against the live sources, its existing target (read
6
+ * once: slim row + `getBindings`) and every stored composition first; a refusal
7
+ * names each problem by path and reason (D391) and stores nothing. The store's
8
+ * own refusals (not loaded, unknown block, a code block) propagate unchanged —
9
+ * this layer never swallows them.
10
+ *
11
+ * A customization of an existing device (D663) has no name of its own: the
12
+ * server derives it (`customizationBlockName`), refuses one the client sends,
13
+ * and never lets it move to another device. One per device, by block id (S2).
14
+ */
15
+ import { type CapabilityDefinition, type CapabilityLookup, type CompositionBlockPatch, type CompositionBlockState, type CompositionSourceRef, type CoreBlock, type ICoreBlocksProvider, type IScopedLogger } from "@camstack/types";
16
+ import type { NamedCompositionInput } from "./core-block-store.js";
17
+ import type { CompositionDescriptions } from "./composition-sources.js";
4
18
  export interface CompositionStoreView {
5
- /** False until the table has been READ; a verdict against an empty peer set would hide a cycle. */
6
- isLoaded(): boolean;
7
- list(): readonly CoreBlock[];
8
- get(blockId: string): CoreBlock | null;
9
- createComposition(input: NamedCompositionInput, createdBy: string): Promise<CoreBlock>;
10
- updateComposition(blockId: string, patch: CompositionBlockPatch): Promise<CoreBlock>;
19
+ /** False until the table has been READ; a verdict against an empty peer set would hide a cycle. */
20
+ isLoaded(): boolean;
21
+ list(): readonly CoreBlock[];
22
+ get(blockId: string): CoreBlock | null;
23
+ createComposition(input: NamedCompositionInput, createdBy: string): Promise<CoreBlock>;
24
+ updateComposition(blockId: string, patch: CompositionBlockPatch): Promise<CoreBlock>;
11
25
  }
12
26
  export interface CompositionApiDeps {
13
- readonly store: CompositionStoreView;
14
- /** One read of every source and every existing target a save names (`describeCompositionSources`). */
15
- readonly describe: (sources: readonly CompositionSourceRef[], targets: readonly CompositionSourceRef[]) => Promise<CompositionDescriptions>;
16
- readonly lookupCap: CapabilityLookup;
17
- readonly composerStates: (blockIds: readonly string[]) => Promise<readonly CompositionBlockState[]>;
18
- readonly convergeSoon: () => void;
19
- readonly logger: IScopedLogger;
20
- /** Every capability definition — the listing is derived from them, never from the registry's live state. */
21
- readonly capabilityDefinitions: readonly CapabilityDefinition[];
27
+ readonly store: CompositionStoreView;
28
+ /** One read of every source and every existing target a save names (`describeCompositionSources`). */
29
+ readonly describe: (sources: readonly CompositionSourceRef[], targets: readonly CompositionSourceRef[]) => Promise<CompositionDescriptions>;
30
+ readonly lookupCap: CapabilityLookup;
31
+ readonly composerStates: (blockIds: readonly string[]) => Promise<readonly CompositionBlockState[]>;
32
+ readonly convergeSoon: () => void;
33
+ readonly logger: IScopedLogger;
34
+ /** Every capability definition — the listing is derived from them, never from the registry's live state. */
35
+ readonly capabilityDefinitions: readonly CapabilityDefinition[];
22
36
  }
23
- export type CompositionApi = Pick<ICoreBlocksProvider, 'createComposition' | 'updateComposition' | 'getComposition' | 'listCompositions' | 'validateComposition' | 'getCustomization' | 'listComposableCaps'>;
37
+ export type CompositionApi = Pick<ICoreBlocksProvider, "createComposition" | "updateComposition" | "getComposition" | "listCompositions" | "validateComposition" | "getCustomization" | "listComposableCaps">;
24
38
  /**
25
- * Every write runs validate-then-persist on ONE chain. Validation awaits a
26
- * source read before the save lands; two unserialized saves (A reads B, B
27
- * reads A) would each be judged against a store without the other and BOTH
28
- * pass — a stored cycle nothing downstream catches.
29
- */
39
+ * Every write runs validate-then-persist on ONE chain. Validation awaits a
40
+ * source read before the save lands; two unserialized saves (A reads B, B
41
+ * reads A) would each be judged against a store without the other and BOTH
42
+ * pass — a stored cycle nothing downstream catches.
43
+ */
30
44
  export declare function buildCompositionApi(deps: CompositionApiDeps): CompositionApi;