@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,158 +1,118 @@
1
- import { IScopedLogger, SettingsStoreClient } from '@camstack/types';
1
+ import type { CollectionColumn, IScopedLogger, SettingsStoreClient } from "@camstack/types";
2
2
  /**
3
- * @durable class=ledger owner=local-auth
4
- * write="one row per login (password, passkey, SSO, handoff, session exchange);
5
- * rewritten on every refresh / renewal (expiry slides, refresh hash rotates)
6
- * and on revocation"
7
- * retention="the daily reap deletes rows expired more than 7 days ago and rows
8
- * revoked more than 30 days ago. A session the user keeps refreshing lives as
9
- * long as it is used."
10
- */
3
+ * @durable class=ledger owner=local-auth
4
+ * write="one row per login (password, passkey, SSO, handoff, session exchange);
5
+ * rewritten on every refresh / renewal (expiry slides, refresh hash rotates)
6
+ * and on revocation"
7
+ * retention="the daily reap deletes rows expired more than 7 days ago and rows
8
+ * revoked more than 30 days ago. A session the user keeps refreshing lives as
9
+ * long as it is used."
10
+ */
11
11
  export declare const LOGIN_SESSIONS_COLLECTION = "login_sessions";
12
12
  /**
13
- * @durable class=config owner=local-auth
14
- * write="revoking all of a user's sessions (logout everywhere, password change or
15
- * reset, user deletion) sets that user's cutoff to now"
16
- * retention="none — one row per user who ever had all sessions revoked; it only
17
- * ever matters for tokens minted before sessions existed, and is harmless after."
18
- */
13
+ * @durable class=config owner=local-auth
14
+ * write="revoking all of a user's sessions (logout everywhere, password change or
15
+ * reset, user deletion) sets that user's cutoff to now"
16
+ * retention="none — one row per user who ever had all sessions revoked; it only
17
+ * ever matters for tokens minted before sessions existed, and is harmless after."
18
+ */
19
19
  export declare const LOGIN_SESSION_CUTOFFS_COLLECTION = "login_session_cutoffs";
20
- export declare const LOGIN_SESSIONS_COLUMNS: ({
21
- name: string;
22
- type: "TEXT";
23
- primaryKey: boolean;
24
- notNull: boolean;
25
- } | {
26
- name: string;
27
- type: "TEXT";
28
- notNull: boolean;
29
- primaryKey?: undefined;
30
- } | {
31
- name: string;
32
- type: "BOOLEAN";
33
- notNull: boolean;
34
- primaryKey?: undefined;
35
- } | {
36
- name: string;
37
- type: "INTEGER";
38
- notNull: boolean;
39
- primaryKey?: undefined;
40
- } | {
41
- name: string;
42
- type: "INTEGER";
43
- primaryKey?: undefined;
44
- notNull?: undefined;
45
- } | {
46
- name: string;
47
- type: "TEXT";
48
- primaryKey?: undefined;
49
- notNull?: undefined;
50
- })[];
51
- export declare const LOGIN_SESSION_CUTOFFS_COLUMNS: ({
52
- name: string;
53
- type: "TEXT";
54
- primaryKey: boolean;
55
- notNull: boolean;
56
- } | {
57
- name: string;
58
- type: "INTEGER";
59
- notNull: boolean;
60
- primaryKey?: undefined;
61
- })[];
20
+ export declare const LOGIN_SESSIONS_COLUMNS: readonly CollectionColumn[];
21
+ export declare const LOGIN_SESSION_CUTOFFS_COLUMNS: readonly CollectionColumn[];
62
22
  /** How a session began — shown on the sessions list. */
63
- export type LoginSessionMethod = 'password' | 'passkey' | 'sso' | 'handoff' | 'exchange';
23
+ export type LoginSessionMethod = "password" | "passkey" | "sso" | "handoff" | "exchange";
64
24
  /** Why a session ended. */
