@camstack/system 1.2.390 → 1.2.391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/auth/admin-token-manager.d.ts +37 -67
  7. package/dist/auth/api-key-manager.d.ts +8 -8
  8. package/dist/auth/auth-audit-log.d.ts +29 -49
  9. package/dist/auth/auth-manager.d.ts +127 -126
  10. package/dist/auth/cidr.d.ts +8 -8
  11. package/dist/auth/external-identity-manager.d.ts +46 -34
  12. package/dist/auth/jwt-signing-key.d.ts +14 -14
  13. package/dist/auth/login-session-manager.d.ts +95 -135
  14. package/dist/auth/parse-record.d.ts +13 -13
  15. package/dist/auth/scope-matcher.d.ts +7 -7
  16. package/dist/auth/scoped-token-manager.d.ts +62 -62
  17. package/dist/auth/token-expiry.d.ts +49 -26
  18. package/dist/auth/totp-manager.d.ts +48 -48
  19. package/dist/auth/user-management-internal.d.ts +67 -52
  20. package/dist/auth/user-manager.d.ts +58 -58
  21. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  22. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  23. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  24. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  25. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  26. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  27. package/dist/builtins/alerts/device-label.d.ts +6 -6
  28. package/dist/builtins/alerts/index.d.ts +1 -1
  29. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  30. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  31. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  32. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  33. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  34. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  35. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  36. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  37. package/dist/builtins/autotrack/index.d.ts +2 -2
  38. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  39. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  40. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  41. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  42. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  43. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  44. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  45. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  46. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  47. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  48. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  49. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  50. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  51. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  52. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  53. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  54. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  55. package/dist/builtins/calendars/index.d.ts +1 -1
  56. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  57. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  58. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  59. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  60. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  61. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  62. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  63. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  64. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  65. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  66. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  67. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  68. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  69. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  70. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  71. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  72. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  73. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  74. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  75. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  76. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  77. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  78. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  79. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  80. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  81. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  82. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  83. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  84. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  85. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  86. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  87. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  88. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  89. package/dist/builtins/camera-grid/index.d.ts +44 -44
  90. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  91. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  92. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  93. package/dist/builtins/composer/composed-device.d.ts +39 -17
  94. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  95. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  96. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  97. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  98. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  99. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  100. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  101. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  102. package/dist/builtins/composer/composer.d.ts +145 -100
  103. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  104. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  105. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  106. package/dist/builtins/composer/composition-target.d.ts +38 -34
  107. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  108. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  109. package/dist/builtins/composer/existing-target.d.ts +90 -73
  110. package/dist/builtins/composer/field-record.d.ts +26 -19
  111. package/dist/builtins/composer/graft-host.d.ts +56 -32
  112. package/dist/builtins/composer/held-claims.d.ts +26 -9
  113. package/dist/builtins/composer/index.d.ts +1 -1
  114. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  115. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  116. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  117. package/dist/builtins/composer/source-readings.d.ts +67 -61
  118. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  119. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  120. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  121. package/dist/builtins/console-logging/index.d.ts +3 -3
  122. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  123. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  124. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  125. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  126. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  127. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  128. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  129. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  130. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  131. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  132. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  133. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  134. package/dist/builtins/core-blocks/index.d.ts +8 -8
  135. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  136. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  137. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  138. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  139. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  140. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  141. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  142. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  143. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  144. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  145. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  146. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  147. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  148. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  149. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  150. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  151. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  152. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  153. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  154. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  155. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  156. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  157. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  158. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  159. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  160. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  161. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  162. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  163. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  164. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  165. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  166. package/dist/builtins/device-manager/index.d.ts +2 -2
  167. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  168. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  169. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  170. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  171. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  172. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  173. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  174. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  175. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  176. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  177. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  178. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  179. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  180. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  181. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  182. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  183. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  184. package/dist/builtins/keychain/index.d.ts +1 -1
  185. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  186. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  187. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  188. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  189. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  190. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  191. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  192. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  193. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  194. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  195. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  196. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  197. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  198. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  199. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  200. package/dist/builtins/local-auth/index.d.ts +1 -1
  201. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  202. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  203. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  204. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  205. package/dist/builtins/local-network/address-book.d.ts +61 -36
  206. package/dist/builtins/local-network/index.d.ts +2 -2
  207. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  208. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  209. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  210. package/dist/builtins/loki-logging/index.d.ts +4 -4
  211. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  212. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  213. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  214. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  215. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  216. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  217. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  218. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  219. package/dist/builtins/native-metrics/index.d.ts +2 -2
  220. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  221. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  222. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  223. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  224. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  225. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  226. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  227. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  228. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  229. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  230. package/dist/builtins/platform-probe/index.d.ts +38 -30
  231. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  232. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  233. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  234. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  235. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  236. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  237. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  238. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  239. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  240. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  241. package/dist/builtins/snapshot/index.d.ts +2 -2
  242. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  243. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  244. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  245. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  246. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  247. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  248. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  249. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  250. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  251. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  252. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  253. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  254. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  255. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  256. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  257. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  258. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  259. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  260. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  261. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  262. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  263. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  264. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  265. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  266. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  267. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  268. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  269. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  270. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  271. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  272. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  273. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  274. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  275. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  276. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  277. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  278. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  279. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  280. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  281. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  282. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  283. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  284. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  285. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  286. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  287. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  288. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  289. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  290. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  291. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  292. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  293. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  294. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  295. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  296. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  297. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  298. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  299. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  300. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  301. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  302. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  303. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  304. package/dist/builtins/system-config/index.d.ts +2 -2
  305. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  306. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  307. package/dist/builtins/system-config/system-config.addon.js +37 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +37 -33
  309. package/dist/builtins/winston-logging/index.d.ts +3 -3
  310. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  311. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  312. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
  313. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
  314. package/dist/download/hosted-model-revisions.d.ts +8 -8
  315. package/dist/download/model-download-service.d.ts +32 -32
  316. package/dist/download/model-downloader.d.ts +88 -88
  317. package/dist/events/event-bus.d.ts +6 -6
  318. package/dist/events/system-event-bus.d.ts +11 -11
  319. package/dist/feature/feature-manager.d.ts +6 -6
  320. package/dist/http/asset-compression.d.ts +35 -73
  321. package/dist/http/authenticated-file-server.d.ts +32 -32
  322. package/dist/http/data-plane-registry.d.ts +49 -39
  323. package/dist/http/file-data-plane.d.ts +14 -14
  324. package/dist/http/lan-http-bind.d.ts +24 -13
  325. package/dist/http/reverse-proxy.d.ts +36 -24
  326. package/dist/index.d.ts +137 -137
  327. package/dist/index.js +4 -3
  328. package/dist/index.mjs +2 -4
  329. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  330. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  331. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  332. package/dist/kernel/addon-installer.d.ts +609 -609
  333. package/dist/kernel/addon-loader.d.ts +133 -133
  334. package/dist/kernel/addon-manifest.d.ts +118 -118
  335. package/dist/kernel/addon-residue.d.ts +28 -32
  336. package/dist/kernel/array-buffer-census.d.ts +84 -88
  337. package/dist/kernel/bootstrap-config.d.ts +3 -3
  338. package/dist/kernel/cap-router-builder.d.ts +145 -101
  339. package/dist/kernel/capability-handle.d.ts +41 -41
  340. package/dist/kernel/capability-registry.d.ts +588 -576
  341. package/dist/kernel/config-manager.d.ts +199 -199
  342. package/dist/kernel/config-schema.d.ts +132 -128
  343. package/dist/kernel/custom-action-registry.d.ts +25 -25
  344. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  345. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  346. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  347. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  348. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  349. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  350. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  351. package/dist/kernel/deps/npm-command.d.ts +45 -45
  352. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  353. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  354. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  355. package/dist/kernel/device-registry.d.ts +27 -27
  356. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  357. package/dist/kernel/event-plane-report.d.ts +174 -174
  358. package/dist/kernel/fs-utils.d.ts +70 -70
  359. package/dist/kernel/gc-census.d.ts +119 -119
  360. package/dist/kernel/heap-spaces.d.ts +87 -87
  361. package/dist/kernel/heap-watch.d.ts +706 -706
  362. package/dist/kernel/host-externals.d.ts +8 -8
  363. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  364. package/dist/kernel/index.d.ts +115 -113
  365. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  366. package/dist/kernel/infra-capabilities.d.ts +7 -7
  367. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  368. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  369. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  370. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  371. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  372. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  373. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  374. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  375. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  376. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  377. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  378. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  379. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  380. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  381. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  382. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  383. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  384. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  385. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  386. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  387. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  388. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  389. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  390. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  391. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  392. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  393. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  394. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  395. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  396. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  397. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  398. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  399. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  400. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  401. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  402. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  403. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  404. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  405. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  406. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  407. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  408. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  409. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  410. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  411. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  412. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  413. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  414. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  415. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  416. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  417. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  418. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  419. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  420. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  421. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  422. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  423. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  424. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  425. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  426. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  427. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  428. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  429. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  430. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  431. package/dist/kernel/process-cpu-census.d.ts +55 -55
  432. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  433. package/dist/kernel/restart-coordinator.d.ts +71 -71
  434. package/dist/kernel/settings-door-view.d.ts +36 -25
  435. package/dist/kernel/settings-read-error.d.ts +29 -31
  436. package/dist/kernel/settings-view-types.d.ts +100 -95
  437. package/dist/kernel/socket-plane-report.d.ts +214 -153
  438. package/dist/kernel/status-overlay.d.ts +31 -11
  439. package/dist/kernel/storage-location-registry.d.ts +50 -50
  440. package/dist/kernel/store-settings-view.d.ts +13 -13
  441. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  442. package/dist/kernel/system-settings-policy.d.ts +15 -34
  443. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  444. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  445. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  446. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  447. package/dist/kernel/transport/cap-route.d.ts +139 -139
  448. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  449. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  450. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  451. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  452. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  453. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  454. package/dist/kernel/transport/index.d.ts +36 -36
  455. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  456. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  457. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  458. package/dist/kernel/transport/local-transport.d.ts +92 -92
  459. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  460. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  461. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  462. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  463. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  464. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  465. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  466. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  467. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  468. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  469. package/dist/kernel/workspace-detect.d.ts +7 -7
  470. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  471. package/dist/logging/formatter.d.ts +52 -25
  472. package/dist/logging/log-manager.d.ts +133 -133
  473. package/dist/logging/log-redactor.d.ts +22 -1
  474. package/dist/logging/log-ring-buffer.d.ts +57 -57
  475. package/dist/logging/logging-gate.d.ts +69 -25
  476. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  477. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  478. package/dist/logging/scoped-logger.d.ts +14 -14
  479. package/dist/network/network-quality.d.ts +8 -8
  480. package/dist/notification/notification-service.d.ts +37 -37
  481. package/dist/notification/toast-service.d.ts +18 -18
  482. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  483. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  484. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  485. package/dist/process/proc-stat.d.ts +51 -51
  486. package/dist/process/resource-monitor.d.ts +19 -19
  487. package/dist/python/python-env-manager.d.ts +10 -10
  488. package/dist/repl/interfaces.d.ts +21 -21
  489. package/dist/repl/repl-engine.d.ts +6 -6
  490. package/dist/storage/fs-storage-backend.d.ts +35 -35
  491. package/dist/storage/storage-location-manager.d.ts +21 -21
  492. package/dist/storage/storage-manager.d.ts +68 -68
  493. package/dist/tls/boot-tls.d.ts +24 -24
  494. package/dist/tls/cert-evaluation.d.ts +25 -25
  495. package/dist/tls/cert-identity.d.ts +39 -39
  496. package/dist/tls/cert-issue.d.ts +37 -17
  497. package/dist/tls/cert-manager.d.ts +86 -84
  498. package/dist/tls/https-listener.d.ts +16 -16
  499. package/dist/tls/index.d.ts +8 -8
  500. package/dist/tls/tls-actions.d.ts +18 -18
  501. package/dist/tls/tls-status.d.ts +15 -15
  502. package/dist/tls/uploaded-cert.d.ts +9 -9
  503. package/package.json +9 -3
