@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,62 +1,62 @@
1
- import { GridStreamLogger } from './grid-stream-session.js';
1
+ import type { GridStreamLogger } from "./grid-stream-session.js";
2
2
  /** Where a grid's last composed frame is kept between compositions. */
3
3
  export interface GridLastFrameStore {
4
- /** The last frame kept for this grid, or `null` — which is a real answer. */
5
- get(deviceId: number): Promise<Buffer | null>;
6
- put(deviceId: number, jpeg: Buffer): Promise<void>;
4
+ /** The last frame kept for this grid, or `null` — which is a real answer. */
5
+ get(deviceId: number): Promise<Buffer | null>;
6
+ put(deviceId: number, jpeg: Buffer): Promise<void>;
7
7
  }
8
8
  /** Just enough of a session for the snapshot to choose one and read its state. */
9
9
  export interface GridSnapshotSession {
10
- isRunning(): boolean;
10
+ isRunning(): boolean;
11
11
  }
12
12
  export interface GridSnapshotAnswerInput {
13
- readonly running: boolean;
14
- readonly hasStoredFrame: boolean;
13
+ readonly running: boolean;
14
+ readonly hasStoredFrame: boolean;
15
15
  }
16
16
  export type GridSnapshotAnswer = {
17
- readonly kind: 'live';
17
+ readonly kind: "live";
18
18
  } | {
19
- readonly kind: 'stored';
19
+ readonly kind: "stored";
20
20
  } | {
21
- readonly kind: 'none';
22
- readonly reason: 'never-composed';
21
+ readonly kind: "none";
22
+ readonly reason: "never-composed";
23
23
  };
24
24
  /**
25
- * Which of the three answers applies. Pure, so the rule can be read — and
26
- * sabotaged — without a socket, a file or an ffmpeg.
27
- */
25
+ * Which of the three answers applies. Pure, so the rule can be read — and
26
+ * sabotaged — without a socket, a file or an ffmpeg.
27
+ */
28
28
  export declare function gridSnapshotAnswerFor(input: GridSnapshotAnswerInput): GridSnapshotAnswer;
29
29
  export interface GridSnapshotImage {
30
- readonly base64: string;
31
- readonly contentType: string;
30
+ readonly base64: string;
31
+ readonly contentType: string;
32
32
  }
33
33
  /**
34
- * Generic in the session type so the addon can hand over its OWN session
35
- * record — the one that also knows the instance and the stream — and get it
36
- * back in `sampleFrame` without a cast or a second lookup.
37
- */
34
+ * Generic in the session type so the addon can hand over its OWN session
35
+ * record — the one that also knows the instance and the stream — and get it
36
+ * back in `sampleFrame` without a cast or a second lookup.
37
+ */
38
38
  export interface GridSnapshotDeps<S extends GridSnapshotSession = GridSnapshotSession> {
39
- readonly logger: GridStreamLogger;
40
- /**
41
- * This grid's compositions — one, since the collapse to a single output.
42
- * Kept as a LIST because the choosing logic below is the same either way and
43
- * a list of one costs nothing. EMPTY means this addon does not own the
44
- * device — never "no picture".
45
- */
46
- readonly sessionsFor: (deviceId: number) => readonly S[];
47
- /**
48
- * One JPEG out of a composition that is ALREADY running. `null` when the
49
- * bytes could not be turned into a frame — which is a miss, not a reason to
50
- * start anything.
51
- */
52
- readonly sampleFrame: (session: S) => Promise<Buffer | null>;
53
- readonly store: GridLastFrameStore;
39
+ readonly logger: GridStreamLogger;
40
+ /**
41
+ * This grid's compositions — one, since the collapse to a single output.
42
+ * Kept as a LIST because the choosing logic below is the same either way and
43
+ * a list of one costs nothing. EMPTY means this addon does not own the
44
+ * device — never "no picture".
45
+ */
46
+ readonly sessionsFor: (deviceId: number) => readonly S[];
47
+ /**
48
+ * One JPEG out of a composition that is ALREADY running. `null` when the
49
+ * bytes could not be turned into a frame — which is a miss, not a reason to
50
+ * start anything.
51
+ */
52
+ readonly sampleFrame: (session: S) => Promise<Buffer | null>;
53
+ readonly store: GridLastFrameStore;
54
54
  }
