@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,147 +1,147 @@
1
1
  /**
2
- * HubNodeRegistry — the single authority for which capabilities each
3
- * cluster node provides. Holds the union of node manifests delivered by
4
- * the D3 `$hub.registerNode` handshake; a node is dropped on
5
- * `$node.disconnected`. Pure data — no Moleculer, no timers, no scan.
6
- */
2
+ * HubNodeRegistry — the single authority for which capabilities each
3
+ * cluster node provides. Holds the union of node manifests delivered by
4
+ * the D3 `$hub.registerNode` handshake; a node is dropped on
5
+ * `$node.disconnected`. Pure data — no Moleculer, no timers, no scan.
6
+ */
7
7
  /**
8
- * A capability call function — routes a method call to a remote cap provider
9
- * via Moleculer. Moved here from `capability-bridge.ts` when that file was
10
- * deleted as part of the D3 clean-up (Task 11).
11
- */
8
+ * A capability call function — routes a method call to a remote cap provider
9
+ * via Moleculer. Moved here from `capability-bridge.ts` when that file was
10
+ * deleted as part of the D3 clean-up (Task 11).
11
+ */
12
12
  type CallFn = (method: string, params: unknown, targetNodeId?: string) => Promise<unknown>;
13
13
  /** One addon's contribution within a node's registration manifest. */
14
14
  interface RegisteredAddonManifest {
15
- readonly addonId: string;
16
- readonly capabilities: readonly string[];
15
+ readonly addonId: string;
16
+ readonly capabilities: readonly string[];
17
17
  }
18
18
  /**
19
- * One device-scoped native cap a node hosts, with the device ids that
20
- * registered it and the addonId of the registering addon. Device-scoped
21
- * native caps (`ctx.registerNativeCap` from a `BaseDevice` subclass) are
22
- * registered per device AFTER the node's system caps, once background device
23
- * restore completes — so the node re-handshakes carrying these once they are
24
- * known (D3 idempotent replace).
25
- *
26
- * `addonId` is required for the hub to build the correct Moleculer proxy
27
- * target (`<addonId>.native-provider.<capName>.<method>`). It replaces the
28
- * pull-based `syncWorkerNativeCaps` discovery sweep (Task 13).
29
- */
19
+ * One device-scoped native cap a node hosts, with the device ids that
20
+ * registered it and the addonId of the registering addon. Device-scoped
21
+ * native caps (`ctx.registerNativeCap` from a `BaseDevice` subclass) are
22
+ * registered per device AFTER the node's system caps, once background device
23
+ * restore completes — so the node re-handshakes carrying these once they are
24
+ * known (D3 idempotent replace).
25
+ *
26
+ * `addonId` is required for the hub to build the correct Moleculer proxy
27
+ * target (`<addonId>.native-provider.<capName>.<method>`). It replaces the
28
+ * pull-based `syncWorkerNativeCaps` discovery sweep (Task 13).
29
+ */
30
30
  interface RegisteredNativeCap {
31
- readonly capName: string;
32
- readonly addonId: string;
33
- readonly deviceIds: readonly number[];
31
+ readonly capName: string;
32
+ readonly addonId: string;
33
+ readonly deviceIds: readonly number[];
34
34
  }
35
35
  /**
36
- * A node's runtime-updatable ROOT package identity (`@camstack/server` — the
37
- * single root package for every node role) — carried in the `registerNode`
38
- * manifest so the hub knows every node's exact software version (design:
39
- * runtime-updatable node packages, "visibility"). Version skew is SEEN in
40
- * the UI instead of discovered via a black-hole.
41
- */
36
+ * A node's runtime-updatable ROOT package identity (`@camstack/server` — the
37
+ * single root package for every node role) — carried in the `registerNode`
38
+ * manifest so the hub knows every node's exact software version (design:
39
+ * runtime-updatable node packages, "visibility"). Version skew is SEEN in
40
+ * the UI instead of discovered via a black-hole.
41
+ */
42
42
  interface NodeRootPackageInfo {
43
- readonly name: string;
44
- readonly version: string;
43
+ readonly name: string;
44
+ readonly version: string;
45
45
  }
46
46
  /** Payload of the `$hub.registerNode` RPC — a node's COMPLETE manifest. */