@@ -1,85 +1,85 @@
1
1
  /**
2
- * The composed picture as a buffer this addon owns.
3
- *
4
- * ## Why a canvas instead of ffmpeg's `overlay`
5
- *
6
- * `overlay` pairs its inputs BY PTS, and ffmpeg gives every input pts 0 at ITS
7
- * OWN first frame. Two sources that joined at different moments therefore
8
- * compose different moments, for the life of the child, with nothing to correct
9
- * it. Measured on this hub at 4-5 s between two tiles, drifting over hours as
10
- * the sources' key-frame phases slide through each other (0.5 s at 13:05, 3 s
11
- * at 13:50 on the same pair, 2026-09-18).
12
- *
13
- * It is not reachable from a flag. `-use_wallclock_as_timestamps` re-times by
14
- * ARRIVAL and wrecked the pacing instead (ten stalls over a second in an 18 s
15
- * run, against none). `-copyts` changes nothing, because the broker re-bases
16
- * each session — both restreams report `pts_time:0` — so there is no common
17
- * timeline to trim against. Serving each dial from the newest key frame it
18
- * already holds does not help either: those key frames are of different ages,
19
- * and pts 0 still lands on whatever arrives first.
20
- *
21
- * A canvas has no pairing to get wrong. When the output tick fires, each
22
- * rectangle holds whatever arrived last from its source, and the OUTPUT owns
23
- * the clock. The gap is zero by construction rather than by tuning, and a cell
24
- * that has produced nothing yet costs nothing — so the picture appears at once
25
- * instead of waiting for the slowest source's first key frame. What such a cell
26
- * shows is the seed the compositor blits in at construction
27
- * (`grid-canvas-seed.ts`); `clear()` below is what it shows without one.
28
- *
29
- * ## Why yuv420p, and why everything here must be even
30
- *
31
- * yuv420p is the one pixel format every consumer of a CamStack profile reads,
32
- * and a plane copy in it is a strided memcpy — no arithmetic per pixel, which
33
- * is the whole reason compositing can be cheaper than the filter graph it
34
- * replaces.
35
- *
36
- * Its chroma planes are half resolution in BOTH axes. So an odd origin or an
37
- * odd size would put a tile's chroma half a sample off its luma, and the result
38
- * is a tile that is subtly TINTED rather than visibly broken — the kind of
39
- * fault that survives review. Every rectangle is therefore required to be even,
40
- * and a blit that is not is refused rather than rounded: rounding would move a
41
- * cell the operator placed.
42
- */
2
+ * The composed picture as a buffer this addon owns.
3
+ *
4
+ * ## Why a canvas instead of ffmpeg's `overlay`
5
+ *
6
+ * `overlay` pairs its inputs BY PTS, and ffmpeg gives every input pts 0 at ITS
7
+ * OWN first frame. Two sources that joined at different moments therefore
8
+ * compose different moments, for the life of the child, with nothing to correct
9
+ * it. Measured on this hub at 4-5 s between two tiles, drifting over hours as
10
+ * the sources' key-frame phases slide through each other (0.5 s at 13:05, 3 s
11
+ * at 13:50 on the same pair, 2026-09-18).
12
+ *
13
+ * It is not reachable from a flag. `-use_wallclock_as_timestamps` re-times by
14
+ * ARRIVAL and wrecked the pacing instead (ten stalls over a second in an 18 s
15
+ * run, against none). `-copyts` changes nothing, because the broker re-bases
16
+ * each session — both restreams report `pts_time:0` — so there is no common
17
+ * timeline to trim against. Serving each dial from the newest key frame it
18
+ * already holds does not help either: those key frames are of different ages,
19
+ * and pts 0 still lands on whatever arrives first.
20
+ *
21
+ * A canvas has no pairing to get wrong. When the output tick fires, each
22
+ * rectangle holds whatever arrived last from its source, and the OUTPUT owns
23
+ * the clock. The gap is zero by construction rather than by tuning, and a cell
24
+ * that has produced nothing yet costs nothing — so the picture appears at once
25
+ * instead of waiting for the slowest source's first key frame. What such a cell
26
+ * shows is the seed the compositor blits in at construction
27
+ * (`grid-canvas-seed.ts`); `clear()` below is what it shows without one.
28
+ *
29
+ * ## Why yuv420p, and why everything here must be even
30
+ *
31
+ * yuv420p is the one pixel format every consumer of a CamStack profile reads,
32
+ * and a plane copy in it is a strided memcpy — no arithmetic per pixel, which
33
+ * is the whole reason compositing can be cheaper than the filter graph it
34
+ * replaces.
35
+ *
36
+ * Its chroma planes are half resolution in BOTH axes. So an odd origin or an
37
+ * odd size would put a tile's chroma half a sample off its luma, and the result
38
+ * is a tile that is subtly TINTED rather than visibly broken — the kind of
39
+ * fault that survives review. Every rectangle is therefore required to be even,
40
+ * and a blit that is not is refused rather than rounded: rounding would move a
41
+ * cell the operator placed.
42
+ */
43
43
  export interface PixelSize {
44
- readonly width: number;
45
- readonly height: number;
44
+ readonly width: number;
45
+ readonly height: number;
46
46
  }
