@camstack/system 1.2.390 → 1.2.392

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/addon-utils.js +1 -1
  7. package/dist/addon-utils.mjs +1 -1
  8. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  9. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  10. package/dist/amd-npu-B-QyyMyF.js +53 -0
  11. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  12. package/dist/auth/admin-token-manager.d.ts +37 -67
  13. package/dist/auth/api-key-manager.d.ts +8 -8
  14. package/dist/auth/auth-audit-log.d.ts +29 -49
  15. package/dist/auth/auth-manager.d.ts +127 -126
  16. package/dist/auth/cidr.d.ts +8 -8
  17. package/dist/auth/external-identity-manager.d.ts +46 -34
  18. package/dist/auth/jwt-signing-key.d.ts +14 -14
  19. package/dist/auth/login-session-manager.d.ts +95 -135
  20. package/dist/auth/parse-record.d.ts +13 -13
  21. package/dist/auth/scope-matcher.d.ts +7 -7
  22. package/dist/auth/scoped-token-manager.d.ts +62 -62
  23. package/dist/auth/token-expiry.d.ts +49 -26
  24. package/dist/auth/totp-manager.d.ts +48 -48
  25. package/dist/auth/user-management-internal.d.ts +67 -52
  26. package/dist/auth/user-manager.d.ts +58 -58
  27. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  28. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  29. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  30. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  31. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  32. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  33. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  34. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  35. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  36. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  37. package/dist/builtins/alerts/alerts.addon.js +1 -1
  38. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  39. package/dist/builtins/alerts/device-label.d.ts +6 -6
  40. package/dist/builtins/alerts/index.d.ts +1 -1
  41. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  42. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  43. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  44. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  45. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  46. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  47. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  48. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  49. package/dist/builtins/autotrack/index.d.ts +2 -2
  50. package/dist/builtins/autotrack/index.js +1 -1
  51. package/dist/builtins/autotrack/index.mjs +1 -1
  52. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  53. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  54. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  57. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  58. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  59. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  60. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  61. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  62. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  63. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  64. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  65. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  66. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  67. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  68. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  69. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  70. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  71. package/dist/builtins/calendars/calendars.addon.js +1 -1
  72. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  73. package/dist/builtins/calendars/index.d.ts +1 -1
  74. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  75. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  76. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  77. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  78. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  79. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  80. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  81. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  82. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  83. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  84. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  85. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  86. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  87. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  88. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  89. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  90. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  91. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  92. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  93. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  94. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  95. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  96. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  97. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  98. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  99. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  100. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  101. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  102. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  103. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  104. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  105. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  106. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  107. package/dist/builtins/camera-grid/index.d.ts +44 -44
  108. package/dist/builtins/camera-grid/index.js +1 -1
  109. package/dist/builtins/camera-grid/index.mjs +1 -1
  110. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  111. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  112. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  113. package/dist/builtins/composer/composed-device.d.ts +39 -17
  114. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  115. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  116. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  117. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  118. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  119. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  120. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  121. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  122. package/dist/builtins/composer/composer.addon.js +2 -2
  123. package/dist/builtins/composer/composer.addon.mjs +2 -2
  124. package/dist/builtins/composer/composer.d.ts +145 -100
  125. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  126. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  127. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  128. package/dist/builtins/composer/composition-target.d.ts +38 -34
  129. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  130. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  131. package/dist/builtins/composer/existing-target.d.ts +90 -73
  132. package/dist/builtins/composer/field-record.d.ts +26 -19
  133. package/dist/builtins/composer/graft-host.d.ts +56 -32
  134. package/dist/builtins/composer/held-claims.d.ts +26 -9
  135. package/dist/builtins/composer/index.d.ts +1 -1
  136. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  137. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  138. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  139. package/dist/builtins/composer/source-readings.d.ts +67 -61
  140. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  141. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  142. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  143. package/dist/builtins/console-logging/index.d.ts +3 -3
  144. package/dist/builtins/console-logging/index.js +1 -1
  145. package/dist/builtins/console-logging/index.mjs +1 -1
  146. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  147. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  148. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  149. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  150. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  151. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  152. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  153. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  154. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  155. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  156. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  157. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  158. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  159. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  160. package/dist/builtins/core-blocks/index.d.ts +8 -8
  161. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  162. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  163. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  164. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  165. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  166. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  167. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  168. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  169. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  170. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  171. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  172. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  173. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  174. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  175. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  176. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  177. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  178. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  179. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  180. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  181. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  182. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  183. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  184. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  185. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  186. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  187. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  188. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  189. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  190. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  191. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  192. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  193. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  194. package/dist/builtins/device-manager/index.d.ts +2 -2
  195. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  196. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  197. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  198. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  199. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  200. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  201. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  202. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  203. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  204. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  205. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  206. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  207. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  208. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  209. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  210. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  211. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  212. package/dist/builtins/hub-forwarder/index.js +1 -1
  213. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  214. package/dist/builtins/keychain/index.d.ts +1 -1
  215. package/dist/builtins/keychain/index.js +3 -3
  216. package/dist/builtins/keychain/index.mjs +3 -3
  217. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  218. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  219. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  220. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  221. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  222. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  223. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  224. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  225. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  226. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  227. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  228. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  229. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  230. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  231. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  232. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  233. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  234. package/dist/builtins/local-auth/index.d.ts +1 -1
  235. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  236. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  237. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  238. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  239. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  240. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  241. package/dist/builtins/local-network/address-book.d.ts +61 -36
  242. package/dist/builtins/local-network/index.d.ts +2 -2
  243. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  244. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  245. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  246. package/dist/builtins/local-network/local-network.addon.js +1 -1
  247. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  248. package/dist/builtins/loki-logging/index.d.ts +4 -4
  249. package/dist/builtins/loki-logging/index.js +1 -1
  250. package/dist/builtins/loki-logging/index.mjs +1 -1
  251. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  252. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  253. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  254. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  255. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  256. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  257. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  258. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  259. package/dist/builtins/native-metrics/index.d.ts +2 -2
  260. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  261. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  262. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  263. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  264. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  265. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  266. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  267. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  268. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  269. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  270. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  271. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  272. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  273. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  274. package/dist/builtins/platform-probe/index.d.ts +38 -30
  275. package/dist/builtins/platform-probe/index.js +59 -22
  276. package/dist/builtins/platform-probe/index.mjs +59 -22
  277. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  278. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  279. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  280. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  281. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  282. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  283. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  284. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  285. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  286. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  287. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  288. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  289. package/dist/builtins/snapshot/index.d.ts +2 -2
  290. package/dist/builtins/snapshot/index.js +1 -1
  291. package/dist/builtins/snapshot/index.mjs +1 -1
  292. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  293. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  294. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  295. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  296. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  297. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  298. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  299. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  300. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  301. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  302. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  303. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  304. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  305. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  306. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  307. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  308. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  309. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  310. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  311. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  312. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  313. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  314. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  315. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  316. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  317. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  318. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  319. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  320. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  321. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  322. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  323. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  324. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  325. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  326. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  327. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  328. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  329. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  330. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  331. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  332. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  333. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  334. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  335. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  336. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  337. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  338. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  339. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  340. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  341. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  342. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  343. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  344. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  345. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  346. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  347. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  348. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  349. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  350. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  351. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  352. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  353. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  354. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  355. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  356. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  357. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  358. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  359. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  360. package/dist/builtins/system-config/index.d.ts +2 -2
  361. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  362. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  363. package/dist/builtins/system-config/system-config.addon.js +39 -35
  364. package/dist/builtins/system-config/system-config.addon.mjs +320 -316
  365. package/dist/builtins/winston-logging/index.d.ts +3 -3
  366. package/dist/builtins/winston-logging/index.js +1 -1
  367. package/dist/builtins/winston-logging/index.mjs +1 -1
  368. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  369. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  370. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Nx-lrlHR.js} +19 -1
  371. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
  372. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
  373. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
  374. package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
  375. package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
  376. package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
  377. package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -1
  378. package/dist/download/hosted-model-revisions.d.ts +8 -8
  379. package/dist/download/model-download-service.d.ts +32 -32
  380. package/dist/download/model-downloader.d.ts +88 -88
  381. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
  382. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
  383. package/dist/events/event-bus.d.ts +6 -6
  384. package/dist/events/system-event-bus.d.ts +11 -11
  385. package/dist/feature/feature-manager.d.ts +6 -6
  386. package/dist/http/asset-compression.d.ts +35 -73
  387. package/dist/http/authenticated-file-server.d.ts +32 -32
  388. package/dist/http/data-plane-registry.d.ts +49 -39
  389. package/dist/http/file-data-plane.d.ts +14 -14
  390. package/dist/http/lan-http-bind.d.ts +24 -13
  391. package/dist/http/reverse-proxy.d.ts +36 -24
  392. package/dist/index.d.ts +137 -137
  393. package/dist/index.js +9 -8
  394. package/dist/index.mjs +7 -9
  395. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
  396. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
  397. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  398. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  399. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  400. package/dist/kernel/addon-installer.d.ts +609 -609
  401. package/dist/kernel/addon-loader.d.ts +133 -133
  402. package/dist/kernel/addon-manifest.d.ts +118 -118
  403. package/dist/kernel/addon-residue.d.ts +28 -32
  404. package/dist/kernel/array-buffer-census.d.ts +84 -88
  405. package/dist/kernel/bootstrap-config.d.ts +3 -3
  406. package/dist/kernel/cap-router-builder.d.ts +145 -101
  407. package/dist/kernel/capability-handle.d.ts +41 -41
  408. package/dist/kernel/capability-registry.d.ts +588 -576
  409. package/dist/kernel/config-manager.d.ts +199 -199
  410. package/dist/kernel/config-schema.d.ts +132 -128
  411. package/dist/kernel/custom-action-registry.d.ts +25 -25
  412. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  413. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  414. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  415. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  416. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  417. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  418. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  419. package/dist/kernel/deps/npm-command.d.ts +45 -45
  420. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  421. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  422. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  423. package/dist/kernel/device-registry.d.ts +27 -27
  424. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  425. package/dist/kernel/event-plane-report.d.ts +174 -174
  426. package/dist/kernel/fs-utils.d.ts +70 -70
  427. package/dist/kernel/gc-census.d.ts +119 -119
  428. package/dist/kernel/heap-spaces.d.ts +87 -87
  429. package/dist/kernel/heap-watch.d.ts +706 -706
  430. package/dist/kernel/host-externals.d.ts +8 -8
  431. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  432. package/dist/kernel/index.d.ts +115 -113
  433. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  434. package/dist/kernel/infra-capabilities.d.ts +7 -7
  435. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  436. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  437. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  438. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  439. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  440. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  441. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  442. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  443. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  444. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  445. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  446. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  447. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  448. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  449. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  450. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  451. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  452. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  453. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  454. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  455. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  456. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  457. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  458. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  459. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  460. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  461. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  462. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  463. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  464. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  465. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  466. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  467. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  468. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  469. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  470. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  471. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  472. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  473. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  474. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  475. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  476. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  477. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  478. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  479. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  480. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  481. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  482. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  483. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  484. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  485. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  486. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  487. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  488. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  489. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  490. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  491. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  492. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  493. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  494. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  495. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  496. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  497. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  498. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  499. package/dist/kernel/process-cpu-census.d.ts +55 -55
  500. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  501. package/dist/kernel/restart-coordinator.d.ts +71 -71
  502. package/dist/kernel/settings-door-view.d.ts +36 -25
  503. package/dist/kernel/settings-read-error.d.ts +29 -31
  504. package/dist/kernel/settings-view-types.d.ts +100 -95
  505. package/dist/kernel/socket-plane-report.d.ts +214 -153
  506. package/dist/kernel/status-overlay.d.ts +31 -11
  507. package/dist/kernel/storage-location-registry.d.ts +50 -50
  508. package/dist/kernel/store-settings-view.d.ts +13 -13
  509. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  510. package/dist/kernel/system-settings-policy.d.ts +15 -34
  511. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  512. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  513. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  514. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  515. package/dist/kernel/transport/cap-route.d.ts +139 -139
  516. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  517. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  518. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  519. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  520. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  521. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  522. package/dist/kernel/transport/index.d.ts +36 -36
  523. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  524. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  525. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  526. package/dist/kernel/transport/local-transport.d.ts +92 -92
  527. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  528. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  529. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  530. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  531. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  532. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  533. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  534. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  535. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  536. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  537. package/dist/kernel/workspace-detect.d.ts +7 -7
  538. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  539. package/dist/logging/formatter.d.ts +52 -25
  540. package/dist/logging/log-manager.d.ts +133 -133
  541. package/dist/logging/log-redactor.d.ts +22 -1
  542. package/dist/logging/log-ring-buffer.d.ts +57 -57
  543. package/dist/logging/logging-gate.d.ts +69 -25
  544. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  545. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  546. package/dist/logging/scoped-logger.d.ts +14 -14
  547. package/dist/network/network-quality.d.ts +8 -8
  548. package/dist/notification/notification-service.d.ts +37 -37
  549. package/dist/notification/toast-service.d.ts +18 -18
  550. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  551. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  552. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  553. package/dist/process/proc-stat.d.ts +51 -51
  554. package/dist/process/resource-monitor.d.ts +19 -19
  555. package/dist/python/python-env-manager.d.ts +10 -10
  556. package/dist/repl/interfaces.d.ts +21 -21
  557. package/dist/repl/repl-engine.d.ts +6 -6
  558. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
  559. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
  560. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
  561. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
  562. package/dist/storage/fs-storage-backend.d.ts +35 -35
  563. package/dist/storage/storage-location-manager.d.ts +21 -21
  564. package/dist/storage/storage-manager.d.ts +68 -68
  565. package/dist/tls/boot-tls.d.ts +24 -24
  566. package/dist/tls/cert-evaluation.d.ts +25 -25
  567. package/dist/tls/cert-identity.d.ts +39 -39
  568. package/dist/tls/cert-issue.d.ts +37 -17
  569. package/dist/tls/cert-manager.d.ts +86 -84
  570. package/dist/tls/https-listener.d.ts +16 -16
  571. package/dist/tls/index.d.ts +8 -8
  572. package/dist/tls/tls-actions.d.ts +18 -18
  573. package/dist/tls/tls-status.d.ts +15 -15
  574. package/dist/tls/uploaded-cert.d.ts +9 -9
  575. package/package.json +9 -3
