@camstack/system 1.2.390 → 1.2.392

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/addon-utils.js +1 -1
  7. package/dist/addon-utils.mjs +1 -1
  8. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  9. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  10. package/dist/amd-npu-B-QyyMyF.js +53 -0
  11. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  12. package/dist/auth/admin-token-manager.d.ts +37 -67
  13. package/dist/auth/api-key-manager.d.ts +8 -8
  14. package/dist/auth/auth-audit-log.d.ts +29 -49
  15. package/dist/auth/auth-manager.d.ts +127 -126
  16. package/dist/auth/cidr.d.ts +8 -8
  17. package/dist/auth/external-identity-manager.d.ts +46 -34
  18. package/dist/auth/jwt-signing-key.d.ts +14 -14
  19. package/dist/auth/login-session-manager.d.ts +95 -135
  20. package/dist/auth/parse-record.d.ts +13 -13
  21. package/dist/auth/scope-matcher.d.ts +7 -7
  22. package/dist/auth/scoped-token-manager.d.ts +62 -62
  23. package/dist/auth/token-expiry.d.ts +49 -26
  24. package/dist/auth/totp-manager.d.ts +48 -48
  25. package/dist/auth/user-management-internal.d.ts +67 -52
  26. package/dist/auth/user-manager.d.ts +58 -58
  27. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  28. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  29. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  30. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  31. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  32. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  33. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  34. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  35. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  36. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  37. package/dist/builtins/alerts/alerts.addon.js +1 -1
  38. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  39. package/dist/builtins/alerts/device-label.d.ts +6 -6
  40. package/dist/builtins/alerts/index.d.ts +1 -1
  41. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  42. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  43. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  44. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  45. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  46. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  47. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  48. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  49. package/dist/builtins/autotrack/index.d.ts +2 -2
  50. package/dist/builtins/autotrack/index.js +1 -1
  51. package/dist/builtins/autotrack/index.mjs +1 -1
  52. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  53. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  54. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  57. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  58. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  59. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  60. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  61. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  62. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  63. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  64. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  65. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  66. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  67. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  68. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  69. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  70. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  71. package/dist/builtins/calendars/calendars.addon.js +1 -1
  72. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  73. package/dist/builtins/calendars/index.d.ts +1 -1
  74. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  75. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  76. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  77. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  78. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  79. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  80. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  81. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  82. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  83. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  84. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  85. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  86. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  87. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  88. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  89. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  90. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  91. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  92. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  93. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  94. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  95. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  96. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  97. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  98. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  99. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  100. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  101. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  102. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  103. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  104. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  105. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  106. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  107. package/dist/builtins/camera-grid/index.d.ts +44 -44
  108. package/dist/builtins/camera-grid/index.js +1 -1
  109. package/dist/builtins/camera-grid/index.mjs +1 -1
  110. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  111. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  112. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  113. package/dist/builtins/composer/composed-device.d.ts +39 -17
  114. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  115. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  116. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  117. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  118. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  119. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  120. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  121. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  122. package/dist/builtins/composer/composer.addon.js +2 -2
  123. package/dist/builtins/composer/composer.addon.mjs +2 -2
  124. package/dist/builtins/composer/composer.d.ts +145 -100
  125. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  126. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  127. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  128. package/dist/builtins/composer/composition-target.d.ts +38 -34
  129. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  130. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  131. package/dist/builtins/composer/existing-target.d.ts +90 -73
  132. package/dist/builtins/composer/field-record.d.ts +26 -19
  133. package/dist/builtins/composer/graft-host.d.ts +56 -32
  134. package/dist/builtins/composer/held-claims.d.ts +26 -9
  135. package/dist/builtins/composer/index.d.ts +1 -1
  136. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  137. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  138. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  139. package/dist/builtins/composer/source-readings.d.ts +67 -61
  140. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  141. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  142. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  143. package/dist/builtins/console-logging/index.d.ts +3 -3
  144. package/dist/builtins/console-logging/index.js +1 -1
  145. package/dist/builtins/console-logging/index.mjs +1 -1
  146. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  147. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  148. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  149. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  150. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  151. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  152. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  153. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  154. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  155. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  156. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  157. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  158. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  159. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  160. package/dist/builtins/core-blocks/index.d.ts +8 -8
  161. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  162. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  163. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  164. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  165. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  166. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  167. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  168. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  169. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  170. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  171. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  172. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  173. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  174. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  175. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  176. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  177. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  178. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  179. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  180. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  181. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  182. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  183. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  184. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  185. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  186. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  187. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  188. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  189. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  190. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  191. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  192. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  193. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  194. package/dist/builtins/device-manager/index.d.ts +2 -2
  195. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  196. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  197. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  198. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  199. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  200. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  201. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  202. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  203. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  204. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  205. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  206. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  207. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  208. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  209. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  210. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  211. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  212. package/dist/builtins/hub-forwarder/index.js +1 -1
  213. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  214. package/dist/builtins/keychain/index.d.ts +1 -1
  215. package/dist/builtins/keychain/index.js +3 -3
  216. package/dist/builtins/keychain/index.mjs +3 -3
  217. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  218. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  219. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  220. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  221. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  222. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  223. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  224. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  225. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  226. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  227. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  228. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  229. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  230. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  231. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  232. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  233. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  234. package/dist/builtins/local-auth/index.d.ts +1 -1
  235. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  236. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  237. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  238. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  239. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  240. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  241. package/dist/builtins/local-network/address-book.d.ts +61 -36
  242. package/dist/builtins/local-network/index.d.ts +2 -2
  243. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  244. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  245. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  246. package/dist/builtins/local-network/local-network.addon.js +1 -1
  247. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  248. package/dist/builtins/loki-logging/index.d.ts +4 -4
  249. package/dist/builtins/loki-logging/index.js +1 -1
  250. package/dist/builtins/loki-logging/index.mjs +1 -1
  251. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  252. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  253. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  254. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  255. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  256. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  257. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  258. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  259. package/dist/builtins/native-metrics/index.d.ts +2 -2
  260. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  261. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  262. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  263. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  264. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  265. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  266. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  267. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  268. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  269. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  270. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  271. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  272. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  273. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  274. package/dist/builtins/platform-probe/index.d.ts +38 -30
  275. package/dist/builtins/platform-probe/index.js +59 -22
  276. package/dist/builtins/platform-probe/index.mjs +59 -22
  277. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  278. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  279. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  280. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  281. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  282. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  283. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  284. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  285. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  286. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  287. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  288. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  289. package/dist/builtins/snapshot/index.d.ts +2 -2
  290. package/dist/builtins/snapshot/index.js +1 -1
  291. package/dist/builtins/snapshot/index.mjs +1 -1
  292. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  293. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  294. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  295. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  296. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  297. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  298. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  299. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  300. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  301. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  302. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  303. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  304. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  305. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  306. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  307. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  308. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  309. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  310. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  311. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  312. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  313. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  314. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  315. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  316. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  317. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  318. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  319. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  320. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  321. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  322. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  323. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  324. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  325. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  326. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  327. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  328. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  329. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  330. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  331. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  332. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  333. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  334. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  335. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  336. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  337. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  338. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  339. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  340. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  341. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  342. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  343. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  344. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  345. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  346. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  347. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  348. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  349. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  350. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  351. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  352. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  353. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  354. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  355. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  356. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  357. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  358. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  359. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  360. package/dist/builtins/system-config/index.d.ts +2 -2
  361. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  362. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  363. package/dist/builtins/system-config/system-config.addon.js +39 -35
  364. package/dist/builtins/system-config/system-config.addon.mjs +320 -316
  365. package/dist/builtins/winston-logging/index.d.ts +3 -3
  366. package/dist/builtins/winston-logging/index.js +1 -1
  367. package/dist/builtins/winston-logging/index.mjs +1 -1
  368. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  369. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  370. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Nx-lrlHR.js} +19 -1
  371. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
  372. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
  373. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
  374. package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
  375. package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
  376. package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
  377. package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -1
  378. package/dist/download/hosted-model-revisions.d.ts +8 -8
  379. package/dist/download/model-download-service.d.ts +32 -32
  380. package/dist/download/model-downloader.d.ts +88 -88
  381. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
  382. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
  383. package/dist/events/event-bus.d.ts +6 -6
  384. package/dist/events/system-event-bus.d.ts +11 -11
  385. package/dist/feature/feature-manager.d.ts +6 -6
  386. package/dist/http/asset-compression.d.ts +35 -73
  387. package/dist/http/authenticated-file-server.d.ts +32 -32
  388. package/dist/http/data-plane-registry.d.ts +49 -39
  389. package/dist/http/file-data-plane.d.ts +14 -14
  390. package/dist/http/lan-http-bind.d.ts +24 -13
  391. package/dist/http/reverse-proxy.d.ts +36 -24
  392. package/dist/index.d.ts +137 -137
  393. package/dist/index.js +9 -8
  394. package/dist/index.mjs +7 -9
  395. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
  396. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
  397. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  398. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  399. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  400. package/dist/kernel/addon-installer.d.ts +609 -609
  401. package/dist/kernel/addon-loader.d.ts +133 -133
  402. package/dist/kernel/addon-manifest.d.ts +118 -118
  403. package/dist/kernel/addon-residue.d.ts +28 -32
  404. package/dist/kernel/array-buffer-census.d.ts +84 -88
  405. package/dist/kernel/bootstrap-config.d.ts +3 -3
  406. package/dist/kernel/cap-router-builder.d.ts +145 -101
  407. package/dist/kernel/capability-handle.d.ts +41 -41
  408. package/dist/kernel/capability-registry.d.ts +588 -576
  409. package/dist/kernel/config-manager.d.ts +199 -199
  410. package/dist/kernel/config-schema.d.ts +132 -128
  411. package/dist/kernel/custom-action-registry.d.ts +25 -25
  412. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  413. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  414. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  415. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  416. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  417. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  418. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  419. package/dist/kernel/deps/npm-command.d.ts +45 -45
  420. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  421. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  422. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  423. package/dist/kernel/device-registry.d.ts +27 -27
  424. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  425. package/dist/kernel/event-plane-report.d.ts +174 -174
  426. package/dist/kernel/fs-utils.d.ts +70 -70
  427. package/dist/kernel/gc-census.d.ts +119 -119
  428. package/dist/kernel/heap-spaces.d.ts +87 -87
  429. package/dist/kernel/heap-watch.d.ts +706 -706
  430. package/dist/kernel/host-externals.d.ts +8 -8
  431. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  432. package/dist/kernel/index.d.ts +115 -113
  433. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  434. package/dist/kernel/infra-capabilities.d.ts +7 -7
  435. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  436. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  437. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  438. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  439. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  440. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  441. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  442. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  443. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  444. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  445. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  446. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  447. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  448. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  449. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  450. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  451. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  452. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  453. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  454. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  455. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  456. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  457. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  458. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  459. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  460. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  461. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  462. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  463. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  464. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  465. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  466. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  467. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  468. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  469. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  470. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  471. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  472. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  473. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  474. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  475. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  476. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  477. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  478. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  479. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  480. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  481. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  482. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  483. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  484. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  485. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  486. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  487. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  488. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  489. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  490. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  491. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  492. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  493. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  494. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  495. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  496. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  497. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  498. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  499. package/dist/kernel/process-cpu-census.d.ts +55 -55
  500. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  501. package/dist/kernel/restart-coordinator.d.ts +71 -71
  502. package/dist/kernel/settings-door-view.d.ts +36 -25
  503. package/dist/kernel/settings-read-error.d.ts +29 -31
  504. package/dist/kernel/settings-view-types.d.ts +100 -95
  505. package/dist/kernel/socket-plane-report.d.ts +214 -153
  506. package/dist/kernel/status-overlay.d.ts +31 -11
  507. package/dist/kernel/storage-location-registry.d.ts +50 -50
  508. package/dist/kernel/store-settings-view.d.ts +13 -13
  509. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  510. package/dist/kernel/system-settings-policy.d.ts +15 -34
  511. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  512. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  513. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  514. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  515. package/dist/kernel/transport/cap-route.d.ts +139 -139
  516. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  517. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  518. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  519. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  520. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  521. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  522. package/dist/kernel/transport/index.d.ts +36 -36
  523. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  524. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  525. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  526. package/dist/kernel/transport/local-transport.d.ts +92 -92
  527. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  528. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  529. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  530. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  531. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  532. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  533. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  534. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  535. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  536. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  537. package/dist/kernel/workspace-detect.d.ts +7 -7
  538. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  539. package/dist/logging/formatter.d.ts +52 -25
  540. package/dist/logging/log-manager.d.ts +133 -133
  541. package/dist/logging/log-redactor.d.ts +22 -1
  542. package/dist/logging/log-ring-buffer.d.ts +57 -57
  543. package/dist/logging/logging-gate.d.ts +69 -25
  544. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  545. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  546. package/dist/logging/scoped-logger.d.ts +14 -14
  547. package/dist/network/network-quality.d.ts +8 -8
  548. package/dist/notification/notification-service.d.ts +37 -37
  549. package/dist/notification/toast-service.d.ts +18 -18
  550. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  551. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  552. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  553. package/dist/process/proc-stat.d.ts +51 -51
  554. package/dist/process/resource-monitor.d.ts +19 -19
  555. package/dist/python/python-env-manager.d.ts +10 -10
  556. package/dist/repl/interfaces.d.ts +21 -21
  557. package/dist/repl/repl-engine.d.ts +6 -6
  558. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
  559. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
  560. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
  561. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
  562. package/dist/storage/fs-storage-backend.d.ts +35 -35
  563. package/dist/storage/storage-location-manager.d.ts +21 -21
  564. package/dist/storage/storage-manager.d.ts +68 -68
  565. package/dist/tls/boot-tls.d.ts +24 -24
  566. package/dist/tls/cert-evaluation.d.ts +25 -25
  567. package/dist/tls/cert-identity.d.ts +39 -39
  568. package/dist/tls/cert-issue.d.ts +37 -17
  569. package/dist/tls/cert-manager.d.ts +86 -84
  570. package/dist/tls/https-listener.d.ts +16 -16
  571. package/dist/tls/index.d.ts +8 -8
  572. package/dist/tls/tls-actions.d.ts +18 -18
  573. package/dist/tls/tls-status.d.ts +15 -15
  574. package/dist/tls/uploaded-cert.d.ts +9 -9
  575. package/package.json +9 -3
