@camstack/system 1.2.389 → 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 -93
  307. package/dist/builtins/system-config/system-config.addon.js +46 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +46 -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,264 +1,273 @@
1
- import { ChildLayout, DeviceDisplayOverride, LocationIconId, RoleDisplayDefault } from '@camstack/types';
2
1
  /**
3
- * Wire shape matching `z.infer<typeof SettingsSchemaWithValuesSchema>` —
4
- * duplicated as a plain interface because importing the Zod schema across
5
- * package boundaries confuses `tsc` when the types package pins a
6
- * different `zod` minor than the core package. Keeping the shape local
7
- * keeps the addon decoupled from the schema's internal type encoding.
8
- */
2
+ * Shared persistence + contribution wire types for the device-manager addon.
3
+ *
4
+ * Extracted verbatim from `device-manager.addon.ts` so the focused modules
5
+ * (`device-projection`, `device-aggregation-merge`, the bindings store, …)
6
+ * can import the same shapes without depending on the addon class. Types plus
7
+ * the decoders that turn an untyped store read into one of them — nothing that
8
+ * touches a store, a device or an event.
9
+ */
10
+ import type { ChildLayout, DeviceDisplayOverride, LocationIconId, RoleDisplayDefault } from "@camstack/types";
11
+ /**
12
+ * Wire shape matching `z.infer<typeof SettingsSchemaWithValuesSchema>` —
13
+ * duplicated as a plain interface because importing the Zod schema across
14
+ * package boundaries confuses `tsc` when the types package pins a
15
+ * different `zod` minor than the core package. Keeping the shape local
16
+ * keeps the addon decoupled from the schema's internal type encoding.
17
+ */
9
18
  export interface ContributionShape {
10
- tabs?: Array<{
11
- id: string;
12
- label: string;
13
- icon: string;
14
- order?: number;
15
- }>;
16
- sections: Array<{
17
- id: string;
18
- title: string;
19
- description?: string;
20
- style?: 'card' | 'accordion';
21
- defaultCollapsed?: boolean;
22
- columns?: 1 | 2 | 3 | 4;
23
- tab?: string;
24
- /** Where the section renders. Default 'settings' (Config tab); 'top-tab' hoists into the device-detail tab bar via DeviceDetail discovery. */
25
- location?: 'settings' | 'top-tab';
26
- order?: number;
27
- fields: unknown[];
28
- }>;
19
+ tabs?: Array<{
20
+ id: string;
21
+ label: string;
22
+ icon: string;
23
+ order?: number;
24
+ }>;
25
+ sections: Array<{
26
+ id: string;
27
+ title: string;
28
+ description?: string;
29
+ style?: "card" | "accordion";
30
+ defaultCollapsed?: boolean;
31
+ columns?: 1 | 2 | 3 | 4;
32
+ tab?: string;
33
+ /** Where the section renders. Default 'settings' (Config tab); 'top-tab' hoists into the device-detail tab bar via DeviceDetail discovery. */
34
+ location?: "settings" | "top-tab";
35
+ order?: number;
36
+ fields: unknown[];
37
+ }>;
29
38
  }
30
- export type AggregateTabDecl = NonNullable<ContributionShape['tabs']>[number];
31
- export type AggregateSection = ContributionShape['sections'][number];
39
+ export type AggregateTabDecl = NonNullable<ContributionShape["tabs"]>[number];
40
+ export type AggregateSection = ContributionShape["sections"][number];
32
41
  /**
33
- * Discriminated result from `resolveDriverConfigSchema`:
34
- * 'ok' – schema obtained; `schema` field is present.
35
- * 'none' – driver has no settings schema (legitimate empty).
36
- * 'unavailable' – cross-process call failed after retries (transient).
37
- */
42
+ * Discriminated result from `resolveDriverConfigSchema`:
43
+ * 'ok' – schema obtained; `schema` field is present.
44
+ * 'none' – driver has no settings schema (legitimate empty).
45
+ * 'unavailable' – cross-process call failed after retries (transient).
46
+ */
38
47
  export type DriverConfigSchemaResult = {
39
- status: 'ok';
40
- schema: ContributionShape;
48
+ status: "ok";
49
+ schema: ContributionShape;
41
50
  } | {
42
- status: 'none';
51
+ status: "none";
43
52
  } | {
44
- status: 'unavailable';
53
+ status: "unavailable";
45
54
  };
