@camstack/system 1.2.389 → 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 -93
  307. package/dist/builtins/system-config/system-config.addon.js +46 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +46 -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,214 +1,214 @@
1
1
  /**
2
- * In-memory retention for the per-node load snapshots — the shared analogue of
3
- * the log ring (`packages/system/src/logging/partitioned-log-buffer.ts`), and
4
- * built to the same shape for the same reason: a fixed-capacity circular
5
- * partition per key, plus **declared hard ceilings** on the total.
6
- *
7
- * ## What this is, and what it deliberately is not
8
- *
9
- * `native-metrics` emits `metrics.node-processes-snapshot` every 20 s on every
10
- * node whether or not anyone is watching (D250). Until now nobody kept it: the
11
- * Load charts accumulated 180 points inside the browser tab, so closing the
12
- * page threw the hour away and two operators looking at the same node saw two
13
- * different windows.
14
- *
15
- * This ring RETAINS what already arrives. It adds no timer, no sampler, no
16
- * probe and no new event — subscribing to a fan-out that exists is the whole
17
- * mechanism. It is **not** durable retention: nothing here reaches disk, and a
18
- * stored series remains its own decision with its own resolution, retention and
19
- * owner (D250 § Consequences).
20
- *
21
- * ## It does not know what a load snapshot looks like
22
- *
23
- * `TProcess` is a type parameter and the payload is stored **verbatim**. The
24
- * ring reads exactly two things off the envelope — which node, and when — and
25
- * never a field of a process row. A field added to the snapshot (a `deviceId`
26
- * next to the pid, say) flows through untouched, because there is nothing here
27
- * for it to flow through.
28
- *
29
- * ## Measured cost — see `docs/architecture/load-ledger.md`
30
- *
31
- * Measured, not estimated, against the real process payloads of the live
32
- * cluster (`metricsProvider.listNodeProcesses` on all three nodes: 42 + 20 + 14
33
- * rows) replayed 180 deep and weighed as V8 retained heap after a forced GC:
34
- *
35
- * **464 B per process row**, so the live cluster's full hour —
36
- * 3 nodes x 180 samples x 76 rows = 13 680 rows — is **6.06 MiB**.
37
- *
38
- * Linear in rows (checked at 360 samples: 463.9 B/row). Every ceiling below is
39
- * expressed in ROWS for that reason: rows are what the memory is proportional
40
- * to, and samples are not.
41
- */
2
+ * In-memory retention for the per-node load snapshots — the shared analogue of
3
+ * the log ring (`packages/system/src/logging/partitioned-log-buffer.ts`), and
4
+ * built to the same shape for the same reason: a fixed-capacity circular
5
+ * partition per key, plus **declared hard ceilings** on the total.
6
+ *
7
+ * ## What this is, and what it deliberately is not
8
+ *
9
+ * `native-metrics` emits `metrics.node-processes-snapshot` every 20 s on every
10
+ * node whether or not anyone is watching (D250). Until now nobody kept it: the
11
+ * Load charts accumulated 180 points inside the browser tab, so closing the
12
+ * page threw the hour away and two operators looking at the same node saw two
13
+ * different windows.
14
+ *
15
+ * This ring RETAINS what already arrives. It adds no timer, no sampler, no
16
+ * probe and no new event — subscribing to a fan-out that exists is the whole
17
+ * mechanism. It is **not** durable retention: nothing here reaches disk, and a
18
+ * stored series remains its own decision with its own resolution, retention and
19
+ * owner (D250 § Consequences).
20
+ *
21
+ * ## It does not know what a load snapshot looks like
22
+ *
23
+ * `TProcess` is a type parameter and the payload is stored **verbatim**. The
24
+ * ring reads exactly two things off the envelope — which node, and when — and
25
+ * never a field of a process row. A field added to the snapshot (a `deviceId`
26
+ * next to the pid, say) flows through untouched, because there is nothing here
27
+ * for it to flow through.
28
+ *
29
+ * ## Measured cost — see `docs/architecture/load-ledger.md`
30
+ *
31
+ * Measured, not estimated, against the real process payloads of the live
32
+ * cluster (`metricsProvider.listNodeProcesses` on all three nodes: 42 + 20 + 14
33
+ * rows) replayed 180 deep and weighed as V8 retained heap after a forced GC:
34
+ *
35
+ * **464 B per process row**, so the live cluster's full hour —
36
+ * 3 nodes x 180 samples x 76 rows = 13 680 rows — is **6.06 MiB**.
37
+ *
38
+ * Linear in rows (checked at 360 samples: 463.9 B/row). Every ceiling below is
39
+ * expressed in ROWS for that reason: rows are what the memory is proportional
40
+ * to, and samples are not.
41
+ */
42
42
  /** One retained snapshot: when it arrived, and the payload exactly as it came. */