47
47
  interface RegisterNodeParams {
48
- readonly nodeId: string;
49
- readonly addons: readonly RegisteredAddonManifest[];
50
- /**
51
- * Device-scoped native caps the node hosts. Optional — absent (or empty)
52
- * on the FIRST handshake, populated by the re-handshake the node fires
53
- * after `runWorkerDeviceRestoreWithRetry` completes. Each entry includes
54
- * the registering `addonId` so the hub can build the correct Moleculer
55
- * proxy target without the pull-based discovery sweep (Task 13).
56
- */
57
- readonly nativeCaps?: readonly RegisteredNativeCap[];
58
- /**
59
- * SHA-256 hash of the node's cluster secret. Optional — absent
60
- * when the node has no secret configured. Verified by the `registerNode`
61
- * receiver; never carries the raw secret. (Cluster-secret registration gate.)
62
- */
63
- readonly clusterSecretHash?: string;
64
- /**
65
- * The node's root-package identity. Optional — absent from UDS child
66
- * manifests and pre-phase-2 agents; present on agents running the
67
- * runtime-updatable root model.
68
- */
69
- readonly rootPackage?: NodeRootPackageInfo;
48
+ readonly nodeId: string;
49
+ readonly addons: readonly RegisteredAddonManifest[];
50
+ /**
51
+ * Device-scoped native caps the node hosts. Optional — absent (or empty)
52
+ * on the FIRST handshake, populated by the re-handshake the node fires
53
+ * after `runWorkerDeviceRestoreWithRetry` completes. Each entry includes
54
+ * the registering `addonId` so the hub can build the correct Moleculer
55
+ * proxy target without the pull-based discovery sweep (Task 13).
56
+ */
57
+ readonly nativeCaps?: readonly RegisteredNativeCap[];
58
+ /**
59
+ * SHA-256 hash of the node's cluster secret. Optional — absent
60
+ * when the node has no secret configured. Verified by the `registerNode`
61
+ * receiver; never carries the raw secret. (Cluster-secret registration gate.)
62
+ */
63
+ readonly clusterSecretHash?: string;
64
+ /**
65
+ * The node's root-package identity. Optional — absent from UDS child
66
+ * manifests and pre-phase-2 agents; present on agents running the
67
+ * runtime-updatable root model.
68
+ */
69
+ readonly rootPackage?: NodeRootPackageInfo;
70
70
  }
71
71
  /** Ack returned by `$hub.registerNode` — presence of `ok` is the signal. */
72
72
  interface RegisterNodeResult {
73
- readonly ok: true;
73
+ readonly ok: true;
74
74
  }
75
75
  /** Flattened registry view: one row per (node, addon, capability). */
76
76
  interface NodeCapEntry {
77
- readonly nodeId: string;
78
- readonly addonId: string;
79
- readonly capName: string;
77
+ readonly nodeId: string;
78
+ readonly addonId: string;
79
+ readonly capName: string;
80
80
  }
81
81
  /** Flattened native-cap view: one row per (node, native cap, device). */
82
82
  interface NodeNativeCapEntry {
83
- readonly nodeId: string;
84
- readonly addonId: string;
85
- readonly capName: string;
86
- readonly deviceId: number;
83
+ readonly nodeId: string;
84
+ readonly addonId: string;
85
+ readonly capName: string;
86
+ readonly deviceId: number;
87
87
  }
