@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
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-8LQ4lDEB.js");
6
+ const require_dist = require("../../dist-XTkzsnz-.js");
7
7
  const require_snapshot_courtesy = require("../../snapshot-courtesy-D_C5-nC0.js");
8
8
  let zod = require("zod");
9
9
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- import { Bn as streamQualityLabel, Br as nodePin, Pn as snapshotCapability, Q as batteryCapability, Z as bareAddonId, a as BatteryStatusSchema, cr as DeviceType, in as memoizePinnedFfmpeg, lr as errMsg, ni as EventCategory, or as DeviceFeature, ur as BaseAddon, vt as deriveBatteryPresence } from "../../dist-Biqn3TEn.mjs";
1
+ import { Bn as streamQualityLabel, Br as nodePin, Pn as snapshotCapability, Q as batteryCapability, Z as bareAddonId, a as BatteryStatusSchema, cr as DeviceType, in as memoizePinnedFfmpeg, lr as errMsg, ni as EventCategory, or as DeviceFeature, ur as BaseAddon, vt as deriveBatteryPresence } from "../../dist-byg8IP4Q.mjs";
2
2
  import { i as renderCourtesyOverlayJpeg, n as courtesyCacheKey, r as renderCourtesyJpeg } from "../../snapshot-courtesy-CyFs1M3I.mjs";
3
3
  import { z } from "zod";
4
4
  import { randomUUID } from "node:crypto";
@@ -1,108 +1,108 @@
1
1
  /**
2
- * The per-device snapshot cache, keyed by (device, STREAM).
3
- *
4
- * It used to be keyed by device alone, and `getSnapshot` served the hit before
5
- * it had resolved which stream the caller asked for — so `?streamId=low`
6
- * silently returned whatever was already cached. In production that meant the
7
- * 4K main frame: probing a live camera with `low`, `sub` and `high` returned
8
- * three byte-identical 1.2 MB responses. The parameter existed, was documented,
9
- * and did nothing.
10
- *
11
- * Two views still need to ask a device-wide question — "when did this camera
12
- * last produce a frame" (`getSnapshotOverview`, `getStatus`) — so
13
- * {@link SnapshotCache.latest} answers it across streams rather than making
14
- * every caller guess a key.
15
- */
2
+ * The per-device snapshot cache, keyed by (device, STREAM).
3
+ *
4
+ * It used to be keyed by device alone, and `getSnapshot` served the hit before
5
+ * it had resolved which stream the caller asked for — so `?streamId=low`
6
+ * silently returned whatever was already cached. In production that meant the
7
+ * 4K main frame: probing a live camera with `low`, `sub` and `high` returned
8
+ * three byte-identical 1.2 MB responses. The parameter existed, was documented,
9
+ * and did nothing.
10
+ *
11
+ * Two views still need to ask a device-wide question — "when did this camera
12
+ * last produce a frame" (`getSnapshotOverview`, `getStatus`) — so
13
+ * {@link SnapshotCache.latest} answers it across streams rather than making
14
+ * every caller guess a key.
15
+ */
16
16
  /** The cached frame. Structurally the addon's `SnapshotImage` — declared here
17
- * rather than imported so the cache does not depend on the 1,100-line addon. */
17
+ * rather than imported so the cache does not depend on the 1,100-line addon. */
18
18
  export interface SnapshotCacheImage {
19
- readonly base64: string;
20
- readonly contentType: string;
19
+ readonly base64: string;
20
+ readonly contentType: string;
21
21
  }
22
22
  export interface SnapshotCacheEntry {
23
- readonly data: SnapshotCacheImage;
24
- readonly ts: number;
25
- /** Stream id resolved at capture time — 'high' | 'mid' | 'low' | custom | null. */
26
- readonly streamId: string | null;
23
+ readonly data: SnapshotCacheImage;
24
+ readonly ts: number;
25
+ /** Stream id resolved at capture time — 'high' | 'mid' | 'low' | custom | null. */
26
+ readonly streamId: string | null;
27
27
  }
