@camstack/system 1.2.390 → 1.2.391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/dist/addon/addon-api-factory.d.ts +30 -30
  2. package/dist/addon-routes/addon-route-registry.d.ts +31 -31
  3. package/dist/addon-runner.js +1 -1
  4. package/dist/addon-runner.mjs +1 -1
  5. package/dist/addon-utils.d.ts +22 -22
  6. package/dist/auth/admin-token-manager.d.ts +37 -67
  7. package/dist/auth/api-key-manager.d.ts +8 -8
  8. package/dist/auth/auth-audit-log.d.ts +29 -49
  9. package/dist/auth/auth-manager.d.ts +127 -126
  10. package/dist/auth/cidr.d.ts +8 -8
  11. package/dist/auth/external-identity-manager.d.ts +46 -34
  12. package/dist/auth/jwt-signing-key.d.ts +14 -14
  13. package/dist/auth/login-session-manager.d.ts +95 -135
  14. package/dist/auth/parse-record.d.ts +13 -13
  15. package/dist/auth/scope-matcher.d.ts +7 -7
  16. package/dist/auth/scoped-token-manager.d.ts +62 -62
  17. package/dist/auth/token-expiry.d.ts +49 -26
  18. package/dist/auth/totp-manager.d.ts +48 -48
  19. package/dist/auth/user-management-internal.d.ts +67 -52
  20. package/dist/auth/user-manager.d.ts +58 -58
  21. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
  22. package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
  23. package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
  24. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
  25. package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
  26. package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
  27. package/dist/builtins/alerts/device-label.d.ts +6 -6
  28. package/dist/builtins/alerts/index.d.ts +1 -1
  29. package/dist/builtins/alerts/prune-policy.d.ts +36 -36
  30. package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
  31. package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
  32. package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
  33. package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
  34. package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
  35. package/dist/builtins/autotrack/frame-error.d.ts +38 -38
  36. package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
  37. package/dist/builtins/autotrack/index.d.ts +2 -2
  38. package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
  39. package/dist/builtins/autotrack/target-selection.d.ts +33 -47
  40. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
  41. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
  42. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
  43. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
  44. package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
  45. package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
  46. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
  47. package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
  48. package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
  49. package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
  50. package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
  51. package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
  52. package/dist/builtins/calendars/calendar-color.d.ts +5 -1
  53. package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
  54. package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
  55. package/dist/builtins/calendars/index.d.ts +1 -1
  56. package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
  57. package/dist/builtins/camera-grid/addon.d.ts +200 -174
  58. package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
  59. package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
  60. package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
  61. package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
  62. package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
  63. package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
  64. package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
  65. package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
  66. package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
  67. package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
  68. package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
  69. package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
  70. package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
  71. package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
  72. package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
  73. package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
  74. package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
  75. package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
  76. package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
  77. package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
  78. package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
  79. package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
  80. package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
  81. package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
  82. package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
  83. package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
  84. package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
  85. package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
  86. package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
  87. package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
  88. package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
  89. package/dist/builtins/camera-grid/index.d.ts +44 -44
  90. package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
  91. package/dist/builtins/composer/claim-gate.d.ts +54 -27
  92. package/dist/builtins/composer/composed-device-set.d.ts +40 -26
  93. package/dist/builtins/composer/composed-device.d.ts +39 -17
  94. package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
  95. package/dist/builtins/composer/composer-grafts.d.ts +57 -38
  96. package/dist/builtins/composer/composer-live-set.d.ts +15 -15
  97. package/dist/builtins/composer/composer-plan.d.ts +76 -60
  98. package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
  99. package/dist/builtins/composer/composer-seeds.d.ts +20 -14
  100. package/dist/builtins/composer/composer-verdict.d.ts +28 -14
  101. package/dist/builtins/composer/composer.addon.d.ts +23 -9
  102. package/dist/builtins/composer/composer.d.ts +145 -100
  103. package/dist/builtins/composer/composition-declarations.d.ts +50 -39
  104. package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
  105. package/dist/builtins/composer/composition-runtime.d.ts +178 -125
  106. package/dist/builtins/composer/composition-target.d.ts +38 -34
  107. package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
  108. package/dist/builtins/composer/deadline-timer.d.ts +13 -13
  109. package/dist/builtins/composer/existing-target.d.ts +90 -73
  110. package/dist/builtins/composer/field-record.d.ts +26 -19
  111. package/dist/builtins/composer/graft-host.d.ts +56 -32
  112. package/dist/builtins/composer/held-claims.d.ts +26 -9
  113. package/dist/builtins/composer/index.d.ts +1 -1
  114. package/dist/builtins/composer/own-field-reads.d.ts +26 -15
  115. package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
  116. package/dist/builtins/composer/slice-assembler.d.ts +19 -3
  117. package/dist/builtins/composer/source-readings.d.ts +67 -61
  118. package/dist/builtins/composer/source-tracker.d.ts +133 -69
  119. package/dist/builtins/console-logging/console-destination.d.ts +15 -8
  120. package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
  121. package/dist/builtins/console-logging/index.d.ts +3 -3
  122. package/dist/builtins/core-blocks/block-package.d.ts +37 -37
  123. package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
  124. package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
  125. package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
  126. package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
  127. package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
  128. package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
  129. package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
  130. package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
  131. package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
  132. package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
  133. package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
  134. package/dist/builtins/core-blocks/index.d.ts +8 -8
  135. package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
  136. package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
  137. package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
  138. package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
  139. package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
  140. package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
  141. package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
  142. package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
  143. package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
  144. package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
  145. package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
  146. package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
  147. package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
  148. package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
  149. package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
  150. package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
  151. package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
  152. package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
  153. package/dist/builtins/device-manager/device-projection.d.ts +53 -67
  154. package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
  155. package/dist/builtins/device-manager/device-queries.d.ts +63 -63
  156. package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
  157. package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
  158. package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
  159. package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
  160. package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
  161. package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
  162. package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
  163. package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
  164. package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
  165. package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
  166. package/dist/builtins/device-manager/index.d.ts +2 -2
  167. package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
  168. package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
  169. package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
  170. package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
  171. package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
  172. package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
  173. package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
  174. package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
  175. package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
  176. package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
  177. package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
  178. package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
  179. package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
  180. package/dist/builtins/device-manager/write-lock.d.ts +13 -13
  181. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
  182. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
  183. package/dist/builtins/hub-forwarder/index.d.ts +3 -3
  184. package/dist/builtins/keychain/index.d.ts +1 -1
  185. package/dist/builtins/keychain/key-sources.d.ts +19 -19
  186. package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
  187. package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
  188. package/dist/builtins/keychain/keychain-service.d.ts +128 -128
  189. package/dist/builtins/keychain/keychain-store.d.ts +96 -87
  190. package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
  191. package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
  192. package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
  193. package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
  194. package/dist/builtins/liveness-monitor/index.d.ts +2 -2
  195. package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
  196. package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
  197. package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
  198. package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
  199. package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
  200. package/dist/builtins/local-auth/index.d.ts +1 -1
  201. package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
  202. package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
  203. package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
  204. package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
  205. package/dist/builtins/local-network/address-book.d.ts +61 -36
  206. package/dist/builtins/local-network/index.d.ts +2 -2
  207. package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
  208. package/dist/builtins/local-network/local-hostname.d.ts +10 -10
  209. package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
  210. package/dist/builtins/loki-logging/index.d.ts +4 -4
  211. package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
  212. package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
  213. package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
  214. package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
  215. package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
  216. package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
  217. package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
  218. package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
  219. package/dist/builtins/native-metrics/index.d.ts +2 -2
  220. package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
  221. package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
  222. package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
  223. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
  224. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
  225. package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
  226. package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
  227. package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
  228. package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
  229. package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
  230. package/dist/builtins/platform-probe/index.d.ts +38 -30
  231. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
  232. package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
  233. package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
  234. package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
  235. package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
  236. package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
  237. package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
  238. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
  239. package/dist/builtins/shared/device-state-changed.d.ts +9 -9
  240. package/dist/builtins/shared/settle-sources.d.ts +16 -16
  241. package/dist/builtins/snapshot/index.d.ts +2 -2
  242. package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
  243. package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
  244. package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
  245. package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
  246. package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
  247. package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
  248. package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
  249. package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
  250. package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
  251. package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
  252. package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
  253. package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
  254. package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
  255. package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
  256. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
  257. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
  258. package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
  259. package/dist/builtins/sqlite-storage/index.d.ts +12 -12
  260. package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
  261. package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
  262. package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
  263. package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
  264. package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
  265. package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
  266. package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
  267. package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
  268. package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
  269. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
  270. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
  271. package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
  272. package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
  273. package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
  274. package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
  275. package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
  276. package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
  277. package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
  278. package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
  279. package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
  280. package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
  281. package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
  282. package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
  283. package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
  284. package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
  285. package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
  286. package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
  287. package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
  288. package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
  289. package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
  290. package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
  291. package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
  292. package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
  293. package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
  294. package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
  295. package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
  296. package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
  297. package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
  298. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
  299. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
  300. package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
  301. package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
  302. package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
  303. package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
  304. package/dist/builtins/system-config/index.d.ts +2 -2
  305. package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
  306. package/dist/builtins/system-config/system-config.addon.d.ts +57 -100
  307. package/dist/builtins/system-config/system-config.addon.js +37 -33
  308. package/dist/builtins/system-config/system-config.addon.mjs +37 -33
  309. package/dist/builtins/winston-logging/index.d.ts +3 -3
  310. package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
  311. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
  312. package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
  313. package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
  314. package/dist/download/hosted-model-revisions.d.ts +8 -8
  315. package/dist/download/model-download-service.d.ts +32 -32
  316. package/dist/download/model-downloader.d.ts +88 -88
  317. package/dist/events/event-bus.d.ts +6 -6
  318. package/dist/events/system-event-bus.d.ts +11 -11
  319. package/dist/feature/feature-manager.d.ts +6 -6
  320. package/dist/http/asset-compression.d.ts +35 -73
  321. package/dist/http/authenticated-file-server.d.ts +32 -32
  322. package/dist/http/data-plane-registry.d.ts +49 -39
  323. package/dist/http/file-data-plane.d.ts +14 -14
  324. package/dist/http/lan-http-bind.d.ts +24 -13
  325. package/dist/http/reverse-proxy.d.ts +36 -24
  326. package/dist/index.d.ts +137 -137
  327. package/dist/index.js +4 -3
  328. package/dist/index.mjs +2 -4
  329. package/dist/kernel/addon-class-resolver.d.ts +1 -1
  330. package/dist/kernel/addon-engine-manager.d.ts +20 -20
  331. package/dist/kernel/addon-health-monitor.d.ts +151 -151
  332. package/dist/kernel/addon-installer.d.ts +609 -609
  333. package/dist/kernel/addon-loader.d.ts +133 -133
  334. package/dist/kernel/addon-manifest.d.ts +118 -118
  335. package/dist/kernel/addon-residue.d.ts +28 -32
  336. package/dist/kernel/array-buffer-census.d.ts +84 -88
  337. package/dist/kernel/bootstrap-config.d.ts +3 -3
  338. package/dist/kernel/cap-router-builder.d.ts +145 -101
  339. package/dist/kernel/capability-handle.d.ts +41 -41
  340. package/dist/kernel/capability-registry.d.ts +588 -576
  341. package/dist/kernel/config-manager.d.ts +199 -199
  342. package/dist/kernel/config-schema.d.ts +132 -128
  343. package/dist/kernel/custom-action-registry.d.ts +25 -25
  344. package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
  345. package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
  346. package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
  347. package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
  348. package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
  349. package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
  350. package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
  351. package/dist/kernel/deps/npm-command.d.ts +45 -45
  352. package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
  353. package/dist/kernel/deps/system-package-broker.d.ts +20 -20
  354. package/dist/kernel/deps/system-package-client.d.ts +3 -3
  355. package/dist/kernel/device-registry.d.ts +27 -27
  356. package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
  357. package/dist/kernel/event-plane-report.d.ts +174 -174
  358. package/dist/kernel/fs-utils.d.ts +70 -70
  359. package/dist/kernel/gc-census.d.ts +119 -119
  360. package/dist/kernel/heap-spaces.d.ts +87 -87
  361. package/dist/kernel/heap-watch.d.ts +706 -706
  362. package/dist/kernel/host-externals.d.ts +8 -8
  363. package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
  364. package/dist/kernel/index.d.ts +115 -113
  365. package/dist/kernel/inference/inference-resolver.d.ts +13 -13
  366. package/dist/kernel/infra-capabilities.d.ts +7 -7
  367. package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
  368. package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
  369. package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
  370. package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
  371. package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
  372. package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
  373. package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
  374. package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
  375. package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
  376. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
  377. package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
  378. package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
  379. package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
  380. package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
  381. package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
  382. package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
  383. package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
  384. package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
  385. package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
  386. package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
  387. package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
  388. package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
  389. package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
  390. package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
  391. package/dist/kernel/moleculer/event-bus.d.ts +73 -73
  392. package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
  393. package/dist/kernel/moleculer/hub-service.d.ts +42 -42
  394. package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
  395. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
  396. package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
  397. package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
  398. package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
  399. package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
  400. package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
  401. package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
  402. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
  403. package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
  404. package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
  405. package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
  406. package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
  407. package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
  408. package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
  409. package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
  410. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
  411. package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
  412. package/dist/kernel/moleculer/node-registry.d.ts +120 -120
  413. package/dist/kernel/moleculer/process-context.d.ts +2 -2
  414. package/dist/kernel/moleculer/process-service.d.ts +168 -168
  415. package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
  416. package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
  417. package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
  418. package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
  419. package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
  420. package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
  421. package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
  422. package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
  423. package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
  424. package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
  425. package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
  426. package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
  427. package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
  428. package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
  429. package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
  430. package/dist/kernel/outbound-queue-watch.d.ts +74 -74
  431. package/dist/kernel/process-cpu-census.d.ts +55 -55
  432. package/dist/kernel/provider-kind-drift.d.ts +17 -8
  433. package/dist/kernel/restart-coordinator.d.ts +71 -71
  434. package/dist/kernel/settings-door-view.d.ts +36 -25
  435. package/dist/kernel/settings-read-error.d.ts +29 -31
  436. package/dist/kernel/settings-view-types.d.ts +100 -95
  437. package/dist/kernel/socket-plane-report.d.ts +214 -153
  438. package/dist/kernel/status-overlay.d.ts +31 -11
  439. package/dist/kernel/storage-location-registry.d.ts +50 -50
  440. package/dist/kernel/store-settings-view.d.ts +13 -13
  441. package/dist/kernel/system-settings-mirror.d.ts +40 -28
  442. package/dist/kernel/system-settings-policy.d.ts +15 -34
  443. package/dist/kernel/transport/cap-action-census.d.ts +183 -183
  444. package/dist/kernel/transport/cap-action-name.d.ts +84 -84
  445. package/dist/kernel/transport/cap-child-index.d.ts +41 -41
  446. package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
  447. package/dist/kernel/transport/cap-route.d.ts +139 -139
  448. package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
  449. package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
  450. package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
  451. package/dist/kernel/transport/create-local-transport.d.ts +5 -5
  452. package/dist/kernel/transport/frame-codec.d.ts +109 -109
  453. package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
  454. package/dist/kernel/transport/index.d.ts +36 -36
  455. package/dist/kernel/transport/local-child-client.d.ts +184 -184
  456. package/dist/kernel/transport/local-child-registry.d.ts +592 -592
  457. package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
  458. package/dist/kernel/transport/local-transport.d.ts +92 -92
  459. package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
  460. package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
  461. package/dist/kernel/transport/socket-channel.d.ts +110 -110
  462. package/dist/kernel/transport/socket-traffic.d.ts +96 -96
  463. package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
  464. package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
  465. package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
  466. package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
  467. package/dist/kernel/transport/uds-logger.d.ts +33 -33
  468. package/dist/kernel/utils/ring-buffer.d.ts +12 -12
  469. package/dist/kernel/workspace-detect.d.ts +7 -7
  470. package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
  471. package/dist/logging/formatter.d.ts +52 -25
  472. package/dist/logging/log-manager.d.ts +133 -133
  473. package/dist/logging/log-redactor.d.ts +22 -1
  474. package/dist/logging/log-ring-buffer.d.ts +57 -57
  475. package/dist/logging/logging-gate.d.ts +69 -25
  476. package/dist/logging/logging-gate.singleton.d.ts +12 -1
  477. package/dist/logging/partitioned-log-buffer.d.ts +161 -161
  478. package/dist/logging/scoped-logger.d.ts +14 -14
  479. package/dist/network/network-quality.d.ts +8 -8
  480. package/dist/notification/notification-service.d.ts +37 -37
  481. package/dist/notification/toast-service.d.ts +18 -18
  482. package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
  483. package/dist/pipeline/pipeline-runner.d.ts +6 -6
  484. package/dist/pipeline/pipeline-validator.d.ts +8 -8
  485. package/dist/process/proc-stat.d.ts +51 -51
  486. package/dist/process/resource-monitor.d.ts +19 -19
  487. package/dist/python/python-env-manager.d.ts +10 -10
  488. package/dist/repl/interfaces.d.ts +21 -21
  489. package/dist/repl/repl-engine.d.ts +6 -6
  490. package/dist/storage/fs-storage-backend.d.ts +35 -35
  491. package/dist/storage/storage-location-manager.d.ts +21 -21
  492. package/dist/storage/storage-manager.d.ts +68 -68
  493. package/dist/tls/boot-tls.d.ts +24 -24
  494. package/dist/tls/cert-evaluation.d.ts +25 -25
  495. package/dist/tls/cert-identity.d.ts +39 -39
  496. package/dist/tls/cert-issue.d.ts +37 -17
  497. package/dist/tls/cert-manager.d.ts +86 -84
  498. package/dist/tls/https-listener.d.ts +16 -16
  499. package/dist/tls/index.d.ts +8 -8
  500. package/dist/tls/tls-actions.d.ts +18 -18
  501. package/dist/tls/tls-status.d.ts +15 -15
  502. package/dist/tls/uploaded-cert.d.ts +9 -9
  503. package/package.json +9 -3