55
55
  export declare class GridSnapshotSource<S extends GridSnapshotSession = GridSnapshotSession> {
56
- private readonly deps;
57
- constructor(deps: GridSnapshotDeps<S>);
58
- getSnapshot(deviceId: number): Promise<GridSnapshotImage | null>;
59
- private sample;
60
- private readStored;
61
- private keep;
56
+ private readonly deps;
57
+ constructor(deps: GridSnapshotDeps<S>);
58
+ getSnapshot(deviceId: number): Promise<GridSnapshotImage | null>;
59
+ private sample;
60
+ private readStored;
61
+ private keep;
62
62
  }
@@ -1,25 +1,53 @@
1
- import { CamProfile, CamStreamDescriptor } from '@camstack/types';
1
+ /**
2
+ * What a grid camera tells the broker it offers: one stream per profile.
3
+ *
4
+ * ## Why a `stream-catalog` descriptor and not `publishCameraStream`
5
+ *
6
+ * The broker PULLS this catalog per camera and reconciles its registry against
7
+ * it. Anything the broker holds that the catalog does not name is swept — which
8
+ * is the sweep `brokerOwned: true` exists to opt OUT of, for streams no
9
+ * provider can ever declare (a `derived:*`, an `egress:*`). A grid is not one
10
+ * of those: this addon owns the device, answers `getCatalog` for it, and names
11
+ * its streams on every pull. Being PRESENT in the catalog is what keeps them,
12
+ * and `brokerOwned` is not on the cap wire at all — deliberately, so a cap
13
+ * caller cannot make its own publication un-sweepable.
14
+ *
15
+ * The corollary is the rule this addon has to keep: `getCatalog` must name
16
+ * every OFFERED stream on EVERY pull, including while the composition is idle.
17
+ * It describes what the grid offers, not what is running.
18
+ *
19
+ * ## One descriptor per OFFERED profile
20
+ *
21
+ * A grid's `low` is composed of its sources' `low`, onto the canvas their `low`
22
+ * implies — so the three are each 1:1 with what they are made of, and a
23
+ * viewer's adaptive picks a rung without knowing a grid is a grid.
24
+ *
25
+ * A profile one source cannot serve is not named here at all: composing a hole
26
+ * is worse than not offering, because the operator files the hole as a broken
27
+ * camera.
28
+ */
29
+ import type { CamProfile, CamStreamDescriptor } from "@camstack/types";
2
30
  export interface GridStreamDescriptorInput {
3
- /** Which composition this is. Also the `profileHint` — see below. */
4
- readonly profile: CamProfile;
5
- /** The DERIVED canvas of that profile, never an authored number. */
6
- readonly width: number;
7
- readonly height: number;
8
- readonly fps: number;
9
- /** The on-demand endpoint the broker dials. Dialling it IS the demand. */
10
- readonly url: string;
31
+ /** Which composition this is. Also the `profileHint` — see below. */
32
+ readonly profile: CamProfile;
33
+ /** The DERIVED canvas of that profile, never an authored number. */
34
+ readonly width: number;
35
+ readonly height: number;
36
+ readonly fps: number;
37
+ /** The on-demand endpoint the broker dials. Dialling it IS the demand. */
38
+ readonly url: string;
11
39
  }