28
28
  /**
29
- * Byte budget across every cached frame.
30
- *
31
- * The cache shipped with NO bound of any kind: no TTL, no LRU, no size cap. It
32
- * holds base64 JPEG payloads — a 4K main-stream frame is ~1.6 MB as base64 —
33
- * keyed by (device, stream), so the ceiling was "every camera × every stream it
34
- * was ever asked for", which is not a ceiling.
35
- *
36
- * 64 MiB is roughly 40 main-stream frames, comfortably above the live 27-camera
37
- * roster's working set (the whole `snapshot` runner measures 185 MB RSS, of
38
- * which the node baseline is ~130 MB), so nothing an operator does today starts
39
- * evicting. It exists so a roster that grows, or a device that gets probed on
40
- * many stream ids, cannot walk this structure into the OOM.
41
- */
29
+ * Byte budget across every cached frame.
30
+ *
31
+ * The cache shipped with NO bound of any kind: no TTL, no LRU, no size cap. It
32
+ * holds base64 JPEG payloads — a 4K main-stream frame is ~1.6 MB as base64 —
33
+ * keyed by (device, stream), so the ceiling was "every camera × every stream it
34
+ * was ever asked for", which is not a ceiling.
35
+ *
36
+ * 64 MiB is roughly 40 main-stream frames, comfortably above the live 27-camera
37
+ * roster's working set (the whole `snapshot` runner measures 185 MB RSS, of
38
+ * which the node baseline is ~130 MB), so nothing an operator does today starts
39
+ * evicting. It exists so a roster that grows, or a device that gets probed on
40
+ * many stream ids, cannot walk this structure into the OOM.
41
+ */
42
42
  export declare const SNAPSHOT_CACHE_MAX_BYTES: number;
43
43
  /**
44
- * Drop an entry nobody has READ for this long.
45
- *
46
- * Deliberately an IDLE timeout and not a capture-age one. Capture age is
47
- * already governed per device by `snapshotMaxAgeS` (default 15s, but one HOUR
48
- * for battery cameras), so a TTL on age would either fight those rules or have
49
- * to sit above the largest of them and bound nothing. "Nobody has looked at
50
- * this in an hour" is orthogonal to freshness and is the actual condition under
51
- * which the bytes are dead weight — a removed camera, an unreachable one, a
52
- * stream id probed once by a debug view.
53
- */
54
- export declare const SNAPSHOT_CACHE_IDLE_TTL_MS = 3600000;
44
+ * Drop an entry nobody has READ for this long.
45
+ *
46
+ * Deliberately an IDLE timeout and not a capture-age one. Capture age is
47
+ * already governed per device by `snapshotMaxAgeS` (default 15s, but one HOUR
48
+ * for battery cameras), so a TTL on age would either fight those rules or have
49
+ * to sit above the largest of them and bound nothing. "Nobody has looked at
50
+ * this in an hour" is orthogonal to freshness and is the actual condition under
51
+ * which the bytes are dead weight — a removed camera, an unreachable one, a
52
+ * stream id probed once by a debug view.
53
+ */
54
+ export declare const SNAPSHOT_CACHE_IDLE_TTL_MS = 36e5;
55
55
  /** Why an entry was dropped. `budget` = the byte ceiling; `idle` = unread for
56
- * {@link SNAPSHOT_CACHE_IDLE_TTL_MS}. */
57
- export type SnapshotCacheEvictReason = 'budget' | 'idle';
56
+ * {@link SNAPSHOT_CACHE_IDLE_TTL_MS}. */
57
+ export type SnapshotCacheEvictReason = "budget" | "idle";
58
58
  /** Notified for every eviction so the owner can put it on the record with the
59
- * device tag. A cached frame that vanishes is the explanation for a later
60
- * capture that did not have to happen; silence reads as "never happened". */
59
+ * device tag. A cached frame that vanishes is the explanation for a later
60
+ * capture that did not have to happen; silence reads as "never happened". */
61
61
  export type SnapshotCacheEvictListener = (deviceId: number, streamId: string | null, reason: SnapshotCacheEvictReason) => void;