@@ -1,27 +1,53 @@
1
- import { spawn as nodeSpawn } from 'node:child_process';
2
- import { GridStreamLogger } from './grid-stream-session.js';
1
+ /**
2
+ * ONE JPEG out of a composition that is already running.
3
+ *
4
+ * ## Why this is not the ffmpeg primitive
5
+ *
6
+ * `FfmpegProcess` + `buildFfmpegArgs` own the STREAM job: a long-lived encode
7
+ * with a hardware cascade, a first-data deadline and a bounded restart. This is
8
+ * the other kind — run-to-completion, no encode plan worth sharing, finishes or
9
+ * is killed — which is the class `scripts/check-ffmpeg-primitive.ts` already
10
+ * carves out by name for `recorder/still/still-frame-service.ts` ("single-JPEG
11
+ * still grab") and `builtins/snapshot/snapshot.addon.ts` ("keyframe snapshot
12
+ * grab"). It is the same job as those two, on a pipe instead of a URL.
13
+ *
14
+ * ## Why a pipe and not the grid's own URL
15
+ *
16
+ * Dialling the relay would be a CONSUMER, and a consumer of a cold grid starts
17
+ * the composition — N broker acquisitions for a thumbnail, which is the one
18
+ * thing the operator ruled out. Reading the bytes of a session that is ALREADY
19
+ * running costs nothing: the child is up, the packets are being produced, and
20
+ * this just takes a copy of them.
21
+ *
22
+ * Bounded on both ends. A composition whose first key frame is far away must
23
+ * not hold an ffmpeg (or this promise) open for ever, so the grab has a
24
+ * deadline and the child is killed at it — a snapshot that did not arrive is
25
+ * `null`, and `null` is a real answer.
26
+ */
27
+ import { spawn as nodeSpawn } from "node:child_process";
28
+ import type { GridStreamLogger } from "./grid-stream-session.js";
3
29
  export type GridSpawn = typeof nodeSpawn;