12
40
  /**
13
- * `profileHint` is load-bearing, not decoration.
14
- *
15
- * A device publishing a SINGLE stream with no hint is ranked by pixel count,
16
- * and a single stream ranks into `mid` — the slot `recordings` does not select
17
- * on its own (`high|mid` picks high), that `recordingsLow` ignores, and that
18
- * scrub never reads. The Dreame robot's one 720p relay landed exactly there and
19
- * its footage was written nowhere anything looked.
20
- *
21
- * With several compositions published the hint does a second job: it says which
22
- * slot each one is FOR. Ranked by pixels a grid's `mid` would take the `high`
23
- * slot on any grid whose `high` was not offered.
24
- */
41
+ * `profileHint` is load-bearing, not decoration.
42
+ *
43
+ * A device publishing a SINGLE stream with no hint is ranked by pixel count,
44
+ * and a single stream ranks into `mid` — the slot `recordings` does not select
45
+ * on its own (`high|mid` picks high), that `recordingsLow` ignores, and that
46
+ * scrub never reads. The Dreame robot's one 720p relay landed exactly there and
47
+ * its footage was written nowhere anything looked.
48
+ *
49
+ * With several compositions published the hint does a second job: it says which
50
+ * slot each one is FOR. Ranked by pixels a grid's `mid` would take the `high`
51
+ * slot on any grid whose `high` was not offered.
52
+ */
25
53
  export declare function gridStreamDescriptor(input: GridStreamDescriptorInput): CamStreamDescriptor;
@@ -1,29 +1,44 @@
1
- import { FfmpegInvocation, FfmpegVideoEncoderId } from '@camstack/types';
2
- import { GridLayout } from './grid-filter-graph.js';
1
+ /**
2
+ * The composite's ffmpeg plan: N decodes, ONE composition, ONE encode, in ONE
3
+ * child.
4
+ *
5
+ * This file composes the SHARED builder in `@camstack/types`
6
+ * (`ffmpeg/invocation.ts`) — it deliberately builds no argv of its own. The
7
+ * repo has already shipped two argv builders that disagreed about hardware,
8
+ * and `scripts/check-ffmpeg-primitive.ts` exists to refuse a third.
9
+ *
10
+ * Why one child rather than one per source: frames never cross a process
11
+ * boundary at frame-rate (D9/D18). A composition needs every source's DECODED
12
+ * pixels at the same instant, so the composition has to happen where the
13
+ * decodes already are. What leaves this child is a compressed elementary
14
+ * stream in an MPEG-TS wrapper, and nothing else.
15
+ */
16
+ import type { FfmpegInvocation, FfmpegVideoEncoderId } from "@camstack/types";
17
+ import { type GridLayout } from "./grid-filter-graph.js";
3
18
  /** One ffmpeg input: the camera it is, and the URL this child will dial. */
4
19
  export interface GridStreamSource {
5
- /** The SOURCE camera. Carried so every log line about it can be tagged. */
6
- readonly deviceId: number;
7
- /**
8
- * A broker restream URL, acquired through `streamBroker.getStreamWithCodec`.
9
- * That is the single demand-counted entry point: it rides the broker's ONE
10
- * source dial instead of opening a second connection to the camera.
11
- */
12
- readonly url: string;
20
+ /** The SOURCE camera. Carried so every log line about it can be tagged. */
21
+ readonly deviceId: number;
22
+ /**
23
+ * A broker restream URL, acquired through `streamBroker.getStreamWithCodec`.
24
+ * That is the single demand-counted entry point: it rides the broker's ONE
25
+ * source dial instead of opening a second connection to the camera.
26
+ */
27
+ readonly url: string;
13
28
  }
14
29
  export interface GridStreamInvocationInput {
15
- readonly layout: GridLayout;
16
- /** In ffmpeg INPUT ORDINAL order — `sources[n]` is the graph's `[n:v]`. */
17
- readonly sources: readonly GridStreamSource[];
18
- readonly decodeHwAccel: string | null;
19
- readonly encoder: FfmpegVideoEncoderId;
20
- readonly fps: number;
21
- readonly bitrateKbps: number;
30
+ readonly layout: GridLayout;
31
+ /** In ffmpeg INPUT ORDINAL order — `sources[n]` is the graph's `[n:v]`. */
32
+ readonly sources: readonly GridStreamSource[];
33
+ readonly decodeHwAccel: string | null;
34
+ readonly encoder: FfmpegVideoEncoderId;
35
+ readonly fps: number;
36
+ readonly bitrateKbps: number;
22
37
  }