62
62
  export interface SnapshotCacheOptions {
63
- /** Total base64 bytes held across all entries. Default {@link SNAPSHOT_CACHE_MAX_BYTES}. */
64
- readonly maxBytes?: number;
65
- /** Idle timeout. Default {@link SNAPSHOT_CACHE_IDLE_TTL_MS}. */
66
- readonly idleTtlMs?: number;
67
- /** Injected clock — the bounds must be testable without waiting an hour. */
68
- readonly now?: () => number;
69
- readonly onEvict?: SnapshotCacheEvictListener;
63
+ /** Total base64 bytes held across all entries. Default {@link SNAPSHOT_CACHE_MAX_BYTES}. */
64
+ readonly maxBytes?: number;
65
+ /** Idle timeout. Default {@link SNAPSHOT_CACHE_IDLE_TTL_MS}. */
66
+ readonly idleTtlMs?: number;
67
+ /** Injected clock — the bounds must be testable without waiting an hour. */
68
+ readonly now?: () => number;
69
+ readonly onEvict?: SnapshotCacheEvictListener;
70
70
  }
71
71
  export declare class SnapshotCache {
72
- private readonly byKey;
73
- /** deviceId → its live keys, so invalidation is O(streams) not O(cache). */
74
- private readonly keysByDevice;
75
- private readonly maxBytes;
76
- private readonly idleTtlMs;
77
- private readonly now;
78
- private readonly onEvict;
79
- private totalBytes;
80
- constructor(options?: SnapshotCacheOptions);
81
- get(deviceId: number, streamId: string | undefined): SnapshotCacheEntry | undefined;
82
- set(deviceId: number, streamId: string | undefined, entry: SnapshotCacheEntry): void;
83
- /** The newest entry for a device, whichever stream produced it. */
84
- latest(deviceId: number): SnapshotCacheEntry | undefined;
85
- /** Base64 bytes currently retained. The number the budget is enforced on. */
86
- sizeBytes(): number;
87
- /** Entries currently retained. */
88
- entryCount(): number;
89
- /** Read through the idle timeout: an entry nobody has touched inside
90
- * `idleTtlMs` is dropped here rather than on a sweep, so the cost is paid by
91
- * the caller that proves it was not wanted. */
92
- private read;
93
- /** Evict least-recently-ACCESSED first until the budget holds. `protectedKey`
94
- * is the entry just written — evicting it would make `set` a no-op. */
95
- private enforceBudget;
96
- private evict;
97
- /** Remove a key and everything that indexes or accounts for it. */
98
- private forget;
99
- /**
100
- * Drop every stream of one device.
101
- *
102
- * Device-wide on purpose: a settings change or an operator refresh
103
- * invalidates the CAMERA, and leaving a sibling entry behind would keep
104
- * serving the pre-change frame from the other key.
105
- */
106
- deleteDevice(deviceId: number): void;
107
- clear(): void;
72
+ private readonly byKey;
73
+ /** deviceId → its live keys, so invalidation is O(streams) not O(cache). */
74
+ private readonly keysByDevice;
75
+ private readonly maxBytes;
76
+ private readonly idleTtlMs;
77
+ private readonly now;
78
+ private readonly onEvict;
79
+ private totalBytes;
80
+ constructor(options?: SnapshotCacheOptions);
81
+ get(deviceId: number, streamId: string | undefined): SnapshotCacheEntry | undefined;
82
+ set(deviceId: number, streamId: string | undefined, entry: SnapshotCacheEntry): void;
83
+ /** The newest entry for a device, whichever stream produced it. */
84
+ latest(deviceId: number): SnapshotCacheEntry | undefined;
85
+ /** Base64 bytes currently retained. The number the budget is enforced on. */
86
+ sizeBytes(): number;
87
+ /** Entries currently retained. */
88
+ entryCount(): number;
89
+ /** Read through the idle timeout: an entry nobody has touched inside
90
+ * `idleTtlMs` is dropped here rather than on a sweep, so the cost is paid by
91
+ * the caller that proves it was not wanted. */
92
+ private read;
93
+ /** Evict least-recently-ACCESSED first until the budget holds. `protectedKey`
94
+ * is the entry just written — evicting it would make `set` a no-op. */
95
+ private enforceBudget;
96
+ private evict;
97
+ /** Remove a key and everything that indexes or accounts for it. */
98
+ private forget;
99
+ /**
100
+ * Drop every stream of one device.
101
+ *
102
+ * Device-wide on purpose: a settings change or an operator refresh
103
+ * invalidates the CAMERA, and leaving a sibling entry behind would keep
104
+ * serving the pre-change frame from the other key.
105
+ */
106
+ deleteDevice(deviceId: number): void;
107
+ clear(): void;
108
108
  }