47
47
  export interface PixelOrigin {
48
- readonly x: number;
49
- readonly y: number;
48
+ readonly x: number;
49
+ readonly y: number;
50
50
  }
51
51
  /** Bytes one yuv420p frame of this size occupies. */
52
52
  export declare function yuv420pSize(width: number, height: number): number;
53
53
  /**
54
- * Round DOWN to even.
55
- *
56
- * Down and not nearest: a tile that rounded UP would claim a row of samples the
57
- * decoder was never asked to produce, and the copy would either overrun or be
58
- * refused at the moment the picture is wanted.
59
- */
54
+ * Round DOWN to even.
55
+ *
56
+ * Down and not nearest: a tile that rounded UP would claim a row of samples the
57
+ * decoder was never asked to produce, and the copy would either overrun or be
58
+ * refused at the moment the picture is wanted.
59
+ */
60
60
  export declare function evenDown(value: number): number;
61
61
  export declare class GridCanvas {
62
- readonly width: number;
63
- readonly height: number;
64
- readonly buffer: Buffer;
65
- private readonly lumaBytes;
66
- private readonly chromaBytes;
67
- constructor(width: number, height: number);
68
- /**
69
- * Legible black — Y 0, chroma 128 (neutral).
70
- *
71
- * `Buffer.alloc` already zeroes, and zeroed CHROMA is not black: it is a
72
- * strong green. A cell nobody has filled yet has to look like an empty cell,
73
- * not like a fault.
74
- */
75
- clear(): void;
76
- /**
77
- * Copy one decoded tile in at `origin`.
78
- *
79
- * Returns false — never throws, never writes a partial tile — when the tile
80
- * does not fit, is the wrong size for the dimensions it claims, or sits on an
81
- * odd boundary. This runs on the output tick, so a bad frame from one source
82
- * must cost that source's rectangle and nothing else.
83
- */
84
- blit(tile: Buffer, size: PixelSize, origin: PixelOrigin): boolean;
62
+ readonly width: number;
63
+ readonly height: number;
64
+ readonly buffer: Buffer;
65
+ private readonly lumaBytes;
66
+ private readonly chromaBytes;
67
+ constructor(width: number, height: number);
68
+ /**
69
+ * Legible black — Y 0, chroma 128 (neutral).
70
+ *
71
+ * `Buffer.alloc` already zeroes, and zeroed CHROMA is not black: it is a
72
+ * strong green. A cell nobody has filled yet has to look like an empty cell,
73
+ * not like a fault.
74
+ */
75
+ clear(): void;
76
+ /**
77
+ * Copy one decoded tile in at `origin`.
78
+ *
79
+ * Returns false — never throws, never writes a partial tile — when the tile
80
+ * does not fit, is the wrong size for the dimensions it claims, or sits on an
81
+ * odd boundary. This runs on the output tick, so a bad frame from one source
82
+ * must cost that source's rectangle and nothing else.
83
+ */
84
+ blit(tile: Buffer, size: PixelSize, origin: PixelOrigin): boolean;
85
85
  }