@@ -1,99 +1,125 @@
1
- import { ILogDestination, LogEntry, LogFilter, LogLevel } from '@camstack/types';
1
+ /**
2
+ * Grafana Loki log destination — batches entries and pushes them to Loki's
3
+ * `POST /loki/api/v1/push`. Payload construction and the label policy live in the
4
+ * pure `loki-payload.ts`; this file owns the batching, the transport and the
5
+ * failure behaviour.
6
+ *
7
+ * ## It must never log
8
+ *
9
+ * This is the constraint that shapes everything else. A `log-destination` that
10
+ * emits a log line feeds itself: one entry → a push → the push logs something →
11
+ * another entry → another push. The `hub-forwarder` builtin carries the same
12
+ * warning in its manifest for the same reason.
13
+ *
14
+ * So this class NEVER calls `ctx.logger`, and it does not throw out of `write()`
15
+ * either — `LogManager` fans one entry to every destination, so throwing here
16
+ * would break the other sinks. Errors are counted and exposed through
17
+ * `getStatus()` for the Admin UI to render. Diagnosing a broken Loki
18
+ * configuration is a UI affordance, deliberately, because it cannot be a log line.
19
+ *
20
+ * ## Backpressure
21
+ *
22
+ * If Loki is down, entries accumulate. A logger that OOMs the process it is
23
+ * observing is worse than a logger that loses lines, so the queue is bounded at
24
+ * `MAX_QUEUE` and drops OLDEST-first when full (a burst during an incident is
25
+ * exactly when the newest lines matter most). Drops are counted and surfaced.
26
+ */
27
+ import type { ILogDestination, LogEntry, LogFilter, LogLevel } from "@camstack/types";
2
28
  export interface LokiConfig {
3
- readonly enabled: boolean;
4
- /** Base URL of the Loki instance, e.g. `http://loki:3100`. */
5
- readonly url: string;
6
- readonly job: string;
7
- readonly node: string;
8
- readonly level: LogLevel;
9
- /** Flush period in ms. */
10
- readonly batchIntervalMs: number;
11
- /** Flush early once this many entries are queued. */
12
- readonly batchSize: number;
13
- /** `key=value,key2=value2` static labels. Must stay low-cardinality. */
14
- readonly extraLabels: string;
15
- /** Grafana Cloud / multi-tenant Loki: sent as `X-Scope-OrgID`. */
16
- readonly tenantId: string;
17
- /** Optional HTTP basic auth. */
18
- readonly username: string;
19
- readonly password: string;
20
- readonly timeoutMs: number;
29
+ readonly enabled: boolean;
30
+ /** Base URL of the Loki instance, e.g. `http://loki:3100`. */
31
+ readonly url: string;
32
+ readonly job: string;
33
+ readonly node: string;
34
+ readonly level: LogLevel;
35
+ /** Flush period in ms. */
36
+ readonly batchIntervalMs: number;
37
+ /** Flush early once this many entries are queued. */
38
+ readonly batchSize: number;
39
+ /** `key=value,key2=value2` static labels. Must stay low-cardinality. */
40
+ readonly extraLabels: string;
41
+ /** Grafana Cloud / multi-tenant Loki: sent as `X-Scope-OrgID`. */
42
+ readonly tenantId: string;
43
+ /** Optional HTTP basic auth. */
44
+ readonly username: string;
45
+ readonly password: string;
46
+ readonly timeoutMs: number;
21
47
  }