4
30
  export interface GridFrameSamplerOptions {
5
- readonly binaryPath: string;
6
- readonly logger: GridStreamLogger;
7
- readonly timeoutMs?: number;
8
- /** Injectable for tests. */
9
- readonly spawnFn?: GridSpawn;
31
+ readonly binaryPath: string;
32
+ readonly logger: GridStreamLogger;
33
+ readonly timeoutMs?: number;
34
+ /** Injectable for tests. */
35
+ readonly spawnFn?: GridSpawn;
10
36
  }
11
37
  /** How a caller feeds the sampler: it hands over chunks and a way to stop. */
12
38
  export interface GridFrameSource {
13
- /** Start receiving MPEG-TS chunks. Returns the handle that stops them. */
14
- attach(onChunk: (chunk: Buffer) => void): {
15
- close(): void;
16
- } | null;
39
+ /** Start receiving MPEG-TS chunks. Returns the handle that stops them. */
40
+ attach(onChunk: (chunk: Buffer) => void): {
41
+ close(): void;
42
+ } | null;
17
43
  }
18
44
  export declare class GridFrameSampler {
19
- private readonly options;
20
- constructor(options: GridFrameSamplerOptions);
21
- /**
22
- * @returns the JPEG, or `null` — a grab that produced nothing, could not be
23
- * attached, or ran out of time. Every one of those is logged with the
24
- * device: a branch that accepts the request and produces nothing must say so.
25
- */
26
- sample(deviceId: number, source: GridFrameSource): Promise<Buffer | null>;
45
+ private readonly options;
46
+ constructor(options: GridFrameSamplerOptions);
47
+ /**
48
+ * @returns the JPEG, or `null` — a grab that produced nothing, could not be
49
+ * attached, or ran out of time. Every one of those is logged with the
50
+ * device: a branch that accepts the request and produces nothing must say so.
51
+ */
52
+ sample(deviceId: number, source: GridFrameSource): Promise<Buffer | null>;
27
53
  }