46
55
  /**
47
- * One `(device, capability)` row of the persisted wrapper-activation store —
48
- * the authority for every per-camera function switch (D62).
49
- *
50
- * SINGLETON capabilities only. `wrapperAddonId` is the bound wrapper, or the
51
- * explicit `null` "operator disabled" marker that stops `getBindings` step 2
52
- * re-binding a `defaultActive` wrapper; absent means the operator never touched
53
- * this cap on this device.
54
- *
55
- * **A COLLECTION capability has no row here, by design.** Its providers are a
56
- * SET, and the set is DERIVED from who provides the cap
57
- * (`device-bindings-store.ts` step 0) — *"tutti i providers funzionano sempre,
58
- * non serve disattivarli/attivarli … loro vivono lì"* [all the providers always work, there is no need to deactivate/activate them … they live there] (operator, 2026-09-20).
59
- * Nothing persists it, so nothing has to be back-filled onto a fleet and
60
- * nothing goes stale when an addon is deployed to a camera later.
61
- * `setWrapperActive` REFUSES a collection cap rather than writing a field the
62
- * enumeration does not read — `disabledSourceIds` / `disabledSourceAddonIds`
63
- * (D556, D555) were exactly that, and
64
- * `scripts/check-device-selection-authority.ts` now makes it unrepresentable.
65
- */
56
+ * One `(device, capability)` row of the persisted wrapper-activation store —
57
+ * the authority for every per-camera function switch (D62).
58
+ *
59
+ * SINGLETON capabilities only. `wrapperAddonId` is the bound wrapper, or the
60
+ * explicit `null` "operator disabled" marker that stops `getBindings` step 2
61
+ * re-binding a `defaultActive` wrapper; absent means the operator never touched
62
+ * this cap on this device.
63
+ *
64
+ * **A COLLECTION capability has no row here, by design.** Its providers are a
65
+ * SET, and the set is DERIVED from who provides the cap
66
+ * (`device-bindings-store.ts` step 0) — *"tutti i providers funzionano sempre,
67
+ * non serve disattivarli/attivarli … loro vivono lì"* [all the providers always work, there is no need to deactivate/activate them … they live there] (operator, 2026-09-20).
68
+ * Nothing persists it, so nothing has to be back-filled onto a fleet and
69
+ * nothing goes stale when an addon is deployed to a camera later.
70
+ * `setWrapperActive` REFUSES a collection cap rather than writing a field the
71
+ * enumeration does not read — `disabledSourceIds` / `disabledSourceAddonIds`
72
+ * (D556, D555) were exactly that, and
73
+ * `scripts/check-device-selection-authority.ts` now makes it unrepresentable.
74
+ */
66
75
  export interface DeviceCapBinding {
67
- readonly wrapperAddonId?: string | null;
76
+ readonly wrapperAddonId?: string | null;
68
77
  }
69
78
  export interface DeviceBindingsStore {
70
- readonly deviceBindings: Record<string, Record<string, DeviceCapBinding>>;
79
+ readonly deviceBindings: Record<string, Record<string, DeviceCapBinding>>;
71
80
  }