65
- export type LoginSessionRevocation = 'logout' | 'logout-everywhere' | 'password-changed' | 'password-reset' | 'user-deleted' | 'refresh-reuse' | 'revoked-by-user' | 'revoked-by-admin';
25
+ export type LoginSessionRevocation = "logout" | "logout-everywhere" | "password-changed" | "password-reset" | "user-deleted" | "refresh-reuse" | "revoked-by-user" | "revoked-by-admin";
66
26
  export interface LoginSessionRecord {
67
- readonly id: string;
68
- readonly userId: string;
69
- readonly method: LoginSessionMethod;
70
- readonly refreshable: boolean;
71
- readonly createdAt: number;
72
- readonly lastUsedAt: number;
73
- readonly expiresAt: number;
74
- readonly revokedAt: number | null;
75
- readonly revokedReason: string | null;
76
- readonly refreshHash: string | null;
77
- readonly previousRefreshHash: string | null;
78
- readonly rotatedAt: number | null;
79
- readonly client: string | null;
80
- readonly ip: string | null;
27
+ readonly id: string;
28
+ readonly userId: string;
29
+ readonly method: LoginSessionMethod;
30
+ readonly refreshable: boolean;
31
+ readonly createdAt: number;
32
+ readonly lastUsedAt: number;
33
+ readonly expiresAt: number;
34
+ readonly revokedAt: number | null;
35
+ readonly revokedReason: string | null;
36
+ readonly refreshHash: string | null;
37
+ readonly previousRefreshHash: string | null;
38
+ readonly rotatedAt: number | null;
39
+ readonly client: string | null;
40
+ readonly ip: string | null;
81
41
  }
82
42
  /** A session as the UI sees it — no refresh hashes. */
83
- export type LoginSessionSummary = Omit<LoginSessionRecord, 'refreshHash' | 'previousRefreshHash' | 'rotatedAt'>;
43
+ export type LoginSessionSummary = Omit<LoginSessionRecord, "refreshHash" | "previousRefreshHash" | "rotatedAt">;
84
44
  export interface CreateLoginSessionInput {
85
- readonly userId: string;
86
- readonly lifetimeMs: number;
87
- readonly refreshable: boolean;
88
- readonly method: LoginSessionMethod;
89
- readonly client?: string;
90
- readonly ip?: string;
45
+ readonly userId: string;
46
+ readonly lifetimeMs: number;
47
+ readonly refreshable: boolean;
48
+ readonly method: LoginSessionMethod;
49
+ readonly client?: string;
50
+ readonly ip?: string;
91
51
  }
92
52
  export type LoginSessionCheck = {
93
- readonly state: 'active';
94
- readonly session: LoginSessionRecord;
53
+ readonly state: "active";
54
+ readonly session: LoginSessionRecord;
95
55
  } | {
96
- readonly state: 'unknown' | 'revoked' | 'expired';
56
+ readonly state: "unknown" | "revoked" | "expired";
97
57
  };
98
58
  export type LoginSessionRefresh = {
99
- readonly ok: true;
100
- readonly session: LoginSessionRecord;
101
- readonly refreshToken: string;
59
+ readonly ok: true;
60
+ readonly session: LoginSessionRecord;
61
+ readonly refreshToken: string;
102
62
  } | {
103
- readonly ok: false;
104
- readonly reason: 'unknown' | 'expired' | 'revoked' | 'reused';
63
+ readonly ok: false;
64
+ readonly reason: "unknown" | "expired" | "revoked" | "reused";
105
65
  };
106
66
  export declare const REFRESH_TOKEN_PREFIX = "csr_";
107
67
  export declare function toLoginSessionSummary(record: LoginSessionRecord): LoginSessionSummary;
108
68
  export interface LoginSessionManagerOptions {
109
- readonly now?: () => number;
110
- readonly logger?: IScopedLogger;
69
+ readonly now?: () => number;
70
+ readonly logger?: IScopedLogger;
111
71
  }