@@ -1,113 +1,155 @@
1
- import { SystemEvent } from '@camstack/types';
1
+ /**
2
+ * Per-device event rings — the history a single camera's Events panel reads.
3
+ *
4
+ * WHY THIS EXISTS. The retaining bus keeps ONE global ring
5
+ * (`SharedBusState.recent`, {@link MAX_RECENT_EVENTS}). That ring is a COUNT,
6
+ * not a window, and it is shared by the whole fleet, so a quiet camera is
7
+ * evicted by its 31 noisy siblings long before the operator opens its panel.
8
+ * Measured on the live hub: 16 events/s fleet-wide, 817 B average per event —
9
+ * a 10 000-slot global ring covers 10.4 minutes of FLEET traffic and can hold
10
+ * nothing at all for a camera that emitted an hour ago.
11
+ *
12
+ * WHAT THIS IS NOT. Still telemetry (D8/D11): in-memory, hub-main only, lost on
13
+ * restart, no table, no persistence. Nothing durable may be derived from it.
14
+ *
15
+ * SHAPE. One ring per device id, each holding two disjoint parts:
16
+ *
17
+ * - `history` — events of categories nobody declared a mirror. Bounded by
18
+ * {@link MAX_DEVICE_RING_EVENTS}. After coalescing the fleet emits ~1.1
19
+ * events/s (~3 000/day/camera), so 2 000 slots ≈ 16 h per camera — the day
20
+ * the operator asked for.
21
+ * - `mirrors` — the LATEST event per declared-mirror category
22
+ * ({@link MIRROR_CATEGORIES}). A mirror has no history, only a current
23
+ * value: the penultimate value of `device.state-changed` means nothing, and
24
+ * keeping it is what made 89 % of the fleet's traffic evict everything else.
25
+ * Bounded by the size of the declared set, i.e. a handful of slots.
26
+ *
27
+ * A category NOBODY classified is NOT coalesced. Keeping history is the safe
28
+ * default; silently collapsing an unclassified category would lose data nobody
29
+ * decided to lose.
30
+ *
31
+ * NO deviceId ⇒ NOT HERE. An event that carries no device attribution
32
+ * (`broker.message`, the Home Assistant state mirror, ~64 000/day, carries only
33
+ * `brokerId` / `subscriptionId` / `key`) is a first-class case: it is retained
34
+ * in the GLOBAL ring only and no device is invented for it. If attribution is
35
+ * added later, the event starts landing in a device ring with no change here.
36
+ *
37
+ * MEMORY. The retained `data` payload is capped
38
+ * ({@link MAX_RETAINED_DATA_BYTES}), not the event count — hub-main's heap is
39
+ * not a place to spend 52 MB on telemetry. A capped payload is REPLACED by a
40
+ * marked {@link TruncatedEventData} so a consumer can tell a short payload from
41
+ * a cut one.
42
+ */
43
+ import type { SystemEvent } from "@camstack/types";
2
44
  /** One declared mirror category and the reason it may be collapsed. */