23
38
  /**
24
- * @throws when the layout addresses an input the sources do not contain, or
25
- * when there is nothing to compose. Both are plan errors: ffmpeg would refuse
26
- * them at start-up with a message about a filter pad, which names the graph
27
- * rather than the configuration that produced it.
28
- */
39
+ * @throws when the layout addresses an input the sources do not contain, or
40
+ * when there is nothing to compose. Both are plan errors: ffmpeg would refuse
41
+ * them at start-up with a message about a filter pad, which names the graph
42
+ * rather than the configuration that produced it.
43
+ */
29
44
  export declare function gridStreamInvocation(input: GridStreamInvocationInput): FfmpegInvocation;
@@ -1,35 +1,35 @@
1
- import { CamProfile } from '@camstack/types';
2
- import { GridStreamLogger, GridStreamSession } from './grid-stream-session.js';
1
+ import { type CamProfile } from "@camstack/types";
2
+ import type { GridStreamLogger, GridStreamSession } from "./grid-stream-session.js";
3
3
  /**
4
- * Which grid, and WHICH COMPOSITION of it.
5
- *
6
- * The profile is a path segment and not a query string for the reason the
7
- * restream suffixes are (`restream-intent.ts`): the choice belongs to the URL
8
- * the consumer was handed, so a broker configured once keeps asking for the
9
- * same thing. It is REQUIRED — a dial naming none would be the broker asking
10
- * for "whichever", which is how a `low` slot ends up holding a `high`
11
- * composition.
12
- */
4
+ * Which grid, and WHICH COMPOSITION of it.
5
+ *
6
+ * The profile is a path segment and not a query string for the reason the
7
+ * restream suffixes are (`restream-intent.ts`): the choice belongs to the URL
8
+ * the consumer was handed, so a broker configured once keeps asking for the
9
+ * same thing. It is REQUIRED — a dial naming none would be the broker asking
10
+ * for "whichever", which is how a `low` slot ends up holding a `high`
11
+ * composition.
12
+ */
13
13
  export interface GridStreamRequest {
14
- readonly instanceId: string;
15
- readonly profile: CamProfile;
14
+ readonly instanceId: string;
15
+ readonly profile: CamProfile;
16
16
  }
17
17
  /** `/grid/<instanceId>/<profile>.flv`, or `null` when it is anything else. */
18
18
  export declare function parseGridStreamPath(url: string | undefined): GridStreamRequest | null;
19
19
  export interface GridStreamRelayDeps {
20
- readonly logger: GridStreamLogger;
21
- /** `null` when no grid serves that instance/profile pair right now. */
22
- readonly sessionFor: (request: GridStreamRequest) => GridStreamSession | null;
20
+ readonly logger: GridStreamLogger;
21
+ /** `null` when no grid serves that instance/profile pair right now. */
22
+ readonly sessionFor: (request: GridStreamRequest) => GridStreamSession | null;
23
23
  }
24
24
  export declare class GridStreamRelay {
25
- private readonly deps;
26
- private server;
27
- private baseUrl;
28
- private readonly open;
29
- constructor(deps: GridStreamRelayDeps);
30
- start(): Promise<void>;
31
- /** The URL a grid's catalog descriptor advertises. Empty before {@link start}. */
32
- streamUrl(request: GridStreamRequest): string;
33
- private serve;
34
- dispose(): Promise<void>;
25
+ private readonly deps;
26
+ private server;
27
+ private baseUrl;
28
+ private readonly open;
29
+ constructor(deps: GridStreamRelayDeps);
30
+ start(): Promise<void>;
31
+ /** The URL a grid's catalog descriptor advertises. Empty before {@link start}. */
32
+ streamUrl(request: GridStreamRequest): string;
33
+ private serve;
34
+ dispose(): Promise<void>;
35
35
  }