22
48
  export interface LokiStatus {
23
- readonly enabled: boolean;
24
- readonly configured: boolean;
25
- readonly queued: number;
26
- readonly pushed: number;
27
- readonly dropped: number;
28
- readonly failures: number;
29
- readonly lastError: string | null;
30
- readonly lastPushAtMs: number | null;
49
+ readonly enabled: boolean;
50
+ readonly configured: boolean;
51
+ readonly queued: number;
52
+ readonly pushed: number;
53
+ readonly dropped: number;
54
+ readonly failures: number;
55
+ readonly lastError: string | null;
56
+ readonly lastPushAtMs: number | null;
31
57
  }
32
58
  /** Injected in tests. Matches the shape of global `fetch` that is actually used. */
33
59
  export type LokiFetch = (url: string, init: {
34
- readonly method: string;
35
- readonly headers: Readonly<Record<string, string>>;
36
- readonly body: string;
37
- readonly signal?: AbortSignal;
60
+ readonly method: string;
61
+ readonly headers: Readonly<Record<string, string>>;
62
+ readonly body: string;
63
+ readonly signal?: AbortSignal;
38
64
  }) => Promise<{
39
- readonly ok: boolean;
40
- readonly status: number;
41
- text(): Promise<string>;
65
+ readonly ok: boolean;
66
+ readonly status: number;
67
+ text(): Promise<string>;
42
68
  }>;