@@ -1,135 +1,135 @@
1
1
  /**
2
- * Pure, side-effect-free coalescing / stale-while-revalidate / bounded-pool
3
- * primitives for the snapshot wrapper.
4
- *
5
- * These are extracted from `SnapshotAddon` so the decision logic is unit-testable
6
- * without instantiating the addon (no camera, no ffmpeg, no tRPC). The addon wires
7
- * them to its cache + ladder; this module owns only the mechanics:
8
- *
9
- * - {@link decideSnapshotServe} — the pure serve/refresh decision (fresh cache vs
10
- * stale-while-revalidate vs cold blocking capture) keyed off the cached frame
11
- * age, the per-device max-age, and whether the caller forced a refresh.
12
- * - {@link Semaphore} — a counting semaphore bounding concurrent grabs.
13
- * - {@link SingleFlight} — de-dupes concurrent captures for the same key and
14
- * retains a SETTLED success for a short hold window so a mount burst collapses
15
- * into one capture.
16
- * - {@link raceForResult} — races a promise against a wait bound without
17
- * cancelling the promise (the loser keeps running in the background).
18
- */
2
+ * Pure, side-effect-free coalescing / stale-while-revalidate / bounded-pool
3
+ * primitives for the snapshot wrapper.
4
+ *
5
+ * These are extracted from `SnapshotAddon` so the decision logic is unit-testable
6
+ * without instantiating the addon (no camera, no ffmpeg, no tRPC). The addon wires
7
+ * them to its cache + ladder; this module owns only the mechanics:
8
+ *
9
+ * - {@link decideSnapshotServe} — the pure serve/refresh decision (fresh cache vs
10
+ * stale-while-revalidate vs cold blocking capture) keyed off the cached frame
11
+ * age, the per-device max-age, and whether the caller forced a refresh.
12
+ * - {@link Semaphore} — a counting semaphore bounding concurrent grabs.
13
+ * - {@link SingleFlight} — de-dupes concurrent captures for the same key and
14
+ * retains a SETTLED success for a short hold window so a mount burst collapses
15
+ * into one capture.
16
+ * - {@link raceForResult} — races a promise against a wait bound without
17
+ * cancelling the promise (the loser keeps running in the background).
18
+ */
19
19
  /**
20
- * Retain a SETTLED single-flight capture this long so a grid-mount burst of
21
- * `getSnapshot` calls (and a row of refresh buttons) collapses into ONE capture
22
- * instead of one dial per tile. Only success outcomes are held — a null/failed
23
- * capture expires immediately so a transiently-unreachable camera is retried on
24
- * the next call rather than pinned blank for the window.
25
- */
26
- export declare const COALESCE_MS = 4000;
20
+ * Retain a SETTLED single-flight capture this long so a grid-mount burst of
21
+ * `getSnapshot` calls (and a row of refresh buttons) collapses into ONE capture
22
+ * instead of one dial per tile. Only success outcomes are held — a null/failed
23
+ * capture expires immediately so a transiently-unreachable camera is retried on
24
+ * the next call rather than pinned blank for the window.
25
+ */
26
+ export declare const COALESCE_MS = 4e3;
27
27
  /**
28
- * Stale-while-revalidate: when a cached frame exists but is past its max-age,
29
- * start the refresh and wait at most this long for it to land before returning
30
- * the STALE frame (the refresh keeps running and populates the cache for the
31
- * next poll). Keeps a grid mount painting instantly from cache.
32
- */
28
+ * Stale-while-revalidate: when a cached frame exists but is past its max-age,
29
+ * start the refresh and wait at most this long for it to land before returning
30
+ * the STALE frame (the refresh keeps running and populates the cache for the
31
+ * next poll). Keeps a grid mount painting instantly from cache.
32
+ */
33
33
  export declare const SWR_STALE_WAIT_MS = 2500;