3
45
  export interface MirrorCategoryDeclaration {
4
- /** Exact event category. Not a glob — a mirror is declared one by one. */
5
- readonly category: string;
6
- /** Why the penultimate value of this category carries no information. */
7
- readonly reason: string;
46
+ /** Exact event category. Not a glob — a mirror is declared one by one. */
47
+ readonly category: string;
48
+ /** Why the penultimate value of this category carries no information. */
49
+ readonly reason: string;
8
50
  }
9
51
  /**
10
- * The categories whose per-device history is ONE slot: the latest value.
11
- *
12
- * Declared here, with a reason each, on purpose — the alternative is `if`s
13
- * scattered over the delivery path, and nobody can then answer "what does this
14
- * system collapse, and who decided?".
15
- *
16
- * Adding an entry DELETES history for that category. Add one only when the
17
- * category is genuinely a state mirror (a snapshot of a current value), never
18
- * because it is merely frequent — a frequent EDGE (a motion start, a crash)
19
- * belongs in `RING_BUFFER_DENY_PATTERNS` or nowhere, not here.
20
- */
52
+ * The categories whose per-device history is ONE slot: the latest value.
53
+ *
54
+ * Declared here, with a reason each, on purpose — the alternative is `if`s
55
+ * scattered over the delivery path, and nobody can then answer "what does this
56
+ * system collapse, and who decided?".
57
+ *
58
+ * Adding an entry DELETES history for that category. Add one only when the
59
+ * category is genuinely a state mirror (a snapshot of a current value), never
60
+ * because it is merely frequent — a frequent EDGE (a motion start, a crash)
61
+ * belongs in `RING_BUFFER_DENY_PATTERNS` or nowhere, not here.
62
+ */
21
63
  export declare const MIRROR_CATEGORIES: readonly MirrorCategoryDeclaration[];