43
43
  export interface LoadSample<TProcess> {
44
- readonly atMs: number;
45
- readonly processes: readonly TProcess[];
44
+ readonly atMs: number;
45
+ readonly processes: readonly TProcess[];
46
46
  }
47
47
  /** What a reader gets back for one node. */
48
48
  export interface NodeLoadSeries<TProcess> {
49
- readonly nodeId: string;
50
- /** Oldest-first, and filtered by the caller's `sinceMs` when given. */
51
- readonly samples: readonly LoadSample<TProcess>[];
52
- /** Samples retained for this node right now — independent of `sinceMs`. */
53
- readonly retainedSamples: number;
54
- /** Oldest retained sample's timestamp, or `null` when nothing is retained. */
55
- readonly oldestAtMs: number | null;
56
- /** The per-node ceiling in force, so a caller can say what it is looking at. */
57
- readonly capacity: number;
49
+ readonly nodeId: string;
50
+ /** Oldest-first, and filtered by the caller's `sinceMs` when given. */
51
+ readonly samples: readonly LoadSample<TProcess>[];
52
+ /** Samples retained for this node right now — independent of `sinceMs`. */
53
+ readonly retainedSamples: number;
54
+ /** Oldest retained sample's timestamp, or `null` when nothing is retained. */
55
+ readonly oldestAtMs: number | null;
56
+ /** The per-node ceiling in force, so a caller can say what it is looking at. */
57
+ readonly capacity: number;
58
58
  }
59
59
  /**
60
- * Per-node ceiling, in SAMPLES.
61
- *
62
- * 180 at the 20 s process-snapshot cadence is **one hour** — the window the
63
- * operator asked to keep, and the same 180 the browser buffer used before this
64
- * existed (`LOAD_SERIES_MAX_POINTS`). The cap is on points, not on age, so a
65
- * node whose emits are deduped away covers a longer wall-clock window at the
66
- * same cost.
67
- */
60
+ * Per-node ceiling, in SAMPLES.
61
+ *
62
+ * 180 at the 20 s process-snapshot cadence is **one hour** — the window the
63
+ * operator asked to keep, and the same 180 the browser buffer used before this
64
+ * existed (`LOAD_SERIES_MAX_POINTS`). The cap is on points, not on age, so a
65
+ * node whose emits are deduped away covers a longer wall-clock window at the
66
+ * same cost.
67
+ */
68
68
  export declare const DEFAULT_SAMPLES_PER_NODE = 180;
