@camstack/core 0.1.14 → 0.1.16

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 (352) hide show
  1. package/dist/addon/addon-api-factory.d.ts +36 -0
  2. package/dist/addon/addon-api-factory.d.ts.map +1 -0
  3. package/dist/addon-routes/addon-route-registry.d.ts +38 -0
  4. package/dist/addon-routes/addon-route-registry.d.ts.map +1 -0
  5. package/dist/auth/api-key-manager.d.ts +27 -0
  6. package/dist/auth/api-key-manager.d.ts.map +1 -0
  7. package/dist/auth/auth-manager.d.ts +47 -0
  8. package/dist/auth/auth-manager.d.ts.map +1 -0
  9. package/dist/auth/parse-record.d.ts +19 -0
  10. package/dist/auth/parse-record.d.ts.map +1 -0
  11. package/dist/auth/scoped-token-manager.d.ts +18 -0
  12. package/dist/auth/scoped-token-manager.d.ts.map +1 -0
  13. package/dist/auth/user-manager.d.ts +34 -0
  14. package/dist/auth/user-manager.d.ts.map +1 -0
  15. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -0
  16. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts.map +1 -0
  17. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +226 -0
  18. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js.map +1 -0
  19. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +218 -0
  20. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs.map +1 -0
  21. package/dist/builtins/addon-pages-aggregator/index.d.ts +2 -0
  22. package/dist/builtins/addon-pages-aggregator/index.d.ts.map +1 -0
  23. package/dist/builtins/addon-pages-aggregator/index.js +7 -0
  24. package/dist/builtins/addon-pages-aggregator/index.mjs +2 -0
  25. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +33 -0
  26. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts.map +1 -0
  27. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +202 -0
  28. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js.map +1 -0
  29. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +194 -0
  30. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs.map +1 -0
  31. package/dist/builtins/addon-widgets-aggregator/index.d.ts +2 -0
  32. package/dist/builtins/addon-widgets-aggregator/index.d.ts.map +1 -0
  33. package/dist/builtins/addon-widgets-aggregator/index.js +7 -0
  34. package/dist/builtins/addon-widgets-aggregator/index.mjs +2 -0
  35. package/dist/builtins/alerts/alerts.addon.d.ts +82 -0
  36. package/dist/builtins/alerts/alerts.addon.d.ts.map +1 -0
  37. package/dist/builtins/alerts/alerts.addon.js +603 -0
  38. package/dist/builtins/alerts/alerts.addon.js.map +1 -0
  39. package/dist/builtins/alerts/alerts.addon.mjs +597 -0
  40. package/dist/builtins/alerts/alerts.addon.mjs.map +1 -0
  41. package/dist/builtins/alerts/index.d.ts +2 -0
  42. package/dist/builtins/alerts/index.d.ts.map +1 -0
  43. package/dist/builtins/alerts/index.js +3 -0
  44. package/dist/builtins/alerts/index.mjs +2 -0
  45. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.d.ts +8 -0
  46. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.d.ts.map +1 -0
  47. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.js +56 -0
  48. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.js.map +1 -0
  49. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.mjs +50 -0
  50. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.mjs.map +1 -0
  51. package/dist/builtins/auth-orchestrator/index.d.ts +2 -0
  52. package/dist/builtins/auth-orchestrator/index.d.ts.map +1 -0
  53. package/dist/builtins/auth-orchestrator/index.js +7 -0
  54. package/dist/builtins/auth-orchestrator/index.mjs +2 -0
  55. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +148 -0
  56. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts.map +1 -0
  57. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +7639 -0
  58. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js.map +1 -0
  59. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +7627 -0
  60. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs.map +1 -0
  61. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +24 -0
  62. package/dist/builtins/backup-orchestrator/cron-helpers.d.ts.map +1 -0
  63. package/dist/builtins/backup-orchestrator/destination-policy.d.ts +73 -0
  64. package/dist/builtins/backup-orchestrator/destination-policy.d.ts.map +1 -0
  65. package/dist/builtins/backup-orchestrator/download-helpers.d.ts +13 -0
  66. package/dist/builtins/backup-orchestrator/download-helpers.d.ts.map +1 -0
  67. package/dist/builtins/backup-orchestrator/index.d.ts +3 -0
  68. package/dist/builtins/backup-orchestrator/index.d.ts.map +1 -0
  69. package/dist/builtins/backup-orchestrator/index.js +7 -0
  70. package/dist/builtins/backup-orchestrator/index.mjs +2 -0
  71. package/dist/builtins/backup-orchestrator/manifest-store.d.ts +78 -0
  72. package/dist/builtins/backup-orchestrator/manifest-store.d.ts.map +1 -0
  73. package/dist/builtins/console-logging/console-destination.d.ts +14 -0
  74. package/dist/builtins/console-logging/console-destination.d.ts.map +1 -0
  75. package/dist/builtins/console-logging/console-logging.addon.d.ts +26 -0
  76. package/dist/builtins/console-logging/console-logging.addon.d.ts.map +1 -0
  77. package/dist/builtins/console-logging/index.d.ts +4 -0
  78. package/dist/builtins/console-logging/index.d.ts.map +1 -0
  79. package/dist/builtins/console-logging/index.js +106 -0
  80. package/dist/builtins/console-logging/index.js.map +1 -0
  81. package/dist/builtins/console-logging/index.mjs +97 -0
  82. package/dist/builtins/console-logging/index.mjs.map +1 -0
  83. package/dist/builtins/device-manager/device-event-propagator.d.ts +27 -0
  84. package/dist/builtins/device-manager/device-event-propagator.d.ts.map +1 -0
  85. package/dist/builtins/device-manager/device-manager.addon.d.ts +259 -0
  86. package/dist/builtins/device-manager/device-manager.addon.d.ts.map +1 -0
  87. package/dist/builtins/device-manager/device-manager.addon.js +2153 -0
  88. package/dist/builtins/device-manager/device-manager.addon.js.map +1 -0
  89. package/dist/builtins/device-manager/device-manager.addon.mjs +2147 -0
  90. package/dist/builtins/device-manager/device-manager.addon.mjs.map +1 -0
  91. package/dist/builtins/device-manager/index.d.ts +3 -0
  92. package/dist/builtins/device-manager/index.d.ts.map +1 -0
  93. package/dist/builtins/device-manager/index.js +7 -0
  94. package/dist/builtins/device-manager/index.mjs +2 -0
  95. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +45 -0
  96. package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts.map +1 -0
  97. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +16 -0
  98. package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts.map +1 -0
  99. package/dist/builtins/hub-forwarder/index.d.ts +4 -0
  100. package/dist/builtins/hub-forwarder/index.d.ts.map +1 -0
  101. package/dist/builtins/hub-forwarder/index.js +156 -0
  102. package/dist/builtins/hub-forwarder/index.js.map +1 -0
  103. package/dist/builtins/hub-forwarder/index.mjs +147 -0
  104. package/dist/builtins/hub-forwarder/index.mjs.map +1 -0
  105. package/dist/builtins/local-auth/auth-schema.d.ts +12 -0
  106. package/dist/builtins/local-auth/auth-schema.d.ts.map +1 -0
  107. package/dist/builtins/local-auth/index.d.ts +2 -0
  108. package/dist/builtins/local-auth/index.d.ts.map +1 -0
  109. package/dist/builtins/local-auth/index.js +3 -0
  110. package/dist/builtins/local-auth/index.mjs +2 -0
  111. package/dist/builtins/local-auth/local-auth.addon.d.ts +17 -0
  112. package/dist/builtins/local-auth/local-auth.addon.d.ts.map +1 -0
  113. package/dist/builtins/local-auth/local-auth.addon.js +6895 -0
  114. package/dist/builtins/local-auth/local-auth.addon.js.map +1 -0
  115. package/dist/builtins/local-auth/local-auth.addon.mjs +6885 -0
  116. package/dist/builtins/local-auth/local-auth.addon.mjs.map +1 -0
  117. package/dist/builtins/local-network/index.d.ts +3 -0
  118. package/dist/builtins/local-network/index.d.ts.map +1 -0
  119. package/dist/builtins/local-network/index.js +9 -0
  120. package/dist/builtins/local-network/index.mjs +2 -0
  121. package/dist/builtins/local-network/local-network.addon.d.ts +102 -0
  122. package/dist/builtins/local-network/local-network.addon.d.ts.map +1 -0
  123. package/dist/builtins/local-network/local-network.addon.js +404 -0
  124. package/dist/builtins/local-network/local-network.addon.js.map +1 -0
  125. package/dist/builtins/local-network/local-network.addon.mjs +392 -0
  126. package/dist/builtins/local-network/local-network.addon.mjs.map +1 -0
  127. package/dist/builtins/mesh-orchestrator/index.d.ts +2 -0
  128. package/dist/builtins/mesh-orchestrator/index.d.ts.map +1 -0
  129. package/dist/builtins/mesh-orchestrator/index.js +7 -0
  130. package/dist/builtins/mesh-orchestrator/index.mjs +2 -0
  131. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.d.ts +9 -0
  132. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.d.ts.map +1 -0
  133. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.js +83 -0
  134. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.js.map +1 -0
  135. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.mjs +77 -0
  136. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.mjs.map +1 -0
  137. package/dist/builtins/native-metrics/index.d.ts +3 -0
  138. package/dist/builtins/native-metrics/index.d.ts.map +1 -0
  139. package/dist/builtins/native-metrics/native-metrics-provider.d.ts +49 -0
  140. package/dist/builtins/native-metrics/native-metrics-provider.d.ts.map +1 -0
  141. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +74 -0
  142. package/dist/builtins/native-metrics/native-metrics.addon.d.ts.map +1 -0
  143. package/dist/builtins/native-metrics/native-metrics.addon.js +924 -0
  144. package/dist/builtins/native-metrics/native-metrics.addon.js.map +1 -0
  145. package/dist/builtins/native-metrics/native-metrics.addon.mjs +916 -0
  146. package/dist/builtins/native-metrics/native-metrics.addon.mjs.map +1 -0
  147. package/dist/builtins/platform-probe/index.d.ts +12 -0
  148. package/dist/builtins/platform-probe/index.d.ts.map +1 -0
  149. package/dist/builtins/platform-probe/index.js +539 -0
  150. package/dist/builtins/platform-probe/index.js.map +1 -0
  151. package/dist/builtins/platform-probe/index.mjs +530 -0
  152. package/dist/builtins/platform-probe/index.mjs.map +1 -0
  153. package/dist/builtins/platform-probe/inference-config-resolver.d.ts +30 -0
  154. package/dist/builtins/platform-probe/inference-config-resolver.d.ts.map +1 -0
  155. package/dist/builtins/platform-probe/platform-scorer.d.ts +22 -0
  156. package/dist/builtins/platform-probe/platform-scorer.d.ts.map +1 -0
  157. package/dist/builtins/remote-access-orchestrator/index.d.ts +2 -0
  158. package/dist/builtins/remote-access-orchestrator/index.d.ts.map +1 -0
  159. package/dist/builtins/remote-access-orchestrator/index.js +7 -0
  160. package/dist/builtins/remote-access-orchestrator/index.mjs +2 -0
  161. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +9 -0
  162. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts.map +1 -0
  163. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +72 -0
  164. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js.map +1 -0
  165. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +66 -0
  166. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs.map +1 -0
  167. package/dist/builtins/snapshot/index.d.ts +3 -0
  168. package/dist/builtins/snapshot/index.d.ts.map +1 -0
  169. package/dist/builtins/snapshot/index.js +494 -0
  170. package/dist/builtins/snapshot/index.js.map +1 -0
  171. package/dist/builtins/snapshot/index.mjs +488 -0
  172. package/dist/builtins/snapshot/index.mjs.map +1 -0
  173. package/dist/builtins/snapshot/snapshot.addon.d.ts +121 -0
  174. package/dist/builtins/snapshot/snapshot.addon.d.ts.map +1 -0
  175. package/dist/builtins/sqlite-storage/config-store.d.ts +9 -0
  176. package/dist/builtins/sqlite-storage/config-store.d.ts.map +1 -0
  177. package/dist/builtins/sqlite-storage/device-store.d.ts +24 -0
  178. package/dist/builtins/sqlite-storage/device-store.d.ts.map +1 -0
  179. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +87 -0
  180. package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts.map +1 -0
  181. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +32 -2
  182. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts.map +1 -0
  183. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +311 -205
  184. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js.map +1 -1
  185. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +305 -7
  186. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs.map +1 -1
  187. package/dist/builtins/sqlite-storage/index.d.ts +12 -4
  188. package/dist/builtins/sqlite-storage/index.d.ts.map +1 -0
  189. package/dist/builtins/sqlite-storage/index.js +258 -1097
  190. package/dist/builtins/sqlite-storage/index.js.map +1 -1
  191. package/dist/builtins/sqlite-storage/index.mjs +268 -28
  192. package/dist/builtins/sqlite-storage/index.mjs.map +1 -1
  193. package/dist/builtins/sqlite-storage/integration-registry.d.ts +28 -0
  194. package/dist/builtins/sqlite-storage/integration-registry.d.ts.map +1 -0
  195. package/dist/builtins/sqlite-storage/settings-store.d.ts +40 -0
  196. package/dist/builtins/sqlite-storage/settings-store.d.ts.map +1 -0
  197. package/dist/builtins/sqlite-storage/sql-schema.d.ts +33 -0
  198. package/dist/builtins/sqlite-storage/sql-schema.d.ts.map +1 -0
  199. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +94 -0
  200. package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts.map +1 -0
  201. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +15 -2
  202. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts.map +1 -0
  203. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +588 -417
  204. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js.map +1 -1
  205. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +582 -7
  206. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs.map +1 -1
  207. package/dist/builtins/storage-orchestrator/index.d.ts +7 -0
  208. package/dist/builtins/storage-orchestrator/index.d.ts.map +1 -0
  209. package/dist/builtins/storage-orchestrator/index.js +9 -0
  210. package/dist/builtins/storage-orchestrator/index.mjs +2 -0
  211. package/dist/builtins/storage-orchestrator/location-store.d.ts +50 -0
  212. package/dist/builtins/storage-orchestrator/location-store.d.ts.map +1 -0
  213. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +60 -0
  214. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts.map +1 -0
  215. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +755 -0
  216. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js.map +1 -0
  217. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +746 -0
  218. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs.map +1 -0
  219. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +121 -0
  220. package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts.map +1 -0
  221. package/dist/builtins/system-backup/system-backup.service.d.ts +138 -0
  222. package/dist/builtins/system-backup/system-backup.service.d.ts.map +1 -0
  223. package/dist/builtins/system-config/index.d.ts +2 -0
  224. package/dist/builtins/system-config/index.d.ts.map +1 -0
  225. package/dist/builtins/system-config/index.js +7 -0
  226. package/dist/builtins/system-config/index.mjs +2 -0
  227. package/dist/builtins/system-config/system-config.addon.d.ts +11 -0
  228. package/dist/builtins/system-config/system-config.addon.d.ts.map +1 -0
  229. package/dist/builtins/system-config/system-config.addon.js +234 -0
  230. package/dist/builtins/system-config/system-config.addon.js.map +1 -0
  231. package/dist/builtins/system-config/system-config.addon.mjs +228 -0
  232. package/dist/builtins/system-config/system-config.addon.mjs.map +1 -0
  233. package/dist/builtins/turn-orchestrator/index.d.ts +2 -0
  234. package/dist/builtins/turn-orchestrator/index.d.ts.map +1 -0
  235. package/dist/builtins/turn-orchestrator/index.js +7 -0
  236. package/dist/builtins/turn-orchestrator/index.mjs +2 -0
  237. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.d.ts +10 -0
  238. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.d.ts.map +1 -0
  239. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.js +78 -0
  240. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.js.map +1 -0
  241. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.mjs +72 -0
  242. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.mjs.map +1 -0
  243. package/dist/builtins/winston-logging/index.d.ts +4 -30
  244. package/dist/builtins/winston-logging/index.d.ts.map +1 -0
  245. package/dist/builtins/winston-logging/index.js +153 -180
  246. package/dist/builtins/winston-logging/index.js.map +1 -1
  247. package/dist/builtins/winston-logging/index.mjs +144 -8
  248. package/dist/builtins/winston-logging/index.mjs.map +1 -1
  249. package/dist/builtins/winston-logging/winston-destination.d.ts +22 -0
  250. package/dist/builtins/winston-logging/winston-destination.d.ts.map +1 -0
  251. package/dist/builtins/winston-logging/winston-logging.addon.d.ts +20 -0
  252. package/dist/builtins/winston-logging/winston-logging.addon.d.ts.map +1 -0
  253. package/dist/chunk-C13QxCFV.js +50 -0
  254. package/dist/chunk-hT5z_Zn9.mjs +35 -0
  255. package/dist/download/model-download-service.d.ts +42 -0
  256. package/dist/download/model-download-service.d.ts.map +1 -0
  257. package/dist/download/model-downloader.d.ts +32 -0
  258. package/dist/download/model-downloader.d.ts.map +1 -0
  259. package/dist/events/event-bus.d.ts +11 -0
  260. package/dist/events/event-bus.d.ts.map +1 -0
  261. package/dist/events/system-event-bus.d.ts +15 -0
  262. package/dist/events/system-event-bus.d.ts.map +1 -0
  263. package/dist/feature/feature-manager.d.ts +12 -0
  264. package/dist/feature/feature-manager.d.ts.map +1 -0
  265. package/dist/formatter-C-5An4Bl.mjs +164 -0
  266. package/dist/formatter-C-5An4Bl.mjs.map +1 -0
  267. package/dist/formatter-Dr_6NNZc.js +169 -0
  268. package/dist/formatter-Dr_6NNZc.js.map +1 -0
  269. package/dist/index.d.ts +76 -1137
  270. package/dist/index.d.ts.map +1 -0
  271. package/dist/index.js +7761 -7017
  272. package/dist/index.js.map +1 -1
  273. package/dist/index.mjs +7699 -3798
  274. package/dist/index.mjs.map +1 -1
  275. package/dist/lifecycle/lifecycle-state-machine.d.ts +29 -0
  276. package/dist/lifecycle/lifecycle-state-machine.d.ts.map +1 -0
  277. package/dist/logging/formatter.d.ts +31 -0
  278. package/dist/logging/formatter.d.ts.map +1 -0
  279. package/dist/logging/log-manager.d.ts +52 -0
  280. package/dist/logging/log-manager.d.ts.map +1 -0
  281. package/dist/logging/log-ring-buffer.d.ts +48 -0
  282. package/dist/logging/log-ring-buffer.d.ts.map +1 -0
  283. package/dist/logging/scoped-logger.d.ts +18 -0
  284. package/dist/logging/scoped-logger.d.ts.map +1 -0
  285. package/dist/network/network-quality.d.ts +12 -0
  286. package/dist/network/network-quality.d.ts.map +1 -0
  287. package/dist/notification/notification-service.d.ts +38 -0
  288. package/dist/notification/notification-service.d.ts.map +1 -0
  289. package/dist/notification/toast-service.d.ts +23 -0
  290. package/dist/notification/toast-service.d.ts.map +1 -0
  291. package/dist/pipeline/engine-manager-resolver.d.ts +16 -0
  292. package/dist/pipeline/engine-manager-resolver.d.ts.map +1 -0
  293. package/dist/pipeline/pipeline-runner.d.ts +9 -0
  294. package/dist/pipeline/pipeline-runner.d.ts.map +1 -0
  295. package/dist/pipeline/pipeline-validator.d.ts +14 -0
  296. package/dist/pipeline/pipeline-validator.d.ts.map +1 -0
  297. package/dist/process/resource-monitor.d.ts +12 -0
  298. package/dist/process/resource-monitor.d.ts.map +1 -0
  299. package/dist/python/python-env-manager.d.ts +13 -0
  300. package/dist/python/python-env-manager.d.ts.map +1 -0
  301. package/dist/repl/interfaces.d.ts +32 -0
  302. package/dist/repl/interfaces.d.ts.map +1 -0
  303. package/dist/repl/repl-engine.d.ts +9 -0
  304. package/dist/repl/repl-engine.d.ts.map +1 -0
  305. package/dist/resource-monitor-CmuWlmap.js +76 -0
  306. package/dist/resource-monitor-CmuWlmap.js.map +1 -0
  307. package/dist/resource-monitor-DcQdKGYU.mjs +59 -0
  308. package/dist/resource-monitor-DcQdKGYU.mjs.map +1 -0
  309. package/dist/storage/fs-storage-backend.d.ts +41 -0
  310. package/dist/storage/fs-storage-backend.d.ts.map +1 -0
  311. package/dist/storage/storage-location-manager.d.ts +24 -0
  312. package/dist/storage/storage-location-manager.d.ts.map +1 -0
  313. package/dist/storage/storage-manager.d.ts +77 -0
  314. package/dist/storage/storage-manager.d.ts.map +1 -0
  315. package/dist/tls/cert-manager.d.ts +27 -0
  316. package/dist/tls/cert-manager.d.ts.map +1 -0
  317. package/dist/tls/index.d.ts +2 -0
  318. package/dist/tls/index.d.ts.map +1 -0
  319. package/package.json +230 -13
  320. package/dist/builtins/local-backup/index.d.mts +0 -42
  321. package/dist/builtins/local-backup/index.d.ts +0 -42
  322. package/dist/builtins/local-backup/index.js +0 -188
  323. package/dist/builtins/local-backup/index.js.map +0 -1
  324. package/dist/builtins/local-backup/index.mjs +0 -10
  325. package/dist/builtins/local-backup/index.mjs.map +0 -1
  326. package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.mts +0 -2
  327. package/dist/builtins/sqlite-storage/index.d.mts +0 -4
  328. package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.mts +0 -2
  329. package/dist/builtins/winston-logging/index.d.mts +0 -30
  330. package/dist/chunk-2F3XZYRW.mjs +0 -89
  331. package/dist/chunk-2F3XZYRW.mjs.map +0 -1
  332. package/dist/chunk-LQFPAEQF.mjs +0 -147
  333. package/dist/chunk-LQFPAEQF.mjs.map +0 -1
  334. package/dist/chunk-R3DIIBBX.mjs +0 -532
  335. package/dist/chunk-R3DIIBBX.mjs.map +0 -1
  336. package/dist/chunk-SMNR44VG.mjs +0 -386
  337. package/dist/chunk-SMNR44VG.mjs.map +0 -1
  338. package/dist/chunk-SO4LROOT.mjs +0 -150
  339. package/dist/chunk-SO4LROOT.mjs.map +0 -1
  340. package/dist/chunk-SPA4JBKN.mjs +0 -175
  341. package/dist/chunk-SPA4JBKN.mjs.map +0 -1
  342. package/dist/dist-3BY63UQ5.mjs +0 -2151
  343. package/dist/dist-3BY63UQ5.mjs.map +0 -1
  344. package/dist/filesystem-storage.addon-C42r589X.d.mts +0 -57
  345. package/dist/filesystem-storage.addon-C42r589X.d.ts +0 -57
  346. package/dist/index.d.mts +0 -1137
  347. package/dist/sql-schema-CKz78rId.d.mts +0 -97
  348. package/dist/sql-schema-CKz78rId.d.ts +0 -97
  349. package/dist/sqlite-settings.addon-KwG-uKMP.d.mts +0 -79
  350. package/dist/sqlite-settings.addon-KwG-uKMP.d.ts +0 -79
  351. package/dist/storage-location-manager-KKDQNAKA.mjs +0 -7
  352. package/dist/storage-location-manager-KKDQNAKA.mjs.map +0 -1