22
64
  /** The declared reason this category is a mirror, or `undefined` if unclassified. */
23
65
  export declare function mirrorReason(category: string): string | undefined;
24
66
  /**
25
- * Is this category declared a mirror? An unclassified category is NOT a mirror
26
- * — the safe default is to keep its history.
27
- */
67
+ * Is this category declared a mirror? An unclassified category is NOT a mirror
68
+ * — the safe default is to keep its history.
69
+ */
28
70
  export declare function isMirrorCategory(category: string): boolean;
29
71
  /**
30
- * Non-mirror events retained per device. ~1.1 events/s fleet-wide after
31
- * coalescing ⇒ ~3 000/day/camera ⇒ 2 000 ≈ 16 h.
32
- */
33
- export declare const MAX_DEVICE_RING_EVENTS = 2000;
72
+ * Non-mirror events retained per device. ~1.1 events/s fleet-wide after
73
+ * coalescing ⇒ ~3 000/day/camera ⇒ 2 000 ≈ 16 h.
74
+ */
75
+ export declare const MAX_DEVICE_RING_EVENTS = 2e3;
34
76
  /**
35
- * Cap on the retained `data` payload, in UTF-8 bytes. The COUNT is not what
36
- * costs memory — 32 devices × 2 000 events × 817 B (measured average) ≈ 52 MB.
37
- * Capping the payload brings the worst case to ≈ 26 MB and the realistic case
38
- * far below it, since most events are already under the cap.
39
- */
77
+ * Cap on the retained `data` payload, in UTF-8 bytes. The COUNT is not what
78
+ * costs memory — 32 devices × 2 000 events × 817 B (measured average) ≈ 52 MB.
79
+ * Capping the payload brings the worst case to ≈ 26 MB and the realistic case
80
+ * far below it, since most events are already under the cap.
81
+ */
40
82
  export declare const MAX_RETAINED_DATA_BYTES = 256;
41
83
  /** Bytes of the original JSON kept as a human-readable preview of a cut payload. */
42
84
  export declare const TRUNCATED_PREVIEW_BYTES = 160;
43
85
  /**
44
- * Devices tracked at once. Far above the fleet (32) — it exists so a bad
45
- * deviceId stream cannot grow the map without bound. Eviction is
46
- * least-recently-written.
47
- */
86
+ * Devices tracked at once. Far above the fleet (32) — it exists so a bad
87
+ * deviceId stream cannot grow the map without bound. Eviction is
88
+ * least-recently-written.
89
+ */
48
90
  export declare const MAX_TRACKED_DEVICES = 512;
49
91
  /** Marker key present on — and only on — a payload this module cut. */
50
92
  export declare const TRUNCATED_DATA_KEY = "__truncated";
51
93
  /**
52
- * What replaces a payload above {@link MAX_RETAINED_DATA_BYTES}. A consumer
53
- * MUST be able to tell a short payload from a cut one, so the replacement says
54
- * so explicitly rather than silently shipping a prefix.
55
- */
94
+ * What replaces a payload above {@link MAX_RETAINED_DATA_BYTES}. A consumer
95
+ * MUST be able to tell a short payload from a cut one, so the replacement says
96
+ * so explicitly rather than silently shipping a prefix.
97
+ */
56
98
  export interface TruncatedEventData extends Record<string, unknown> {
57
- readonly __truncated: true;
58
- /** Size of the original JSON payload, or `null` when it could not be measured. */
59
- readonly __originalBytes: number | null;
60
- /** First {@link TRUNCATED_PREVIEW_BYTES} characters of the original JSON. */
61
- readonly __preview: string;
99
+ readonly __truncated: true;
100
+ /** Size of the original JSON payload, or `null` when it could not be measured. */
101
+ readonly __originalBytes: number | null;
102
+ /** First {@link TRUNCATED_PREVIEW_BYTES} characters of the original JSON. */
103
+ readonly __preview: string;
62
104
  }
63
105
  /** Is this the marked replacement of a cut payload? */
64
106
  export declare function isTruncatedEventData(data: Record<string, unknown>): data is TruncatedEventData;
65
107
  /**
66
- * The event as it should be RETAINED: unchanged when its payload is within the
67
- * cap, otherwise a NEW event whose `data` is the marked replacement. The
68
- * argument is never mutated — the same object is still live on the fan-out path
69
- * and in the global ring.
70
- */
108
+ * The event as it should be RETAINED: unchanged when its payload is within the
109
+ * cap, otherwise a NEW event whose `data` is the marked replacement. The
110
+ * argument is never mutated — the same object is still live on the fan-out path
111
+ * and in the global ring.
112
+ */
71
113
  export declare function capEventData(event: SystemEvent): SystemEvent;
