@camstack/system 1.2.390 → 1.2.391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/auth/admin-token-manager.d.ts +37 -67
  7. package/dist/auth/api-key-manager.d.ts +8 -8
  8. package/dist/auth/auth-audit-log.d.ts +29 -49
  9. package/dist/auth/auth-manager.d.ts +127 -126
  10. package/dist/auth/cidr.d.ts +8 -8
  11. package/dist/auth/external-identity-manager.d.ts +46 -34
  12. package/dist/auth/jwt-signing-key.d.ts +14 -14
  13. package/dist/auth/login-session-manager.d.ts +95 -135
  14. package/dist/auth/parse-record.d.ts +13 -13
  15. package/dist/auth/scope-matcher.d.ts +7 -7
  16. package/dist/auth/scoped-token-manager.d.ts +62 -62
  17. package/dist/auth/token-expiry.d.ts +49 -26
  18. package/dist/auth/totp-manager.d.ts +48 -48
  19. package/dist/auth/user-management-internal.d.ts +67 -52
  20. package/dist/auth/user-manager.d.ts +58 -58
  21. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  22. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  23. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  24. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  25. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  26. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  27. package/dist/builtins/alerts/device-label.d.ts +6 -6
  28. package/dist/builtins/alerts/index.d.ts +1 -1
  29. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  30. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  31. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  32. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  33. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  34. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  35. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  36. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  37. package/dist/builtins/autotrack/index.d.ts +2 -2
  38. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  39. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  40. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  41. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  42. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  43. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  44. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  45. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  46. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  47. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  48. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  49. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  50. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  51. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  52. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  53. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  54. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  55. package/dist/builtins/calendars/index.d.ts +1 -1
  56. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  57. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  58. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  59. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  60. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  61. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  62. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  63. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  64. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  65. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  66. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  67. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  68. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  69. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  70. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  71. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  72. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  73. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  74. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  75. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  76. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  77. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  78. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  79. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  80. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  81. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  82. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  83. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  84. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  85. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  86. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  87. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  88. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  89. package/dist/builtins/camera-grid/index.d.ts +44 -44
  90. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  91. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  92. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  93. package/dist/builtins/composer/composed-device.d.ts +39 -17
  94. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  95. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  96. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  97. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  98. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  99. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  100. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  101. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  102. package/dist/builtins/composer/composer.d.ts +145 -100
  103. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  104. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  105. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  106. package/dist/builtins/composer/composition-target.d.ts +38 -34
  107. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  108. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  109. package/dist/builtins/composer/existing-target.d.ts +90 -73
  110. package/dist/builtins/composer/field-record.d.ts +26 -19
  111. package/dist/builtins/composer/graft-host.d.ts +56 -32
  112. package/dist/builtins/composer/held-claims.d.ts +26 -9
  113. package/dist/builtins/composer/index.d.ts +1 -1
  114. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  115. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  116. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  117. package/dist/builtins/composer/source-readings.d.ts +67 -61
  118. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  119. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  120. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  121. package/dist/builtins/console-logging/index.d.ts +3 -3
  122. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  123. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  124. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  125. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  126. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  127. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  128. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  129. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  130. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  131. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  132. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  133. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  134. package/dist/builtins/core-blocks/index.d.ts +8 -8
  135. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  136. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  137. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  138. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  139. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  140. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  141. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  142. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  143. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  144. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  145. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  146. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  147. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  148. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  149. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  150. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  151. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  152. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  153. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  154. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  155. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  156. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  157. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  158. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  159. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  160. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  161. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  162. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  163. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  164. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  165. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  166. package/dist/builtins/device-manager/index.d.ts +2 -2
  167. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  168. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  169. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  170. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  171. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  172. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  173. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  174. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  175. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  176. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  177. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  178. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  179. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  180. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  181. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  182. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  183. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  184. package/dist/builtins/keychain/index.d.ts +1 -1
  185. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  186. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  187. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  188. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  189. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  190. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  191. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  192. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  193. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  194. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  195. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  196. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  197. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  198. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  199. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  200. package/dist/builtins/local-auth/index.d.ts +1 -1
  201. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  202. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  203. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  204. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  205. package/dist/builtins/local-network/address-book.d.ts +61 -36
  206. package/dist/builtins/local-network/index.d.ts +2 -2
  207. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  208. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  209. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  210. package/dist/builtins/loki-logging/index.d.ts +4 -4
  211. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  212. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  213. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  214. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  215. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  216. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  217. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  218. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  219. package/dist/builtins/native-metrics/index.d.ts +2 -2
  220. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  221. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  222. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  223. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  224. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  225. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  226. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  227. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  228. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  229. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  230. package/dist/builtins/platform-probe/index.d.ts +38 -30
  231. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  232. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  233. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  234. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  235. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  236. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  237. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  238. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  239. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  240. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  241. package/dist/builtins/snapshot/index.d.ts +2 -2
  242. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  243. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  244. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  245. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  246. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  247. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  248. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  249. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  250. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  251. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  252. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  253. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  254. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  255. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  256. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  257. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  258. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  259. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  260. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  261. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  262. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  263. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  264. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  265. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  266. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  267. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  268. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  269. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  270. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  271. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  272. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  273. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  274. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  275. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  276. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  277. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  278. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  279. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  280. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  281. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  282. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  283. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  284. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  285. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  286. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  287. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  288. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  289. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  290. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  291. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  292. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  293. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  294. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  295. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  296. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  297. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  298. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  299. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  300. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  301. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  302. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  303. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  304. package/dist/builtins/system-config/index.d.ts +2 -2
  305. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  306. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  307. package/dist/builtins/system-config/system-config.addon.js +37 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +37 -33
  309. package/dist/builtins/winston-logging/index.d.ts +3 -3
  310. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  311. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  312. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
  313. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
  314. package/dist/download/hosted-model-revisions.d.ts +8 -8
  315. package/dist/download/model-download-service.d.ts +32 -32
  316. package/dist/download/model-downloader.d.ts +88 -88
  317. package/dist/events/event-bus.d.ts +6 -6
  318. package/dist/events/system-event-bus.d.ts +11 -11
  319. package/dist/feature/feature-manager.d.ts +6 -6
  320. package/dist/http/asset-compression.d.ts +35 -73
  321. package/dist/http/authenticated-file-server.d.ts +32 -32
  322. package/dist/http/data-plane-registry.d.ts +49 -39
  323. package/dist/http/file-data-plane.d.ts +14 -14
  324. package/dist/http/lan-http-bind.d.ts +24 -13
  325. package/dist/http/reverse-proxy.d.ts +36 -24
  326. package/dist/index.d.ts +137 -137
  327. package/dist/index.js +4 -3
  328. package/dist/index.mjs +2 -4
  329. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  330. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  331. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  332. package/dist/kernel/addon-installer.d.ts +609 -609
  333. package/dist/kernel/addon-loader.d.ts +133 -133
  334. package/dist/kernel/addon-manifest.d.ts +118 -118
  335. package/dist/kernel/addon-residue.d.ts +28 -32
  336. package/dist/kernel/array-buffer-census.d.ts +84 -88
  337. package/dist/kernel/bootstrap-config.d.ts +3 -3
  338. package/dist/kernel/cap-router-builder.d.ts +145 -101
  339. package/dist/kernel/capability-handle.d.ts +41 -41
  340. package/dist/kernel/capability-registry.d.ts +588 -576
  341. package/dist/kernel/config-manager.d.ts +199 -199
  342. package/dist/kernel/config-schema.d.ts +132 -128
  343. package/dist/kernel/custom-action-registry.d.ts +25 -25
  344. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  345. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  346. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  347. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  348. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  349. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  350. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  351. package/dist/kernel/deps/npm-command.d.ts +45 -45
  352. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  353. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  354. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  355. package/dist/kernel/device-registry.d.ts +27 -27
  356. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  357. package/dist/kernel/event-plane-report.d.ts +174 -174
  358. package/dist/kernel/fs-utils.d.ts +70 -70
  359. package/dist/kernel/gc-census.d.ts +119 -119
  360. package/dist/kernel/heap-spaces.d.ts +87 -87
  361. package/dist/kernel/heap-watch.d.ts +706 -706
  362. package/dist/kernel/host-externals.d.ts +8 -8
  363. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  364. package/dist/kernel/index.d.ts +115 -113
  365. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  366. package/dist/kernel/infra-capabilities.d.ts +7 -7
  367. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  368. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  369. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  370. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  371. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  372. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  373. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  374. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  375. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  376. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  377. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  378. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  379. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  380. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  381. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  382. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  383. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  384. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  385. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  386. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  387. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  388. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  389. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  390. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  391. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  392. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  393. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  394. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  395. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  396. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  397. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  398. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  399. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  400. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  401. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  402. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  403. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  404. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  405. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  406. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  407. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  408. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  409. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  410. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  411. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  412. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  413. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  414. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  415. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  416. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  417. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  418. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  419. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  420. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  421. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  422. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  423. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  424. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  425. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  426. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  427. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  428. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  429. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  430. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  431. package/dist/kernel/process-cpu-census.d.ts +55 -55
  432. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  433. package/dist/kernel/restart-coordinator.d.ts +71 -71
  434. package/dist/kernel/settings-door-view.d.ts +36 -25
  435. package/dist/kernel/settings-read-error.d.ts +29 -31
  436. package/dist/kernel/settings-view-types.d.ts +100 -95
  437. package/dist/kernel/socket-plane-report.d.ts +214 -153
  438. package/dist/kernel/status-overlay.d.ts +31 -11
  439. package/dist/kernel/storage-location-registry.d.ts +50 -50
  440. package/dist/kernel/store-settings-view.d.ts +13 -13
  441. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  442. package/dist/kernel/system-settings-policy.d.ts +15 -34
  443. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  444. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  445. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  446. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  447. package/dist/kernel/transport/cap-route.d.ts +139 -139
  448. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  449. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  450. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  451. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  452. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  453. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  454. package/dist/kernel/transport/index.d.ts +36 -36
  455. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  456. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  457. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  458. package/dist/kernel/transport/local-transport.d.ts +92 -92
  459. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  460. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  461. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  462. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  463. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  464. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  465. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  466. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  467. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  468. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  469. package/dist/kernel/workspace-detect.d.ts +7 -7
  470. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  471. package/dist/logging/formatter.d.ts +52 -25
  472. package/dist/logging/log-manager.d.ts +133 -133
  473. package/dist/logging/log-redactor.d.ts +22 -1
  474. package/dist/logging/log-ring-buffer.d.ts +57 -57
  475. package/dist/logging/logging-gate.d.ts +69 -25
  476. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  477. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  478. package/dist/logging/scoped-logger.d.ts +14 -14
  479. package/dist/network/network-quality.d.ts +8 -8
  480. package/dist/notification/notification-service.d.ts +37 -37
  481. package/dist/notification/toast-service.d.ts +18 -18
  482. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  483. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  484. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  485. package/dist/process/proc-stat.d.ts +51 -51
  486. package/dist/process/resource-monitor.d.ts +19 -19
  487. package/dist/python/python-env-manager.d.ts +10 -10
  488. package/dist/repl/interfaces.d.ts +21 -21
  489. package/dist/repl/repl-engine.d.ts +6 -6
  490. package/dist/storage/fs-storage-backend.d.ts +35 -35
  491. package/dist/storage/storage-location-manager.d.ts +21 -21
  492. package/dist/storage/storage-manager.d.ts +68 -68
  493. package/dist/tls/boot-tls.d.ts +24 -24
  494. package/dist/tls/cert-evaluation.d.ts +25 -25
  495. package/dist/tls/cert-identity.d.ts +39 -39
  496. package/dist/tls/cert-issue.d.ts +37 -17
  497. package/dist/tls/cert-manager.d.ts +86 -84
  498. package/dist/tls/https-listener.d.ts +16 -16
  499. package/dist/tls/index.d.ts +8 -8
  500. package/dist/tls/tls-actions.d.ts +18 -18
  501. package/dist/tls/tls-status.d.ts +15 -15
  502. package/dist/tls/uploaded-cert.d.ts +9 -9
  503. package/package.json +9 -3