72
81
  export interface PersistedDeviceMeta {
73
- type: string;
74
- name: string;
75
- /** The owning addon's own identifier for this device (`stableId`) and the
76
- * owning addon id (`addonId`). Both are now stored as FIELDS on the record
77
- * because the `deviceMeta` map is keyed by the numeric device `id` (not the
78
- * former composite `${addonId}:${stableId}` key). They make each row
79
- * self-describing — meta lookups resolve `(addonId, stableId)` directly from
80
- * the record instead of parsing a composite key. */
81
- addonId: string;
82
- stableId: string;
83
- /** True once an operator explicitly renamed the device via `setName` (#17).
84
- * Drives the `registerDevice` reconcile name-precedence: when set, the
85
- * operator's name is PRESERVED; when unset, the fresh provider/construction
86
- * name wins so an improved auto-name propagates instead of freezing. Absent on
87
- * legacy rows — the reconcile treats a non-placeholder name as user-named for
88
- * safety and stamps the resolved decision forward. */
89
- userNamed?: boolean;
90
- /**
91
- * Operator-organisational label (room / area / zone). `null` when
92
- * unset. Mutable through `setLocation` action; surfaced on
93
- * `IDevice.location` via the kernel-built `DeviceContext.deviceMeta`
94
- * snapshot. Free-text — providers don't interpret it.
95
- */
96
- location: string | null;
97
- /**
98
- * Soft-disabled flag. When `true`, the device class is still
99
- * instantiated and visible in the UI (so the operator can flip
100
- * back on without re-adding) but lifecycle hooks are gated by
101
- * `BaseDevice.disabled`. Mutable through `setDisabled` action.
102
- */
103
- disabled: boolean;
104
- /** Numeric parent id (or null for standalone). The hub resolves the
105
- * parent's stableId to its numeric id at registration time, and from
106
- * there everything internal references the parent by `parentDeviceId`
107
- * — `stableId` only crosses the external boundary (autodiscovery and
108
- * `(addonId, stableId)` row lookups). */
109
- parentDeviceId: number | null;
110
- /** Progressive, system-wide unique id. Allocated through
111
- * `allocateDeviceId` before `registerDevice` runs; backfilled at boot
112
- * for any legacy meta entry missing it (see init migration below).
113
- * Post-init invariant: every persisted device has a numeric id. */
114
- id: number;
115
- /** Snapshot of `device.features` from the most recent `registerDevice`
116
- * call. Used by `getDevice` when the live `IDevice` instance lives
117
- * on a forked-worker / remote agent and isn't reachable from the
118
- * hub registry. Optional for legacy rows that predate the field —
119
- * callers fall back to an empty array. */
120
- features?: readonly string[];
121
- /** Stable hash of the device's EXPORT-relevant shape
122
- * (`canonicalDeviceFingerprint({ deviceType, features })`). Recomputed on
123
- * every `registerDevice`; when it changes, a `DeviceProvisioned` event is
124
- * emitted so export adapters reconcile with ONE delta instead of reacting
125
- * to the chatty per-cap `DeviceBindingsChanged`. Optional for legacy rows
126
- * that predate the field. Spec:
127
- * docs/superpowers/specs/2026-06-01-alexa-hap-export-reconciler-design.md */
128
- exportFingerprint?: string;
129
- /** Owning integration id, stamped at create via `setIntegrationId`. Optional:
130
- * only present when the device was adopted through an integration (e.g. HA).
131
- * Used by `removeByIntegration` to cascade-delete an integration's fleet. */
132
- integrationId?: string;
133
- /** Linked device id, stamped at create via `setLinkDeviceId`. Optional:
134
- * only present when the device is linked to another device (e.g. HA entity
135
- * linked to a parent camera). `null` explicitly clears a previous link. */
136
- linkDeviceId?: number | null;
137
- /** Durable primary-child override for a CONTAINER device, set via
138
- * `setPrimaryChildEntityId`. Keyed on the chosen child's
139
- * re-sync/rename-stable `entityId` (its `sourceInfo.id`, falling back to
140
- * `stableId`) so it survives a re-sync that reallocates the child's numeric
141
- * id — unlike the numeric `linkDeviceId`. `null` clears the override. */
142
- primaryChildEntityId?: string | null;
143
- /** Container-level layout hint: assigns specific child/accessory devices to
144
- * named accordion sections (with optional order). Keyed on each child's
145
- * re-sync-stable accessory `stableIdSuffix`. Set at create, preserved across
146
- * re-register/restore — same lifecycle as `primaryChildEntityId`. */
147
- childLayout?: ChildLayout;
148
- /** Semantic role string (`DeviceRole`), stamped at create via `setRole`.
149
- * Optional: only present for accessory children that carry a known role
150
- * (e.g. 'numeric-sensor', 'binary-sensor'). `null` clears a previous role. */
151
- role?: string | null;
152
- /** Operator-authored per-device display override (icon/label/unit/precision/
153
- * hidden), set via `setDisplay`. Same create/persist/project/restore
154
- * lifecycle as `childLayout`. Absent ⇒ no override. Applied at render time
155
- * only — storage stays in source units. */
156
- display?: DeviceDisplayOverride;
82
+ type: string;
83
+ name: string;
84
+ /** The owning addon's own identifier for this device (`stableId`) and the
85
+ * owning addon id (`addonId`). Both are now stored as FIELDS on the record
86
+ * because the `deviceMeta` map is keyed by the numeric device `id` (not the
87
+ * former composite `${addonId}:${stableId}` key). They make each row
88
+ * self-describing — meta lookups resolve `(addonId, stableId)` directly from
89
+ * the record instead of parsing a composite key. */
90
+ addonId: string;
91
+ stableId: string;
92
+ /** True once an operator explicitly renamed the device via `setName` (#17).
93
+ * Drives the `registerDevice` reconcile name-precedence: when set, the
94
+ * operator's name is PRESERVED; when unset, the fresh provider/construction
95
+ * name wins so an improved auto-name propagates instead of freezing. Absent on
96
+ * legacy rows — the reconcile treats a non-placeholder name as user-named for
97
+ * safety and stamps the resolved decision forward. */
98
+ userNamed?: boolean;
99
+ /**
100
+ * Operator-organisational label (room / area / zone). `null` when
101
+ * unset. Mutable through `setLocation` action; surfaced on
102
+ * `IDevice.location` via the kernel-built `DeviceContext.deviceMeta`
103
+ * snapshot. Free-text — providers don't interpret it.
104
+ */
105
+ location: string | null;
106
+ /**
107
+ * Soft-disabled flag. When `true`, the device class is still
108
+ * instantiated and visible in the UI (so the operator can flip
109
+ * back on without re-adding) but lifecycle hooks are gated by
110
+ * `BaseDevice.disabled`. Mutable through `setDisabled` action.
111
+ */
112
+ disabled: boolean;
113
+ /** Numeric parent id (or null for standalone). The hub resolves the
114
+ * parent's stableId to its numeric id at registration time, and from
115
+ * there everything internal references the parent by `parentDeviceId`
116
+ * — `stableId` only crosses the external boundary (autodiscovery and
117
+ * `(addonId, stableId)` row lookups). */
118
+ parentDeviceId: number | null;
119
+ /** Progressive, system-wide unique id. Allocated through
120
+ * `allocateDeviceId` before `registerDevice` runs; backfilled at boot
121
+ * for any legacy meta entry missing it (see init migration below).
122
+ * Post-init invariant: every persisted device has a numeric id. */
123
+ id: number;
124
+ /** Snapshot of `device.features` from the most recent `registerDevice`
125
+ * call. Used by `getDevice` when the live `IDevice` instance lives
126
+ * on a forked-worker / remote agent and isn't reachable from the
127
+ * hub registry. Optional for legacy rows that predate the field —
128
+ * callers fall back to an empty array. */
129
+ features?: readonly string[];
130
+ /** Stable hash of the device's EXPORT-relevant shape
131
+ * (`canonicalDeviceFingerprint({ deviceType, features })`). Recomputed on
132
+ * every `registerDevice`; when it changes, a `DeviceProvisioned` event is
133
+ * emitted so export adapters reconcile with ONE delta instead of reacting
134
+ * to the chatty per-cap `DeviceBindingsChanged`. Optional for legacy rows
135
+ * that predate the field. Spec:
136
+ * docs/superpowers/specs/2026-06-01-alexa-hap-export-reconciler-design.md */
137
+ exportFingerprint?: string;
138
+ /** Owning integration id, stamped at create via `setIntegrationId`. Optional:
139
+ * only present when the device was adopted through an integration (e.g. HA).
140
+ * Used by `removeByIntegration` to cascade-delete an integration's fleet. */
141
+ integrationId?: string;
142
+ /** Linked device id, stamped at create via `setLinkDeviceId`. Optional:
143
+ * only present when the device is linked to another device (e.g. HA entity
144
+ * linked to a parent camera). `null` explicitly clears a previous link. */
145
+ linkDeviceId?: number | null;
146
+ /** Durable primary-child override for a CONTAINER device, set via
147
+ * `setPrimaryChildEntityId`. Keyed on the chosen child's
148
+ * re-sync/rename-stable `entityId` (its `sourceInfo.id`, falling back to
149
+ * `stableId`) so it survives a re-sync that reallocates the child's numeric
150
+ * id — unlike the numeric `linkDeviceId`. `null` clears the override. */
151
+ primaryChildEntityId?: string | null;
152
+ /** Container-level layout hint: assigns specific child/accessory devices to
153
+ * named accordion sections (with optional order). Keyed on each child's
154
+ * re-sync-stable accessory `stableIdSuffix`. Set at create, preserved across
155
+ * re-register/restore — same lifecycle as `primaryChildEntityId`. */
156
+ childLayout?: ChildLayout;
157
+ /** Semantic role string (`DeviceRole`), stamped at create via `setRole`.
158
+ * Optional: only present for accessory children that carry a known role
159
+ * (e.g. 'numeric-sensor', 'binary-sensor'). `null` clears a previous role. */
160
+ role?: string | null;
161
+ /** Operator-authored per-device display override (icon/label/unit/precision/
162
+ * hidden), set via `setDisplay`. Same create/persist/project/restore
163
+ * lifecycle as `childLayout`. Absent ⇒ no override. Applied at render time
164
+ * only — storage stays in source units. */
165
+ display?: DeviceDisplayOverride;
157
166
  }