72
114
  /**
73
- * The device this event is about, or `undefined` when it is about no device.
74
- *
75
- * Same rule as `matchesEventFilter` — `source.deviceId`, or `source.id` when
76
- * the source IS a device — so a read filtered by `deviceId` and a read served
77
- * from that device's ring agree on which events belong to it. A non-numeric
78
- * device source id yields `undefined` rather than `NaN`: an unattributable
79
- * event must never become a bucket of its own.
80
- */
115
+ * The device this event is about, or `undefined` when it is about no device.
116
+ *
117
+ * Same rule as `matchesEventFilter` — `source.deviceId`, or `source.id` when
118
+ * the source IS a device — so a read filtered by `deviceId` and a read served
119
+ * from that device's ring agree on which events belong to it. A non-numeric
120
+ * device source id yields `undefined` rather than `NaN`: an unattributable
121
+ * event must never become a bucket of its own.
122
+ */
81
123
  export declare function eventDeviceId(event: SystemEvent): number | undefined;
82
124
  interface DeviceRing {
83
- /** Non-mirror events, oldest first, bounded by {@link MAX_DEVICE_RING_EVENTS}. */
84
- readonly history: SystemEvent[];
85
- /** Latest event per declared-mirror category. */
86
- readonly mirrors: Map<string, SystemEvent>;
125
+ /** Non-mirror events, oldest first, bounded by {@link MAX_DEVICE_RING_EVENTS}. */
126
+ readonly history: SystemEvent[];
127
+ /** Latest event per declared-mirror category. */
128
+ readonly mirrors: Map<string, SystemEvent>;
87
129
  }
88
130
  /**
89
- * Every device's ring. Insertion order is least-recently-written first, which
90
- * is what {@link MAX_TRACKED_DEVICES} evicts by.
91
- */
131
+ * Every device's ring. Insertion order is least-recently-written first, which
132
+ * is what {@link MAX_TRACKED_DEVICES} evicts by.
133
+ */
92
134
  export interface DeviceEventRings {
93
- readonly byDevice: Map<number, DeviceRing>;
135
+ readonly byDevice: Map<number, DeviceRing>;
94
136
  }
95
137
  export declare function createDeviceEventRings(): DeviceEventRings;
96
138
  /**
97
- * Retain `event` in its device's ring, with its payload capped.
98
- *
99
- * Returns the device it was filed under, or `undefined` when the event names no
100
- * device — the caller has already retained it in the global ring and nothing
101
- * more happens here. No device is fabricated.
102
- */
139
+ * Retain `event` in its device's ring, with its payload capped.
140
+ *
141
+ * Returns the device it was filed under, or `undefined` when the event names no
142
+ * device — the caller has already retained it in the global ring and nothing
143
+ * more happens here. No device is fabricated.
144
+ */
103
145
  export declare function recordDeviceEvent(rings: DeviceEventRings, event: SystemEvent): number | undefined;
104
146
  /**
105
- * Everything retained for one device, oldest first — history merged with the
106
- * current value of each mirror, ordered by timestamp so the caller's `-limit`
107
- * slice means the same thing it means on the global ring.
108
- *
109
- * An unknown device yields `[]`: unknown is the truth about a camera that has
110
- * emitted nothing since this process started.
111
- */
147
+ * Everything retained for one device, oldest first — history merged with the
148
+ * current value of each mirror, ordered by timestamp so the caller's `-limit`
149
+ * slice means the same thing it means on the global ring.
150
+ *
151
+ * An unknown device yields `[]`: unknown is the truth about a camera that has
152
+ * emitted nothing since this process started.
153
+ */
112
154
  export declare function getDeviceRecent(rings: DeviceEventRings, deviceId: number): readonly SystemEvent[];
113
155
  export {};
@@ -1,186 +1,198 @@
1
- import { EventFilter, SystemEvent } from '@camstack/types';
2
- import { DeviceEventRings } from './device-event-ring.js';
1
+ /**
2
+ * Shared event-bus core — pure in-process fan-out logic with NO dependency on
3
+ * Moleculer or any transport layer.
4
+ *
5
+ * Consumed by:
6
+ * - `event-bus.ts` (Moleculer broker-backed cluster bus)
7
+ * - `uds-event-bus.ts` (UDS-backed child-process bus, C1)
8
+ *
9
+ * Keeping this module transport-free means the UDS bus can reuse every piece
10
+ * of logic (deny-list, subscriber map, filter semantics) without pulling in
11
+ * Moleculer types.
12
+ */
13
+ import type { EventFilter, SystemEvent } from "@camstack/types";
14
+ import type { DeviceEventRings } from "./device-event-ring.js";
3
15
  export interface SubscriberEntry {
4
- /** Original filter — kept whole so non-category dimensions are honoured per-event. */
5
- readonly filter: EventFilter | string | undefined;
6
- /**
7
- * Pre-computed category pattern for the cheap pre-filter — the FIRST of
8
- * {@link extractCategoryPatterns} when the filter names several. Diagnostic
9
- * only: the authority on which keys an entry occupies is the handler map
10
- * itself, written by {@link registerSubscriber}.
11
- */
12
- readonly categoryPattern: string;
13
- readonly handler: (event: SystemEvent) => void;
16
+ /** Original filter — kept whole so non-category dimensions are honoured per-event. */
17
+ readonly filter: EventFilter | string | undefined;
18
+ /**
19
+ * Pre-computed category pattern for the cheap pre-filter — the FIRST of
20
+ * {@link extractCategoryPatterns} when the filter names several. Diagnostic
21
+ * only: the authority on which keys an entry occupies is the handler map
22
+ * itself, written by {@link registerSubscriber}.
23
+ */
24
+ readonly categoryPattern: string;
25
+ readonly handler: (event: SystemEvent) => void;
14
26
  }
