libre-webui 0.8.6 → 0.11.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 +64 -46
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +21 -19
  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 +31 -944
  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 +7 -20
  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/middleware/index.js +4 -2
  13. package/backend/dist/middleware/index.js.map +1 -1
  14. package/backend/dist/models/personaModel.d.ts.map +1 -1
  15. package/backend/dist/models/personaModel.js +11 -9
  16. package/backend/dist/models/personaModel.js.map +1 -1
  17. package/backend/dist/routes/auth.d.ts.map +1 -1
  18. package/backend/dist/routes/auth.js +36 -14
  19. package/backend/dist/routes/auth.js.map +1 -1
  20. package/backend/dist/routes/chat.d.ts.map +1 -1
  21. package/backend/dist/routes/chat.js +61 -242
  22. package/backend/dist/routes/chat.js.map +1 -1
  23. package/backend/dist/routes/documents.d.ts.map +1 -1
  24. package/backend/dist/routes/documents.js +10 -8
  25. package/backend/dist/routes/documents.js.map +1 -1
  26. package/backend/dist/routes/embeddings.d.ts +3 -0
  27. package/backend/dist/routes/embeddings.d.ts.map +1 -0
  28. package/backend/dist/routes/embeddings.js +52 -0
  29. package/backend/dist/routes/embeddings.js.map +1 -0
  30. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  31. package/backend/dist/routes/imageGen.js +9 -7
  32. package/backend/dist/routes/imageGen.js.map +1 -1
  33. package/backend/dist/routes/ollama.d.ts.map +1 -1
  34. package/backend/dist/routes/ollama.js +22 -239
  35. package/backend/dist/routes/ollama.js.map +1 -1
  36. package/backend/dist/routes/personas.d.ts.map +1 -1
  37. package/backend/dist/routes/personas.js +3 -1
  38. package/backend/dist/routes/personas.js.map +1 -1
  39. package/backend/dist/routes/plugins.d.ts.map +1 -1
  40. package/backend/dist/routes/plugins.js +7 -105
  41. package/backend/dist/routes/plugins.js.map +1 -1
  42. package/backend/dist/routes/tts.d.ts.map +1 -1
  43. package/backend/dist/routes/tts.js +7 -5
  44. package/backend/dist/routes/tts.js.map +1 -1
  45. package/backend/dist/routes/users.d.ts.map +1 -1
  46. package/backend/dist/routes/users.js +7 -5
  47. package/backend/dist/routes/users.js.map +1 -1
  48. package/backend/dist/services/assistantCompletionService.d.ts +26 -0
  49. package/backend/dist/services/assistantCompletionService.d.ts.map +1 -0
  50. package/backend/dist/services/assistantCompletionService.js +53 -0
  51. package/backend/dist/services/assistantCompletionService.js.map +1 -0
  52. package/backend/dist/services/authService.d.ts +2 -0
  53. package/backend/dist/services/authService.d.ts.map +1 -1
  54. package/backend/dist/services/authService.js +15 -7
  55. package/backend/dist/services/authService.js.map +1 -1
  56. package/backend/dist/services/chatGenerationService.d.ts +32 -0
  57. package/backend/dist/services/chatGenerationService.d.ts.map +1 -0
  58. package/backend/dist/services/chatGenerationService.js +118 -0
  59. package/backend/dist/services/chatGenerationService.js.map +1 -0
  60. package/backend/dist/services/chatRequestService.d.ts +55 -0
  61. package/backend/dist/services/chatRequestService.d.ts.map +1 -0
  62. package/backend/dist/services/chatRequestService.js +103 -0
  63. package/backend/dist/services/chatRequestService.js.map +1 -0
  64. package/backend/dist/services/chatService.d.ts +0 -1
  65. package/backend/dist/services/chatService.d.ts.map +1 -1
  66. package/backend/dist/services/chatService.js +17 -113
  67. package/backend/dist/services/chatService.js.map +1 -1
  68. package/backend/dist/services/documentService.d.ts.map +1 -1
  69. package/backend/dist/services/documentService.js +23 -21
  70. package/backend/dist/services/documentService.js.map +1 -1
  71. package/backend/dist/services/embeddingService.d.ts +9 -0
  72. package/backend/dist/services/embeddingService.d.ts.map +1 -0
  73. package/backend/dist/services/embeddingService.js +155 -0
  74. package/backend/dist/services/embeddingService.js.map +1 -0
  75. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  76. package/backend/dist/services/encryptionService.js +26 -24
  77. package/backend/dist/services/encryptionService.js.map +1 -1
  78. package/backend/dist/services/galleryService.d.ts.map +1 -1
  79. package/backend/dist/services/galleryService.js +8 -6
  80. package/backend/dist/services/galleryService.js.map +1 -1
  81. package/backend/dist/services/memoryService.d.ts +2 -13
  82. package/backend/dist/services/memoryService.d.ts.map +1 -1
  83. package/backend/dist/services/memoryService.js +45 -211
  84. package/backend/dist/services/memoryService.js.map +1 -1
  85. package/backend/dist/services/memoryUtils.d.ts +29 -0
  86. package/backend/dist/services/memoryUtils.d.ts.map +1 -0
  87. package/backend/dist/services/memoryUtils.js +165 -0
  88. package/backend/dist/services/memoryUtils.js.map +1 -0
  89. package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
  90. package/backend/dist/services/mutationEngineService.js +5 -3
  91. package/backend/dist/services/mutationEngineService.js.map +1 -1
  92. package/backend/dist/services/ollamaService.d.ts.map +1 -1
  93. package/backend/dist/services/ollamaService.js +67 -34
  94. package/backend/dist/services/ollamaService.js.map +1 -1
  95. package/backend/dist/services/personaService.d.ts.map +1 -1
  96. package/backend/dist/services/personaService.js +6 -2
  97. package/backend/dist/services/personaService.js.map +1 -1
  98. package/backend/dist/services/pluginCapabilityRegistryService.d.ts +11 -0
  99. package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -0
  100. package/backend/dist/services/pluginCapabilityRegistryService.js +70 -0
  101. package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -0
  102. package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
  103. package/backend/dist/services/pluginCredentialsService.js +13 -11
  104. package/backend/dist/services/pluginCredentialsService.js.map +1 -1
  105. package/backend/dist/services/pluginEmbeddingService.d.ts +26 -0
  106. package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -0
  107. package/backend/dist/services/pluginEmbeddingService.js +159 -0
  108. package/backend/dist/services/pluginEmbeddingService.js.map +1 -0
  109. package/backend/dist/services/pluginImageGenerationService.d.ts +29 -0
  110. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -0
  111. package/backend/dist/services/pluginImageGenerationService.js +402 -0
  112. package/backend/dist/services/pluginImageGenerationService.js.map +1 -0
  113. package/backend/dist/services/pluginService.d.ts +21 -17
  114. package/backend/dist/services/pluginService.d.ts.map +1 -1
  115. package/backend/dist/services/pluginService.js +135 -1356
  116. package/backend/dist/services/pluginService.js.map +1 -1
  117. package/backend/dist/services/pluginTTSService.d.ts +28 -0
  118. package/backend/dist/services/pluginTTSService.d.ts.map +1 -0
  119. package/backend/dist/services/pluginTTSService.js +286 -0
  120. package/backend/dist/services/pluginTTSService.js.map +1 -0
  121. package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
  122. package/backend/dist/services/pluginVariablesService.js +7 -5
  123. package/backend/dist/services/pluginVariablesService.js.map +1 -1
  124. package/backend/dist/services/preferencesService.d.ts +1 -0
  125. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  126. package/backend/dist/services/preferencesService.js +21 -7
  127. package/backend/dist/services/preferencesService.js.map +1 -1
  128. package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
  129. package/backend/dist/services/simpleGitHubOAuth.js +10 -8
  130. package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
  131. package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
  132. package/backend/dist/services/simpleHuggingFaceOAuth.js +11 -9
  133. package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
  134. package/backend/dist/services/systemSettingsService.d.ts.map +1 -1
  135. package/backend/dist/services/systemSettingsService.js +4 -2
  136. package/backend/dist/services/systemSettingsService.js.map +1 -1
  137. package/backend/dist/services/titleGenerationService.d.ts +55 -0
  138. package/backend/dist/services/titleGenerationService.d.ts.map +1 -0
  139. package/backend/dist/services/titleGenerationService.js +121 -0
  140. package/backend/dist/services/titleGenerationService.js.map +1 -0
  141. package/backend/dist/services/turnstileService.d.ts +13 -0
  142. package/backend/dist/services/turnstileService.d.ts.map +1 -0
  143. package/backend/dist/services/turnstileService.js +79 -0
  144. package/backend/dist/services/turnstileService.js.map +1 -0
  145. package/backend/dist/storage.d.ts +2 -22
  146. package/backend/dist/storage.d.ts.map +1 -1
  147. package/backend/dist/storage.js +22 -170
  148. package/backend/dist/storage.js.map +1 -1
  149. package/backend/dist/storageMappers.d.ts +82 -0
  150. package/backend/dist/storageMappers.d.ts.map +1 -0
  151. package/backend/dist/storageMappers.js +85 -0
  152. package/backend/dist/storageMappers.js.map +1 -0
  153. package/backend/dist/test-encryption.js +20 -18
  154. package/backend/dist/test-encryption.js.map +1 -1
  155. package/backend/dist/types/index.d.ts +6 -0
  156. package/backend/dist/types/index.d.ts.map +1 -1
  157. package/backend/dist/types/index.js.map +1 -1
  158. package/backend/dist/utils/assistantBranching.d.ts +8 -0
  159. package/backend/dist/utils/assistantBranching.d.ts.map +1 -0
  160. package/backend/dist/utils/assistantBranching.js +30 -0
  161. package/backend/dist/utils/assistantBranching.js.map +1 -0
  162. package/backend/dist/utils/chatContext.d.ts +17 -0
  163. package/backend/dist/utils/chatContext.d.ts.map +1 -0
  164. package/backend/dist/utils/chatContext.js +82 -0
  165. package/backend/dist/utils/chatContext.js.map +1 -0
  166. package/backend/dist/utils/chatDocumentContext.d.ts +7 -0
  167. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -0
  168. package/backend/dist/utils/chatDocumentContext.js +51 -0
  169. package/backend/dist/utils/chatDocumentContext.js.map +1 -0
  170. package/backend/dist/utils/logger.d.ts +12 -0
  171. package/backend/dist/utils/logger.d.ts.map +1 -0
  172. package/backend/dist/utils/logger.js +82 -0
  173. package/backend/dist/utils/logger.js.map +1 -0
  174. package/backend/dist/utils/ollamaLibrary.d.ts +17 -0
  175. package/backend/dist/utils/ollamaLibrary.d.ts.map +1 -0
  176. package/backend/dist/utils/ollamaLibrary.js +253 -0
  177. package/backend/dist/utils/ollamaLibrary.js.map +1 -0
  178. package/backend/dist/utils/ollamaStreaming.d.ts +19 -0
  179. package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -0
  180. package/backend/dist/utils/ollamaStreaming.js +67 -0
  181. package/backend/dist/utils/ollamaStreaming.js.map +1 -0
  182. package/backend/dist/utils/packagePaths.d.ts +10 -0
  183. package/backend/dist/utils/packagePaths.d.ts.map +1 -0
  184. package/backend/dist/utils/packagePaths.js +81 -0
  185. package/backend/dist/utils/packagePaths.js.map +1 -0
  186. package/backend/dist/utils/pluginChatAdapter.d.ts +32 -0
  187. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -0
  188. package/backend/dist/utils/pluginChatAdapter.js +308 -0
  189. package/backend/dist/utils/pluginChatAdapter.js.map +1 -0
  190. package/backend/dist/utils/pluginChatContext.d.ts +23 -0
  191. package/backend/dist/utils/pluginChatContext.d.ts.map +1 -0
  192. package/backend/dist/utils/pluginChatContext.js +77 -0
  193. package/backend/dist/utils/pluginChatContext.js.map +1 -0
  194. package/backend/dist/utils/pluginResponse.d.ts +6 -0
  195. package/backend/dist/utils/pluginResponse.d.ts.map +1 -0
  196. package/backend/dist/utils/pluginResponse.js +70 -0
  197. package/backend/dist/utils/pluginResponse.js.map +1 -0
  198. package/backend/dist/utils/pluginStreamAdapter.d.ts +16 -0
  199. package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -0
  200. package/backend/dist/utils/pluginStreamAdapter.js +141 -0
  201. package/backend/dist/utils/pluginStreamAdapter.js.map +1 -0
  202. package/backend/dist/utils/pluginStreaming.d.ts +24 -0
  203. package/backend/dist/utils/pluginStreaming.d.ts.map +1 -0
  204. package/backend/dist/utils/pluginStreaming.js +106 -0
  205. package/backend/dist/utils/pluginStreaming.js.map +1 -0
  206. package/backend/dist/utils/pluginUpload.d.ts +8 -0
  207. package/backend/dist/utils/pluginUpload.d.ts.map +1 -0
  208. package/backend/dist/utils/pluginUpload.js +51 -0
  209. package/backend/dist/utils/pluginUpload.js.map +1 -0
  210. package/backend/dist/utils/pluginValidation.d.ts +10 -0
  211. package/backend/dist/utils/pluginValidation.d.ts.map +1 -0
  212. package/backend/dist/utils/pluginValidation.js +94 -0
  213. package/backend/dist/utils/pluginValidation.js.map +1 -0
  214. package/backend/dist/utils/pluginVariableValidation.d.ts +10 -0
  215. package/backend/dist/utils/pluginVariableValidation.d.ts.map +1 -0
  216. package/backend/dist/utils/pluginVariableValidation.js +80 -0
  217. package/backend/dist/utils/pluginVariableValidation.js.map +1 -0
  218. package/backend/dist/utils/websocketMessages.d.ts +26 -0
  219. package/backend/dist/utils/websocketMessages.d.ts.map +1 -0
  220. package/backend/dist/utils/websocketMessages.js +74 -0
  221. package/backend/dist/utils/websocketMessages.js.map +1 -0
  222. package/backend/dist/websocketServer.d.ts +3 -0
  223. package/backend/dist/websocketServer.d.ts.map +1 -0
  224. package/backend/dist/websocketServer.js +332 -0
  225. package/backend/dist/websocketServer.js.map +1 -0
  226. package/backend/package.json +55 -0
  227. package/frontend/dist/assets/index-BxHDVIti.css +1 -0
  228. package/frontend/dist/assets/index-CDA2f43l.js +5 -0
  229. package/frontend/dist/assets/markdown-math-CYlHEDRF.css +1 -0
  230. package/frontend/dist/index.html +12 -15
  231. package/frontend/dist/js/ArtifactContainer-CA523BOS.js +1 -0
  232. package/frontend/dist/js/ArtifactDemoPage-C0p2-ccP.js +200 -0
  233. package/frontend/dist/js/ArtifactSlideOutPanel-BBYuYyr_.js +1 -0
  234. package/frontend/dist/js/Button-BmZQkAPD.js +1 -0
  235. package/frontend/dist/js/ChatPage-QSOhIynr.js +16 -0
  236. package/frontend/dist/js/FirstTimeSetup-pi-S4VU-.js +1 -0
  237. package/frontend/dist/js/GalleryPage-BPXB-D4f.js +1 -0
  238. package/frontend/dist/js/ModelManagerModals-D3SZV7CU.js +1 -0
  239. package/frontend/dist/js/ModelsPage-Fmqc1Zxb.js +2 -0
  240. package/frontend/dist/js/OptimizedSyntaxHighlighter-DlI4omE2.js +1 -0
  241. package/frontend/dist/js/PersonasPage-BuLOCG1Y.js +13 -0
  242. package/frontend/dist/js/RichMessageContent-Darvuw8F.js +3 -0
  243. package/frontend/dist/js/SettingsModal-CQhAeaia.js +1 -0
  244. package/frontend/dist/js/UserManagementPage-yX9vOase.js +1 -0
  245. package/frontend/dist/js/api-d05r9G59.js +15 -0
  246. package/frontend/dist/js/ar-BIL8U_dv.js +2 -0
  247. package/frontend/dist/js/artifactHtml-CRdkOCnz.js +27 -0
  248. package/frontend/dist/js/bn-BWQoWPn6.js +2 -0
  249. package/frontend/dist/js/cs-DOD1vscE.js +2 -0
  250. package/frontend/dist/js/da-DYPzSzX4.js +2 -0
  251. package/frontend/dist/js/de-CHd4b2Xf.js +2 -0
  252. package/frontend/dist/js/demoMode-BhEpMVh5.js +1 -0
  253. package/frontend/dist/js/es-BmDO6uNe.js +2 -0
  254. package/frontend/dist/js/fr-DW24sUV7.js +2 -0
  255. package/frontend/dist/js/hi-BRDq_y1B.js +2 -0
  256. package/frontend/dist/js/id-I_F2nstV.js +2 -0
  257. package/frontend/dist/js/is-Boj7-J12.js +2 -0
  258. package/frontend/dist/js/it-CNeHl9Fh.js +2 -0
  259. package/frontend/dist/js/ja-DrVG6G8s.js +2 -0
  260. package/frontend/dist/js/ko-BtKRwlHW.js +2 -0
  261. package/frontend/dist/js/logger-1THq8-96.js +1 -0
  262. package/frontend/dist/js/markdown-core-CEpaJrKd.js +16 -0
  263. package/frontend/dist/js/markdown-math-DAmpvM9y.js +261 -0
  264. package/frontend/dist/js/ms-Dp9MigoU.js +2 -0
  265. package/frontend/dist/js/nl-Bk9pGoCF.js +2 -0
  266. package/frontend/dist/js/pl-seE8_lLS.js +2 -0
  267. package/frontend/dist/js/pt-BAeBtldI.js +2 -0
  268. package/frontend/dist/js/{react-vendor-BUzyfgnZ.js → react-vendor-DtQrJICq.js} +4 -4
  269. package/frontend/dist/js/rolldown-runtime-QTnfLwEv.js +1 -0
  270. package/frontend/dist/js/ru-CkCpWFNb.js +2 -0
  271. package/frontend/dist/js/sv-BM7nqxmA.js +2 -0
  272. package/frontend/dist/js/syntax-highlight-B758xPeo.js +8 -0
  273. package/frontend/dist/js/th-vDIZbpa4.js +2 -0
  274. package/frontend/dist/js/tr-G2-XodhW.js +2 -0
  275. package/frontend/dist/js/ui-vendor-MCs1MDmN.js +177 -0
  276. package/frontend/dist/js/uk-DfVfZcBQ.js +2 -0
  277. package/frontend/dist/js/useBaseQuery-CrdrLcmR.js +1 -0
  278. package/frontend/dist/js/useQuery-DaEnYfWR.js +1 -0
  279. package/frontend/dist/js/utils-es0n-47H.js +1 -0
  280. package/frontend/dist/js/utils-vendor-B2ZBL57Y.js +9 -0
  281. package/frontend/dist/js/vi-Yp9yjb06.js +2 -0
  282. package/frontend/dist/js/zh-DtRb97we.js +2 -0
  283. package/package.json +16 -10
  284. package/plugins/llama-cpp.json +93 -0
  285. package/plugins/openclaw-agent.json +1 -1
  286. package/backend/dist/services/openclawSessionService.d.ts +0 -63
  287. package/backend/dist/services/openclawSessionService.d.ts.map +0 -1
  288. package/backend/dist/services/openclawSessionService.js +0 -307
  289. package/backend/dist/services/openclawSessionService.js.map +0 -1
  290. package/frontend/dist/assets/index-B1qNw5pA.js +0 -52
  291. package/frontend/dist/assets/index-DnG6512Q.css +0 -1
  292. package/frontend/dist/assets/ui-CsNe6lFV.css +0 -1
  293. package/frontend/dist/js/ArtifactContainer-Com7P5vK.js +0 -24
  294. package/frontend/dist/js/ArtifactDemoPage-Xd-Ragpf.js +0 -98
  295. package/frontend/dist/js/Button-D62PCbMW.js +0 -1
  296. package/frontend/dist/js/ChatPage-01JxVHRP.js +0 -15
  297. package/frontend/dist/js/GalleryPage-8nHGqKEu.js +0 -1
  298. package/frontend/dist/js/ModelsPage-C0MLVfwA.js +0 -1
  299. package/frontend/dist/js/OptimizedSyntaxHighlighter-DjnSqskO.js +0 -1
  300. package/frontend/dist/js/PersonasPage-D9YKnYz6.js +0 -13
  301. package/frontend/dist/js/UserManagementPage-b6NZdPTD.js +0 -1
  302. package/frontend/dist/js/api-B0pf9vdR.js +0 -1
  303. package/frontend/dist/js/api-BrzQvj_g.js +0 -3
  304. package/frontend/dist/js/appStore-k_e3JAM3.js +0 -2
  305. package/frontend/dist/js/authStore-BkobbhZS.js +0 -1
  306. package/frontend/dist/js/authStore-ge66S03D.js +0 -2
  307. package/frontend/dist/js/axios-CYrHjdt1.js +0 -1
  308. package/frontend/dist/js/demoMode-qyEGd_UM.js +0 -1
  309. package/frontend/dist/js/markdown-vendor-4lCPqxk5.js +0 -22
  310. package/frontend/dist/js/rolldown-runtime-DWy-cpC1.js +0 -1
  311. package/frontend/dist/js/ui-DuH1cD2f.js +0 -267
  312. package/frontend/dist/js/ui-vendor-BFOABH-A.js +0 -177
  313. package/frontend/dist/js/userService-BndgbS1C.js +0 -1
  314. package/frontend/dist/js/utils-vendor-MBozwMfr.js +0 -6