112
72
  export declare class LoginSessionManager {
113
- private readonly store;
114
- private readonly sessions;
115
- /** refresh hash (current or previous) → session id */
116
- private readonly byRefreshHash;
117
- private readonly cutoffs;
118
- private readonly now;
119
- private readonly logger;
120
- constructor(store: SettingsStoreClient, options?: LoginSessionManagerOptions);
121
- /** Load every row into the mirror. Call once at init, before serving. */
122
- load(): Promise<void>;
123
- create(input: CreateLoginSessionInput): Promise<{
124
- readonly session: LoginSessionRecord;
125
- readonly refreshToken: string | null;
126
- }>;
127
- /** Is `sessionId` a live session right now? Synchronous: the hub asks on every request. */
128
- check(sessionId: string): LoginSessionCheck;
129
- /** Epoch ms before which a pre-session (no `sid`) token of `userId` is refused; 0 = none. */
130
- legacyCutoff(userId: string): number;
131
- /** Swap a refresh token for a rotated one, sliding the session's expiry to now + `lifetimeMs`. */
132
- refresh(refreshToken: string, lifetimeMs: number): Promise<LoginSessionRefresh>;
133
- /** Renew an active session (legacy client): slide its expiry. `null` when it is not active. */
134
- extend(sessionId: string, lifetimeMs: number): Promise<LoginSessionRecord | null>;
135
- /** End one session. `false` when it was unknown or already ended. */
136
- revoke(sessionId: string, reason: LoginSessionRevocation): Promise<boolean>;
137
- /**
138
- * End every live session of `userId` except `exceptSessionId`, and move the
139
- * user's legacy cutoff to now (pre-session tokens die too). Returns how many
140
- * sessions ended.
141
- */
142
- revokeAllForUser(userId: string, options: {
143
- readonly exceptSessionId?: string;
144
- readonly reason: LoginSessionRevocation;
145
- }): Promise<number>;
146
- /** `userId`'s live sessions, newest first. */
147
- listForUser(userId: string): readonly LoginSessionSummary[];
148
- /** Every live session, newest first. */
149
- listActive(): readonly LoginSessionSummary[];
150
- /** Delete rows expired more than 7 days ago or revoked more than 30. Returns how many. */
151
- reap(): Promise<number>;
152
- private newRefreshToken;
153
- private remember;
154
- private forget;
155
- private replace;
156
- private persist;
157
- private persistCutoff;
73
+ private readonly store;
74
+ private readonly sessions;
75
+ /** refresh hash (current or previous) → session id */
76
+ private readonly byRefreshHash;
77
+ private readonly cutoffs;
78
+ private readonly now;
79
+ private readonly logger;
80
+ constructor(store: SettingsStoreClient, options?: LoginSessionManagerOptions);
81
+ /** Load every row into the mirror. Call once at init, before serving. */
82
+ load(): Promise<void>;
83
+ create(input: CreateLoginSessionInput): Promise<{
84
+ readonly session: LoginSessionRecord;
85
+ readonly refreshToken: string | null;
86
+ }>;
87
+ /** Is `sessionId` a live session right now? Synchronous: the hub asks on every request. */
88
+ check(sessionId: string): LoginSessionCheck;
89
+ /** Epoch ms before which a pre-session (no `sid`) token of `userId` is refused; 0 = none. */
90
+ legacyCutoff(userId: string): number;
91
+ /** Swap a refresh token for a rotated one, sliding the session's expiry to now + `lifetimeMs`. */
92
+ refresh(refreshToken: string, lifetimeMs: number): Promise<LoginSessionRefresh>;
93
+ /** Renew an active session (legacy client): slide its expiry. `null` when it is not active. */
94
+ extend(sessionId: string, lifetimeMs: number): Promise<LoginSessionRecord | null>;
95
+ /** End one session. `false` when it was unknown or already ended. */
96
+ revoke(sessionId: string, reason: LoginSessionRevocation): Promise<boolean>;
97
+ /**
98
+ * End every live session of `userId` except `exceptSessionId`, and move the
99
+ * user's legacy cutoff to now (pre-session tokens die too). Returns how many
100
+ * sessions ended.
101
+ */
102
+ revokeAllForUser(userId: string, options: {
103
+ readonly exceptSessionId?: string;
104
+ readonly reason: LoginSessionRevocation;
105
+ }): Promise<number>;
106
+ /** `userId`'s live sessions, newest first. */
107
+ listForUser(userId: string): readonly LoginSessionSummary[];
108
+ /** Every live session, newest first. */
109
+ listActive(): readonly LoginSessionSummary[];
110
+ /** Delete rows expired more than 7 days ago or revoked more than 30. Returns how many. */
111
+ reap(): Promise<number>;
112
+ private newRefreshToken;
113
+ private remember;
114
+ private forget;
115
+ private replace;
116
+ private persist;
117
+ private persistCutoff;
158
118
  }