43
69
  export interface LokiDestinationDeps {
44
- readonly fetchFn?: LokiFetch;
45
- readonly setIntervalFn?: typeof setInterval;
46
- readonly clearIntervalFn?: typeof clearInterval;
70
+ readonly fetchFn?: LokiFetch;
71
+ readonly setIntervalFn?: typeof setInterval;
72
+ readonly clearIntervalFn?: typeof clearInterval;
47
73
  }
48
74
  export declare class LokiDestination implements ILogDestination {
49
- private config;
50
- private queue;
51
- private timer;
52
- private flushing;
53
- private pushed;
54
- private dropped;
55
- private failures;
56
- private lastError;
57
- private lastPushAtMs;
58
- private readonly fetchFn;
59
- private readonly setIntervalFn;
60
- private readonly clearIntervalFn;
61
- constructor(deps?: LokiDestinationDeps);
62
- initialize(config?: LokiConfig): Promise<void>;
63
- /**
64
- * Re-apply configuration to an already-initialized destination after a
65
- * settings change, without dropping the queued tail. Stops the current flush
66
- * timer, swaps the config in, and starts a fresh timer only when the new
67
- * config is active. This is what makes the addon's "enable without a restart"
68
- * contract real: `initialize()` starts a timer, so calling it twice would leak
69
- * the first one — `reconfigure()` clears it first.
70
- */
71
- reconfigure(config: LokiConfig): Promise<void>;
72
- private stopTimer;
73
- private startTimerIfActive;
74
- /** Enabled AND pointed somewhere. An enabled destination with no URL is inert. */
75
- private isActive;
76
- write(entry: LogEntry): void;
77
- /**
78
- * Push whatever is queued. Never throws and never logs.
79
- *
80
- * On failure the batch is put BACK at the front of the queue so a transient
81
- * Loki outage does not lose lines; `MAX_QUEUE` is what stops that from growing
82
- * without bound.
83
- */
84
- flush(): Promise<void>;
85
- private push;
86
- getStatus(): LokiStatus;
87
- /**
88
- * One-shot reachability probe for the Admin UI's "Test connection" button.
89
- * Pushes a single synthetic entry, which validates the URL, the auth, the
90
- * tenant header AND the label policy in one go — a bare GET would validate
91
- * none of them.
92
- */
93
- testConnection(config: LokiConfig): Promise<{
94
- ok: boolean;
95
- error: string | null;
96
- }>;
97
- query(_filter: LogFilter): Promise<readonly LogEntry[]>;
98
- shutdown(): Promise<void>;
75
+ private config;
76
+ private queue;
77
+ private timer;
78
+ private flushing;
79
+ private pushed;
80
+ private dropped;
81
+ private failures;
82
+ private lastError;
83
+ private lastPushAtMs;
84
+ private readonly fetchFn;
85
+ private readonly setIntervalFn;
86
+ private readonly clearIntervalFn;
87
+ constructor(deps?: LokiDestinationDeps);
88
+ initialize(config?: LokiConfig): Promise<void>;
89
+ /**
90
+ * Re-apply configuration to an already-initialized destination after a
91
+ * settings change, without dropping the queued tail. Stops the current flush
92
+ * timer, swaps the config in, and starts a fresh timer only when the new
93
+ * config is active. This is what makes the addon's "enable without a restart"
94
+ * contract real: `initialize()` starts a timer, so calling it twice would leak
95
+ * the first one — `reconfigure()` clears it first.
96
+ */
97
+ reconfigure(config: LokiConfig): Promise<void>;
98
+ private stopTimer;
99
+ private startTimerIfActive;
100
+ /** Enabled AND pointed somewhere. An enabled destination with no URL is inert. */
101
+ private isActive;
102
+ write(entry: LogEntry): void;
103
+ /**
104
+ * Push whatever is queued. Never throws and never logs.
105
+ *
106
+ * On failure the batch is put BACK at the front of the queue so a transient
107
+ * Loki outage does not lose lines; `MAX_QUEUE` is what stops that from growing
108
+ * without bound.
109
+ */
110
+ flush(): Promise<void>;
111
+ private push;
112
+ getStatus(): LokiStatus;
113
+ /**
114
+ * One-shot reachability probe for the Admin UI's "Test connection" button.
115
+ * Pushes a single synthetic entry, which validates the URL, the auth, the
116
+ * tenant header AND the label policy in one go — a bare GET would validate
117
+ * none of them.
118
+ */
119
+ testConnection(config: LokiConfig): Promise<{
120
+ ok: boolean;
121
+ error: string | null;
122
+ }>;
123
+ query(_filter: LogFilter): Promise<readonly LogEntry[]>;
124
+ shutdown(): Promise<void>;
99
125
  }