@@ -1,19 +1,32 @@
1
- import { IScopedLogger } from '@camstack/types';
2
- import { GridSourceHandle, GridStreamChild, GridStreamPlan } from './grid-stream-session.js';
1
+ /**
2
+ * Spawning the composition, through the ONE primitive.
3
+ *
4
+ * `FfmpegProcess` (`@camstack/types`) owns spawn, the first-data deadline, the
5
+ * hardware→software retry, exit classification and the bounded restart. This
6
+ * file owns only the PLUMBING — which bytes go where — because that is the one
7
+ * thing the primitive deliberately does not own.
8
+ *
9
+ * `maxRestarts: 0`. A composite is demand-driven: if the child dies, the
10
+ * session tells every consumer why and tears down, and the consumer's next read
11
+ * starts a cold one with freshly acquired sources. A restart inside the process
12
+ * would reuse broker handles that may already have been released.
13
+ */
14
+ import { type IScopedLogger } from "@camstack/types";
15
+ import type { GridSourceHandle, GridStreamChild, GridStreamPlan } from "./grid-stream-session.js";
3
16
  export interface GridChildContext {
4
- readonly binaryPath: string;
5
- readonly logger: IScopedLogger;
6
- /** The COMPOSITE's device id — every line the primitive emits is tagged with it. */
7
- readonly deviceId: number;
8
- /**
9
- * The SOURCE cameras' names, for the cards the canvas is seeded with
10
- * (`grid-canvas-seed.ts`). Read at the point of use rather than mirrored:
11
- * this addon does not own those devices, and a name it cached would be the
12
- * second copy of a fact the device manager already owns (D224).
13
- *
14
- * Optional, and a failure is not one: a card with no name carries the device
15
- * id, which is what every log line about that tile carries anyway.
16
- */
17
- readonly resolveSourceNames?: (deviceIds: readonly number[]) => Promise<ReadonlyMap<number, string>>;
17
+ readonly binaryPath: string;
18
+ readonly logger: IScopedLogger;
19
+ /** The COMPOSITE's device id — every line the primitive emits is tagged with it. */
20
+ readonly deviceId: number;
21
+ /**
22
+ * The SOURCE cameras' names, for the cards the canvas is seeded with
23
+ * (`grid-canvas-seed.ts`). Read at the point of use rather than mirrored:
24
+ * this addon does not own those devices, and a name it cached would be the
25
+ * second copy of a fact the device manager already owns (D224).
26
+ *
27
+ * Optional, and a failure is not one: a card with no name carries the device
28
+ * id, which is what every log line about that tile carries anyway.
29
+ */
30
+ readonly resolveSourceNames?: (deviceIds: readonly number[]) => Promise<ReadonlyMap<number, string>>;
18
31
  }