@@ -1,113 +1,143 @@
1
- import { FfmpegVideoEncoderId, IScopedLogger } from '@camstack/types';
2
- import { Readable } from 'node:stream';
3
- import { GridLayout } from './grid-filter-graph.js';
1
+ /**
2
+ * One composite camera's stream, on demand.
3
+ *
4
+ * ## The lifecycle, stated once
5
+ *
6
+ * There is **no prebuffer and no idle stream**. The child exists while, and
7
+ * only while, somebody is reading its bytes:
8
+ *
9
+ * - **A consumer** is an open read of this grid's HTTP endpoint. The broker is
10
+ * the only thing that dials it, and it dials on demand for whatever is
11
+ * consuming the grid's profile slot — a viewer, a snapshot, or the recorder.
12
+ * That is why "the recorder counts as a client" needs no special case here:
13
+ * with recording enabled the broker keeps a dial open, so the grid stays up
14
+ * exactly like an ordinary camera that records.
15
+ * - **The first** consumer acquires one broker handle per cell and starts ONE
16
+ * ffmpeg child.
17
+ * - **The last** consumer to leave stops the child and releases every handle.
18
+ * {@link GridStreamSessionDeps.lingerMs} debounces that teardown; it holds no
19
+ * media and answers nobody, it only stops a reconnect costing a respawn plus
20
+ * N re-acquisitions.
21
+ *
22
+ * ## Why the sources come from the broker
23
+ *
24
+ * `streamBroker.getStreamWithCodec` is the single demand-counted stream entry
25
+ * point: it rides the broker's ONE dial to each source camera rather than
26
+ * opening a second connection, and it is refcounted, so a source that also
27
+ * feeds a viewer is not dialled twice. A grid that dialled cameras itself would
28
+ * double every source's connection count and wake battery cameras nobody asked
29
+ * for.
30
+ */
31
+ import type { FfmpegVideoEncoderId, IScopedLogger } from "@camstack/types";
32
+ import type { Readable } from "node:stream";
33
+ import type { GridLayout } from "./grid-filter-graph.js";
4
34
  /** The logging surface this session needs — a structural subset of the injected logger. */
5
- export type GridStreamLogger = Pick<IScopedLogger, 'debug' | 'info' | 'warn' | 'error'>;
35
+ export type GridStreamLogger = Pick<IScopedLogger, "debug" | "info" | "warn" | "error">;
6
36
  /** One acquired broker handle: what to dial, and what to release it by. */
7
37
  export interface GridSourceHandle {
8
- readonly url: string;
9
- readonly pipelineKey: string;
38
+ readonly url: string;
39
+ readonly pipelineKey: string;
10
40
  }
11
41
  /** The spawned ffmpeg, as this session uses it. */
12
42
  export interface GridStreamChild {
13
- readonly stdout: Readable;
14
- stop(): Promise<void>;
43
+ readonly stdout: Readable;
44
+ stop(): Promise<void>;
15
45
  }
16
46
  /** Everything the composition needs that is not a per-run acquisition. */
17
47
  export interface GridStreamPlan {
18
- readonly layout: GridLayout;
19
- /** In ffmpeg INPUT ORDINAL order — `sourceDeviceIds[n]` is the graph's `[n:v]`. */
20
- readonly sourceDeviceIds: readonly number[];
21
- readonly encoder: FfmpegVideoEncoderId;
22
- readonly decodeHwAccel: string | null;
23
- readonly fps: number;
24
- readonly bitrateKbps: number;
48
+ readonly layout: GridLayout;
49
+ /** In ffmpeg INPUT ORDINAL order — `sourceDeviceIds[n]` is the graph's `[n:v]`. */
50
+ readonly sourceDeviceIds: readonly number[];
51
+ readonly encoder: FfmpegVideoEncoderId;
52
+ readonly decodeHwAccel: string | null;
53
+ readonly fps: number;
54
+ readonly bitrateKbps: number;
25
55
  }