34
34
  /**
35
- * Cold path (no cached frame) or a forced refresh: wait up to this long for a
36
- * fresh capture. On a cold miss there is nothing to fall back to, so we block
37
- * (bounded) on the capture; on a forced refresh with a stale frame available we
38
- * still prefer a fresh one but cap the wait, falling back to stale on timeout.
39
- */
40
- export declare const SWR_COLD_WAIT_MS = 10000;
35
+ * Cold path (no cached frame) or a forced refresh: wait up to this long for a
36
+ * fresh capture. On a cold miss there is nothing to fall back to, so we block
37
+ * (bounded) on the capture; on a forced refresh with a stale frame available we
38
+ * still prefer a fresh one but cap the wait, falling back to stale on timeout.
39
+ */
40
+ export declare const SWR_COLD_WAIT_MS = 1e4;
41
41
  /**
42
- * Max simultaneous ffmpeg keyframe grabs — the WRAPPER path, the common case for
43
- * cameras with no vendor snapshot URL. A 20-cam grid mount spawns at most this
44
- * many ffmpeg processes; the rest serve cached frames (SWR) or queue.
45
- *
46
- * Raised 3 → 6 on 2026-08-12 (operator): a 17-camera cold start serialised
47
- * into 6 waves and the client-side "image displayed" clustering matched the
48
- * pool exactly (p90 10.8 s). Measured client-side after the raise — if the
49
- * hub shows decode pressure, this is the first knob to lower.
50
- */
42
+ * Max simultaneous ffmpeg keyframe grabs — the WRAPPER path, the common case for
43
+ * cameras with no vendor snapshot URL. A 20-cam grid mount spawns at most this
44
+ * many ffmpeg processes; the rest serve cached frames (SWR) or queue.
45
+ *
46
+ * Raised 3 → 6 on 2026-08-12 (operator): a 17-camera cold start serialised
47
+ * into 6 waves and the client-side "image displayed" clustering matched the
48
+ * pool exactly (p90 10.8 s). Measured client-side after the raise — if the
49
+ * hub shows decode pressure, this is the first knob to lower.
50
+ */
51
51
  export declare const MAX_CONCURRENT_GRABS = 6;
52
52
  /**
53
- * Max simultaneous cheap native snapshot fetches (vendor HTTP/ONVIF). Higher than
54
- * the ffmpeg bound because a native fetch is a lightweight HTTP round-trip, not a
55
- * decode pipeline.
56
- */
53
+ * Max simultaneous cheap native snapshot fetches (vendor HTTP/ONVIF). Higher than
54
+ * the ffmpeg bound because a native fetch is a lightweight HTTP round-trip, not a
55
+ * decode pipeline.
56
+ */
57
57
  export declare const MAX_CONCURRENT_NATIVE = 6;
58
58
  /**
59
- * Serve either the fresh cache directly, or start/join a refresh and wait a
60
- * bounded time. `await-refresh` always runs (or joins) the single flight;
61
- * `waitMs` bounds how long the caller waits before, when `staleFallback` is set
62
- * and a cached frame exists, returning the stale frame while the refresh
63
- * continues in the background.
64
- */
59
+ * Serve either the fresh cache directly, or start/join a refresh and wait a
60
+ * bounded time. `await-refresh` always runs (or joins) the single flight;
61
+ * `waitMs` bounds how long the caller waits before, when `staleFallback` is set
62
+ * and a cached frame exists, returning the stale frame while the refresh
63
+ * continues in the background.
64
+ */
65
65
  export type SnapshotServeDecision = {
66
- readonly kind: 'serve-cache';
66
+ readonly kind: "serve-cache";
67
67
  } | {
68
- readonly kind: 'await-refresh';
69
- readonly waitMs: number;
70
- readonly staleFallback: boolean;
68
+ readonly kind: "await-refresh";
69
+ readonly waitMs: number;
70
+ readonly staleFallback: boolean;
71
71
  };