19
32
  export declare function startGridChild(ctx: GridChildContext, plan: GridStreamPlan, sources: readonly GridSourceHandle[], onEnded: (reason: string) => void): Promise<GridStreamChild>;
@@ -1,3 +1,3 @@
1
- import { GridChildContext } from './grid-child.js';
2
- import { GridSourceHandle, GridStreamChild, GridStreamPlan } from './grid-stream-session.js';
1
+ import type { GridChildContext } from "./grid-child.js";
2
+ import type { GridSourceHandle, GridStreamChild, GridStreamPlan } from "./grid-stream-session.js";
3
3
  export declare function startGridCompositorChild(ctx: GridChildContext, plan: GridStreamPlan, sources: readonly GridSourceHandle[], onEnded: (reason: string) => void): Promise<GridStreamChild>;
@@ -1,19 +1,47 @@
1
- import { FfmpegInvocation, FfmpegVideoEncoderId } from '@camstack/types';
2
- import { GridTile } from './grid-tile-plan.js';
3
- import { PixelSize } from './grid-canvas.js';
1
+ /**
2
+ * The two argv the compositor spawns: a tile DECODER, and the canvas ENCODER.
3
+ *
4
+ * Both go through the shared builder in `@camstack/types`. This addon builds no
5
+ * argv of its own — the repo has already shipped two builders that disagreed
6
+ * about hardware, and `scripts/check-ffmpeg-primitive.ts` refuses a third.
7
+ *
8
+ * ## The decoder pays no codec on the way out
9
+ *
10
+ * A tile is copied into a canvas this process owns, so encoding it and decoding
11
+ * it again would be two codecs paid to deliver frames that were already there.
12
+ * It emits raw yuv420p — the format the canvas is in, so the composition is a
13
+ * strided memcpy rather than a convert.
14
+ *
15
+ * The input flags are the ones D527 measured: the probe returns from the SDP
16
+ * (`0` / `32`) instead of reading media, which is what took the old single
17
+ * child's start from ~9 s to 2.3 s. They matter less here — a compositor does
18
+ * not pair inputs, so a slow open costs that tile's first frame and nothing
19
+ * else — but a tile that appears in 300 ms instead of 4 s is still the
20
+ * difference the operator sees.
21
+ *
22
+ * ## The encoder never decodes
23
+ *
24
+ * It reads the canvas as raw frames on stdin and encodes once. `zerolatency`
25
+ * and a one-second GOP are carried over from the single-child invocation, where
26
+ * they were measured: without `zerolatency` about four seconds of picture sat
27
+ * inside the encoder, which the operator reported as "ritardi di secondi".
28
+ */
29
+ import type { FfmpegInvocation, FfmpegVideoEncoderId } from "@camstack/types";
30
+ import { type GridTile } from "./grid-tile-plan.js";
31
+ import type { PixelSize } from "./grid-canvas.js";
4
32
  export interface GridTileDecoderInput {
5
- readonly tile: GridTile;
6
- /** A broker restream URL, acquired through `streamBroker.getStreamWithCodec`. */
7
- readonly url: string;
8
- readonly fps: number;
33
+ readonly tile: GridTile;
34
+ /** A broker restream URL, acquired through `streamBroker.getStreamWithCodec`. */
35
+ readonly url: string;
36
+ readonly fps: number;
9
37
  }
10
38
  /** One tile's decoder: dial in, raw yuv420p frames out. */
11
39
  export declare function gridTileDecoderInvocation(input: GridTileDecoderInput): FfmpegInvocation;
12
40
  export interface GridCanvasEncoderInput {
13
- readonly canvas: PixelSize;
14
- readonly fps: number;
15
- readonly encoder: FfmpegVideoEncoderId;
16
- readonly bitrateKbps: number;
41
+ readonly canvas: PixelSize;
42
+ readonly fps: number;
43
+ readonly encoder: FfmpegVideoEncoderId;
44
+ readonly bitrateKbps: number;
17
45
  }
18
46
  /** The canvas encoder: raw frames on stdin, one compressed stream out. */
19
47
  export declare function gridCanvasEncoderInvocation(input: GridCanvasEncoderInput): FfmpegInvocation;