@@ -1,47 +1,66 @@
1
- import { LogLevel, ProviderRegistration, BaseAddon } from '@camstack/types';
2
- import { LokiDestination } from './loki-destination.js';
1
+ /**
2
+ * Loki logging addon — ships this node's log entries to a Grafana Loki instance.
3
+ *
4
+ * OPT-IN. It is a builtin so it is always available, but it does nothing until an
5
+ * operator supplies a URL: `url` defaults to empty and `LokiDestination` treats
6
+ * that as inert. Whether it is used at all is the per-destination
7
+ * `log-destination` capability toggle — the ONE enable (D777); the old private
8
+ * `enabled` setting is retired by `retire-enabled-flag.ts`. The provider is
9
+ * registered either way, so the Logging page can show it and the operator can
10
+ * turn it on without a restart of anything else.
11
+ *
12
+ * Sits at the same level as `winston-logging` (rotated files), `console-logging`
13
+ * (stdout) and `hub-forwarder` (agent → hub): all four are `log-destination`
14
+ * collection providers, `LogManager` fans every entry to all of them, and each is
15
+ * independently configurable. Enabling this one does not disable any other.
16
+ *
17
+ * Why Loki's push API rather than Promtail: see the docblock in `loki-payload.ts`.
18
+ */
19
+ import type { ConfigUISchema, LogLevel, ProviderRegistration } from "@camstack/types";
20
+ import { BaseAddon } from "@camstack/types";
21
+ import { LokiDestination } from "./loki-destination.js";
3
22
  interface LokiAddonConfig {
4
- readonly url: string;
5
- readonly job: string;
6
- readonly level: LogLevel;
7
- readonly batchIntervalMs: number;
8
- readonly batchSize: number;
9
- readonly extraLabels: string;
10
- readonly tenantId: string;
11
- readonly username: string;
12
- readonly password: string;
13
- readonly timeoutMs: number;
23
+ readonly url: string;
24
+ readonly job: string;
25
+ readonly level: LogLevel;
26
+ readonly batchIntervalMs: number;
27
+ readonly batchSize: number;
28
+ readonly extraLabels: string;
29
+ readonly tenantId: string;
30
+ readonly username: string;
31
+ readonly password: string;
32
+ readonly timeoutMs: number;
14
33
  }