158
167
  /**
159
- * The device-manager's own `addon-settings` row set — everything that is NOT a
160
- * device.
161
- *
162
- * The three fleet blobs that used to live here (`deviceMeta`, `deviceMetadata`,
163
- * `deviceIndex`) are gone: devices are rows in `device-manager:devices`
164
- * (`device-row-store.ts`). What is left is four small keys, together under a
165
- * kilobyte on the reference hub — which matters because `writeAddonStore` for a
166
- * hub builtin is `setAllAddon`, a DELETE + re-INSERT of every key the addon owns.
167
- */
168
+ * The device-manager's own `addon-settings` row set — everything that is NOT a
169
+ * device.
170
+ *
171
+ * The three fleet blobs that used to live here (`deviceMeta`, `deviceMetadata`,
172
+ * `deviceIndex`) are gone: devices are rows in `device-manager:devices`
173
+ * (`device-row-store.ts`). What is left is four small keys, together under a
174
+ * kilobyte on the reference hub — which matters because `writeAddonStore` for a
175
+ * hub builtin is `setAllAddon`, a DELETE + re-INSERT of every key the addon owns.
176
+ */
168
177
  export interface AddonStore {
169
- /** Monotonic counter that feeds `PersistedDeviceMeta.id` for every
170
- * new device. Incremented exactly once per registerDevice; never
171
- * decremented. */
172
- nextDeviceId?: number;
173
- /**
174
- * Operator-curated location registry. Each entry is a free-form room/
175
- * area label (e.g. "Cucina", "Garage") that drives the
176
- * autocomplete in the Device Info location editor. Devices reference
177
- * these as plain strings via `PersistedDeviceMeta.location` — the
178
- * registry is purely a suggestion list, NOT a foreign key. Removing a
179
- * location from the registry leaves devices that still reference it
180
- * intact; `listLocations` returns the union of registered labels +
181
- * labels currently in use, so nothing disappears from the UI even if
182
- * the operator forgot to register a label before assigning it.
183
- */
184
- locations?: readonly string[];
185
- /**
186
- * Icon per location, keyed by `locationIconKey(label)` — trimmed and
187
- * lower-cased, the same equality the registry itself matches on. Lives HERE,
188
- * beside `locations`, because that is where a location exists at all: a
189
- * location is a label, not a row, so there is no record to hang an icon on.
190
- *
191
- * Keyed on the folded label rather than the operator's casing on purpose. A
192
- * case-only rename (`cucina` → `Cucina`) is a real edit this repo supports,
193
- * and a map keyed on the displayed spelling would silently orphan its entry
194
- * on exactly that edit — the icon would vanish and nothing would say why.
195
- *
196
- * A value outside `LOCATION_ICON_IDS` is DROPPED on decode, not trusted: the
197
- * store is JSON on disk and a renderer handed an unknown id can only draw a
198
- * hole. Dropping it degrades the location to the fallback pin instead.
199
- */
200
- locationIcons?: Readonly<Record<string, LocationIconId>>;
201
- /**
202
- * What each location LOOKS like, in the operator's own words, keyed the same
203
- * way as {@link AddonStore.locationIcons}.
204
- *
205
- * Beside the icon and not in the consumer that reads it (the summary AI)
206
- * because it is a fact about the PLACE, not about the digest. It lived in
207
- * the post-analysis addon's settings, keyed by a hand-typed label matched
208
- * exactly and case-sensitively, and the cost was invisible: a rename in the
209
- * Locations page carried the icon and left the description on a key no
210
- * location would ever carry again.
211
- *
212
- * A value that is not a non-empty string is DROPPED on decode — an empty
213
- * description costs the model attention and says nothing, so it must never
214
- * reach it.
215
- */
216
- locationDescriptions?: Readonly<Record<string, string>>;
217
- /**
218
- * SITE ZONES — named parts of the property that group locations, keyed by
219
- * `siteZoneKey(label)`. The label is stored as the operator typed it; the
220
- * key is what everything else joins on.
221
- *
222
- * Split from {@link AddonStore.locationZones} on purpose: a zone EXISTS
223
- * independently of anything being in it. Folding the two into one map would
224
- * make an empty zone unrepresentable, so creating one and then filling it —
225
- * the obvious order — would be impossible, and clearing the last room would
226
- * silently delete the zone and its icon.
227
- */
228
- siteZones?: Readonly<Record<string, SiteZoneRecord>>;
229
- /**
230
- * Which zone each location belongs to: `locationKey → zoneKey`.
231
- *
232
- * This direction, not `zone → locations`, because it makes "at most one zone
233
- * per location" true BY CONSTRUCTION rather than by a check somebody has to
234
- * remember — there is one slot, so a second assignment moves the room
235
- * instead of duplicating it.
236
- *
237
- * Keyed on the folded location label, like the icon and the description, and
238
- * carried by `renameLocation` / dropped by `removeLocation` for the same
239
- * reason they are: this repo has already lost an icon to a rename once.
240
- */
241
- locationZones?: Readonly<Record<string, string>>;
242
- /** Operator-authored per-role display defaults (unit/precision/icon), keyed
243
- * by `DeviceRole` string. Resolution merges these UNDER any per-device
244
- * `display` override. Written whole-record by `setRoleDisplayDefaults`
245
- * (full replace — no read-modify-write, single writer, so it never
246
- * interacts with the device write lock). */
247
- roleDisplayDefaults?: Record<string, RoleDisplayDefault>;
178
+ /** Monotonic counter that feeds `PersistedDeviceMeta.id` for every
179
+ * new device. Incremented exactly once per registerDevice; never
180
+ * decremented. */
181
+ nextDeviceId?: number;
182
+ /**
183
+ * Operator-curated location registry. Each entry is a free-form room/
184
+ * area label (e.g. "Cucina", "Garage") that drives the
185
+ * autocomplete in the Device Info location editor. Devices reference
186
+ * these as plain strings via `PersistedDeviceMeta.location` — the
187
+ * registry is purely a suggestion list, NOT a foreign key. Removing a
188
+ * location from the registry leaves devices that still reference it
189
+ * intact; `listLocations` returns the union of registered labels +
190
+ * labels currently in use, so nothing disappears from the UI even if
191
+ * the operator forgot to register a label before assigning it.
192
+ */
193
+ locations?: readonly string[];
194
+ /**
195
+ * Icon per location, keyed by `locationIconKey(label)` — trimmed and
196
+ * lower-cased, the same equality the registry itself matches on. Lives HERE,
197
+ * beside `locations`, because that is where a location exists at all: a
198
+ * location is a label, not a row, so there is no record to hang an icon on.
199
+ *
200
+ * Keyed on the folded label rather than the operator's casing on purpose. A
201
+ * case-only rename (`cucina` → `Cucina`) is a real edit this repo supports,
202
+ * and a map keyed on the displayed spelling would silently orphan its entry
203
+ * on exactly that edit — the icon would vanish and nothing would say why.
204
+ *
205
+ * A value outside `LOCATION_ICON_IDS` is DROPPED on decode, not trusted: the
206
+ * store is JSON on disk and a renderer handed an unknown id can only draw a
207
+ * hole. Dropping it degrades the location to the fallback pin instead.
208
+ */
209
+ locationIcons?: Readonly<Record<string, LocationIconId>>;
210
+ /**
211
+ * What each location LOOKS like, in the operator's own words, keyed the same
212
+ * way as {@link AddonStore.locationIcons}.
213
+ *
214
+ * Beside the icon and not in the consumer that reads it (the summary AI)
215
+ * because it is a fact about the PLACE, not about the digest. It lived in
216
+ * the post-analysis addon's settings, keyed by a hand-typed label matched
217
+ * exactly and case-sensitively, and the cost was invisible: a rename in the
218
+ * Locations page carried the icon and left the description on a key no
219
+ * location would ever carry again.
220
+ *
221
+ * A value that is not a non-empty string is DROPPED on decode — an empty
222
+ * description costs the model attention and says nothing, so it must never
223
+ * reach it.
224
+ */
225
+ locationDescriptions?: Readonly<Record<string, string>>;
226
+ /**
227
+ * SITE ZONES — named parts of the property that group locations, keyed by
228
+ * `siteZoneKey(label)`. The label is stored as the operator typed it; the
229
+ * key is what everything else joins on.
230
+ *
231
+ * Split from {@link AddonStore.locationZones} on purpose: a zone EXISTS
232
+ * independently of anything being in it. Folding the two into one map would
233
+ * make an empty zone unrepresentable, so creating one and then filling it —
234
+ * the obvious order — would be impossible, and clearing the last room would
235
+ * silently delete the zone and its icon.
236
+ */
237
+ siteZones?: Readonly<Record<string, SiteZoneRecord>>;
238
+ /**
239
+ * Which zone each location belongs to: `locationKey → zoneKey`.
240
+ *
241
+ * This direction, not `zone → locations`, because it makes "at most one zone
242
+ * per location" true BY CONSTRUCTION rather than by a check somebody has to
243
+ * remember — there is one slot, so a second assignment moves the room
244
+ * instead of duplicating it.
245
+ *
246
+ * Keyed on the folded location label, like the icon and the description, and
247
+ * carried by `renameLocation` / dropped by `removeLocation` for the same
248
+ * reason they are: this repo has already lost an icon to a rename once.
249
+ */
250
+ locationZones?: Readonly<Record<string, string>>;
251
+ /** Operator-authored per-role display defaults (unit/precision/icon), keyed
252
+ * by `DeviceRole` string. Resolution merges these UNDER any per-device
253
+ * `display` override. Written whole-record by `setRoleDisplayDefaults`
254
+ * (full replace — no read-modify-write, single writer, so it never
255
+ * interacts with the device write lock). */
256
+ roleDisplayDefaults?: Record<string, RoleDisplayDefault>;
248
257
  }
