libre-webui 0.17.0 → 0.19.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 (438) hide show
  1. package/README.md +30 -17
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +195 -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 +48 -19
  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/middleware/index.d.ts.map +1 -1
  12. package/backend/dist/models/personaModel.d.ts.map +1 -1
  13. package/backend/dist/models/personaModel.js.map +1 -1
  14. package/backend/dist/models/userModel.d.ts +24 -0
  15. package/backend/dist/models/userModel.d.ts.map +1 -1
  16. package/backend/dist/models/userModel.js +92 -24
  17. package/backend/dist/models/userModel.js.map +1 -1
  18. package/backend/dist/routes/agentCli.d.ts.map +1 -1
  19. package/backend/dist/routes/agentCli.js +4 -2
  20. package/backend/dist/routes/agentCli.js.map +1 -1
  21. package/backend/dist/routes/auth.d.ts.map +1 -1
  22. package/backend/dist/routes/auth.js +118 -55
  23. package/backend/dist/routes/auth.js.map +1 -1
  24. package/backend/dist/routes/chat.d.ts.map +1 -1
  25. package/backend/dist/routes/chat.js +106 -3
  26. package/backend/dist/routes/chat.js.map +1 -1
  27. package/backend/dist/routes/documents.d.ts.map +1 -1
  28. package/backend/dist/routes/documents.js +179 -41
  29. package/backend/dist/routes/documents.js.map +1 -1
  30. package/backend/dist/routes/embeddings.d.ts.map +1 -1
  31. package/backend/dist/routes/embeddings.js +2 -2
  32. package/backend/dist/routes/embeddings.js.map +1 -1
  33. package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
  34. package/backend/dist/routes/huggingfaceHub.js +3 -1
  35. package/backend/dist/routes/huggingfaceHub.js.map +1 -1
  36. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  37. package/backend/dist/routes/imageGen.js +2 -0
  38. package/backend/dist/routes/imageGen.js.map +1 -1
  39. package/backend/dist/routes/libreClaw.d.ts.map +1 -1
  40. package/backend/dist/routes/media.d.ts +3 -0
  41. package/backend/dist/routes/media.d.ts.map +1 -0
  42. package/backend/dist/routes/media.js +429 -0
  43. package/backend/dist/routes/media.js.map +1 -0
  44. package/backend/dist/routes/notes.d.ts +3 -0
  45. package/backend/dist/routes/notes.d.ts.map +1 -0
  46. package/backend/dist/routes/notes.js +121 -0
  47. package/backend/dist/routes/notes.js.map +1 -0
  48. package/backend/dist/routes/ollama.d.ts.map +1 -1
  49. package/backend/dist/routes/ollama.js +17 -85
  50. package/backend/dist/routes/ollama.js.map +1 -1
  51. package/backend/dist/routes/personas.d.ts.map +1 -1
  52. package/backend/dist/routes/personas.js +2 -0
  53. package/backend/dist/routes/personas.js.map +1 -1
  54. package/backend/dist/routes/plugins.d.ts.map +1 -1
  55. package/backend/dist/routes/plugins.js +28 -0
  56. package/backend/dist/routes/plugins.js.map +1 -1
  57. package/backend/dist/routes/preferences.d.ts.map +1 -1
  58. package/backend/dist/routes/systemDiagnostics.d.ts +3 -0
  59. package/backend/dist/routes/systemDiagnostics.d.ts.map +1 -0
  60. package/backend/dist/routes/systemDiagnostics.js +49 -0
  61. package/backend/dist/routes/systemDiagnostics.js.map +1 -0
  62. package/backend/dist/routes/tts.d.ts.map +1 -1
  63. package/backend/dist/routes/tts.js +4 -0
  64. package/backend/dist/routes/tts.js.map +1 -1
  65. package/backend/dist/routes/users.d.ts.map +1 -1
  66. package/backend/dist/routes/users.js +79 -0
  67. package/backend/dist/routes/users.js.map +1 -1
  68. package/backend/dist/routes/work.d.ts.map +1 -1
  69. package/backend/dist/routes/work.js +84 -0
  70. package/backend/dist/routes/work.js.map +1 -1
  71. package/backend/dist/services/agentCliService.d.ts +37 -4
  72. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  73. package/backend/dist/services/agentCliService.js +229 -10
  74. package/backend/dist/services/agentCliService.js.map +1 -1
  75. package/backend/dist/services/assistantCompletionService.d.ts.map +1 -1
  76. package/backend/dist/services/authService.d.ts +15 -9
  77. package/backend/dist/services/authService.d.ts.map +1 -1
  78. package/backend/dist/services/authService.js +39 -29
  79. package/backend/dist/services/authService.js.map +1 -1
  80. package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
  81. package/backend/dist/services/chatGenerationService.js +3 -3
  82. package/backend/dist/services/chatGenerationService.js.map +1 -1
  83. package/backend/dist/services/chatRequestService.d.ts +8 -2
  84. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  85. package/backend/dist/services/chatRequestService.js +30 -3
  86. package/backend/dist/services/chatRequestService.js.map +1 -1
  87. package/backend/dist/services/chatService.d.ts +6 -1
  88. package/backend/dist/services/chatService.d.ts.map +1 -1
  89. package/backend/dist/services/chatService.js +54 -1
  90. package/backend/dist/services/chatService.js.map +1 -1
  91. package/backend/dist/services/codexOAuthService.d.ts +22 -0
  92. package/backend/dist/services/codexOAuthService.d.ts.map +1 -0
  93. package/backend/dist/services/codexOAuthService.js +176 -0
  94. package/backend/dist/services/codexOAuthService.js.map +1 -0
  95. package/backend/dist/services/documentService.d.ts +17 -10
  96. package/backend/dist/services/documentService.d.ts.map +1 -1
  97. package/backend/dist/services/documentService.js +79 -58
  98. package/backend/dist/services/documentService.js.map +1 -1
  99. package/backend/dist/services/embeddingService.d.ts.map +1 -1
  100. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  101. package/backend/dist/services/encryptionService.js +18 -8
  102. package/backend/dist/services/encryptionService.js.map +1 -1
  103. package/backend/dist/services/followUpService.d.ts +44 -0
  104. package/backend/dist/services/followUpService.d.ts.map +1 -0
  105. package/backend/dist/services/followUpService.js +123 -0
  106. package/backend/dist/services/followUpService.js.map +1 -0
  107. package/backend/dist/services/galleryService.d.ts +23 -1
  108. package/backend/dist/services/galleryService.d.ts.map +1 -1
  109. package/backend/dist/services/galleryService.js +125 -8
  110. package/backend/dist/services/galleryService.js.map +1 -1
  111. package/backend/dist/services/libreClawService.d.ts.map +1 -1
  112. package/backend/dist/services/mediaGenerationJobService.d.ts +25 -0
  113. package/backend/dist/services/mediaGenerationJobService.d.ts.map +1 -0
  114. package/backend/dist/services/mediaGenerationJobService.js +82 -0
  115. package/backend/dist/services/mediaGenerationJobService.js.map +1 -0
  116. package/backend/dist/services/memoryService.d.ts.map +1 -1
  117. package/backend/dist/services/memoryService.js.map +1 -1
  118. package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
  119. package/backend/dist/services/oauthSecurity.d.ts +14 -0
  120. package/backend/dist/services/oauthSecurity.d.ts.map +1 -0
  121. package/backend/dist/services/oauthSecurity.js +101 -0
  122. package/backend/dist/services/oauthSecurity.js.map +1 -0
  123. package/backend/dist/services/ollamaService.d.ts +8 -2
  124. package/backend/dist/services/ollamaService.d.ts.map +1 -1
  125. package/backend/dist/services/ollamaService.js +40 -2
  126. package/backend/dist/services/ollamaService.js.map +1 -1
  127. package/backend/dist/services/personaService.d.ts.map +1 -1
  128. package/backend/dist/services/personaService.js.map +1 -1
  129. package/backend/dist/services/pluginActivationService.d.ts.map +1 -1
  130. package/backend/dist/services/pluginActivationService.js.map +1 -1
  131. package/backend/dist/services/pluginAudioGenerationService.d.ts +34 -0
  132. package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -0
  133. package/backend/dist/services/pluginAudioGenerationService.js +211 -0
  134. package/backend/dist/services/pluginAudioGenerationService.js.map +1 -0
  135. package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -1
  136. package/backend/dist/services/pluginCapabilityRegistryService.js +6 -0
  137. package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -1
  138. package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
  139. package/backend/dist/services/pluginEmbeddingService.d.ts +2 -0
  140. package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
  141. package/backend/dist/services/pluginEmbeddingService.js +66 -35
  142. package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
  143. package/backend/dist/services/pluginImageGenerationService.d.ts +2 -0
  144. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  145. package/backend/dist/services/pluginImageGenerationService.js +63 -38
  146. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  147. package/backend/dist/services/pluginService.d.ts +43 -1
  148. package/backend/dist/services/pluginService.d.ts.map +1 -1
  149. package/backend/dist/services/pluginService.js +441 -71
  150. package/backend/dist/services/pluginService.js.map +1 -1
  151. package/backend/dist/services/pluginTTSService.d.ts +2 -0
  152. package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
  153. package/backend/dist/services/pluginTTSService.js +27 -2
  154. package/backend/dist/services/pluginTTSService.js.map +1 -1
  155. package/backend/dist/services/pluginUsageService.d.ts +100 -0
  156. package/backend/dist/services/pluginUsageService.d.ts.map +1 -0
  157. package/backend/dist/services/pluginUsageService.js +291 -0
  158. package/backend/dist/services/pluginUsageService.js.map +1 -0
  159. package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
  160. package/backend/dist/services/pluginVariablesService.js.map +1 -1
  161. package/backend/dist/services/pluginVideoGenerationService.d.ts +45 -0
  162. package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -0
  163. package/backend/dist/services/pluginVideoGenerationService.js +198 -0
  164. package/backend/dist/services/pluginVideoGenerationService.js.map +1 -0
  165. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  166. package/backend/dist/services/preferencesService.js +16 -1
  167. package/backend/dist/services/preferencesService.js.map +1 -1
  168. package/backend/dist/services/registrationPolicy.d.ts +5 -0
  169. package/backend/dist/services/registrationPolicy.d.ts.map +1 -0
  170. package/backend/dist/services/registrationPolicy.js +21 -0
  171. package/backend/dist/services/registrationPolicy.js.map +1 -0
  172. package/backend/dist/services/simpleGitHubOAuth.d.ts +1 -1
  173. package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
  174. package/backend/dist/services/simpleGitHubOAuth.js +13 -13
  175. package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
  176. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts +1 -1
  177. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
  178. package/backend/dist/services/simpleHuggingFaceOAuth.js +12 -17
  179. package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
  180. package/backend/dist/services/systemDiagnosticsService.d.ts +117 -0
  181. package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -0
  182. package/backend/dist/services/systemDiagnosticsService.js +326 -0
  183. package/backend/dist/services/systemDiagnosticsService.js.map +1 -0
  184. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  185. package/backend/dist/services/turnstileService.d.ts +2 -1
  186. package/backend/dist/services/turnstileService.d.ts.map +1 -1
  187. package/backend/dist/services/turnstileService.js +28 -2
  188. package/backend/dist/services/turnstileService.js.map +1 -1
  189. package/backend/dist/services/userService.d.ts +1 -0
  190. package/backend/dist/services/userService.js +1 -1
  191. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  192. package/backend/dist/services/workAgentService.js.map +1 -1
  193. package/backend/dist/services/workEventService.d.ts.map +1 -1
  194. package/backend/dist/services/workEventService.js.map +1 -1
  195. package/backend/dist/services/workHostWorkspaceService.d.ts.map +1 -1
  196. package/backend/dist/services/workModelProviderService.d.ts +3 -0
  197. package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
  198. package/backend/dist/services/workModelProviderService.js +67 -10
  199. package/backend/dist/services/workModelProviderService.js.map +1 -1
  200. package/backend/dist/services/workPreviewProxyService.d.ts +27 -0
  201. package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -0
  202. package/backend/dist/services/workPreviewProxyService.js +514 -0
  203. package/backend/dist/services/workPreviewProxyService.js.map +1 -0
  204. package/backend/dist/services/workRuntimeService.d.ts +28 -7
  205. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  206. package/backend/dist/services/workRuntimeService.js +287 -8
  207. package/backend/dist/services/workRuntimeService.js.map +1 -1
  208. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  209. package/backend/dist/services/workTaskService.js.map +1 -1
  210. package/backend/dist/services/workTerminalService.d.ts +1 -1
  211. package/backend/dist/services/workTerminalService.d.ts.map +1 -1
  212. package/backend/dist/services/workTerminalService.js.map +1 -1
  213. package/backend/dist/storage.d.ts +12 -1
  214. package/backend/dist/storage.d.ts.map +1 -1
  215. package/backend/dist/storage.js +183 -9
  216. package/backend/dist/storage.js.map +1 -1
  217. package/backend/dist/storageMappers.d.ts +13 -0
  218. package/backend/dist/storageMappers.d.ts.map +1 -1
  219. package/backend/dist/storageMappers.js +5 -0
  220. package/backend/dist/storageMappers.js.map +1 -1
  221. package/backend/dist/types/index.d.ts +106 -1
  222. package/backend/dist/types/index.d.ts.map +1 -1
  223. package/backend/dist/types/index.js.map +1 -1
  224. package/backend/dist/types/work.d.ts +31 -0
  225. package/backend/dist/types/work.d.ts.map +1 -1
  226. package/backend/dist/utils/chatContext.js.map +1 -1
  227. package/backend/dist/utils/chatDocumentContext.d.ts +1 -1
  228. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  229. package/backend/dist/utils/chatDocumentContext.js +9 -4
  230. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  231. package/backend/dist/utils/chatProviderSelection.d.ts.map +1 -1
  232. package/backend/dist/utils/generationUtils.d.ts.map +1 -1
  233. package/backend/dist/utils/hash.d.ts.map +1 -1
  234. package/backend/dist/utils/hash.js +13 -2
  235. package/backend/dist/utils/hash.js.map +1 -1
  236. package/backend/dist/utils/logger.d.ts +1 -1
  237. package/backend/dist/utils/logger.d.ts.map +1 -1
  238. package/backend/dist/utils/ollamaStreaming.d.ts +6 -2
  239. package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -1
  240. package/backend/dist/utils/ollamaStreaming.js +12 -2
  241. package/backend/dist/utils/ollamaStreaming.js.map +1 -1
  242. package/backend/dist/utils/openAIResponsesAdapter.js.map +1 -1
  243. package/backend/dist/utils/packagePaths.js.map +1 -1
  244. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  245. package/backend/dist/utils/pluginChatAdapter.js +11 -4
  246. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  247. package/backend/dist/utils/pluginChatContext.js.map +1 -1
  248. package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
  249. package/backend/dist/utils/pluginDefinitionTrust.js +2 -1
  250. package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
  251. package/backend/dist/utils/pluginStreamAdapter.d.ts +10 -1
  252. package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -1
  253. package/backend/dist/utils/pluginStreamAdapter.js +30 -23
  254. package/backend/dist/utils/pluginStreamAdapter.js.map +1 -1
  255. package/backend/dist/utils/pluginValidation.d.ts +4 -3
  256. package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
  257. package/backend/dist/utils/pluginValidation.js +47 -2
  258. package/backend/dist/utils/pluginValidation.js.map +1 -1
  259. package/backend/dist/utils/resourceLimits.d.ts +10 -0
  260. package/backend/dist/utils/resourceLimits.d.ts.map +1 -0
  261. package/backend/dist/utils/resourceLimits.js +29 -0
  262. package/backend/dist/utils/resourceLimits.js.map +1 -0
  263. package/backend/dist/utils/thinkingPhaseTimer.d.ts +21 -0
  264. package/backend/dist/utils/thinkingPhaseTimer.d.ts.map +1 -0
  265. package/backend/dist/utils/thinkingPhaseTimer.js +84 -0
  266. package/backend/dist/utils/thinkingPhaseTimer.js.map +1 -0
  267. package/backend/dist/utils/webpageFetcher.d.ts +25 -0
  268. package/backend/dist/utils/webpageFetcher.d.ts.map +1 -0
  269. package/backend/dist/utils/webpageFetcher.js +231 -0
  270. package/backend/dist/utils/webpageFetcher.js.map +1 -0
  271. package/backend/dist/utils/websocketMessages.js.map +1 -1
  272. package/backend/dist/utils/workGit.d.ts +14 -0
  273. package/backend/dist/utils/workGit.d.ts.map +1 -0
  274. package/backend/dist/utils/workGit.js +207 -0
  275. package/backend/dist/utils/workGit.js.map +1 -0
  276. package/backend/dist/websocketServer.d.ts +1 -0
  277. package/backend/dist/websocketServer.d.ts.map +1 -1
  278. package/backend/dist/websocketServer.js +110 -25
  279. package/backend/dist/websocketServer.js.map +1 -1
  280. package/backend/dist/workTerminalServer.d.ts.map +1 -1
  281. package/backend/dist/workTerminalServer.js +3 -1
  282. package/backend/dist/workTerminalServer.js.map +1 -1
  283. package/backend/package.json +8 -7
  284. package/bin/cli.js +2 -2
  285. package/frontend/dist/assets/index-CFhy8YLA.css +1 -0
  286. package/frontend/dist/assets/index-_lG_lwU-.js +164 -0
  287. package/frontend/dist/assets/markdown-math-ClQbWekD.css +1 -0
  288. package/frontend/dist/assets/xterm-DHcfr8qj.css +1 -0
  289. package/frontend/dist/index.html +41 -16
  290. package/frontend/dist/js/ArtifactContainer-CjpvtR8G.js +1 -0
  291. package/frontend/dist/js/{ArtifactDemoPage-B4qsvUnF.js → ArtifactDemoPage-yrPXLBQo.js} +1 -1
  292. package/frontend/dist/js/ArtifactSlideOutPanel-DdsL2AOQ.js +1 -0
  293. package/frontend/dist/js/{Button-CRwzOaDZ.js → Button-X9TT9gTD.js} +1 -1
  294. package/frontend/dist/js/ChatPage-D9lWGM8g.js +16 -0
  295. package/frontend/dist/js/FirstTimeSetup-CwLPbHkI.js +1 -0
  296. package/frontend/dist/js/GalleryPage-C9DTdo_-.js +1 -0
  297. package/frontend/dist/js/HomePage-iF44c34e.js +1 -0
  298. package/frontend/dist/js/LibreClawPage-B9wWZIz6.js +1 -0
  299. package/frontend/dist/js/{ModelManagerModals-DMoEav1l.js → ModelManagerModals-D9j9RECi.js} +1 -1
  300. package/frontend/dist/js/ModelSelector-B0RKEJwC.js +1 -0
  301. package/frontend/dist/js/ModelsPage-DJXoIOs8.js +2 -0
  302. package/frontend/dist/js/NotesPage-BTNH6JR2.js +1 -0
  303. package/frontend/dist/js/{OptimizedSyntaxHighlighter-Ci9sRc78.js → OptimizedSyntaxHighlighter-CWYUn9Oe.js} +1 -1
  304. package/frontend/dist/js/PersonasPage--nqoJ-wA.js +13 -0
  305. package/frontend/dist/js/PluginUsagePage-BHwm-BBr.js +1 -0
  306. package/frontend/dist/js/{RichMessageContent-BJ49VN9j.js → RichMessageContent-DYRrXJ75.js} +3 -3
  307. package/frontend/dist/js/SettingsModal-y1Nzg55O.js +1 -0
  308. package/frontend/dist/js/SystemPage-CHez8h3p.js +1 -0
  309. package/frontend/dist/js/UserManagementPage-aJhKXQxG.js +1 -0
  310. package/frontend/dist/js/WorkPage-Ccla0MDm.js +5 -0
  311. package/frontend/dist/js/addon-fit-DIOBYJe3.js +1 -0
  312. package/frontend/dist/js/api-DVP8xiYT.js +19 -0
  313. package/frontend/dist/js/appStore-Cw7PmG-J.js +2 -0
  314. package/frontend/dist/js/ar-ONXFvOB1.js +2 -0
  315. package/frontend/dist/js/artifactHtml-C0Hu9I1u.js +41 -0
  316. package/frontend/dist/js/authStore-gv_MgDKr.js +3 -0
  317. package/frontend/dist/js/babel-CmENXdZw.js +16 -0
  318. package/frontend/dist/js/bn-BLhREPm6.js +2 -0
  319. package/frontend/dist/js/chatStore-DmDbolTg.js +2 -0
  320. package/frontend/dist/js/cs-Bg8E9fG5.js +2 -0
  321. package/frontend/dist/js/da-ODCU8w4x.js +2 -0
  322. package/frontend/dist/js/de-nuGHRJ5N.js +2 -0
  323. package/frontend/dist/js/es-DcN_cwum.js +2 -0
  324. package/frontend/dist/js/estree-DJwQLE88.js +44 -0
  325. package/frontend/dist/js/fr-C-L_xGr5.js +2 -0
  326. package/frontend/dist/js/hi-DUEtwA9G.js +2 -0
  327. package/frontend/dist/js/html-DdAOfeK4.js +25 -0
  328. package/frontend/dist/js/i18n-xir4Zz7C.js +2 -0
  329. package/frontend/dist/js/i18next-DgmgtwsV.js +1 -0
  330. package/frontend/dist/js/id-DNTYhti_.js +2 -0
  331. package/frontend/dist/js/imageGenModels-Dx_QMLJQ.js +1 -0
  332. package/frontend/dist/js/is-Bx28ymbQ.js +2 -0
  333. package/frontend/dist/js/it-BjW-JLlS.js +2 -0
  334. package/frontend/dist/js/ja-uThj4Q1w.js +2 -0
  335. package/frontend/dist/js/ko-DqgmMYXK.js +2 -0
  336. package/frontend/dist/js/logger-DSXjF4ye.js +1 -0
  337. package/frontend/dist/js/markdown-RaVsONor.js +70 -0
  338. package/frontend/dist/js/markdown-core-DHnR5Hw8.js +16 -0
  339. package/frontend/dist/js/markdown-math-B7FlYsmr.js +261 -0
  340. package/frontend/dist/js/messageCodeStyles-cTX0rQGK.js +2 -0
  341. package/frontend/dist/js/ms-R9kt_P0T.js +2 -0
  342. package/frontend/dist/js/nl-BjmtEgpK.js +2 -0
  343. package/frontend/dist/js/pl-C8_gU9r1.js +2 -0
  344. package/frontend/dist/js/postcss-B5WIGhAY.js +62 -0
  345. package/frontend/dist/js/pt-7BJForUD.js +2 -0
  346. package/frontend/dist/js/react-vendor-DPNXrO-8.js +9 -0
  347. package/frontend/dist/js/{rolldown-runtime-QTnfLwEv.js → rolldown-runtime-hePW80VL.js} +1 -1
  348. package/frontend/dist/js/router-vendor-Ca9zqOqT.js +1 -0
  349. package/frontend/dist/js/ru-D2HmhY6Y.js +2 -0
  350. package/frontend/dist/js/{standalone-DmLfI4Qj.js → standalone-B_aPlu7o.js} +8 -8
  351. package/frontend/dist/js/sv-zny3sDBM.js +2 -0
  352. package/frontend/dist/js/syntax-highlight-Ca9bHsaz.js +8 -0
  353. package/frontend/dist/js/th-CAzEKRz8.js +2 -0
  354. package/frontend/dist/js/tr-BmYgtmUo.js +2 -0
  355. package/frontend/dist/js/{typescript-Bcq62agC.js → typescript-Dz4OUZSl.js} +10 -10
  356. package/frontend/dist/js/ui-DDlcz2oy.js +2 -0
  357. package/frontend/dist/js/ui-vendor-D_pYT79f.js +177 -0
  358. package/frontend/dist/js/uk-eiYZ0uRq.js +2 -0
  359. package/frontend/dist/js/useTranslation-CdeLZqSW.js +1 -0
  360. package/frontend/dist/js/utils-BhpNrGnR.js +1 -0
  361. package/frontend/dist/js/utils-vendor-1zob7nK9.js +9 -0
  362. package/frontend/dist/js/vi-C7SVAWpO.js +2 -0
  363. package/frontend/dist/js/welcomePrompts-to5mv_gx.js +1 -0
  364. package/frontend/dist/js/xterm-Da5ppSVt.js +18 -0
  365. package/frontend/dist/js/{yaml-mLy9chOK.js → yaml-QD4znPfZ.js} +20 -20
  366. package/frontend/dist/js/zh-2Q3cQv3s.js +2 -0
  367. package/package.json +20 -13
  368. package/plugins/codex-oauth.json +19 -0
  369. package/plugins/openrouter.json +89 -0
  370. package/backend/dist/services/systemSettingsService.d.ts +0 -12
  371. package/backend/dist/services/systemSettingsService.d.ts.map +0 -1
  372. package/backend/dist/services/systemSettingsService.js +0 -70
  373. package/backend/dist/services/systemSettingsService.js.map +0 -1
  374. package/frontend/dist/assets/index-BqI0kezz.css +0 -1
  375. package/frontend/dist/assets/index-CRC6g6bL.js +0 -3
  376. package/frontend/dist/assets/markdown-math-CYlHEDRF.css +0 -1
  377. package/frontend/dist/assets/xterm-CmMoOwwu.css +0 -1
  378. package/frontend/dist/js/ArtifactContainer-Cdy-973y.js +0 -1
  379. package/frontend/dist/js/ArtifactSlideOutPanel-CmKgQ4eD.js +0 -1
  380. package/frontend/dist/js/ChatPage-CYT69oBR.js +0 -16
  381. package/frontend/dist/js/FirstTimeSetup-C8LdLP5J.js +0 -1
  382. package/frontend/dist/js/GalleryPage-Bm89pnS8.js +0 -1
  383. package/frontend/dist/js/HomePage-CeCYnMUG.js +0 -1
  384. package/frontend/dist/js/LibreClawPage-DGMEV6dm.js +0 -1
  385. package/frontend/dist/js/ModelSelector-DXPdGdQ_.js +0 -1
  386. package/frontend/dist/js/ModelsPage-D-FIy2x-.js +0 -2
  387. package/frontend/dist/js/PersonasPage-CIrEVFo5.js +0 -13
  388. package/frontend/dist/js/SettingsModal-CxtOXPY7.js +0 -1
  389. package/frontend/dist/js/UserManagementPage-BfyYGGFQ.js +0 -1
  390. package/frontend/dist/js/WorkPage-C7bW6Hxx.js +0 -4
  391. package/frontend/dist/js/addon-fit-Cj0_dfHF.js +0 -1
  392. package/frontend/dist/js/api-DCD41-l9.js +0 -19
  393. package/frontend/dist/js/appStore-Bw-8Exsx.js +0 -2
  394. package/frontend/dist/js/ar-BAHlIvy0.js +0 -2
  395. package/frontend/dist/js/artifactHtml-B7Oy2e__.js +0 -27
  396. package/frontend/dist/js/authStore-mOYH_AXI.js +0 -4
  397. package/frontend/dist/js/babel-BnLuavNv.js +0 -16
  398. package/frontend/dist/js/bn-BxquDVbd.js +0 -2
  399. package/frontend/dist/js/cs-C4DoKzRm.js +0 -2
  400. package/frontend/dist/js/da-CFslpGTw.js +0 -2
  401. package/frontend/dist/js/de-ChudoRh2.js +0 -2
  402. package/frontend/dist/js/demoMode-BhEpMVh5.js +0 -1
  403. package/frontend/dist/js/es-B36fefE-.js +0 -2
  404. package/frontend/dist/js/estree-0vwU39qX.js +0 -44
  405. package/frontend/dist/js/fr-BSVeTM5W.js +0 -2
  406. package/frontend/dist/js/hi-BGoFbl5V.js +0 -2
  407. package/frontend/dist/js/html-CApr2Bvi.js +0 -25
  408. package/frontend/dist/js/id-BfYs2p_j.js +0 -2
  409. package/frontend/dist/js/is-DZ1MS-5A.js +0 -2
  410. package/frontend/dist/js/it-CXtrPCG1.js +0 -2
  411. package/frontend/dist/js/ja-FPJ_NK_y.js +0 -2
  412. package/frontend/dist/js/ko-DVwD4ZZF.js +0 -2
  413. package/frontend/dist/js/logger-DbNs3-DK.js +0 -1
  414. package/frontend/dist/js/markdown-C78Qc6xu.js +0 -70
  415. package/frontend/dist/js/markdown-core-GI9BPwrB.js +0 -16
  416. package/frontend/dist/js/markdown-math-E4O1gcxj.js +0 -261
  417. package/frontend/dist/js/ms-PKPP0RX3.js +0 -2
  418. package/frontend/dist/js/nl-DWM5HJZ8.js +0 -2
  419. package/frontend/dist/js/pl-B9va8Tuf.js +0 -2
  420. package/frontend/dist/js/postcss-DSDkwgFE.js +0 -62
  421. package/frontend/dist/js/pt-P0IQi-Zr.js +0 -2
  422. package/frontend/dist/js/react-vendor-DyG_ODzn.js +0 -9
  423. package/frontend/dist/js/router-vendor-BjDI9mRe.js +0 -1
  424. package/frontend/dist/js/ru-Ca2bxYnc.js +0 -2
  425. package/frontend/dist/js/sv-DI4RDwyZ.js +0 -2
  426. package/frontend/dist/js/syntax-highlight-pM1xnNpY.js +0 -8
  427. package/frontend/dist/js/th-DN0bDS9d.js +0 -2
  428. package/frontend/dist/js/tr-ChqMv5Q4.js +0 -2
  429. package/frontend/dist/js/ui-vendor-DohPFHDW.js +0 -177
  430. package/frontend/dist/js/uk-Cr51h_XQ.js +0 -2
  431. package/frontend/dist/js/useBaseQuery-BAOlhjar.js +0 -1
  432. package/frontend/dist/js/useQuery-CcRqxveh.js +0 -1
  433. package/frontend/dist/js/useTranslation-Cs6iTP4m.js +0 -1
  434. package/frontend/dist/js/utils-DmZD5uA3.js +0 -1
  435. package/frontend/dist/js/utils-vendor-Cbaj0BC5.js +0 -9
  436. package/frontend/dist/js/vi-D4OhoVMH.js +0 -2
  437. package/frontend/dist/js/xterm-DKl1QLiw.js +0 -7
  438. package/frontend/dist/js/zh-Bvau7hlR.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"imageGen.js","sourceRoot":"","sources":["../../src/routes/imageGen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageGen.js","sourceRoot":"","sources":["../../src/routes/imageGen.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"libreClaw.d.ts","sourceRoot":"","sources":["../../src/routes/libreClaw.ts"],"names":[],"mappings":"AA0BA,QAAA,MAAM,MAAM,4CAAmB,CAAC;AA8RhC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"libreClaw.d.ts","sourceRoot":"","sources":["../../src/routes/libreClaw.ts"],"names":[],"mappings":"AA0BA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eA8RjB,MAAM"}
@@ -0,0 +1,3 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
3
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/routes/media.ts"],"names":[],"mappings":"AAiBA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eA0gBjB,MAAM"}
@@ -0,0 +1,429 @@
1
+ /*
2
+ * Libre WebUI
3
+ * Copyright (C) 2025 Kroonen AI, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ */
7
+ import express from 'express';
8
+ import rateLimit from 'express-rate-limit';
9
+ import { authenticate } from '../middleware/auth.js';
10
+ import galleryService from '../services/galleryService.js';
11
+ import mediaGenerationJobService from '../services/mediaGenerationJobService.js';
12
+ import pluginService from '../services/pluginService.js';
13
+ import { createLogger } from '../utils/logger.js';
14
+ const logger = createLogger('routes:media');
15
+ const router = express.Router();
16
+ const generationRateLimiter = rateLimit({
17
+ windowMs: 60000,
18
+ max: 10,
19
+ standardHeaders: true,
20
+ legacyHeaders: false,
21
+ });
22
+ const pollingRateLimiter = rateLimit({
23
+ windowMs: 60000,
24
+ max: 60,
25
+ standardHeaders: true,
26
+ legacyHeaders: false,
27
+ });
28
+ const galleryRateLimiter = rateLimit({
29
+ windowMs: 60000,
30
+ max: 120,
31
+ standardHeaders: true,
32
+ legacyHeaders: false,
33
+ });
34
+ // Umbrella limit ahead of authentication; per-route limiters below stay tighter.
35
+ const routerRateLimiter = rateLimit({
36
+ windowMs: 60000,
37
+ max: 240,
38
+ standardHeaders: true,
39
+ legacyHeaders: false,
40
+ });
41
+ router.use(routerRateLimiter);
42
+ router.use(authenticate);
43
+ function userId(req) {
44
+ if (!req.user)
45
+ throw new Error('Authenticated user context is required');
46
+ return req.user.userId;
47
+ }
48
+ router.get('/models', async (req, res) => {
49
+ try {
50
+ const id = userId(req);
51
+ await Promise.all([
52
+ pluginService.refreshStaleCapabilityModels('video', id),
53
+ pluginService.refreshStaleCapabilityModels('tts', id),
54
+ pluginService.refreshStaleCapabilityModels('audio', id),
55
+ ]);
56
+ res.json({
57
+ success: true,
58
+ data: {
59
+ video: pluginService.getAvailableVideoGenModels(id),
60
+ audio: [
61
+ ...pluginService
62
+ .getAvailableAudioGenModels(id)
63
+ .map(model => ({ ...model, mode: 'sound' })),
64
+ ...pluginService
65
+ .getAvailableTTSModels(id)
66
+ .map(model => ({ ...model, mode: 'speech' })),
67
+ ],
68
+ },
69
+ });
70
+ }
71
+ catch (error) {
72
+ logger.error('Failed to load media generation models:', error);
73
+ res.status(500).json({
74
+ success: false,
75
+ message: 'Failed to load media generation models',
76
+ });
77
+ }
78
+ });
79
+ router.post('/audio/generate', generationRateLimiter, async (req, res) => {
80
+ try {
81
+ const { model, pluginId, input, voice, response_format, speed } = req.body;
82
+ if (typeof model !== 'string' ||
83
+ typeof pluginId !== 'string' ||
84
+ typeof input !== 'string' ||
85
+ input.trim().length === 0) {
86
+ res.status(400).json({
87
+ success: false,
88
+ message: 'model, pluginId, and input are required',
89
+ });
90
+ return;
91
+ }
92
+ const id = userId(req);
93
+ const format = isAudioFormat(response_format) ? response_format : 'mp3';
94
+ const audio = await pluginService.executeTTSRequest(model, input.trim(), {
95
+ pluginId,
96
+ userId: id,
97
+ ...(typeof voice === 'string' && voice ? { voice } : {}),
98
+ ...(typeof speed === 'number' ? { speed } : {}),
99
+ response_format: format,
100
+ });
101
+ const mimeType = audioMimeType(format);
102
+ const mediaData = `data:${mimeType};base64,${audio.toString('base64')}`;
103
+ const saved = galleryService.saveMedia(id, {
104
+ kind: 'audio',
105
+ prompt: input.trim(),
106
+ model,
107
+ pluginId,
108
+ mediaData,
109
+ mimeType,
110
+ metadata: { voice: voice || null, format },
111
+ });
112
+ if (!saved)
113
+ throw new Error('Failed to save generated audio');
114
+ res.json({ success: true, data: publicMedia(saved) });
115
+ }
116
+ catch (error) {
117
+ logger.error('Audio generation failed:', error);
118
+ res.status(500).json({
119
+ success: false,
120
+ message: error instanceof Error ? error.message : 'Audio generation failed',
121
+ });
122
+ }
123
+ });
124
+ router.post('/sound/generate', generationRateLimiter, async (req, res) => {
125
+ try {
126
+ const { model, pluginId, prompt, voice, format } = req.body;
127
+ if (typeof model !== 'string' ||
128
+ typeof pluginId !== 'string' ||
129
+ typeof prompt !== 'string' ||
130
+ prompt.trim().length === 0) {
131
+ res.status(400).json({
132
+ success: false,
133
+ message: 'model, pluginId, and prompt are required',
134
+ });
135
+ return;
136
+ }
137
+ const id = userId(req);
138
+ const generated = await pluginService.executeAudioGenRequest(model, prompt.trim(), {
139
+ pluginId,
140
+ userId: id,
141
+ ...(typeof voice === 'string' && voice ? { voice } : {}),
142
+ ...(isGeneratedAudioFormat(format) ? { format } : {}),
143
+ });
144
+ const mediaData = `data:${generated.mimeType};base64,${generated.audio.toString('base64')}`;
145
+ const saved = galleryService.saveMedia(id, {
146
+ kind: 'audio',
147
+ prompt: prompt.trim(),
148
+ model,
149
+ pluginId,
150
+ mediaData,
151
+ mimeType: generated.mimeType,
152
+ metadata: {
153
+ mode: 'sound',
154
+ voice: voice || null,
155
+ format: format || null,
156
+ transcript: generated.transcript || null,
157
+ },
158
+ });
159
+ if (!saved)
160
+ throw new Error('Failed to save generated audio');
161
+ res.json({ success: true, data: publicMedia(saved) });
162
+ }
163
+ catch (error) {
164
+ logger.error('Audio generation failed:', error);
165
+ res.status(500).json({
166
+ success: false,
167
+ message: error instanceof Error ? error.message : 'Audio generation failed',
168
+ });
169
+ }
170
+ });
171
+ router.post('/video/generate', generationRateLimiter, async (req, res) => {
172
+ try {
173
+ const { model, pluginId, prompt, duration, resolution, aspect_ratio, generate_audio, } = req.body;
174
+ if (typeof model !== 'string' ||
175
+ typeof pluginId !== 'string' ||
176
+ typeof prompt !== 'string' ||
177
+ prompt.trim().length === 0) {
178
+ res.status(400).json({
179
+ success: false,
180
+ message: 'model, pluginId, and prompt are required',
181
+ });
182
+ return;
183
+ }
184
+ const id = userId(req);
185
+ const options = {
186
+ ...(Number.isInteger(duration) && duration > 0 ? { duration } : {}),
187
+ ...(typeof resolution === 'string' && resolution ? { resolution } : {}),
188
+ ...(typeof aspect_ratio === 'string' && aspect_ratio
189
+ ? { aspectRatio: aspect_ratio }
190
+ : {}),
191
+ ...(typeof generate_audio === 'boolean'
192
+ ? { generateAudio: generate_audio }
193
+ : {}),
194
+ };
195
+ const submitted = await pluginService.submitVideoGenRequest(model, prompt.trim(), { pluginId, userId: id, ...options });
196
+ const job = mediaGenerationJobService.create(id, {
197
+ providerJobId: submitted.providerJobId,
198
+ pluginId,
199
+ model,
200
+ prompt: prompt.trim(),
201
+ options,
202
+ });
203
+ res.status(202).json({ success: true, data: publicJob(job) });
204
+ }
205
+ catch (error) {
206
+ logger.error('Video generation submission failed:', error);
207
+ res.status(500).json({
208
+ success: false,
209
+ message: error instanceof Error ? error.message : 'Video generation failed',
210
+ });
211
+ }
212
+ });
213
+ router.get('/video/jobs/:jobId', pollingRateLimiter, async (req, res) => {
214
+ try {
215
+ const id = userId(req);
216
+ const jobId = Array.isArray(req.params.jobId)
217
+ ? req.params.jobId[0]
218
+ : req.params.jobId;
219
+ const job = mediaGenerationJobService.get(jobId, id);
220
+ if (!job) {
221
+ res
222
+ .status(404)
223
+ .json({ success: false, message: 'Video job not found' });
224
+ return;
225
+ }
226
+ if (job.status === 'completed') {
227
+ res.json({
228
+ success: true,
229
+ data: {
230
+ ...publicJob(job),
231
+ media: publicMedia(galleryService.getMediaItem(job.galleryId, id)),
232
+ },
233
+ });
234
+ return;
235
+ }
236
+ if (job.status === 'failed') {
237
+ res.json({ success: true, data: publicJob(job) });
238
+ return;
239
+ }
240
+ const status = await pluginService.pollVideoGenRequest(job.model, job.providerJobId, job.pluginId, id);
241
+ if (status.status === 'failed') {
242
+ mediaGenerationJobService.update(job.id, id, 'failed', {
243
+ error: status.error || 'Video provider reported failure',
244
+ });
245
+ res.json({
246
+ success: true,
247
+ data: { ...publicJob(job), status: 'failed', error: status.error },
248
+ });
249
+ return;
250
+ }
251
+ if (status.status !== 'completed') {
252
+ mediaGenerationJobService.update(job.id, id, status.status);
253
+ res.json({
254
+ success: true,
255
+ data: { ...publicJob(job), status: status.status },
256
+ });
257
+ return;
258
+ }
259
+ const downloaded = await pluginService.downloadVideoGenResult(job.model, job.providerJobId, job.pluginId, id);
260
+ const media = galleryService.saveMedia(id, {
261
+ kind: 'video',
262
+ prompt: job.prompt,
263
+ model: job.model,
264
+ pluginId: job.pluginId,
265
+ mediaData: `data:${downloaded.mimeType};base64,${downloaded.video.toString('base64')}`,
266
+ mimeType: downloaded.mimeType,
267
+ metadata: { ...job.options, usage: status.usage || null },
268
+ });
269
+ if (!media)
270
+ throw new Error('Failed to save generated video');
271
+ mediaGenerationJobService.update(job.id, id, 'completed', {
272
+ galleryId: media.id,
273
+ });
274
+ res.json({
275
+ success: true,
276
+ data: {
277
+ ...publicJob(job),
278
+ status: 'completed',
279
+ media: publicMedia(media),
280
+ },
281
+ });
282
+ }
283
+ catch (error) {
284
+ logger.error('Video generation polling failed:', error);
285
+ res.status(500).json({
286
+ success: false,
287
+ message: error instanceof Error ? error.message : 'Video polling failed',
288
+ });
289
+ }
290
+ });
291
+ router.get('/gallery', galleryRateLimiter, (req, res) => {
292
+ const kind = req.query.kind;
293
+ if (kind && !['image', 'video', 'audio'].includes(String(kind))) {
294
+ res.status(400).json({ success: false, message: 'Invalid media kind' });
295
+ return;
296
+ }
297
+ const result = galleryService.getMedia(userId(req), {
298
+ limit: Number(req.query.limit) || 20,
299
+ offset: Number(req.query.offset) || 0,
300
+ ...(kind ? { kind: kind } : {}),
301
+ });
302
+ res.json({
303
+ success: true,
304
+ data: { ...result, media: result.media.map(publicMedia) },
305
+ });
306
+ });
307
+ router.get('/gallery/:mediaId/content', galleryRateLimiter, (req, res) => {
308
+ const mediaId = Array.isArray(req.params.mediaId)
309
+ ? req.params.mediaId[0]
310
+ : req.params.mediaId;
311
+ const item = galleryService.getMediaItem(mediaId, userId(req));
312
+ if (!item) {
313
+ res.status(404).json({ success: false, message: 'Media not found' });
314
+ return;
315
+ }
316
+ const match = /^data:([a-z0-9.+-]+\/[a-z0-9.+-]+);base64,([a-z0-9+/]+={0,2})$/i.exec(item.mediaData);
317
+ if (match) {
318
+ const encodedMimeType = match[1].toLowerCase();
319
+ if (encodedMimeType !== item.mimeType.toLowerCase() ||
320
+ !isSafeMediaMimeType(item.kind, encodedMimeType)) {
321
+ res
322
+ .status(422)
323
+ .json({ success: false, message: 'Stored media type is invalid' });
324
+ return;
325
+ }
326
+ const data = Buffer.from(match[2], 'base64');
327
+ if (data.length > 200 * 1024 * 1024) {
328
+ res.status(413).json({ success: false, message: 'Media is too large' });
329
+ return;
330
+ }
331
+ res.set({
332
+ 'Content-Type': encodedMimeType,
333
+ 'Content-Length': String(data.length),
334
+ 'Cache-Control': 'private, max-age=300',
335
+ 'Content-Security-Policy': "default-src 'none'; sandbox",
336
+ 'X-Content-Type-Options': 'nosniff',
337
+ });
338
+ res.send(data);
339
+ return;
340
+ }
341
+ try {
342
+ const url = new URL(item.mediaData);
343
+ if (item.kind !== 'image' ||
344
+ (url.protocol !== 'http:' && url.protocol !== 'https:')) {
345
+ throw new Error();
346
+ }
347
+ res.redirect(302, url.toString());
348
+ }
349
+ catch {
350
+ res
351
+ .status(422)
352
+ .json({ success: false, message: 'Stored media is invalid' });
353
+ }
354
+ });
355
+ router.delete('/gallery/:mediaId', galleryRateLimiter, (req, res) => {
356
+ const mediaId = Array.isArray(req.params.mediaId)
357
+ ? req.params.mediaId[0]
358
+ : req.params.mediaId;
359
+ const deleted = galleryService.deleteMedia(mediaId, userId(req));
360
+ if (!deleted) {
361
+ res.status(404).json({ success: false, message: 'Media not found' });
362
+ return;
363
+ }
364
+ res.json({ success: true });
365
+ });
366
+ function isSafeMediaMimeType(kind, mimeType) {
367
+ const allowed = {
368
+ image: new Set([
369
+ 'image/avif',
370
+ 'image/gif',
371
+ 'image/jpeg',
372
+ 'image/png',
373
+ 'image/webp',
374
+ ]),
375
+ video: new Set(['video/mp4', 'video/quicktime', 'video/webm']),
376
+ audio: new Set([
377
+ 'audio/aac',
378
+ 'audio/flac',
379
+ 'audio/l16',
380
+ 'audio/mpeg',
381
+ 'audio/mp4',
382
+ 'audio/ogg',
383
+ 'audio/opus',
384
+ 'audio/wav',
385
+ 'audio/webm',
386
+ ]),
387
+ };
388
+ return allowed[kind].has(mimeType.toLowerCase());
389
+ }
390
+ function audioMimeType(format) {
391
+ return ({
392
+ mp3: 'audio/mpeg',
393
+ pcm: 'audio/L16',
394
+ wav: 'audio/wav',
395
+ opus: 'audio/opus',
396
+ aac: 'audio/aac',
397
+ flac: 'audio/flac',
398
+ }[format] || 'audio/mpeg');
399
+ }
400
+ function isAudioFormat(value) {
401
+ return (typeof value === 'string' &&
402
+ ['mp3', 'opus', 'aac', 'flac', 'wav', 'pcm'].includes(value));
403
+ }
404
+ function isGeneratedAudioFormat(value) {
405
+ return (typeof value === 'string' &&
406
+ ['wav', 'mp3', 'flac', 'opus', 'pcm16'].includes(value));
407
+ }
408
+ function publicJob(job) {
409
+ return {
410
+ id: job.id,
411
+ status: job.status,
412
+ model: job.model,
413
+ pluginId: job.pluginId,
414
+ galleryId: job.galleryId,
415
+ error: job.error,
416
+ createdAt: job.createdAt,
417
+ updatedAt: job.updatedAt,
418
+ };
419
+ }
420
+ function publicMedia(media) {
421
+ return media
422
+ ? {
423
+ ...media,
424
+ mediaData: `/api/media/gallery/${encodeURIComponent(media.id)}/content`,
425
+ }
426
+ : null;
427
+ }
428
+ export default router;
429
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/routes/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
3
+ //# sourceMappingURL=notes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../src/routes/notes.ts"],"names":[],"mappings":"AA4BA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eA+HjB,MAAM"}
@@ -0,0 +1,121 @@
1
+ /*
2
+ * Libre WebUI
3
+ * Copyright (C) 2025 Kroonen AI, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at:
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import express from 'express';
18
+ import { v4 as uuidv4 } from 'uuid';
19
+ import storageService from '../storage.js';
20
+ import { authenticate } from '../middleware/auth.js';
21
+ import { MAX_NOTE_CONTENT_LENGTH, MAX_NOTE_TITLE_LENGTH, ResourcePolicyError, } from '../utils/resourceLimits.js';
22
+ const router = express.Router();
23
+ router.use(authenticate);
24
+ const userIdOf = (req) => req.user?.userId || 'default';
25
+ function sendNoteError(res, error, fallback) {
26
+ if (error instanceof ResourcePolicyError) {
27
+ res.status(error.statusCode).json({ success: false, error: error.message });
28
+ return;
29
+ }
30
+ res.status(500).json({
31
+ success: false,
32
+ error: error instanceof Error ? error.message : fallback,
33
+ });
34
+ }
35
+ function readNoteField(value, field, maximum) {
36
+ if (value === undefined)
37
+ return '';
38
+ if (typeof value !== 'string') {
39
+ throw new ResourcePolicyError(`${field} must be a string`, 400);
40
+ }
41
+ if (value.length > maximum) {
42
+ throw new ResourcePolicyError(`${field} exceeds the maximum length of ${maximum} characters`, 400);
43
+ }
44
+ return value;
45
+ }
46
+ router.get('/', (req, res) => {
47
+ try {
48
+ res.json({
49
+ success: true,
50
+ data: storageService.getNotes(userIdOf(req)),
51
+ });
52
+ }
53
+ catch (error) {
54
+ sendNoteError(res, error, 'Failed to load notes');
55
+ }
56
+ });
57
+ router.post('/', (req, res) => {
58
+ try {
59
+ const { title, content } = req.body;
60
+ const now = Date.now();
61
+ const note = {
62
+ id: uuidv4(),
63
+ title: readNoteField(title, 'title', MAX_NOTE_TITLE_LENGTH),
64
+ content: readNoteField(content, 'content', MAX_NOTE_CONTENT_LENGTH),
65
+ createdAt: now,
66
+ updatedAt: now,
67
+ };
68
+ storageService.saveNote(note, userIdOf(req));
69
+ res.json({ success: true, data: note });
70
+ }
71
+ catch (error) {
72
+ sendNoteError(res, error, 'Failed to create note');
73
+ }
74
+ });
75
+ router.put('/:noteId', (req, res) => {
76
+ try {
77
+ const userId = userIdOf(req);
78
+ const existing = storageService.getNote(req.params.noteId, userId);
79
+ if (!existing) {
80
+ res.status(404).json({
81
+ success: false,
82
+ error: 'Note not found',
83
+ });
84
+ return;
85
+ }
86
+ const { title, content } = req.body;
87
+ const updated = {
88
+ ...existing,
89
+ title: title !== undefined
90
+ ? readNoteField(title, 'title', MAX_NOTE_TITLE_LENGTH)
91
+ : existing.title,
92
+ content: content !== undefined
93
+ ? readNoteField(content, 'content', MAX_NOTE_CONTENT_LENGTH)
94
+ : existing.content,
95
+ updatedAt: Date.now(),
96
+ };
97
+ storageService.saveNote(updated, userId);
98
+ res.json({ success: true, data: updated });
99
+ }
100
+ catch (error) {
101
+ sendNoteError(res, error, 'Failed to update note');
102
+ }
103
+ });
104
+ router.delete('/:noteId', (req, res) => {
105
+ try {
106
+ const deleted = storageService.deleteNote(req.params.noteId, userIdOf(req));
107
+ if (!deleted) {
108
+ res.status(404).json({
109
+ success: false,
110
+ error: 'Note not found',
111
+ });
112
+ return;
113
+ }
114
+ res.json({ success: true, message: 'Note deleted' });
115
+ }
116
+ catch (error) {
117
+ sendNoteError(res, error, 'Failed to delete note');
118
+ }
119
+ });
120
+ export default router;
121
+ //# sourceMappingURL=notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../src/routes/notes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/routes/ollama.ts"],"names":[],"mappings":"AA6BA,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAwpBhC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/routes/ollama.ts"],"names":[],"mappings":"AA+BA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAglBjB,MAAM"}