15
34
  export declare class LokiLoggingAddon extends BaseAddon<LokiAddonConfig> {
16
- private destination;
17
- private retirementTimer;
18
- private shuttingDown;
19
- constructor();
20
- protected onInitialize(): Promise<ProviderRegistration[]>;
21
- /** One attempt of the D777 carry-over; reschedules itself while deferred. */
22
- private attemptEnabledFlagRetirement;
23
- protected onShutdown(): Promise<void>;
24
- /**
25
- * React to a settings change (URL, level, batching) without a
26
- * restart — the contract this addon advertises. `BaseAddon` has already
27
- * reloaded `this.config` by the time this runs; re-apply it to the live
28
- * destination so setting or clearing the URL actually starts (or stops)
29
- * pushing. Without this the destination keeps its boot-time config forever.
30
- */
31
- protected onConfigChanged(): Promise<void>;
32
- /**
33
- * `node` is a Loki LABEL, so it must be the node's real identity and must not
34
- * be operator-editable — a typo would fork the stream and split a node's history
35
- * in two. `kernel.localNodeId` is the Moleculer node id (`'hub'` on the hub, the
36
- * agent's own name elsewhere), which is exactly the bounded value wanted here.
37
- *
38
- * NOT named `resolveConfig`: `BaseAddon` already has a protected
39
- * `resolveConfig()` that reloads persisted settings, and shadowing it with a
40
- * different signature is a type error — usefully, since silently overriding it
41
- * would have broken this addon's settings reload.
42
- */
43
- private destinationConfig;
44
- getDestination(): LokiDestination;
45
- protected globalSettingsSchema(): import('@camstack/types').ConfigUISchema;
35
+ private destination;
36
+ private retirementTimer;
37
+ private shuttingDown;
38
+ constructor();
39
+ protected onInitialize(): Promise<ProviderRegistration[]>;
40
+ /** One attempt of the D777 carry-over; reschedules itself while deferred. */
41
+ private attemptEnabledFlagRetirement;
42
+ protected onShutdown(): Promise<void>;
43
+ /**
44
+ * React to a settings change (URL, level, batching) without a
45
+ * restart — the contract this addon advertises. `BaseAddon` has already
46
+ * reloaded `this.config` by the time this runs; re-apply it to the live
47
+ * destination so setting or clearing the URL actually starts (or stops)
48
+ * pushing. Without this the destination keeps its boot-time config forever.
49
+ */
50
+ protected onConfigChanged(): Promise<void>;
51
+ /**
52
+ * `node` is a Loki LABEL, so it must be the node's real identity and must not
53
+ * be operator-editable — a typo would fork the stream and split a node's history
54
+ * in two. `kernel.localNodeId` is the Moleculer node id (`'hub'` on the hub, the
55
+ * agent's own name elsewhere), which is exactly the bounded value wanted here.
56
+ *
57
+ * NOT named `resolveConfig`: `BaseAddon` already has a protected
58
+ * `resolveConfig()` that reloads persisted settings, and shadowing it with a
59
+ * different signature is a type error — usefully, since silently overriding it
60
+ * would have broken this addon's settings reload.
61
+ */
62
+ private destinationConfig;
63
+ getDestination(): LokiDestination;
64
+ protected globalSettingsSchema(): ConfigUISchema;
46
65
  }