@@ -21,6 +21,9 @@ import { fileURLToPath } from 'url';
21
21
  import { dirname, join } from 'path';
22
22
  import { randomBytes } from 'crypto';
23
23
  import { systemSettingsService } from './systemSettingsService.js';
24
+ import { turnstileService } from './turnstileService.js';
25
+ import { createLogger } from '../utils/logger.js';
26
+ const logger = createLogger('services:auth-service');
24
27
  const __filename = fileURLToPath(import.meta.url);
25
28
  const __dirname = dirname(__filename);
26
29
  // Read version from package.json
@@ -31,14 +34,14 @@ try {
31
34
  packageVersion = packageJson.version;
32
35
  }
33
36
  catch (_error) {
34
- console.warn('Could not read version from package.json, using default');
37
+ logger.warn('Could not read version from package.json, using default');
35
38
  }
36
39
  // Generate or use JWT secret - never use hardcoded secrets in production
37
40
  export const JWT_SECRET = process.env.JWT_SECRET ||
38
41
  (() => {
39
42
  const generatedSecret = randomBytes(64).toString('hex');
40
- console.warn('⚠️ JWT_SECRET not provided - generated random secret for this session');
41
- console.warn('🔒 For production, set JWT_SECRET environment variable to persist sessions across restarts');
43
+ logger.warn('⚠️ JWT_SECRET not provided - generated random secret for this session');
44
+ logger.warn('🔒 For production, set JWT_SECRET environment variable to persist sessions across restarts');
42
45
  return generatedSecret;
43
46
  })();