@@ -1,54 +1,54 @@
1
- import { GridTilePlan } from './grid-tile-plan.js';
1
+ import type { GridTilePlan } from "./grid-tile-plan.js";
2
2
  export interface GridCompositorDeps {
3
- readonly plan: GridTilePlan;
4
- /**
5
- * Hand one composed frame to the encoder. `false` means the sink is not
6
- * draining — the caller slows down rather than queueing raw frames, which at
7
- * 345 KB each is how a stalled encoder becomes an OOM.
8
- */
9
- readonly write: (frame: Buffer) => boolean;
10
- /**
11
- * The picture the canvas carries before any tile has arrived — one card per
12
- * cell, naming its camera (`grid-canvas-seed.ts`). `null` ⇒ black, which is
13
- * what this was before the seed and what it falls back to when the seed
14
- * cannot be drawn.
15
- *
16
- * Blitted ONCE, here, so the very first tick already carries it: the tick
17
- * serves every cell and must never wait on a render.
18
- */
19
- readonly seed: Buffer | null;
3
+ readonly plan: GridTilePlan;
4
+ /**
5
+ * Hand one composed frame to the encoder. `false` means the sink is not
6
+ * draining — the caller slows down rather than queueing raw frames, which at
7
+ * 345 KB each is how a stalled encoder becomes an OOM.
8
+ */
9
+ readonly write: (frame: Buffer) => boolean;
10
+ /**
11
+ * The picture the canvas carries before any tile has arrived — one card per
12
+ * cell, naming its camera (`grid-canvas-seed.ts`). `null` ⇒ black, which is
13
+ * what this was before the seed and what it falls back to when the seed
14
+ * cannot be drawn.
15
+ *
16
+ * Blitted ONCE, here, so the very first tick already carries it: the tick
17
+ * serves every cell and must never wait on a render.
18
+ */
19
+ readonly seed: Buffer | null;
20
20
  }
21
21
  export declare class GridCompositor {
22
- private readonly deps;
23
- private readonly canvas;
24
- /** Keyed by tile id — unique per CELL, because one camera can hold two. */
25
- private readonly placed;
26
- private closed;
27
- constructor(deps: GridCompositorDeps);
28
- /**
29
- * Raw bytes from one decoder output.
30
- *
31
- * A tile this composition has no rectangle for is IGNORED, never thrown on: a
32
- * child that outlives a layout change would otherwise take the tick down with
33
- * it, and the tick is what every other cell depends on.
34
- */
35
- onTile(tileId: string, chunk: Buffer): void;
36
- /**
37
- * Compose and emit one frame. Returns what the sink said about back-pressure.
38
- *
39
- * Every tile is redrawn, fresh or not: a tile that produced nothing this tick
40
- * is a still picture, not a hole, and clearing it would make a late source
41
- * flicker. The canvas is never cleared between ticks for the same reason.
42
- */
43
- tick(): boolean;
44
- /**
45
- * A tile's decoder was replaced: drop its half frame, keep its picture.
46
- *
47
- * Without this the new decoder's bytes would be appended to the old one's
48
- * partial frame and every frame after would be sheared — raw video has no
49
- * framing to re-sync on.
50
- */
51
- resetTile(tileId: string): void;
52
- /** After this, a tick emits nothing — a dead child must not keep writing. */
53
- close(): void;
22
+ private readonly deps;
23
+ private readonly canvas;
24
+ /** Keyed by tile id — unique per CELL, because one camera can hold two. */
25
+ private readonly placed;
26
+ private closed;
27
+ constructor(deps: GridCompositorDeps);
28
+ /**
29
+ * Raw bytes from one decoder output.
30
+ *
31
+ * A tile this composition has no rectangle for is IGNORED, never thrown on: a
32
+ * child that outlives a layout change would otherwise take the tick down with
33
+ * it, and the tick is what every other cell depends on.
34
+ */
35
+ onTile(tileId: string, chunk: Buffer): void;
36
+ /**
37
+ * Compose and emit one frame. Returns what the sink said about back-pressure.
38
+ *
39
+ * Every tile is redrawn, fresh or not: a tile that produced nothing this tick
40
+ * is a still picture, not a hole, and clearing it would make a late source
41
+ * flicker. The canvas is never cleared between ticks for the same reason.
42
+ */
43
+ tick(): boolean;
44
+ /**
45
+ * A tile's decoder was replaced: drop its half frame, keep its picture.
46
+ *
47
+ * Without this the new decoder's bytes would be appended to the old one's
48
+ * partial frame and every frame after would be sheared — raw video has no
49
+ * framing to re-sync on.
50
+ */
51
+ resetTile(tileId: string): void;
52
+ /** After this, a tick emits nothing — a dead child must not keep writing. */
53
+ close(): void;
54
54
  }