@@ -1,306 +1,329 @@
1
- import { AddonContext, CapabilityDefinition, DeviceBindingEntry, DeviceConfigSpec, DeviceSettingsContribution, ICapabilityRegistry, IDevice, InferProvider, StreamProfile, StreamProfilePatch, deviceManagerCapability } from '@camstack/types';
2
- import { BindingsDeps, RemoteNativeCaps } from './device-bindings-store.js';
3
- import { ContributionShape, DriverConfigSchemaResult } from './device-meta-types.js';
4
1
  /**
5
- * Dependencies the aggregation + update routing functions consume. Assembled
6
- * by the addon from its own state and passed in explicitly — no hidden `this`
7
- * capture. `bindingsDeps` carries the lower-level context the bindings-store
8
- * resolvers need so this module can call them directly.
9
- */
2
+ * Device-details aggregation + field-update routing for the device-manager
3
+ * addon. Extracted from `device-manager.addon.ts` as free functions that
4
+ * receive an explicit `AggregationDeps` context (DI) rather than closing over
5
+ * the addon instance.
6
+ *
7
+ * This module owns the binding-driven settings/live/status aggregators
8
+ * (`getDeviceAggregate`, `collectSystemDeviceContributions`,
9
+ * `deriveDeviceConfigContribution`, `buildBaseDeviceSection`,
10
+ * `getDeviceStatusAggregate`, `resolveDriverConfigSchema`) and the
11
+ * field-update routing (`updateDeviceField`, `updateDeviceFieldsBatch`,
12
+ * `applyGroupPatch`, `resolveContributionProvider`, `dispatchDeviceAction`)
13
+ * plus the wrapper-activation mutators (`setWrapperActive`,
14
+ * `listWrappersForCap`, `listBindableCapsForDeviceType`).
15
+ *
16
+ * Sibling aggregator functions call each other directly (passing `deps`);
17
+ * cross-domain leaf calls (`getBindings`, `resolveRemoteNativeCapFromRegistry`,
18
+ * read/writeBindingsStore) route through the bindings-store module via
19
+ * `deps.bindingsDeps`. EXACT semantics, ordering, and side effects of the
20
+ * original class methods are preserved; the addon keeps thin delegator
21
+ * methods over these functions.
22
+ */
23
+ import type { AddonContext, CapabilityDefinition, DeviceBindingEntry, DeviceConfigSpec, DeviceSettingsContribution, ICapabilityRegistry, IDevice, InferProvider, StreamProfile, StreamProfilePatch } from "@camstack/types";
24
+ import { deviceManagerCapability } from "@camstack/types";
25
+ import { type BindingsDeps, type RemoteNativeCaps } from "./device-bindings-store.js";
26
+ import type { ContributionShape, DriverConfigSchemaResult } from "./device-meta-types.js";
27
+ /**
28
+ * Dependencies the aggregation + update routing functions consume. Assembled
29
+ * by the addon from its own state and passed in explicitly — no hidden `this`
30
+ * capture. `bindingsDeps` carries the lower-level context the bindings-store
31
+ * resolvers need so this module can call them directly.
32
+ */
10
33
  export interface AggregationDeps {
11
- readonly ctx: AddonContext;
12
- readonly capabilityRegistry: ICapabilityRegistry | undefined;
13
- readonly remoteNativeCaps: RemoteNativeCaps;
14
- readonly bindingsDeps: BindingsDeps;
15
- /**
16
- * The keychain side of a driver's device form (D789): the STORED blob (its
17
- * markers, never resolved), the device's declared secret paths, and the
18
- * door's explicit clear. Without it a driver form carries what the driver
19
- * hydrated and a clear cannot be applied.
20
- */
21
- readonly deviceFormSecrets?: DeviceFormSecretsDeps;
34
+ readonly ctx: AddonContext;
35
+ readonly capabilityRegistry: ICapabilityRegistry | undefined;
36
+ readonly remoteNativeCaps: RemoteNativeCaps;
37
+ readonly bindingsDeps: BindingsDeps;
38
+ /**
39
+ * The keychain side of a driver's device form (D789): the STORED blob (its
40
+ * markers, never resolved), the device's declared secret paths, and the
41
+ * door's explicit clear. Without it a driver form carries what the driver
42
+ * hydrated and a clear cannot be applied.
43
+ */
44
+ readonly deviceFormSecrets?: DeviceFormSecretsDeps;
22
45
  }