88
88
  declare class HubNodeRegistry {
89
- /** nodeId → its complete addon manifest (last `registerNode` wins). */
90
- private readonly nodes;
91
- /** nodeId → its device-scoped native caps (last `registerNode` wins). */
92
- private readonly nativeCaps;
93
- /** nodeId → its root-package identity (last `registerNode` wins). */
94
- private readonly rootPackages;
95
- /**
96
- * deviceId → flat native-cap entries for THAT device, across all nodes.
97
- * Maintained incrementally on every `registerNode`/`removeNode` so a
98
- * per-device lookup is O(caps-for-device) instead of flattening the whole
99
- * cluster (`listNativeCapEntries()`) and filtering — the latter makes the
100
- * per-device `getBindings`, run for every device in `getAllBindings`, an
101
- * O(D²·C) boot-time hot spot. Insertion order mirrors `listNativeCapEntries`
102
- * (node-registration order) so consumers that take the first match are
103
- * unaffected.
104
- */
105
- private readonly nativeCapsByDevice;
106
- /**
107
- * Drop every `nativeCapsByDevice` entry contributed by `nodeId`, reading the
108
- * node's CURRENT (about-to-be-replaced) native caps to know which device
109
- * rows it touched. Must run BEFORE `nativeCaps` is overwritten/deleted.
110
- */
111
- private dropNodeFromDeviceIndex;
112
- /**
113
- * Replace the node's ENTIRE manifest atomically — addons AND native
114
- * caps. Idempotent: a reconnect, hot-update, or post-device-restore
115
- * re-handshake simply overwrites. Partial state is impossible because
116
- * the node sends its complete picture every time.
117
- */
118
- registerNode(params: RegisterNodeParams): void;
119
- /** Drop a node entirely — caps AND native caps — on `$node.disconnected`. */
120
- removeNode(nodeId: string): void;
121
- /** The node's root-package identity, or null when it never reported one. */
122
- getNodeRootPackage(nodeId: string): NodeRootPackageInfo | null;
123
- /** The node's manifest, or undefined when the node never registered. */
124
- getNodeManifest(nodeId: string): readonly RegisteredAddonManifest[] | undefined;
125
- /**
126
- * The node's device-scoped native caps. `[]` when the node registered
127
- * without any (or has not yet re-handshaked post-device-restore);
128
- * `undefined` when the node never registered at all.
129
- */
130
- getNodeNativeCaps(nodeId: string): readonly RegisteredNativeCap[] | undefined;
131
- /** Flat (nodeId, addonId, capName) view of the whole cluster. */
132
- listEntries(): readonly NodeCapEntry[];
133
- /** Flat (nodeId, addonId, capName, deviceId) native-cap view of the whole cluster. */
134
- listNativeCapEntries(): readonly NodeNativeCapEntry[];
135
- /**
136
- * Native-cap entries for ONE device, across all nodes — O(caps-for-device).
137
- * Equivalent to `listNativeCapEntries().filter(e => e.deviceId === deviceId)`
138
- * but served from the incrementally-maintained `nativeCapsByDevice` index, so
139
- * per-device resolution (and `getAllBindings`, which runs it per device)
140
- * doesn't flatten the whole cluster each call.
141
- */
142
- listNativeCapEntriesForDevice(deviceId: number): readonly NodeNativeCapEntry[];
143
- /** Every node id currently registered. */
144
- listNodeIds(): readonly string[];
89
+ /** nodeId → its complete addon manifest (last `registerNode` wins). */
90
+ private readonly nodes;
91
+ /** nodeId → its device-scoped native caps (last `registerNode` wins). */
92
+ private readonly nativeCaps;
93
+ /** nodeId → its root-package identity (last `registerNode` wins). */
94
+ private readonly rootPackages;
95
+ /**
96
+ * deviceId → flat native-cap entries for THAT device, across all nodes.
97
+ * Maintained incrementally on every `registerNode`/`removeNode` so a
98
+ * per-device lookup is O(caps-for-device) instead of flattening the whole
99
+ * cluster (`listNativeCapEntries()`) and filtering — the latter makes the
100
+ * per-device `getBindings`, run for every device in `getAllBindings`, an
101
+ * O(D²·C) boot-time hot spot. Insertion order mirrors `listNativeCapEntries`
102
+ * (node-registration order) so consumers that take the first match are
103
+ * unaffected.
104
+ */
105
+ private readonly nativeCapsByDevice;
106
+ /**
107
+ * Drop every `nativeCapsByDevice` entry contributed by `nodeId`, reading the
108
+ * node's CURRENT (about-to-be-replaced) native caps to know which device
109
+ * rows it touched. Must run BEFORE `nativeCaps` is overwritten/deleted.
110
+ */
111
+ private dropNodeFromDeviceIndex;
112
+ /**
113
+ * Replace the node's ENTIRE manifest atomically — addons AND native
114
+ * caps. Idempotent: a reconnect, hot-update, or post-device-restore
115
+ * re-handshake simply overwrites. Partial state is impossible because
116
+ * the node sends its complete picture every time.
117
+ */
118
+ registerNode(params: RegisterNodeParams): void;
119
+ /** Drop a node entirely — caps AND native caps — on `$node.disconnected`. */
120
+ removeNode(nodeId: string): void;
121
+ /** The node's root-package identity, or null when it never reported one. */
122
+ getNodeRootPackage(nodeId: string): NodeRootPackageInfo | null;
123
+ /** The node's manifest, or undefined when the node never registered. */
124
+ getNodeManifest(nodeId: string): readonly RegisteredAddonManifest[] | undefined;
125
+ /**
126
+ * The node's device-scoped native caps. `[]` when the node registered
127
+ * without any (or has not yet re-handshaked post-device-restore);
128
+ * `undefined` when the node never registered at all.
129
+ */
130
+ getNodeNativeCaps(nodeId: string): readonly RegisteredNativeCap[] | undefined;
131
+ /** Flat (nodeId, addonId, capName) view of the whole cluster. */
132
+ listEntries(): readonly NodeCapEntry[];
133
+ /** Flat (nodeId, addonId, capName, deviceId) native-cap view of the whole cluster. */
134
+ listNativeCapEntries(): readonly NodeNativeCapEntry[];
135
+ /**
136
+ * Native-cap entries for ONE device, across all nodes — O(caps-for-device).
137
+ * Equivalent to `listNativeCapEntries().filter(e => e.deviceId === deviceId)`
138
+ * but served from the incrementally-maintained `nativeCapsByDevice` index, so
139
+ * per-device resolution (and `getAllBindings`, which runs it per device)
140
+ * doesn't flatten the whole cluster each call.
141
+ */
142
+ listNativeCapEntriesForDevice(deviceId: number): readonly NodeNativeCapEntry[];
143
+ /** Every node id currently registered. */
144
+ listNodeIds(): readonly string[];
145
145
  }