@@ -1,31 +1,61 @@
1
- import { DetectionBoundingBox } from '@camstack/types';
2
- import { NormalizedRect } from './grid-filter-graph.js';
1
+ /**
2
+ * A detection seen by a SOURCE camera, placed where the operator is looking.
3
+ *
4
+ * ## Why a grid maps boxes at all
5
+ *
6
+ * The viewer feeds the detection ring and the box overlay from the SAME event
7
+ * (`detection.result`). So a grid that reports detections — which is what makes
8
+ * its tile light up — reports boxes too, whether or not anyone asked for them.
9
+ * The only choices are to send the source's own box, which would be drawn
10
+ * against the composed canvas at confidently wrong coordinates, or to carry it
11
+ * through the geometry the composition already uses. Both rectangles are
12
+ * normalized on both sides (D519), so carrying it is a multiplication.
13
+ *
14
+ * ## Three ways to be subtly wrong
15
+ *
16
+ * - **A camera can appear in SEVERAL cells.** A wide shot and a crop of the
17
+ * same street is the case composites are asked for most, and `grid-plan.ts`
18
+ * already makes both read ONE input. One detection therefore lands once per
19
+ * cell that shows it — or not at all.
20
+ * - **A cell shows only PART of its source.** A detection outside the crop is
21
+ * not in the picture, and drawing it at the cell's edge would invent a
22
+ * subject standing where nobody is.
23
+ * - **A detection can straddle the crop edge.** Half a subject really is half
24
+ * visible, so the box is clipped to what the cell shows rather than dropped.
25
+ *
26
+ * This deliberately does not go through `deriveDetailCropRect` (D52): that
27
+ * function exists to keep every crop feeding a VECTOR INDEX cut the same way.
28
+ * This is presentation, feeds no index, and routing it through there would add
29
+ * a second cutter to the one thing D52 keeps single.
30
+ */
31
+ import type { DetectionBoundingBox } from "@camstack/types";
32
+ import type { NormalizedRect } from "./grid-filter-graph.js";
3
33
  /** One place a source appears: the part taken, and where that part lands. */
4
34
  export interface GridMappingCell {
5
- /** The part of the source this cell shows, normalized against the SOURCE. */
6
- readonly source: NormalizedRect;
7
- /** Where it lands, normalized against the CANVAS. */
8
- readonly cell: NormalizedRect;
35
+ /** The part of the source this cell shows, normalized against the SOURCE. */
36
+ readonly source: NormalizedRect;
37
+ /** Where it lands, normalized against the CANVAS. */
38
+ readonly cell: NormalizedRect;
9
39
  }
10
40
  export interface GridFrameSize {
11
- readonly width: number;
12
- readonly height: number;
41
+ readonly width: number;
42
+ readonly height: number;
13
43
  }
14
44
  export interface MapDetectionInput {
15
- /** The detection's box, in ABSOLUTE pixels of the source frame. */
16
- readonly bbox: DetectionBoundingBox;
17
- /** The frame those pixels are measured against (`FrameResult.width/height`). */
18
- readonly sourceFrame: GridFrameSize;
19
- /** The composed canvas the result is measured against. */
20
- readonly canvas: GridFrameSize;
21
- /** Every cell this source appears in. */
22
- readonly cells: readonly GridMappingCell[];
45
+ /** The detection's box, in ABSOLUTE pixels of the source frame. */
46
+ readonly bbox: DetectionBoundingBox;
47
+ /** The frame those pixels are measured against (`FrameResult.width/height`). */
48
+ readonly sourceFrame: GridFrameSize;
49
+ /** The composed canvas the result is measured against. */
50
+ readonly canvas: GridFrameSize;
51
+ /** Every cell this source appears in. */
52
+ readonly cells: readonly GridMappingCell[];
23
53
  }
24
54
  /**
25
- * Where this detection lands on the canvas — once per cell that shows it.
26
- *
27
- * Empty is a real answer: the subject is in a part of the source this grid does
28
- * not display, or the frame arrived with no size to measure against. Neither is
29
- * a reason to guess.
30
- */
55
+ * Where this detection lands on the canvas — once per cell that shows it.
56
+ *
57
+ * Empty is a real answer: the subject is in a part of the source this grid does
58
+ * not display, or the frame arrived with no size to measure against. Neither is
59
+ * a reason to guess.
60
+ */
31
61
  export declare function mapDetectionToCanvas(input: MapDetectionInput): readonly DetectionBoundingBox[];
@@ -1,11 +1,35 @@
1
- import { ConfigUISchema } from '@camstack/types';
1
+ /**
2
+ * The grid's own section on the camera page — built HERE, not derived by the
3
+ * framework.
4
+ *
5
+ * The section this returns is what `getDeviceSettingsContribution` hands the
6
+ * device-page aggregation. It carries the layout widget, and it carries the
7
+ * placement with it: the addon names its own tab, location and order, the way
8
+ * any other setting does.
9
+ *
10
+ * The alternative the framework offers — a `deviceConfig.ui` block on the cap —
11
+ * renders the same widget, and is what seven other widgets still use. It was
12
+ * rejected here for two reasons that are not cosmetic:
13
+ *
14
+ * - placement would be a CAP declaration, so changing where a grid's editor
15
+ * lives would mean a framework change and a published server;
16
+ * - it cannot DECLINE. A `deviceConfig.ui` section is emitted for every device
17
+ * the cap is bound to, so a camera that is not a grid would get a panel that
18
+ * renders its own "this is not a grid" state — a UI that exists to say it
19
+ * should not exist.
20
+ *
21
+ * `recording` is the precedent (`recorder/recording-device-settings.ts`):
22
+ * returning `null` is how it keeps the Recording tab off a device that is not
23
+ * a camera.
24
+ */
25
+ import type { ConfigUISchema } from "@camstack/types";
2
26
  /** The widget id, registered in `ui-library`'s `HOST_WIDGETS`. */
3
27
  export declare const GRID_LAYOUT_WIDGET_ID = "host/camera-grid-layout";