15
27
  export interface SharedBusState {
16
- /**
17
- * Subscribers indexed by category pattern. Each entry also carries its full
18
- * filter so the subsequent `matchesEventFilter` call can reject events that
19
- * match the category but not the scope (deviceId, addonId, …).
20
- */
21
- readonly handlers: Map<string, Set<SubscriberEntry>>;
22
- /**
23
- * In-memory recent-events buffer. The deny-list below filters out
24
- * high-frequency categories so the buffer only accumulates audit-grade
25
- * lifecycle events.
26
- *
27
- * ONLY populated when `retainRecent` is true (the hub main process). On every
28
- * other bus this array stays empty for the process's whole lifetime.
29
- *
30
- * Cleared on server restart (intentional — events are volatile by design).
31
- */
32
- readonly recent: SystemEvent[];
33
- /**
34
- * Per-device rings BESIDE `recent[]` — not a replacement for it.
35
- *
36
- * `recent[]` is one global, count-bounded ring: a busy fleet evicts a quiet
37
- * camera's events out of it long before an operator opens that camera's
38
- * panel, and filtering a global ring by device cannot bring them back. A
39
- * per-device ask is therefore answered from here instead
40
- * (`getBrokerEventBus().getRecent({ deviceId })`), while an ask that names no
41
- * device is still answered from `recent[]`.
42
- *
43
- * Populated under exactly the same conditions as `recent[]` (retaining bus,
44
- * category not on the high-frequency deny-list), with mirror categories
45
- * coalesced and payloads capped — see `device-event-ring.ts`. An event that
46
- * names no device is retained in `recent[]` ONLY; no device is invented for
47
- * it.
48
- */
49
- readonly deviceRings: DeviceEventRings;
50
- /**
51
- * Whether this bus retains events in `recent[]` to back the
52
- * `getRecent`/audit capability.
53
- *
54
- * Events are one-shot (fire-and-forget): ONLY the hub main process — the
55
- * single process that serves `getRecent` — needs the registry, so ONLY its
56
- * broker bus sets this true. Child addon runners and remote agents leave it
57
- * false: they fan every event out to their local subscribers but retain
58
- * nothing, so their heap can never accumulate an unbounded recent[] backlog.
59
- *
60
- * Mutable so the authoritative opt-in (the hub-main `getBrokerEventBus`
61
- * caller) can upgrade a bus that a non-retaining caller happened to create
62
- * first — see `getSharedBusState`. Never downgraded from true → false.
63
- */
64
- retainRecent: boolean;
28
+ /**
29
+ * Subscribers indexed by category pattern. Each entry also carries its full
30
+ * filter so the subsequent `matchesEventFilter` call can reject events that
31
+ * match the category but not the scope (deviceId, addonId, …).
32
+ */
33
+ readonly handlers: Map<string, Set<SubscriberEntry>>;
34
+ /**
35
+ * In-memory recent-events buffer. The deny-list below filters out
36
+ * high-frequency categories so the buffer only accumulates audit-grade
37
+ * lifecycle events.
38
+ *
39
+ * ONLY populated when `retainRecent` is true (the hub main process). On every
40
+ * other bus this array stays empty for the process's whole lifetime.
41
+ *
42
+ * Cleared on server restart (intentional — events are volatile by design).
43
+ */
44
+ readonly recent: SystemEvent[];
45
+ /**
46
+ * Per-device rings BESIDE `recent[]` — not a replacement for it.
47
+ *
48
+ * `recent[]` is one global, count-bounded ring: a busy fleet evicts a quiet
49
+ * camera's events out of it long before an operator opens that camera's
50
+ * panel, and filtering a global ring by device cannot bring them back. A
51
+ * per-device ask is therefore answered from here instead
52
+ * (`getBrokerEventBus().getRecent({ deviceId })`), while an ask that names no
53
+ * device is still answered from `recent[]`.
54
+ *
55
+ * Populated under exactly the same conditions as `recent[]` (retaining bus,
56
+ * category not on the high-frequency deny-list), with mirror categories
57
+ * coalesced and payloads capped — see `device-event-ring.ts`. An event that
58
+ * names no device is retained in `recent[]` ONLY; no device is invented for
59
+ * it.
60
+ */
61
+ readonly deviceRings: DeviceEventRings;
62
+ /**
63
+ * Whether this bus retains events in `recent[]` to back the
64
+ * `getRecent`/audit capability.
65
+ *
66
+ * Events are one-shot (fire-and-forget): ONLY the hub main process — the
67
+ * single process that serves `getRecent` — needs the registry, so ONLY its
68
+ * broker bus sets this true. Child addon runners and remote agents leave it
69
+ * false: they fan every event out to their local subscribers but retain
70
+ * nothing, so their heap can never accumulate an unbounded recent[] backlog.
71
+ *
72
+ * Mutable so the authoritative opt-in (the hub-main `getBrokerEventBus`
73
+ * caller) can upgrade a bus that a non-retaining caller happened to create
74
+ * first — see `getSharedBusState`. Never downgraded from true → false.
75
+ */
76
+ retainRecent: boolean;
65
77
  }
66
78
  /**
67
- * @param retainRecent - `true` ONLY for the hub main broker bus (it serves
68
- * `getRecent`). Defaults to `false` — the safe one-shot default for child
69
- * runners + agents, which retain nothing.
70
- */
79
+ * @param retainRecent - `true` ONLY for the hub main broker bus (it serves
80
+ * `getRecent`). Defaults to `false` — the safe one-shot default for child
81
+ * runners + agents, which retain nothing.
82
+ */
71
83
  export declare function createSharedBusState(retainRecent?: boolean): SharedBusState;
72
84
  export declare function matchesPattern(pattern: string, category: string): boolean;
