libre-webui 0.16.1 → 0.18.0

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 (314) hide show
  1. package/README.md +232 -154
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +155 -6
  4. package/backend/dist/db.js.map +1 -1
  5. package/backend/dist/index.d.ts.map +1 -1
  6. package/backend/dist/index.js +17 -10
  7. package/backend/dist/index.js.map +1 -1
  8. package/backend/dist/middleware/auth.d.ts.map +1 -1
  9. package/backend/dist/middleware/auth.js +35 -3
  10. package/backend/dist/middleware/auth.js.map +1 -1
  11. package/backend/dist/models/userModel.d.ts +23 -0
  12. package/backend/dist/models/userModel.d.ts.map +1 -1
  13. package/backend/dist/models/userModel.js +89 -24
  14. package/backend/dist/models/userModel.js.map +1 -1
  15. package/backend/dist/routes/agentCli.d.ts +3 -0
  16. package/backend/dist/routes/agentCli.d.ts.map +1 -0
  17. package/backend/dist/routes/agentCli.js +35 -0
  18. package/backend/dist/routes/agentCli.js.map +1 -0
  19. package/backend/dist/routes/auth.d.ts.map +1 -1
  20. package/backend/dist/routes/auth.js +46 -33
  21. package/backend/dist/routes/auth.js.map +1 -1
  22. package/backend/dist/routes/chat.d.ts.map +1 -1
  23. package/backend/dist/routes/chat.js +30 -1
  24. package/backend/dist/routes/chat.js.map +1 -1
  25. package/backend/dist/routes/documents.d.ts.map +1 -1
  26. package/backend/dist/routes/documents.js +49 -41
  27. package/backend/dist/routes/documents.js.map +1 -1
  28. package/backend/dist/routes/embeddings.js +2 -2
  29. package/backend/dist/routes/embeddings.js.map +1 -1
  30. package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
  31. package/backend/dist/routes/huggingfaceHub.js +3 -1
  32. package/backend/dist/routes/huggingfaceHub.js.map +1 -1
  33. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  34. package/backend/dist/routes/imageGen.js +2 -0
  35. package/backend/dist/routes/imageGen.js.map +1 -1
  36. package/backend/dist/routes/media.d.ts +3 -0
  37. package/backend/dist/routes/media.d.ts.map +1 -0
  38. package/backend/dist/routes/media.js +429 -0
  39. package/backend/dist/routes/media.js.map +1 -0
  40. package/backend/dist/routes/ollama.d.ts.map +1 -1
  41. package/backend/dist/routes/ollama.js +15 -83
  42. package/backend/dist/routes/ollama.js.map +1 -1
  43. package/backend/dist/routes/personas.d.ts.map +1 -1
  44. package/backend/dist/routes/personas.js +2 -0
  45. package/backend/dist/routes/personas.js.map +1 -1
  46. package/backend/dist/routes/plugins.d.ts.map +1 -1
  47. package/backend/dist/routes/plugins.js +28 -0
  48. package/backend/dist/routes/plugins.js.map +1 -1
  49. package/backend/dist/routes/systemDiagnostics.d.ts +3 -0
  50. package/backend/dist/routes/systemDiagnostics.d.ts.map +1 -0
  51. package/backend/dist/routes/systemDiagnostics.js +49 -0
  52. package/backend/dist/routes/systemDiagnostics.js.map +1 -0
  53. package/backend/dist/routes/tts.d.ts.map +1 -1
  54. package/backend/dist/routes/tts.js +4 -0
  55. package/backend/dist/routes/tts.js.map +1 -1
  56. package/backend/dist/routes/users.d.ts.map +1 -1
  57. package/backend/dist/routes/users.js +58 -0
  58. package/backend/dist/routes/users.js.map +1 -1
  59. package/backend/dist/routes/work.d.ts.map +1 -1
  60. package/backend/dist/routes/work.js +107 -2
  61. package/backend/dist/routes/work.js.map +1 -1
  62. package/backend/dist/services/agentCliService.d.ts +30 -0
  63. package/backend/dist/services/agentCliService.d.ts.map +1 -0
  64. package/backend/dist/services/agentCliService.js +328 -0
  65. package/backend/dist/services/agentCliService.js.map +1 -0
  66. package/backend/dist/services/authService.d.ts +15 -9
  67. package/backend/dist/services/authService.d.ts.map +1 -1
  68. package/backend/dist/services/authService.js +34 -29
  69. package/backend/dist/services/authService.js.map +1 -1
  70. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  71. package/backend/dist/services/chatGenerationService.js +19 -1
  72. package/backend/dist/services/chatGenerationService.js.map +1 -1
  73. package/backend/dist/services/chatRequestService.d.ts +8 -2
  74. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  75. package/backend/dist/services/chatRequestService.js +30 -3
  76. package/backend/dist/services/chatRequestService.js.map +1 -1
  77. package/backend/dist/services/documentService.d.ts +11 -10
  78. package/backend/dist/services/documentService.d.ts.map +1 -1
  79. package/backend/dist/services/documentService.js +62 -54
  80. package/backend/dist/services/documentService.js.map +1 -1
  81. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  82. package/backend/dist/services/encryptionService.js +18 -8
  83. package/backend/dist/services/encryptionService.js.map +1 -1
  84. package/backend/dist/services/galleryService.d.ts +23 -1
  85. package/backend/dist/services/galleryService.d.ts.map +1 -1
  86. package/backend/dist/services/galleryService.js +125 -8
  87. package/backend/dist/services/galleryService.js.map +1 -1
  88. package/backend/dist/services/mediaGenerationJobService.d.ts +25 -0
  89. package/backend/dist/services/mediaGenerationJobService.d.ts.map +1 -0
  90. package/backend/dist/services/mediaGenerationJobService.js +82 -0
  91. package/backend/dist/services/mediaGenerationJobService.js.map +1 -0
  92. package/backend/dist/services/pluginAudioGenerationService.d.ts +34 -0
  93. package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -0
  94. package/backend/dist/services/pluginAudioGenerationService.js +211 -0
  95. package/backend/dist/services/pluginAudioGenerationService.js.map +1 -0
  96. package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -1
  97. package/backend/dist/services/pluginCapabilityRegistryService.js +6 -0
  98. package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -1
  99. package/backend/dist/services/pluginEmbeddingService.d.ts +2 -0
  100. package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
  101. package/backend/dist/services/pluginEmbeddingService.js +66 -35
  102. package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
  103. package/backend/dist/services/pluginImageGenerationService.d.ts +2 -0
  104. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  105. package/backend/dist/services/pluginImageGenerationService.js +63 -38
  106. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  107. package/backend/dist/services/pluginService.d.ts +38 -1
  108. package/backend/dist/services/pluginService.d.ts.map +1 -1
  109. package/backend/dist/services/pluginService.js +390 -69
  110. package/backend/dist/services/pluginService.js.map +1 -1
  111. package/backend/dist/services/pluginTTSService.d.ts +2 -0
  112. package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
  113. package/backend/dist/services/pluginTTSService.js +27 -2
  114. package/backend/dist/services/pluginTTSService.js.map +1 -1
  115. package/backend/dist/services/pluginUsageService.d.ts +82 -0
  116. package/backend/dist/services/pluginUsageService.d.ts.map +1 -0
  117. package/backend/dist/services/pluginUsageService.js +238 -0
  118. package/backend/dist/services/pluginUsageService.js.map +1 -0
  119. package/backend/dist/services/pluginVideoGenerationService.d.ts +45 -0
  120. package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -0
  121. package/backend/dist/services/pluginVideoGenerationService.js +198 -0
  122. package/backend/dist/services/pluginVideoGenerationService.js.map +1 -0
  123. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  124. package/backend/dist/services/preferencesService.js +15 -1
  125. package/backend/dist/services/preferencesService.js.map +1 -1
  126. package/backend/dist/services/registrationPolicy.d.ts +5 -0
  127. package/backend/dist/services/registrationPolicy.d.ts.map +1 -0
  128. package/backend/dist/services/registrationPolicy.js +21 -0
  129. package/backend/dist/services/registrationPolicy.js.map +1 -0
  130. package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
  131. package/backend/dist/services/simpleGitHubOAuth.js +8 -12
  132. package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
  133. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
  134. package/backend/dist/services/simpleHuggingFaceOAuth.js +7 -12
  135. package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
  136. package/backend/dist/services/systemDiagnosticsService.d.ts +117 -0
  137. package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -0
  138. package/backend/dist/services/systemDiagnosticsService.js +326 -0
  139. package/backend/dist/services/systemDiagnosticsService.js.map +1 -0
  140. package/backend/dist/services/turnstileService.d.ts +2 -1
  141. package/backend/dist/services/turnstileService.d.ts.map +1 -1
  142. package/backend/dist/services/turnstileService.js +28 -2
  143. package/backend/dist/services/turnstileService.js.map +1 -1
  144. package/backend/dist/services/workAgentGuidance.js +1 -1
  145. package/backend/dist/services/workAgentGuidance.js.map +1 -1
  146. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  147. package/backend/dist/services/workAgentService.js +37 -0
  148. package/backend/dist/services/workAgentService.js.map +1 -1
  149. package/backend/dist/services/workHostWorkspaceService.d.ts +22 -0
  150. package/backend/dist/services/workHostWorkspaceService.d.ts.map +1 -0
  151. package/backend/dist/services/workHostWorkspaceService.js +136 -0
  152. package/backend/dist/services/workHostWorkspaceService.js.map +1 -0
  153. package/backend/dist/services/workModelProviderService.d.ts +3 -0
  154. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  155. package/backend/dist/services/workModelProviderService.js +37 -4
  156. package/backend/dist/services/workModelProviderService.js.map +1 -1
  157. package/backend/dist/services/workPreviewProxyService.d.ts +27 -0
  158. package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -0
  159. package/backend/dist/services/workPreviewProxyService.js +514 -0
  160. package/backend/dist/services/workPreviewProxyService.js.map +1 -0
  161. package/backend/dist/services/workRuntimeService.d.ts +65 -3
  162. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  163. package/backend/dist/services/workRuntimeService.js +536 -14
  164. package/backend/dist/services/workRuntimeService.js.map +1 -1
  165. package/backend/dist/services/workTaskService.d.ts +3 -3
  166. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  167. package/backend/dist/services/workTaskService.js +10 -6
  168. package/backend/dist/services/workTaskService.js.map +1 -1
  169. package/backend/dist/services/workTerminalService.d.ts +46 -0
  170. package/backend/dist/services/workTerminalService.d.ts.map +1 -0
  171. package/backend/dist/services/workTerminalService.js +241 -0
  172. package/backend/dist/services/workTerminalService.js.map +1 -0
  173. package/backend/dist/storage.d.ts.map +1 -1
  174. package/backend/dist/storage.js +3 -3
  175. package/backend/dist/storage.js.map +1 -1
  176. package/backend/dist/types/index.d.ts +78 -2
  177. package/backend/dist/types/index.d.ts.map +1 -1
  178. package/backend/dist/types/index.js.map +1 -1
  179. package/backend/dist/types/work.d.ts +53 -0
  180. package/backend/dist/types/work.d.ts.map +1 -1
  181. package/backend/dist/utils/chatDocumentContext.d.ts +1 -1
  182. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  183. package/backend/dist/utils/chatDocumentContext.js +4 -4
  184. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  185. package/backend/dist/utils/chatProviderSelection.d.ts.map +1 -1
  186. package/backend/dist/utils/chatProviderSelection.js +7 -5
  187. package/backend/dist/utils/chatProviderSelection.js.map +1 -1
  188. package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
  189. package/backend/dist/utils/pluginValidation.d.ts +3 -2
  190. package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
  191. package/backend/dist/utils/pluginValidation.js +30 -2
  192. package/backend/dist/utils/pluginValidation.js.map +1 -1
  193. package/backend/dist/utils/workGit.d.ts +14 -0
  194. package/backend/dist/utils/workGit.d.ts.map +1 -0
  195. package/backend/dist/utils/workGit.js +207 -0
  196. package/backend/dist/utils/workGit.js.map +1 -0
  197. package/backend/dist/websocketServer.d.ts +1 -0
  198. package/backend/dist/websocketServer.d.ts.map +1 -1
  199. package/backend/dist/websocketServer.js +156 -35
  200. package/backend/dist/websocketServer.js.map +1 -1
  201. package/backend/dist/workTerminalServer.d.ts +17 -0
  202. package/backend/dist/workTerminalServer.d.ts.map +1 -0
  203. package/backend/dist/workTerminalServer.js +226 -0
  204. package/backend/dist/workTerminalServer.js.map +1 -0
  205. package/backend/package.json +1 -1
  206. package/frontend/dist/assets/index-ChhWhug2.css +1 -0
  207. package/frontend/dist/assets/index-CmZntyR1.js +3 -0
  208. package/frontend/dist/assets/xterm-CmMoOwwu.css +1 -0
  209. package/frontend/dist/index.html +28 -6
  210. package/frontend/dist/js/ArtifactContainer-CBAbdoIJ.js +1 -0
  211. package/frontend/dist/js/{ArtifactDemoPage-CWDhGWrz.js → ArtifactDemoPage-BWN0MWCx.js} +1 -1
  212. package/frontend/dist/js/ArtifactSlideOutPanel-D-AvYkfk.js +1 -0
  213. package/frontend/dist/js/{Button-DBk-AREB.js → Button-CRwzOaDZ.js} +1 -1
  214. package/frontend/dist/js/ChatPage-w2FkF_fE.js +16 -0
  215. package/frontend/dist/js/FirstTimeSetup-CzBxl7UH.js +1 -0
  216. package/frontend/dist/js/GalleryPage-Cv8pniRW.js +1 -0
  217. package/frontend/dist/js/HomePage-Vyj4ndU4.js +1 -0
  218. package/frontend/dist/js/LibreClawPage-CYhLgQB-.js +1 -0
  219. package/frontend/dist/js/{ModelManagerModals-DltRprHU.js → ModelManagerModals-C2rwHd01.js} +1 -1
  220. package/frontend/dist/js/ModelSelector-D7kDjZV9.js +1 -0
  221. package/frontend/dist/js/ModelsPage-BnUddkrs.js +2 -0
  222. package/frontend/dist/js/{PersonasPage-C2pqDsWA.js → PersonasPage-BL5XlrEm.js} +2 -2
  223. package/frontend/dist/js/PluginUsagePage-BXqweCCs.js +1 -0
  224. package/frontend/dist/js/RichMessageContent-nAEaPTpH.js +3 -0
  225. package/frontend/dist/js/SettingsModal-DZYCI5-y.js +1 -0
  226. package/frontend/dist/js/SystemPage-jdHYfn9A.js +1 -0
  227. package/frontend/dist/js/UserManagementPage-BpOnt6os.js +1 -0
  228. package/frontend/dist/js/WorkPage-DAp1T1dl.js +5 -0
  229. package/frontend/dist/js/addon-fit-Cj0_dfHF.js +1 -0
  230. package/frontend/dist/js/api-BCqWXjZI.js +19 -0
  231. package/frontend/dist/js/appStore-CDM6V5ny.js +2 -0
  232. package/frontend/dist/js/ar-DS8gs8WK.js +2 -0
  233. package/frontend/dist/js/authStore-Bl5ofD_h.js +4 -0
  234. package/frontend/dist/js/bn-CrMPJwTR.js +2 -0
  235. package/frontend/dist/js/cs-BL116Ezu.js +2 -0
  236. package/frontend/dist/js/da-TDNaKzqy.js +2 -0
  237. package/frontend/dist/js/de-DkIqdAB5.js +2 -0
  238. package/frontend/dist/js/es-CHRXt6Fd.js +2 -0
  239. package/frontend/dist/js/{estree-BRklD62a.js → estree-BFya-bSu.js} +1 -1
  240. package/frontend/dist/js/fr-8715yUKq.js +2 -0
  241. package/frontend/dist/js/hi-C2O08SBU.js +2 -0
  242. package/frontend/dist/js/{html-BgGIAGmn.js → html-DJot0Wwf.js} +1 -1
  243. package/frontend/dist/js/id-Dq7UXUEV.js +2 -0
  244. package/frontend/dist/js/is-B3dbbhSl.js +2 -0
  245. package/frontend/dist/js/it-CLSuu2K7.js +2 -0
  246. package/frontend/dist/js/ja-CthrqyCR.js +2 -0
  247. package/frontend/dist/js/ko-BJvFDJ82.js +2 -0
  248. package/frontend/dist/js/{markdown-CM2nBJJi.js → markdown-CXwWsPYG.js} +1 -1
  249. package/frontend/dist/js/ms-QV0202Mj.js +2 -0
  250. package/frontend/dist/js/nl-Dob1m1pV.js +2 -0
  251. package/frontend/dist/js/pl-urfOKnYI.js +2 -0
  252. package/frontend/dist/js/pt-D52Xkpi0.js +2 -0
  253. package/frontend/dist/js/ru-CwnW9Xe2.js +2 -0
  254. package/frontend/dist/js/{standalone-CUBo-NGt.js → standalone-C0NjJpWr.js} +1 -1
  255. package/frontend/dist/js/sv-BNclj-Fo.js +2 -0
  256. package/frontend/dist/js/th-BlQ4PL57.js +2 -0
  257. package/frontend/dist/js/tr-B80aZ1px.js +2 -0
  258. package/frontend/dist/js/{typescript-Dcy9qxSB.js → typescript-d0TUM2-0.js} +1 -1
  259. package/frontend/dist/js/ui-vendor-ChfdHf5M.js +177 -0
  260. package/frontend/dist/js/uk-DZuuaI56.js +2 -0
  261. package/frontend/dist/js/utils-DmZD5uA3.js +1 -0
  262. package/frontend/dist/js/vi-Bg42fPfF.js +2 -0
  263. package/frontend/dist/js/work-DVgm81bJ.js +1 -0
  264. package/frontend/dist/js/xterm-DKl1QLiw.js +7 -0
  265. package/frontend/dist/js/zh-BSt87zs6.js +2 -0
  266. package/package.json +3 -3
  267. package/plugins/openrouter.json +89 -0
  268. package/backend/dist/services/systemSettingsService.d.ts +0 -12
  269. package/backend/dist/services/systemSettingsService.d.ts.map +0 -1
  270. package/backend/dist/services/systemSettingsService.js +0 -70
  271. package/backend/dist/services/systemSettingsService.js.map +0 -1
  272. package/frontend/dist/assets/index-BVgyQN3z.js +0 -5
  273. package/frontend/dist/assets/index-Dme2Ozol.css +0 -1
  274. package/frontend/dist/js/ArtifactContainer-CbMAYwvr.js +0 -1
  275. package/frontend/dist/js/ArtifactSlideOutPanel-CzUpDM59.js +0 -1
  276. package/frontend/dist/js/ChatPage-D0fdzy7a.js +0 -16
  277. package/frontend/dist/js/FirstTimeSetup-CfnOmy9w.js +0 -1
  278. package/frontend/dist/js/GalleryPage-CMkCur9v.js +0 -1
  279. package/frontend/dist/js/LibreClawPage-CHEfny1k.js +0 -1
  280. package/frontend/dist/js/ModelSelector-COnlNsVM.js +0 -1
  281. package/frontend/dist/js/ModelsPage-nxheiYJp.js +0 -2
  282. package/frontend/dist/js/RichMessageContent-Cz9y-bgl.js +0 -3
  283. package/frontend/dist/js/SettingsModal-B6Se68Hd.js +0 -1
  284. package/frontend/dist/js/UserManagementPage-DQeL-Twp.js +0 -1
  285. package/frontend/dist/js/WorkPage-AcZMp8OB.js +0 -2
  286. package/frontend/dist/js/api-Fi-lJlfu.js +0 -19
  287. package/frontend/dist/js/ar-KceI0PfT.js +0 -2
  288. package/frontend/dist/js/bn-DsKo2dzS.js +0 -2
  289. package/frontend/dist/js/cs-6UKhKj0A.js +0 -2
  290. package/frontend/dist/js/da-CJgZ3YuL.js +0 -2
  291. package/frontend/dist/js/de-BZAmOuCT.js +0 -2
  292. package/frontend/dist/js/es-CD4u7no9.js +0 -2
  293. package/frontend/dist/js/fr-Cou2jOS3.js +0 -2
  294. package/frontend/dist/js/hi-ZxkbNCyB.js +0 -2
  295. package/frontend/dist/js/id-DT9CqaWQ.js +0 -2
  296. package/frontend/dist/js/is-BWSbAIoq.js +0 -2
  297. package/frontend/dist/js/it-CdNoTXm3.js +0 -2
  298. package/frontend/dist/js/ja-CIuQg0xv.js +0 -2
  299. package/frontend/dist/js/ko-BWRUjDOH.js +0 -2
  300. package/frontend/dist/js/ms-gJstIj2a.js +0 -2
  301. package/frontend/dist/js/nl-CydjVNUw.js +0 -2
  302. package/frontend/dist/js/pl-DPN9mAa5.js +0 -2
  303. package/frontend/dist/js/pt-MRXGqIjQ.js +0 -2
  304. package/frontend/dist/js/ru-CvQ9GkJF.js +0 -2
  305. package/frontend/dist/js/sv-BxS2fvhU.js +0 -2
  306. package/frontend/dist/js/th-DMxyn6e4.js +0 -2
  307. package/frontend/dist/js/tr-BTPldUaA.js +0 -2
  308. package/frontend/dist/js/ui-vendor-CAFEDSaO.js +0 -177
  309. package/frontend/dist/js/uk-BGxZOKgp.js +0 -2
  310. package/frontend/dist/js/useBaseQuery-CFTidwqz.js +0 -1
  311. package/frontend/dist/js/useQuery-UsSBfWzs.js +0 -1
  312. package/frontend/dist/js/utils-pTFqSV8c.js +0 -1
  313. package/frontend/dist/js/vi-82JkwFsQ.js +0 -2
  314. package/frontend/dist/js/zh-Bxxfwci3.js +0 -2