23
46
  export interface DeviceFormSecretsDeps {
24
- readonly readStored: (deviceId: number) => Promise<Record<string, unknown>>;
25
- readonly declaredPaths: (deviceId: number) => readonly string[];
26
- readonly clear: (deviceId: number, keys: readonly string[]) => Promise<void>;
47
+ readonly readStored: (deviceId: number) => Promise<Record<string, unknown>>;
48
+ readonly declaredPaths: (deviceId: number) => readonly string[];
49
+ readonly clear: (deviceId: number, keys: readonly string[]) => Promise<void>;
27
50
  }
28
51
  type IDeviceManagerProvider = InferProvider<typeof deviceManagerCapability>;
29
- export declare function getDeviceAggregate(deps: AggregationDeps, deviceId: number, kind: 'settings' | 'live'): Promise<ContributionShape | null>;
52
+ export declare function getDeviceAggregate(deps: AggregationDeps, deviceId: number, kind: "settings" | "live"): Promise<ContributionShape | null>;
30
53
  /**
31
- * System-scoped per-device contributions — the deliberate exception to
32
- * binding-driven aggregation (D12).
33
- *
34
- * A `scope: 'system'` cap with `exposesDeviceSettings: true` holds per-device
35
- * state but is NOT bound per-device: it is a system addon, not a BaseDevice,
36
- * so it never calls `registerNativeCap` and never appears in
37
- * `getBindings(deviceId)`. The binding-driven loop therefore skips it and its
38
- * per-device panel never renders. Two such caps ship today:
39
- * - `stream-broker` (singleton) — the RTSP-restream / pre-buffer settings
40
- * tab, scoped to the cameras whose streams it serves.
41
- * - `device-export` (collection) — the "Export" panel; a device can be
42
- * exposed to MULTIPLE exporters at once (Alexa + HomeKit + HA-MQTT).
43
- *
44
- * D12 bans fanning a per-device call out to every same-named provider of a
45
- * `scope: 'device'` cap, because vendor providers SHARE cap names
46
- * (`stream-params`/`ptz` from reolink AND hikvision). System caps are NOT
47
- * vendor-shared — a system cap name maps to one active provider (singleton)
48
- * or one declared collection — so consulting the cap's own provider(s)
49
- * directly is safe. Each provider gates internally by deviceId and returns
50
- * null for devices it does not own.
51
- *
52
- * `seenCaps` skips any system cap that already contributed via a binding so
53
- * its section is never duplicated.
54
- */
55
- export declare function collectSystemDeviceContributions(deps: AggregationDeps, deviceId: number, kind: 'settings' | 'live', seenCaps: ReadonlySet<string>): Promise<ContributionShape[]>;
54
+ * System-scoped per-device contributions — the deliberate exception to
55
+ * binding-driven aggregation (D12).
56
+ *
57
+ * A `scope: 'system'` cap with `exposesDeviceSettings: true` holds per-device
58
+ * state but is NOT bound per-device: it is a system addon, not a BaseDevice,
59
+ * so it never calls `registerNativeCap` and never appears in
60
+ * `getBindings(deviceId)`. The binding-driven loop therefore skips it and its
61
+ * per-device panel never renders. Two such caps ship today:
62
+ * - `stream-broker` (singleton) — the RTSP-restream / pre-buffer settings
63
+ * tab, scoped to the cameras whose streams it serves.
64
+ * - `device-export` (collection) — the "Export" panel; a device can be
65
+ * exposed to MULTIPLE exporters at once (Alexa + HomeKit + HA-MQTT).
66
+ *
67
+ * D12 bans fanning a per-device call out to every same-named provider of a
68
+ * `scope: 'device'` cap, because vendor providers SHARE cap names
69
+ * (`stream-params`/`ptz` from reolink AND hikvision). System caps are NOT
70
+ * vendor-shared — a system cap name maps to one active provider (singleton)
71
+ * or one declared collection — so consulting the cap's own provider(s)
72
+ * directly is safe. Each provider gates internally by deviceId and returns
73
+ * null for devices it does not own.
74
+ *
75
+ * `seenCaps` skips any system cap that already contributed via a binding so
76
+ * its section is never duplicated.
77
+ */
78
+ export declare function collectSystemDeviceContributions(deps: AggregationDeps, deviceId: number, kind: "settings" | "live", seenCaps: ReadonlySet<string>): Promise<ContributionShape[]>;
56
79
  /**
57
- * D14: framework-derived device-config contribution.
58
- *
59
- * `kind === 'live'` — device-config caps contribute nothing to the live
60
- * aggregate (they hold editable config, not live observables).
61
- *
62
- * `ui.kind === 'widget'` — emits a single structural `type:'widget'`
63
- * section; the widget self-persists via the cap's own mutations.
64
- *
65
- * `ui.kind === 'derived-form'` — calls `getOptions`/`getStatus` on the
66
- * bound provider, runs the registered pure builder, and returns the
67
- * derived form sections. Returns null when the camera exposes nothing
68
- * configurable or the provider is not yet registered.
69
- */
80
+ * D14: framework-derived device-config contribution.
81
+ *
82
+ * `kind === 'live'` — device-config caps contribute nothing to the live
83
+ * aggregate (they hold editable config, not live observables).
84
+ *
85
+ * `ui.kind === 'widget'` — emits a single structural `type:'widget'`
86
+ * section; the widget self-persists via the cap's own mutations.
87
+ *
88
+ * `ui.kind === 'derived-form'` — calls `getOptions`/`getStatus` on the
89
+ * bound provider, runs the registered pure builder, and returns the
90
+ * derived form sections. Returns null when the camera exposes nothing
91
+ * configurable or the provider is not yet registered.
92
+ */
70
93
  export declare function deriveDeviceConfigContribution(deps: AggregationDeps, registry: ICapabilityRegistry, def: CapabilityDefinition & {
71
- deviceConfig: DeviceConfigSpec;
72
- }, entry: DeviceBindingEntry, deviceId: number, kind: 'settings' | 'live'): Promise<ContributionShape | null>;
94
+ deviceConfig: DeviceConfigSpec;
95
+ }, entry: DeviceBindingEntry, deviceId: number, kind: "settings" | "live"): Promise<ContributionShape | null>;
73
96
  /**
74
- * Build the device-manager's own contribution to the aggregator — the
75
- * device identity (id, stableId, addonId, type, online) + the
76
- * driver-specific config exposed by the device class via
77
- * `zodEntriesToConfigUI`.
78
- *
79
- * Two paths, deliberately symmetric with `getSettingsSchema`:
80
- *
81
- * - Hub-local: device's IDevice instance lives in this process'
82
- * DeviceRegistry, we read config + schema directly by reference.
83
- * - Cross-process: device lives in a forked worker (RtspCamera on
84
- * provider-rtsp, ONVIF on provider-onvif, …). We ask the worker's
85
- * `device-ops.getSettingsSchema` native provider for a wire-
86
- * serializable ConfigUISchema and merge it in under the same
87
- * "Driver Config" section, so the UI sees the same shape regardless
88
- * of where the IDevice physically runs.
89
- *
90
- * Returns `null` only when the device genuinely doesn't exist anywhere
91
- * (no hub-local, no persisted ownership, no device-ops native). The
92
- * aggregator falls back to contributor sections only in that case.
93
- */
97
+ * Build the device-manager's own contribution to the aggregator — the
98
+ * device identity (id, stableId, addonId, type, online) + the
99
+ * driver-specific config exposed by the device class via
100
+ * `zodEntriesToConfigUI`.
101
+ *
102
+ * Two paths, deliberately symmetric with `getSettingsSchema`:
103
+ *
104
+ * - Hub-local: device's IDevice instance lives in this process'
105
+ * DeviceRegistry, we read config + schema directly by reference.
106
+ * - Cross-process: device lives in a forked worker (RtspCamera on
107
+ * provider-rtsp, ONVIF on provider-onvif, …). We ask the worker's
108
+ * `device-ops.getSettingsSchema` native provider for a wire-
109
+ * serializable ConfigUISchema and merge it in under the same
110
+ * "Driver Config" section, so the UI sees the same shape regardless
111
+ * of where the IDevice physically runs.
112
+ *
113
+ * Returns `null` only when the device genuinely doesn't exist anywhere
114
+ * (no hub-local, no persisted ownership, no device-ops native). The
115
+ * aggregator falls back to contributor sections only in that case.
116
+ */
94
117
  export declare function buildBaseDeviceSection(deps: AggregationDeps, deviceId: number): Promise<ContributionShape | null>;