@@ -1,18 +1,18 @@
1
1
  /**
2
- * Wrap a Zod schema parse with an actionable error message. The
3
- * settings-store regression that broke local-auth in May 2026 surfaced
4
- * as an opaque Zod error listing every required field as `undefined`
5
- * — confusing because the data IS in the DB, just exposed through the
6
- * wrong shape by `queryDeclared`. This helper makes the failure mode
7
- * obvious: it explicitly mentions the kind, the offending value's top-
8
- * level keys, and a hint about the most common cause.
9
- *
10
- * `schema` is typed loosely (any with a `parse` method) to avoid the
11
- * generic ZodTypeAny variance error across Zod major versions when this
12
- * helper is reused by callers that import schemas from `@camstack/types`.
13
- */
2
+ * Wrap a Zod schema parse with an actionable error message. The
3
+ * settings-store regression that broke local-auth in May 2026 surfaced
4
+ * as an opaque Zod error listing every required field as `undefined`
5
+ * — confusing because the data IS in the DB, just exposed through the
6
+ * wrong shape by `queryDeclared`. This helper makes the failure mode
7
+ * obvious: it explicitly mentions the kind, the offending value's top-
8
+ * level keys, and a hint about the most common cause.
9
+ *
10
+ * `schema` is typed loosely (any with a `parse` method) to avoid the
11
+ * generic ZodTypeAny variance error across Zod major versions when this
12
+ * helper is reused by callers that import schemas from `@camstack/types`.
13
+ */
14
14
  interface ZodLikeSchema<T> {
15
- parse(data: unknown): T;
15
+ parse(data: unknown): T;
16
16
  }
17
17
  export declare function parseRecord<T>(kind: string, schema: ZodLikeSchema<T>, data: unknown): T;
18
18
  export {};