146
146
  export { HubNodeRegistry };
147
- export type { CallFn, NodeRootPackageInfo, RegisteredAddonManifest, RegisteredNativeCap, RegisterNodeParams, RegisterNodeResult, NodeCapEntry, NodeNativeCapEntry, };
147
+ export type { CallFn, NodeRootPackageInfo, RegisteredAddonManifest, RegisteredNativeCap, RegisterNodeParams, RegisterNodeResult, NodeCapEntry, NodeNativeCapEntry };
@@ -1,4 +1,4 @@
1
- import { ServiceBroker } from 'moleculer';
2
- import { IAddonProcessManager } from '@camstack/types';
1
+ import type { ServiceBroker } from "moleculer";
2
+ import type { IAddonProcessManager } from "@camstack/types";
3
3
  declare function createScopedProcessManager(broker: ServiceBroker, addonId: string): IAddonProcessManager;
4
4
  export { createScopedProcessManager };
@@ -1,185 +1,185 @@
1
- import { ChildProcess, SpawnOptions } from 'node:child_process';
2
- import { ServiceSchema } from 'moleculer';
3
- import { ProcessGroupOps } from './runner-process-group.js';
1
+ import { type ChildProcess, type SpawnOptions } from "node:child_process";
2
+ import type { ServiceSchema } from "moleculer";
3
+ import { type ProcessGroupOps } from "./runner-process-group.js";
4
4
  /** One addon hosted inside a runner subprocess. */
5
5
  interface RunnerAddonSpec {
6
- readonly addonId: string;
7
- readonly addonDir: string;
6
+ readonly addonId: string;
7
+ readonly addonDir: string;
8
8
  }