26
56
  export interface GridStreamSessionDeps {
27
- readonly logger: GridStreamLogger;
28
- readonly acquireSource: (deviceId: number) => Promise<GridSourceHandle>;
29
- readonly releaseSource: (pipelineKey: string) => Promise<void>;
30
- readonly startChild: (plan: GridStreamPlan, sources: readonly GridSourceHandle[]) => Promise<GridStreamChild>;
31
- /** Teardown debounce. `0` ⇒ tear down the moment the last consumer leaves. */
32
- readonly lingerMs?: number;
57
+ readonly logger: GridStreamLogger;
58
+ readonly acquireSource: (deviceId: number) => Promise<GridSourceHandle>;
59
+ readonly releaseSource: (pipelineKey: string) => Promise<void>;
60
+ readonly startChild: (plan: GridStreamPlan, sources: readonly GridSourceHandle[]) => Promise<GridStreamChild>;
61
+ /** Teardown debounce. `0` ⇒ tear down the moment the last consumer leaves. */
62
+ readonly lingerMs?: number;
33
63
  }
34
64
  export interface GridStreamConsumer {
35
- readonly onData: (chunk: Buffer) => void;
36
- /** Called once, with WHY, when this consumer's stream ends from our side. */
37
- readonly onClose: (reason: string) => void;
65
+ readonly onData: (chunk: Buffer) => void;
66
+ /** Called once, with WHY, when this consumer's stream ends from our side. */
67
+ readonly onClose: (reason: string) => void;
38
68
  }
39
69
  export interface GridStreamHold {
40
- close(): void;
70
+ close(): void;
41
71
  }
42
72
  export interface GridStreamSessionOptions {
43
- /** The COMPOSITE camera's device id — every log line here is tagged with it. */
44
- readonly deviceId: number;
45
- readonly deps: GridStreamSessionDeps;
46
- /**
47
- * The current composition, re-read on every cold start. `null` ⇒ the grid has
48
- * no cells yet, which is the normal state of a freshly created grid.
49
- */
50
- readonly resolvePlan: () => GridStreamPlan | null;
73
+ /** The COMPOSITE camera's device id — every log line here is tagged with it. */
74
+ readonly deviceId: number;
75
+ readonly deps: GridStreamSessionDeps;
76
+ /**
77
+ * The current composition, re-read on every cold start. `null` ⇒ the grid has
78
+ * no cells yet, which is the normal state of a freshly created grid.
79
+ */
80
+ readonly resolvePlan: () => GridStreamPlan | null;
51
81
  }