249
258
  /**
250
- * Decode the raw `ctx.settings.readAddonStore()` record into {@link AddonStore}.
251
- *
252
- * A field of the wrong shape reads as ABSENT rather than being trusted through
253
- * a cast: the store is JSON on disk and a hand-edit or a partial restore must
254
- * cost the caller its default, never a downstream `TypeError`.
255
- */
259
+ * Decode the raw `ctx.settings.readAddonStore()` record into {@link AddonStore}.
260
+ *
261
+ * A field of the wrong shape reads as ABSENT rather than being trusted through
262
+ * a cast: the store is JSON on disk and a hand-edit or a partial restore must
263
+ * cost the caller its default, never a downstream `TypeError`.
264
+ */
256
265
  export declare function decodeAddonStore(raw: Record<string, unknown>): AddonStore;
257
266
  /**
258
- * One zone on disk. The icon is OPTIONAL and absent means "nobody chose one" —
259
- * never the fallback pin, which is the renderer's business.
260
- */
267
+ * One zone on disk. The icon is OPTIONAL and absent means "nobody chose one" —
268
+ * never the fallback pin, which is the renderer's business.
269
+ */
261
270
  export interface SiteZoneRecord {
262
- readonly label: string;
263
- readonly icon?: LocationIconId;
271
+ readonly label: string;
272
+ readonly icon?: LocationIconId;
264
273
  }