47
66
  export {};
@@ -1,57 +1,100 @@
1
- import { LogEntry } from '@camstack/types';
1
+ /**
2
+ * Pure Loki push-payload construction. No I/O, no timers — so the label policy
3
+ * and the ordering rules below are testable without a Loki instance.
4
+ *
5
+ * ## Why Loki and not Promtail
6
+ *
7
+ * Promtail is a file *tailer*: it watches log files on disk and ships what it
8
+ * reads to Loki. CamStack already has every entry in memory, in structured form,
9
+ * at the moment it is emitted — writing it to disk purely so a sidecar can parse
10
+ * it back out loses the structure and adds a process. Loki's own ingestion API
11
+ * (`POST /loki/api/v1/push`) takes the structured form directly.
12
+ *
13
+ * Promtail is also end-of-life: Grafana deprecated it in favour of Alloy in 2025.
14
+ * Building against a deprecated shipper to reach an API we can call ourselves
15
+ * would be strange. If someone does run Promtail or Alloy, the rotated files
16
+ * from the `winston-logging` destination are still there to tail — the two
17
+ * destinations are independent.
18
+ *
19
+ * ## The label policy, which matters more than it looks
20
+ *
21
+ * Loki indexes labels, and every distinct label-value combination is a separate
22
+ * *stream* with its own index entry and its own chunks. High-cardinality labels
23
+ * are the documented way to make a Loki cluster fall over.
24
+ *
25
+ * So `scope`, `message`, `deviceId`, `sessionId` and everything else per-entry
26
+ * stay OUT of the labels and go in the line body as JSON. Labels are only the
27
+ * handful of values with a small, bounded set:
28
+ *
29
+ * job a fixed string, operator-configured (default `camstack`)
30
+ * node the ORIGIN node's id — the agent that EMITTED the entry, not the
31
+ * node running this destination. The hub is the single Loki egress
32
+ * for the whole cluster (agents forward their logs to it via the
33
+ * `hub-forwarder`), so labelling every pushed line with the hub's own
34
+ * id would collapse the entire fleet onto `node="hub"` and lose the
35
+ * source. Each entry carries its origin in `tags.agentId` (`'hub'` for
36
+ * hub-local entries, the agent id for forwarded ones — always the root
37
+ * node, never a child process), which is bounded by cluster size. The
38
+ * destination's configured node is only the fallback for an entry with
39
+ * no `agentId` tag.
40
+ * level one of four
41
+ *
42
+ * That is at most `4 × nodes` streams, which is what Loki is built for.
43
+ */
44
+ import type { LogEntry } from "@camstack/types";
2
45
  /** One `[unixNano, line]` pair, exactly as Loki's push API expects. */
3
46
  export type LokiValue = readonly [string, string];
4
47
  export interface LokiStream {
5
- readonly stream: Readonly<Record<string, string>>;
6
- readonly values: readonly LokiValue[];
48
+ readonly stream: Readonly<Record<string, string>>;
49
+ readonly values: readonly LokiValue[];
7
50
  }
8
51
  export interface LokiPushBody {
9
- readonly streams: readonly LokiStream[];
52
+ readonly streams: readonly LokiStream[];
10
53
  }
11
54
  export interface LokiLabelInput {
12
- /** Fixed `job` label. Bounded by configuration, never per-entry. */
13
- readonly job: string;
14
- /**
15
- * Fallback node id for entries that carry no `tags.agentId` origin — the
16
- * id of the node running this destination. The per-entry origin
17
- * (`tags.agentId`) is preferred so forwarded agent logs are attributed to
18
- * their source node rather than the hub that ships them.
19
- */
20
- readonly node: string;
21
- /** Extra static labels from configuration. Values must be low-cardinality. */
22
- readonly extra?: Readonly<Record<string, string>>;
55
+ /** Fixed `job` label. Bounded by configuration, never per-entry. */
56
+ readonly job: string;
57
+ /**
58
+ * Fallback node id for entries that carry no `tags.agentId` origin — the
59
+ * id of the node running this destination. The per-entry origin
60
+ * (`tags.agentId`) is preferred so forwarded agent logs are attributed to
61
+ * their source node rather than the hub that ships them.
62
+ */
63
+ readonly node: string;
64
+ /** Extra static labels from configuration. Values must be low-cardinality. */
65
+ readonly extra?: Readonly<Record<string, string>>;
23
66
  }
24
67
  /**
25
- * Loki rejects a label name that is not a valid Prometheus label
26
- * (`[a-zA-Z_][a-zA-Z0-9_]*`), so operator-supplied keys are sanitised rather
27
- * than passed through — a 400 from the push endpoint on every batch is a much
28
- * worse outcome than a renamed label.
29
- */
68
+ * Loki rejects a label name that is not a valid Prometheus label
69
+ * (`[a-zA-Z_][a-zA-Z0-9_]*`), so operator-supplied keys are sanitised rather
70
+ * than passed through — a 400 from the push endpoint on every batch is a much
71
+ * worse outcome than a renamed label.
72
+ */
30
73
  export declare function sanitizeLabelName(raw: string): string;
31
74
  /** Parse an operator's `key=value,key2=value2` label string. */
32
75
  export declare function parseExtraLabels(raw: string): Readonly<Record<string, string>>;
33
76
  /** `Date` → Loki's nanosecond-precision string timestamp. */
34
77
  export declare function toUnixNano(timestamp: Date | string | number): string;