52
82
  export declare class GridStreamSession {
53
- private readonly options;
54
- private readonly consumers;
55
- /**
56
- * The FLV stream's describing bytes, and where each reader may start.
57
- *
58
- * Rebuilt with every cold start: a new child means a new header and a new
59
- * sequence header, and handing a reader the previous child's would decode
60
- * noise. See `flv-join.ts` for why FLV needs this and MPEG-TS did not.
61
- */
62
- private join;
63
- private running;
64
- private starting;
65
- private lingerTimer;
66
- private teardown;
67
- private disposed;
68
- constructor(options: GridStreamSessionOptions);
69
- private get logTags();
70
- /** The COMPOSITE camera's device id — what every log line about this grid is tagged with. */
71
- get deviceId(): number;
72
- isRunning(): boolean;
73
- consumerCount(): number;
74
- /** Resolves once any in-flight start or teardown has finished. For tests and shutdown. */
75
- settled(): Promise<void>;
76
- /**
77
- * Attach a consumer, starting the composition if this is the first one.
78
- *
79
- * @throws when the grid has nothing to compose, or a source could not be
80
- * acquired. Both are LOGGED before they are thrown: a branch that accepts a
81
- * consumer and then produces no media is exactly the branch that reads as
82
- * "nothing ever happened".
83
- */
84
- open(consumer: GridStreamConsumer): Promise<GridStreamHold>;
85
- /**
86
- * Attach to a composition that is ALREADY running, or refuse.
87
- *
88
- * The whole difference from {@link open} is the refusal, and the refusal is
89
- * the feature. A snapshot of a grid is a frame of the composition — which
90
- * only exists while something is watching it — and the operator's rule is
91
- * that producing a thumbnail must never be the reason N cameras get dialled.
92
- * `open()` would start the composition, acquire every source, and on a
93
- * battery camera that is a wake nobody asked for.
94
- *
95
- * `null` is a real answer: "there is no composition to take a frame from",
96
- * which the caller turns into the stored last frame, or into nothing.
97
- */
98
- openIfRunning(consumer: GridStreamConsumer): GridStreamHold | null;
99
- /** Forget a consumer AND the reader holding bytes on its behalf. */
100
- private dropConsumer;
101
- /**
102
- * The child ended on its own. Every consumer is told WHY — a stream that
103
- * simply stops is indistinguishable from a stalled one at the far end.
104
- */
105
- onChildEnded(reason: string): void;
106
- dispose(): Promise<void>;
107
- private ensureRunning;
108
- private startCold;
109
- private scheduleTeardownIfIdle;
110
- private cancelLinger;
111
- private stopNow;
112
- private releaseAll;
83
+ private readonly options;
84
+ private readonly consumers;
85
+ /**
86
+ * The FLV stream's describing bytes, and where each reader may start.
87
+ *
88
+ * Rebuilt with every cold start: a new child means a new header and a new
89
+ * sequence header, and handing a reader the previous child's would decode
90
+ * noise. See `flv-join.ts` for why FLV needs this and MPEG-TS did not.
91
+ */
92
+ private join;
93
+ private running;
94
+ private starting;
95
+ private lingerTimer;
96
+ private teardown;
97
+ private disposed;
98
+ constructor(options: GridStreamSessionOptions);
99
+ private get logTags();
100
+ /** The COMPOSITE camera's device id — what every log line about this grid is tagged with. */
101
+ get deviceId(): number;
102
+ isRunning(): boolean;
103
+ consumerCount(): number;
104
+ /** Resolves once any in-flight start or teardown has finished. For tests and shutdown. */
105
+ settled(): Promise<void>;
106
+ /**
107
+ * Attach a consumer, starting the composition if this is the first one.
108
+ *
109
+ * @throws when the grid has nothing to compose, or a source could not be
110
+ * acquired. Both are LOGGED before they are thrown: a branch that accepts a
111
+ * consumer and then produces no media is exactly the branch that reads as
112
+ * "nothing ever happened".
113
+ */
114
+ open(consumer: GridStreamConsumer): Promise<GridStreamHold>;
115
+ /**
116
+ * Attach to a composition that is ALREADY running, or refuse.
117
+ *
118
+ * The whole difference from {@link open} is the refusal, and the refusal is
119
+ * the feature. A snapshot of a grid is a frame of the composition — which
120
+ * only exists while something is watching it — and the operator's rule is
121
+ * that producing a thumbnail must never be the reason N cameras get dialled.
122
+ * `open()` would start the composition, acquire every source, and on a
123
+ * battery camera that is a wake nobody asked for.
124
+ *
125
+ * `null` is a real answer: "there is no composition to take a frame from",
126
+ * which the caller turns into the stored last frame, or into nothing.
127
+ */
128
+ openIfRunning(consumer: GridStreamConsumer): GridStreamHold | null;
129
+ /** Forget a consumer AND the reader holding bytes on its behalf. */
130
+ private dropConsumer;
131
+ /**
132
+ * The child ended on its own. Every consumer is told WHY — a stream that
133
+ * simply stops is indistinguishable from a stalled one at the far end.
134
+ */
135
+ onChildEnded(reason: string): void;
136
+ dispose(): Promise<void>;
137
+ private ensureRunning;
138
+ private startCold;
139
+ private scheduleTeardownIfIdle;
140
+ private cancelLinger;
141
+ private stopNow;
142
+ private releaseAll;
113
143
  }