@@ -1,52 +1,22 @@
1
- import { z } from 'zod';
2
- /**
3
- * One source camera, the part of its picture taken, and where that part lands
4
- * on the composite's canvas. Both rectangles are NORMALIZED so a source that
5
- * changes resolution does not silently start cutting the wrong region.
6
- */
7
- declare const GridCellSchema: z.ZodObject<{
8
- deviceId: z.ZodNumber;
9
- source: z.ZodObject<{
10
- x: z.ZodNumber;
11
- y: z.ZodNumber;
12
- width: z.ZodNumber;
13
- height: z.ZodNumber;
14
- }, z.core.$strip>;
15
- cell: z.ZodObject<{
16
- x: z.ZodNumber;
17
- y: z.ZodNumber;
18
- width: z.ZodNumber;
19
- height: z.ZodNumber;
20
- }, z.core.$strip>;
21
- }, z.core.$strip>;
22
- export type GridCellConfig = z.infer<typeof GridCellSchema>;
23
- declare const GridInstanceSchema: z.ZodObject<{
24
- id: z.ZodString;
25
- cameraStableId: z.ZodString;
26
- name: z.ZodString;
27
- enabled: z.ZodBoolean;
28
- fps: z.ZodNumber;
29
- publishedProfiles: z.ZodDefault<z.ZodArray<z.ZodEnum<{
30
- high: "high";
31
- mid: "mid";
32
- low: "low";
33
- }>>>;
34
- cells: z.ZodDefault<z.ZodArray<z.ZodObject<{
35
- deviceId: z.ZodNumber;
36
- source: z.ZodObject<{
37
- x: z.ZodNumber;
38
- y: z.ZodNumber;
39
- width: z.ZodNumber;
40
- height: z.ZodNumber;
41
- }, z.core.$strip>;
42
- cell: z.ZodObject<{
43
- x: z.ZodNumber;
44
- y: z.ZodNumber;
45
- width: z.ZodNumber;
46
- height: z.ZodNumber;
47
- }, z.core.$strip>;
48
- }, z.core.$strip>>>;
49
- }, z.core.$strip>;
50
- export type GridInstance = z.infer<typeof GridInstanceSchema>;
1
+ type NormalizedRect = {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ };
7
+ export type GridCellConfig = {
8
+ deviceId: number;
9
+ source: NormalizedRect;
10
+ cell: NormalizedRect;
11
+ };
12
+ export type GridInstance = {
13
+ id: string;
14
+ cameraStableId: string;
15
+ name: string;
16
+ enabled: boolean;
17
+ fps: number;
18
+ publishedProfiles: Array<"high" | "mid" | "low">;
19
+ cells: GridCellConfig[];
20
+ };
51
21
  export declare function readGridInstances(raw: readonly Record<string, unknown>[], onInvalid?: (message: string) => void): readonly GridInstance[];
52
22
  export {};
@@ -1,58 +1,58 @@
1
- import { GridLastFrameStore } from './grid-snapshot.js';
2
- import { GridStreamLogger } from './grid-stream-session.js';
1
+ import type { GridLastFrameStore } from "./grid-snapshot.js";
2
+ import type { GridStreamLogger } from "./grid-stream-session.js";
3
3
  /**
4
- * Exactly the filesystem this store touches, so a caller can hand it a
5
- * different one and a spec can hand it a broken one.
6
- *
7
- * The four calls are `node:fs/promises`' own shapes, narrowed to the single
8
- * overload used here — that is what makes `promises` assignable to it with no
9
- * cast.
10
- */
4
+ * Exactly the filesystem this store touches, so a caller can hand it a
5
+ * different one and a spec can hand it a broken one.
6
+ *
7
+ * The four calls are `node:fs/promises`' own shapes, narrowed to the single
8
+ * overload used here — that is what makes `promises` assignable to it with no
9
+ * cast.
10
+ */
11
11
  export interface GridFrameFs {
12
- mkdir(dir: string, options: {
13
- readonly recursive: true;
14
- }): Promise<string | undefined>;
15
- writeFile(path: string, data: Buffer): Promise<void>;
16
- rename(from: string, to: string): Promise<void>;
17
- readFile(path: string): Promise<Buffer>;
12
+ mkdir(dir: string, options: {
13
+ readonly recursive: true;
14
+ }): Promise<string | undefined>;
15
+ writeFile(path: string, data: Buffer): Promise<void>;
16
+ rename(from: string, to: string): Promise<void>;
17
+ readFile(path: string): Promise<Buffer>;
18
18
  }