9
9
  /**
10
- * Default old-space ceiling for a HEAVY runner, in MB.
11
- *
12
- * ## Why a heavy runner needs a ceiling at all
13
- *
14
- * `heapProfile: 'heavy'` used to mean "V8 defaults", i.e. no `--max-old-space-size` — which on this
15
- * host is V8's own memory-derived default (multiple GB). Nothing then bounds a burst, and V8 does
16
- * not hand committed pages back (the long argument for that is in `kernel/heap-watch.ts`), so a
17
- * one-off burst becomes the runner's permanent RSS.
18
- *
19
- * Measured on the live hub, 2026-08-17: the `recorder` runner reaches **2122 MB RSS** and stays
20
- * there. The same addon on two agent nodes carrying the same code and a smaller archive sits at
21
- * **58 MB**.
22
- *
23
- * ⚠ This paragraph used to attribute that ~2 GB to "walk garbage" from the deferred archive walk,
24
- * and to argue from a ~21 MB `RecordingIndex`. Both were wrong, and the error cost a session on
25
- * 2026-08-27. The deferred walk had NO CALLER and never ran (it has since been deleted). And the
26
- * index is not 21 MB: a 2026-08-27 profile of the live recorder read `heapUsed = 1606 MB` against
27
- * `external = 8 MB`, with an `smaps` census putting 1510 MB in V8's 256 KB page ranges against
28
- * 54 MB of native heap — LIVE JavaScript retainers, not high-water garbage. The retained set is
29
- * ~7.1 M `SegmentRow`s plus their path strings and Map entries (13 cameras x 2 profiles x 8 640
30
- * segments/day x ~30 days), reseeded at boot by `SegmentHourLedger.hydrateIndex`.
31
- *
32
- * The lesson for anyone sizing this flag: a heap number needs a RETAINER, and "garbage the GC has
33
- * no reason to collect" is the explanation to reach for last, not first.
34
- *
35
- * ## Why 1024
36
- *
37
- * From the same live topology snapshot, every heavy runner's FULL RSS — which is a strict
38
- * over-estimate of its old space, since it also contains native allocations, `external` and
39
- * `arrayBuffers`, none of which `--max-old-space-size` bounds:
40
- *
41
- * detection 471 MB · provider-reolink 507 MB · pipeline-orchestrator 238 MB · ml 218 MB ·
42
- * snapshot 185 MB · decoder-nodeav 174 MB · audio-analyzer 170 MB
43
- *
44
- * 1024 MB clears the largest of those by ~2x while cutting the recorder's observed ratchet by
45
- * more than half. It is a CEILING, not a target: a runner that fits today keeps behaving exactly
46
- * as it does now, because V8 only collects harder as it approaches the limit.
47
- *
48
- * A runner whose working set genuinely does not fit declares its own number in its manifest
49
- * (`execution.maxOldSpaceMb`) — the number belongs next to the addon that knows its working set.
50
- * `recorder` (3072 MB; peak 2341 MB heapTotal) is the one shipped addon that does. `stream-broker` does NOT, despite 1585 MB peak RSS: ~1 GB of that is
51
- * `arrayBuffers` (47 RTP rings), which this flag does not bound and never will — its actual old
52
- * space peaks at 224 MB. Size the declaration from `heapTotal` in the `[mem]` heartbeat, never
53
- * from RSS.
54
- *
55
- * ## What this flag CANNOT do
56
- *
57
- * It bounds old space and nothing else — not `external`, not `arrayBuffers`, not what a native
58
- * addon mallocs. `hub/pipeline-analytics` reached 7334 MB RSS with this flag set to 1024 the
59
- * whole time, because 96% of it was native. That half is bounded in `runner-native-allocator.ts`.
60
- * Reaching for a bigger number here when RSS is the complaint is the standard wrong move.
61
- */
10
+ * Default old-space ceiling for a HEAVY runner, in MB.
11
+ *
12
+ * ## Why a heavy runner needs a ceiling at all
13
+ *
14
+ * `heapProfile: 'heavy'` used to mean "V8 defaults", i.e. no `--max-old-space-size` — which on this
15
+ * host is V8's own memory-derived default (multiple GB). Nothing then bounds a burst, and V8 does
16
+ * not hand committed pages back (the long argument for that is in `kernel/heap-watch.ts`), so a
17
+ * one-off burst becomes the runner's permanent RSS.
18
+ *
19
+ * Measured on the live hub, 2026-08-17: the `recorder` runner reaches **2122 MB RSS** and stays
20
+ * there. The same addon on two agent nodes carrying the same code and a smaller archive sits at
21
+ * **58 MB**.
22
+ *
23
+ * ⚠ This paragraph used to attribute that ~2 GB to "walk garbage" from the deferred archive walk,
24
+ * and to argue from a ~21 MB `RecordingIndex`. Both were wrong, and the error cost a session on
25
+ * 2026-08-27. The deferred walk had NO CALLER and never ran (it has since been deleted). And the
26
+ * index is not 21 MB: a 2026-08-27 profile of the live recorder read `heapUsed = 1606 MB` against
27
+ * `external = 8 MB`, with an `smaps` census putting 1510 MB in V8's 256 KB page ranges against
28
+ * 54 MB of native heap — LIVE JavaScript retainers, not high-water garbage. The retained set is
29
+ * ~7.1 M `SegmentRow`s plus their path strings and Map entries (13 cameras x 2 profiles x 8 640
30
+ * segments/day x ~30 days), reseeded at boot by `SegmentHourLedger.hydrateIndex`.
31
+ *
32
+ * The lesson for anyone sizing this flag: a heap number needs a RETAINER, and "garbage the GC has
33
+ * no reason to collect" is the explanation to reach for last, not first.
34
+ *
35
+ * ## Why 1024
36
+ *
37
+ * From the same live topology snapshot, every heavy runner's FULL RSS — which is a strict
38
+ * over-estimate of its old space, since it also contains native allocations, `external` and
39
+ * `arrayBuffers`, none of which `--max-old-space-size` bounds:
40
+ *
41
+ * detection 471 MB · provider-reolink 507 MB · pipeline-orchestrator 238 MB · ml 218 MB ·
42
+ * snapshot 185 MB · decoder-nodeav 174 MB · audio-analyzer 170 MB
43
+ *
44
+ * 1024 MB clears the largest of those by ~2x while cutting the recorder's observed ratchet by
45
+ * more than half. It is a CEILING, not a target: a runner that fits today keeps behaving exactly
46
+ * as it does now, because V8 only collects harder as it approaches the limit.
47
+ *
48
+ * A runner whose working set genuinely does not fit declares its own number in its manifest
49
+ * (`execution.maxOldSpaceMb`) — the number belongs next to the addon that knows its working set.
50
+ * `recorder` (3072 MB; peak 2341 MB heapTotal) is the one shipped addon that does. `stream-broker` does NOT, despite 1585 MB peak RSS: ~1 GB of that is
51
+ * `arrayBuffers` (47 RTP rings), which this flag does not bound and never will — its actual old
52
+ * space peaks at 224 MB. Size the declaration from `heapTotal` in the `[mem]` heartbeat, never
53
+ * from RSS.
54
+ *
55
+ * ## What this flag CANNOT do
56
+ *
57
+ * It bounds old space and nothing else — not `external`, not `arrayBuffers`, not what a native
58
+ * addon mallocs. `hub/pipeline-analytics` reached 7334 MB RSS with this flag set to 1024 the
59
+ * whole time, because 96% of it was native. That half is bounded in `runner-native-allocator.ts`.
60
+ * Reaching for a bigger number here when RSS is the complaint is the standard wrong move.
61
+ */
62
62
  export declare const HEAVY_MAX_OLD_MB_DEFAULT = 1024;