69
69
  /**
70
- * Fleet ceiling, in PROCESS ROWS across every node.
71
- *
72
- * This is the bound the per-node ceiling cannot provide. 180 samples is a fixed
73
- * number of samples, not a fixed amount of memory: a node whose process count
74
- * explodes — a leaked tsx tree, an inference pool respawning, the ghost storms
75
- * the Processes tab exists to surface — multiplies its own partition without
76
- * ever touching the per-node cap. That is precisely the defect the RTP pre-roll
77
- * rings have in `docs/architecture/load-ledger.md` (#5): a maximum per instance
78
- * and no budget for the fleet, which reached 898 MB across 47 rings.
79
- *
80
- * 32 000 rows x the measured 464 B = **14.2 MiB**, which is deliberately the
81
- * same envelope hub-main already accepted for the log ring
82
- * (`DEFAULT_MAX_TOTAL_LOG_ENTRIES` 50 000 x ~306 B ~ 15 MB). It is 2.3x the
83
- * live cluster's full hour (13 680 rows), so no real deployment evicts on it —
84
- * it exists so a runaway node costs 14 MiB instead of everything.
85
- */
86
- export declare const DEFAULT_MAX_TOTAL_PROCESS_ROWS = 32000;
70
+ * Fleet ceiling, in PROCESS ROWS across every node.
71
+ *
72
+ * This is the bound the per-node ceiling cannot provide. 180 samples is a fixed
73
+ * number of samples, not a fixed amount of memory: a node whose process count
74
+ * explodes — a leaked tsx tree, an inference pool respawning, the ghost storms
75
+ * the Processes tab exists to surface — multiplies its own partition without
76
+ * ever touching the per-node cap. That is precisely the defect the RTP pre-roll
77
+ * rings have in `docs/architecture/load-ledger.md` (#5): a maximum per instance
78
+ * and no budget for the fleet, which reached 898 MB across 47 rings.
79
+ *
80
+ * 32 000 rows x the measured 464 B = **14.2 MiB**, which is deliberately the
81
+ * same envelope hub-main already accepted for the log ring
82
+ * (`DEFAULT_MAX_TOTAL_LOG_ENTRIES` 50 000 x ~306 B ~ 15 MB). It is 2.3x the
83
+ * live cluster's full hour (13 680 rows), so no real deployment evicts on it —
84
+ * it exists so a runaway node costs 14 MiB instead of everything.
85
+ */
86
+ export declare const DEFAULT_MAX_TOTAL_PROCESS_ROWS = 32e3;
87
87
  /**
88
- * Ceiling on the number of PARTITIONS.
89
- *
90
- * The backstop for an unbounded key space, exactly as `DEFAULT_MAX_LOG_BUCKETS`
91
- * is: a partition is created on first write, and a node id that appears once —
92
- * a renamed agent, a node that joined for an afternoon — must not hold a ring
93
- * for the life of the process. 16 is >5x the live fleet of 3.
94
- */
88
+ * Ceiling on the number of PARTITIONS.
89
+ *
90
+ * The backstop for an unbounded key space, exactly as `DEFAULT_MAX_LOG_BUCKETS`
91
+ * is: a partition is created on first write, and a node id that appears once —
92
+ * a renamed agent, a node that joined for an afternoon — must not hold a ring
93
+ * for the life of the process. 16 is >5x the live fleet of 3.
94
+ */
95
95
  export declare const DEFAULT_MAX_NODES = 16;
96
96
  /**
97
- * A partition whose newest sample is older than this is dropped whole.
98
- *
99
- * **Why age, and why this age.** The alternative — evict when the node leaves
100
- * the cluster registry — was rejected twice over: it couples this ring to a
101
- * registry it has no other reason to know, and a node that is merely offline is
102
- * never "removed", so the case that actually happens (an agent that stops
103
- * answering) would keep its partition forever. That is the failure mode being
104
- * bounded.
105
- *
106
- * The number is not chosen, it is derived: `DEFAULT_SAMPLES_PER_NODE` x the 20 s
107
- * snapshot cadence = **one hour** = the entire window this ring can represent.
108
- * A node silent for that long holds nothing that overlaps the hour an operator
109
- * is asking about; every point in it has aged out of the question. Below that
110
- * threshold the partition is still answering a live question and is kept, even
111
- * though the node is quiet — a node emits at least once a minute
112
- * (`METRICS_SNAPSHOT_HEARTBEAT_MS`), so an hour of silence is not a slow node,
113
- * it is a gone one.
114
- */
115
- export declare const DEFAULT_NODE_IDLE_EVICTION_MS = 3600000;
97
+ * A partition whose newest sample is older than this is dropped whole.
98
+ *
99
+ * **Why age, and why this age.** The alternative — evict when the node leaves
100
+ * the cluster registry — was rejected twice over: it couples this ring to a
101
+ * registry it has no other reason to know, and a node that is merely offline is
102
+ * never "removed", so the case that actually happens (an agent that stops
103
+ * answering) would keep its partition forever. That is the failure mode being
104
+ * bounded.
105
+ *
106
+ * The number is not chosen, it is derived: `DEFAULT_SAMPLES_PER_NODE` x the 20 s
107
+ * snapshot cadence = **one hour** = the entire window this ring can represent.
108
+ * A node silent for that long holds nothing that overlaps the hour an operator
109
+ * is asking about; every point in it has aged out of the question. Below that
110
+ * threshold the partition is still answering a live question and is kept, even
111
+ * though the node is quiet — a node emits at least once a minute
112
+ * (`METRICS_SNAPSHOT_HEARTBEAT_MS`), so an hour of silence is not a slow node,
113
+ * it is a gone one.
114
+ */
115
+ export declare const DEFAULT_NODE_IDLE_EVICTION_MS = 36e5;
116
116
  export interface NodeLoadRingOptions {
117
- readonly samplesPerNode?: number;
118
- readonly maxTotalProcessRows?: number;
119
- readonly maxNodes?: number;
120
- readonly idleEvictionMs?: number;
121
- /** Injectable clock. Tests drive eviction without sleeping for an hour. */
122
- readonly now?: () => number;
117
+ readonly samplesPerNode?: number;
118
+ readonly maxTotalProcessRows?: number;
119
+ readonly maxNodes?: number;
120
+ readonly idleEvictionMs?: number;
121
+ /** Injectable clock. Tests drive eviction without sleeping for an hour. */
122
+ readonly now?: () => number;
123
123
  }
124
124
  /**
125
- * The partitioned ring: one {@link LoadPartition} per node id.
126
- *
127
- * Three bounds, doing three different jobs — the same division as the log
128
- * buffer, for the same reason:
129
- *
130
- * - **`samplesPerNode`** is HARD and per partition. It is what the operator
131
- * asked for (an hour) and it can never be exceeded.
132
- * - **`maxTotalProcessRows`** is the FLEET budget, and it is denominated in the
133
- * thing memory is proportional to. When it bites, the oldest sample of the
134
- * HEAVIEST partition is dropped — the node creating the pressure is the node
135
- * that pays, and a quiet node keeps its full hour. The node just written to is
136
- * NOT protected here: if it is the heaviest, it is the culprit.
137
- * - **`maxNodes`** is the backstop against an unbounded key space, and it drops
138
- * whole partitions least-recently-written first, never the one being written.
139
- *
140
- * Plus {@link DEFAULT_NODE_IDLE_EVICTION_MS}, which is what stops a node that
141
- * simply stopped emitting from living in memory forever.
142
- */
125
+ * The partitioned ring: one {@link LoadPartition} per node id.
126
+ *
127
+ * Three bounds, doing three different jobs — the same division as the log
128
+ * buffer, for the same reason:
129
+ *
130
+ * - **`samplesPerNode`** is HARD and per partition. It is what the operator
131
+ * asked for (an hour) and it can never be exceeded.
132
+ * - **`maxTotalProcessRows`** is the FLEET budget, and it is denominated in the
133
+ * thing memory is proportional to. When it bites, the oldest sample of the
134
+ * HEAVIEST partition is dropped — the node creating the pressure is the node
135
+ * that pays, and a quiet node keeps its full hour. The node just written to is
136
+ * NOT protected here: if it is the heaviest, it is the culprit.
137
+ * - **`maxNodes`** is the backstop against an unbounded key space, and it drops
138
+ * whole partitions least-recently-written first, never the one being written.
139
+ *
140
+ * Plus {@link DEFAULT_NODE_IDLE_EVICTION_MS}, which is what stops a node that
141
+ * simply stopped emitting from living in memory forever.
142
+ */
143
143
  export declare class NodeLoadRing<TProcess> {
144
- private readonly partitions;
145
- /**
146
- * Node id → write ordinal of its last accepted sample. A monotonic counter,
147
- * not a clock: partition eviction must follow the order writes actually
148
- * happened, and node clocks disagree.
149
- */
150
- private readonly lastWriteSeq;
151
- private writeSeq;
152
- private totalRows;
153
- private readonly samplesPerNode;
154
- private readonly maxTotalProcessRows;
155
- private readonly maxNodes;
156
- private readonly idleEvictionMs;
157
- private readonly now;
158
- constructor(options?: NodeLoadRingOptions);
159
- /**
160
- * Retain one snapshot. `processes` is stored by reference — the payload is
161
- * already an immutable arrival off the bus, and copying it would double the
162
- * measured cost for nothing.
163
- *
164
- * Returns whether the sample was ACCEPTED — that is, whether it was new
165
- * rather than a replay of a timestamp this node has already delivered.
166
- *
167
- * The return value is not diagnostics. It is the idempotence gate the
168
- * DURABLE tier rides on (`load-series-store.ts`): only an accepted sample is
169
- * appended to the table, which is what lets that table carry an `INTEGER`
170
- * rowid key instead of a composite unique index over two million rows. The
171
- * gate is one monotonic comparison in memory; the index it replaces was
172
- * measured at ~40 bytes per row.
173
- */
174
- record(nodeId: string, atMs: number, processes: readonly TProcess[]): boolean;
175
- /**
176
- * Read one node's retained series, oldest-first.
177
- *
178
- * `sinceMs` is EXCLUSIVE: a caller passes the newest timestamp it already
179
- * holds and gets back only what it is missing. That is the whole contract
180
- * that lets the admin UI seed from here and then continue live without
181
- * doubling a point it already drew.
182
- *
183
- * A node nobody has recorded answers with an empty series, not an error —
184
- * unknown is the truth about a node that has not reported.
185
- */
186
- read(nodeId: string, sinceMs?: number): NodeLoadSeries<TProcess>;
187
- /** Node ids with a live partition. Observability for the fleet bound. */
188
- nodeIds(): readonly string[];
189
- /** Process rows retained across every partition — the number that IS memory. */
190
- rowCount(): number;
191
- /** Samples retained across every partition. */
192
- sampleCount(): number;
193
- /**
194
- * Drop partitions whose newest sample is older than the retention window.
195
- *
196
- * Lazy, on write and on read — never a timer. A timer would be a new
197
- * periodic cost in a subsystem whose entire premise is that it adds none,
198
- * and a ring that nobody writes to and nobody reads is not growing either.
199
- */
200
- private sweepIdle;
201
- /**
202
- * Bring the fleet back under the row budget by dropping the OLDEST sample of
203
- * the HEAVIEST partition, repeatedly.
204
- *
205
- * Terminates: every iteration removes one sample from a non-empty partition,
206
- * and the population of samples is finite and strictly decreasing.
207
- */
208
- private enforceRowBudget;
209
- private heaviestPartition;
210
- /** Drop `count` whole partitions, least-recently-written first. */
211
- private evictPartitions;
212
- /** Remove a partition and everything that indexes it. */
213
- private dropPartition;
144
+ private readonly partitions;
145
+ /**
146
+ * Node id → write ordinal of its last accepted sample. A monotonic counter,
147
+ * not a clock: partition eviction must follow the order writes actually
148
+ * happened, and node clocks disagree.
149
+ */
150
+ private readonly lastWriteSeq;
151
+ private writeSeq;
152
+ private totalRows;
153
+ private readonly samplesPerNode;
154
+ private readonly maxTotalProcessRows;
155
+ private readonly maxNodes;
156
+ private readonly idleEvictionMs;
157
+ private readonly now;
158
+ constructor(options?: NodeLoadRingOptions);
159
+ /**
160
+ * Retain one snapshot. `processes` is stored by reference — the payload is
161
+ * already an immutable arrival off the bus, and copying it would double the
162
+ * measured cost for nothing.
163
+ *
164
+ * Returns whether the sample was ACCEPTED — that is, whether it was new
165
+ * rather than a replay of a timestamp this node has already delivered.
166
+ *
167
+ * The return value is not diagnostics. It is the idempotence gate the
168
+ * DURABLE tier rides on (`load-series-store.ts`): only an accepted sample is
169
+ * appended to the table, which is what lets that table carry an `INTEGER`
170
+ * rowid key instead of a composite unique index over two million rows. The
171
+ * gate is one monotonic comparison in memory; the index it replaces was
172
+ * measured at ~40 bytes per row.
173
+ */
174
+ record(nodeId: string, atMs: number, processes: readonly TProcess[]): boolean;
175
+ /**
176
+ * Read one node's retained series, oldest-first.
177
+ *
178
+ * `sinceMs` is EXCLUSIVE: a caller passes the newest timestamp it already
179
+ * holds and gets back only what it is missing. That is the whole contract
180
+ * that lets the admin UI seed from here and then continue live without
181
+ * doubling a point it already drew.
182
+ *
183
+ * A node nobody has recorded answers with an empty series, not an error —
184
+ * unknown is the truth about a node that has not reported.
185
+ */
186
+ read(nodeId: string, sinceMs?: number): NodeLoadSeries<TProcess>;
187
+ /** Node ids with a live partition. Observability for the fleet bound. */
188
+ nodeIds(): readonly string[];
189
+ /** Process rows retained across every partition — the number that IS memory. */
190
+ rowCount(): number;
191
+ /** Samples retained across every partition. */
192
+ sampleCount(): number;
193
+ /**
194
+ * Drop partitions whose newest sample is older than the retention window.
195
+ *
196
+ * Lazy, on write and on read — never a timer. A timer would be a new
197
+ * periodic cost in a subsystem whose entire premise is that it adds none,
198
+ * and a ring that nobody writes to and nobody reads is not growing either.
199
+ */
200
+ private sweepIdle;
201
+ /**
202
+ * Bring the fleet back under the row budget by dropping the OLDEST sample of
203
+ * the HEAVIEST partition, repeatedly.
204
+ *
205
+ * Terminates: every iteration removes one sample from a non-empty partition,
206
+ * and the population of samples is finite and strictly decreasing.
207
+ */
208
+ private enforceRowBudget;
209
+ private heaviestPartition;
210
+ /** Drop `count` whole partitions, least-recently-written first. */
211
+ private evictPartitions;
212
+ /** Remove a partition and everything that indexes it. */
213
+ private dropPartition;
214
214
  }
@@ -1,11 +1,11 @@
1
- import { ProcReader } from '../../process/proc-stat.js';
2
- import { PsProcessRow } from './process-classification.js';
1
+ import { type ProcReader } from "../../process/proc-stat.js";
2
+ import type { PsProcessRow } from "./process-classification.js";
3
3
  /** Every process in `/proc`, as the rows `ps -eo …` would have printed. */
4
4
  export declare function readProcProcessTable(reader?: ProcReader): Promise<readonly PsProcessRow[]>;
5
5
  /**
6
- * Parse `ps etime` → seconds. `MM:SS`, `HH:MM:SS`, `DD-HH:MM:SS`.
7
- * Only the `ps` path needs this; `/proc` gives the number directly.
8
- */
6
+ * Parse `ps etime` → seconds. `MM:SS`, `HH:MM:SS`, `DD-HH:MM:SS`.
7
+ * Only the `ps` path needs this; `/proc` gives the number directly.
8
+ */
9
9
  export declare function parseEtime(etime: string): number;
10
10
  /** Parse the output of `ps -eo pid=,ppid=,pgid=,pcpu=,rss=,etime=,command=`. */
11
11
  export declare function parsePsTable(stdout: string): readonly PsProcessRow[];
@@ -13,13 +13,13 @@ export declare function parsePsTable(stdout: string): readonly PsProcessRow[];
13
13
  export declare function spawnPsTable(): Promise<readonly PsProcessRow[]>;
14
14
  /** What decides the source. Injectable so the choice is pinned by a test, not by the CI host. */
15
15
  export interface ProcessTableDeps {
16
- readonly platform: NodeJS.Platform;
17
- readonly reader: ProcReader;
18
- readonly spawnPs: () => Promise<readonly PsProcessRow[]>;
16
+ readonly platform: NodeJS.Platform;
17
+ readonly reader: ProcReader;
18
+ readonly spawnPs: () => Promise<readonly PsProcessRow[]>;
19
19
  }
20
20
  /**
21
- * The process table, from `/proc` where it exists and from `ps` elsewhere.
22
- * Throws only when the chosen source cannot answer at all; the caller logs it
23
- * as a skipped interval.
24
- */
21
+ * The process table, from `/proc` where it exists and from `ps` elsewhere.
22
+ * Throws only when the chosen source cannot answer at all; the caller logs it
23
+ * as a skipped interval.
24
+ */
25
25
  export declare function readProcessTable(deps?: ProcessTableDeps): Promise<readonly PsProcessRow[]>;
@@ -1,51 +1,110 @@
1
- import { NodeProcess } from '@camstack/types';
2
- import { ThreadCpuSplit } from './thread-cpu-sampler.js';
1
+ /**
2
+ * Classification of the camstack-shaped processes on one node.
3
+ *
4
+ * Pure: no `ps`, no broker, no clock. Everything the verdict depends on
5
+ * arrives as an argument, so a `ps` row becoming a class is pinned by
6
+ * `__tests__/process-classification.spec.ts` rather than by a running node.
7
+ *
8
+ * This is a MONITORING label and nothing else. Nothing acts on it: the
9
+ * process-control surface (`metricsProvider.killProcess` and the kill buttons
10
+ * in Cluster → Node → Processes) was deleted on 2026-08-27. A runner's
11
+ * lifecycle belongs to `CrashSupervisor` and is driven through
12
+ * `addons.restartAddon` / `$process.restart`; signalling a raw pid went around
13
+ * the supervisor, which is the exact thing D6 exists to prevent. If a class
14
+ * ever needs to gate an ACTION again, that is a new decision, not a
15
+ * re-plumbing of this one.
16
+ *
17
+ * ── The classes ────────────────────────────────────────────────────────────
18
+ *
19
+ * root — this node's own pid.
20
+ * managed — a forked addon worker the kernel's `$process.list` names, so its
21
+ * CPU and RSS can be attributed to that addon.
22
+ * system — every other camstack-shaped process on the machine: one the node
23
+ * did not spawn and cannot name. Reported, never attributed.
24
+ *
25
+ * ── What used to be here, and why it must not come back as it was ──────────
26
+ *
27
+ * There was a fourth class, `ghost`, produced by a `classifyByAncestry` walk:
28
+ * a process whose ancestry reached `ppid=1` — or a parent `ps` could not see —
29
+ * without crossing `SUPERVISOR_BOUNDARY_RE` was declared an orphan, and it was
30
+ * the one class `killProcess` allowed.
31
+ *
32
+ * That boundary list was entirely a DEV-WORKSTATION list: `tsx watch …
33
+ * launcher.ts`, the agent CLI, `concurrently`, `vite`, `npm exec`. Production
34
+ * has none of those shapes, so the definition never had a chance to be right
35
+ * there — it did not age out, it never knew production:
36
+ *
37
+ * - in a container, pid 1 is `tini -- docker-entrypoint.sh … starter.js`. It
38
+ * matches the camstack command pattern, its ppid is 0, and pid 0 is not in
39
+ * the `ps` snapshot → ghost. Every containerised node called its own init
40
+ * an orphan, permanently. **The init of a container is not an orphan.**
41
+ * - on the desktop node, `/Applications/camstack.app` is launched by launchd
42
+ * (ppid 1) and its three Electron helpers hang off it → four ghosts, which
43
+ * were the operator's running app.
44
+ *
45
+ * Measured on the live cluster on 2026-08-27: 6 ghosts across three nodes, 6
46
+ * false positives, 0 true ones. And because `ghost` was the killable class,
47
+ * the UI's "Kill all N ghost(s)" aimed SIGKILL at pid 1 and its tree-kill
48
+ * button aimed at the desktop app. Nothing downstream stopped either — which
49
+ * is a large part of why the kill path is gone too.
50
+ *
51
+ * Detecting a REAL orphan is still a legitimate goal. Whoever picks it up:
52
+ * do not restart from an ancestry walk gated on a hand-written list of
53
+ * supervisor command lines. `ppid == 1` is the normal state of a container
54
+ * init, of a launchd-started app, and of anything a service manager owns —
55
+ * it is not evidence, and pid 1 of a container is not an orphan. Evidence
56
+ * would be positive: a pid the cluster once spawned (it is in the runner
57
+ * ledger) that is no longer in `$process.list` and whose runner is gone.
58
+ * Anything less does not get to name a process disposable.
59
+ */
60
+ import type { NodeProcess } from "@camstack/types";
61
+ import type { ThreadCpuSplit } from "./thread-cpu-sampler.js";
3
62
  /** The classes a node process can carry. Mirrors `NodeProcessSchema`. */
4
- export type ProcessClassification = NodeProcess['classification'];
63
+ export type ProcessClassification = NodeProcess["classification"];
5
64
  /** One parsed `ps -eo pid,ppid,pgid,pcpu,rss,etime,command` row. */
6
65
  export interface PsProcessRow {
7
- readonly pid: number;
8
- readonly ppid: number;
9
- readonly pgid: number;
10
- readonly cpuPercent: number;
11
- readonly memoryRssBytes: number;
12
- readonly uptimeSec: number;
13
- readonly command: string;
66
+ readonly pid: number;
67
+ readonly ppid: number;
68
+ readonly pgid: number;
69
+ readonly cpuPercent: number;
70
+ readonly memoryRssBytes: number;
71
+ readonly uptimeSec: number;
72
+ readonly command: string;
14
73
  }
15
74
  /** A pid the kernel's `$process.list` attributes to an addon runner. */
16
75
  export interface ManagedProcessEntry {
17
- readonly addonId: string;
18
- readonly nodeId: string;
76
+ readonly addonId: string;
77
+ readonly nodeId: string;
19
78
  }
20
79
  export interface BuildNodeProcessesInput {
21
- /** Every visible `ps` row on this node, camstack-shaped or not. */
22
- readonly psRows: readonly PsProcessRow[];
23
- /** This node's own pid. */
24
- readonly selfPid: number;
25
- /** Node id reported for the `root` row. */
26
- readonly selfNodeId: string;
27
- /** pid → addon attribution from `$process.list`. */
28
- readonly managed: ReadonlyMap<number, ManagedProcessEntry>;
29
- /** pid → thread CPU split, when the sampler had an answer this tick. */
30
- readonly cpuSplits: ReadonlyMap<number, ThreadCpuSplit>;
80
+ /** Every visible `ps` row on this node, camstack-shaped or not. */
81
+ readonly psRows: readonly PsProcessRow[];
82
+ /** This node's own pid. */
83
+ readonly selfPid: number;
84
+ /** Node id reported for the `root` row. */
85
+ readonly selfNodeId: string;
86
+ /** pid → addon attribution from `$process.list`. */
87
+ readonly managed: ReadonlyMap<number, ManagedProcessEntry>;
88
+ /** pid → thread CPU split, when the sampler had an answer this tick. */
89
+ readonly cpuSplits: ReadonlyMap<number, ThreadCpuSplit>;
31
90
  }
32
91
  /**
33
- * Regex matching camstack-related command lines. We surface anything with
34
- * an obvious camstack fingerprint so operators can spot stray inference
35
- * pools, leaked tsx watchers, and zombie node workers in the Cluster →
36
- * Agent → Processes tab.
37
- *
38
- * Patterns mirror `scripts/hunt-zombies.sh` — keep them in sync when
39
- * adding a new long-lived subprocess.
40
- */
92
+ * Regex matching camstack-related command lines. We surface anything with
93
+ * an obvious camstack fingerprint so operators can spot stray inference
94
+ * pools, leaked tsx watchers, and zombie node workers in the Cluster →
95
+ * Agent → Processes tab.
96
+ *
97
+ * Patterns mirror `scripts/hunt-zombies.sh` — keep them in sync when
98
+ * adding a new long-lived subprocess.
99
+ */
41
100
  export declare const CAMSTACK_CMD_RE: RegExp;
42
101
  /**
43
- * Classify one pid.
44
- *
45
- * Identity-driven, not ancestry-driven: a process is `root` because it IS
46
- * this node, `managed` because the kernel named it, and `system` otherwise.
47
- * There is no third source of truth to consult and no walk to get wrong.
48
- */
102
+ * Classify one pid.
103
+ *
104
+ * Identity-driven, not ancestry-driven: a process is `root` because it IS
105
+ * this node, `managed` because the kernel named it, and `system` otherwise.
106
+ * There is no third source of truth to consult and no walk to get wrong.
107
+ */
49
108
  export declare function classifyProcess(pid: number, selfPid: number, managed: ReadonlyMap<number, ManagedProcessEntry>): ProcessClassification;
50
109
  /** Turn a `ps` snapshot into the node's process table. */
51
110
  export declare function buildNodeProcesses(input: BuildNodeProcessesInput): readonly NodeProcess[];