19
19
  export interface GridLastFrameFileStoreOptions {
20
- /** `ctx.dataDir` — the addon's exclusive directory. */
21
- readonly dataDir: string;
22
- /** Where a dropped frame is named. A silent drop reads as "never happened". */
23
- readonly logger: GridStreamLogger;
24
- readonly minIntervalMs?: number;
25
- /** Injectable for tests; `Date.now` otherwise. */
26
- readonly now?: () => number;
27
- /** Injectable for tests; `node:fs/promises` otherwise. */
28
- readonly fs?: GridFrameFs;
29
- /** The bound on how long the caller waits on the disk. */
30
- readonly deadlineMs?: number;
20
+ /** `ctx.dataDir` — the addon's exclusive directory. */
21
+ readonly dataDir: string;
22
+ /** Where a dropped frame is named. A silent drop reads as "never happened". */
23
+ readonly logger: GridStreamLogger;
24
+ readonly minIntervalMs?: number;
25
+ /** Injectable for tests; `Date.now` otherwise. */
26
+ readonly now?: () => number;
27
+ /** Injectable for tests; `node:fs/promises` otherwise. */
28
+ readonly fs?: GridFrameFs;
29
+ /** The bound on how long the caller waits on the disk. */
30
+ readonly deadlineMs?: number;
31
31
  }
32
32
  export declare class GridLastFrameFileStore implements GridLastFrameStore {
33
- private readonly dir;
34
- private readonly minIntervalMs;
35
- private readonly now;
36
- private readonly fs;
37
- private readonly deadlineMs;
38
- private readonly logger;
39
- /** Last write per device, so the throttle survives without touching disk. */
40
- private readonly lastWriteMs;
41
- constructor(options: GridLastFrameFileStoreOptions);
42
- put(deviceId: number, jpeg: Buffer): Promise<void>;
43
- get(deviceId: number): Promise<Buffer | null>;
44
- /**
45
- * Run one piece of disk work, and answer `fallback` whether it REFUSES or
46
- * never answers at all.
47
- *
48
- * The `try/catch` this replaces covered only the first of those. Measured on
49
- * the CI runner (Linux, root, in a container) 2026-09-20: `fs.mkdir` with
50
- * `recursive: true` under a parent that cannot hold a directory never
51
- * settles — procfs answers ENOENT and Node's recursive mkdir retries the
52
- * child forever — and `put` is AWAITED on the snapshot answer path, so the
53
- * grid's snapshot RPC never answered either. An exception is not the only
54
- * way the disk says no.
55
- */
56
- private bounded;
57
- private pathFor;
33
+ private readonly dir;
34
+ private readonly minIntervalMs;
35
+ private readonly now;
36
+ private readonly fs;
37
+ private readonly deadlineMs;
38
+ private readonly logger;
39
+ /** Last write per device, so the throttle survives without touching disk. */
40
+ private readonly lastWriteMs;
41
+ constructor(options: GridLastFrameFileStoreOptions);
42
+ put(deviceId: number, jpeg: Buffer): Promise<void>;
43
+ get(deviceId: number): Promise<Buffer | null>;
44
+ /**
45
+ * Run one piece of disk work, and answer `fallback` whether it REFUSES or
46
+ * never answers at all.
47
+ *
48
+ * The `try/catch` this replaces covered only the first of those. Measured on
49
+ * the CI runner (Linux, root, in a container) 2026-09-20: `fs.mkdir` with
50
+ * `recursive: true` under a parent that cannot hold a directory never
51
+ * settles — procfs answers ENOENT and Node's recursive mkdir retries the
52
+ * child forever — and `put` is AWAITED on the snapshot answer path, so the
53
+ * grid's snapshot RPC never answered either. An exception is not the only
54
+ * way the disk says no.
55
+ */
56
+ private bounded;
57
+ private pathFor;
58
58
  }
@@ -1,8 +1,34 @@
1
- import { GridLayoutPatch, GridLayoutView, ICameraGridLayoutSettingsProvider } from '@camstack/types';
1
+ /**
2
+ * The `camera-grid-layout` provider, contribution included.
3
+ *
4
+ * ## Why the section lives on the DEVICE provider and not on the addon
5
+ *
6
+ * `camera-grid-layout` is registered per device, through
7
+ * `DeviceContext.registerNativeCap`. `child-cap-dispatch` resolves a call that
8
+ * carries a `deviceId` to the device-scoped provider FIRST, and when the method
9
+ * is absent there it throws rather than falling back to the singleton — the
10
+ * fallback exists only for a collection cap's list method. Every contribution
11
+ * method carries a `deviceId` by definition, so an addon-level wrapper is
12
+ * simply never reached: it registered, it type-checked, and the live hub
13
+ * answered HTTP 500 with
14
+ * `method 'getDeviceSettingsContribution' not found on provider
15
+ * 'camera-grid-layout'`.
16
+ *
17
+ * That is why the whole provider is built here, in one place, and handed to
18
+ * `registerNativeCap` as a single object. `exposesDeviceSettings` widens
19
+ * `InferProvider` and not `InferNativeProvider`, so the type below is the wider
20
+ * one; registering it is safe because a native registration only ever needs a
21
+ * SUBSET of what this carries.
22
+ *
23
+ * The refusal (D526) rides along: a device the addon cannot name as a grid gets
24
+ * `null`, so a camera that is not a grid gets no section at all rather than a
25
+ * panel that renders its own emptiness.
26
+ */
27
+ import { type GridLayoutPatch, type GridLayoutView, type ICameraGridLayoutSettingsProvider } from "@camstack/types";
2
28
  /** What the provider needs from the running addon — nothing more. */
3
29
  export interface GridLayoutSource {
4
- /** The grid behind a device, or `null` — "answered: not a grid". */
5
- getLayout(deviceId: number): GridLayoutView | null;
6
- saveLayout(patch: GridLayoutPatch): Promise<GridLayoutView>;
30
+ /** The grid behind a device, or `null` — "answered: not a grid". */
31
+ getLayout(deviceId: number): GridLayoutView | null;
32
+ saveLayout(patch: GridLayoutPatch): Promise<GridLayoutView>;
7
33
  }
8
34
  export declare function buildGridLayoutNativeProvider(source: GridLayoutSource): ICameraGridLayoutSettingsProvider;
