@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,37 +1,63 @@
1
- import { LoadPoint } from '@camstack/types';
2
- import { RetainedSample } from './load-series-store.js';
1
+ /**
2
+ * The ONE reader over both retention tiers.
3
+ *
4
+ * The hot window is the in-memory ring; the cold one is
5
+ * `metrics:node-load-samples`. A caller never learns which tier a point came
6
+ * from, and that is a hard requirement rather than a nicety: a second reader
7
+ * is how two charts start disagreeing about the same node, and it is how "the
8
+ * ring says X, the table says Y" becomes a question nobody can answer.
9
+ *
10
+ * Three things happen here, in this order, and each one is load-bearing:
11
+ *
12
+ * 1. **Merge and dedupe on `atMs`.** The two tiers OVERLAP by construction —
13
+ * the ring holds the last 180 snapshots and the table holds every snapshot
14
+ * the ring accepted, including those same 180. A snapshot present in both
15
+ * must contribute exactly once. Identity is `atMs`, because one node emits
16
+ * one snapshot per tick and a timestamp already held IS that snapshot. The
17
+ * HOT copy wins on a tie: it is the payload as it arrived, while the cold
18
+ * one has been through the storage encode.
19
+ * 2. **Fold per function.** The chart draws one series per addon, so the fold
20
+ * happens here rather than in the browser.
21
+ * 3. **Reduce, preserving the extremes.** See `load-series-fold.ts` for why
22
+ * the representative of a bucket is its MAX and never its mean.
23
+ *
24
+ * A GAP stays a gap through all three. Emission is fixed-cadence, so a missing
25
+ * interval means one thing — nobody reported — and nothing here fills it in.
26
+ */
27
+ import { type LoadPoint } from "@camstack/types";
28
+ import type { RetainedSample } from "./load-series-store.js";
3
29
  /** One function's assembled series, before it is shaped for the wire. */
4
30
  export interface FoldedSeries {
5
- readonly key: string;
6
- readonly kind: 'addon' | 'root' | 'unattributed';
7
- readonly points: readonly LoadPoint[];
31
+ readonly key: string;
32
+ readonly kind: "addon" | "root" | "unattributed";
33
+ readonly points: readonly LoadPoint[];
8
34
  }
9
35
  export interface MergeLoadSeriesInput {
10
- /** Cold samples, oldest-first. May overlap `hot` — that is expected. */
11
- readonly cold: readonly RetainedSample[];
12
- /** Hot samples, oldest-first. Wins over a cold sample at the same `atMs`. */
13
- readonly hot: readonly RetainedSample[];
14
- readonly cadenceMs: number;
15
- /** Absent ⇒ no reduction. */
16
- readonly maxPoints?: number;
36
+ /** Cold samples, oldest-first. May overlap `hot` — that is expected. */
37
+ readonly cold: readonly RetainedSample[];
38
+ /** Hot samples, oldest-first. Wins over a cold sample at the same `atMs`. */
39
+ readonly hot: readonly RetainedSample[];
40
+ readonly cadenceMs: number;
41
+ /** Absent ⇒ no reduction. */
42
+ readonly maxPoints?: number;
17
43
  }
18
44
  export interface MergedLoadSeries {
19
- readonly series: readonly FoldedSeries[];
20
- readonly bucketMs: number;
21
- readonly retainedSamples: number;
22
- readonly oldestAtMs: number | null;
45
+ readonly series: readonly FoldedSeries[];
46
+ readonly bucketMs: number;
47
+ readonly retainedSamples: number;
48
+ readonly oldestAtMs: number | null;
23
49
  }
24
50
  /**
25
- * Merge the two tiers into one deduped, oldest-first list of samples.
26
- *
27
- * Exported because the dedup is the property worth testing on its own: a
28
- * doubled point is invisible in a total and obvious only as a chart that reads
29
- * twice as loud as the machine.
30
- */
51
+ * Merge the two tiers into one deduped, oldest-first list of samples.
52
+ *
53
+ * Exported because the dedup is the property worth testing on its own: a
54
+ * doubled point is invisible in a total and obvious only as a chart that reads
55
+ * twice as loud as the machine.
56
+ */
31
57
  export declare function mergeSamples(cold: readonly RetainedSample[], hot: readonly RetainedSample[]): readonly RetainedSample[];