@@ -112,6 +112,9 @@ function initializeTables() {
112
112
  email TEXT UNIQUE,
113
113
  password_hash TEXT NOT NULL,
114
114
  role TEXT DEFAULT 'user',
115
+ account_status TEXT NOT NULL DEFAULT 'active' CHECK(account_status IN ('pending', 'active')),
116
+ approved_at INTEGER,
117
+ approved_by TEXT,
115
118
  avatar TEXT,
116
119
  created_at INTEGER NOT NULL,
117
120
  updated_at INTEGER NOT NULL
@@ -125,6 +128,21 @@ function initializeTables() {
125
128
  db.exec('ALTER TABLE users ADD COLUMN avatar TEXT');
126
129
  logger.debug('Migration: Added avatar column to users table');
127
130
  }
131
+ const hasAccountStatus = tableInfo.some(col => col.name === 'account_status');
132
+ if (!hasAccountStatus) {
133
+ db.exec("ALTER TABLE users ADD COLUMN account_status TEXT NOT NULL DEFAULT 'active'");
134
+ logger.debug('Migration: Added account approval status to users table');
135
+ }
136
+ const hasApprovedAt = tableInfo.some(col => col.name === 'approved_at');
137
+ if (!hasApprovedAt) {
138
+ db.exec('ALTER TABLE users ADD COLUMN approved_at INTEGER');
139
+ logger.debug('Migration: Added account approval timestamp to users table');
140
+ }
141
+ const hasApprovedBy = tableInfo.some(col => col.name === 'approved_by');
142
+ if (!hasApprovedBy) {
143
+ db.exec('ALTER TABLE users ADD COLUMN approved_by TEXT');
144
+ logger.debug('Migration: Added account approver to users table');
145
+ }
128
146
  }