95
118
  /**
96
- * Lookup the native owner for `device-ops` on `deviceId` — the native-cap
97
- * registry (hub-local and remote) is keyed by numeric id.
98
- */
119
+ * Lookup the native owner for `device-ops` on `deviceId` — the native-cap
120
+ * registry (hub-local and remote) is keyed by numeric id.
121
+ */
99
122
  export declare function resolveNativeDeviceOwner(deps: AggregationDeps, deviceId: number): {
100
- addonId: string;
101
- nodeId: string;
123
+ addonId: string;
124
+ nodeId: string;
102
125
  } | null;
103
126
  /**
104
- * How long ONE cap's `getStatus` may take before the aggregate gives up on it
105
- * and reports `null`.
106
- *
107
- * A cap call for a device owned by another node crosses the cluster, where the
108
- * transport's own ceiling is `REMOTE_CALL_TIMEOUT_MS` — SIXTY seconds. That
109
- * ceiling is right for a deliberate operator action; it is catastrophic here,
110
- * because this aggregate is what a camera LIST asks for on every boot, and it
111
- * has no answer to give until the slowest cap replies.
112
- *
113
- * The failure this bounds is not a node that is DOWN — `classifyCapRoute`
114
- * rejects those immediately with `node-offline`, which the catch below turns
115
- * into `null` in microseconds. It is a node that is FLAPPING: a crash-looping
116
- * agent re-registers every few seconds, so the registry believes it is online,
117
- * the call is routed, and the peer dies mid-flight. Then nothing throws and
118
- * nothing resolves. On 2026-08-08 little-unraid did exactly that for 22
119
- * minutes and the viewer showed a loading skeleton the whole time.
120
- *
121
- * 3s is chosen against what a HEALTHY remote cap costs (a same-LAN cap call is
122
- * single-digit ms; the slowest observed live is ~300ms) — so this cannot cut
123
- * off a working node — and against what a human waits for a camera list.
124
- */
125
- export declare const STATUS_CALL_DEADLINE_MS = 3000;
127
+ * How long ONE cap's `getStatus` may take before the aggregate gives up on it
128
+ * and reports `null`.
129
+ *
130
+ * A cap call for a device owned by another node crosses the cluster, where the
131
+ * transport's own ceiling is `REMOTE_CALL_TIMEOUT_MS` — SIXTY seconds. That
132
+ * ceiling is right for a deliberate operator action; it is catastrophic here,
133
+ * because this aggregate is what a camera LIST asks for on every boot, and it
134
+ * has no answer to give until the slowest cap replies.
135
+ *
136
+ * The failure this bounds is not a node that is DOWN — `classifyCapRoute`
137
+ * rejects those immediately with `node-offline`, which the catch below turns
138
+ * into `null` in microseconds. It is a node that is FLAPPING: a crash-looping
139
+ * agent re-registers every few seconds, so the registry believes it is online,
140
+ * the call is routed, and the peer dies mid-flight. Then nothing throws and
141
+ * nothing resolves. On 2026-08-08 little-unraid did exactly that for 22
142
+ * minutes and the viewer showed a loading skeleton the whole time.
143
+ *
144
+ * 3s is chosen against what a HEALTHY remote cap costs (a same-LAN cap call is
145
+ * single-digit ms; the slowest observed live is ~300ms) — so this cannot cut
146
+ * off a working node — and against what a human waits for a camera list.
147
+ */
148
+ export declare const STATUS_CALL_DEADLINE_MS = 3e3;
126
149
  /** Per-call bound for a status aggregation. Tests pass a small value; nothing
127
- * in production overrides the default. */
150
+ * in production overrides the default. */
128
151
  export interface StatusAggregateOptions {
129
- /** Deadline for a single cap's `getStatus`. Defaults to
130
- * {@link STATUS_CALL_DEADLINE_MS}. */
131
- readonly deadlineMs?: number;
152
+ /** Deadline for a single cap's `getStatus`. Defaults to
153
+ * {@link STATUS_CALL_DEADLINE_MS}. */
154
+ readonly deadlineMs?: number;
132
155
  }