32
58
  /**
33
- * Merge, fold and reduce. The whole read path in one pure function, so every
34
- * property that matters — dedup, peak survival, an empty bucket staying empty
35
- * — is testable without a database or a ring.
36
- */
59
+ * Merge, fold and reduce. The whole read path in one pure function, so every
60
+ * property that matters — dedup, peak survival, an empty bucket staying empty
61
+ * — is testable without a database or a ring.
62
+ */
37
63
  export declare function mergeLoadSeries(input: MergeLoadSeriesInput): MergedLoadSeries;
@@ -1,31 +1,92 @@
1
- import { IScopedLogger, SettingsStoreClient } from '@camstack/types';
2
1
  /**
3
- * @durable class=audit owner=metrics-native
4
- * write="one row per process per sample, appended in ONE transaction per
5
- * sample (`settingsStore.insertMany`) by the HUB's `native-metrics`, off its
6
- * subscription to `metrics.node-processes-snapshot`. Emission is
7
- * fixed-cadence, so the write rate is deterministic: nodes x processes /
8
- * cadence, 7.6 rows/s on the live fleet at the 10 s default. Only a sample
9
- * the in-memory ring ACCEPTED is written, which is what makes the append
10
- * idempotent without a unique key."
11
- * retention="TWO bounds, swept together at most once a minute. By AGE, the
12
- * operator's `loadSeriesRetentionHours` (default 6, the intention); by ROWS,
13
- * DEFAULT_MAX_ROWS (the guarantee, which bites regardless of the age knob).
14
- * Both prune oldest-first through a bounded page — never a full scan — and
15
- * the row cap logs when it bites. Losing the table loses the cold window
16
- * only: the ring keeps serving the last hour and the charts keep drawing."
17
- */
2
+ * Durable retention for the per-node load series — the COLD window behind the
3
+ * in-memory ring's hot one.
4
+ *
5
+ * ## One table, and what that decides
6
+ *
7
+ * One row per process per sample, in `metrics:node-load-samples`, declared the
8
+ * way every other typed collection in this repo is declared: explicit columns,
9
+ * explicit indexes, read by `where`/`whereBetween`/`orderBy`/`limit`. There is
10
+ * no dimension table, no per-addon pre-aggregate and no bucket tier. The
11
+ * consequence is that the row count is DETERMINISTIC and large, and the honest
12
+ * thing to do with a large number is to publish it rather than to design it
13
+ * away — see `docs/architecture/load-ledger.md` § "2026-08-27 (night) — the load
14
+ * series reaches disk, and what it costs".
15
+ *
16
+ * ## Measured cost, not estimated
17
+ *
18
+ * `scripts/measure-load-series-cost.mts` writes the real payload shape through
19
+ * the real `SqliteSettingsBackend` and the real `declareCollection` DDL, then
20
+ * reads `page_count × page_size` off the resulting file. The answer is
21
+ * **{@link MEASURED_BYTES_PER_ROW} bytes per row**, flat from 164 k rows to
22
+ * 3.9 M rows — table plus its one index, after a truncating WAL checkpoint.
23
+ *
24
+ * That number is why the columns look the way they do. Four decisions, each
25
+ * paid for in bytes measured on the same harness:
26
+ *
27
+ * | shape | B/row |
28
+ * | --- | --- |
29
+ * | naive: `TEXT` id, 2 indexes, every `NodeProcess` field | 196.0 |
30
+ * | one index, drop `threadCount` + `uptimeSec` | 172.8 |
31
+ * | + base36 in the composite id | 159.6 |
32
+ * | + CPU as integer tenths, RSS as integer MiB | 140.3 |
33
+ * | + `INTEGER` rowid-alias key (this file) | **86.9** |
34
+ *
35
+ * - **`command` is not stored.** It is the fattest field in a `NodeProcess` and
36
+ * it is the same ~100-character string on every runner — the runner id
37
+ * travels in the environment, not in argv, so `ps` reports one identical
38
+ * command line for all of them. `addonId` is the short identifier that
39
+ * already exists, and nothing that reads this series reads `command`.
40
+ * - **CPU is stored as integer tenths.** Losslessly: `ps pcpu` is rounded to
41
+ * one decimal by `runPs`, and the thread sampler rounds to one decimal too
42
+ * (`Math.round(x * 1000) / 10`). A SQLite `REAL` is 8 bytes always; the same
43
+ * value as an integer varint is 1-2.
44
+ * - **RSS is stored in whole MiB.** A byte-exact residency on a value in the
45
+ * hundreds of megabytes is precision no chart can draw, and it costs 3 bytes
46
+ * a row.
47
+ * - **The key is an `INTEGER` rowid alias.** A composite `TEXT` key cost ~40
48
+ * B/row — the string in the row plus its own B-tree — for an idempotence
49
+ * this table gets for free somewhere better: {@link NodeLoadRing.record}
50
+ * already refuses a sample at or before the newest it holds, and only an
51
+ * ACCEPTED sample is written here. The gate is one monotonic comparison in
52
+ * memory instead of a unique index on two million rows.
53
+ *
54
+ * ## Retention is an intention; the row cap is the guarantee
55
+ *
56
+ * {@link LoadSeriesRetention.retentionHours} is what the operator asked to
57
+ * keep. {@link DEFAULT_MAX_ROWS} is what the table is allowed to become. They
58
+ * are different promises on purpose: an operator who raises retention to three
59
+ * days must not be able to take this table to two million rows with nothing
60
+ * stopping it. When the cap bites, the OLDEST rows go and a line says so.
61
+ */
62
+ import type { IScopedLogger, SettingsStoreClient } from "@camstack/types";
63
+ /**
64
+ * @durable class=audit owner=metrics-native
65
+ * write="one row per process per sample, appended in ONE transaction per
66
+ * sample (`settingsStore.insertMany`) by the HUB's `native-metrics`, off its
67
+ * subscription to `metrics.node-processes-snapshot`. Emission is
68
+ * fixed-cadence, so the write rate is deterministic: nodes x processes /
69
+ * cadence, 7.6 rows/s on the live fleet at the 10 s default. Only a sample
70
+ * the in-memory ring ACCEPTED is written, which is what makes the append
71
+ * idempotent without a unique key."
72
+ * retention="TWO bounds, swept together at most once a minute. By AGE, the
73
+ * operator's `loadSeriesRetentionHours` (default 6, the intention); by ROWS,
74
+ * DEFAULT_MAX_ROWS (the guarantee, which bites regardless of the age knob).
75
+ * Both prune oldest-first through a bounded page — never a full scan — and
76
+ * the row cap logs when it bites. Losing the table loses the cold window
77
+ * only: the ring keeps serving the last hour and the charts keep drawing."
78
+ */
18
79
  export declare const LOAD_SERIES_COLLECTION = "metrics:node-load-samples";