63
63
  /**
64
- * V8 platform worker threads for a LIGHT runner (`--v8-pool-size`).
65
- *
66
- * ## What this bounds
67
- *
68
- * Node gives every process a V8 platform thread pool — background compilation,
69
- * parallel marking and sweeping — defaulted to 4. It is not the libuv pool
70
- * (`UV_THREADPOOL_SIZE`, which serves `fs`/`dns`/`zlib`/`crypto`) and it is
71
- * deliberately not touched here; see below.
72
- *
73
- * ## Why it is worth a flag
74
- *
75
- * A container cgroup counts THREADS, not processes, and this cluster forks a
76
- * runner per addon (D2). Measured on the live hub 2026-09-18 (20 cores,
77
- * `pids.max=2048`), after 22 fork refusals in 45 minutes earlier that day:
78
- *
79
- * pids.current 991 · 47 node processes holding 469 threads
80
- * of those, 29 LIGHT runners holding 274 (mean 9.4 threads each)
81
- *
82
- * A light runner is a control-plane addon with a 2 MB young generation. It does
83
- * not generate the background GC work four marking threads exist for, and it
84
- * pays 4 threads of the cgroup's pid budget for them anyway. Two returns ~58
85
- * threads — ~6% of the container's live thread count — for background GC that
86
- * is, on these heaps, a few milliseconds a cycle.
87
- *
88
- * ## Why TWO and never ZERO
89
- *
90
- * `--v8-pool-size=0` does not disable the pool: it tells V8 to size it from the
91
- * detected parallelism. Measured locally 2026-09-18 on a node process holding
92
- * the libuv pool open:
93
- *
94
- * default 11 threads
95
- * --v8-pool-size=2 9 threads
96
- * --v8-pool-size=0 18 threads
97
- *
98
- * So the flag is only ever passed with a value of at least 1 — the same trap as
99
- * `MALLOC_ARENA_MAX=0` in `runner-native-allocator.ts`.
100
- *
101
- * ## What is deliberately NOT bounded
102
- *
103
- * HEAVY runners keep V8's default: they hold real heaps (the recorder declares
104
- * 3072 MB) where parallel marking is the difference between a pause and a stall.
105
- *
106
- * `UV_THREADPOOL_SIZE` is left alone on every runner. Its 4 threads are lazily
107
- * spawned, and the measurement above says most light runners have spawned all
108
- * four — i.e. they really do run concurrent `fs` work. Halving that would trade
109
- * ~58 more threads for serialized filesystem I/O in runners whose I/O profile
110
- * has not been measured, on a media system. A thread saving is not worth a
111
- * media gap.
112
- */
64
+ * V8 platform worker threads for a LIGHT runner (`--v8-pool-size`).
65
+ *
66
+ * ## What this bounds
67
+ *
68
+ * Node gives every process a V8 platform thread pool — background compilation,
69
+ * parallel marking and sweeping — defaulted to 4. It is not the libuv pool
70
+ * (`UV_THREADPOOL_SIZE`, which serves `fs`/`dns`/`zlib`/`crypto`) and it is
71
+ * deliberately not touched here; see below.
72
+ *
73
+ * ## Why it is worth a flag
74
+ *
75
+ * A container cgroup counts THREADS, not processes, and this cluster forks a
76
+ * runner per addon (D2). Measured on the live hub 2026-09-18 (20 cores,
77
+ * `pids.max=2048`), after 22 fork refusals in 45 minutes earlier that day:
78
+ *
79
+ * pids.current 991 · 47 node processes holding 469 threads
80
+ * of those, 29 LIGHT runners holding 274 (mean 9.4 threads each)
81
+ *
82
+ * A light runner is a control-plane addon with a 2 MB young generation. It does
83
+ * not generate the background GC work four marking threads exist for, and it
84
+ * pays 4 threads of the cgroup's pid budget for them anyway. Two returns ~58
85
+ * threads — ~6% of the container's live thread count — for background GC that
86
+ * is, on these heaps, a few milliseconds a cycle.
87
+ *
88
+ * ## Why TWO and never ZERO
89
+ *
90
+ * `--v8-pool-size=0` does not disable the pool: it tells V8 to size it from the
91
+ * detected parallelism. Measured locally 2026-09-18 on a node process holding
92
+ * the libuv pool open:
93
+ *
94
+ * default 11 threads
95
+ * --v8-pool-size=2 9 threads
96
+ * --v8-pool-size=0 18 threads
97
+ *
98
+ * So the flag is only ever passed with a value of at least 1 — the same trap as
99
+ * `MALLOC_ARENA_MAX=0` in `runner-native-allocator.ts`.
100
+ *
101
+ * ## What is deliberately NOT bounded
102
+ *
103
+ * HEAVY runners keep V8's default: they hold real heaps (the recorder declares
104
+ * 3072 MB) where parallel marking is the difference between a pause and a stall.
105
+ *
106
+ * `UV_THREADPOOL_SIZE` is left alone on every runner. Its 4 threads are lazily
107
+ * spawned, and the measurement above says most light runners have spawned all
108
+ * four — i.e. they really do run concurrent `fs` work. Halving that would trade
109
+ * ~58 more threads for serialized filesystem I/O in runners whose I/O profile
110
+ * has not been measured, on a media system. A thread saving is not worth a
111
+ * media gap.
112
+ */
113
113
  export declare const LIGHT_V8_POOL_SIZE_DEFAULT = 2;