@@ -1,8 +1,8 @@
1
1
  /**
2
- * The scope derivation moved to `@camstack/types`
3
- * (`src/auth/principal-scope.ts`) so that ADDONS can reach it — they may not
4
- * import `@camstack/system`, which is why `addon-export-alexa` had hand-copied
5
- * `scopesAllowDeviceCap` into its `directive-router.ts`. This module is the
6
- * kernel-side re-export; there is no second implementation.
7
- */
8
- export { scopesAllowAddon, scopesAllowDeviceCap } from '@camstack/types';
2
+ * The scope derivation moved to `@camstack/types`
3
+ * (`src/auth/principal-scope.ts`) so that ADDONS can reach it — they may not
4
+ * import `@camstack/system`, which is why `addon-export-alexa` had hand-copied
5
+ * `scopesAllowDeviceCap` into its `directive-router.ts`. This module is the
6
+ * kernel-side re-export; there is no second implementation.
7
+ */
8
+ export { scopesAllowAddon, scopesAllowDeviceCap } from "@camstack/types";
@@ -1,65 +1,65 @@
1
- import { ScopedToken, TokenScope, SettingsStoreClient } from '@camstack/types';
1
+ import type { ScopedToken, TokenScope, SettingsStoreClient } from "@camstack/types";
2
2
  /**
3
- * Manages scoped API tokens with restricted addon/route/capability access.
4
- */
3
+ * Manages scoped API tokens with restricted addon/route/capability access.
4
+ */
5
5
  export declare class ScopedTokenManager {
6
- private readonly store;
7
- constructor(store: SettingsStoreClient);
8
- create(userId: string, name: string, scopes: TokenScope[], expiresAt?: number): Promise<{
9
- token: string;
10
- record: ScopedToken;
11
- }>;
12
- validate(rawToken: string): Promise<ScopedToken | null>;
13
- /**
14
- * Coarse scope match — checks only `addonId` / `capability` (no
15
- * `route-prefix` after the caps-only migration). Used by addon-route
16
- * HTTP handlers that need a quick allow/deny before the per-method
17
- * `access` check kicks in via `METHOD_ACCESS_MAP` in
18
- * `protectedProcedure`.
19
- */
20
- matchesScope(token: ScopedToken, addonId?: string, capability?: string): boolean;
21
- revoke(tokenId: string): Promise<void>;
22
- listForUser(userId: string): Promise<ScopedToken[]>;
23
- updateLastUsed(tokenId: string): Promise<void>;
24
- /**
25
- * Delete tokens whose expiry has passed.
26
- *
27
- * These were never usable — {@link validate} already rejects an expired
28
- * token — so this is hygiene rather than a hole being closed, and it is
29
- * worth being precise about what it actually buys:
30
- *
31
- * - `listForUser` returns rows with no expiry filter, so the operator's
32
- * token list showed dead tokens as if they were live. There was no way to
33
- * tell from the UI which ones still worked.
34
- * - a database that outlives its tokens keeps their hashes indefinitely.
35
- * 27 rows on the live hub had been unusable for months.
36
- *
37
- * A token with NO expiry (`expiresAt` null/absent) is a deliberate
38
- * never-expires token and MUST survive: `BETWEEN` never matches NULL in
39
- * SQL, which is the property this depends on and the spec pins against a
40
- * real SQLite.
41
- *
42
- * The bound is `nowMs - 1` because {@link validate} treats `now ===
43
- * expiresAt` as still valid; reaping at exactly the expiry instant would
44
- * delete a token that the same millisecond still accepts.
45
- *
46
- * Returns how many rows went.
47
- */
48
- reapExpired(nowMs?: number): Promise<number>;
49
- /**
50
- * One-shot migration: drop tokens whose owner can't be resolved.
51
- *
52
- * Two ways a token can end up orphan:
53
- * • Pre-fix tokens minted via the CLI were owned by the literal
54
- * string `"system"` (provider hardcode, fixed 2026-05-11).
55
- * • A user gets deleted but their tokens were not cascade-revoked.
56
- *
57
- * Either way the UI's `listScopedTokens({ userId: u.id })` never
58
- * returns them, so the operator can't revoke through the normal flow.
59
- * We sweep both classes by passing the live user-id set in.
60
- *
61
- * Idempotent: if no orphans exist the method is a no-op.
62
- * Returns the number of tokens removed.
63
- */
64
- cleanupOrphans(validUserIds: ReadonlySet<string>): Promise<number>;
6
+ private readonly store;
7
+ constructor(store: SettingsStoreClient);
8
+ create(userId: string, name: string, scopes: TokenScope[], expiresAt?: number): Promise<{
9
+ token: string;
10
+ record: ScopedToken;
11
+ }>;
12
+ validate(rawToken: string): Promise<ScopedToken | null>;
13
+ /**
14
+ * Coarse scope match — checks only `addonId` / `capability` (no
15
+ * `route-prefix` after the caps-only migration). Used by addon-route
16
+ * HTTP handlers that need a quick allow/deny before the per-method
17
+ * `access` check kicks in via `METHOD_ACCESS_MAP` in
18
+ * `protectedProcedure`.
19
+ */
20
+ matchesScope(token: ScopedToken, addonId?: string, capability?: string): boolean;
21
+ revoke(tokenId: string): Promise<void>;
22
+ listForUser(userId: string): Promise<ScopedToken[]>;
23
+ updateLastUsed(tokenId: string): Promise<void>;
24
+ /**
25
+ * Delete tokens whose expiry has passed.
26
+ *
27
+ * These were never usable — {@link validate} already rejects an expired
28
+ * token — so this is hygiene rather than a hole being closed, and it is
29
+ * worth being precise about what it actually buys:
30
+ *
31
+ * - `listForUser` returns rows with no expiry filter, so the operator's
32
+ * token list showed dead tokens as if they were live. There was no way to
33
+ * tell from the UI which ones still worked.
34
+ * - a database that outlives its tokens keeps their hashes indefinitely.
35
+ * 27 rows on the live hub had been unusable for months.
36
+ *
37
+ * A token with NO expiry (`expiresAt` null/absent) is a deliberate
38
+ * never-expires token and MUST survive: `BETWEEN` never matches NULL in
39
+ * SQL, which is the property this depends on and the spec pins against a
40
+ * real SQLite.
41
+ *
42
+ * The bound is `nowMs - 1` because {@link validate} treats `now ===
43
+ * expiresAt` as still valid; reaping at exactly the expiry instant would
44
+ * delete a token that the same millisecond still accepts.
45
+ *
46
+ * Returns how many rows went.
47
+ */
48
+ reapExpired(nowMs?: number): Promise<number>;
49
+ /**
50
+ * One-shot migration: drop tokens whose owner can't be resolved.
51
+ *
52
+ * Two ways a token can end up orphan:
53
+ * • Pre-fix tokens minted via the CLI were owned by the literal
54
+ * string `"system"` (provider hardcode, fixed 2026-05-11).
55
+ * • A user gets deleted but their tokens were not cascade-revoked.
56
+ *
57
+ * Either way the UI's `listScopedTokens({ userId: u.id })` never
58
+ * returns them, so the operator can't revoke through the normal flow.
59
+ * We sweep both classes by passing the live user-id set in.
60
+ *
61
+ * Idempotent: if no orphans exist the method is a no-op.
62
+ * Returns the number of tokens removed.
63
+ */
64
+ cleanupOrphans(validUserIds: ReadonlySet<string>): Promise<number>;
65
65
  }