133
156
  export declare function getDeviceStatusAggregate(deps: AggregationDeps, input: {
134
- readonly deviceId: number;
135
- readonly caps?: readonly string[];
157
+ readonly deviceId: number;
158
+ readonly caps?: readonly string[];
136
159
  }, options?: StatusAggregateOptions): Promise<Record<string, unknown | null>>;
137
160
  /**
138
- * `getDeviceStatusAggregate` for a LIST of devices, in one round-trip.
139
- *
140
- * Each device is aggregated by the SAME function the single-device call uses —
141
- * deliberately, because that function already encodes the behaviour that
142
- * matters: a provider that throws or returns an invalid status yields `null`
143
- * for that cap instead of poisoning the result. Re-implementing the walk here
144
- * to "batch it properly" would mean two copies of that rule and one of them
145
- * eventually missing it.
146
- *
147
- * A device whose whole aggregation fails still gets an ENTRY (all caps null)
148
- * rather than being omitted: a caller that reads a missing key as "not
149
- * answered yet" would keep the previous badge on screen forever.
150
- *
151
- * ## The response is BOUNDED, and that is load-bearing
152
- *
153
- * The windows are walked SEQUENTIALLY, so before the per-cap deadline existed a
154
- * single unanswerable device did not merely cost its own window — it held every
155
- * later window behind it, and the call never returned at all. That is the whole
156
- * mechanism behind "one node offline and the app loads nothing": this is the
157
- * one call a camera list makes for every card, the client has no timeout of its
158
- * own, and a tRPC query that never settles is `isLoading` forever.
159
- *
160
- * The ceiling is now `ceil(devices / STATUS_BATCH_WINDOW) × STATUS_CALL_DEADLINE_MS`
161
- * in the worst case (a dead device in every window), and unchanged when every
162
- * node is healthy. It is never unbounded.
163
- */
161
+ * `getDeviceStatusAggregate` for a LIST of devices, in one round-trip.
162
+ *
163
+ * Each device is aggregated by the SAME function the single-device call uses —
164
+ * deliberately, because that function already encodes the behaviour that
165
+ * matters: a provider that throws or returns an invalid status yields `null`
166
+ * for that cap instead of poisoning the result. Re-implementing the walk here
167
+ * to "batch it properly" would mean two copies of that rule and one of them
168
+ * eventually missing it.
169
+ *
170
+ * A device whose whole aggregation fails still gets an ENTRY (all caps null)
171
+ * rather than being omitted: a caller that reads a missing key as "not
172
+ * answered yet" would keep the previous badge on screen forever.
173
+ *
174
+ * ## The response is BOUNDED, and that is load-bearing
175
+ *
176
+ * The windows are walked SEQUENTIALLY, so before the per-cap deadline existed a
177
+ * single unanswerable device did not merely cost its own window — it held every
178
+ * later window behind it, and the call never returned at all. That is the whole
179
+ * mechanism behind "one node offline and the app loads nothing": this is the
180
+ * one call a camera list makes for every card, the client has no timeout of its
181
+ * own, and a tRPC query that never settles is `isLoading` forever.
182
+ *
183
+ * The ceiling is now `ceil(devices / STATUS_BATCH_WINDOW) × STATUS_CALL_DEADLINE_MS`
184
+ * in the worst case (a dead device in every window), and unchanged when every
185
+ * node is healthy. It is never unbounded.
186
+ */
164
187
  export declare function getDeviceStatusAggregateBatch(deps: AggregationDeps, input: {
165
- readonly deviceIds: readonly number[];
166
- readonly caps?: readonly string[];
188
+ readonly deviceIds: readonly number[];
189
+ readonly caps?: readonly string[];
167
190
  }, options?: StatusAggregateOptions): Promise<Record<string, Record<string, unknown | null>>>;