73
85
  /**
74
- * The FIRST category pattern of a filter.
75
- *
76
- * Kept for the diagnostic `SubscriberEntry.categoryPattern` field and for
77
- * callers that genuinely want one string. It is NOT the registration path:
78
- * a filter naming several categories must occupy several map keys, which is
79
- * what {@link extractCategoryPatterns} + {@link registerSubscriber} do. Using
80
- * this function to key a subscriber is the bug described on
81
- * `extractCategoryPatterns`.
82
- */
86
+ * The FIRST category pattern of a filter.
87
+ *
88
+ * Kept for the diagnostic `SubscriberEntry.categoryPattern` field and for
89
+ * callers that genuinely want one string. It is NOT the registration path:
90
+ * a filter naming several categories must occupy several map keys, which is
91
+ * what {@link extractCategoryPatterns} + {@link registerSubscriber} do. Using
92
+ * this function to key a subscriber is the bug described on
93
+ * `extractCategoryPatterns`.
94
+ */
83
95
  export declare function extractCategoryPattern(filter: EventFilter | string): string;
84
96
  /**
85
- * EVERY category pattern a filter asks for — the registration key set.
86
- *
87
- * `EventFilter.category` has always accepted an array, and until 2026-08-12
88
- * the delivery path kept only `cat[0]`. Inside a forked runner that was not
89
- * merely a local filter: `createUdsEventBus` reports its handler-map keys to
90
- * the parent as this child's forwarding interest, so the categories that never
91
- * became keys were never forwarded across the process boundary at all. A
92
- * ten-category subscribe received one category, silently.
93
- *
94
- * Duplicates are collapsed so a filter that names the same category twice does
95
- * not put the entry in one key twice.
96
- */
97
+ * EVERY category pattern a filter asks for — the registration key set.
98
+ *
99
+ * `EventFilter.category` has always accepted an array, and until 2026-08-12
100
+ * the delivery path kept only `cat[0]`. Inside a forked runner that was not
101
+ * merely a local filter: `createUdsEventBus` reports its handler-map keys to
102
+ * the parent as this child's forwarding interest, so the categories that never
103
+ * became keys were never forwarded across the process boundary at all. A
104
+ * ten-category subscribe received one category, silently.
105
+ *
106
+ * Duplicates are collapsed so a filter that names the same category twice does
107
+ * not put the entry in one key twice.
108
+ */
97
109
  export declare function extractCategoryPatterns(filter: EventFilter | string): readonly string[];
98
110
  /**
99
- * Register one handler under every category pattern its filter names, and
100
- * return the unsubscribe that removes it from all of them.
101
- *
102
- * The ONE place a subscriber enters `state.handlers` — both bus
103
- * implementations (broker and UDS) call it, so "which keys does this
104
- * subscriber occupy" has a single answer. An emptied key is DELETED rather
105
- * than left as an empty `Set`: on a child bus the key set is what the parent
106
- * is told to forward, and an empty set left behind pins the parent to forward
107
- * a category nobody wants.
108
- *
109
- * @param onKeysChanged - Called after the key set may have changed (both on
110
- * registration and on unsubscribe), for buses that mirror their key set
111
- * somewhere — the UDS child's parent report, the broker's local-interest
112
- * surface. Receives the patterns this call touched.
113
- */
111
+ * Register one handler under every category pattern its filter names, and
112
+ * return the unsubscribe that removes it from all of them.
113
+ *
114
+ * The ONE place a subscriber enters `state.handlers` — both bus
115
+ * implementations (broker and UDS) call it, so "which keys does this
116
+ * subscriber occupy" has a single answer. An emptied key is DELETED rather
117
+ * than left as an empty `Set`: on a child bus the key set is what the parent
118
+ * is told to forward, and an empty set left behind pins the parent to forward
119
+ * a category nobody wants.
120
+ *
121
+ * @param onKeysChanged - Called after the key set may have changed (both on
122
+ * registration and on unsubscribe), for buses that mirror their key set
123
+ * somewhere — the UDS child's parent report, the broker's local-interest
124
+ * surface. Receives the patterns this call touched.
125
+ */
114
126
  export declare function registerSubscriber(state: SharedBusState, filter: EventFilter | string, handler: (event: SystemEvent) => void, onKeysChanged?: (patterns: readonly string[], added: boolean) => void): () => void;
115
127
  /**
116
- * Match an event against the full `EventFilter`. The Map-keyed subscribe path
117
- * only handles the category pattern (deciding which handler set to fan out to);
118
- * this function applies the remaining scope dimensions (`agentId`, `addonId`,
119
- * `deviceId`, `source`, `since`) so per-device / per-addon subscribers don't
120
- * receive sibling events.
121
- */
128
+ * Match an event against the full `EventFilter`. The Map-keyed subscribe path
129
+ * only handles the category pattern (deciding which handler set to fan out to);
130
+ * this function applies the remaining scope dimensions (`agentId`, `addonId`,
131
+ * `deviceId`, `source`, `since`) so per-device / per-addon subscribers don't
132
+ * receive sibling events.
133
+ */
122
134
  export declare function matchesEventFilter(event: SystemEvent, filter: EventFilter | string | undefined): boolean;
123
135
  /**
124
- * Categories filtered out of the `recent[]` ring buffer.
125
- *
126
- * High-frequency, low-value-for-the-operator categories — periodic metrics
127
- * snapshots, per-frame inference traces, raw motion-mask dumps, model-download
128
- * progress, etc. They still fan out to live subscribers (UI charts that
129
- * explicitly listen for them), but do NOT enter the recent-events ring so
130
- * meaningful events (motion / phase transitions / device lifecycle / addon
131
- * lifecycle / recording / detection.event) survive in the last-N window without
132
- * being displaced by per-frame noise.
133
- */
136
+ * Categories filtered out of the `recent[]` ring buffer.
137
+ *
138
+ * High-frequency, low-value-for-the-operator categories — periodic metrics
139
+ * snapshots, per-frame inference traces, raw motion-mask dumps, model-download
140
+ * progress, etc. They still fan out to live subscribers (UI charts that
141
+ * explicitly listen for them), but do NOT enter the recent-events ring so
142
+ * meaningful events (motion / phase transitions / device lifecycle / addon
143
+ * lifecycle / recording / detection.event) survive in the last-N window without
144
+ * being displaced by per-frame noise.
145
+ */
134
146
  export declare const RING_BUFFER_DENY_PATTERNS: readonly string[];