@@ -1,39 +1,62 @@
1
- import { DEFAULT_TOKEN_EXPIRY, IScopedLogger } from '@camstack/types';
1
+ /**
2
+ * Validation for the operator-configured session-JWT lifetime
3
+ * (`auth.tokenExpiry`, System → Settings → Authentication → Token Expiry).
4
+ *
5
+ * WHY THIS EXISTS. The field is a free-text box that reaches `jwt.sign`'s
6
+ * `expiresIn`. Two things go wrong without a gate in front of it:
7
+ *
8
+ * 1. `jsonwebtoken` THROWS on a value it cannot parse. The only caller is
9
+ * the login/refresh path, so one typo in a settings form turns every
10
+ * login into a 500 — a self-inflicted outage from a text field.
11
+ * 2. `jsonwebtoken` hands a bare numeric STRING to `ms()`, which reads it
12
+ * as MILLISECONDS. An operator who types `3600` meaning "an hour" gets
13
+ * a token that dies in 3.6 seconds. A bare number is therefore rejected
14
+ * rather than interpreted — the field's own description, placeholder and
15
+ * default are all duration strings (`24h`, `7d`, `30d`).
16
+ *
17
+ * A rejection never becomes an unbounded lifetime — it resolves to
18
+ * {@link DEFAULT_TOKEN_EXPIRY}, the single documented default — and it is
19
+ * never silent: `parseTokenExpiry` reports the refusal in its result and
20
+ * `logTokenExpiryRejection` renders it. The two are separate so the caller
21
+ * owns how often it speaks; the signer re-reads on every mint.
22
+ */
23
+ import { DEFAULT_TOKEN_EXPIRY } from "@camstack/types";
24
+ import type { IScopedLogger } from "@camstack/types";
2
25
  /** Why a candidate value was refused. Feeds the log line, not the UI. */