168
191
  /**
169
- * Return the driver-specific device-settings contribution. Hub-local
170
- * devices call `getSettingsUISchema()` directly; forked-worker devices
171
- * go through the `device-ops.getSettingsSchema` cap method on the
172
- * numeric-id-keyed native registry.
173
- *
174
- * Returns a discriminated result so callers can distinguish three states:
175
- * 'ok' – schema obtained successfully
176
- * 'none' – driver genuinely has no settings schema
177
- * 'unavailable' – worker was unreachable after retries (transient)
178
- */
192
+ * Return the driver-specific device-settings contribution. Hub-local
193
+ * devices call `getSettingsUISchema()` directly; forked-worker devices
194
+ * go through the `device-ops.getSettingsSchema` cap method on the
195
+ * numeric-id-keyed native registry.
196
+ *
197
+ * Returns a discriminated result so callers can distinguish three states:
198
+ * 'ok' – schema obtained successfully
199
+ * 'none' – driver genuinely has no settings schema
200
+ * 'unavailable' – worker was unreachable after retries (transient)
201
+ */
179
202
  export declare function resolveDriverConfigSchema(deps: AggregationDeps, deviceId: number, hubLocal: {
180
- addonId: string;
181
- device: IDevice;
203
+ addonId: string;
204
+ device: IDevice;
182
205
  } | null): Promise<DriverConfigSchemaResult>;