19
80
  /**
20
- * Bytes one stored row costs on disk, MEASURED — table plus index, after a
21
- * truncating checkpoint. Used to project the cost of a configuration for the
22
- * operator BEFORE they apply it, so the knob is honest.
23
- */
81
+ * Bytes one stored row costs on disk, MEASURED — table plus index, after a
82
+ * truncating checkpoint. Used to project the cost of a configuration for the
83
+ * operator BEFORE they apply it, so the knob is honest.
84
+ */
24
85
  export declare const MEASURED_BYTES_PER_ROW = 87;
25
86
  /**
26
- * Sampling cadence bounds, in seconds. Outside this range a cadence is
27
- * REFUSED — see {@link resolveLoadSeriesConfig}.
28
- */
87
+ * Sampling cadence bounds, in seconds. Outside this range a cadence is
88
+ * REFUSED — see {@link resolveLoadSeriesConfig}.
89
+ */
29
90
  export declare const MIN_CADENCE_SEC = 5;
30
91
  export declare const MAX_CADENCE_SEC = 60;
31
92
  export declare const DEFAULT_CADENCE_SEC = 10;
@@ -34,109 +95,109 @@ export declare const DEFAULT_RETENTION_HOURS = 6;
34
95
  export declare const MIN_RETENTION_HOURS = 1;
35
96
  export declare const MAX_RETENTION_HOURS = 72;