@@ -0,0 +1,194 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ import { BaseAddon, EventCategory, addonWidgetsCapability, errMsg } from "@camstack/types";
5
+ //#region src/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.ts
6
+ /**
7
+ * Addon Widgets Aggregator — hub-local builtin that owns the singleton
8
+ * `addon-widgets` cap.
9
+ *
10
+ * Mirrors `addon-pages-aggregator` exactly: walks every registered
11
+ * `addon-widgets-source` (collection) provider and emits an enriched
12
+ * widget metadata list with versioned `bundleUrl`s pointing at
13
+ * `/api/addon-widgets/<addonId>/<bundle>?v=<mtime>`. The filesystem
14
+ * `mtime` cache-buster lets the browser pick up addon rebuilds without
15
+ * manual reload.
16
+ *
17
+ * The static file endpoint (`/api/addon-widgets/:addonId/*`) is served
18
+ * by `AddonWidgetsService.resolveBundle()` on the server side; this
19
+ * addon only owns the listing surface.
20
+ *
21
+ * Why a builtin: same reasoning as `addon-pages-aggregator`. The
22
+ * aggregator is the de-facto "addon-widgets provider" — addons own caps,
23
+ * not the server. Living in `@camstack/core/builtins` keeps the surface
24
+ * symmetrical with `system-config`, `local-auth`, etc.
25
+ */
26
+ /**
27
+ * Backoff schedule (ms) used to retry sources that failed during a
28
+ * `listWidgets()` round-trip — typically because the cap was just
29
+ * registered (provider connected via Moleculer) but the worker-side
30
+ * action registration hadn't propagated yet, so `Service '...listWidgets'
31
+ * is not found on '<node>'` raced ahead of the call.
32
+ *
33
+ * On success we re-emit `AddonWidgetReady` so admin-ui invalidates its
34
+ * `addonWidgets.listWidgets` query and the registry populates without a
35
+ * page reload.
36
+ */
37
+ var RETRY_BACKOFF_MS = [
38
+ 500,
39
+ 1500,
40
+ 4e3
41
+ ];
42
+ var AddonWidgetsAggregatorAddon = class extends BaseAddon {
43
+ id = "addon-widgets-aggregator";
44
+ resolvedPaths = null;
45
+ /**
46
+ * Last successful `listWidgets()` snapshot per source. Used as the
47
+ * "stale-but-valid" fallback when a source transiently fails — drops
48
+ * happen often enough during boot (Moleculer service-discovery
49
+ * window) that swallowing the error and returning empty would leave
50
+ * the dashboard with nothing for several seconds. Keeping the
51
+ * previous good entry means a flake is invisible to the operator.
52
+ */
53
+ lastGood = /* @__PURE__ */ new Map();
54
+ /** In-flight retry guards keyed by sourceAddonId. Avoids double-scheduling. */
55
+ retryTimers = /* @__PURE__ */ new Map();
56
+ constructor() {
57
+ super({});
58
+ }
59
+ async onInitialize() {
60
+ this.resolvedPaths = await this.resolvePaths();
61
+ const provider = { listWidgets: async () => this.aggregate() };
62
+ this.ctx.logger.info("Initialized — aggregating addon-widgets-source providers");
63
+ return [{
64
+ capability: addonWidgetsCapability,
65
+ provider
66
+ }];
67
+ }
68
+ async onShutdown() {
69
+ for (const t of this.retryTimers.values()) clearTimeout(t);
70
+ this.retryTimers.clear();
71
+ this.lastGood.clear();
72
+ }
73
+ async aggregate() {
74
+ const entries = this.capabilities?.getCollectionEntries("addon-widgets-source") ?? [];
75
+ const out = [];
76
+ const seenIds = /* @__PURE__ */ new Set();
77
+ for (const [addonId, source] of entries) {
78
+ seenIds.add(addonId);
79
+ try {
80
+ const enriched = (await Promise.resolve(source.listWidgets())).map((w) => ({
81
+ ...w,
82
+ addonId,
83
+ bundleUrl: this.makeBundleUrl(addonId, w.bundle)
84
+ }));
85
+ for (const item of enriched) out.push(item);
86
+ this.lastGood.set(addonId, enriched);
87
+ } catch (err) {
88
+ const message = errMsg(err);
89
+ this.ctx.logger.warn("addon-widgets-source provider failed", { meta: {
90
+ sourceId: addonId,
91
+ error: message
92
+ } });
93
+ const cached = this.lastGood.get(addonId);
94
+ if (cached !== void 0) {
95
+ for (const item of cached) out.push(item);
96
+ this.ctx.logger.info("addon-widgets-source falling back to cached snapshot", { meta: {
97
+ sourceId: addonId,
98
+ cachedWidgets: cached.length
99
+ } });
100
+ }
101
+ this.scheduleRetry(addonId);
102
+ }
103
+ }
104
+ for (const cachedId of this.lastGood.keys()) if (!seenIds.has(cachedId)) this.lastGood.delete(cachedId);
105
+ return out;
106
+ }
107
+ scheduleRetry(sourceId, attempt = 0) {
108
+ if (attempt >= RETRY_BACKOFF_MS.length) return;
109
+ if (this.retryTimers.has(sourceId)) return;
110
+ const delayMs = RETRY_BACKOFF_MS[attempt] ?? RETRY_BACKOFF_MS[RETRY_BACKOFF_MS.length - 1];
111
+ const timer = setTimeout(() => {
112
+ this.retryTimers.delete(sourceId);
113
+ this.retrySource(sourceId, attempt);
114
+ }, delayMs);
115
+ this.retryTimers.set(sourceId, timer);
116
+ }
117
+ async retrySource(sourceId, attempt) {
118
+ const found = (this.capabilities?.getCollectionEntries("addon-widgets-source") ?? []).find(([id]) => id === sourceId);
119
+ if (!found) return;
120
+ const [addonId, source] = found;
121
+ try {
122
+ const enriched = (await Promise.resolve(source.listWidgets())).map((w) => ({
123
+ ...w,
124
+ addonId,
125
+ bundleUrl: this.makeBundleUrl(addonId, w.bundle)
126
+ }));
127
+ this.lastGood.set(addonId, enriched);
128
+ this.ctx.logger.info("addon-widgets-source recovered after retry", { meta: {
129
+ sourceId: addonId,
130
+ attempt: attempt + 1,
131
+ widgets: enriched.length
132
+ } });
133
+ this.ctx.eventBus.emit({
134
+ id: randomUUID(),
135
+ timestamp: /* @__PURE__ */ new Date(),
136
+ source: {
137
+ type: "addon",
138
+ id: this.id
139
+ },
140
+ category: EventCategory.AddonWidgetReady,
141
+ data: {
142
+ addonId,
143
+ recovered: true
144
+ }
145
+ });
146
+ } catch (err) {
147
+ this.ctx.logger.debug("addon-widgets-source retry failed", { meta: {
148
+ sourceId,
149
+ attempt: attempt + 1,
150
+ error: errMsg(err)
151
+ } });
152
+ this.scheduleRetry(sourceId, attempt + 1);
153
+ }
154
+ }
155
+ /**
156
+ * Build `/api/addon-widgets/<addonId>/<bundle>?v=<mtime>`. Falls back
157
+ * to `Date.now()` when the bundle path can't be stat'd (remote addon
158
+ * with no local file, addon not yet on disk, etc.) — the browser
159
+ * just gets a fresh URL on each call instead of cache-friendly mtime.
160
+ */
161
+ makeBundleUrl(addonId, bundle) {
162
+ const bundlePath = this.resolveBundlePath(addonId, bundle);
163
+ let mtime = Date.now();
164
+ if (bundlePath !== null) try {
165
+ mtime = fs.statSync(bundlePath).mtimeMs;
166
+ } catch {}
167
+ return `/api/addon-widgets/${addonId}/${bundle}?v=${Math.floor(mtime)}`;
168
+ }
169
+ resolveBundlePath(addonId, bundle) {
170
+ const paths = this.resolvedPaths;
171
+ if (!paths) return null;
172
+ const addonDistPath = path.join(paths.addonsDir, "@camstack", `addon-${addonId}`, "dist");
173
+ const resolvedBase = path.resolve(addonDistPath);
174
+ const resolvedFile = path.resolve(addonDistPath, bundle);
175
+ if (!resolvedFile.startsWith(resolvedBase + path.sep) && resolvedFile !== resolvedBase) return null;
176
+ return resolvedFile;
177
+ }
178
+ async resolvePaths() {
179
+ const fallback = { addonsDir: path.resolve("camstack-data", "addons") };
180
+ if (!this.ctx.settings) return fallback;
181
+ try {
182
+ const server = await this.ctx.settings.getSection("server");
183
+ const dataPath = typeof server["dataPath"] === "string" && server["dataPath"] ? server["dataPath"] : "camstack-data";
184
+ return { addonsDir: path.resolve(dataPath, "addons") };
185
+ } catch (err) {
186
+ this.ctx.logger.debug("Failed to read server.dataPath — falling back", { meta: { error: errMsg(err) } });
187
+ return fallback;
188
+ }
189
+ }
190
+ };
191
+ //#endregion
192
+ export { AddonWidgetsAggregatorAddon, AddonWidgetsAggregatorAddon as default };
193
+
194
+ //# sourceMappingURL=addon-widgets-aggregator.addon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addon-widgets-aggregator.addon.mjs","names":[],"sources":["../../../src/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.ts"],"sourcesContent":["/**\n * Addon Widgets Aggregator — hub-local builtin that owns the singleton\n * `addon-widgets` cap.\n *\n * Mirrors `addon-pages-aggregator` exactly: walks every registered\n * `addon-widgets-source` (collection) provider and emits an enriched\n * widget metadata list with versioned `bundleUrl`s pointing at\n * `/api/addon-widgets/<addonId>/<bundle>?v=<mtime>`. The filesystem\n * `mtime` cache-buster lets the browser pick up addon rebuilds without\n * manual reload.\n *\n * The static file endpoint (`/api/addon-widgets/:addonId/*`) is served\n * by `AddonWidgetsService.resolveBundle()` on the server side; this\n * addon only owns the listing surface.\n *\n * Why a builtin: same reasoning as `addon-pages-aggregator`. The\n * aggregator is the de-facto \"addon-widgets provider\" — addons own caps,\n * not the server. Living in `@camstack/core/builtins` keeps the surface\n * symmetrical with `system-config`, `local-auth`, etc.\n */\nimport * as path from 'node:path'\nimport * as fs from 'node:fs'\nimport { randomUUID } from 'node:crypto'\nimport {\n BaseAddon,\n EventCategory,\n addonWidgetsCapability,\n errMsg,\n type IAddonWidgetsAggregatorProvider,\n type IAddonWidgetsSourceProvider,\n type ProviderRegistration,\n} from '@camstack/types'\n\ninterface ResolvedPaths {\n readonly addonsDir: string\n}\n\n/**\n * Inferred from the cap definition — equivalent to:\n * `z.infer<typeof EnrichedWidgetMetadataSchema>` but reuses the\n * provider's return type so the aggregator stays in lockstep with the\n * cap if its shape evolves.\n */\ntype EnrichedWidget = Awaited<ReturnType<IAddonWidgetsAggregatorProvider['listWidgets']>>[number]\ntype RawWidget = Awaited<ReturnType<IAddonWidgetsSourceProvider['listWidgets']>>[number]\n\n/**\n * Backoff schedule (ms) used to retry sources that failed during a\n * `listWidgets()` round-trip — typically because the cap was just\n * registered (provider connected via Moleculer) but the worker-side\n * action registration hadn't propagated yet, so `Service '...listWidgets'\n * is not found on '<node>'` raced ahead of the call.\n *\n * On success we re-emit `AddonWidgetReady` so admin-ui invalidates its\n * `addonWidgets.listWidgets` query and the registry populates without a\n * page reload.\n */\nconst RETRY_BACKOFF_MS: readonly number[] = [500, 1500, 4000]\n\nexport class AddonWidgetsAggregatorAddon extends BaseAddon {\n readonly id = 'addon-widgets-aggregator'\n\n private resolvedPaths: ResolvedPaths | null = null\n\n /**\n * Last successful `listWidgets()` snapshot per source. Used as the\n * \"stale-but-valid\" fallback when a source transiently fails — drops\n * happen often enough during boot (Moleculer service-discovery\n * window) that swallowing the error and returning empty would leave\n * the dashboard with nothing for several seconds. Keeping the\n * previous good entry means a flake is invisible to the operator.\n */\n private readonly lastGood = new Map<string, readonly EnrichedWidget[]>()\n\n /** In-flight retry guards keyed by sourceAddonId. Avoids double-scheduling. */\n private readonly retryTimers = new Map<string, NodeJS.Timeout>()\n\n constructor() { super({}) }\n\n protected async onInitialize(): Promise<ProviderRegistration[]> {\n this.resolvedPaths = await this.resolvePaths()\n\n const provider: IAddonWidgetsAggregatorProvider = {\n listWidgets: async (): Promise<readonly EnrichedWidget[]> => this.aggregate(),\n }\n\n this.ctx.logger.info('Initialized — aggregating addon-widgets-source providers')\n return [{ capability: addonWidgetsCapability, provider }]\n }\n\n protected async onShutdown(): Promise<void> {\n for (const t of this.retryTimers.values()) clearTimeout(t)\n this.retryTimers.clear()\n this.lastGood.clear()\n }\n\n // ── Aggregation ───────────────────────────────────────────────────\n\n private async aggregate(): Promise<readonly EnrichedWidget[]> {\n // `getCollectionEntries` returns `[addonId, provider]` tuples — the\n // raw `addon-widgets-source` cap doesn't carry an `id` on the\n // provider (unlike the legacy `IAddonPageProvider`), so we lean on\n // the registry to attribute each contribution back to its addon.\n const entries = this.capabilities?.getCollectionEntries<IAddonWidgetsSourceProvider>('addon-widgets-source') ?? []\n const out: EnrichedWidget[] = []\n const seenIds = new Set<string>()\n\n for (const [addonId, source] of entries) {\n seenIds.add(addonId)\n try {\n const widgets = await Promise.resolve(source.listWidgets())\n const enriched: EnrichedWidget[] = widgets.map((w: RawWidget) => ({\n ...w,\n addonId,\n bundleUrl: this.makeBundleUrl(addonId, w.bundle),\n }))\n for (const item of enriched) out.push(item)\n // Cache successful snapshot — used as fallback on next failure.\n this.lastGood.set(addonId, enriched)\n } catch (err: unknown) {\n const message = errMsg(err)\n this.ctx.logger.warn('addon-widgets-source provider failed', {\n meta: { sourceId: addonId, error: message },\n })\n // Fall back to the last-good snapshot for this source so a\n // transient Moleculer service-discovery race doesn't blank\n // the dashboard.\n const cached = this.lastGood.get(addonId)\n if (cached !== undefined) {\n for (const item of cached) out.push(item)\n this.ctx.logger.info('addon-widgets-source falling back to cached snapshot', {\n meta: { sourceId: addonId, cachedWidgets: cached.length },\n })\n }\n // Schedule a background retry. On success we re-emit\n // `AddonWidgetReady` so admin-ui's queryClient invalidates and\n // any newly-loaded widgets show up without a manual reload.\n this.scheduleRetry(addonId)\n }\n }\n\n // Drop cache entries for sources that have disappeared from the\n // registry — keeps the fallback aligned with the live collection.\n for (const cachedId of this.lastGood.keys()) {\n if (!seenIds.has(cachedId)) this.lastGood.delete(cachedId)\n }\n\n return out\n }\n\n // ── Retry on transient Moleculer race ─────────────────────────────\n\n private scheduleRetry(sourceId: string, attempt = 0): void {\n if (attempt >= RETRY_BACKOFF_MS.length) return\n if (this.retryTimers.has(sourceId)) return // already pending\n\n const delayMs = RETRY_BACKOFF_MS[attempt] ?? RETRY_BACKOFF_MS[RETRY_BACKOFF_MS.length - 1]!\n const timer = setTimeout(() => {\n this.retryTimers.delete(sourceId)\n void this.retrySource(sourceId, attempt)\n }, delayMs)\n this.retryTimers.set(sourceId, timer)\n }\n\n private async retrySource(sourceId: string, attempt: number): Promise<void> {\n const entries = this.capabilities?.getCollectionEntries<IAddonWidgetsSourceProvider>('addon-widgets-source') ?? []\n const found = entries.find(([id]) => id === sourceId)\n if (!found) return // provider went away; nothing to retry\n const [addonId, source] = found\n\n try {\n const widgets = await Promise.resolve(source.listWidgets())\n const enriched: EnrichedWidget[] = widgets.map((w: RawWidget) => ({\n ...w,\n addonId,\n bundleUrl: this.makeBundleUrl(addonId, w.bundle),\n }))\n this.lastGood.set(addonId, enriched)\n this.ctx.logger.info('addon-widgets-source recovered after retry', {\n meta: { sourceId: addonId, attempt: attempt + 1, widgets: enriched.length },\n })\n // Re-emit AddonWidgetReady so admin-ui invalidates and refetches.\n this.ctx.eventBus.emit({\n id: randomUUID(),\n timestamp: new Date(),\n source: { type: 'addon', id: this.id },\n category: EventCategory.AddonWidgetReady,\n data: { addonId, recovered: true },\n })\n } catch (err: unknown) {\n this.ctx.logger.debug('addon-widgets-source retry failed', {\n meta: { sourceId, attempt: attempt + 1, error: errMsg(err) },\n })\n this.scheduleRetry(sourceId, attempt + 1)\n }\n }\n\n // ── Bundle URL stamping ──────────────────────────────────────────\n\n /**\n * Build `/api/addon-widgets/<addonId>/<bundle>?v=<mtime>`. Falls back\n * to `Date.now()` when the bundle path can't be stat'd (remote addon\n * with no local file, addon not yet on disk, etc.) — the browser\n * just gets a fresh URL on each call instead of cache-friendly mtime.\n */\n private makeBundleUrl(addonId: string, bundle: string): string {\n const bundlePath = this.resolveBundlePath(addonId, bundle)\n let mtime = Date.now()\n if (bundlePath !== null) {\n try { mtime = fs.statSync(bundlePath).mtimeMs }\n catch { /* remote addon — no local file */ }\n }\n const v = Math.floor(mtime)\n return `/api/addon-widgets/${addonId}/${bundle}?v=${v}`\n }\n\n private resolveBundlePath(addonId: string, bundle: string): string | null {\n const paths = this.resolvedPaths\n if (!paths) return null\n const addonDistPath = path.join(paths.addonsDir, '@camstack', `addon-${addonId}`, 'dist')\n const resolvedBase = path.resolve(addonDistPath)\n const resolvedFile = path.resolve(addonDistPath, bundle)\n if (!resolvedFile.startsWith(resolvedBase + path.sep) && resolvedFile !== resolvedBase) {\n return null\n }\n return resolvedFile\n }\n\n // ── Path resolution ──────────────────────────────────────────────\n\n private async resolvePaths(): Promise<ResolvedPaths> {\n const fallback: ResolvedPaths = { addonsDir: path.resolve('camstack-data', 'addons') }\n if (!this.ctx.settings) return fallback\n try {\n const server = await this.ctx.settings.getSection('server')\n const dataPath = typeof server['dataPath'] === 'string' && server['dataPath']\n ? server['dataPath']\n : 'camstack-data'\n return { addonsDir: path.resolve(dataPath, 'addons') }\n } catch (err: unknown) {\n this.ctx.logger.debug('Failed to read server.dataPath — falling back', {\n meta: { error: errMsg(err) },\n })\n return fallback\n }\n }\n}\n\nexport default AddonWidgetsAggregatorAddon\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,IAAM,mBAAsC;CAAC;CAAK;CAAM;CAAK;AAE7D,IAAa,8BAAb,cAAiD,UAAU;CACzD,KAAc;CAEd,gBAA8C;;;;;;;;;CAU9C,2BAA4B,IAAI,KAAwC;;CAGxE,8BAA+B,IAAI,KAA6B;CAEhE,cAAc;EAAE,MAAM,EAAE,CAAC;;CAEzB,MAAgB,eAAgD;EAC9D,KAAK,gBAAgB,MAAM,KAAK,cAAc;EAE9C,MAAM,WAA4C,EAChD,aAAa,YAAgD,KAAK,WAAW,EAC9E;EAED,KAAK,IAAI,OAAO,KAAK,2DAA2D;EAChF,OAAO,CAAC;GAAE,YAAY;GAAwB;GAAU,CAAC;;CAG3D,MAAgB,aAA4B;EAC1C,KAAK,MAAM,KAAK,KAAK,YAAY,QAAQ,EAAE,aAAa,EAAE;EAC1D,KAAK,YAAY,OAAO;EACxB,KAAK,SAAS,OAAO;;CAKvB,MAAc,YAAgD;EAK5D,MAAM,UAAU,KAAK,cAAc,qBAAkD,uBAAuB,IAAI,EAAE;EAClH,MAAM,MAAwB,EAAE;EAChC,MAAM,0BAAU,IAAI,KAAa;EAEjC,KAAK,MAAM,CAAC,SAAS,WAAW,SAAS;GACvC,QAAQ,IAAI,QAAQ;GACpB,IAAI;IAEF,MAAM,YAA6B,MADb,QAAQ,QAAQ,OAAO,aAAa,CAAC,EAChB,KAAK,OAAkB;KAChE,GAAG;KACH;KACA,WAAW,KAAK,cAAc,SAAS,EAAE,OAAO;KACjD,EAAE;IACH,KAAK,MAAM,QAAQ,UAAU,IAAI,KAAK,KAAK;IAE3C,KAAK,SAAS,IAAI,SAAS,SAAS;YAC7B,KAAc;IACrB,MAAM,UAAU,OAAO,IAAI;IAC3B,KAAK,IAAI,OAAO,KAAK,wCAAwC,EAC3D,MAAM;KAAE,UAAU;KAAS,OAAO;KAAS,EAC5C,CAAC;IAIF,MAAM,SAAS,KAAK,SAAS,IAAI,QAAQ;IACzC,IAAI,WAAW,KAAA,GAAW;KACxB,KAAK,MAAM,QAAQ,QAAQ,IAAI,KAAK,KAAK;KACzC,KAAK,IAAI,OAAO,KAAK,wDAAwD,EAC3E,MAAM;MAAE,UAAU;MAAS,eAAe,OAAO;MAAQ,EAC1D,CAAC;;IAKJ,KAAK,cAAc,QAAQ;;;EAM/B,KAAK,MAAM,YAAY,KAAK,SAAS,MAAM,EACzC,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,SAAS,OAAO,SAAS;EAG5D,OAAO;;CAKT,cAAsB,UAAkB,UAAU,GAAS;EACzD,IAAI,WAAW,iBAAiB,QAAQ;EACxC,IAAI,KAAK,YAAY,IAAI,SAAS,EAAE;EAEpC,MAAM,UAAU,iBAAiB,YAAY,iBAAiB,iBAAiB,SAAS;EACxF,MAAM,QAAQ,iBAAiB;GAC7B,KAAK,YAAY,OAAO,SAAS;GACjC,KAAU,YAAY,UAAU,QAAQ;KACvC,QAAQ;EACX,KAAK,YAAY,IAAI,UAAU,MAAM;;CAGvC,MAAc,YAAY,UAAkB,SAAgC;EAE1E,MAAM,SADU,KAAK,cAAc,qBAAkD,uBAAuB,IAAI,EAAE,EAC5F,MAAM,CAAC,QAAQ,OAAO,SAAS;EACrD,IAAI,CAAC,OAAO;EACZ,MAAM,CAAC,SAAS,UAAU;EAE1B,IAAI;GAEF,MAAM,YAA6B,MADb,QAAQ,QAAQ,OAAO,aAAa,CAAC,EAChB,KAAK,OAAkB;IAChE,GAAG;IACH;IACA,WAAW,KAAK,cAAc,SAAS,EAAE,OAAO;IACjD,EAAE;GACH,KAAK,SAAS,IAAI,SAAS,SAAS;GACpC,KAAK,IAAI,OAAO,KAAK,8CAA8C,EACjE,MAAM;IAAE,UAAU;IAAS,SAAS,UAAU;IAAG,SAAS,SAAS;IAAQ,EAC5E,CAAC;GAEF,KAAK,IAAI,SAAS,KAAK;IACrB,IAAI,YAAY;IAChB,2BAAW,IAAI,MAAM;IACrB,QAAQ;KAAE,MAAM;KAAS,IAAI,KAAK;KAAI;IACtC,UAAU,cAAc;IACxB,MAAM;KAAE;KAAS,WAAW;KAAM;IACnC,CAAC;WACK,KAAc;GACrB,KAAK,IAAI,OAAO,MAAM,qCAAqC,EACzD,MAAM;IAAE;IAAU,SAAS,UAAU;IAAG,OAAO,OAAO,IAAI;IAAE,EAC7D,CAAC;GACF,KAAK,cAAc,UAAU,UAAU,EAAE;;;;;;;;;CAY7C,cAAsB,SAAiB,QAAwB;EAC7D,MAAM,aAAa,KAAK,kBAAkB,SAAS,OAAO;EAC1D,IAAI,QAAQ,KAAK,KAAK;EACtB,IAAI,eAAe,MACjB,IAAI;GAAE,QAAQ,GAAG,SAAS,WAAW,CAAC;UAChC;EAGR,OAAO,sBAAsB,QAAQ,GAAG,OAAO,KADrC,KAAK,MAAM,MAC+B;;CAGtD,kBAA0B,SAAiB,QAA+B;EACxE,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OAAO,OAAO;EACnB,MAAM,gBAAgB,KAAK,KAAK,MAAM,WAAW,aAAa,SAAS,WAAW,OAAO;EACzF,MAAM,eAAe,KAAK,QAAQ,cAAc;EAChD,MAAM,eAAe,KAAK,QAAQ,eAAe,OAAO;EACxD,IAAI,CAAC,aAAa,WAAW,eAAe,KAAK,IAAI,IAAI,iBAAiB,cACxE,OAAO;EAET,OAAO;;CAKT,MAAc,eAAuC;EACnD,MAAM,WAA0B,EAAE,WAAW,KAAK,QAAQ,iBAAiB,SAAS,EAAE;EACtF,IAAI,CAAC,KAAK,IAAI,UAAU,OAAO;EAC/B,IAAI;GACF,MAAM,SAAS,MAAM,KAAK,IAAI,SAAS,WAAW,SAAS;GAC3D,MAAM,WAAW,OAAO,OAAO,gBAAgB,YAAY,OAAO,cAC9D,OAAO,cACP;GACJ,OAAO,EAAE,WAAW,KAAK,QAAQ,UAAU,SAAS,EAAE;WAC/C,KAAc;GACrB,KAAK,IAAI,OAAO,MAAM,iDAAiD,EACrE,MAAM,EAAE,OAAO,OAAO,IAAI,EAAE,EAC7B,CAAC;GACF,OAAO"}
@@ -0,0 +1,2 @@
1
+ export { AddonWidgetsAggregatorAddon, default } from './addon-widgets-aggregator.addon.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builtins/addon-widgets-aggregator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA"}
@@ -0,0 +1,7 @@
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_builtins_addon_widgets_aggregator_addon_widgets_aggregator_addon = require("./addon-widgets-aggregator.addon.js");
6
+ exports.AddonWidgetsAggregatorAddon = require_builtins_addon_widgets_aggregator_addon_widgets_aggregator_addon.AddonWidgetsAggregatorAddon;
7
+ exports.default = require_builtins_addon_widgets_aggregator_addon_widgets_aggregator_addon.AddonWidgetsAggregatorAddon;
@@ -0,0 +1,2 @@
1
+ import { AddonWidgetsAggregatorAddon } from "./addon-widgets-aggregator.addon.mjs";
2
+ export { AddonWidgetsAggregatorAddon, AddonWidgetsAggregatorAddon as default };
@@ -0,0 +1,82 @@
1
+ import { ProviderRegistration, Alert, BaseAddon } from '@camstack/types';
2
+ interface AlertCenterConfig {
3
+ readonly maxAlerts: number;
4
+ readonly retentionDays: number;
5
+ }
6
+ /**
7
+ * Alert Center addon — core builtin that persists alerts in a
8
+ * structured SQLite table and serves them to the admin UI.
9
+ *
10
+ * Registers as an `alerts` collection provider and subscribes to
11
+ * important EventBus categories to create/update alerts automatically.
12
+ */
13
+ export declare class AlertCenterAddon extends BaseAddon<AlertCenterConfig> {
14
+ private unsubscribers;
15
+ constructor();
16
+ /**
17
+ * Per `(category, source.id)` counter used to rate-limit chatty
18
+ * events. Entries are pruned lazily when they age out of
19
+ * `RATE_LIMIT_WINDOW_MS`; see `shouldSuppressByRate()` below.
20
+ */
21
+ private readonly rateLimitCounters;
22
+ protected onInitialize(): Promise<ProviderRegistration[]>;
23
+ protected onShutdown(): Promise<void>;
24
+ protected globalSettingsSchema(): import('@camstack/types').ConfigUISchema;
25
+ listAlerts(filter?: {
26
+ unreadOnly?: boolean;
27
+ limit?: number;
28
+ }): Promise<readonly Alert[]>;
29
+ getUnreadCount(): Promise<number>;
30
+ markRead(alertId: string): Promise<void>;
31
+ markAllRead(): Promise<void>;
32
+ dismiss(alertId: string): Promise<void>;
33
+ private handleEvent;
34
+ private handleModelDownload;
35
+ /**
36
+ * `[ALERT-CENTER-EVENTS]` — rate limit a `(category, source.id)`
37
+ * tuple. Returns `true` when the caller should DROP this event
38
+ * without persisting an alert, and `false` when the alert should
39
+ * proceed normally.
40
+ *
41
+ * Heuristic: the first `RATE_LIMIT_MAX_PER_SOURCE` events within a
42
+ * `RATE_LIMIT_WINDOW_MS` window go through. Once the threshold is
43
+ * crossed, subsequent events are suppressed until the window rolls
44
+ * over. When the threshold is first crossed, the suppression is
45
+ * logged once so operators know why they're not seeing the follow-
46
+ * up alerts; after the window rolls over the next event is
47
+ * un-suppressed and starts a new window.
48
+ */
49
+ private shouldSuppressByRate;
50
+ /**
51
+ * AddonLoadFailed — kernel's AddonHealthMonitor has post-grace
52
+ * failed an addon load/init. Upsert a stable-id alert keyed by
53
+ * `addon-load-failed:<packageName>` so the recovery path can
54
+ * dismiss it. Severity=error, persistent until dismissed or
55
+ * auto-resolved.
56
+ *
57
+ * The action `retry` carries the package name so the admin UI can
58
+ * dispatch `addons.retryLoad(packageName)` directly from the alert
59
+ * card without the operator opening the Addons page.
60
+ */
61
+ private handleAddonLoadFailed;
62
+ /**
63
+ * AddonLoadRecovered — addon previously alerting is back to healthy.
64
+ * Dismiss the matching alert so the operator's badge count drops.
65
+ */
66
+ private handleAddonLoadRecovered;
67
+ private buildMessage;
68
+ private emitAlert;
69
+ private updateAlert;
70
+ /**
71
+ * Read-merge-write: SettingsBackend.update() replaces the entire `data` blob,
72
+ * so we must read the existing record, merge the patch, and write back.
73
+ */
74
+ private mergeUpdate;
75
+ private persistAlert;
76
+ private emitAlertCreatedEvent;
77
+ private emitAlertUpdatedEvent;
78
+ private enforceMaxAlerts;
79
+ private enforceRetention;
80
+ }
81
+ export default AlertCenterAddon;
82
+ //# sourceMappingURL=alerts.addon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alerts.addon.d.ts","sourceRoot":"","sources":["../../../src/builtins/alerts/alerts.addon.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,KAAK,EAA8B,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAuD,MAAM,iBAAiB,CAAA;AA+EhG,UAAU,iBAAiB;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAUD;;;;;;GAMG;AACH,qBAAa,gBAAiB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAChE,OAAO,CAAC,aAAa,CAA8B;;IAMnD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmF;cAErG,YAAY,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;cA2B/C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3C,SAAS,CAAC,oBAAoB;IAyBxB,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;IAkBxF,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAOjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAU/B,WAAW;YAiDX,mBAAmB;IA8DjC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;;;;;;;OAUG;YACW,qBAAqB;IAoCnC;;;OAGG;YACW,wBAAwB;IAiBtC,OAAO,CAAC,YAAY;YAmDN,SAAS;YAOT,WAAW;IAKzB;;;OAGG;YACW,WAAW;YAUX,YAAY;IAsB1B,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,qBAAqB;YAWf,gBAAgB;YAoBhB,gBAAgB;CAgB/B;AAED,eAAe,gBAAgB,CAAA"}