35
78
  /**
36
- * The line body: JSON carrying everything that must NOT be a label. Loki can
37
- * parse this with `| json` at query time, so `scope` and `tags.deviceId` stay
38
- * filterable without ever being indexed.
39
- */
79
+ * The line body: JSON carrying everything that must NOT be a label. Loki can
80
+ * parse this with `| json` at query time, so `scope` and `tags.deviceId` stay
81
+ * filterable without ever being indexed.
82
+ */
40
83
  export declare function formatLokiLine(entry: LogEntry): string;
41
84
  /**
42
- * Group a batch into one stream per distinct label set, and sort each stream's
43
- * values by timestamp.
44
- *
45
- * The `node` label is resolved PER ENTRY from `tags.agentId` (the emitting
46
- * agent, falling back to `labels.node` when absent), so a batch that mixes
47
- * hub-local lines with forwarded agent lines fans out into one stream per
48
- * origin node — the whole point of shipping the cluster's logs through the hub
49
- * without flattening every line onto `node="hub"`.
50
- *
51
- * The sort is not cosmetic. Loki historically rejected a stream whose entries
52
- * were not in ascending time order, and even with out-of-order ingestion enabled
53
- * it is bounded by a window. Entries reach a destination from several concurrent
54
- * producers, so a batch is NOT naturally ordered — without this, some pushes
55
- * fail with `entry out of order` and those log lines are simply gone.
56
- */
85
+ * Group a batch into one stream per distinct label set, and sort each stream's
86
+ * values by timestamp.
87
+ *
88
+ * The `node` label is resolved PER ENTRY from `tags.agentId` (the emitting
89
+ * agent, falling back to `labels.node` when absent), so a batch that mixes
90
+ * hub-local lines with forwarded agent lines fans out into one stream per
91
+ * origin node — the whole point of shipping the cluster's logs through the hub
92
+ * without flattening every line onto `node="hub"`.
93
+ *
94
+ * The sort is not cosmetic. Loki historically rejected a stream whose entries
95
+ * were not in ascending time order, and even with out-of-order ingestion enabled
96
+ * it is bounded by a window. Entries reach a destination from several concurrent
97
+ * producers, so a batch is NOT naturally ordered — without this, some pushes
98
+ * fail with `entry out of order` and those log lines are simply gone.
99
+ */
57
100
  export declare function buildPushBody(entries: readonly LogEntry[], labels: LokiLabelInput): LokiPushBody | null;
@@ -1,23 +1,48 @@
1
- import { StoredKeyRead } from '@camstack/types';
1
+ /**
2
+ * ONE-SHOT retirement of Loki's private `enabled` setting (2026-07-30, D777).
3
+ *
4
+ * The per-destination `log-destination` capability toggle is the only enable.
5
+ * A stored `enabled: false` is carried over to it ONCE, so an operator who had
6
+ * Loki off does not silently start shipping logs to a host they may no longer
7
+ * control:
8
+ *
9
+ * - flag stored `false` → the provider is disabled at the capability;
10
+ * - flag stored `true`, or never
11
+ * written → the capability is left as it is.
12
+ *
13
+ * Then the dead key is stripped and the marker is written in the SAME store
14
+ * write, so the carry-over never repeats — an operator who re-enables Loki
15
+ * afterwards is never switched off again.
16
+ *
17
+ * Anything that cannot be confirmed (unreadable store, refused toggle — the
18
+ * provider is not registered yet while the addon initializes — or a write that
19
+ * silently did not land) returns `deferred` and writes nothing; the caller
20
+ * retries in the background.
21
+ *
22
+ * Same shape as the (since removed) magic-link addon's carry-over in
23
+ * addon-auth; the one difference is the default the flag had (OFF there, ON
24
+ * here).
25
+ */
26
+ import type { StoredKeyRead } from "@camstack/types";
2
27
  /** The retired settings key. */
3
28
  export declare const RETIRED_ENABLED_KEY = "enabled";
4
29
  /** Store key marking the retirement as done. Not a schema field. Pre-D777 name kept. */
5
30
  export declare const RETIREMENT_MARKER_KEY = "migratedEnabled";
6
31
  export type RetirementOutcome = {
7
- readonly kind: 'already-retired';
32
+ readonly kind: "already-retired";
8
33
  } | {
9
- readonly kind: 'retired';
10
- readonly capDisabled: boolean;
34
+ readonly kind: "retired";
35
+ readonly capDisabled: boolean;
11
36
  } | {
12
- readonly kind: 'deferred';
13
- readonly reason: string;
37
+ readonly kind: "deferred";
38
+ readonly reason: string;
14
39
  };
15
40
  export interface RetireEnabledFlagDeps {
16
- /** Three-way read of one key of the addon's own store. */
17
- readStoredKey(key: string): Promise<StoredKeyRead>;
18
- /** Disable this addon at the `log-destination` toggle. Throws when refused. */
19
- disableAtCapability(): Promise<void>;
20
- /** ONE store write: strip {@link RETIRED_ENABLED_KEY} and set {@link RETIREMENT_MARKER_KEY}. */
21
- commit(): Promise<void>;
41
+ /** Three-way read of one key of the addon's own store. */
42
+ readStoredKey(key: string): Promise<StoredKeyRead>;
43
+ /** Disable this addon at the `log-destination` toggle. Throws when refused. */
44
+ disableAtCapability(): Promise<void>;
45
+ /** ONE store write: strip {@link RETIRED_ENABLED_KEY} and set {@link RETIREMENT_MARKER_KEY}. */
46
+ commit(): Promise<void>;
22
47
  }
23
48
  export declare function retireEnabledFlag(deps: RetireEnabledFlagDeps): Promise<RetirementOutcome>;