72
72
  export interface SnapshotServeInputs {
73
- readonly now: number;
74
- /** Epoch ms of the cached frame, or null when nothing is cached. */
75
- readonly cachedAt: number | null;
76
- /** Effective per-device max cache age in ms (battery-aware default or override). */
77
- readonly effectiveMaxAgeMs: number;
78
- /** Caller forced a refresh (UI refresh button) — bypass the freshness gate. */
79
- readonly force: boolean;
73
+ readonly now: number;
74
+ /** Epoch ms of the cached frame, or null when nothing is cached. */
75
+ readonly cachedAt: number | null;
76
+ /** Effective per-device max cache age in ms (battery-aware default or override). */
77
+ readonly effectiveMaxAgeMs: number;
78
+ /** Caller forced a refresh (UI refresh button) — bypass the freshness gate. */
79
+ readonly force: boolean;
80
80
  }
81
81
  /**
82
- * Pure serve/refresh decision.
83
- *
84
- * - fresh cache + !force -> serve-cache
85
- * - stale cache + !force -> SWR: wait SWR_STALE_WAIT_MS, then stale
86
- * - no cache + !force -> cold: wait SWR_COLD_WAIT_MS, no fallback
87
- * - force (cache present or not) -> prefer fresh: wait SWR_COLD_WAIT_MS,
88
- * fall back to stale only if a frame exists
89
- */
82
+ * Pure serve/refresh decision.
83
+ *
84
+ * - fresh cache + !force -> serve-cache
85
+ * - stale cache + !force -> SWR: wait SWR_STALE_WAIT_MS, then stale
86
+ * - no cache + !force -> cold: wait SWR_COLD_WAIT_MS, no fallback
87
+ * - force (cache present or not) -> prefer fresh: wait SWR_COLD_WAIT_MS,
88
+ * fall back to stale only if a frame exists
89
+ */
90
90
  export declare function decideSnapshotServe(input: SnapshotServeInputs): SnapshotServeDecision;
91
91
  /**
92
- * A counting semaphore. `run` acquires a permit, awaits `fn`, and releases the
93
- * permit (even if `fn` throws), so at most `max` `fn`s run concurrently. Waiters
94
- * are served FIFO.
95
- */
92
+ * A counting semaphore. `run` acquires a permit, awaits `fn`, and releases the
93
+ * permit (even if `fn` throws), so at most `max` `fn`s run concurrently. Waiters
94
+ * are served FIFO.
95
+ */
96
96
  export declare class Semaphore {
97
- private available;
98
- private readonly waiters;
99
- constructor(max: number);
100
- run<T>(fn: () => Promise<T>): Promise<T>;
101
- private acquire;
102
- private makeReleaser;
97
+ private available;
98
+ private readonly waiters;
99
+ constructor(max: number);
100
+ run<T>(fn: () => Promise<T>): Promise<T>;
101
+ private acquire;
102
+ private makeReleaser;
103
103
  }
104
104
  export declare class SingleFlight<T> {
105
- private readonly holdMs;
106
- private readonly holdWorthy;
107
- private readonly now;
108
- private readonly flights;
109
- /**
110
- * @param holdMs how long a settled hold-worthy result is reused
111
- * @param holdWorthy predicate deciding whether a settled value is worth holding
112
- * (e.g. a successful capture with a real frame)
113
- * @param now clock injection for tests
114
- */
115
- constructor(holdMs: number, holdWorthy: (value: T) => boolean, now?: () => number);
116
- run(key: string, factory: () => Promise<T>): Promise<T>;
117
- /** Drop every held flight whose key starts with `prefix` (e.g. `"<deviceId>:"`). */
118
- invalidatePrefix(prefix: string): void;
119
- clear(): void;
120
- private isReusable;
105
+ private readonly holdMs;
106
+ private readonly holdWorthy;
107
+ private readonly now;
108
+ private readonly flights;
109
+ /**
110
+ * @param holdMs how long a settled hold-worthy result is reused
111
+ * @param holdWorthy predicate deciding whether a settled value is worth holding
112
+ * (e.g. a successful capture with a real frame)
113
+ * @param now clock injection for tests
114
+ */
115
+ constructor(holdMs: number, holdWorthy: (value: T) => boolean, now?: () => number);
116
+ run(key: string, factory: () => Promise<T>): Promise<T>;
117
+ /** Drop every held flight whose key starts with `prefix` (e.g. `"<deviceId>:"`). */
118
+ invalidatePrefix(prefix: string): void;
119
+ clear(): void;
120
+ private isReusable;
121
121
  }