@@ -1,24 +1,34 @@
1
- import { FfmpegVideoEncoderId } from '@camstack/types';
2
- import { GridInstance } from './grid-instances.js';
3
- import { GridStreamPlan } from './grid-stream-session.js';
1
+ /**
2
+ * A persisted grid row → the composition plan the stream session runs.
3
+ *
4
+ * The one piece of real work here is the source→ordinal mapping. The operator
5
+ * authors cells against CAMERAS; ffmpeg addresses them by INPUT ORDINAL, and a
6
+ * camera used by two cells must be ONE input. Two views of one camera — a wide
7
+ * shot and a crop of the same street — is the case a composite is asked for
8
+ * most often, and decoding it twice doubles the expensive half of the job for
9
+ * no extra picture.
10
+ */
11
+ import type { FfmpegVideoEncoderId } from "@camstack/types";
12
+ import type { GridInstance } from "./grid-instances.js";
13
+ import type { GridStreamPlan } from "./grid-stream-session.js";
4
14
  export interface GridPlanEncodeContext {
5
- readonly encoder: FfmpegVideoEncoderId;
6
- readonly decodeHwAccel: string | null;
7
- /**
8
- * The canvas to compose onto. REQUIRED, and never authored: each profile
9
- * derives its own from the cells and its sources' size
10
- * (`grid-canvas-derivation.ts`). It used to fall back to two numbers the
11
- * operator typed into the editor, and that field is gone — it silently
12
- * decided both what the composite cost and how sharp it was.
13
- *
14
- * The geometry needs no second version of itself: every rectangle is
15
- * normalized on both sides (D519), so the same fractions land correctly on a
16
- * canvas of any size.
17
- */
18
- readonly canvas: {
19
- readonly width: number;
20
- readonly height: number;
21
- };
15
+ readonly encoder: FfmpegVideoEncoderId;
16
+ readonly decodeHwAccel: string | null;
17
+ /**
18
+ * The canvas to compose onto. REQUIRED, and never authored: each profile
19
+ * derives its own from the cells and its sources' size
20
+ * (`grid-canvas-derivation.ts`). It used to fall back to two numbers the
21
+ * operator typed into the editor, and that field is gone — it silently
22
+ * decided both what the composite cost and how sharp it was.
23
+ *
24
+ * The geometry needs no second version of itself: every rectangle is
25
+ * normalized on both sides (D519), so the same fractions land correctly on a
26
+ * canvas of any size.
27
+ */
28
+ readonly canvas: {
29
+ readonly width: number;
30
+ readonly height: number;
31
+ };
22
32
  }
23
33
  /** `null` when the grid has nothing to compose — the normal freshly-created state. */
24
34
  export declare function gridPlanFor(instance: GridInstance, encode: GridPlanEncodeContext): GridStreamPlan | null;
@@ -1,13 +1,53 @@
1
- import { CamProfile } from '@camstack/types';
2
- import { PixelSize } from './grid-canvas.js';
3
- import { NormalizedRect } from './grid-filter-graph.js';
4
1
  /**
5
- * One id per profile, for every grid, forever.
6
- *
7
- * D519's reason is what keeps `high`'s id bare: a newly-spelled id mints a
8
- * second cam-stream and orphans whatever profile assignment the operator had
9
- * made. `grid` was `high` on the live hub before any of this and still is.
10
- */
2
+ * A grid publishes one composition PER PROFILE, each made of the matching
3
+ * profile of every source, on the canvas that profile implies.
4
+ *
5
+ * ## The shape, and the two wrong ones before it
6
+ *
7
+ * D519 shipped a single `high` stream. Then came one composition per profile,
8
+ * on a SCALED copy of a canvas the operator typed in — and the operator's
9
+ * adaptive tore one down and built another at every rung, because each was a
10
+ * whole separate composition with its own decodes and its own key-frame waits
11
+ * (hub log, 2026-09-18: `mid` at 13:03:18, `low` at 13:03:28). D528 then
12
+ * collapsed it to ONE output to stop the rebuilds, and that lost the adaptive
13
+ * a rung to stand on.
14
+ *
15
+ * The rebuild was never the profiles' fault. It was that a rebuild used to mean
16
+ * a blank screen for as long as the slowest source took to produce a key frame.
17
+ * With the composition driven by an output clock (D530) a rebuild shows the
18
+ * picture at once and fills the cells in, so three matched profiles cost what
19
+ * they are worth and nothing more.
20
+ *
21
+ * ## 1:1, and the canvas follows
22
+ *
23
+ * A grid's `low` composes its sources' `low`; its `high` their `high`. Nothing
24
+ * is chosen and nothing is mapped — which is what lets a viewer's adaptive do
25
+ * its ordinary job without knowing a grid is a grid.
26
+ *
27
+ * The canvas is not typed in either: each profile derives its own from the
28
+ * cells and the sources' size AT THAT PROFILE (`grid-canvas-derivation.ts`).
29
+ * So the three outputs are each 1:1 with what they are made of, and the cost of
30
+ * a rung is the cost of the pictures in it.
31
+ *
32
+ * ## What is refused
33
+ *
34
+ * A profile is offered only when EVERY source serves it. Not "at least one": a
35
+ * cell whose source has no `low` cannot be filled, and a composition with a
36
+ * hole reads to an operator as a broken camera, not as an unassigned profile
37
+ * three cameras away. An UNKNOWN answer is a refusal, never an offer (D315).
38
+ * The refusal names the sources, because "the grid has no low" is not a finding
39
+ * — "615 has no low" is.
40
+ */
41
+ import type { CamProfile } from "@camstack/types";
42
+ import type { PixelSize } from "./grid-canvas.js";
43
+ import type { NormalizedRect } from "./grid-filter-graph.js";
44
+ /**
45
+ * One id per profile, for every grid, forever.
46
+ *
47
+ * D519's reason is what keeps `high`'s id bare: a newly-spelled id mints a
48
+ * second cam-stream and orphans whatever profile assignment the operator had
49
+ * made. `grid` was `high` on the live hub before any of this and still is.
50
+ */
11
51
  export declare const GRID_CAM_STREAM_ID = "grid";
