@camstack/system 1.2.390 → 1.2.392

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/addon-utils.js +1 -1
  7. package/dist/addon-utils.mjs +1 -1
  8. package/dist/amd-accelerators-CEuPFBBK.js +36 -0
  9. package/dist/amd-accelerators-U_RsoEDd.mjs +35 -0
  10. package/dist/amd-npu-B-QyyMyF.js +53 -0
  11. package/dist/amd-npu-Db_SoSuL.mjs +52 -0
  12. package/dist/auth/admin-token-manager.d.ts +37 -67
  13. package/dist/auth/api-key-manager.d.ts +8 -8
  14. package/dist/auth/auth-audit-log.d.ts +29 -49
  15. package/dist/auth/auth-manager.d.ts +127 -126
  16. package/dist/auth/cidr.d.ts +8 -8
  17. package/dist/auth/external-identity-manager.d.ts +46 -34
  18. package/dist/auth/jwt-signing-key.d.ts +14 -14
  19. package/dist/auth/login-session-manager.d.ts +95 -135
  20. package/dist/auth/parse-record.d.ts +13 -13
  21. package/dist/auth/scope-matcher.d.ts +7 -7
  22. package/dist/auth/scoped-token-manager.d.ts +62 -62
  23. package/dist/auth/token-expiry.d.ts +49 -26
  24. package/dist/auth/totp-manager.d.ts +48 -48
  25. package/dist/auth/user-management-internal.d.ts +67 -52
  26. package/dist/auth/user-manager.d.ts +58 -58
  27. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  28. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  29. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  30. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  31. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  32. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  33. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  34. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  35. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  36. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  37. package/dist/builtins/alerts/alerts.addon.js +1 -1
  38. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  39. package/dist/builtins/alerts/device-label.d.ts +6 -6
  40. package/dist/builtins/alerts/index.d.ts +1 -1
  41. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  42. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  43. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  44. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  45. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  46. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  47. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  48. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  49. package/dist/builtins/autotrack/index.d.ts +2 -2
  50. package/dist/builtins/autotrack/index.js +1 -1
  51. package/dist/builtins/autotrack/index.mjs +1 -1
  52. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  53. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  54. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  57. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  58. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  59. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  60. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  61. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  62. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  63. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  64. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  65. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  66. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  67. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  68. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  69. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  70. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  71. package/dist/builtins/calendars/calendars.addon.js +1 -1
  72. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  73. package/dist/builtins/calendars/index.d.ts +1 -1
  74. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  75. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  76. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  77. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  78. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  79. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  80. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  81. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  82. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  83. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  84. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  85. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  86. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  87. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  88. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  89. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  90. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  91. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  92. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  93. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  94. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  95. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  96. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  97. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  98. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  99. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  100. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  101. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  102. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  103. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  104. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  105. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  106. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  107. package/dist/builtins/camera-grid/index.d.ts +44 -44
  108. package/dist/builtins/camera-grid/index.js +1 -1
  109. package/dist/builtins/camera-grid/index.mjs +1 -1
  110. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  111. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  112. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  113. package/dist/builtins/composer/composed-device.d.ts +39 -17
  114. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  115. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  116. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  117. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  118. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  119. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  120. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  121. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  122. package/dist/builtins/composer/composer.addon.js +2 -2
  123. package/dist/builtins/composer/composer.addon.mjs +2 -2
  124. package/dist/builtins/composer/composer.d.ts +145 -100
  125. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  126. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  127. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  128. package/dist/builtins/composer/composition-target.d.ts +38 -34
  129. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  130. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  131. package/dist/builtins/composer/existing-target.d.ts +90 -73
  132. package/dist/builtins/composer/field-record.d.ts +26 -19
  133. package/dist/builtins/composer/graft-host.d.ts +56 -32
  134. package/dist/builtins/composer/held-claims.d.ts +26 -9
  135. package/dist/builtins/composer/index.d.ts +1 -1
  136. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  137. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  138. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  139. package/dist/builtins/composer/source-readings.d.ts +67 -61
  140. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  141. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  142. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  143. package/dist/builtins/console-logging/index.d.ts +3 -3
  144. package/dist/builtins/console-logging/index.js +1 -1
  145. package/dist/builtins/console-logging/index.mjs +1 -1
  146. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  147. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  148. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  149. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  150. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  151. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  152. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  153. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  154. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  155. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  156. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  157. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  158. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  159. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  160. package/dist/builtins/core-blocks/index.d.ts +8 -8
  161. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  162. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  163. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  164. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  165. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  166. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  167. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  168. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  169. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  170. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  171. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  172. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  173. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  174. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  175. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  176. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  177. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  178. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  179. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  180. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  181. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  182. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  183. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  184. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  185. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  186. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  187. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  188. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  189. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  190. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  191. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  192. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  193. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  194. package/dist/builtins/device-manager/index.d.ts +2 -2
  195. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  196. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  197. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  198. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  199. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  200. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  201. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  202. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  203. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  204. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  205. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  206. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  207. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  208. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  209. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  210. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  211. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  212. package/dist/builtins/hub-forwarder/index.js +1 -1
  213. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  214. package/dist/builtins/keychain/index.d.ts +1 -1
  215. package/dist/builtins/keychain/index.js +3 -3
  216. package/dist/builtins/keychain/index.mjs +3 -3
  217. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  218. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  219. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  220. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  221. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  222. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  223. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  224. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  225. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  226. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  227. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  228. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  229. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  230. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  231. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  232. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  233. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  234. package/dist/builtins/local-auth/index.d.ts +1 -1
  235. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  236. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  237. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  238. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  239. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  240. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  241. package/dist/builtins/local-network/address-book.d.ts +61 -36
  242. package/dist/builtins/local-network/index.d.ts +2 -2
  243. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  244. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  245. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  246. package/dist/builtins/local-network/local-network.addon.js +1 -1
  247. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  248. package/dist/builtins/loki-logging/index.d.ts +4 -4
  249. package/dist/builtins/loki-logging/index.js +1 -1
  250. package/dist/builtins/loki-logging/index.mjs +1 -1
  251. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  252. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  253. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  254. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  255. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  256. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  257. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  258. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  259. package/dist/builtins/native-metrics/index.d.ts +2 -2
  260. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  261. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  262. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  263. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  264. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  265. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  266. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  267. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  268. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  269. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  270. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  271. package/dist/builtins/platform-probe/amd-accelerators.d.ts +15 -0
  272. package/dist/builtins/platform-probe/amd-npu.d.ts +29 -0
  273. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  274. package/dist/builtins/platform-probe/index.d.ts +38 -30
  275. package/dist/builtins/platform-probe/index.js +59 -22
  276. package/dist/builtins/platform-probe/index.mjs +59 -22
  277. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  278. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  279. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  280. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  281. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  282. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  283. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  284. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  285. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  286. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  287. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  288. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  289. package/dist/builtins/snapshot/index.d.ts +2 -2
  290. package/dist/builtins/snapshot/index.js +1 -1
  291. package/dist/builtins/snapshot/index.mjs +1 -1
  292. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  293. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  294. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  295. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  296. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  297. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  298. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  299. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  300. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  301. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  302. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  303. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  304. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  305. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  306. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  307. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  308. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  309. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  310. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  311. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  312. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  313. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  314. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  315. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  316. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  317. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  318. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  319. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  320. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  321. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  322. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  323. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  324. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  325. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  326. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  327. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  328. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  329. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  330. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  331. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  332. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  333. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  334. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  335. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  336. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  337. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  338. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  339. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  340. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  341. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  342. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  343. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  344. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  345. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  346. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  347. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  348. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  349. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  350. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  351. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  352. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  353. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  354. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  355. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  356. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  357. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  358. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  359. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  360. package/dist/builtins/system-config/index.d.ts +2 -2
  361. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  362. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  363. package/dist/builtins/system-config/system-config.addon.js +39 -35
  364. package/dist/builtins/system-config/system-config.addon.mjs +320 -316
  365. package/dist/builtins/winston-logging/index.d.ts +3 -3
  366. package/dist/builtins/winston-logging/index.js +1 -1
  367. package/dist/builtins/winston-logging/index.mjs +1 -1
  368. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  369. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  370. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Nx-lrlHR.js} +19 -1
  371. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-x-onDDiV.mjs} +2 -2
  372. package/dist/{composition-sources-wdAxs-uY.js → composition-sources-LUJsW0AQ.js} +1 -1
  373. package/dist/{composition-sources-xqhm2Ygr.mjs → composition-sources-R8TskGSV.mjs} +1 -1
  374. package/dist/{constants-Ca-Sgcl8.js → constants-D4lxxip7.js} +1 -1
  375. package/dist/{constants-D5z4EwY8.mjs → constants-DMvAcbbP.mjs} +1 -1
  376. package/dist/{dist-8LQ4lDEB.js → dist-XTkzsnz-.js} +35 -1
  377. package/dist/{dist-Biqn3TEn.mjs → dist-byg8IP4Q.mjs} +35 -1
  378. package/dist/download/hosted-model-revisions.d.ts +8 -8
  379. package/dist/download/model-download-service.d.ts +32 -32
  380. package/dist/download/model-downloader.d.ts +88 -88
  381. package/dist/{event-loop-stall-monitor-CNj73d4D.js → event-loop-stall-monitor-DPFghEFw.js} +1 -1
  382. package/dist/{event-loop-stall-monitor-BtK_0Pjc.mjs → event-loop-stall-monitor-TG8UcdY2.mjs} +1 -1
  383. package/dist/events/event-bus.d.ts +6 -6
  384. package/dist/events/system-event-bus.d.ts +11 -11
  385. package/dist/feature/feature-manager.d.ts +6 -6
  386. package/dist/http/asset-compression.d.ts +35 -73
  387. package/dist/http/authenticated-file-server.d.ts +32 -32
  388. package/dist/http/data-plane-registry.d.ts +49 -39
  389. package/dist/http/file-data-plane.d.ts +14 -14
  390. package/dist/http/lan-http-bind.d.ts +24 -13
  391. package/dist/http/reverse-proxy.d.ts +36 -24
  392. package/dist/index.d.ts +137 -137
  393. package/dist/index.js +9 -8
  394. package/dist/index.mjs +7 -9
  395. package/dist/{jwt-signing-key-DxV2ucvJ.js → jwt-signing-key-CD87HrHH.js} +1 -1
  396. package/dist/{jwt-signing-key-SnDgvVUQ.mjs → jwt-signing-key-DNBxSN5p.mjs} +1 -1
  397. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  398. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  399. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  400. package/dist/kernel/addon-installer.d.ts +609 -609
  401. package/dist/kernel/addon-loader.d.ts +133 -133
  402. package/dist/kernel/addon-manifest.d.ts +118 -118
  403. package/dist/kernel/addon-residue.d.ts +28 -32
  404. package/dist/kernel/array-buffer-census.d.ts +84 -88
  405. package/dist/kernel/bootstrap-config.d.ts +3 -3
  406. package/dist/kernel/cap-router-builder.d.ts +145 -101
  407. package/dist/kernel/capability-handle.d.ts +41 -41
  408. package/dist/kernel/capability-registry.d.ts +588 -576
  409. package/dist/kernel/config-manager.d.ts +199 -199
  410. package/dist/kernel/config-schema.d.ts +132 -128
  411. package/dist/kernel/custom-action-registry.d.ts +25 -25
  412. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  413. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  414. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  415. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  416. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  417. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  418. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  419. package/dist/kernel/deps/npm-command.d.ts +45 -45
  420. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  421. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  422. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  423. package/dist/kernel/device-registry.d.ts +27 -27
  424. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  425. package/dist/kernel/event-plane-report.d.ts +174 -174
  426. package/dist/kernel/fs-utils.d.ts +70 -70
  427. package/dist/kernel/gc-census.d.ts +119 -119
  428. package/dist/kernel/heap-spaces.d.ts +87 -87
  429. package/dist/kernel/heap-watch.d.ts +706 -706
  430. package/dist/kernel/host-externals.d.ts +8 -8
  431. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  432. package/dist/kernel/index.d.ts +115 -113
  433. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  434. package/dist/kernel/infra-capabilities.d.ts +7 -7
  435. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  436. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  437. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  438. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  439. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  440. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  441. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  442. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  443. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  444. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  445. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  446. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  447. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  448. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  449. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  450. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  451. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  452. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  453. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  454. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  455. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  456. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  457. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  458. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  459. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  460. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  461. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  462. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  463. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  464. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  465. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  466. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  467. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  468. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  469. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  470. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  471. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  472. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  473. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  474. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  475. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  476. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  477. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  478. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  479. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  480. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  481. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  482. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  483. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  484. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  485. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  486. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  487. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  488. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  489. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  490. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  491. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  492. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  493. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  494. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  495. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  496. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  497. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  498. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  499. package/dist/kernel/process-cpu-census.d.ts +55 -55
  500. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  501. package/dist/kernel/restart-coordinator.d.ts +71 -71
  502. package/dist/kernel/settings-door-view.d.ts +36 -25
  503. package/dist/kernel/settings-read-error.d.ts +29 -31
  504. package/dist/kernel/settings-view-types.d.ts +100 -95
  505. package/dist/kernel/socket-plane-report.d.ts +214 -153
  506. package/dist/kernel/status-overlay.d.ts +31 -11
  507. package/dist/kernel/storage-location-registry.d.ts +50 -50
  508. package/dist/kernel/store-settings-view.d.ts +13 -13
  509. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  510. package/dist/kernel/system-settings-policy.d.ts +15 -34
  511. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  512. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  513. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  514. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  515. package/dist/kernel/transport/cap-route.d.ts +139 -139
  516. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  517. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  518. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  519. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  520. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  521. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  522. package/dist/kernel/transport/index.d.ts +36 -36
  523. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  524. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  525. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  526. package/dist/kernel/transport/local-transport.d.ts +92 -92
  527. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  528. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  529. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  530. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  531. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  532. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  533. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  534. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  535. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  536. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  537. package/dist/kernel/workspace-detect.d.ts +7 -7
  538. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  539. package/dist/logging/formatter.d.ts +52 -25
  540. package/dist/logging/log-manager.d.ts +133 -133
  541. package/dist/logging/log-redactor.d.ts +22 -1
  542. package/dist/logging/log-ring-buffer.d.ts +57 -57
  543. package/dist/logging/logging-gate.d.ts +69 -25
  544. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  545. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  546. package/dist/logging/scoped-logger.d.ts +14 -14
  547. package/dist/network/network-quality.d.ts +8 -8
  548. package/dist/notification/notification-service.d.ts +37 -37
  549. package/dist/notification/toast-service.d.ts +18 -18
  550. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  551. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  552. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  553. package/dist/process/proc-stat.d.ts +51 -51
  554. package/dist/process/resource-monitor.d.ts +19 -19
  555. package/dist/python/python-env-manager.d.ts +10 -10
  556. package/dist/repl/interfaces.d.ts +21 -21
  557. package/dist/repl/repl-engine.d.ts +6 -6
  558. package/dist/{restore-archive-D4cmLoNe.mjs → restore-archive-Bmmmyp1M.mjs} +81 -81
  559. package/dist/{restore-archive-Do_Yu5rC.js → restore-archive-bvYTsnvp.js} +1 -1
  560. package/dist/{retired-settings-keys-BsgVxh8-.mjs → retired-settings-keys-R9CBo2lY.mjs} +1 -1
  561. package/dist/{retired-settings-keys-Cyn3OD0K.js → retired-settings-keys-V0yq5Bm6.js} +1 -1
  562. package/dist/storage/fs-storage-backend.d.ts +35 -35
  563. package/dist/storage/storage-location-manager.d.ts +21 -21
  564. package/dist/storage/storage-manager.d.ts +68 -68
  565. package/dist/tls/boot-tls.d.ts +24 -24
  566. package/dist/tls/cert-evaluation.d.ts +25 -25
  567. package/dist/tls/cert-identity.d.ts +39 -39
  568. package/dist/tls/cert-issue.d.ts +37 -17
  569. package/dist/tls/cert-manager.d.ts +86 -84
  570. package/dist/tls/https-listener.d.ts +16 -16
  571. package/dist/tls/index.d.ts +8 -8
  572. package/dist/tls/tls-actions.d.ts +18 -18
  573. package/dist/tls/tls-status.d.ts +15 -15
  574. package/dist/tls/uploaded-cert.d.ts +9 -9
  575. package/package.json +9 -3
@@ -1,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;