@@ -1,35 +1,35 @@
1
1
  /**
2
- * What "online" means for a device the hub can only see on disk.
3
- *
4
- * The authority for a device's liveness is the addon that owns it (D224): it
5
- * publishes `device-status` through `markOnline`, the hub mirrors that slice,
6
- * and every persisted-row projection reads the mirror. The FALLBACK — what the
7
- * hub answers before any slice has arrived — used to be "a persisted row
8
- * implies a successful registration, so: online". That assumption is false for
9
- * exactly one shape of row, and it is the shape a bad removal leaves behind: a
10
- * top-level device with NO configuration, which its provider can never restore
11
- * (its config schema rejects an empty blob), so no owner will ever publish a
12
- * slice contradicting the guess.
13
- *
14
- * Device 614 was reported `online: true` for a full day that way, while its
15
- * provider logged `Failed to restore device` eight times. A device without
16
- * configuration cannot be online — the row is a leftover, not a camera. See
17
- * D376.
18
- *
19
- * Children are left on the legacy fallback deliberately: an accessory child
20
- * (siren, floodlight, PIR) legitimately carries an empty config blob and gets
21
- * its liveness from the parent's worker.
22
- */
2
+ * What "online" means for a device the hub can only see on disk.
3
+ *
4
+ * The authority for a device's liveness is the addon that owns it (D224): it
5
+ * publishes `device-status` through `markOnline`, the hub mirrors that slice,
6
+ * and every persisted-row projection reads the mirror. The FALLBACK — what the
7
+ * hub answers before any slice has arrived — used to be "a persisted row
8
+ * implies a successful registration, so: online". That assumption is false for
9
+ * exactly one shape of row, and it is the shape a bad removal leaves behind: a
10
+ * top-level device with NO configuration, which its provider can never restore
11
+ * (its config schema rejects an empty blob), so no owner will ever publish a
12
+ * slice contradicting the guess.
13
+ *
14
+ * Device 614 was reported `online: true` for a full day that way, while its
15
+ * provider logged `Failed to restore device` eight times. A device without
16
+ * configuration cannot be online — the row is a leftover, not a camera. See
17
+ * D376.
18
+ *
19
+ * Children are left on the legacy fallback deliberately: an accessory child
20
+ * (siren, floodlight, PIR) legitimately carries an empty config blob and gets
21
+ * its liveness from the parent's worker.
22
+ */
23
23
  export interface PersistedOnlineFallbackInput {
24
- /** Is a hub-side device registry present at all? `false` is the "offline view". */
25
- readonly registryPresent: boolean;
26
- /** `null` for a top-level device. */
27
- readonly parentDeviceId: number | null;
28
- /** The device's persisted config blob, as read from its device store. */
29
- readonly config: Record<string, unknown> | undefined;
24
+ /** Is a hub-side device registry present at all? `false` is the "offline view". */
25
+ readonly registryPresent: boolean;
26
+ /** `null` for a top-level device. */
27
+ readonly parentDeviceId: number | null;
28
+ /** The device's persisted config blob, as read from its device store. */
29
+ readonly config: Record<string, unknown> | undefined;
30
30
  }
31
31
  /**
32
- * The value to hand `resolveDeviceOnline` as its fallback. The mirrored
33
- * `device-status` slice, when one exists, still wins over this.
34
- */
32
+ * The value to hand `resolveDeviceOnline` as its fallback. The mirrored
33
+ * `device-status` slice, when one exists, still wins over this.
34
+ */
35
35
  export declare function persistedOnlineFallback(input: PersistedOnlineFallbackInput): boolean;