@@ -1,50 +1,50 @@
1
1
  /**
2
- * One source's decoded tiles, of which only the LATEST is ever wanted.
3
- *
4
- * ## Why dropping is the point, not a compromise
5
- *
6
- * ffmpeg's `overlay` consumes one frame per input per output frame, so an input
7
- * that got ahead of another stays ahead for the life of the child — that is the
8
- * tile gap. A canvas asks a different question: "what does this camera look
9
- * like NOW". Everything behind the newest frame is not a backlog to work
10
- * through, it is history, and dropping it is what keeps every tile at the same
11
- * moment however unevenly their frames arrive.
12
- *
13
- * It is also the only bound on memory here. A decoder child that outruns the
14
- * output tick — or a tick that stalls — would otherwise grow an unbounded queue
15
- * of raw frames, and a raw frame is 345 KB at 640x360.
16
- *
17
- * ## The last frame is HELD
18
- *
19
- * A tick that finds nothing new redraws what was there. A tile must not blink
20
- * because a source was 40 ms late, and a source that has genuinely stopped is a
21
- * still picture — which is legible, and which the snapshot path already treats
22
- * as the honest answer for a camera that is not sending.
23
- */
2
+ * One source's decoded tiles, of which only the LATEST is ever wanted.
3
+ *
4
+ * ## Why dropping is the point, not a compromise
5
+ *
6
+ * ffmpeg's `overlay` consumes one frame per input per output frame, so an input
7
+ * that got ahead of another stays ahead for the life of the child — that is the
8
+ * tile gap. A canvas asks a different question: "what does this camera look
9
+ * like NOW". Everything behind the newest frame is not a backlog to work
10
+ * through, it is history, and dropping it is what keeps every tile at the same
11
+ * moment however unevenly their frames arrive.
12
+ *
13
+ * It is also the only bound on memory here. A decoder child that outruns the
14
+ * output tick — or a tick that stalls — would otherwise grow an unbounded queue
15
+ * of raw frames, and a raw frame is 345 KB at 640x360.
16
+ *
17
+ * ## The last frame is HELD
18
+ *
19
+ * A tick that finds nothing new redraws what was there. A tile must not blink
20
+ * because a source was 40 ms late, and a source that has genuinely stopped is a
21
+ * still picture — which is legible, and which the snapshot path already treats
22
+ * as the honest answer for a camera that is not sending.
23
+ */
24
24
  export declare class GridTileFeed {
25
- private readonly frameBytes;
26
- private partial;
27
- private newest;
28
- private fresh;
29
- constructor(frameBytes: number);
30
- /** Feed bytes from the decoder. Any whole frames inside replace the newest. */
31
- push(chunk: Buffer): void;
32
- /** The newest whole frame, or `null` while none has arrived. */
33
- latest(): Buffer | null;
34
- /** Has a new frame arrived since the last {@link latest}? */
35
- hasFresh(): boolean;
36
- /**
37
- * Forget the half frame, keep the picture.
38
- *
39
- * Raw video has no framing: the feed cuts on a fixed length, so bytes from a
40
- * NEW decoder concatenated onto a partial frame from the old one would be
41
- * misaligned for ever — every frame after it sheared, with nothing to
42
- * re-sync on. Called whenever a tile's decoder is replaced.
43
- *
44
- * The newest frame is kept deliberately: the cell holds its last picture
45
- * while its decoder comes back, instead of blinking to black.
46
- */
47
- resetPartial(): void;
48
- /** For the bound in the spec: one frame plus at most a partial one. */
49
- bufferedBytes(): number;
25
+ private readonly frameBytes;
26
+ private partial;
27
+ private newest;
28
+ private fresh;
29
+ constructor(frameBytes: number);
30
+ /** Feed bytes from the decoder. Any whole frames inside replace the newest. */
31
+ push(chunk: Buffer): void;
32
+ /** The newest whole frame, or `null` while none has arrived. */
33
+ latest(): Buffer | null;
34
+ /** Has a new frame arrived since the last {@link latest}? */
35
+ hasFresh(): boolean;
36
+ /**
37
+ * Forget the half frame, keep the picture.
38
+ *
39
+ * Raw video has no framing: the feed cuts on a fixed length, so bytes from a
40
+ * NEW decoder concatenated onto a partial frame from the old one would be
41
+ * misaligned for ever — every frame after it sheared, with nothing to
42
+ * re-sync on. Called whenever a tile's decoder is replaced.
43
+ *
44
+ * The newest frame is kept deliberately: the cell holds its last picture
45
+ * while its decoder comes back, instead of blinking to black.
46
+ */
47
+ resetPartial(): void;
48
+ /** For the bound in the spec: one frame plus at most a partial one. */
49
+ bufferedBytes(): number;
50
50
  }