114
114
  interface SpawnedProcess {
115
- readonly pid: number;
116
- readonly nodeId: string;
117
- readonly name: string;
118
- /**
119
- * Synthetic supervisor label `runner:${runnerId}` — the real list of
120
- * hosted addons lives on `runnerAddons`. The normal case is a size-1
121
- * `runnerAddons` array (one addon, one process); the media-pipeline
122
- * group is the sole multi-addon exception.
123
- */
124
- readonly addonId: string;
125
- readonly addonDir: string;
126
- /** Every addon hosted by this runner subprocess (size 1 in the normal case). */
127
- readonly runnerAddons: readonly RunnerAddonSpec[];
128
- readonly startedAt: number;
129
- restartCount: number;
130
- /**
131
- * Runner lifecycle state. `failed` is terminal — the D6 crash
132
- * circuit-breaker tripped (too many crashes inside `CRASH_WINDOW_MS`)
133
- * and the runner will NOT be respawned. `crashed` is transient — the
134
- * window between an exit and the next backoff respawn.
135
- */
136
- state: 'starting' | 'running' | 'stopping' | 'stopped' | 'crashed' | 'failed';
137
- child: ChildProcess;
138
- /** The runner leads its own process group (POSIX, D668); its pgid is its `pid`. */
139
- readonly ownsGroup: boolean;
140
- /** The reap of this runner's group, once started. Memoized: every exit path shares it. */
141
- groupReap: Promise<void> | null;
115
+ readonly pid: number;
116
+ readonly nodeId: string;
117
+ readonly name: string;
118
+ /**
119
+ * Synthetic supervisor label `runner:${runnerId}` — the real list of
120
+ * hosted addons lives on `runnerAddons`. The normal case is a size-1
121
+ * `runnerAddons` array (one addon, one process); the media-pipeline
122
+ * group is the sole multi-addon exception.
123
+ */
124
+ readonly addonId: string;
125
+ readonly addonDir: string;
126
+ /** Every addon hosted by this runner subprocess (size 1 in the normal case). */
127
+ readonly runnerAddons: readonly RunnerAddonSpec[];
128
+ readonly startedAt: number;
129
+ restartCount: number;
130
+ /**
131
+ * Runner lifecycle state. `failed` is terminal — the D6 crash
132
+ * circuit-breaker tripped (too many crashes inside `CRASH_WINDOW_MS`)
133
+ * and the runner will NOT be respawned. `crashed` is transient — the
134
+ * window between an exit and the next backoff respawn.
135
+ */
136
+ state: "starting" | "running" | "stopping" | "stopped" | "crashed" | "failed";
137
+ child: ChildProcess;
138
+ /** The runner leads its own process group (POSIX, D668); its pgid is its `pid`. */
139
+ readonly ownsGroup: boolean;
140
+ /** The reap of this runner's group, once started. Memoized: every exit path shares it. */
141
+ groupReap: Promise<void> | null;
142
142
  }