12
52
  /** Every profile a grid can compose, in descending quality. */
13
53
  export declare const GRID_PROFILES: readonly CamProfile[];
@@ -15,50 +55,50 @@ export declare const GRID_PROFILES: readonly CamProfile[];
15
55
  export declare function gridCamStreamId(profile: CamProfile): string;
16
56
  /** One stream a camera serves, with the size the canvas is derived from. */
17
57
  export interface ServedProfile {
18
- readonly profile: CamProfile;
19
- readonly width: number;
20
- readonly height: number;
58
+ readonly profile: CamProfile;
59
+ readonly width: number;
60
+ readonly height: number;
21
61
  }
22
62
  /** One cell: which part of which source, and where it lands. */
23
63
  export interface GridSourceCell {
24
- readonly deviceId: number;
25
- readonly source: NormalizedRect;
26
- readonly cell: NormalizedRect;
64
+ readonly deviceId: number;
65
+ readonly source: NormalizedRect;
66
+ readonly cell: NormalizedRect;
27
67
  }
28
68
  export interface GridProfilePlansInput {
29
- readonly cells: readonly GridSourceCell[];
30
- /**
31
- * Which profiles the operator wants published. A profile that is not in here
32
- * is still SIZED and reported — the editor shows what it would come out as,
33
- * so turning it on is a decision made with the number in view — but it is not
34
- * offered to the broker.
35
- */
36
- readonly publishedProfiles: readonly CamProfile[];
37
- /**
38
- * Which streams this source serves, or `null` when nobody could say. `null`
39
- * is not an empty list: an unanswerable question is a refusal, and saying so
40
- * separately keeps "we did not ask" out of the catalog.
41
- */
42
- readonly profilesServedBy: (deviceId: number) => readonly ServedProfile[] | null;
69
+ readonly cells: readonly GridSourceCell[];
70
+ /**
71
+ * Which profiles the operator wants published. A profile that is not in here
72
+ * is still SIZED and reported — the editor shows what it would come out as,
73
+ * so turning it on is a decision made with the number in view — but it is not
74
+ * offered to the broker.
75
+ */
76
+ readonly publishedProfiles: readonly CamProfile[];
77
+ /**
78
+ * Which streams this source serves, or `null` when nobody could say. `null`
79
+ * is not an empty list: an unanswerable question is a refusal, and saying so
80
+ * separately keeps "we did not ask" out of the catalog.
81
+ */
82
+ readonly profilesServedBy: (deviceId: number) => readonly ServedProfile[] | null;
43
83
  }
44
84
  export type GridProfilePlan = {
45
- readonly profile: CamProfile;
46
- readonly offered: true;
47
- readonly canvas: PixelSize;
48
- /** False ⇒ serviceable, sized, and deliberately not published. */
49
- readonly published: boolean;
85
+ readonly profile: CamProfile;
86
+ readonly offered: true;
87
+ readonly canvas: PixelSize;
88
+ /** False ⇒ serviceable, sized, and deliberately not published. */
89
+ readonly published: boolean;
50
90
  } | {
51
- readonly profile: CamProfile;
52
- readonly offered: false;
53
- /** The sources that cannot serve it. Empty only when there are none at all. */
54
- readonly missingSources: readonly number[];
91
+ readonly profile: CamProfile;
92
+ readonly offered: false;
93
+ /** The sources that cannot serve it. Empty only when there are none at all. */
94
+ readonly missingSources: readonly number[];
55
95
  };
56
96
  /**
57
- * What this grid can honestly publish, per profile, with the canvas or the
58
- * refusal.
59
- *
60
- * Every profile gets a row whether it is offered or not: an absent row says
61
- * nothing, and the caller logging a refusal needs the reason more than the
62
- * caller publishing an offer needs the offer.
63
- */
97
+ * What this grid can honestly publish, per profile, with the canvas or the
98
+ * refusal.
99
+ *
100
+ * Every profile gets a row whether it is offered or not: an absent row says
101
+ * nothing, and the caller logging a refusal needs the reason more than the
102
+ * caller publishing an offer needs the offer.
103
+ */
64
104
  export declare function gridProfilePlans(input: GridProfilePlansInput): readonly GridProfilePlan[];
@@ -1,10 +1,10 @@
1
1
  export interface NormalizedGridRows {
2
- readonly rows: readonly Record<string, unknown>[];
3
- /** `true` when the rows differ from what was read, i.e. they must be persisted. */
4
- readonly changed: boolean;
2
+ readonly rows: readonly Record<string, unknown>[];
3
+ /** `true` when the rows differ from what was read, i.e. they must be persisted. */
4
+ readonly changed: boolean;
5
5
  }
6
6
  /**
7
- * @param mintId a UUID factory — injected so the normalization is testable
8
- * without reaching for `crypto`.
9
- */
7
+ * @param mintId a UUID factory — injected so the normalization is testable
8
+ * without reaching for `crypto`.
9
+ */
10
10
  export declare function normalizeGridRows(raw: readonly Record<string, unknown>[], mintId: () => string): NormalizedGridRows;