183
206
  /**
184
- * Provider surface for a `derived-form` device-config cap's save path.
185
- * Exactly one of `setProfile` / `setSettings` is present on the actual
186
- * bound provider — which one is present tells us how to route the
187
- * patch. `stream-params` exposes `setProfile` (profile axis); `day-night`
188
- * / `image-settings` expose `setSettings` (no profile axis). Never branch
189
- * on the cap name here — the method surface is the source of truth.
190
- */
207
+ * Provider surface for a `derived-form` device-config cap's save path.
208
+ * Exactly one of `setProfile` / `setSettings` is present on the actual
209
+ * bound provider — which one is present tells us how to route the
210
+ * patch. `stream-params` exposes `setProfile` (profile axis); `day-night`
211
+ * / `image-settings` expose `setSettings` (no profile axis). Never branch
212
+ * on the cap name here — the method surface is the source of truth.
213
+ */
191
214
  export interface DerivedFormSaveSurface {
192
- setProfile?: (input: {
193
- deviceId: number;
194
- profile: StreamProfile;
195
- patch: StreamProfilePatch;
196
- }) => Promise<void>;
197
- setSettings?: (input: {
198
- deviceId: number;
199
- settings: Record<string, unknown>;
200
- }) => Promise<void>;
215
+ setProfile?: (input: {
216
+ deviceId: number;
217
+ profile: StreamProfile;
218
+ patch: StreamProfilePatch;
219
+ }) => Promise<void>;
220
+ setSettings?: (input: {
221
+ deviceId: number;
222
+ settings: Record<string, unknown>;
223
+ }) => Promise<void>;
201
224
  }
202
225
  /**
203
- * Route a `derived-form` device-config cap's flat form patch to whichever
204
- * mutation the bound provider actually exposes — inspecting the
205
- * provider's method surface, not the cap name. `setSettings` fires once
206
- * with the parsed flat patch; `setProfile` fans the patch out per-profile
207
- * via the registered builderId reducer.
208
- */
226
+ * Route a `derived-form` device-config cap's flat form patch to whichever
227
+ * mutation the bound provider actually exposes — inspecting the
228
+ * provider's method surface, not the cap name. `setSettings` fires once
229
+ * with the parsed flat patch; `setProfile` fans the patch out per-profile
230
+ * via the registered builderId reducer.
231
+ */
209
232
  export declare function dispatchDerivedFormSave(builderId: string, deviceId: number, patch: Record<string, unknown>, dcProvider: DerivedFormSaveSurface, capName: string): Promise<void>;
210
233
  export declare function updateDeviceField(deps: AggregationDeps, input: {
211
- deviceId: number;
212
- writerCapName: string;
213
- writerAddonId: string;
214
- key: string;
215
- value: unknown;
234
+ deviceId: number;
235
+ writerCapName: string;
236
+ writerAddonId: string;
237
+ key: string;
238
+ value: unknown;
216
239
  }): Promise<{
217
- success: true;
240
+ success: true;
218
241
  }>;
219
242
  /**
220
- * Dispatch a device custom action. Hub-local devices run it directly;
221
- * forked/remote devices route through the `device-ops` native cap
222
- * (`runAction`) — the same hub-local-then-device-ops fan-out that
223
- * `updateDeviceField` uses for `applySettingsPatch`.
224
- */
243
+ * Dispatch a device custom action. Hub-local devices run it directly;
244
+ * forked/remote devices route through the `device-ops` native cap
245
+ * (`runAction`) — the same hub-local-then-device-ops fan-out that
246
+ * `updateDeviceField` uses for `applySettingsPatch`.
247
+ */
225
248
  export declare function dispatchDeviceAction(deps: AggregationDeps, deviceId: number, action: string, input: unknown): Promise<unknown>;
226
249
  /**
227
- * Resolve the `DeviceSettingsContribution` provider that owns a tagged
228
- * field. The `writerAddonId` on a tagged field equals `entry.providerAddonId`
229
- * from the binding that produced it — for `kind:'wrapped'` entries, that is
230
- * the wrapper addon id (e.g. 'snapshot-addon'); for native-only entries,
231
- * the system addon id.
232
- *
233
- * Resolution order (Bug-3 fix):
234
- * 1. `getProviderByAddon(capName, writerAddonId)` — resolves the
235
- * system-registered provider by the addon id from the tagged field.
236
- * For wrapper bindings (snapshot, motion-detection, etc.) this directly
237
- * returns the wrapper provider, bypassing the native-first resolution
238
- * order of `getProviderForDevice` that caused "method not found".
239
- * 2. `getSingleton(capName)` — fallback for stale/mismatched writerAddonIds.
240
- * The active singleton handles the contribution even if the addonId
241
- * stored in the field is out of date (e.g. after an addon rename).
242
- *
243
- * `getProviderForDevice` is intentionally NOT used here: it returns the
244
- * per-device native first when present (e.g. Reolink/ONVIF), and the native
245
- * does NOT implement contribution methods — the root cause of Bug-3.
246
- */
250
+ * Resolve the `DeviceSettingsContribution` provider that owns a tagged
251
+ * field. The `writerAddonId` on a tagged field equals `entry.providerAddonId`
252
+ * from the binding that produced it — for `kind:'wrapped'` entries, that is
253
+ * the wrapper addon id (e.g. 'snapshot-addon'); for native-only entries,
254
+ * the system addon id.
255
+ *
256
+ * Resolution order (Bug-3 fix):
257
+ * 1. `getProviderByAddon(capName, writerAddonId)` — resolves the
258
+ * system-registered provider by the addon id from the tagged field.
259
+ * For wrapper bindings (snapshot, motion-detection, etc.) this directly
260
+ * returns the wrapper provider, bypassing the native-first resolution
261
+ * order of `getProviderForDevice` that caused "method not found".
262
+ * 2. `getSingleton(capName)` — fallback for stale/mismatched writerAddonIds.
263
+ * The active singleton handles the contribution even if the addonId
264
+ * stored in the field is out of date (e.g. after an addon rename).
265
+ *
266
+ * `getProviderForDevice` is intentionally NOT used here: it returns the
267
+ * per-device native first when present (e.g. Reolink/ONVIF), and the native
268
+ * does NOT implement contribution methods — the root cause of Bug-3.
269
+ */
247
270
  export declare function resolveContributionProvider(registry: ICapabilityRegistry, _def: CapabilityDefinition, writerCapName: string, writerAddonId: string, deviceId: number): DeviceSettingsContribution;