129
147
  catch {
130
148
  // Column might already exist or table doesn't exist yet
@@ -170,6 +188,9 @@ function initializeTables() {
170
188
  filename TEXT NOT NULL,
171
189
  title TEXT,
172
190
  content TEXT,
191
+ file_type TEXT,
192
+ size INTEGER,
193
+ session_id TEXT,
173
194
  metadata TEXT, -- JSON string for additional metadata
174
195
  uploaded_at INTEGER NOT NULL,
175
196
  created_at INTEGER NOT NULL,
@@ -177,6 +198,17 @@ function initializeTables() {
177
198
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
178
199
  )
179
200
  `);
201
+ const documentColumns = db.prepare('PRAGMA table_info(documents)').all();
202
+ const existingDocumentColumns = new Set(documentColumns.map(column => column.name));
203
+ for (const column of [
204
+ { name: 'file_type', type: 'TEXT' },
205
+ { name: 'size', type: 'INTEGER' },
206
+ { name: 'session_id', type: 'TEXT' },
207
+ ]) {
208
+ if (!existingDocumentColumns.has(column.name)) {
209
+ db.exec(`ALTER TABLE documents ADD COLUMN ${column.name} ${column.type}`);
210
+ }
211
+ }
180
212
  // Document chunks table - migrated from document-chunks.json
181
213
  db.exec(`
182
214
  CREATE TABLE IF NOT EXISTS document_chunks (
@@ -212,12 +244,6 @@ function initializeTables() {
212
244
  updated_at INTEGER NOT NULL
213
245
  )
214
246
  `);
215
- // Seed default system settings
216
- const systemSettingsNow = Date.now();
217
- db.prepare(`
218
- INSERT OR IGNORE INTO system_settings (key, value, updated_at)
219
- VALUES (?, ?, ?)
220
- `).run('allow_user_model_pull', 'true', systemSettingsNow);
221
247
  // Personas table - for AI personas/characters
222
248
  db.exec(`
223
249
  CREATE TABLE IF NOT EXISTS personas (
@@ -275,6 +301,17 @@ function initializeTables() {
275
301
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
276
302
  PRIMARY KEY (user_id, plugin_id)
277
303
  )
304
+ `);
305
+ db.exec(`
306
+ CREATE TABLE IF NOT EXISTS plugin_discovered_capability_models (
307
+ user_id TEXT DEFAULT 'default',
308
+ plugin_id TEXT NOT NULL,
309
+ capability TEXT NOT NULL CHECK(capability IN ('image', 'tts', 'audio', 'video')),
310
+ models_json TEXT NOT NULL,
311
+ updated_at INTEGER NOT NULL,
312
+ FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
313
+ PRIMARY KEY (user_id, plugin_id, capability)
314
+ )
278
315
  `);
279
316
  // Plugin activation is account-scoped. Definitions remain shared files.
280
317
  db.exec(`
@@ -296,18 +333,62 @@ function initializeTables() {
296
333
  approved_by_user_id TEXT NOT NULL,
297
334
  approved_at INTEGER NOT NULL
298
335
  )
336
+ `);
337
+ // Server-side metering for outbound plugin provider calls. This table stores
338
+ // no prompts, responses, endpoints, credentials, or provider error bodies.
339
+ // Names are snapshotted so historical usage remains understandable after a
340
+ // plugin definition or user account is changed.
341
+ db.exec(`
342
+ CREATE TABLE IF NOT EXISTS plugin_usage_events (
343
+ id TEXT PRIMARY KEY,
344
+ user_id TEXT NOT NULL,
345
+ plugin_id TEXT NOT NULL,
346
+ plugin_name TEXT NOT NULL,
347
+ capability TEXT NOT NULL CHECK(capability IN ('chat', 'embedding', 'image', 'tts', 'audio', 'video')),
348
+ model TEXT NOT NULL,
349
+ status TEXT NOT NULL CHECK(status IN ('success', 'error', 'cancelled')),
350
+ prompt_tokens INTEGER,
351
+ completion_tokens INTEGER,
352
+ total_tokens INTEGER,
353
+ input_units INTEGER NOT NULL DEFAULT 0,
354
+ output_units INTEGER NOT NULL DEFAULT 0,
355
+ unit_kind TEXT,
356
+ duration_ms INTEGER NOT NULL,
357
+ created_at INTEGER NOT NULL
358
+ )
299
359
  `);
300
360
  // Generated images table - for image gallery
301
361
  db.exec(`
302
362
  CREATE TABLE IF NOT EXISTS generated_images (
303
363
  id TEXT PRIMARY KEY,
304
364
  user_id TEXT NOT NULL DEFAULT 'default',
365
+ kind TEXT NOT NULL DEFAULT 'image' CHECK(kind IN ('image', 'video', 'audio')),
305
366
  prompt TEXT NOT NULL,
306
367
  model TEXT NOT NULL,
368
+ plugin_id TEXT,
307
369
  image_data TEXT NOT NULL,
370
+ mime_type TEXT NOT NULL DEFAULT 'image/png',
308
371
  size TEXT,
309
372
  quality TEXT,
373
+ metadata TEXT,
374
+ created_at INTEGER NOT NULL,
375
+ FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
376
+ )
377
+ `);
378
+ db.exec(`
379
+ CREATE TABLE IF NOT EXISTS media_generation_jobs (
380
+ id TEXT PRIMARY KEY,
381
+ user_id TEXT NOT NULL,
382
+ provider_job_id TEXT NOT NULL,
383
+ plugin_id TEXT NOT NULL,
384
+ model TEXT NOT NULL,
385
+ prompt TEXT NOT NULL,
386
+ status TEXT NOT NULL CHECK(status IN ('pending', 'in_progress', 'completed', 'failed')),
387
+ options_json TEXT,
388
+ gallery_id TEXT,
389
+ error TEXT,
310
390
  created_at INTEGER NOT NULL,
391
+ updated_at INTEGER NOT NULL,
311
392
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
312
393
  )
313
394
  `);
@@ -325,6 +406,8 @@ function initializeTables() {
325
406
  network_enabled INTEGER NOT NULL DEFAULT 1,
326
407
  volume_name TEXT NOT NULL UNIQUE,
327
408
  container_name TEXT NOT NULL UNIQUE,
409
+ -- Set when the task is bound to a host folder instead of its volume.
410
+ host_path TEXT,
328
411
  preview_url TEXT,
329
412
  preview_status TEXT NOT NULL DEFAULT 'stopped',
330
413
  created_at INTEGER NOT NULL,
@@ -390,10 +473,17 @@ function initializeTables() {
390
473
  CREATE INDEX IF NOT EXISTS idx_plugin_variables_user_id ON plugin_variables(user_id);
391
474
  CREATE INDEX IF NOT EXISTS idx_plugin_variables_plugin_id ON plugin_variables(plugin_id);
392
475
  CREATE INDEX IF NOT EXISTS idx_plugin_discovered_models_plugin_id ON plugin_discovered_models(plugin_id);
476
+ CREATE INDEX IF NOT EXISTS idx_plugin_discovered_capability_models_plugin_id ON plugin_discovered_capability_models(plugin_id);
393
477
  CREATE INDEX IF NOT EXISTS idx_plugin_activations_plugin_id ON plugin_activations(plugin_id);
394
478
  CREATE INDEX IF NOT EXISTS idx_plugin_definition_approvals_approver ON plugin_definition_approvals(approved_by_user_id);
479
+ CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_created_at ON plugin_usage_events(created_at DESC);
480
+ CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_plugin_created ON plugin_usage_events(plugin_id, created_at DESC);
481
+ CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_model_created ON plugin_usage_events(model, created_at DESC);
482
+ CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_user_created ON plugin_usage_events(user_id, created_at DESC);
395
483
  CREATE INDEX IF NOT EXISTS idx_generated_images_user_id ON generated_images(user_id);
396
484
  CREATE INDEX IF NOT EXISTS idx_generated_images_created_at ON generated_images(created_at);
485
+ CREATE INDEX IF NOT EXISTS idx_media_generation_jobs_user_created ON media_generation_jobs(user_id, created_at DESC);
486
+ CREATE INDEX IF NOT EXISTS idx_media_generation_jobs_updated_at ON media_generation_jobs(updated_at);
397
487
  `);
398
488
  logger.debug('Database tables initialized successfully');
399
489
  // Create default user if no users exist
@@ -429,7 +519,63 @@ function createDefaultUserIfNeeded() {
429
519
  function runMigrations() {
430
520
  if (!db)
431
521
  return;
522
+ const migrationDb = db;
432
523
  try {
524
+ const usageTableSql = migrationDb
525
+ .prepare(`SELECT sql FROM sqlite_master
526
+ WHERE type = 'table' AND name = 'plugin_usage_events'`)
527
+ .get();
528
+ if (usageTableSql?.sql &&
529
+ (!usageTableSql.sql.includes("'video'") ||
530
+ !usageTableSql.sql.includes("'audio'"))) {
531
+ migrationDb.transaction(() => {
532
+ migrationDb.exec(`
533
+ CREATE TABLE plugin_usage_events_next (
534
+ id TEXT PRIMARY KEY,
535
+ user_id TEXT NOT NULL,
536
+ plugin_id TEXT NOT NULL,
537
+ plugin_name TEXT NOT NULL,
538
+ capability TEXT NOT NULL CHECK(capability IN ('chat', 'embedding', 'image', 'tts', 'audio', 'video')),
539
+ model TEXT NOT NULL,
540
+ status TEXT NOT NULL CHECK(status IN ('success', 'error', 'cancelled')),
541
+ prompt_tokens INTEGER,
542
+ completion_tokens INTEGER,
543
+ total_tokens INTEGER,
544
+ input_units INTEGER NOT NULL DEFAULT 0,
545
+ output_units INTEGER NOT NULL DEFAULT 0,
546
+ unit_kind TEXT,
547
+ duration_ms INTEGER NOT NULL,
548
+ created_at INTEGER NOT NULL
549
+ );
550
+ INSERT INTO plugin_usage_events_next SELECT * FROM plugin_usage_events;
551
+ DROP TABLE plugin_usage_events;
552
+ ALTER TABLE plugin_usage_events_next RENAME TO plugin_usage_events;
553
+ CREATE INDEX idx_plugin_usage_events_created_at ON plugin_usage_events(created_at DESC);
554
+ CREATE INDEX idx_plugin_usage_events_plugin_created ON plugin_usage_events(plugin_id, created_at DESC);
555
+ CREATE INDEX idx_plugin_usage_events_model_created ON plugin_usage_events(model, created_at DESC);
556
+ CREATE INDEX idx_plugin_usage_events_user_created ON plugin_usage_events(user_id, created_at DESC);
557
+ `);
558
+ })();
559
+ }
560
+ const generatedMediaColumns = db.prepare('PRAGMA table_info(generated_images)').all().map(column => column.name);
561
+ for (const column of [
562
+ {
563
+ name: 'kind',
564
+ definition: "TEXT NOT NULL DEFAULT 'image' CHECK(kind IN ('image', 'video', 'audio'))",
565
+ },
566
+ { name: 'plugin_id', definition: 'TEXT' },
567
+ {
568
+ name: 'mime_type',
569
+ definition: "TEXT NOT NULL DEFAULT 'image/png'",
570
+ },
571
+ { name: 'metadata', definition: 'TEXT' },
572
+ ]) {
573
+ if (!generatedMediaColumns.includes(column.name)) {
574
+ db.exec(`ALTER TABLE generated_images ADD COLUMN ${column.name} ${column.definition}`);
575
+ }
576
+ }
577
+ db.exec(`CREATE INDEX IF NOT EXISTS idx_generated_images_user_kind_created
578
+ ON generated_images(user_id, kind, created_at DESC)`);
433
579
  const pluginCredentialColumns = db.prepare('PRAGMA table_info(plugin_credentials)').all().map(column => column.name);
434
580
  if (!pluginCredentialColumns.includes('routing_auth_fingerprint')) {
435
581
  db.exec('ALTER TABLE plugin_credentials ADD COLUMN routing_auth_fingerprint TEXT');
@@ -520,6 +666,9 @@ function runMigrations() {
520
666
  if (!columns.includes('provider_id')) {
521
667
  db.exec(`ALTER TABLE ${table} ADD COLUMN provider_id TEXT`);
522
668
  }
669
+ if (table === 'work_tasks' && !columns.includes('host_path')) {
670
+ db.exec(`ALTER TABLE work_tasks ADD COLUMN host_path TEXT`);
671
+ }
523
672
  db.prepare(`UPDATE ${table}
524
673
  SET provider_type = 'ollama', provider_id = NULL
525
674
  WHERE provider_type IS NULL
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAExC,oBAAoB;AACpB,IAAI,EAAE,GAA6B,IAAI,CAAC;AACxC,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,+EAA+E;QAC/E,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CACV,4EAA4E,CAC7E,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,wEAAwE;YACxE,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAEjD,8BAA8B;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,sBAAsB;YACtB,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE1B,sBAAsB;YACtB,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAE/B,kCAAkC;YAClC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACjC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ;YAE5C,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAEzE,oCAAoC;YACpC,gBAAgB,EAAE,CAAC;YAEnB,iBAAiB;YACjB,aAAa,EAAE,CAAC;YAEhB,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,2CAA2C;IAC3C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;GAWP,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAEzD,CAAC;QACJ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IAED,+CAA+C;IAC/C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IAEH,yDAAyD;IACzD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAeP,CAAC,CAAC;IAEH,iDAAiD;IACjD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaP,CAAC,CAAC;IAEH,6DAA6D;IAC7D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,0DAA0D;IAC1D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;GAWP,CAAC,CAAC;IAEH,+BAA+B;IAC/B,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,EAAE,CAAC,OAAO,CACR;;;KAGC,CACF,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE1D,8CAA8C;IAC9C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IAEH,mDAAmD;IACnD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,sEAAsE;IACtE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaP,CAAC,CAAC;IAEH,2EAA2E;IAC3E,yEAAyE;IACzE,qCAAqC;IACrC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;GASP,CAAC,CAAC;IAEH,wEAAwE;IACxE,EAAE,CAAC,IAAI,CAAC;;;;;;;;GAQP,CAAC,CAAC;IAEH,uEAAuE;IACvE,mCAAmC;IACnC,EAAE,CAAC,IAAI,CAAC;;;;;;;;GAQP,CAAC,CAAC;IAEH,6CAA6C;IAC7C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,yEAAyE;IACzE,wEAAwE;IACxE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDP,CAAC,CAAC;IAEH,wCAAwC;IACxC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;GAsBP,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAEzD,wCAAwC;IACxC,yBAAyB,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB;IAChC,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE;aACjB,OAAO,CAAC,qCAAqC,CAAC;aAC9C,GAAG,EAAuB,CAAC;QAE9B,IAAI,SAAS,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,6CAA6C;YAC7C,EAAE,CAAC,OAAO,CACR;;;OAGD,CACA,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAE9D,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,IAAI,CAAC;QACH,MAAM,uBAAuB,GAC3B,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,EAGxD,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAClE,EAAE,CAAC,IAAI,CACL,yEAAyE,CAC1E,CAAC;YACF,MAAM,CAAC,KAAK,CACV,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,GACzB,EAAE;aACC,OAAO,CAAC,gDAAgD,CAAC;aACzD,GAAG,EACP,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACnD,EAAE,CAAC,IAAI,CACL;yDACiD,CAClD,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,MAAM,wBAAwB,GAAG,EAAE;aAChC,OAAO,CAAC,qCAAqC,CAAC;aAC9C,GAAG,EAOJ,CAAC;QAEH,MAAM,8BAA8B,GAAG,wBAAwB,CAAC,GAAG,CACjE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAChB,CAAC;QAEF,gDAAgD;QAChD,MAAM,yBAAyB,GAAG;YAChC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YAC/B,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE;YAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;YAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;YACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;YACnC,4BAA4B;YAC5B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,kDAAkD;YACvF,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,2CAA2C;YAChG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,gDAAgD;SACnG,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,yBAAyB,EAAE,CAAC;YAC/C,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,4BAA4B,CAAC,CAAC;gBACvE,EAAE,CAAC,IAAI,CACL,2CAA2C,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,EAAE,CAAC,IAAI,CACL,0FAA0F,CAC3F,CAAC;QAEF,8DAA8D;QAC9D,MAAM,iBAAiB,GAAG,EAAE;aACzB,OAAO,CAAC,6BAA6B,CAAC;aACtC,GAAG,EAOJ,CAAC;QAEH,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvE,KAAK,MAAM,MAAM,IAAI;YACnB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE;YACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE;SACtC,EAAE,CAAC;YACF,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBAC/D,EAAE,CAAC,IAAI,CACL,mCAAmC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC3D,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAE3D,kCAAkC;YAClC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,EAAE,CAAC,IAAI,CACL,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,0FAA0F;QAC1F,MAAM,iBAAiB,GAAG,EAAE;aACzB,OAAO,CAAC,6BAA6B,CAAC;aACtC,GAAG,EAOJ,CAAC;QAEH,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvE,wCAAwC;QACxC,MAAM,kBAAkB,GAAG;YACzB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;YACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc;YACzD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc;SAC5D,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACxC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBAC/D,EAAE,CAAC,IAAI,CACL,mCAAmC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,yEAAyE;QACzE,uEAAuE;QACvE,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,EAAE;iBACjB,OAAO,CAAC,qBAAqB,KAAK,GAAG,CAAC;iBACtC,GAAG,EAEJ,CAAC;YACH,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,EAAE,CAAC,IAAI,CACL,eAAe,KAAK,0DAA0D,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrC,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,8BAA8B,CAAC,CAAC;YAC9D,CAAC;YACD,EAAE,CAAC,OAAO,CACR,UAAU,KAAK;;;;sEAI+C,CAC/D,CAAC,GAAG,EAAE,CAAC;QACV,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,0BAA0B;QAC1B,EAAE,CAAC,OAAO,CACR,sEAAsE,CACvE,CAAC,GAAG,EAAE,CAAC;IACV,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;QACV,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,EAAE;aACd,OAAO,CACN,uEAAuE,CACxE;aACA,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AA8DlB,QAAA,MAAM,GAAG,6CAAY,CAAC;AA+gBtB,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AAoElB,QAAA,MAAM,GAAG,6CAAY,CAAC;AAmhBtB,eAAe,GAAG,CAAC"}
@@ -42,6 +42,7 @@ import { errorHandler, notFoundHandler, requestLogger, } from './middleware/inde
42
42
  import { authenticate, optionalAuth, } from './middleware/auth.js';
43
43
  import ollamaRoutes from './routes/ollama.js';
44
44
  import chatRoutes from './routes/chat.js';
45
+ import agentCliRoutes from './routes/agentCli.js';
45
46
  import preferencesRoutes from './routes/preferences.js';
46
47
  import pluginRoutes from './routes/plugins.js';
47
48
  import documentRoutes from './routes/documents.js';
@@ -50,14 +51,17 @@ import usersRoutes from './routes/users.js';
50
51
  import personaRoutes from './routes/personas.js';
51
52
  import ttsRoutes from './routes/tts.js';
52
53
  import imageGenRoutes from './routes/imageGen.js';
54
+ import mediaRoutes from './routes/media.js';
53
55
  import embeddingsRoutes from './routes/embeddings.js';
54
56
  import huggingfaceHubRoutes from './routes/huggingfaceHub.js';
55
57
  import libreClawRoutes from './routes/libreClaw.js';
56
58
  import workRoutes from './routes/work.js';
59
+ import systemDiagnosticsRoutes from './routes/systemDiagnostics.js';
57
60
  import ollamaService from './services/ollamaService.js';
58
61
  import workRuntimeService from './services/workRuntimeService.js';
59
62
  import workTaskService from './services/workTaskService.js';
60
63
  import workAgentService from './services/workAgentService.js';
64
+ import workPreviewProxyService, { WORK_PREVIEW_PROXY_PREFIX, } from './services/workPreviewProxyService.js';
61
65
  import { GitHubOAuthService } from './services/simpleGitHubOAuth.js';
62
66
  import { HuggingFaceOAuthService } from './services/simpleHuggingFaceOAuth.js';
63
67
  import { loadAppPackage, resolveFrontendDist } from './utils/packagePaths.js';
@@ -94,6 +98,11 @@ if (trustProxy) {
94
98
  app.set('trust proxy', trustProxy);
95
99
  }
96
100
  }
101
+ // Generated Work apps listen on Docker host loopback. Proxy their signed
102
+ // capability URLs before body parsing and the application's Helmet policy so
103
+ // request streams, dev-server assets, and preview-specific sandbox headers are
104
+ // preserved end to end.
105
+ app.use(WORK_PREVIEW_PROXY_PREFIX, workPreviewProxyService.handleHttp);
97
106
  const isProduction = process.env.NODE_ENV === 'production';
98
107
  const port = process.env.PORT || (isProduction ? 8080 : 3001);
99
108
  const corsOrigins = process.env.CORS_ORIGIN?.split(',') || [
@@ -134,8 +143,8 @@ const corsConfig = {
134
143
  };
135
144
  // Security middleware
136
145
  app.use(helmet({
137
- // Work previews are generated by arbitrary local dev servers, which do
138
- // not normally emit CORP. Their iframe is still constrained to loopback.
146
+ // Work previews have their own sandboxed proxy response policy and do not
147
+ // normally emit CORP.
139
148
  crossOriginEmbedderPolicy: false,
140
149
  // Content Security Policy - Docker-aware configuration
141
150
  contentSecurityPolicy: {
@@ -177,16 +186,11 @@ app.use(helmet({
177
186
  fontSrc: ["'self'", 'data:', 'https://fonts.gstatic.com'],
178
187
  mediaSrc: ["'self'", 'data:', 'blob:'],
179
188
  objectSrc: ["'none'"],
180
- frameSrc: [
181
- "'self'",
182
- 'https://challenges.cloudflare.com',
183
- 'http://127.0.0.1:*',
184
- 'http://localhost:*',
185
- ],
189
+ frameSrc: ["'self'", 'https://challenges.cloudflare.com'],
186
190
  frameAncestors: ["'self'"],
187
191
  formAction: ["'self'"],
188
- // npx desktop mode is production but previews are loopback HTTP.
189
- // Upgrading them to HTTPS would make every generated preview fail.
192
+ // npx desktop mode serves the application and signed preview proxy over
193
+ // plain localhost HTTP.
190
194
  upgradeInsecureRequests: null,
191
195
  baseUri: ["'self'"],
192
196
  manifestSrc: ["'self'"],
@@ -394,6 +398,7 @@ app.use('/api/auth', authRateLimiter, optionalAuth, authRoutes);
394
398
  app.use('/api/users', usersRateLimiter, optionalAuth, usersRoutes);
395
399
  app.use('/api/ollama', ollamaRateLimiter, ollamaRoutes);
396
400
  app.use('/api/chat', chatRateLimiter, optionalAuth, chatRoutes);
401
+ app.use('/api/agent-clis', chatRateLimiter, optionalAuth, agentCliRoutes);
397
402
  app.use('/api/preferences', preferencesRateLimiter, optionalAuth, preferencesRoutes);
398
403
  app.use('/api/plugins', pluginAuthBurstRateLimiter, authenticate, pluginRouteRateLimiter, pluginRoutes);
399
404
  app.use('/api/embeddings', embeddingsRoutes);
@@ -401,9 +406,11 @@ app.use('/api/documents', documentsRateLimiter, documentRoutes);
401
406
  app.use('/api/personas', personasRateLimiter, optionalAuth, personaRoutes);
402
407
  app.use('/api/tts', ttsRateLimiter, optionalAuth, ttsRoutes);
403
408
  app.use('/api/image-gen', imageGenRateLimiter, optionalAuth, imageGenRoutes);
409
+ app.use('/api/media', mediaRoutes);
404
410
  app.use('/api/huggingface-hub', huggingfaceHubRoutes);
405
411
  app.use('/api/libre-claw', libreClawRateLimiter, libreClawRoutes);
406
412
  app.use('/api/work', workRateLimiter, workRoutes);
413
+ app.use('/api/system', systemDiagnosticsRoutes);
407
414
  // Serve frontend static files in production (for npx libre-webui)
408
415
  if (process.env.NODE_ENV === 'production' ||
409
416
  process.env.SERVE_FRONTEND === 'true') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4DAA4D;AAC5D,OAAO,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,+BAA+B,CAAC;AACpE,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,uBAAuB,EAAE,EAC9B,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEtC,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACxD,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CACT,6BAA6B,OAAO,CAAC,MAAM,4CAA4C,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,eAAe,GAAG,CAAC,IAAI,YAAY,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CACT,aAAa,YAAY,CAAC,eAAe,gCAAgC,YAAY,CAAC,cAAc,cAAc,CACnH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3C,IAAI,UAAU,EAAE,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,wBAAwB;AACxB,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAEvE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;IACzD,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB,IAAI,EAAE,EAAE,0CAA0C;CACvE,CAAC;AAEF,qCAAqC;AACrC,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,CACN,MAA0B,EAC1B,QAAsD,EACtD,EAAE;QACF,oDAAoD;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,iDAAiD;QACjD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,6CAA6C;QAC7C,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,2FAA2F;YAC3F,MAAM,kBAAkB,GACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBACrC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;YACpC,MAAM,eAAe,GACnB,MAAM;gBACN,uHAAuH,CAAC,IAAI,CAC1H,MAAM,CACP,CAAC;YAEJ,IAAI,kBAAkB,IAAI,eAAe,EAAE,CAAC;gBAC1C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF,sBAAsB;AACtB,GAAG,CAAC,GAAG,CACL,MAAM,CAAC;IACL,0EAA0E;IAC1E,sBAAsB;IACtB,yBAAyB,EAAE,KAAK;IAEhC,uDAAuD;IACvD,qBAAqB,EAAE;QACrB,UAAU,EAAE;YACV,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,SAAS,EAAE;gBACT,QAAQ;gBACR,mCAAmC;gBACnC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBACvC,CAAC,CAAC,EAAE,CAAC,uBAAuB;oBAC5B,CAAC,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAAE,sBAAsB;aAClE;YACD,QAAQ,EAAE;gBACR,QAAQ;gBACR,iBAAiB,EAAE,+CAA+C;gBAClE,8BAA8B;aAC/B;YACD,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9C,UAAU,EAAE;gBACV,QAAQ;gBACR,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,OAAO;gBACP,yDAAyD;gBACzD,kBAAkB,IAAI,EAAE;gBACxB,mBAAmB,IAAI,EAAE;gBACzB,uBAAuB;gBACvB,wBAAwB;gBACxB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBACvC,CAAC,CAAC;wBACE,oBAAoB;wBACpB,kBAAkB;wBAClB,sBAAsB;wBACtB,oBAAoB;qBACrB;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;YACD,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,2BAA2B,CAAC;YACzD,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YACtC,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,QAAQ,EAAE,CAAC,QAAQ,EAAE,mCAAmC,CAAC;YACzD,cAAc,EAAE,CAAC,QAAQ,CAAC;YAC1B,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,wEAAwE;YACxE,wBAAwB;YACxB,uBAAuB,EAAE,IAAI;YAC7B,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,CAAC,QAAQ,CAAC;YACvB,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC/B;KACF;IAED,6DAA6D;IAC7D,IAAI,EACF,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QAC9D,CAAC,CAAC;YACE,MAAM,EAAE,QAAQ,EAAE,SAAS;YAC3B,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,IAAI;SACd;QACH,CAAC,CAAC,KAAK,EAAE,iCAAiC;IAE9C,uBAAuB;IACvB,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAC9B,6BAA6B;IAC7B,OAAO,EAAE,IAAI;IACb,2BAA2B;IAC3B,aAAa,EAAE,IAAI;IACnB,sBAAsB;IACtB,SAAS,EAAE,IAAI;CAChB,CAAC,CACH,CAAC;AAEF,qBAAqB;AACrB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC;IACH,GAAG,UAAU;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAClD,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IACjD,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AAEF,UAAU;AACV,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IACpC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvB,eAAe;AACf,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEhD,wBAAwB;AACxB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9B,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gCAAgC;QACzC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,qEAAqE;AACrE,oCAAoC;AAEpC,2CAA2C;AAC3C,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,sBAAsB,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,iBAAiB,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,KAAK,EAAE,sFAAsF;IAClG,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,oBAAoB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,eAAe,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,kEAAkE;IAC5E,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8FAA8F;AAC9F,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,EAAE,EAAE,iFAAiF;IAC1F,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,eAAe,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,IAAI,EAAE,iFAAiF;IAC5F,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,cAAc,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,6DAA6D;KACrE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EACH,0EAA0E;KAC7E;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,oBAAoB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,qDAAqD;IAC/D,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,oEAAoE;KAC5E;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,eAAe,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,4EAA4E;IAC5E,2EAA2E;IAC3E,GAAG,EAAE,IAAI;IACT,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,8DAA8D;KACtE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,8DAA8D;AAC9D,MAAM,0BAA0B,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,EAAE,GAAG,IAAI;IACnB,GAAG,EAAE,GAAG;IACR,sBAAsB,EAAE,IAAI;IAC5B,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,8DAA8D;KACtE;IACD,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,gFAAgF;AAChF,kCAAkC;AAClC,MAAM,sBAAsB,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,GAAG,CAAC,EAAE;QAClB,MAAM,MAAM,GAAI,GAA4B,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1D,OAAO,MAAM;YACX,CAAC,CAAC,QAAQ,MAAM,EAAE;YAClB,CAAC,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,mDAAmD;KAC3D;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACnE,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACxD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC1E,GAAG,CAAC,GAAG,CACL,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,CAClB,CAAC;AACF,GAAG,CAAC,GAAG,CACL,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,sBAAsB,EACtB,YAAY,CACb,CAAC;AACF,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AAC7C,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC3E,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC7D,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC7E,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACnC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;AACtD,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAClE,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AAClD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAEhD,kEAAkE;AAClE,IACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACrC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EACrC,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;QAEtD,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,SAAS,CAAC;YAClC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACvC,GAAG,EAAE,IAAI,EAAE,8CAA8C;YACzD,OAAO,EAAE,4CAA4C;YACrD,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAEzD,yDAAyD;QACzD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE9D,aAAa;QACb,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC5C,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzD,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,+DAA+D,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEtB,qBAAqB;AACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAEhC,eAAe;AACf,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;IAC5C,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;IACvC,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjB,kCAAkC;IAClC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QAC1C,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACxC,MAAM,GAAG,GACP,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAC3B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;oBAC5B,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,UAAU,CAAC;YACnB,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAE9C,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAE5C,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAED,qCAAqC;IACrC,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,oFAAoF,CACrF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,MAAM,QAAQ,GAAG,CAAC,MAA4B,EAAQ,EAAE;IACtD,IAAI,eAAe;QAAE,OAAO;IAC5B,eAAe,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,4CAA4C,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAY,OAAO,CAAC,EAAE;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAM,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CACT,kBAAkB,MAAM,CAAC,MAAM,qCAAqC,CACrE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/C,eAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAe,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAM3E,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CA+Bd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAkCd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAgBd,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAe,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAM3E,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAuDd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAsCd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,oBAAoB,EACzB,KAAK,QAAQ,EACb,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAuBd,CAAC"}
@@ -40,7 +40,30 @@ export const authenticate = async (req, res, next) => {
40
40
  });
41
41
  return;
42
42
  }
43
- req.user = payload;
43
+ const currentUser = userModel.getUserById(payload.userId);
44
+ if (!currentUser) {
45
+ res.status(401).json({
46
+ success: false,
47
+ message: 'The account for this session no longer exists',
48
+ });
49
+ return;
50
+ }
51
+ if (currentUser.status !== 'active') {
52
+ res.status(403).json({
53
+ success: false,
54
+ code: 'ACCOUNT_PENDING',
55
+ message: 'Your account is waiting for administrator approval',
56
+ });
57
+ return;
58
+ }
59
+ // Refresh identity and role from the database on every request. A deleted
60
+ // account is rejected above, and role changes take effect without waiting
61
+ // for the JWT to expire.
62
+ req.user = {
63
+ userId: currentUser.id,
64
+ username: currentUser.username,
65
+ role: currentUser.role,
66
+ };
44
67
  next();
45
68
  }
46
69
  catch (error) {
@@ -64,7 +87,9 @@ export const requireAdmin = async (req, res, next) => {
64
87
  }
65
88
  try {
66
89
  const currentUser = userModel.getUserById(req.user.userId);
67
- if (!currentUser || currentUser.role !== 'admin') {
90
+ if (!currentUser ||
91
+ currentUser.status !== 'active' ||
92
+ currentUser.role !== 'admin') {
68
93
  res.status(403).json({
69
94
  success: false,
70
95
  message: 'Admin access required',
@@ -98,7 +123,14 @@ export const optionalAuth = async (req, res, next) => {
98
123
  const token = authHeader.substring(7);
99
124
  const payload = authService.verifyToken(token);
100
125
  if (payload) {
101
- req.user = payload;
126
+ const currentUser = userModel.getUserById(payload.userId);
127
+ if (currentUser?.status === 'active') {
128
+ req.user = {
129
+ userId: currentUser.id,
130
+ username: currentUser.username,
131
+ role: currentUser.role,
132
+ };
133
+ }
102
134
  }
103
135
  }
104
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
+ export type AccountStatus = 'pending' | 'active';
1
2
  export interface User {
2
3
  id: string;
3
4
  username: string;
4
5
  email: string | null;
5
6
  password_hash: string;
6
7
  role: 'admin' | 'user';
8
+ account_status: AccountStatus;
9
+ approved_at: number | null;
10
+ approved_by: string | null;
7
11
  avatar: string | null;
8
12
  created_at: number;
9
13
  updated_at: number;
@@ -13,6 +17,7 @@ export interface UserCreateData {
13
17
  email: string | null;
14
18
  password: string;
15
19
  role: 'admin' | 'user';
20
+ accountStatus?: AccountStatus;
16
21
  avatar?: string | null;
17
22
  }
18
23
  export interface UserUpdateData {
@@ -27,6 +32,9 @@ export interface UserPublic {
27
32
  username: string;
28
33
  email: string | null;
29
34
  role: 'admin' | 'user';
35
+ status: AccountStatus;
36
+ approvedAt: string | null;
37
+ approvedBy: string | null;
30
38
  avatar: string | null;
31
39
  createdAt: string;
32
40
  updatedAt: string;
@@ -37,6 +45,7 @@ export declare class UserModel {
37
45
  * Ensure database is available
38
46
  */
39
47
  private ensureDatabase;
48
+ private toPublic;
40
49
  /**
41
50
  * Get all users (excluding the default system user)
42
51
  */
@@ -53,6 +62,20 @@ export declare class UserModel {
53
62
  * Create a new user
54
63
  */
55
64
  createUser(userData: UserCreateData): Promise<UserPublic>;
65
+ /**
66
+ * Atomically decide whether a public registration is the bootstrap
67
+ * administrator or a pending user. Hashing happens before the transaction,
68
+ * while the count and insert stay serialized to prevent two first admins.
69
+ */
70
+ createPublicUser(userData: Omit<UserCreateData, 'role' | 'accountStatus'>): Promise<UserPublic>;
71
+ private insertUser;
72
+ /** Activate a pending account and record the administrator who reviewed it. */
73
+ approveUser(id: string, approvedBy: string): UserPublic | null;
74
+ /** Return the durable state used by the administrator notification badge. */
75
+ getPendingApprovalSummary(): {
76
+ count: number;
77
+ latestCreatedAt: string | null;
78
+ };
56
79
  /**
57
80
  * Update a user
58
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"userModel.d.ts","sourceRoot":"","sources":["../../src/models/userModel.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,EAAE,CAAqB;IAE/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAqB3B;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAsB1C;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAWhD;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAiC/D;;OAEG;IACG,UAAU,CACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAsD7B;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAO/B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQvB;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMzC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAMnC;;OAEG;IACH,YAAY,IAAI,MAAM;IAStB;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAG3B;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
1
+ {"version":3,"file":"userModel.d.ts","sourceRoot":"","sources":["../../src/models/userModel.ts"],"names":[],"mappings":"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"}