143
143
  interface ProcessInfo {
144
- readonly pid: number;
145
- readonly nodeId: string;
146
- readonly name: string;
147
- readonly addonId: string;
148
- /**
149
- * The full list of addon ids inside this runner subprocess. Size 1 in
150
- * the normal one-addon-one-process case; longer only for the media
151
- * group. Cluster page UI expands this to render every addon under the
152
- * same process card so operators see what's running where.
153
- */
154
- readonly addonIds: readonly string[];
155
- /** Runner label — the `runnerId` this subprocess was spawned with. */
156
- readonly groupId: string;
157
- readonly isolated: boolean;
158
- readonly spawnedBy: string | null;
159
- readonly startedAt: number;
160
- readonly restartCount: number;
161
- readonly state: string;
162
- readonly cpuPercent: number;
163
- readonly memoryRss: number;
164
- readonly uptimeSeconds: number;
144
+ readonly pid: number;
145
+ readonly nodeId: string;
146
+ readonly name: string;
147
+ readonly addonId: string;
148
+ /**
149
+ * The full list of addon ids inside this runner subprocess. Size 1 in
150
+ * the normal one-addon-one-process case; longer only for the media
151
+ * group. Cluster page UI expands this to render every addon under the
152
+ * same process card so operators see what's running where.
153
+ */
154
+ readonly addonIds: readonly string[];
155
+ /** Runner label — the `runnerId` this subprocess was spawned with. */
156
+ readonly groupId: string;
157
+ readonly isolated: boolean;
158
+ readonly spawnedBy: string | null;
159
+ readonly startedAt: number;
160
+ readonly restartCount: number;
161
+ readonly state: string;
162
+ readonly cpuPercent: number;
163
+ readonly memoryRss: number;
164
+ readonly uptimeSeconds: number;
165
165
  }
166
166
  /**
167
- * Subprocess spawner injected into `createProcessService`. Production
168
- * code passes `child_process.spawn`; tests pass a fake that records
169
- * the call shape and returns a stub `ChildProcess`. Centralising the
170
- * dependency here is the only ESM-safe way to intercept spawn — the
171
- * `node:child_process` module export is non-configurable so `vi.spyOn`
172
- * fails. The injection point is private to this module: callers don't
173
- * see it, so the public `createProcessService(parentNodeId, dataDir)`
174
- * shape stays unchanged.
175
- */
167
+ * Subprocess spawner injected into `createProcessService`. Production
168
+ * code passes `child_process.spawn`; tests pass a fake that records
169
+ * the call shape and returns a stub `ChildProcess`. Centralising the
170
+ * dependency here is the only ESM-safe way to intercept spawn — the
171
+ * `node:child_process` module export is non-configurable so `vi.spyOn`
172
+ * fails. The injection point is private to this module: callers don't
173
+ * see it, so the public `createProcessService(parentNodeId, dataDir)`
174
+ * shape stays unchanged.
175
+ */
176
176
  type SpawnFn = (command: string, args: readonly string[], opts: SpawnOptions) => ChildProcess;
177
177
  interface ProcessServiceDeps {
178
- readonly spawnFn?: SpawnFn;
179
- /** Group signalling + member listing. Tests inject a fake: a fake pid must never be signalled. */
180
- readonly processGroups?: ProcessGroupOps;
181
- /** Platform deciding whether a runner leads a process group. Defaults to `process.platform`. */
182
- readonly platform?: NodeJS.Platform;
178
+ readonly spawnFn?: SpawnFn;
179
+ /** Group signalling + member listing. Tests inject a fake: a fake pid must never be signalled. */
180
+ readonly processGroups?: ProcessGroupOps;
181
+ /** Platform deciding whether a runner leads a process group. Defaults to `process.platform`. */
182
+ readonly platform?: NodeJS.Platform;
183
183
  }
184
184
  declare function createProcessService(parentNodeId: string, dataDir: string, deps?: ProcessServiceDeps, parentTcpPort?: number, parentUdsPath?: string): ServiceSchema;
185
185
  export type { ProcessInfo, SpawnedProcess };