4
28
  /**
5
- * The layout section, or `null` when this device is not a grid.
6
- *
7
- * `isGrid` is the ANSWER to "is this a grid", never "do we know yet". A caller
8
- * that cannot tell must not call this — an unresolved read rendered as `null`
9
- * would hide the editor from a real grid (D315).
10
- */
29
+ * The layout section, or `null` when this device is not a grid.
30
+ *
31
+ * `isGrid` is the ANSWER to "is this a grid", never "do we know yet". A caller
32
+ * that cannot tell must not call this — an unresolved read rendered as `null`
33
+ * would hide the editor from a real grid (D315).
34
+ */
11
35
  export declare function buildGridDeviceSchema(isGrid: boolean): ConfigUISchema | null;
@@ -1,53 +1,53 @@
1
1
  /**
2
- * The composite's geometry, as the `-filter_complex` the extended ffmpeg
3
- * primitive carries.
4
- *
5
- * ## Why normalized, and why not `deriveDetailCropRect`
6
- *
7
- * Both rectangles -- the crop taken OUT of a source and the cell it lands IN --
8
- * are normalized [0,1]. A source camera can change resolution under us (a
9
- * profile switch, a firmware update, a substream that comes back different) and
10
- * a rectangle stored in pixels would quietly start cutting the wrong part of
11
- * the picture, with nothing to say so.
12
- *
13
- * This deliberately does NOT go through `deriveDetailCropRect`. D52 -- "one
14
- * vector index = one crop derivation" -- protects the COMPARABILITY of a vector
15
- * index: every crop that feeds it must be cut the same way. This is
16
- * presentation, feeds no index, and routing it through that function would add
17
- * a second cutter to the one thing D52 exists to keep single.
18
- *
19
- * ## Why a canvas and overlays rather than stacks
20
- *
21
- * `hstack`/`vstack` only express a regular grid of equal tiles. The operator
22
- * composes *arbitrary* rectangles -- "a 16:9 from the middle of two streams" is
23
- * the case this was asked for -- so every cell is scaled and overlaid onto one
24
- * explicit canvas at its own origin. The canvas is also what makes a missing
25
- * cell legible: a gap is black, not a stretched neighbour.
26
- */
2
+ * The composite's geometry, as the `-filter_complex` the extended ffmpeg
3
+ * primitive carries.
4
+ *
5
+ * ## Why normalized, and why not `deriveDetailCropRect`
6
+ *
7
+ * Both rectangles -- the crop taken OUT of a source and the cell it lands IN --
8
+ * are normalized [0,1]. A source camera can change resolution under us (a
9
+ * profile switch, a firmware update, a substream that comes back different) and
10
+ * a rectangle stored in pixels would quietly start cutting the wrong part of
11
+ * the picture, with nothing to say so.
12
+ *
13
+ * This deliberately does NOT go through `deriveDetailCropRect`. D52 -- "one
14
+ * vector index = one crop derivation" -- protects the COMPARABILITY of a vector
15
+ * index: every crop that feeds it must be cut the same way. This is
16
+ * presentation, feeds no index, and routing it through that function would add
17
+ * a second cutter to the one thing D52 exists to keep single.
18
+ *
19
+ * ## Why a canvas and overlays rather than stacks
20
+ *
21
+ * `hstack`/`vstack` only express a regular grid of equal tiles. The operator
22
+ * composes *arbitrary* rectangles -- "a 16:9 from the middle of two streams" is
23
+ * the case this was asked for -- so every cell is scaled and overlaid onto one
24
+ * explicit canvas at its own origin. The canvas is also what makes a missing
25
+ * cell legible: a gap is black, not a stretched neighbour.
26
+ */
27
27
  /** A rectangle in normalized [0,1] coordinates of whatever contains it. */
28
28
  export interface NormalizedRect {
29
- readonly x: number;
30
- readonly y: number;
31
- readonly width: number;
32
- readonly height: number;
29
+ readonly x: number;
30
+ readonly y: number;
31
+ readonly width: number;
32
+ readonly height: number;
33
33
  }
34
34
  /** One source, the part of it taken, and where that part lands. */
35
35
  export interface GridCell {
36
- /** Which ffmpeg input this cell reads — its ORDINAL among the invocation's inputs. */
37
- readonly inputIndex: number;
38
- /** The part of the source to take, normalized against the SOURCE. */
39
- readonly source: NormalizedRect;
40
- /** Where it lands, normalized against the CANVAS. */
41
- readonly cell: NormalizedRect;
36
+ /** Which ffmpeg input this cell reads — its ORDINAL among the invocation's inputs. */
37
+ readonly inputIndex: number;
38
+ /** The part of the source to take, normalized against the SOURCE. */
39
+ readonly source: NormalizedRect;
40
+ /** Where it lands, normalized against the CANVAS. */
41
+ readonly cell: NormalizedRect;
42
42
  }
43
43
  export interface GridLayout {
44
- /** Canvas size in pixels — the composite camera's own resolution. */
45
- readonly width: number;
46
- readonly height: number;
47
- readonly cells: readonly GridCell[];
44
+ /** Canvas size in pixels — the composite camera's own resolution. */
45
+ readonly width: number;
46
+ readonly height: number;
47
+ readonly cells: readonly GridCell[];
48
48
  }
49
49
  export interface GridFilterGraph {
50
- readonly graph: string;
51
- readonly videoOutLabel: string;
50
+ readonly graph: string;
51
+ readonly videoOutLabel: string;
52
52
  }
53
53
  export declare function buildGridFilterGraph(layout: GridLayout): GridFilterGraph;