122
122
  export type RaceOutcome<T> = {
123
- readonly settled: true;
124
- readonly value: T;
123
+ readonly settled: true;
124
+ readonly value: T;
125
125
  } | {
126
- readonly settled: false;
126
+ readonly settled: false;
127
127
  };
128
128
  /**
129
- * Race `promise` against a `timeoutMs` bound WITHOUT cancelling it — on timeout
130
- * the promise keeps running (its result lands in the cache for the next poll).
131
- * Rejections propagate: if `promise` rejects before the timeout, this rejects.
132
- * The caller passes a promise that never rejects (a settled outcome union) when
133
- * background continuation must stay unhandled-safe.
134
- */
129
+ * Race `promise` against a `timeoutMs` bound WITHOUT cancelling it — on timeout
130
+ * the promise keeps running (its result lands in the cache for the next poll).
131
+ * Rejections propagate: if `promise` rejects before the timeout, this rejects.
132
+ * The caller passes a promise that never rejects (a settled outcome union) when
133
+ * background continuation must stay unhandled-safe.
134
+ */
135
135
  export declare function raceForResult<T>(promise: Promise<T>, timeoutMs: number): Promise<RaceOutcome<T>>;
@@ -1,68 +1,68 @@
1
1
  /**
2
- * Why a camera cannot produce a frame right now.
3
- *
4
- * `sleeping` and `unreachable` are deliberately two reasons and not one. A
5
- * battery camera in low-power mode is WORKING — that tile must not read as a
6
- * fault, which is D62's rule in the third state — while a battery camera
7
- * nothing has been heard from for hours is a genuine fault the operator has to
8
- * see (a flat battery, or a camera off the LAN). Painting the second as the
9
- * first is how a dead camera stayed green for 30 hours. The two are separated
10
- * by `deriveBatteryPresence`, never by a caller's own guess.
11
- */
12
- export type CourtesyReason = 'disabled' | 'offline' | 'sleeping' | 'unreachable' | 'waking';
2
+ * Why a camera cannot produce a frame right now.
3
+ *
4
+ * `sleeping` and `unreachable` are deliberately two reasons and not one. A
5
+ * battery camera in low-power mode is WORKING — that tile must not read as a
6
+ * fault, which is D62's rule in the third state — while a battery camera
7
+ * nothing has been heard from for hours is a genuine fault the operator has to
8
+ * see (a flat battery, or a camera off the LAN). Painting the second as the
9
+ * first is how a dead camera stayed green for 30 hours. The two are separated
10
+ * by `deriveBatteryPresence`, never by a caller's own guess.
11
+ */
12
+ export type CourtesyReason = "disabled" | "offline" | "sleeping" | "unreachable" | "waking";
13
13
  /** Default tile size when the caller asks for no particular width. */
14
14
  export declare const COURTESY_DEFAULT_WIDTH = 640;
15
15
  /** The word the frame carries. Deliberately the operator's vocabulary. */
16
16
  export declare function courtesyLabel(reason: CourtesyReason): string;
17
17
  /**
18
- * Background per reason. A disabled camera is a DELIBERATE state and must not
19
- * read as an alarm, so it is neutral grey; offline is a fault and is warmer.
20
- */
18
+ * Background per reason. A disabled camera is a DELIBERATE state and must not
19
+ * read as an alarm, so it is neutral grey; offline is a fault and is warmer.
20
+ */
21
21
  export declare function courtesyBackground(reason: CourtesyReason): string;
22
22
  /** XML escaping for text placed inside an SVG `<text>` node. */
23
23
  export declare function escapeCourtesyText(value: string): string;
24
24
  export interface CourtesyFrameSpec {
25
- readonly deviceName: string;
26
- readonly reason: CourtesyReason;
27
- readonly width: number;
28
- readonly height: number;
25
+ readonly deviceName: string;
26
+ readonly reason: CourtesyReason;
27
+ readonly width: number;
28
+ readonly height: number;
29
29
  }