3
- export type TokenExpiryRejection = 'not-a-string' | 'malformed' | 'too-short' | 'too-long';
26
+ export type TokenExpiryRejection = "not-a-string" | "malformed" | "too-short" | "too-long";
4
27
  interface TokenExpiryOutcome {
5
- /**
6
- * Lifetime to hand `jwt.sign`, in SECONDS.
7
- *
8
- * Deliberately a number rather than the duration string: `expiresIn` accepts
9
- * both, but the string branch re-parses through `ms` — which is the branch
10
- * that reads a bare number as milliseconds. Resolving to seconds here means
11
- * exactly one parser decides what the operator's text meant, and it is this
12
- * one.
13
- */
14
- readonly seconds: number;
15
- /** The duration string actually applied — for the log line and the UI story. */
16
- readonly value: string;
28
+ /**
29
+ * Lifetime to hand `jwt.sign`, in SECONDS.
30
+ *
31
+ * Deliberately a number rather than the duration string: `expiresIn` accepts
32
+ * both, but the string branch re-parses through `ms` — which is the branch
33
+ * that reads a bare number as milliseconds. Resolving to seconds here means
34
+ * exactly one parser decides what the operator's text meant, and it is this
35
+ * one.
36
+ */
37
+ readonly seconds: number;
38
+ /** The duration string actually applied — for the log line and the UI story. */
39
+ readonly value: string;
17
40
  }
18
41
  export interface TokenExpiryRejected extends TokenExpiryOutcome {
19
- readonly ok: false;
20
- readonly reason: TokenExpiryRejection;
42
+ readonly ok: false;
43
+ readonly reason: TokenExpiryRejection;
21
44
  }
22
45
  export interface TokenExpiryAccepted extends TokenExpiryOutcome {
23
- readonly ok: true;
24
- readonly reason?: undefined;
46
+ readonly ok: true;
47
+ readonly reason?: undefined;
25
48
  }
26
49
  export type TokenExpiryResult = TokenExpiryAccepted | TokenExpiryRejected;
27
50
  /**
28
- * Parse a configured `auth.tokenExpiry`. An absent/blank value is not a
29
- * rejection — it is "operator never set it" and resolves to the default
30
- * without a log line.
31
- */
51
+ * Parse a configured `auth.tokenExpiry`. An absent/blank value is not a
52
+ * rejection — it is "operator never set it" and resolves to the default
53
+ * without a log line.
54
+ */
32
55
  export declare function parseTokenExpiry(configured: unknown): TokenExpiryResult;
33
56
  /**
34
- * Report a refused `auth.tokenExpiry`. Separate from {@link parseTokenExpiry}
35
- * so the caller owns HOW OFTEN it speaks — the signer re-reads the setting on
36
- * every mint and must not turn one bad save into a line per login.
37
- */
57
+ * Report a refused `auth.tokenExpiry`. Separate from {@link parseTokenExpiry}
58
+ * so the caller owns HOW OFTEN it speaks — the signer re-reads the setting on
59
+ * every mint and must not turn one bad save into a line per login.
60
+ */
38
61
  export declare function logTokenExpiryRejection(configured: unknown, rejection: TokenExpiryRejected, logger: IScopedLogger): void;
39
62
  export { DEFAULT_TOKEN_EXPIRY };
@@ -1,54 +1,54 @@
1
- import { SettingsStoreClient } from '@camstack/types';
1
+ import type { SettingsStoreClient } from "@camstack/types";
2
2
  export interface TotpSetupResult {
3
- readonly secret: string;
4
- readonly otpauthUrl: string;
3
+ readonly secret: string;
4
+ readonly otpauthUrl: string;
5
5
  }
6
6
  export interface TotpStatus {
7
- readonly enabled: boolean;
8
- readonly confirmedAt: number | null;
7
+ readonly enabled: boolean;
8
+ readonly confirmedAt: number | null;
9
9
  }