@@ -1,64 +1,64 @@
1
1
  /**
2
- * Which URL a grid dials for one source: the live stream, or the SENTRY one.
3
- *
4
- * ## What "sentryMuted" turned out to be
5
- *
6
- * The operator asked for a stream that *"non esiste ancora"* [does not exist yet]. It half did.
7
- * `SENTRY_PATH_SUFFIX` has existed since the sentry shipped. What did not exist is the
8
- * WRITER that turns an acquired restream url into that dial, and the broker
9
- * telling a consumer whether one is on offer. Both are now in
10
- * `addon-pipeline/src/stream-broker`: `withSentryIntent`, and `sentryUrl` on
11
- * the `getStreamWithCodec` result.
12
- *
13
- * ## It is NOT muted, and this comment used to say it was
14
- *
15
- * `parseRestreamPath` answered `muted: true` for `/sentry` when this was
16
- * written, and D525 changed it to `false` the next day: the mute belonged to
17
- * the PLACEHOLDER, not to the path. The track is announced and FILLED — silence
18
- * while the still picture is served, the camera's own RTP the instant media
19
- * flows — because a decision taken from a string is taken once and RTSP cannot
20
- * renegotiate, so `true` there meant a sentry consumer could never receive
21
- * audio, awake or asleep.
22
- *
23
- * A grid takes no audio from any source (`audio: 'none'`), so nothing about the
24
- * composite changes either way. The correction is here because the old sentence
25
- * described the design that was REPLACED, which is the one kind of comment that
26
- * reads as verification.
27
- *
28
- * ## The rule, and the fallback it refuses
29
- *
30
- * An offered sentry is TAKEN. There is no sleep check and no fallback, and that
31
- * is deliberate: "use the sentry if the camera is asleep, otherwise the live
32
- * stream" reads reasonable and is exactly the wake. Whether a battery camera is
33
- * asleep right now is a fact that changes between the read and the dial, and
34
- * the dial is what wakes it. The ONE question asked is the one the broker
35
- * already owns — is this camera offered a sentry at all — and the broker only
36
- * offers it to a battery camera that declares the signals cap.
37
- *
38
- * ## What the operator sees
39
- *
40
- * A cell whose source is asleep composes that camera's last picture, held, for
41
- * as long as it sleeps — visible, legible, and obviously not moving. The two
42
- * alternatives are the ones D519 and the sentry both exist to refuse: dropping
43
- * the cell (a hole an operator files as a broken grid) and dialling the camera
44
- * (eleven seconds of battery for five seconds of video, measured on device 640).
45
- */
2
+ * Which URL a grid dials for one source: the live stream, or the SENTRY one.
3
+ *
4
+ * ## What "sentryMuted" turned out to be
5
+ *
6
+ * The operator asked for a stream that *"non esiste ancora"* [does not exist yet]. It half did.
7
+ * `SENTRY_PATH_SUFFIX` has existed since the sentry shipped. What did not exist is the
8
+ * WRITER that turns an acquired restream url into that dial, and the broker
9
+ * telling a consumer whether one is on offer. Both are now in
10
+ * `addon-pipeline/src/stream-broker`: `withSentryIntent`, and `sentryUrl` on
11
+ * the `getStreamWithCodec` result.
12
+ *
13
+ * ## It is NOT muted, and this comment used to say it was
14
+ *
15
+ * `parseRestreamPath` answered `muted: true` for `/sentry` when this was
16
+ * written, and D525 changed it to `false` the next day: the mute belonged to
17
+ * the PLACEHOLDER, not to the path. The track is announced and FILLED — silence
18
+ * while the still picture is served, the camera's own RTP the instant media
19
+ * flows — because a decision taken from a string is taken once and RTSP cannot
20
+ * renegotiate, so `true` there meant a sentry consumer could never receive
21
+ * audio, awake or asleep.
22
+ *
23
+ * A grid takes no audio from any source (`audio: 'none'`), so nothing about the
24
+ * composite changes either way. The correction is here because the old sentence
25
+ * described the design that was REPLACED, which is the one kind of comment that
26
+ * reads as verification.
27
+ *
28
+ * ## The rule, and the fallback it refuses
29
+ *
30
+ * An offered sentry is TAKEN. There is no sleep check and no fallback, and that
31
+ * is deliberate: "use the sentry if the camera is asleep, otherwise the live
32
+ * stream" reads reasonable and is exactly the wake. Whether a battery camera is
33
+ * asleep right now is a fact that changes between the read and the dial, and
34
+ * the dial is what wakes it. The ONE question asked is the one the broker
35
+ * already owns — is this camera offered a sentry at all — and the broker only
36
+ * offers it to a battery camera that declares the signals cap.
37
+ *
38
+ * ## What the operator sees
39
+ *
40
+ * A cell whose source is asleep composes that camera's last picture, held, for
41
+ * as long as it sleeps — visible, legible, and obviously not moving. The two
42
+ * alternatives are the ones D519 and the sentry both exist to refuse: dropping
43
+ * the cell (a hole an operator files as a broken grid) and dialling the camera
44
+ * (eleven seconds of battery for five seconds of video, measured on device 640).
45
+ */
46
46
  /** What `streamBroker.getStreamWithCodec` handed back for one source. */
47
47
  export interface GridSourceAcquisition {
48
- readonly url: string;
49
- /**
50
- * The sentry counterpart, when the BROKER offers one. Absent and `null` mean
51
- * the same thing — this camera has no sentry — and neither is ever resolved
52
- * into the live url by guessing.
53
- */
54
- readonly sentryUrl?: string | null;
55
- readonly pipelineKey: string;
48
+ readonly url: string;
49
+ /**
50
+ * The sentry counterpart, when the BROKER offers one. Absent and `null` mean
51
+ * the same thing — this camera has no sentry — and neither is ever resolved
52
+ * into the live url by guessing.
53
+ */
54
+ readonly sentryUrl?: string | null;
55
+ readonly pipelineKey: string;
56
56
  }
57
57
  export interface GridSourceDial {
58
- readonly url: string;
59
- /** The key the acquisition was issued under — releasing anything else leaks a dial. */
60
- readonly pipelineKey: string;
61
- /** What this cell is actually reading. Logged, so a still cell is never a mystery. */
62
- readonly mode: 'live' | 'sentry';
58
+ readonly url: string;
59
+ /** The key the acquisition was issued under — releasing anything else leaks a dial. */
60
+ readonly pipelineKey: string;
61
+ /** What this cell is actually reading. Logged, so a still cell is never a mystery. */
62
+ readonly mode: "live" | "sentry";
63
63
  }
64
64
  export declare function gridSourceDial(acquired: GridSourceAcquisition): GridSourceDial;