135
147
  /**
136
- * Hard cap on the `recent[]` buffer size. Even audit-grade categories that
137
- * are NOT on the deny-list (e.g. `device.state-changed`) must not accumulate
138
- * without bound — this is the last-N window, not a durable log. Without this
139
- * cap the buffer grew forever (~26 MB/h/process across every broker, agent,
140
- * and UDS-child bus), filling the hub to 16 GB.
141
- */
142
- export declare const MAX_RECENT_EVENTS = 1000;
148
+ * Hard cap on the `recent[]` buffer size. Even audit-grade categories that
149
+ * are NOT on the deny-list (e.g. `device.state-changed`) must not accumulate
150
+ * without bound — this is the last-N window, not a durable log. Without this
151
+ * cap the buffer grew forever (~26 MB/h/process across every broker, agent,
152
+ * and UDS-child bus), filling the hub to 16 GB.
153
+ */
154
+ export declare const MAX_RECENT_EVENTS = 1e3;
143
155
  export declare function isHighFrequencyCategory(category: string): boolean;
144
156
  /**
145
- * Cross-node (Moleculer) inbound gate: an inbound cross-node event whose
146
- * category no local subscriber on THIS node wants (the union of its children's
147
- * declared patterns) is dropped and counted (`suppressed`). It always filters —
148
- * the `CAMSTACK_MOLECULER_EVENT_FANOUT` shadow/broadcast modes were removed on
149
- * 2026-10-06; the intra-host analogue is `LocalChildRegistry.childWantsEvent`.
150
- */
157
+ * Cross-node (Moleculer) inbound gate: an inbound cross-node event whose
158
+ * category no local subscriber on THIS node wants (the union of its children's
159
+ * declared patterns) is dropped and counted (`suppressed`). It always filters —
160
+ * the `CAMSTACK_MOLECULER_EVENT_FANOUT` shadow/broadcast modes were removed on
161
+ * 2026-10-06; the intra-host analogue is `LocalChildRegistry.childWantsEvent`.
162
+ */
151
163
  /**
152
- * A node's inbound-interest snapshot used by {@link crossNodeAcceptsCategory}.
153
- * - `retainRecent` — the receiving bus retains events for `getRecent`/audit
154
- * (the hub main process). Such a bus genuinely wants EVERY category (its
155
- * interest set is the admin-ui live stream + recent[] ring), so it always
156
- * fails OPEN — it never filters inbound cross-node events.
157
- * - `interest` — the union of this node's local subscribers' declared category
158
- * patterns (aggregated from its UDS children). `null` = undeclared / unknown
159
- * (a legacy child, or no oracle installed) → fail OPEN (accept everything).
160
- * An EMPTY array is a *declared* "wants nothing" and drops every category.
161
- */
164
+ * A node's inbound-interest snapshot used by {@link crossNodeAcceptsCategory}.
165
+ * - `retainRecent` — the receiving bus retains events for `getRecent`/audit
166
+ * (the hub main process). Such a bus genuinely wants EVERY category (its
167
+ * interest set is the admin-ui live stream + recent[] ring), so it always
168
+ * fails OPEN — it never filters inbound cross-node events.
169
+ * - `interest` — the union of this node's local subscribers' declared category
170
+ * patterns (aggregated from its UDS children). `null` = undeclared / unknown
171
+ * (a legacy child, or no oracle installed) → fail OPEN (accept everything).
172
+ * An EMPTY array is a *declared* "wants nothing" and drops every category.
173
+ */
162
174
  export interface CrossNodeInterestSnapshot {
163
- readonly retainRecent: boolean;
164
- readonly interest: readonly string[] | null;
175
+ readonly retainRecent: boolean;
176
+ readonly interest: readonly string[] | null;
165
177
  }
166
178
  /**
167
- * Does this node want to accept an inbound cross-node event in `category`?
168
- * The receiving-side mirror of `LocalChildRegistry.childWantsEvent`:
169
- * - a retaining bus (hub main) → always (it serves `getRecent` + admin-ui;
170
- * its interest is genuinely everything).
171
- * - undeclared interest (`null`) → always (fail-open).
172
- * - else the declared union must match via `matchesPattern` — the SAME
173
- * function the local subscriber map-key gate uses, giving delivery parity.
174
- */
179
+ * Does this node want to accept an inbound cross-node event in `category`?
180
+ * The receiving-side mirror of `LocalChildRegistry.childWantsEvent`:
181
+ * - a retaining bus (hub main) → always (it serves `getRecent` + admin-ui;
182
+ * its interest is genuinely everything).
183
+ * - undeclared interest (`null`) → always (fail-open).
184
+ * - else the declared union must match via `matchesPattern` — the SAME
185
+ * function the local subscriber map-key gate uses, giving delivery parity.
186
+ */
175
187
  export declare function crossNodeAcceptsCategory(snapshot: CrossNodeInterestSnapshot, category: string): boolean;
176
188
  /**
177
- * Deliver `event` to all matching local subscribers and — ONLY on a bus that
178
- * opted into retention (`state.retainRecent`, i.e. the hub main process) and
179
- * unless the event is high-frequency — append it to the bounded `recent[]`
180
- * ring.
181
- *
182
- * On a non-retaining bus (child runners, agents) the retention block is skipped
183
- * entirely: events are one-shot / fire-and-forget, still fanned out to local
184
- * subscribers but never accumulated. `getRecent` on such a bus returns `[]`.
185
- */
189
+ * Deliver `event` to all matching local subscribers and — ONLY on a bus that
190
+ * opted into retention (`state.retainRecent`, i.e. the hub main process) and
191
+ * unless the event is high-frequency — append it to the bounded `recent[]`
192
+ * ring.
193
+ *
194
+ * On a non-retaining bus (child runners, agents) the retention block is skipped
195
+ * entirely: events are one-shot / fire-and-forget, still fanned out to local
196
+ * subscribers but never accumulated. `getRecent` on such a bus returns `[]`.
197
+ */
186
198
  export declare function deliverShared(state: SharedBusState, event: SystemEvent): void;