10
10
  export declare class TotpManager {
11
- private readonly store;
12
- /** ±N steps of clock-skew tolerance, expressed in seconds for otplib v13's
13
- * per-call `epochTolerance`. Default window 1 = ±30 s. */
14
- private readonly epochTolerance;
15
- constructor(store: SettingsStoreClient, opts?: {
16
- /** ±N 30-second windows tolerated. Default 1 = ±30 s clock skew. */
17
- readonly window?: number;
18
- });
19
- /**
20
- * Begin enrollment. Always generates a fresh secret — calling `setup`
21
- * a second time on the same user replaces any pending half-enrollment
22
- * (the user must rescan the QR / re-enter the secret).
23
- *
24
- * The user identity (`label`) is what an authenticator displays as
25
- * the account name; we use the supplied `username` for human-readable
26
- * recognition. `ISSUER` is the CamStack brand.
27
- */
28
- setup(userId: string, username: string): Promise<TotpSetupResult>;
29
- /**
30
- * Confirm enrollment by checking a code from the authenticator
31
- * against the pending secret. On success, flips `confirmedAt` so
32
- * `verify()` starts accepting codes. Idempotent on already-confirmed
33
- * rows: re-confirming a valid code just succeeds with no state
34
- * change.
35
- */
36
- confirm(userId: string, code: string): Promise<boolean>;
37
- /**
38
- * Remove enrollment. Idempotent — no error if the user had no row.
39
- */
40
- disable(userId: string): Promise<void>;
41
- /**
42
- * Verify a code against the confirmed secret. Returns `false` when:
43
- * - The user has no row (not set up).
44
- * - The row is pending (`confirmedAt === null`).
45
- * - The code doesn't match within the configured window.
46
- */
47
- verify(userId: string, code: string): Promise<boolean>;
48
- /**
49
- * Read the user's enrollment status. Pending half-enrollments are
50
- * reported as `enabled: false` — only a confirmed row counts.
51
- */
52
- getStatus(userId: string): Promise<TotpStatus>;
53
- private find;
11
+ private readonly store;
12
+ /** ±N steps of clock-skew tolerance, expressed in seconds for otplib v13's
13
+ * per-call `epochTolerance`. Default window 1 = ±30 s. */
14
+ private readonly epochTolerance;
15
+ constructor(store: SettingsStoreClient, opts?: {
16
+ /** ±N 30-second windows tolerated. Default 1 = ±30 s clock skew. */
17
+ readonly window?: number;
18
+ });
19
+ /**
20
+ * Begin enrollment. Always generates a fresh secret — calling `setup`
21
+ * a second time on the same user replaces any pending half-enrollment
22
+ * (the user must rescan the QR / re-enter the secret).
23
+ *
24
+ * The user identity (`label`) is what an authenticator displays as
25
+ * the account name; we use the supplied `username` for human-readable
26
+ * recognition. `ISSUER` is the CamStack brand.
27
+ */
28
+ setup(userId: string, username: string): Promise<TotpSetupResult>;
29
+ /**
30
+ * Confirm enrollment by checking a code from the authenticator
31
+ * against the pending secret. On success, flips `confirmedAt` so
32
+ * `verify()` starts accepting codes. Idempotent on already-confirmed
33
+ * rows: re-confirming a valid code just succeeds with no state
34
+ * change.
35
+ */
36
+ confirm(userId: string, code: string): Promise<boolean>;
37
+ /**
38
+ * Remove enrollment. Idempotent — no error if the user had no row.
39
+ */
40
+ disable(userId: string): Promise<void>;
41
+ /**
42
+ * Verify a code against the confirmed secret. Returns `false` when:
43
+ * - The user has no row (not set up).
44
+ * - The row is pending (`confirmedAt === null`).
45
+ * - The code doesn't match within the configured window.
46
+ */
47
+ verify(userId: string, code: string): Promise<boolean>;
48
+ /**
49
+ * Read the user's enrollment status. Pending half-enrollments are
50
+ * reported as `enabled: false` — only a confirmed row counts.
51
+ */
52
+ getStatus(userId: string): Promise<TotpStatus>;
53
+ private find;
54
54
  }