44
47
  export class AuthService {
@@ -58,11 +61,15 @@ export class AuthService {
58
61
  */
59
62
  verifyToken(token) {
60
63
  try {
61
- const payload = jwt.verify(token, JWT_SECRET);
62
- return payload;
64
+ return jwt.verify(token, JWT_SECRET);
63
65
  }
64
66
  catch (error) {
65
- console.error('Token verification failed:', error);
67
+ // Expired/invalid tokens are an expected, routine condition (e.g. a stale
68
+ // token left in the browser), so return null quietly. Only surface
69
+ // genuinely unexpected failures, and without dumping a full stack trace.
70
+ if (!(error instanceof jwt.JsonWebTokenError)) {
71
+ logger.error('Unexpected token verification error:', error instanceof Error ? error.message : error);
72
+ }
66
73
  return null;
67
74
  }
68
75
  }
@@ -96,6 +103,7 @@ export class AuthService {
96
103
  userCount,
97
104
  allowUserModelPull: systemSettingsService.getAllowUserModelPull(),
98
105
  version: packageVersion,
106
+ turnstile: turnstileService.getPublicConfig(),
99
107
  };
100
108
  }
101
109
  /**
@@ -146,7 +154,7 @@ export class AuthService {
146
154
  return { user, token };
147
155
  }
148
156
  catch (error) {
149
- console.error('Signup error:', error);
157
+ logger.error('Signup error:', error);
150
158
  return null;
151
159
  }
152
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authService.js","sourceRoot":"","sources":["../../src/services/authService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authService.js","sourceRoot":"","sources":["../../src/services/authService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ChatMessage, GenerationOptions, OllamaChatMessage, OllamaChatResponse, Plugin, PluginResponse } from '../types/index.js';
2
+ export interface GenerationTarget {
3
+ actualModelName: string;
4
+ mergedOptions: GenerationOptions;
5
+ activePlugin: Plugin | null;
6
+ pluginVariables: Record<string, string | number | boolean>;
7
+ }
8
+ export type PluginFallbackPolicy = 'allow' | 'disabled';
9
+ export interface NonStreamingExecutionOptions {
10
+ target: GenerationTarget;
11
+ ollamaMessages: OllamaChatMessage[];
12
+ pluginMessages: ChatMessage[];
13
+ userId: string;
14
+ pluginFallbackPolicy?: PluginFallbackPolicy;
15
+ }
16
+ export interface NonStreamingExecutionResult {
17
+ response: OllamaChatResponse;
18
+ assistantContent: string;
19
+ source: 'plugin' | 'ollama';
20
+ pluginError?: Error;
21
+ }
22
+ declare class ChatGenerationService {
23
+ resolveActualModelName(sessionModel: string, userId?: string): Promise<string>;
24
+ mergeOptions(options?: GenerationOptions): GenerationOptions;
25
+ prepareGenerationTarget(sessionModel: string, userId: string, options?: GenerationOptions): Promise<GenerationTarget>;
26
+ extractPluginAssistantContent(response: PluginResponse): string;
27
+ createPluginChatResponse(model: string, assistantContent: string): OllamaChatResponse;
28
+ executeNonStreaming({ target, ollamaMessages, pluginMessages, userId, pluginFallbackPolicy, }: NonStreamingExecutionOptions): Promise<NonStreamingExecutionResult>;
29
+ }
30
+ declare const _default: ChatGenerationService;
31
+ export default _default;
32
+ //# sourceMappingURL=chatGenerationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatGenerationService.d.ts","sourceRoot":"","sources":["../../src/services/chatGenerationService.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,cAAc,EACf,MAAM,mBAAmB,CAAC;AAK3B,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,iBAAiB,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC5D;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AAED,cAAM,qBAAqB;IACnB,sBAAsB,CAC1B,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,MAAkB,GACzB,OAAO,CAAC,MAAM,CAAC;IA2BlB,YAAY,CAAC,OAAO,GAAE,iBAAsB,GAAG,iBAAiB;IAO1D,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAsB5B,6BAA6B,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IAI/D,wBAAwB,CACtB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,GACvB,kBAAkB;IAYf,mBAAmB,CAAC,EACxB,MAAM,EACN,cAAc,EACd,cAAc,EACd,MAAM,EACN,oBAAiC,GAClC,EAAE,4BAA4B,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAoDvE;;AAED,wBAA2C"}
@@ -0,0 +1,118 @@
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 { mergeGenerationOptions } from '../utils/generationUtils.js';
18
+ import { extractPluginAssistantContent } from '../utils/pluginResponse.js';
19
+ import ollamaService from './ollamaService.js';
20
+ import { personaService } from './personaService.js';
21
+ import pluginService from './pluginService.js';
22
+ import preferencesService from './preferencesService.js';
23
+ import { createLogger } from '../utils/logger.js';
24
+ const logger = createLogger('services:chat-generation-service');
25
+ class ChatGenerationService {
26
+ async resolveActualModelName(sessionModel, userId = 'default') {
27
+ if (!sessionModel.startsWith('persona:')) {
28
+ return sessionModel;
29
+ }
30
+ try {
31
+ const personaId = sessionModel.replace('persona:', '');
32
+ let persona = await personaService.getPersonaById(personaId, userId);
33
+ if (!persona && userId !== 'default') {
34
+ persona = await personaService.getPersonaById(personaId, 'default');
35
+ }
36
+ if (persona?.model) {
37
+ return persona.model;
38
+ }
39
+ logger.warn(`Persona ${personaId} not found, falling back to session model`);
40
+ return sessionModel;
41
+ }
42
+ catch (error) {
43
+ logger.error('Error resolving persona model:', error);
44
+ return sessionModel;
45
+ }
46
+ }
47
+ mergeOptions(options = {}) {
48
+ return mergeGenerationOptions(preferencesService.getGenerationOptions(), options);
49
+ }
50
+ async prepareGenerationTarget(sessionModel, userId, options = {}) {
51
+ const actualModelName = await this.resolveActualModelName(sessionModel, userId);
52
+ const mergedOptions = this.mergeOptions(options);
53
+ const activePlugin = pluginService.getActivePluginForModel(actualModelName, userId);
54
+ const pluginVariables = activePlugin
55
+ ? pluginService.getPluginVariables(activePlugin, userId)
56
+ : {};
57
+ return {
58
+ actualModelName,
59
+ mergedOptions,
60
+ activePlugin,
61
+ pluginVariables,
62
+ };
63
+ }
64
+ extractPluginAssistantContent(response) {
65
+ return extractPluginAssistantContent(response);
66
+ }
67
+ createPluginChatResponse(model, assistantContent) {
68
+ return {
69
+ model,
70
+ created_at: new Date().toISOString(),
71
+ message: {
72
+ role: 'assistant',
73
+ content: assistantContent,
74
+ },
75
+ done: true,
76
+ };
77
+ }
78
+ async executeNonStreaming({ target, ollamaMessages, pluginMessages, userId, pluginFallbackPolicy = 'disabled', }) {
79
+ const chatRequest = {
80
+ model: target.actualModelName,
81
+ messages: ollamaMessages,
82
+ stream: false,
83
+ options: target.mergedOptions,
84
+ };
85
+ if (target.activePlugin) {
86
+ try {
87
+ const pluginResponse = await pluginService.executePluginRequest(target.actualModelName, pluginMessages, target.mergedOptions, userId);
88
+ const assistantContent = this.extractPluginAssistantContent(pluginResponse);
89
+ return {
90
+ response: this.createPluginChatResponse(target.actualModelName, assistantContent),
91
+ assistantContent,
92
+ source: 'plugin',
93
+ };
94
+ }
95
+ catch (error) {
96
+ const pluginError = error instanceof Error ? error : new Error(String(error));
97
+ if (pluginFallbackPolicy === 'disabled') {
98
+ throw pluginError;
99
+ }
100
+ const response = await ollamaService.generateChatResponse(chatRequest);
101
+ return {
102
+ response,
103
+ assistantContent: response.message.content,
104
+ source: 'ollama',
105
+ pluginError,
106
+ };
107
+ }
108
+ }
109
+ const response = await ollamaService.generateChatResponse(chatRequest);
110
+ return {
111
+ response,
112
+ assistantContent: response.message.content,
113
+ source: 'ollama',
114
+ };
115
+ }
116
+ }
117
+ export default new ChatGenerationService();
118
+ //# sourceMappingURL=chatGenerationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatGenerationService.js","sourceRoot":"","sources":["../../src/services/chatGenerationService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AASzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,GAAG,YAAY,CAAC,kCAAkC,CAAC,CAAC;AA0BhE,MAAM,qBAAqB;IACzB,KAAK,CAAC,sBAAsB,CAC1B,YAAoB,EACpB,SAAiB,SAAS;QAE1B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAEvD,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,KAAK,CAAC;YACvB,CAAC;YAED,MAAM,CAAC,IAAI,CACT,WAAW,SAAS,2CAA2C,CAChE,CAAC;YACF,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,UAA6B,EAAE;QAC1C,OAAO,sBAAsB,CAC3B,kBAAkB,CAAC,oBAAoB,EAAE,EACzC,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,YAAoB,EACpB,MAAc,EACd,UAA6B,EAAE;QAE/B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACvD,YAAY,EACZ,MAAM,CACP,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,aAAa,CAAC,uBAAuB,CACxD,eAAe,EACf,MAAM,CACP,CAAC;QACF,MAAM,eAAe,GAAG,YAAY;YAClC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC;YACxD,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,eAAe;YACf,aAAa;YACb,YAAY;YACZ,eAAe;SAChB,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,QAAwB;QACpD,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,wBAAwB,CACtB,KAAa,EACb,gBAAwB;QAExB,OAAO;YACL,KAAK;YACL,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,gBAAgB;aAC1B;YACD,IAAI,EAAE,IAAI;SACW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,EACxB,MAAM,EACN,cAAc,EACd,cAAc,EACd,MAAM,EACN,oBAAoB,GAAG,UAAU,GACJ;QAC7B,MAAM,WAAW,GAAG;YAClB,KAAK,EAAE,MAAM,CAAC,eAAe;YAC7B,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,MAAM,CAAC,aAAwC;SACzD,CAAC;QAEF,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAC7D,MAAM,CAAC,eAAe,EACtB,cAAc,EACd,MAAM,CAAC,aAAa,EACpB,MAAM,CACP,CAAC;gBACF,MAAM,gBAAgB,GACpB,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC;gBAErD,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CACrC,MAAM,CAAC,eAAe,EACtB,gBAAgB,CACjB;oBACD,gBAAgB;oBAChB,MAAM,EAAE,QAAQ;iBACjB,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,WAAW,GACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE5D,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;oBACxC,MAAM,WAAW,CAAC;gBACpB,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBACvE,OAAO;oBACL,QAAQ;oBACR,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;oBAC1C,MAAM,EAAE,QAAQ;oBAChB,WAAW;iBACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACvE,OAAO;YACL,QAAQ;YACR,gBAAgB,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;YAC1C,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;CACF;AAED,eAAe,IAAI,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type ChatContextMessage } from '../utils/chatContext.js';
2
+ import { type PluginVariables } from '../utils/pluginChatContext.js';
3
+ import type { GenerationTarget } from './chatGenerationService.js';
4
+ import type { ChatMessage, ChatSession, GenerationOptions, OllamaChatMessage, Persona } from '../types/index.js';
5
+ export interface ChatGenerationTargetService {
6
+ prepareGenerationTarget(sessionModel: string, userId: string, options?: GenerationOptions): Promise<GenerationTarget>;
7
+ }
8
+ export interface ChatPersonaLookupService {
9
+ getPersonaById(id: string, userId?: string): Promise<Persona | null>;
10
+ }
11
+ export interface ChatRequestServiceDependencies {
12
+ chatGenerationService: ChatGenerationTargetService;
13
+ personaService?: ChatPersonaLookupService;
14
+ }
15
+ export interface PrepareGenerationMessagesOptions {
16
+ isPrivate?: boolean;
17
+ persistedMessages: readonly ChatMessage[];
18
+ messageHistory?: readonly ChatContextMessage[];
19
+ regenerate?: boolean;
20
+ content: string;
21
+ images?: string[];
22
+ hasRelevantContext?: boolean;
23
+ enhancedContent?: string;
24
+ personaSystemPrompt?: string;
25
+ pluginVariables?: PluginVariables;
26
+ now?: () => number;
27
+ }
28
+ export interface PreparedGenerationMessages {
29
+ enhancedContent: string;
30
+ hasRelevantContext: boolean;
31
+ contextMessages: ChatContextMessage[];
32
+ ollamaMessages: OllamaChatMessage[];
33
+ pluginMessages: ChatMessage[];
34
+ shouldStreamPlugin: boolean;
35
+ }
36
+ export interface PrepareChatGenerationRequestOptions extends Omit<PrepareGenerationMessagesOptions, 'pluginVariables' | 'personaSystemPrompt'> {
37
+ session: Pick<ChatSession, 'model' | 'personaId'>;
38
+ userId: string;
39
+ options?: GenerationOptions;
40
+ personaSystemPrompt?: string;
41
+ includePersonaPrompt?: boolean;
42
+ }
43
+ export interface PreparedChatGenerationRequest extends PreparedGenerationMessages, GenerationTarget {
44
+ target: GenerationTarget;
45
+ }
46
+ export declare function buildDocumentEnhancedContent(content: string, relevantContext: readonly string[]): string;
47
+ export declare function prepareGenerationMessages({ isPrivate, persistedMessages, messageHistory, regenerate, content, images, hasRelevantContext, enhancedContent, personaSystemPrompt, pluginVariables, now, }: PrepareGenerationMessagesOptions): PreparedGenerationMessages;
48
+ export declare class ChatRequestService {
49
+ private readonly chatGenerationService;
50
+ private readonly personaService?;
51
+ constructor({ chatGenerationService, personaService, }: ChatRequestServiceDependencies);
52
+ resolvePersonaSystemPrompt(session: Pick<ChatSession, 'personaId'>, userId: string): Promise<string | undefined>;
53
+ prepareGenerationRequest({ session, userId, options, personaSystemPrompt, includePersonaPrompt, ...messageOptions }: PrepareChatGenerationRequestOptions): Promise<PreparedChatGenerationRequest>;
54
+ }
55
+ //# sourceMappingURL=chatRequestService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatRequestService.d.ts","sourceRoot":"","sources":["../../src/services/chatRequestService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
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 { toOllamaMessages, withSystemPrompt, } from '../utils/chatContext.js';
18
+ import { preparePluginChatContext, } from '../utils/pluginChatContext.js';
19
+ import { createLogger } from '../utils/logger.js';
20
+ const logger = createLogger('services:chat-request-service');
21
+ export function buildDocumentEnhancedContent(content, relevantContext) {
22
+ if (relevantContext.length === 0) {
23
+ return content;
24
+ }
25
+ const contextString = relevantContext.join('\n\n---\n\n');
26
+ return `Context from uploaded documents:\n\n${contextString}\n\n---\n\nUser question: ${content}`;
27
+ }
28
+ export function prepareGenerationMessages({ isPrivate = false, persistedMessages, messageHistory = [], regenerate = false, content, images, hasRelevantContext, enhancedContent, personaSystemPrompt, pluginVariables = {}, now = Date.now, }) {
29
+ const contextMessages = isPrivate
30
+ ? regenerate
31
+ ? [...messageHistory]
32
+ : [
33
+ ...messageHistory,
34
+ {
35
+ role: 'user',
36
+ content,
37
+ images,
38
+ },
39
+ ]
40
+ : [...persistedMessages];
41
+ const finalEnhancedContent = enhancedContent ?? content;
42
+ const usesRelevantContext = hasRelevantContext ?? finalEnhancedContent !== content;
43
+ const ollamaMessages = withSystemPrompt(toOllamaMessages(contextMessages, {
44
+ latestUserContent: usesRelevantContext ? finalEnhancedContent : undefined,
45
+ }), personaSystemPrompt);
46
+ const { messages: pluginMessages, shouldStream } = preparePluginChatContext({
47
+ isPrivate,
48
+ persistedMessages,
49
+ messageHistory,
50
+ regenerate,
51
+ content,
52
+ images,
53
+ hasRelevantContext: usesRelevantContext,
54
+ enhancedContent: finalEnhancedContent,
55
+ pluginVariables,
56
+ now,
57
+ });
58
+ return {
59
+ enhancedContent: finalEnhancedContent,
60
+ hasRelevantContext: usesRelevantContext,
61
+ contextMessages,
62
+ ollamaMessages,
63
+ pluginMessages,
64
+ shouldStreamPlugin: shouldStream,
65
+ };
66
+ }
67
+ export class ChatRequestService {
68
+ constructor({ chatGenerationService, personaService, }) {
69
+ this.chatGenerationService = chatGenerationService;
70
+ this.personaService = personaService;
71
+ }
72
+ async resolvePersonaSystemPrompt(session, userId) {
73
+ if (!session.personaId || !this.personaService) {
74
+ return undefined;
75
+ }
76
+ try {
77
+ const persona = await this.personaService.getPersonaById(session.personaId, userId);
78
+ return persona?.parameters?.system_prompt?.trim() || undefined;
79
+ }
80
+ catch (error) {
81
+ logger.error('Error loading persona system prompt:', error);
82
+ return undefined;
83
+ }
84
+ }
85
+ async prepareGenerationRequest({ session, userId, options = {}, personaSystemPrompt, includePersonaPrompt = true, ...messageOptions }) {
86
+ const target = await this.chatGenerationService.prepareGenerationTarget(session.model, userId, options);
87
+ const resolvedPersonaSystemPrompt = personaSystemPrompt ??
88
+ (includePersonaPrompt
89
+ ? await this.resolvePersonaSystemPrompt(session, userId)
90
+ : undefined);
91
+ const preparedMessages = prepareGenerationMessages({
92
+ ...messageOptions,
93
+ personaSystemPrompt: resolvedPersonaSystemPrompt,
94
+ pluginVariables: target.pluginVariables,
95
+ });
96
+ return {
97
+ target,
98
+ ...target,
99
+ ...preparedMessages,
100
+ };
101
+ }
102
+ }
103
+ //# sourceMappingURL=chatRequestService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatRequestService.js","sourceRoot":"","sources":["../../src/services/chatRequestService.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,6 @@ declare class ChatService {
14
14
  updateMessage(sessionId: string, messageId: string, updates: Partial<ChatMessage>, userId?: string): ChatMessage | undefined;
15
15
  deleteSession(sessionId: string, userId?: string): boolean;
16
16
  clearAllSessions(userId?: string): void;
17
- private generateTitle;
18
17
  getMessagesForContext(sessionId: string, maxMessages?: number): ChatMessage[];
19
18
  private updateSystemMessageForPersona;
20
19
  private updateSystemMessageToDefault;
@@ -1 +1 @@
1
- {"version":3,"file":"chatService.d.ts","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,WAAW,EACX,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAQ3B,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAuC;;IAMvD,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAKd,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,GAAE,MAAkB,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IAsGvB,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAqC1B,cAAc,CAAC,MAAM,GAAE,MAAkB,GAAG,WAAW,EAAE;IAanD,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,GAAE,MAAkB,GACzB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IA6CnC,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAChE,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IA+G1B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAmC1B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,OAAO;IAYrE,gBAAgB,CAAC,MAAM,GAAE,MAAkB,GAAG,IAAI;IAelD,OAAO,CAAC,aAAa;IAYrB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,WAAW,EAAE;YAgC3D,6BAA6B;IA6C3C,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;YACW,iCAAiC;IA4G/C;;OAEG;YACW,+BAA+B;IA8G7C;;OAEG;YACW,8BAA8B;IA2D5C;;;OAGG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EACnE,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAgD1B;;OAEG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IA6B1B;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAkB,GACzB,WAAW,EAAE;CAcjB;;AAED,wBAAiC"}
1
+ {"version":3,"file":"chatService.d.ts","sourceRoot":"","sources":["../../src/services/chatService.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,WAAW,EACX,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAW3B,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAuC;;IAMvD,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IAKd,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,GAAE,MAAkB,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC;IAgEvB,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAwB1B,cAAc,CAAC,MAAM,GAAE,MAAkB,GAAG,WAAW,EAAE;IAanD,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,GAAE,MAAkB,GACzB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAqCnC,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAChE,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAsE1B,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAC7B,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAkC1B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,OAAO;IAYrE,gBAAgB,CAAC,MAAM,GAAE,MAAkB,GAAG,IAAI;IAelD,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,WAAW,EAAE;YAsB3D,6BAA6B;IA6B3C,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;YACW,iCAAiC;IAuE/C;;OAEG;YACW,+BAA+B;IAuG7C;;OAEG;YACW,8BAA8B;IAuC5C;;;OAGG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EACnE,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IAgD1B;;OAEG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,GAAE,MAAkB,GACzB,WAAW,GAAG,SAAS;IA6B1B;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAkB,GACzB,WAAW,EAAE;CAcjB;;AAED,wBAAiC"}