248
271
  /**
249
- * Batched counterpart of `updateDeviceField`. Groups changes by
250
- * `(writerCapName, writerAddonId)` so each contributor receives a
251
- * single `applyDeviceSettingsPatch` with all of its updates merged —
252
- * avoids N round-trips for simultaneous edits in the same save.
253
- *
254
- * Per-provider failures are captured in the `failures[]` output so the
255
- * admin UI can highlight which sections didn't persist; a failure on
256
- * one provider does NOT abort the others.
257
- */
272
+ * Batched counterpart of `updateDeviceField`. Groups changes by
273
+ * `(writerCapName, writerAddonId)` so each contributor receives a
274
+ * single `applyDeviceSettingsPatch` with all of its updates merged —
275
+ * avoids N round-trips for simultaneous edits in the same save.
276
+ *
277
+ * Per-provider failures are captured in the `failures[]` output so the
278
+ * admin UI can highlight which sections didn't persist; a failure on
279
+ * one provider does NOT abort the others.
280
+ */
258
281
  export declare function updateDeviceFieldsBatch(deps: AggregationDeps, input: {
259
- deviceId: number;
260
- changes: ReadonlyArray<{
261
- writerCapName: string;
262
- writerAddonId: string;
263
- key: string;
264
- value: unknown;
265
- }>;
282
+ deviceId: number;
283
+ changes: ReadonlyArray<{
284
+ writerCapName: string;
285
+ writerAddonId: string;
286
+ key: string;
287
+ value: unknown;
288
+ }>;
266
289
  }): Promise<{
267
- success: true;
268
- failures: {
269
- writerCapName: string;
270
- writerAddonId: string;
271
- error: string;
272
- }[];
290
+ success: true;
291
+ failures: {
292
+ writerCapName: string;
293
+ writerAddonId: string;
294
+ error: string;
295
+ }[];
273
296
  }>;
274
297
  /** Apply a single grouped patch to the appropriate provider. Mirrors
275
- * `updateDeviceField` routing (special-case device-manager, else
276
- * registry lookup). Used by `updateDeviceFieldsBatch`. */
298
+ * `updateDeviceField` routing (special-case device-manager, else
299
+ * registry lookup). Used by `updateDeviceFieldsBatch`. */
277
300
  export declare function applyGroupPatch(deps: AggregationDeps, deviceId: number, group: {
278
- writerCapName: string;
279
- writerAddonId: string;
280
- patch: Record<string, unknown>;
301
+ writerCapName: string;
302
+ writerAddonId: string;
303
+ patch: Record<string, unknown>;
281
304
  }): Promise<void>;
282
305
  export declare function listWrappersForCap(deps: AggregationDeps, input: {
283
- capName: string;
306
+ capName: string;
284
307
  }): Promise<string[]>;
285
308
  export declare function listBindableCapsForDeviceType(deps: AggregationDeps, input: {
286
- deviceType: string;
309
+ deviceType: string;
287
310
  }): Promise<Array<{
288
- capName: string;
289
- wrappers: string[];
311
+ capName: string;
312
+ wrappers: string[];
290
313
  }>>;
291
314
  /**
292
- * Per-device wireable-field catalog — the domain status fields a device's
293
- * bound caps expose, for the operator's cross-device wiring UI. Binding-driven:
294
- * walks `getBindings(deviceId)`, skips wrapper caps (their status schemas are
295
- * internal book-keeping, not wireable domain data), and enumerates each cap's
296
- * status schema leaf fields (per-item fields included for item-array caps).
297
- *
298
- * `includeSynthesizable: true` (TARGET pickers only) additionally unions in
299
- * UNBOUND device-scoped caps that declare `status.empty` (the synthesize-target
300
- * marker) and whose `deviceTypes` admit this device's persisted type — so the
301
- * FIRST link to a synthesize-only cap (consumables on an HA vacuum) can be
302
- * authored before any binding exists. Default (absent/false) behavior is
303
- * byte-identical to the binding-driven catalog.
304
- */
305
- export declare function getWireableFields(deps: AggregationDeps, input: Parameters<IDeviceManagerProvider['getWireableFields']>[0]): ReturnType<IDeviceManagerProvider['getWireableFields']>;
315
+ * Per-device wireable-field catalog — the domain status fields a device's
316
+ * bound caps expose, for the operator's cross-device wiring UI. Binding-driven:
317
+ * walks `getBindings(deviceId)`, skips wrapper caps (their status schemas are
318
+ * internal book-keeping, not wireable domain data), and enumerates each cap's
319
+ * status schema leaf fields (per-item fields included for item-array caps).
320
+ *
321
+ * `includeSynthesizable: true` (TARGET pickers only) additionally unions in
322
+ * UNBOUND device-scoped caps that declare `status.empty` (the synthesize-target
323
+ * marker) and whose `deviceTypes` admit this device's persisted type — so the
324
+ * FIRST link to a synthesize-only cap (consumables on an HA vacuum) can be
325
+ * authored before any binding exists. Default (absent/false) behavior is
326
+ * byte-identical to the binding-driven catalog.
327
+ */
328
+ export declare function getWireableFields(deps: AggregationDeps, input: Parameters<IDeviceManagerProvider["getWireableFields"]>[0]): ReturnType<IDeviceManagerProvider["getWireableFields"]>;
306
329
  export {};