30
30
  /**
31
- * The SVG the frame is rasterized from: the state large and centred, the
32
- * camera's name under it, smaller and dimmer.
33
- *
34
- * Sizes derive from the width so a 240 px grid tile and a 1920 px full-bleed
35
- * frame read the same, with a floor so a thumbnail stays legible.
36
- */
31
+ * The SVG the frame is rasterized from: the state large and centred, the
32
+ * camera's name under it, smaller and dimmer.
33
+ *
34
+ * Sizes derive from the width so a 240 px grid tile and a 1920 px full-bleed
35
+ * frame read the same, with a floor so a thumbnail stays legible.
36
+ */
37
37
  export declare function buildCourtesySvg(spec: CourtesyFrameSpec): string;
38
38
  /**
39
- * The state treatment for a frame that HAS a picture under it: a band along the
40
- * bottom, and nothing else touched.
41
- *
42
- * It was a full-frame wash at 0.62 opacity, under a docblock claiming the frame
43
- * "remains visible underneath". A 38 % view of a dark room is not a view of it,
44
- * and the operator read the result as a placeholder rather than as their own
45
- * camera: *"ma perché Waking? Dovremmo mostrare l'ultimo snapshot
46
- * disponibile"* [but why Waking? We should show the last available snapshot] (Baby monitor, 2026-09-16).
47
- *
48
- * The marker still has to earn its place — a stale frame shown clean gets
49
- * mistaken for live, which is the reason the treatment exists at all. A band
50
- * says the same thing a wash said. Covering the picture was never the message.
51
- */
39
+ * The state treatment for a frame that HAS a picture under it: a band along the
40
+ * bottom, and nothing else touched.
41
+ *
42
+ * It was a full-frame wash at 0.62 opacity, under a docblock claiming the frame
43
+ * "remains visible underneath". A 38 % view of a dark room is not a view of it,
44
+ * and the operator read the result as a placeholder rather than as their own
45
+ * camera: *"ma perché Waking? Dovremmo mostrare l'ultimo snapshot
46
+ * disponibile"* [but why Waking? We should show the last available snapshot] (Baby monitor, 2026-09-16).
47
+ *
48
+ * The marker still has to earn its place — a stale frame shown clean gets
49
+ * mistaken for live, which is the reason the treatment exists at all. A band
50
+ * says the same thing a wash said. Covering the picture was never the message.
51
+ */
52
52
  export declare function buildCourtesyOverlaySvg(spec: CourtesyFrameSpec): string;
53
53
  /** Cache key — a courtesy frame is a pure function of these four. */
54
54
  export declare function courtesyCacheKey(spec: CourtesyFrameSpec): string;
55
55
  /**
56
- * Render the frame.
57
- *
58
- * Rejects on failure — the caller decides what to do, exactly as `resizeJpeg`
59
- * does, so a broken courtesy path is never mistaken for a broken camera.
60
- */
56
+ * Render the frame.
57
+ *
58
+ * Rejects on failure — the caller decides what to do, exactly as `resizeJpeg`
59
+ * does, so a broken courtesy path is never mistaken for a broken camera.
60
+ */
61
61
  export declare function renderCourtesyJpeg(spec: CourtesyFrameSpec): Promise<Buffer>;
62
62
  /**
63
- * Paint the state treatment over a real cached frame.
64
- *
65
- * The source dimensions are authoritative: overlays preserve the original
66
- * frame rather than resizing it to the generated courtesy-frame default.
67
- */
68
- export declare function renderCourtesyOverlayJpeg(background: Buffer, spec: Pick<CourtesyFrameSpec, 'deviceName' | 'reason'>): Promise<Buffer>;
63
+ * Paint the state treatment over a real cached frame.
64
+ *
65
+ * The source dimensions are authoritative: overlays preserve the original
66
+ * frame rather than resizing it to the generated courtesy-frame default.
67
+ */
68
+ export declare function renderCourtesyOverlayJpeg(background: Buffer, spec: Pick<CourtesyFrameSpec, "deviceName" | "reason">): Promise<Buffer>;