36
97
  /**
37
- * Hard ceiling on the table, in ROWS.
38
- *
39
- * The guarantee behind the retention knob. Sized against the shipped default
40
- * and against the worst configuration the knob can express:
41
- *
42
- * | cadence | retention | rows (3 nodes, 76 processes) |
43
- * | --- | --- | --- |
44
- * | 10 s | 6 h (default) | 164 160 |
45
- * | 5 s | 6 h | 328 320 |
46
- * | 5 s | 72 h | 3 939 840 — capped here |
47
- *
48
- * 500 000 rows x the measured 87 B = **41.5 MiB**, roughly 3x what the shipped
49
- * default needs and far below the 2 M rows a three-day retention would reach.
50
- * It is deliberately NOT a knob: the point of a guarantee is that it is not
51
- * subject to the same hand that raised the intention. This is the discipline
52
- * the in-memory ring already adopted (`DEFAULT_MAX_TOTAL_PROCESS_ROWS`) and
53
- * the one the RTP pre-roll rings still lack — a maximum per instance and no
54
- * budget at all for the whole, which reached 898 MB across 47 rings
55
- * (`docs/architecture/load-ledger.md` #5).
56
- */
57
- export declare const DEFAULT_MAX_ROWS = 500000;
98
+ * Hard ceiling on the table, in ROWS.
99
+ *
100
+ * The guarantee behind the retention knob. Sized against the shipped default
101
+ * and against the worst configuration the knob can express:
102
+ *
103
+ * | cadence | retention | rows (3 nodes, 76 processes) |
104
+ * | --- | --- | --- |
105
+ * | 10 s | 6 h (default) | 164 160 |
106
+ * | 5 s | 6 h | 328 320 |
107
+ * | 5 s | 72 h | 3 939 840 — capped here |
108
+ *
109
+ * 500 000 rows x the measured 87 B = **41.5 MiB**, roughly 3x what the shipped
110
+ * default needs and far below the 2 M rows a three-day retention would reach.
111
+ * It is deliberately NOT a knob: the point of a guarantee is that it is not
112
+ * subject to the same hand that raised the intention. This is the discipline
113
+ * the in-memory ring already adopted (`DEFAULT_MAX_TOTAL_PROCESS_ROWS`) and
114
+ * the one the RTP pre-roll rings still lack — a maximum per instance and no
115
+ * budget at all for the whole, which reached 898 MB across 47 rings
116
+ * (`docs/architecture/load-ledger.md` #5).
117
+ */
118
+ export declare const DEFAULT_MAX_ROWS = 5e5;
58
119
  /**
59
- * Rows a single prune pass may remove.
60
- *
61
- * The prune is BOUNDED, never a full scan. It reads at most this many keys
62
- * oldest-first through `idx_load_samples_node_at`, takes the last one's `atMs`
63
- * as the effective cutoff and issues ONE `deleteWhere` up to it. A backlog
64
- * larger than a page is worked off across passes rather than in one stall —
65
- * which is the defect corrected in the recorder the same week, where
66
- * `accountingForLocations` visited 6.7 M rows twice a minute.
67
- */
68
- export declare const PRUNE_PAGE_ROWS = 20000;
120
+ * Rows a single prune pass may remove.
121
+ *
122
+ * The prune is BOUNDED, never a full scan. It reads at most this many keys
123
+ * oldest-first through `idx_load_samples_node_at`, takes the last one's `atMs`
124
+ * as the effective cutoff and issues ONE `deleteWhere` up to it. A backlog
125
+ * larger than a page is worked off across passes rather than in one stall —
126
+ * which is the defect corrected in the recorder the same week, where
127
+ * `accountingForLocations` visited 6.7 M rows twice a minute.
128
+ */
129
+ export declare const PRUNE_PAGE_ROWS = 2e4;
69
130
  /** How often a prune pass may run. A bound, not a deadline. */
70
- export declare const PRUNE_INTERVAL_MS = 60000;
131
+ export declare const PRUNE_INTERVAL_MS = 6e4;
71
132
  export declare const LOAD_SERIES_COLUMNS: readonly [{
72
- readonly name: "id";
73
- readonly type: "INTEGER";
74
- readonly primaryKey: true;
75
- readonly notNull: true;
133
+ readonly name: "id";
134
+ readonly type: "INTEGER";
135
+ readonly primaryKey: true;
136
+ readonly notNull: true;
76
137
  }, {
77
- readonly name: "nodeId";
78
- readonly type: "TEXT";
79
- readonly notNull: true;
138
+ readonly name: "nodeId";
139
+ readonly type: "TEXT";
140
+ readonly notNull: true;
80
141
  }, {
81
- readonly name: "atMs";
82
- readonly type: "INTEGER";
83
- readonly notNull: true;
142
+ readonly name: "atMs";
143
+ readonly type: "INTEGER";
144
+ readonly notNull: true;
84
145
  }, {
85
- readonly name: "pid";
86
- readonly type: "INTEGER";
87
- readonly notNull: true;
146
+ readonly name: "pid";
147
+ readonly type: "INTEGER";
148
+ readonly notNull: true;
88
149
  }, {
89
- readonly name: "addonId";
90
- readonly type: "TEXT";
150
+ readonly name: "addonId";
151
+ readonly type: "TEXT";
91
152
  }, {
92
- readonly name: "classification";
93
- readonly type: "TEXT";
94
- readonly notNull: true;
153
+ readonly name: "classification";
154
+ readonly type: "TEXT";
155
+ readonly notNull: true;
95
156
  }, {
96
- readonly name: "cpuDeci";
97
- readonly type: "INTEGER";
98
- readonly notNull: true;
157
+ readonly name: "cpuDeci";
158
+ readonly type: "INTEGER";
159
+ readonly notNull: true;
99
160
  }, {
100
- readonly name: "rssMib";
101
- readonly type: "INTEGER";
102
- readonly notNull: true;
161
+ readonly name: "rssMib";
162
+ readonly type: "INTEGER";
163
+ readonly notNull: true;
103
164
  }, {
104
- readonly name: "cpuMainDeci";
105
- readonly type: "INTEGER";
165
+ readonly name: "cpuMainDeci";
166
+ readonly type: "INTEGER";
106
167
  }, {
107
- readonly name: "cpuGcDeci";
108
- readonly type: "INTEGER";
168
+ readonly name: "cpuGcDeci";
169
+ readonly type: "INTEGER";
109
170
  }];
110
171
  export declare const LOAD_SERIES_INDEXES: readonly [{
111
- readonly name: "idx_load_samples_node_at";
112
- readonly columns: readonly ["nodeId", "atMs"];
172
+ readonly name: "idx_load_samples_node_at";
173
+ readonly columns: readonly ["nodeId", "atMs"];
113
174
  }];
114
175
  /** One stored process row, in the units the table stores them in. */
115
176
  export interface LoadSeriesRow {
116
- readonly nodeId: string;
117
- readonly atMs: number;
118
- readonly pid: number;
119
- readonly addonId: string | null;
120
- readonly classification: string;
121
- readonly cpuDeci: number;
122
- readonly rssMib: number;
123
- readonly cpuMainDeci: number | null;
124
- readonly cpuGcDeci: number | null;
177
+ readonly nodeId: string;
178
+ readonly atMs: number;
179
+ readonly pid: number;
180
+ readonly addonId: string | null;
181
+ readonly classification: string;
182
+ readonly cpuDeci: number;
183
+ readonly rssMib: number;
184
+ readonly cpuMainDeci: number | null;
185
+ readonly cpuGcDeci: number | null;
125
186
  }
126
187
  /** The process shape both tiers hand back — the series' own row, not `ps`'s. */
127
188
  export interface RetainedProcess {
128
- readonly pid: number;
129
- readonly addonId: string | null;
130
- readonly classification: string;
131
- readonly cpuPercent: number;
132
- readonly memoryRssBytes: number;
133
- readonly cpuMainPercent: number | null;
134
- readonly cpuGcPercent: number | null;
189
+ readonly pid: number;
190
+ readonly addonId: string | null;
191
+ readonly classification: string;
192
+ readonly cpuPercent: number;
193
+ readonly memoryRssBytes: number;
194
+ readonly cpuMainPercent: number | null;
195
+ readonly cpuGcPercent: number | null;
135
196
  }
136
197
  /** One retained sample: when it was taken, and the processes in it. */
137
198
  export interface RetainedSample {
138
- readonly atMs: number;
139
- readonly processes: readonly RetainedProcess[];
199
+ readonly atMs: number;
200
+ readonly processes: readonly RetainedProcess[];
140
201
  }
141
202
  /** Storage row → the shape a reader gets. The ONE decode. */
142
203
  export declare function rowToProcess(row: LoadSeriesRow): RetainedProcess;
@@ -146,87 +207,87 @@ export declare function processToRow(nodeId: string, atMs: number, process: Reta
146
207
  export declare function rowsToSamples(rows: readonly LoadSeriesRow[]): readonly RetainedSample[];
147
208
  /** The two bounds in force. */
148
209
  export interface LoadSeriesRetention {
149
- readonly retentionHours: number;
150
- readonly maxRows: number;
210
+ readonly retentionHours: number;
211
+ readonly maxRows: number;
151
212
  }
152
213
  export interface LoadSeriesStoreDeps {
153
- readonly store: SettingsStoreClient;
154
- readonly logger: IScopedLogger;
155
- readonly now?: () => number;
156
- readonly prunePageRows?: number;
157
- readonly pruneIntervalMs?: number;
214
+ readonly store: SettingsStoreClient;
215
+ readonly logger: IScopedLogger;
216
+ readonly now?: () => number;
217
+ readonly prunePageRows?: number;
218
+ readonly pruneIntervalMs?: number;
158
219
  }
159
220
  /** What one prune pass did. Returned so a test can assert the bound held. */
160
221
  export interface PruneOutcome {
161
- readonly deletedByAge: number;
162
- readonly deletedByCap: number;
163
- /** Rows read to find the cutoffs — the number that must stay bounded. */
164
- readonly rowsExamined: number;
165
- readonly capBit: boolean;
222
+ readonly deletedByAge: number;
223
+ readonly deletedByCap: number;
224
+ /** Rows read to find the cutoffs — the number that must stay bounded. */
225
+ readonly rowsExamined: number;
226
+ readonly capBit: boolean;
166
227
  }
167
228
  /**
168
- * The cold tier. Append-only, bounded, and never the authority on anything the
169
- * hot ring can answer.
170
- *
171
- * Every method is best-effort and says so in the log rather than throwing at
172
- * the emitter: a storage hiccup must cost a gap in a chart, never a dropped
173
- * snapshot on the bus.
174
- */
229
+ * The cold tier. Append-only, bounded, and never the authority on anything the
230
+ * hot ring can answer.
231
+ *
232
+ * Every method is best-effort and says so in the log rather than throwing at
233
+ * the emitter: a storage hiccup must cost a gap in a chart, never a dropped
234
+ * snapshot on the bus.
235
+ */
175
236
  export declare class LoadSeriesStore {
176
- private declared;
177
- private lastPruneAtMs;
178
- private readonly store;
179
- private readonly logger;
180
- private readonly nowFn;
181
- private readonly prunePageRows;
182
- private readonly pruneIntervalMs;
183
- constructor(deps: LoadSeriesStoreDeps);
184
- /** Idempotently declare the collection. `false` when the store refused. */
185
- declare(): Promise<boolean>;
186
- /**
187
- * Append ONE sample — every process row of it — in ONE transaction.
188
- *
189
- * Never a write per row. `insertMany` exists for exactly this: at the 10 s
190
- * default the fleet produces 7.6 rows/s, and 7.6 separate commits per second
191
- * on the connection that also serves every cluster-wide configuration read
192
- * is a constant load nobody asked for.
193
- */
194
- append(nodeId: string, atMs: number, processes: readonly RetainedProcess[]): Promise<number>;
195
- /**
196
- * Read one node's cold samples, oldest-first.
197
- *
198
- * `sinceMs` is EXCLUSIVE, matching the ring, so a caller passing the newest
199
- * timestamp it holds gets only what it is missing. `limitRows` bounds the
200
- * read in ROWS (not samples) because rows are what the query costs.
201
- */
202
- read(nodeId: string, sinceMs: number, limitRows: number): Promise<readonly RetainedSample[]>;
203
- /**
204
- * Enforce BOTH bounds, oldest-first, through a bounded page each.
205
- *
206
- * Rate-limited to {@link pruneIntervalMs}: a bound is not a deadline, and the
207
- * append path must not pay a sweep on every sample.
208
- */
209
- prune(nodeIds: readonly string[], retention: LoadSeriesRetention, force?: boolean): Promise<PruneOutcome | null>;
210
- /** Total rows, or `null` when the store could not answer. */
211
- count(): Promise<number | null>;
212
- /**
213
- * Delete this node's rows older than `cutoff`, at most one page's worth.
214
- *
215
- * The page is the whole point. `deleteWhere({ atMs: [0, cutoff] })` on its
216
- * own is one statement but an UNBOUNDED one — a first pass after a retention
217
- * change would delete millions of rows inside a single stalling transaction.
218
- * So the page is read first (keys only, ordered by the index), its last
219
- * `atMs` becomes the EFFECTIVE cutoff, and the delete is bounded by it.
220
- */
221
- private pruneNodeToCutoff;
222
- /**
223
- * Drop the oldest rows across the known nodes until `excess` is covered.
224
- *
225
- * Same bounded-page technique, walked per node so the one index serves it.
226
- * The node holding the oldest rows pays first, which is also the node
227
- * producing the pressure when a runaway process count is the cause.
228
- */
229
- private pruneOldestRows;
237
+ private declared;
238
+ private lastPruneAtMs;
239
+ private readonly store;
240
+ private readonly logger;
241
+ private readonly nowFn;
242
+ private readonly prunePageRows;
243
+ private readonly pruneIntervalMs;
244
+ constructor(deps: LoadSeriesStoreDeps);
245
+ /** Idempotently declare the collection. `false` when the store refused. */
246
+ declare(): Promise<boolean>;
247
+ /**
248
+ * Append ONE sample — every process row of it — in ONE transaction.
249
+ *
250
+ * Never a write per row. `insertMany` exists for exactly this: at the 10 s
251
+ * default the fleet produces 7.6 rows/s, and 7.6 separate commits per second
252
+ * on the connection that also serves every cluster-wide configuration read
253
+ * is a constant load nobody asked for.
254
+ */
255
+ append(nodeId: string, atMs: number, processes: readonly RetainedProcess[]): Promise<number>;
256
+ /**
257
+ * Read one node's cold samples, oldest-first.
258
+ *
259
+ * `sinceMs` is EXCLUSIVE, matching the ring, so a caller passing the newest
260
+ * timestamp it holds gets only what it is missing. `limitRows` bounds the
261
+ * read in ROWS (not samples) because rows are what the query costs.
262
+ */
263
+ read(nodeId: string, sinceMs: number, limitRows: number): Promise<readonly RetainedSample[]>;
264
+ /**
265
+ * Enforce BOTH bounds, oldest-first, through a bounded page each.
266
+ *
267
+ * Rate-limited to {@link pruneIntervalMs}: a bound is not a deadline, and the
268
+ * append path must not pay a sweep on every sample.
269
+ */
270
+ prune(nodeIds: readonly string[], retention: LoadSeriesRetention, force?: boolean): Promise<PruneOutcome | null>;
271
+ /** Total rows, or `null` when the store could not answer. */
272
+ count(): Promise<number | null>;
273
+ /**
274
+ * Delete this node's rows older than `cutoff`, at most one page's worth.
275
+ *
276
+ * The page is the whole point. `deleteWhere({ atMs: [0, cutoff] })` on its
277
+ * own is one statement but an UNBOUNDED one — a first pass after a retention
278
+ * change would delete millions of rows inside a single stalling transaction.
279
+ * So the page is read first (keys only, ordered by the index), its last
280
+ * `atMs` becomes the EFFECTIVE cutoff, and the delete is bounded by it.
281
+ */
282
+ private pruneNodeToCutoff;
283
+ /**
284
+ * Drop the oldest rows across the known nodes until `excess` is covered.
285
+ *
286
+ * Same bounded-page technique, walked per node so the one index serves it.
287
+ * The node holding the oldest rows pays first, which is also the node
288
+ * producing the pressure when a runaway process count is the cause.
289
+ */
290
+ private pruneOldestRows;
230
291
  }
231
292
  /** Structural validation on read. A malformed row is skipped, never charted. */
232
293
  export declare function recordToRow(data: Record<string, unknown>): LoadSeriesRow | null;
@@ -1,48 +1,48 @@
1
- import { DiskSpaceInfo, MemoryInfo, MetricsGpuInfo, PidResourceStats, SystemResourceSnapshot } from '@camstack/types';
1
+ import type { DiskSpaceInfo, MemoryInfo, MetricsGpuInfo, PidResourceStats, SystemResourceSnapshot } from "@camstack/types";
2
2
  interface SamplingDiagnostics {
3
- warn(message: string, meta?: Record<string, unknown>): void;
3
+ warn(message: string, meta?: Record<string, unknown>): void;
4
4
  }
5
5
  export declare class NativeMetricsProvider {
6
- readonly id = "native";
7
- private cachedSnapshot;
8
- private samplingTimer;
9
- private macMemTimer;
10
- private prevCpu;
11
- private diagnostics;
12
- private consecutiveSampleErrors;
13
- constructor();
14
- /**
15
- * Optional diagnostics sink for sampling errors. The first failure and
16
- * every Nth failure thereafter are reported so a permanently-broken
17
- * collector doesn't spam logs but is still observable.
18
- */
19
- setDiagnostics(diag: SamplingDiagnostics): void;
20
- startSampling(intervalMs: number): void;
21
- private reportSampleError;
22
- stopSampling(): void;
23
- collectSnapshot(): Promise<SystemResourceSnapshot>;
24
- getCached(): Promise<SystemResourceSnapshot | null>;
25
- getCurrent(): Promise<{
26
- cpuPercent: number;
27
- memoryPercent: number;
28
- memoryUsedMB: number;
29
- memoryTotalMB: number;
30
- diskPercent?: number;
31
- temperature?: number;
32
- gpuPercent?: number;
33
- gpuMemoryPercent?: number;
34
- }>;
35
- getDiskSpace(input: {
36
- dirPath: string;
37
- }): Promise<DiskSpaceInfo>;
38
- getGpuInfo(): Promise<MetricsGpuInfo | null>;
39
- getCpuTemperature(): Promise<number | null>;
40
- getProcessStats(input: {
41
- pids: number[];
42
- }): Promise<PidResourceStats[]>;
43
- private sampleCpu;
44
- /** Cached macOS memory (set by sampleMacMemory timer). */
45
- _cachedMacMem: MemoryInfo | null;
46
- private getMemoryInfo;
6
+ readonly id = "native";
7
+ private cachedSnapshot;
8
+ private samplingTimer;
9
+ private macMemTimer;
10
+ private prevCpu;
11
+ private diagnostics;
12
+ private consecutiveSampleErrors;
13
+ constructor();
14
+ /**
15
+ * Optional diagnostics sink for sampling errors. The first failure and
16
+ * every Nth failure thereafter are reported so a permanently-broken
17
+ * collector doesn't spam logs but is still observable.
18
+ */
19
+ setDiagnostics(diag: SamplingDiagnostics): void;
20
+ startSampling(intervalMs: number): void;
21
+ private reportSampleError;
22
+ stopSampling(): void;
23
+ collectSnapshot(): Promise<SystemResourceSnapshot>;
24
+ getCached(): Promise<SystemResourceSnapshot | null>;
25
+ getCurrent(): Promise<{
26
+ cpuPercent: number;
27
+ memoryPercent: number;
28
+ memoryUsedMB: number;
29
+ memoryTotalMB: number;
30
+ diskPercent?: number;
31
+ temperature?: number;
32
+ gpuPercent?: number;
33
+ gpuMemoryPercent?: number;
34
+ }>;
35
+ getDiskSpace(input: {
36
+ dirPath: string;
37
+ }): Promise<DiskSpaceInfo>;
38
+ getGpuInfo(): Promise<MetricsGpuInfo | null>;
39
+ getCpuTemperature(): Promise<number | null>;
40
+ getProcessStats(input: {
41
+ pids: number[];
42
+ }): Promise<PidResourceStats[]>;
43
+ private sampleCpu;
44
+ /** Cached macOS memory (set by sampleMacMemory timer). */
45
+ _cachedMacMem: MemoryInfo | null;
46
+ private getMemoryInfo;
47
47
  }
48
48
  export {};