@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,30 +1,30 @@
1
- import { ProviderContext } from './device-provider-context.js';
1
+ import type { ProviderContext } from "./device-provider-context.js";
2
2
  /**
3
- * Sync ownership lookup backing persistence fallbacks (e.g. remove()
4
- * when the owning worker is offline). Ownership is keyed by numeric
5
- * deviceId → owning addonId as recorded in the persisted meta. NOT
6
- * a native-cap lookup: an addon can own a device without registering
7
- * every possible cap natively (e.g. RtspCamera without snapshotUrl
8
- * doesn't register the snapshot cap). Use `resolveNativeCapOwnerSync`
9
- * for cap-resolution paths.
10
- */
3
+ * Sync ownership lookup backing persistence fallbacks (e.g. remove()
4
+ * when the owning worker is offline). Ownership is keyed by numeric
5
+ * deviceId → owning addonId as recorded in the persisted meta. NOT
6
+ * a native-cap lookup: an addon can own a device without registering
7
+ * every possible cap natively (e.g. RtspCamera without snapshotUrl
8
+ * doesn't register the snapshot cap). Use `resolveNativeCapOwnerSync`
9
+ * for cap-resolution paths.
10
+ */
11
11
  export declare function resolveDeviceOwnerSync(pctx: ProviderContext, deviceId: number): string | null;
12
12
  /**
13
- * Sync lookup for the addon that registered a native provider for
14
- * `(capName, deviceId)`. Backs `CapabilityRegistry`'s native fallback
15
- * so the hub only synthesizes a cross-process proxy when the cap is
16
- * actually published — never on speculative device ownership.
17
- *
18
- * Resolution order:
19
- * 1. Hub-local `capabilityRegistry` (in-process natives — fastest path).
20
- * 2. Push-fed `remoteNativeCaps` cache (`DeviceBindingsChanged` events
21
- * from forked workers — accurate in steady state).
22
- * 3. Handshake-fed `HubNodeRegistry` via `listClusterNativeCaps()`
23
- * (D3 re-handshake after device restore — covers the Moleculer
24
- * transport window where push events were lost). This is the
25
- * reliable replacement for the deleted `syncWorkerNativeCaps` pull.
26
- */
13
+ * Sync lookup for the addon that registered a native provider for
14
+ * `(capName, deviceId)`. Backs `CapabilityRegistry`'s native fallback
15
+ * so the hub only synthesizes a cross-process proxy when the cap is
16
+ * actually published — never on speculative device ownership.
17
+ *
18
+ * Resolution order:
19
+ * 1. Hub-local `capabilityRegistry` (in-process natives — fastest path).
20
+ * 2. Push-fed `remoteNativeCaps` cache (`DeviceBindingsChanged` events
21
+ * from forked workers — accurate in steady state).
22
+ * 3. Handshake-fed `HubNodeRegistry` via `listClusterNativeCaps()`
23
+ * (D3 re-handshake after device restore — covers the Moleculer
24
+ * transport window where push events were lost). This is the
25
+ * reliable replacement for the deleted `syncWorkerNativeCaps` pull.
26
+ */
27
27
  export declare function resolveNativeCapOwnerSync(pctx: ProviderContext, capName: string, deviceId: number): {
28
- addonId: string;
29
- nodeId: string;
28
+ addonId: string;
29
+ nodeId: string;
30
30
  } | null;
@@ -1,69 +1,96 @@
1
- import { ClaimsListing, FieldClaim, IScopedLogger } from '@camstack/types';
2
- import { DeviceManagerSettings } from './device-meta-store.js';
3
- import { ClaimsIndexView } from './device-state-mirror.js';
4
- import { WriteLock } from './write-lock.js';
1
+ /**
2
+ * The claims INDEX (D663): which (device, cap) pairs carry a per-field claim,
3
+ * by whom, in which mode, over which fields — one blob on the device-manager's
4
+ * own settings store, key `field-claims-index`.
5
+ *
6
+ * It is a LISTING PROJECTION, not an authority (rulings D3/D62, preflight
7
+ * §4-4): the merge authority is the device's row (`$owned`, `DeviceStateMirror`).
8
+ * The index answers two questions the row cannot answer cheaply: "which devices
9
+ * have claims at all?" (the boot seed asks it before reading any row — S6,
10
+ * D447) and "list every claim" (`deviceState.listClaims`).
11
+ *
12
+ * Write order keeps it a SUPERSET of the rows' claims: written BEFORE the row on
13
+ * a claim, AFTER the row on a release. A crash between the two leaves at worst
14
+ * an index entry with no row claim — never a row claim the index misses, which
15
+ * would let a claimed device seed without its row and answer the native for a
16
+ * claimed field. Three conditions keep the projection honest: `removeDevice`
17
+ * prunes it (`pruneDevice`); a `releaseClaim` that finds no claim on the row
18
+ * removes the stale entry (the caller does that with `remove`); and D663 names
19
+ * it a projection with this write order.
20
+ *
21
+ * It loads once at init and never on a timer (D3): until a load has SUCCEEDED,
22
+ * `view()` is `not-loaded` (every seed reads its row, as before the index
23
+ * existed) and `list()` says so with the reason — never `[]` (D315). A blob
24
+ * that READS but does not PARSE is the same state: unknown, not empty (D49).
25
+ * Each caller that needs it loaded asks `load` again; a failed read is retried
26
+ * by the next call, not by a clock.
27
+ */
28
+ import type { ClaimsListing, FieldClaim, IScopedLogger } from "@camstack/types";
29
+ import type { DeviceManagerSettings } from "./device-meta-store.js";
30
+ import type { ClaimsIndexView } from "./device-state-mirror.js";
31
+ import type { WriteLock } from "./write-lock.js";
5
32
  /** The addon-store key the index lives under. */
6
33
  export declare const FIELD_CLAIMS_INDEX_KEY = "field-claims-index";
7
34
  /** One claim's identity in the index: a cap on a device has at most one owner. */
8
35
  export interface ClaimKey {
9
- readonly deviceId: number;
10
- readonly capName: string;
36
+ readonly deviceId: number;
37
+ readonly capName: string;
11
38
  }
12
39
  /** A read-modify-write step over the loaded entries; null means nothing to write. */
13
40
  export type IndexTransform = (current: ReadonlyMap<string, FieldClaim>) => ReadonlyMap<string, FieldClaim> | null;
14
41
  export interface FieldClaimsIndexDeps {
15
- readonly logger: IScopedLogger;
16
- /**
17
- * The addon's own settings row-set lock, shared with every other writer of
18
- * it: `writeAddonStore` is a read-modify-write of the WHOLE key range on the
19
- * store side, so unordered writers destroy each other's keys.
20
- */
21
- readonly withAddonStoreWriteLock: WriteLock;
42
+ readonly logger: IScopedLogger;
43
+ /**
44
+ * The addon's own settings row-set lock, shared with every other writer of
45
+ * it: `writeAddonStore` is a read-modify-write of the WHOLE key range on the
46
+ * store side, so unordered writers destroy each other's keys.
47
+ */
48
+ readonly withAddonStoreWriteLock: WriteLock;
22
49
  }
23
50
  export declare class FieldClaimsIndex {
24
- private readonly deps;
25
- /** The loaded entries by key, or null until a load has succeeded. */
26
- private entries;
27
- /** Devices with at least one entry — what the seed asks, per native write. */
28
- private claimedDevices;
29
- /** Why the last load did not succeed. */
30
- private notLoadedReason;
31
- /** One load in flight at a time; concurrent callers join it. */
32
- private loading;
33
- constructor(deps: FieldClaimsIndexDeps);
34
- /**
35
- * Load the blob. Resolves `true` once the index is loaded (now or already);
36
- * `false` when the store could not answer — the reason is kept for `list`.
37
- * Never throws: an index that cannot load is a state, not a failure.
38
- */
39
- load(settings: DeviceManagerSettings): Promise<boolean>;
40
- /** What the seed consults: loaded with a device predicate, or not loaded. */
41
- view(): ClaimsIndexView;
42
- /** Every entry, optionally those whose owner starts with `ownerPrefix`; or why there is no answer. */
43
- list(ownerPrefix?: string): ClaimsListing;
44
- /** The entry for a key, when the index is loaded and has one. */
45
- entry(key: ClaimKey): FieldClaim | undefined;
46
- /** Add or replace one entry — written before the row it announces. Throws when the index cannot be loaded or written. */
47
- upsert(claim: FieldClaim, settings: DeviceManagerSettings): Promise<void>;
48
- /** Remove one entry — written after the row no longer carries the claim. No write when absent. */
49
- remove(key: ClaimKey, settings: DeviceManagerSettings): Promise<void>;
50
- /**
51
- * Drop every entry of a removed device (condition i). Best effort: an index
52
- * that cannot be loaded or written keeps a stale entry, which costs the next
53
- * seed of that number one row read and is removed by the next release that
54
- * answers `not-claimed` — so it is logged, never thrown, and the removal
55
- * proceeds.
56
- */
57
- pruneDevice(deviceId: number, settings: DeviceManagerSettings): Promise<void>;
58
- /**
59
- * Read-modify-write of the whole blob under the addon-store lock, from the
60
- * LOADED entries: the index is never written from a partial picture. `next`
61
- * returning null means nothing to write.
62
- */
63
- private mutate;
64
- private install;
65
- /** The three-way read (D651): a failed read is a REASON, never an empty index. */
66
- private readBlob;
67
- /** Not loaded, by name: the index stays unknown and says why. */
68
- private refuseMalformed;
51
+ private readonly deps;
52
+ /** The loaded entries by key, or null until a load has succeeded. */
53
+ private entries;
54
+ /** Devices with at least one entry — what the seed asks, per native write. */
55
+ private claimedDevices;
56
+ /** Why the last load did not succeed. */
57
+ private notLoadedReason;
58
+ /** One load in flight at a time; concurrent callers join it. */
59
+ private loading;
60
+ constructor(deps: FieldClaimsIndexDeps);
61
+ /**
62
+ * Load the blob. Resolves `true` once the index is loaded (now or already);
63
+ * `false` when the store could not answer — the reason is kept for `list`.
64
+ * Never throws: an index that cannot load is a state, not a failure.
65
+ */
66
+ load(settings: DeviceManagerSettings): Promise<boolean>;
67
+ /** What the seed consults: loaded with a device predicate, or not loaded. */
68
+ view(): ClaimsIndexView;
69
+ /** Every entry, optionally those whose owner starts with `ownerPrefix`; or why there is no answer. */
70
+ list(ownerPrefix?: string): ClaimsListing;
71
+ /** The entry for a key, when the index is loaded and has one. */
72
+ entry(key: ClaimKey): FieldClaim | undefined;
73
+ /** Add or replace one entry — written before the row it announces. Throws when the index cannot be loaded or written. */
74
+ upsert(claim: FieldClaim, settings: DeviceManagerSettings): Promise<void>;
75
+ /** Remove one entry — written after the row no longer carries the claim. No write when absent. */
76
+ remove(key: ClaimKey, settings: DeviceManagerSettings): Promise<void>;
77
+ /**
78
+ * Drop every entry of a removed device (condition i). Best effort: an index
79
+ * that cannot be loaded or written keeps a stale entry, which costs the next
80
+ * seed of that number one row read and is removed by the next release that
81
+ * answers `not-claimed` — so it is logged, never thrown, and the removal
82
+ * proceeds.
83
+ */
84
+ pruneDevice(deviceId: number, settings: DeviceManagerSettings): Promise<void>;
85
+ /**
86
+ * Read-modify-write of the whole blob under the addon-store lock, from the
87
+ * LOADED entries: the index is never written from a partial picture. `next`
88
+ * returning null means nothing to write.
89
+ */
90
+ private mutate;
91
+ private install;
92
+ /** The three-way read (D651): a failed read is a REASON, never an empty index. */
93
+ private readBlob;
94
+ /** Not loaded, by name: the index stays unknown and says why. */
95
+ private refuseMalformed;
69
96
  }
@@ -1,53 +1,71 @@
1
- import { z } from 'zod';
2
- import { FieldClaimMode } from '@camstack/types';
3
- import { RuntimeStatePolicyLookup } from './runtime-state-persist-gate.js';
1
+ /**
2
+ * Per-field ownership of a runtime-state slice (D663) — the pure half.
3
+ *
4
+ * A composition may claim fields of a cap on an existing device. The native
5
+ * provider keeps writing its slice (it never learns of the claim — D62: one
6
+ * authority per field, and the authority for a claimed field is the owner),
7
+ * the hub keeps that slice as a SHADOW, and what consumers read and receive is
8
+ * the MERGE: the native slice with the owned fields replaced. The shadow is
9
+ * readable only by the owner-side mechanism (D224), never served as a second
10
+ * truth.
11
+ *
12
+ * Both halves live in the device's own runtime-state row: the native slices
13
+ * under their cap names, the claims under `$owned`. One row, one write, so a
14
+ * claim and the slice it governs can never disagree on disk.
15
+ *
16
+ * This module has no mirror, no settings store and no logger: it merges and
17
+ * it (de)serialises. `DeviceStateMirror` owns the state and the log lines.
18
+ */
19
+ import { z } from "zod";
20
+ import { type FieldClaimMode } from "@camstack/types";
21
+ import type { RuntimeStatePolicyLookup } from "./runtime-state-persist-gate.js";
4
22
  /** The row key under which claims travel. Not a cap name: `$` is not legal in one. */
5
23
  export declare const OWNED_FIELDS_KEY = "$owned";
6
24
  /**
7
- * One claimed cap. `fields` is the claimed set, `values` what has been written
8
- * so far — a claimed field with no value is HELD (ruling S5), never answered
9
- * from the native slice.
10
- */
25
+ * One claimed cap. `fields` is the claimed set, `values` what has been written
26
+ * so far — a claimed field with no value is HELD (ruling S5), never answered
27
+ * from the native slice.
28
+ */
11
29
  export interface OwnedCap {
12
- readonly owner: string;
13
- readonly mode: FieldClaimMode;
14
- readonly fields: readonly string[];
15
- readonly values: Readonly<Record<string, unknown>>;
30
+ readonly owner: string;
31
+ readonly mode: FieldClaimMode;
32
+ readonly fields: readonly string[];
33
+ readonly values: Readonly<Record<string, unknown>>;
16
34
  }
17
35
  export type OwnedCaps = ReadonlyMap<string, OwnedCap>;
18
36
  export interface SplitBlob {
19
- readonly native: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
20
- readonly owned: OwnedCaps;
21
- /** `$owned` entries that failed `OwnedCapSchema`, by cap name — logged once per device, never applied. */
22
- readonly dropped: readonly string[];
37
+ readonly native: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
38
+ readonly owned: OwnedCaps;
39
+ /** `$owned` entries that failed `OwnedCapSchema`, by cap name — logged once per device, never applied. */
40
+ readonly dropped: readonly string[];
23
41
  }
24
42
  export type MergedSlice = {
25
- readonly kind: 'slice';
26
- readonly slice: Readonly<Record<string, unknown>>;
43
+ readonly kind: "slice";
44
+ readonly slice: Readonly<Record<string, unknown>>;
27
45
  } | {
28
- readonly kind: 'held';
29
- readonly reason: string;
46
+ readonly kind: "held";
47
+ readonly reason: string;
30
48
  };
31
49
  export declare function isPlainRecord(value: unknown): value is Readonly<Record<string, unknown>>;
32
50
  /**
33
- * Split a runtime-state row into its native slices and its claims. A row with
34
- * no `$owned` splits to its slices and an empty map — the shape every device
35
- * without a claim has always had. Non-object entries are dropped, as the
36
- * mirror seed and `DeviceRuntimeState.fromInitial` have always dropped them.
37
- */
51
+ * Split a runtime-state row into its native slices and its claims. A row with
52
+ * no `$owned` splits to its slices and an empty map — the shape every device
53
+ * without a claim has always had. Non-object entries are dropped, as the
54
+ * mirror seed and `DeviceRuntimeState.fromInitial` have always dropped them.
55
+ */
38
56
  export declare function splitRuntimeBlob(blob: Readonly<Record<string, unknown>>): SplitBlob;
39
57
  /**
40
- * Join native slices and claims into one row. `values` are kept only for caps
41
- * whose policy is `durability: 'restored'`; a session-only cap keeps its CLAIM
42
- * (so a restart still knows who owns what) but not its values, and the claimed
43
- * fields are held after boot until the owner writes again. A device with no
44
- * claims gets no `$owned` key at all — its row is byte-identical to before.
45
- */
46
- export declare function joinRuntimeBlob(native: SplitBlob['native'], owned: OwnedCaps, policyFor: RuntimeStatePolicyLookup): Record<string, Record<string, unknown>>;
58
+ * Join native slices and claims into one row. `values` are kept only for caps
59
+ * whose policy is `durability: 'restored'`; a session-only cap keeps its CLAIM
60
+ * (so a restart still knows who owns what) but not its values, and the claimed
61
+ * fields are held after boot until the owner writes again. A device with no
62
+ * claims gets no `$owned` key at all — its row is byte-identical to before.
63
+ */
64
+ export declare function joinRuntimeBlob(native: SplitBlob["native"], owned: OwnedCaps, policyFor: RuntimeStatePolicyLookup): Record<string, Record<string, unknown>>;
47
65
  /**
48
- * The one merge. Held when a claimed field has no value yet (S5: never
49
- * answered from the native), when a `replace` has no native slice to overlay
50
- * (a partial slice is never emitted), or when the merged slice fails the cap's
51
- * `runtimeState` schema (the native value never leaks through a bad overlay).
52
- */
66
+ * The one merge. Held when a claimed field has no value yet (S5: never
67
+ * answered from the native), when a `replace` has no native slice to overlay
68
+ * (a partial slice is never emitted), or when the merged slice fails the cap's
69
+ * `runtimeState` schema (the native value never leaks through a bad overlay).
70
+ */
53
71
  export declare function mergeOwned(native: Readonly<Record<string, unknown>> | null, owned: OwnedCap, schema: z.ZodType | null): MergedSlice;
@@ -1,66 +1,104 @@
1
- import { IScopedLogger } from '@camstack/types';
1
+ /**
2
+ * Which CALL SITE reads the whole fleet — measured, never inferred.
3
+ *
4
+ * ## The number this exists to explain
5
+ *
6
+ * The sqlite profiler measured `query device-manager:devices`, shape
7
+ * `SELECT … ORDER BY "deviceId" ASC LIMIT ?`, at **4 149 calls and 4 219 533
8
+ * rows in one 66-second boot window** (2026-08-25). Steady state is 39/min. The
9
+ * comment in `device-queries.ts#listAll` has said "~3 000 for a 974-device boot"
10
+ * for weeks and names nobody, because the engine reports an
11
+ * `(op, collection, shape)` tuple — a statement, not a caller.
12
+ *
13
+ * Two candidates were read and EXCLUDED by hand: `device-manager.addon.ts`'s
14
+ * `idToAddonId` warm and `device-bindings-store.ts`'s `getAllBindings`. Both are
15
+ * boot one-shots. Picking the next most plausible reader is exactly what this
16
+ * repo did twice in one afternoon and got wrong twice, at half a day each. An
17
+ * attribution is a measurement or it is a guess.
18
+ *
19
+ * ## Why an env var, and not a `debug.*` action
20
+ *
21
+ * `pipeline-analytics`'s {@link StoreReadCensus} is armed through a custom
22
+ * action, which is the right shape for a steady-state mystery: you notice, you
23
+ * arm, you read. It cannot work here. **The storm is at BOOT** — by the time a
24
+ * process is up enough to receive an action, the window being investigated has
25
+ * closed. So this arms at CONSTRUCTION from `CAMSTACK_FLEET_READ_CENSUS_MS` and
26
+ * closes itself after that many milliseconds.
27
+ *
28
+ * A bad value **disarms**. An env var someone fat-fingered must not quietly
29
+ * install a stack capture on the fleet-read path until the next container
30
+ * recreation.
31
+ *
32
+ * ## Why it reports through the logger
33
+ *
34
+ * The hub's in-memory log ring holds roughly 35 minutes. A boot measurement
35
+ * asked about an hour later is simply gone — that is what turned the
36
+ * native-capture question into an UNKNOWN until Loki was used instead. A logged
37
+ * report lands in Loki, which carries 12 h and more.
38
+ */
39
+ import type { IScopedLogger } from "@camstack/types";
2
40
  /** One attributed call site. */
3
41
  export interface FleetCensusRow {
4
- readonly site: string;
5
- readonly calls: number;
6
- readonly rows: number;
42
+ readonly site: string;
43
+ readonly calls: number;
44
+ readonly rows: number;
7
45
  }
8
46
  export declare class FleetReadCensus {
9
- /**
10
- * Longest window the census may be armed for.
11
- *
12
- * Ten minutes covers a boot several times over and bounds what an operator
13
- * pays if they set the variable and forget it. A diagnostic that can be left
14
- * on becomes a tax nobody remembers enabling.
15
- */
16
- static readonly MAX_WINDOW_MS: number;
17
- readonly windowMs: number;
18
- private readonly closesAt;
19
- private readonly counts;
20
- private reported;
21
- constructor(rawEnv: string | undefined, nowMs: number);
22
- get armed(): boolean;
23
- /** Test seam: pretend the window closed. Production reads the clock. */
24
- closeAt(nowMs: number): void;
25
- private forceClosed;
26
- private isOpen;
27
- /**
28
- * Capture the caller, or `null` when the window is shut.
29
- *
30
- * Called at the START of a read. A read that began inside the window belongs
31
- * to it even if it lands after the close — otherwise the slow reads at the
32
- * edge would be attributed to nobody, and the slow ones are the interesting
33
- * ones.
34
- *
35
- * `callerAddonId`, when given, is formatted as the site VERBATIM instead of
36
- * walking the local stack. A call that arrived over the cap channel — a
37
- * forked addon's `ctx.api.deviceManager.listAll.query()`, routed through
38
- * `LocalChildRegistry` → `onUnownedCall` → `CapRouteResolver` — carries its
39
- * origin as DATA (the registered `childId` the parent captured off the UDS
40
- * connection), and no amount of stack depth would ever recover it: every
41
- * frame between the socket read and this call is the SAME generic
42
- * dispatcher code (`onUnownedCall`, `dispatch`, `invoke`) regardless of
43
- * which addon called — the 2026-08-25 boot census measured this directly,
44
- * five thousand calls landing on `listAll` with nothing nameable above it.
45
- *
46
- * `isOpen` is checked FIRST, before the id is even looked at — a caller
47
- * threading a (cheap, already-known) `callerAddonId` through on every
48
- * request, armed or not, must not pay for the template string when
49
- * disarmed. This is also why formatting lives HERE rather than at the call
50
- * site: `DeviceRowStore` passes the raw id through unconditionally, and
51
- * only this method — which already knows whether armed — decides whether
52
- * to spend anything on it.
53
- */
54
- siteOf(callerAddonId?: string, nowMs?: number): string | null;
55
- /** Count one read at an already-captured site. A `null` site is not counted. */
56
- record(site: string | null, rowCount: number): void;
57
- /** Attributed sites, busiest first. */
58
- rows(): readonly FleetCensusRow[];
59
- /**
60
- * Emit the report ONCE.
61
- *
62
- * `perMin` is included because the raw count is unreadable without the window
63
- * it was taken over — "4 149" means nothing until you know it was 66 seconds.
64
- */
65
- report(logger: IScopedLogger, elapsedMs: number): void;
47
+ /**
48
+ * Longest window the census may be armed for.
49
+ *
50
+ * Ten minutes covers a boot several times over and bounds what an operator
51
+ * pays if they set the variable and forget it. A diagnostic that can be left
52
+ * on becomes a tax nobody remembers enabling.
53
+ */
54
+ static readonly MAX_WINDOW_MS: number;
55
+ readonly windowMs: number;
56
+ private readonly closesAt;
57
+ private readonly counts;
58
+ private reported;
59
+ constructor(rawEnv: string | undefined, nowMs: number);
60
+ get armed(): boolean;
61
+ /** Test seam: pretend the window closed. Production reads the clock. */
62
+ closeAt(nowMs: number): void;
63
+ private forceClosed;
64
+ private isOpen;
65
+ /**
66
+ * Capture the caller, or `null` when the window is shut.
67
+ *
68
+ * Called at the START of a read. A read that began inside the window belongs
69
+ * to it even if it lands after the close — otherwise the slow reads at the
70
+ * edge would be attributed to nobody, and the slow ones are the interesting
71
+ * ones.
72
+ *
73
+ * `callerAddonId`, when given, is formatted as the site VERBATIM instead of
74
+ * walking the local stack. A call that arrived over the cap channel — a
75
+ * forked addon's `ctx.api.deviceManager.listAll.query()`, routed through
76
+ * `LocalChildRegistry` → `onUnownedCall` → `CapRouteResolver` — carries its
77
+ * origin as DATA (the registered `childId` the parent captured off the UDS
78
+ * connection), and no amount of stack depth would ever recover it: every
79
+ * frame between the socket read and this call is the SAME generic
80
+ * dispatcher code (`onUnownedCall`, `dispatch`, `invoke`) regardless of
81
+ * which addon called — the 2026-08-25 boot census measured this directly,
82
+ * five thousand calls landing on `listAll` with nothing nameable above it.
83
+ *
84
+ * `isOpen` is checked FIRST, before the id is even looked at — a caller
85
+ * threading a (cheap, already-known) `callerAddonId` through on every
86
+ * request, armed or not, must not pay for the template string when
87
+ * disarmed. This is also why formatting lives HERE rather than at the call
88
+ * site: `DeviceRowStore` passes the raw id through unconditionally, and
89
+ * only this method — which already knows whether armed — decides whether
90
+ * to spend anything on it.
91
+ */
92
+ siteOf(callerAddonId?: string, nowMs?: number): string | null;
93
+ /** Count one read at an already-captured site. A `null` site is not counted. */
94
+ record(site: string | null, rowCount: number): void;
95
+ /** Attributed sites, busiest first. */
96
+ rows(): readonly FleetCensusRow[];
97
+ /**
98
+ * Emit the report ONCE.
99
+ *
100
+ * `perMin` is included because the raw count is unreadable without the window
101
+ * it was taken over — "4 149" means nothing until you know it was 66 seconds.
102
+ */
103
+ report(logger: IScopedLogger, elapsedMs: number): void;
66
104
  }
@@ -1,12 +1,22 @@
1
- import { ConfigUISchema, ImageSettingsOptions, ImageSettingsPatch, ImageSettingsStatus } from '@camstack/types';
2
1
  /**
3
- * Build the `image-settings` `ConfigUISchema` from the camera-probed
4
- * options + current status. Returns `null` when the camera exposes no
5
- * configurable property.
6
- */
2
+ * image-settings — server-side `ConfigUISchema` builder + form-patch
3
+ * parser. Sibling of `day-night-config-schema.ts` — see that file's
4
+ * header for why this lives in `@camstack/system` rather than
5
+ * `@camstack/types`.
6
+ *
7
+ * Field keys use the `imageSettings_<prop>` prefix so a flat form patch
8
+ * can be re-parsed into an `ImageSettingsPatch` by
9
+ * `parseImageSettingsFormPatch`.
10
+ */
11
+ import type { ConfigUISchema, ImageSettingsOptions, ImageSettingsPatch, ImageSettingsStatus } from "@camstack/types";
12
+ /**
13
+ * Build the `image-settings` `ConfigUISchema` from the camera-probed
14
+ * options + current status. Returns `null` when the camera exposes no
15
+ * configurable property.
16
+ */
7
17
  export declare function buildImageSettingsConfigSchema(options: ImageSettingsOptions, status: ImageSettingsStatus | null): ConfigUISchema | null;
8
18
  /**
9
- * Re-parse a flat `ConfigFormBuilder` patch into an `ImageSettingsPatch`.
10
- * Returns an empty object when no `imageSettings_*` field changed.
11
- */
19
+ * Re-parse a flat `ConfigFormBuilder` patch into an `ImageSettingsPatch`.
20
+ * Returns an empty object when no `imageSettings_*` field changed.
21
+ */
12
22
  export declare function parseImageSettingsFormPatch(patch: Record<string, unknown>): ImageSettingsPatch;
@@ -1,2 +1,2 @@
1
- export { DeviceManagerAddon } from './device-manager.addon.js';
2
- export { default } from './device-manager.addon.js';
1
+ export { DeviceManagerAddon } from "./device-manager.addon.js";
2
+ export { default } from "./device-manager.addon.js";
@@ -1,16 +1,27 @@
1
- import { LinkCandidate } from './device-linked-devices.js';
2
- import { ProviderContext } from './device-provider-context.js';
1
+ /**
2
+ * One-shot boot backfill for D356: the `auto` link mode is retired, and a
3
+ * camera that never chose `manual` was linked by location until today.
4
+ *
5
+ * A rule an operator relied on cannot vanish on an update — a notification
6
+ * that named a linked siren, a tracked-event source — so what `auto`
7
+ * resolved is written ONCE into the camera's manual list, and the operator
8
+ * PRUNES from the picker instead of discovering an absence. A camera that
9
+ * already said `manual` is left exactly as it is. Runs under a version
10
+ * marker in the addon store, like the location backfill it sits next to.
11
+ */
12
+ import type { LinkCandidate } from "./device-linked-devices.js";
13
+ import type { ProviderContext } from "./device-provider-context.js";
3
14
  export declare const LINKED_MANUAL_BACKFILL_MARKER_KEY = "_linkedDevicesManualBackfillVersion";
4
15
  export declare const LINKED_MANUAL_BACKFILL_VERSION = 1;
5
16
  export interface ManualBackfillPlan {
6
- /** `false` = the camera was already on `manual`; nothing to write. */
7
- readonly write: boolean;
8
- readonly manualIds: readonly number[];
17
+ /** `false` = the camera was already on `manual`; nothing to write. */
18
+ readonly write: boolean;
19
+ readonly manualIds: readonly number[];
9
20
  }
10
21
  export declare function planManualBackfill(params: {
11
- readonly selfId: number;
12
- readonly selfLocation: string | null;
13
- readonly blob: Record<string, unknown>;
14
- readonly candidates: readonly LinkCandidate[];
22
+ readonly selfId: number;
23
+ readonly selfLocation: string | null;
24
+ readonly blob: Record<string, unknown>;
25
+ readonly candidates: readonly LinkCandidate[];
15
26
  }): ManualBackfillPlan;
16
27
  export declare function runLinkedDevicesManualBackfillAtBoot(pctx: ProviderContext): Promise<void>;