libre-webui 0.19.6 → 0.21.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 (230) hide show
  1. package/README.md +32 -22
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +31 -0
  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 +14 -10
  7. package/backend/dist/index.js.map +1 -1
  8. package/backend/dist/routes/chat.d.ts.map +1 -1
  9. package/backend/dist/routes/chat.js +97 -10
  10. package/backend/dist/routes/chat.js.map +1 -1
  11. package/backend/dist/routes/libreClaw.d.ts.map +1 -1
  12. package/backend/dist/routes/libreClaw.js +41 -0
  13. package/backend/dist/routes/libreClaw.js.map +1 -1
  14. package/backend/dist/routes/ollama.d.ts.map +1 -1
  15. package/backend/dist/routes/ollama.js +52 -2
  16. package/backend/dist/routes/ollama.js.map +1 -1
  17. package/backend/dist/routes/search.d.ts +3 -0
  18. package/backend/dist/routes/search.d.ts.map +1 -0
  19. package/backend/dist/routes/search.js +143 -0
  20. package/backend/dist/routes/search.js.map +1 -0
  21. package/backend/dist/routes/work.d.ts.map +1 -1
  22. package/backend/dist/routes/work.js +138 -4
  23. package/backend/dist/routes/work.js.map +1 -1
  24. package/backend/dist/services/agentAccessService.d.ts +6 -0
  25. package/backend/dist/services/agentAccessService.d.ts.map +1 -0
  26. package/backend/dist/services/agentAccessService.js +58 -0
  27. package/backend/dist/services/agentAccessService.js.map +1 -0
  28. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  29. package/backend/dist/services/agentCliService.js +2 -1
  30. package/backend/dist/services/agentCliService.js.map +1 -1
  31. package/backend/dist/services/authService.d.ts +1 -0
  32. package/backend/dist/services/authService.d.ts.map +1 -1
  33. package/backend/dist/services/authService.js +2 -0
  34. package/backend/dist/services/authService.js.map +1 -1
  35. package/backend/dist/services/documentService.d.ts +2 -0
  36. package/backend/dist/services/documentService.d.ts.map +1 -1
  37. package/backend/dist/services/documentService.js +51 -23
  38. package/backend/dist/services/documentService.js.map +1 -1
  39. package/backend/dist/services/modelAccessService.d.ts +12 -0
  40. package/backend/dist/services/modelAccessService.d.ts.map +1 -0
  41. package/backend/dist/services/modelAccessService.js +66 -0
  42. package/backend/dist/services/modelAccessService.js.map +1 -0
  43. package/backend/dist/services/systemDiagnosticsService.d.ts +4 -3
  44. package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -1
  45. package/backend/dist/services/systemDiagnosticsService.js +35 -34
  46. package/backend/dist/services/systemDiagnosticsService.js.map +1 -1
  47. package/backend/dist/services/webSearchService.d.ts +64 -0
  48. package/backend/dist/services/webSearchService.d.ts.map +1 -0
  49. package/backend/dist/services/webSearchService.js +230 -0
  50. package/backend/dist/services/webSearchService.js.map +1 -0
  51. package/backend/dist/services/workAccessService.d.ts +15 -0
  52. package/backend/dist/services/workAccessService.d.ts.map +1 -0
  53. package/backend/dist/services/workAccessService.js +67 -0
  54. package/backend/dist/services/workAccessService.js.map +1 -0
  55. package/backend/dist/services/workAdminService.d.ts +67 -0
  56. package/backend/dist/services/workAdminService.d.ts.map +1 -0
  57. package/backend/dist/services/workAdminService.js +92 -0
  58. package/backend/dist/services/workAdminService.js.map +1 -0
  59. package/backend/dist/services/workAgentGuidance.d.ts +1 -0
  60. package/backend/dist/services/workAgentGuidance.d.ts.map +1 -1
  61. package/backend/dist/services/workAgentGuidance.js +3 -0
  62. package/backend/dist/services/workAgentGuidance.js.map +1 -1
  63. package/backend/dist/services/workAgentService.d.ts +6 -0
  64. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  65. package/backend/dist/services/workAgentService.js +199 -11
  66. package/backend/dist/services/workAgentService.js.map +1 -1
  67. package/backend/dist/services/workKubernetesDriver.d.ts +74 -0
  68. package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -0
  69. package/backend/dist/services/workKubernetesDriver.js +659 -0
  70. package/backend/dist/services/workKubernetesDriver.js.map +1 -0
  71. package/backend/dist/services/workPolicyService.d.ts +58 -0
  72. package/backend/dist/services/workPolicyService.d.ts.map +1 -0
  73. package/backend/dist/services/workPolicyService.js +299 -0
  74. package/backend/dist/services/workPolicyService.js.map +1 -0
  75. package/backend/dist/services/workPreviewProxyService.d.ts +7 -1
  76. package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -1
  77. package/backend/dist/services/workPreviewProxyService.js +36 -8
  78. package/backend/dist/services/workPreviewProxyService.js.map +1 -1
  79. package/backend/dist/services/workRuntimeDriver.d.ts +166 -0
  80. package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -0
  81. package/backend/dist/services/workRuntimeDriver.js +737 -0
  82. package/backend/dist/services/workRuntimeDriver.js.map +1 -0
  83. package/backend/dist/services/workRuntimeService.d.ts +60 -51
  84. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  85. package/backend/dist/services/workRuntimeService.js +310 -658
  86. package/backend/dist/services/workRuntimeService.js.map +1 -1
  87. package/backend/dist/services/workRuntimeShared.d.ts +83 -0
  88. package/backend/dist/services/workRuntimeShared.d.ts.map +1 -0
  89. package/backend/dist/services/workRuntimeShared.js +136 -0
  90. package/backend/dist/services/workRuntimeShared.js.map +1 -0
  91. package/backend/dist/services/workTaskService.d.ts +6 -1
  92. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  93. package/backend/dist/services/workTaskService.js +18 -3
  94. package/backend/dist/services/workTaskService.js.map +1 -1
  95. package/backend/dist/services/workTerminalService.d.ts +2 -22
  96. package/backend/dist/services/workTerminalService.d.ts.map +1 -1
  97. package/backend/dist/services/workTerminalService.js +10 -127
  98. package/backend/dist/services/workTerminalService.js.map +1 -1
  99. package/backend/dist/storage.d.ts.map +1 -1
  100. package/backend/dist/storage.js +3 -3
  101. package/backend/dist/storage.js.map +1 -1
  102. package/backend/dist/storageMappers.d.ts +1 -0
  103. package/backend/dist/storageMappers.d.ts.map +1 -1
  104. package/backend/dist/storageMappers.js +1 -0
  105. package/backend/dist/storageMappers.js.map +1 -1
  106. package/backend/dist/types/index.d.ts +1 -0
  107. package/backend/dist/types/index.d.ts.map +1 -1
  108. package/backend/dist/types/index.js.map +1 -1
  109. package/backend/dist/types/work.d.ts +4 -0
  110. package/backend/dist/types/work.d.ts.map +1 -1
  111. package/backend/dist/utils/chatDocumentContext.d.ts +7 -0
  112. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  113. package/backend/dist/utils/chatDocumentContext.js +38 -30
  114. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  115. package/backend/dist/utils/dockerEndpoint.d.ts +37 -0
  116. package/backend/dist/utils/dockerEndpoint.d.ts.map +1 -0
  117. package/backend/dist/utils/dockerEndpoint.js +72 -0
  118. package/backend/dist/utils/dockerEndpoint.js.map +1 -0
  119. package/backend/dist/websocketServer.d.ts.map +1 -1
  120. package/backend/dist/websocketServer.js +79 -15
  121. package/backend/dist/websocketServer.js.map +1 -1
  122. package/backend/dist/workTerminalServer.d.ts.map +1 -1
  123. package/backend/dist/workTerminalServer.js +6 -5
  124. package/backend/dist/workTerminalServer.js.map +1 -1
  125. package/backend/package.json +2 -1
  126. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  127. package/frontend/dist/assets/index-0wfi-EpC.js +40 -0
  128. package/frontend/dist/assets/index-D7m1zWWg.css +1 -0
  129. package/frontend/dist/index.html +12 -11
  130. package/frontend/dist/js/ArtifactContainer-DPRPcuES.js +1 -0
  131. package/frontend/dist/js/{ArtifactDemoPage-Big00RwH.js → ArtifactDemoPage-DzwPlz9J.js} +1 -1
  132. package/frontend/dist/js/{ArtifactSandboxFrame-C_S4j076.js → ArtifactSandboxFrame-CKi4mSTH.js} +2 -2
  133. package/frontend/dist/js/{ArtifactSlideOutPanel-B4-D3HkB.js → ArtifactSlideOutPanel-BskRCzP0.js} +1 -1
  134. package/frontend/dist/js/ChatPage-DRutCyJ5.js +16 -0
  135. package/frontend/dist/js/FirstTimeSetup-DU50YWrE.js +1 -0
  136. package/frontend/dist/js/GalleryPage-DxXIUesf.js +1 -0
  137. package/frontend/dist/js/HomePage-Bew9kMKx.js +1 -0
  138. package/frontend/dist/js/{LibreClawPage-B14Go5Mn.js → LibreClawPage-Cy9y3YlF.js} +1 -1
  139. package/frontend/dist/js/{ModelManagerModals-D9j9RECi.js → ModelManagerModals-D-NxeVvV.js} +1 -1
  140. package/frontend/dist/js/ModelSelector-DXDcDmDR.js +1 -0
  141. package/frontend/dist/js/ModelsPage-Bj2reiF9.js +2 -0
  142. package/frontend/dist/js/{NotesPage-BwEMW-Z3.js → NotesPage-CJKEbj3J.js} +1 -1
  143. package/frontend/dist/js/{PersonasPage-e-CbTxP3.js → PersonasPage-bgWF9S7b.js} +2 -2
  144. package/frontend/dist/js/{PluginUsagePage-CvZMJJwv.js → PluginUsagePage-CRkD1Tz6.js} +1 -1
  145. package/frontend/dist/js/{RichMessageContent-DNl3_CIw.js → RichMessageContent-DeNjCiyN.js} +1 -1
  146. package/frontend/dist/js/SettingsModal-BUUlkZcv.js +1 -0
  147. package/frontend/dist/js/SettingsToggle-bZ5W4CCf.js +1 -0
  148. package/frontend/dist/js/SystemPage-DcO51urv.js +1 -0
  149. package/frontend/dist/js/UserManagementPage-DLiYw6xG.js +1 -0
  150. package/frontend/dist/js/WorkPage-MMQ0Y0U5.js +5 -0
  151. package/frontend/dist/js/api-CZURQtuc.js +14 -0
  152. package/frontend/dist/js/{appStore-BpoXhleX.js → appStore-sGaWMSDr.js} +2 -2
  153. package/frontend/dist/js/ar-Bm27TCMQ.js +2 -0
  154. package/frontend/dist/js/authStore-uaj0hswV.js +4 -0
  155. package/frontend/dist/js/bn-C7CHC42H.js +2 -0
  156. package/frontend/dist/js/{chatStore-CWqfsOjc.js → chatStore-tRx0Ulq0.js} +2 -2
  157. package/frontend/dist/js/{config-CuXlcWP1.js → config-D-jxRG52.js} +1 -1
  158. package/frontend/dist/js/cs-zGEtwQn_.js +2 -0
  159. package/frontend/dist/js/da-B-0sHNTu.js +2 -0
  160. package/frontend/dist/js/de-UZNE6t2h.js +2 -0
  161. package/frontend/dist/js/es-CPLnFYIw.js +2 -0
  162. package/frontend/dist/js/{estree-BuWOCMW0.js → estree-CRuerC6a.js} +1 -1
  163. package/frontend/dist/js/fr-Br1o0WVz.js +2 -0
  164. package/frontend/dist/js/hi-BcEvNEpb.js +2 -0
  165. package/frontend/dist/js/{html-D7tW7UvW.js → html-BYKlz3Jp.js} +1 -1
  166. package/frontend/dist/js/i18n-DJTg6xWw.js +2 -0
  167. package/frontend/dist/js/id-C30L2DoT.js +2 -0
  168. package/frontend/dist/js/is-BAEhfi5Z.js +2 -0
  169. package/frontend/dist/js/it-HWnfQXZY.js +2 -0
  170. package/frontend/dist/js/ja-Dvux1mon.js +2 -0
  171. package/frontend/dist/js/ko-agDQ__KP.js +2 -0
  172. package/frontend/dist/js/{markdown-CBSxWEtK.js → markdown-DFy8bILU.js} +1 -1
  173. package/frontend/dist/js/{messageCodeStyles-BlTi46wI.js → messageCodeStyles-_gGirbe-.js} +2 -2
  174. package/frontend/dist/js/ms-aNRa2QX7.js +2 -0
  175. package/frontend/dist/js/nl-BtkiDUn-.js +2 -0
  176. package/frontend/dist/js/pl-SEO0lBnX.js +2 -0
  177. package/frontend/dist/js/pt-BYtjmvq1.js +2 -0
  178. package/frontend/dist/js/ru-B-ynj2hU.js +2 -0
  179. package/frontend/dist/js/{standalone-CaXys7q3.js → standalone-jOqWoOmp.js} +1 -1
  180. package/frontend/dist/js/sv-CliKR15U.js +2 -0
  181. package/frontend/dist/js/th-DJQyDr9J.js +2 -0
  182. package/frontend/dist/js/tr-BBGKZ1la.js +2 -0
  183. package/frontend/dist/js/{typescript-DQ5zi5zo.js → typescript-TwGXpgeF.js} +1 -1
  184. package/frontend/dist/js/{ui-DFQiHo_k.js → ui-DSFUl2vT.js} +2 -2
  185. package/frontend/dist/js/{ui-vendor-D_pYT79f.js → ui-vendor-xUzKqAXI.js} +1 -1
  186. package/frontend/dist/js/uk-C1GcFWxE.js +2 -0
  187. package/frontend/dist/js/vi-CIxgICOQ.js +2 -0
  188. package/frontend/dist/js/workApi-kClHFVkJ.js +6 -0
  189. package/frontend/dist/js/zh-Cm7vsQ9s.js +2 -0
  190. package/package.json +4 -3
  191. package/frontend/dist/assets/index-Cd0_AoYV.js +0 -23
  192. package/frontend/dist/assets/index-DtkGuqvC.css +0 -1
  193. package/frontend/dist/js/ArtifactContainer-Dy_1KKWg.js +0 -1
  194. package/frontend/dist/js/ChatPage-BkFd1iac.js +0 -16
  195. package/frontend/dist/js/FirstTimeSetup-C6YxrwR7.js +0 -1
  196. package/frontend/dist/js/GalleryPage-BtcPs7SO.js +0 -1
  197. package/frontend/dist/js/HomePage-5PhpAt14.js +0 -1
  198. package/frontend/dist/js/ModelSelector-C1wN91tl.js +0 -1
  199. package/frontend/dist/js/ModelsPage-Cc3L0ur8.js +0 -2
  200. package/frontend/dist/js/SettingsModal-C8KJJEud.js +0 -1
  201. package/frontend/dist/js/SystemPage-8kEAS71H.js +0 -1
  202. package/frontend/dist/js/UserManagementPage-BSrZ0ucu.js +0 -1
  203. package/frontend/dist/js/WorkPage-spf92PVN.js +0 -5
  204. package/frontend/dist/js/api-MySpmAK8.js +0 -19
  205. package/frontend/dist/js/ar-ClMsdoTH.js +0 -2
  206. package/frontend/dist/js/authStore-DmrydYuS.js +0 -3
  207. package/frontend/dist/js/bn-LyPol_AY.js +0 -2
  208. package/frontend/dist/js/cs-D98fZaKF.js +0 -2
  209. package/frontend/dist/js/da-M7ND0GQR.js +0 -2
  210. package/frontend/dist/js/de-BV0q1kzb.js +0 -2
  211. package/frontend/dist/js/es-C7FvsVoN.js +0 -2
  212. package/frontend/dist/js/fr-5SloN0ok.js +0 -2
  213. package/frontend/dist/js/hi-C6VeRgeR.js +0 -2
  214. package/frontend/dist/js/i18n-CLd1FZPx.js +0 -2
  215. package/frontend/dist/js/id-CkVp7Z1Z.js +0 -2
  216. package/frontend/dist/js/is-DqxnBX4W.js +0 -2
  217. package/frontend/dist/js/it-CiW4_O5V.js +0 -2
  218. package/frontend/dist/js/ja-BZ3Sdund.js +0 -2
  219. package/frontend/dist/js/ko-CS7LAhfJ.js +0 -2
  220. package/frontend/dist/js/ms-URvcYqgz.js +0 -2
  221. package/frontend/dist/js/nl-CQJpW7wK.js +0 -2
  222. package/frontend/dist/js/pl-DDMgPMAz.js +0 -2
  223. package/frontend/dist/js/pt-JCqqmGn_.js +0 -2
  224. package/frontend/dist/js/ru-C_dwMbiK.js +0 -2
  225. package/frontend/dist/js/sv-CW3c9NGx.js +0 -2
  226. package/frontend/dist/js/th-9ARgClBr.js +0 -2
  227. package/frontend/dist/js/tr-DNY5_DAg.js +0 -2
  228. package/frontend/dist/js/uk-XDh4_7IL.js +0 -2
  229. package/frontend/dist/js/vi-BaoJBXnt.js +0 -2
  230. package/frontend/dist/js/zh-B202vYJt.js +0 -2
@@ -326,6 +326,11 @@ class DocumentService {
326
326
  const hasCollections = Boolean(collectionIds && collectionIds.length > 0);
327
327
  if (!sessionId && !hasCollections)
328
328
  return true;
329
+ // User-scoped uploads (no session, no collection) are part of the
330
+ // user's standing knowledge and join every chat's searchable scope —
331
+ // previously they were unreachable from any session.
332
+ if (!document.sessionId && !document.collectionId)
333
+ return true;
329
334
  if (sessionId && document.sessionId === sessionId)
330
335
  return true;
331
336
  return Boolean(hasCollections &&
@@ -352,13 +357,20 @@ class DocumentService {
352
357
  }
353
358
  const preferences = preferencesService.getPreferences(userId);
354
359
  const results = [];
360
+ // Chunks without embeddings (uploaded while embeddings were off, or
361
+ // whose embedding generation failed) would otherwise be invisible to
362
+ // semantic search forever — exactly the "only my first document is
363
+ // used" failure. They compete through keyword scoring instead.
364
+ const unembedded = [];
355
365
  for (const document of storageService.getAllDocuments(userId)) {
356
366
  const documentChunks = this.loadDocumentChunks(document.id);
357
367
  if (!this.documentInScope(document, sessionId, collectionIds))
358
368
  continue;
359
369
  for (const chunk of documentChunks) {
360
- if (!chunk.embedding)
370
+ if (!chunk.embedding) {
371
+ unembedded.push({ chunk, document });
361
372
  continue;
373
+ }
362
374
  const similarity = cosineSimilarity(queryEmbedding, chunk.embedding);
363
375
  // Only include chunks above similarity threshold
364
376
  if (similarity >= preferences.embeddingSettings.similarityThreshold) {
@@ -366,51 +378,67 @@ class DocumentService {
366
378
  }
367
379
  }
368
380
  }
369
- // Sort by similarity score and return top results
370
- return results
381
+ const top = results
371
382
  .sort((a, b) => b.similarity - a.similarity)
372
383
  .slice(0, limit)
373
384
  .map(result => ({
374
385
  ...result.chunk,
375
386
  filename: result.document.filename, // Add filename for context
376
387
  }));
388
+ if (top.length < limit && unembedded.length > 0) {
389
+ const scored = this.scoreChunksByKeywords(query, unembedded);
390
+ for (const entry of scored) {
391
+ if (top.length >= limit)
392
+ break;
393
+ top.push({
394
+ ...entry.chunk,
395
+ filename: entry.document.filename,
396
+ });
397
+ }
398
+ }
399
+ if (top.length > 0)
400
+ return top;
401
+ // Nothing cleared the similarity threshold: keyword search is a
402
+ // better answer than an empty context.
403
+ return this.keywordSearchDocuments(query, userId, sessionId, limit, collectionIds);
377
404
  }
378
405
  catch (error) {
379
406
  logger.error('Semantic search failed, falling back to keyword search:', error);
380
407
  return this.keywordSearchDocuments(query, userId, sessionId, limit, collectionIds);
381
408
  }
382
409
  }
383
- keywordSearchDocuments(query, userId, sessionId, limit = 5, collectionIds) {
410
+ /** Term-frequency scores for a set of chunks, best first. */
411
+ scoreChunksByKeywords(query, entries) {
384
412
  const searchTerms = query
385
413
  .toLowerCase()
386
414
  .split(/\s+/)
387
415
  .filter(term => term.length > 2);
388
- const results = [];
416
+ const scored = [];
417
+ for (const { chunk, document } of entries) {
418
+ const chunkText = chunk.content.toLowerCase();
419
+ let score = 0;
420
+ for (const term of searchTerms) {
421
+ // Escape special regex characters to prevent injection
422
+ const escapedTerm = term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
423
+ score += (chunkText.match(new RegExp(escapedTerm, 'gi')) || []).length;
424
+ }
425
+ if (score > 0)
426
+ scored.push({ chunk, score, document });
427
+ }
428
+ return scored.sort((a, b) => b.score - a.score);
429
+ }
430
+ keywordSearchDocuments(query, userId, sessionId, limit = 5, collectionIds) {
431
+ const candidates = [];
389
432
  for (const document of storageService.getAllDocuments(userId)) {
390
433
  const documentChunks = this.loadDocumentChunks(document.id);
391
434
  if (!this.documentInScope(document, sessionId, collectionIds))
392
435
  continue;
393
436
  for (const chunk of documentChunks) {
394
- const chunkText = chunk.content.toLowerCase();
395
- let score = 0;
396
- // Simple scoring based on term frequency
397
- for (const term of searchTerms) {
398
- // Escape special regex characters to prevent injection
399
- const escapedTerm = term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
400
- const matches = (chunkText.match(new RegExp(escapedTerm, 'gi')) || [])
401
- .length;
402
- score += matches;
403
- }
404
- if (score > 0) {
405
- results.push({ chunk, score, document });
406
- }
437
+ candidates.push({ chunk, document });
407
438
  }
408
439
  }
409
- // Sort by score and return top results
410
- return results
411
- .sort((a, b) => b.score - a.score)
412
- .slice(0, limit)
413
- .map(result => ({
440
+ const results = this.scoreChunksByKeywords(query, candidates);
441
+ return results.slice(0, limit).map(result => ({
414
442
  ...result.chunk,
415
443
  filename: result.document.filename, // Add filename for context
416
444
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"documentService.js","sourceRoot":"","sources":["../../src/services/documentService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentService.js","sourceRoot":"","sources":["../../src/services/documentService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type ModelDownloadMode = 'admins' | 'all-users';
2
+ export declare const MODEL_DOWNLOAD_MODES: readonly ModelDownloadMode[];
3
+ export declare const MODEL_DOWNLOAD_MODE_KEY = "model_download_mode";
4
+ export declare function isModelDownloadMode(value: unknown): value is ModelDownloadMode;
5
+ export declare function getModelDownloadMode(): ModelDownloadMode;
6
+ export declare function setModelDownloadMode(mode: ModelDownloadMode): void;
7
+ /** Whether a user may pull models right now. */
8
+ export declare function userCanDownloadModels(user: {
9
+ role?: string;
10
+ status?: string;
11
+ }): boolean;
12
+ //# sourceMappingURL=modelAccessService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelAccessService.d.ts","sourceRoot":"","sources":["../../src/services/modelAccessService.ts"],"names":[],"mappings":"AA4BA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAG5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAK5B;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CASxD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAalE;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAIV"}
@@ -0,0 +1,66 @@
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
+ /**
18
+ * Who may download models (Ollama pulls, including the Hugging Face
19
+ * browser, which pulls through Ollama). A persisted system setting read on
20
+ * every check, mirroring the Work access mode: administrators always may;
21
+ * other active users only when an administrator opens downloads to all
22
+ * users. The default is admins-only — model pulls consume disk and
23
+ * bandwidth on the server, which is an administrator's call to share.
24
+ */
25
+ import { getDatabase } from '../db.js';
26
+ export const MODEL_DOWNLOAD_MODES = [
27
+ 'admins',
28
+ 'all-users',
29
+ ];
30
+ export const MODEL_DOWNLOAD_MODE_KEY = 'model_download_mode';
31
+ export function isModelDownloadMode(value) {
32
+ return (typeof value === 'string' &&
33
+ MODEL_DOWNLOAD_MODES.includes(value));
34
+ }
35
+ export function getModelDownloadMode() {
36
+ try {
37
+ const row = getDatabase()
38
+ .prepare('SELECT value FROM system_settings WHERE key = ?')
39
+ .get(MODEL_DOWNLOAD_MODE_KEY);
40
+ return isModelDownloadMode(row?.value) ? row.value : 'admins';
41
+ }
42
+ catch {
43
+ return 'admins';
44
+ }
45
+ }
46
+ export function setModelDownloadMode(mode) {
47
+ if (!isModelDownloadMode(mode)) {
48
+ throw new Error(`Invalid model download mode "${String(mode)}".`);
49
+ }
50
+ getDatabase()
51
+ .prepare(`INSERT INTO system_settings (key, value, updated_at)
52
+ VALUES (?, ?, ?)
53
+ ON CONFLICT(key) DO UPDATE SET
54
+ value = excluded.value,
55
+ updated_at = excluded.updated_at`)
56
+ .run(MODEL_DOWNLOAD_MODE_KEY, mode, Date.now());
57
+ }
58
+ /** Whether a user may pull models right now. */
59
+ export function userCanDownloadModels(user) {
60
+ if (user.status !== undefined && user.status !== 'active')
61
+ return false;
62
+ if (user.role === 'admin')
63
+ return true;
64
+ return getModelDownloadMode() === 'all-users';
65
+ }
66
+ //# sourceMappingURL=modelAccessService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelAccessService.js","sourceRoot":"","sources":["../../src/services/modelAccessService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IAChE,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CACjC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,oBAA0C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,WAAW,EAAE;aACtB,OAAO,CAAC,iDAAiD,CAAC;aAC1D,GAAG,CAAC,uBAAuB,CAAmC,CAAC;QAClE,OAAO,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,WAAW,EAAE;SACV,OAAO,CACN;;;;0CAIoC,CACrC;SACA,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,qBAAqB,CAAC,IAGrC;IACC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,oBAAoB,EAAE,KAAK,WAAW,CAAC;AAChD,CAAC"}
@@ -1,3 +1,5 @@
1
+ import { type DockerEndpoint } from '../utils/dockerEndpoint.js';
2
+ export { resolveDockerEndpoint } from '../utils/dockerEndpoint.js';
1
3
  export interface SystemDiagnostics {
2
4
  generatedAt: number;
3
5
  host: {
@@ -78,7 +80,7 @@ export interface DockerDiagnostics {
78
80
  pausedContainers: number;
79
81
  containers: DockerContainerSummary[];
80
82
  }
81
- type DockerGet = (socketPath: string, requestPath: string) => Promise<unknown>;
83
+ type DockerGet = (endpoint: DockerEndpoint, requestPath: string) => Promise<unknown>;
82
84
  interface DockerVersionPayload {
83
85
  Version?: unknown;
84
86
  }
@@ -102,13 +104,12 @@ interface DockerContainerPayload {
102
104
  Status?: unknown;
103
105
  Created?: unknown;
104
106
  }
105
- export declare function resolveSystemDockerSocketPath(workDockerSocket: string | undefined, dockerHost: string | undefined): string | null;
106
107
  export declare function parseNetworkCounters(contents: string): Map<string, {
107
108
  receivedBytes: number;
108
109
  transmittedBytes: number;
109
110
  }>;
110
111
  export declare function summarizeDockerPayloads(versionPayload: DockerVersionPayload, infoPayload: DockerInfoPayload, containerPayload: DockerContainerPayload[]): DockerDiagnostics;
111
- export declare function collectDockerDiagnostics(socketPath: string | null, dockerGet?: DockerGet): Promise<DockerDiagnostics>;
112
+ export declare function collectDockerDiagnostics(endpoint: DockerEndpoint | null, dockerGet?: DockerGet): Promise<DockerDiagnostics>;
112
113
  export declare class SystemDiagnosticsService {
113
114
  getDiagnostics(): Promise<SystemDiagnostics>;
114
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"systemDiagnosticsService.d.ts","sourceRoot":"","sources":["../../src/services/systemDiagnosticsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemDiagnosticsService.d.ts","sourceRoot":"","sources":["../../src/services/systemDiagnosticsService.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,9 @@ import http from 'node:http';
18
18
  import os from 'node:os';
19
19
  import path from 'node:path';
20
20
  import { readFile, stat, statfs } from 'node:fs/promises';
21
+ import { dockerEndpointRequestOptions, resolveDockerEndpoint, } from '../utils/dockerEndpoint.js';
21
22
  import { loadAppPackage } from '../utils/packagePaths.js';
23
+ export { resolveDockerEndpoint } from '../utils/dockerEndpoint.js';
22
24
  const DOCKER_RESPONSE_LIMIT_BYTES = 5 * 1024 * 1024;
23
25
  const DOCKER_TIMEOUT_MS = 4000;
24
26
  const MAX_DOCKER_CONTAINERS = 100;
@@ -39,16 +41,6 @@ const safeText = (value, fallback = '', maxLength = 160) => {
39
41
  .slice(0, maxLength);
40
42
  };
41
43
  const percent = (used, total) => total > 0 ? Math.round((used / total) * 1000) / 10 : 0;
42
- export function resolveSystemDockerSocketPath(workDockerSocket, dockerHost) {
43
- if (workDockerSocket?.trim())
44
- return workDockerSocket.trim();
45
- if (dockerHost) {
46
- return dockerHost.startsWith('unix://')
47
- ? dockerHost.slice('unix://'.length) || null
48
- : null;
49
- }
50
- return '/var/run/docker.sock';
51
- }
52
44
  export function parseNetworkCounters(contents) {
53
45
  const counters = new Map();
54
46
  for (const line of contents.split('\n').slice(2)) {
@@ -111,7 +103,7 @@ export function summarizeDockerPayloads(versionPayload, infoPayload, containerPa
111
103
  containers,
112
104
  };
113
105
  }
114
- export async function collectDockerDiagnostics(socketPath, dockerGet = dockerApiGet) {
106
+ export async function collectDockerDiagnostics(endpoint, dockerGet = dockerApiGet) {
115
107
  const unavailable = (reason, socketMounted) => ({
116
108
  available: false,
117
109
  socketMounted,
@@ -122,28 +114,32 @@ export async function collectDockerDiagnostics(socketPath, dockerGet = dockerApi
122
114
  pausedContainers: 0,
123
115
  containers: [],
124
116
  });
125
- if (!socketPath) {
126
- return unavailable('Docker diagnostics require a local Unix socket; remote Docker endpoints are not queried.', false);
117
+ if (!endpoint) {
118
+ return unavailable('Docker diagnostics need the local Unix socket or a plain-HTTP tcp:// endpoint (such as a socket proxy); the configured DOCKER_HOST is neither.', false);
127
119
  }
128
- let socketMounted = false;
129
- try {
130
- const socketStats = await stat(socketPath);
131
- socketMounted = socketStats.isSocket();
132
- }
133
- catch (error) {
134
- if (error.code === 'EACCES') {
135
- return unavailable('The Docker socket is mounted but the Libre WebUI process cannot read it.', true);
120
+ // "socketMounted" doubles as "an endpoint is configured": a tcp endpoint
121
+ // has no socket file to stat, so reachability is decided by the request.
122
+ if (endpoint.kind === 'unix') {
123
+ let socketMounted = false;
124
+ try {
125
+ const socketStats = await stat(endpoint.socketPath);
126
+ socketMounted = socketStats.isSocket();
127
+ }
128
+ catch (error) {
129
+ if (error.code === 'EACCES') {
130
+ return unavailable('The Docker socket is mounted but the Libre WebUI process cannot read it.', true);
131
+ }
132
+ return unavailable('Docker is unavailable because its local socket is not mounted.', false);
133
+ }
134
+ if (!socketMounted) {
135
+ return unavailable('The configured Docker path is not a Unix socket.', false);
136
136
  }
137
- return unavailable('Docker is unavailable because its local socket is not mounted.', false);
138
- }
139
- if (!socketMounted) {
140
- return unavailable('The configured Docker path is not a Unix socket.', false);
141
137
  }
142
138
  try {
143
139
  const [version, info, containers] = await Promise.all([
144
- dockerGet(socketPath, '/version'),
145
- dockerGet(socketPath, '/info'),
146
- dockerGet(socketPath, '/containers/json?all=1'),
140
+ dockerGet(endpoint, '/version'),
141
+ dockerGet(endpoint, '/info'),
142
+ dockerGet(endpoint, '/containers/json?all=1'),
147
143
  ]);
148
144
  return summarizeDockerPayloads((version ?? {}), (info ?? {}), Array.isArray(containers) ? containers : []);
149
145
  }
@@ -153,17 +149,22 @@ export async function collectDockerDiagnostics(socketPath, dockerGet = dockerApi
153
149
  ? 'The Docker socket is mounted but the Libre WebUI process cannot read it.'
154
150
  : code === 'ETIMEDOUT'
155
151
  ? 'The Docker daemon did not answer the diagnostics request in time.'
156
- : 'The Docker socket is mounted, but the daemon could not be reached.';
152
+ : endpoint.kind === 'unix'
153
+ ? 'The Docker socket is mounted, but the daemon could not be reached.'
154
+ : 'The configured Docker tcp endpoint could not be reached.';
157
155
  return unavailable(reason, true);
158
156
  }
159
157
  }
160
- async function dockerApiGet(socketPath, requestPath) {
158
+ async function dockerApiGet(endpoint, requestPath) {
161
159
  return new Promise((resolve, reject) => {
162
160
  const request = http.request({
163
- socketPath,
161
+ ...dockerEndpointRequestOptions(endpoint),
164
162
  method: 'GET',
165
163
  path: requestPath,
166
- headers: { Host: 'docker', Accept: 'application/json' },
164
+ headers: {
165
+ ...(endpoint.kind === 'unix' ? { Host: 'docker' } : {}),
166
+ Accept: 'application/json',
167
+ },
167
168
  }, response => {
168
169
  const chunks = [];
169
170
  let received = 0;
@@ -273,13 +274,13 @@ export class SystemDiagnosticsService {
273
274
  const usedBytes = Math.max(0, totalBytes - freeBytes);
274
275
  const processMemory = process.memoryUsage();
275
276
  const dataDirectory = process.env.DATA_DIR || path.join(process.cwd(), 'backend', 'data');
276
- const socketPath = resolveSystemDockerSocketPath(process.env.WORK_DOCKER_SOCKET, process.env.DOCKER_HOST);
277
+ const dockerEndpoint = resolveDockerEndpoint(process.env.WORK_DOCKER_SOCKET, process.env.DOCKER_HOST, process.env.DOCKER_TLS_VERIFY);
277
278
  const [containerized, runtimeFilesystem, dataFilesystem, network, docker] = await Promise.all([
278
279
  detectContainerized(),
279
280
  collectFilesystem('Runtime filesystem', '/'),
280
281
  collectFilesystem('Data directory', dataDirectory),
281
282
  collectNetworkInterfaces(),
282
- collectDockerDiagnostics(socketPath),
283
+ collectDockerDiagnostics(dockerEndpoint),
283
284
  ]);
284
285
  const filesystems = [runtimeFilesystem, dataFilesystem].filter((item) => item !== null);
285
286
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"systemDiagnosticsService.js","sourceRoot":"","sources":["../../src/services/systemDiagnosticsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemDiagnosticsService.js","sourceRoot":"","sources":["../../src/services/systemDiagnosticsService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ export declare const WEB_SEARCH_ENABLED_KEY = "web_search_enabled";
2
+ export declare const WEB_SEARCH_URL_KEY = "web_search_url";
3
+ export declare const WEB_SEARCH_ACCESS_KEY = "web_search_access";
4
+ export declare const WEB_SEARCH_MAX_RESULTS_KEY = "web_search_max_results";
5
+ export declare const WEB_SEARCH_SAFE_SEARCH_KEY = "web_search_safe_search";
6
+ export declare const WEB_SEARCH_DEFAULT_MAX_RESULTS = 6;
7
+ export declare const WEB_SEARCH_RESULTS_CEILING = 10;
8
+ export type WebSearchAccessMode = 'admins' | 'all-users';
9
+ export declare function isWebSearchAccessMode(value: unknown): value is WebSearchAccessMode;
10
+ export interface WebSearchResult {
11
+ title: string;
12
+ url: string;
13
+ content: string;
14
+ engine?: string;
15
+ }
16
+ export interface WebSearchConfig {
17
+ enabled: boolean;
18
+ url: string;
19
+ /** Enabled and a URL is set — search can actually run. */
20
+ available: boolean;
21
+ /** Admin ceiling on results per search, 1-10. */
22
+ maxResults: number;
23
+ safeSearch: boolean;
24
+ }
25
+ export declare function normalizeWebSearchMaxResults(value: unknown): number;
26
+ export declare function normalizeWebSearchUrl(value: unknown): string;
27
+ export declare function getWebSearchConfig(): WebSearchConfig;
28
+ export declare function setWebSearchConfig(input: {
29
+ enabled: boolean;
30
+ url: string;
31
+ maxResults?: number;
32
+ safeSearch?: boolean;
33
+ }): WebSearchConfig;
34
+ export declare function isWebSearchAvailable(): boolean;
35
+ /**
36
+ * Who may use web search, mirroring the Work access mode: administrators
37
+ * always may; other active users only when an administrator opens it up in
38
+ * User Management. Defaults to admins-only and fails closed.
39
+ */
40
+ export declare function getWebSearchAccessMode(): WebSearchAccessMode;
41
+ export declare function setWebSearchAccessMode(mode: WebSearchAccessMode): void;
42
+ /** Whether this user may run web searches right now (search must also be available). */
43
+ export declare function userCanUseWebSearch(user: {
44
+ role?: string;
45
+ status?: string;
46
+ } | undefined | null): boolean;
47
+ export declare function webSearch(query: string, maxResults?: number): Promise<WebSearchResult[]>;
48
+ /**
49
+ * The latest user message enhanced with search context, mirroring the
50
+ * document-RAG enhancement shape so every provider path benefits.
51
+ */
52
+ export declare function buildWebSearchEnhancedContent(content: string, results: readonly WebSearchResult[], query: string): string;
53
+ declare const _default: {
54
+ getWebSearchConfig: typeof getWebSearchConfig;
55
+ setWebSearchConfig: typeof setWebSearchConfig;
56
+ isWebSearchAvailable: typeof isWebSearchAvailable;
57
+ getWebSearchAccessMode: typeof getWebSearchAccessMode;
58
+ setWebSearchAccessMode: typeof setWebSearchAccessMode;
59
+ userCanUseWebSearch: typeof userCanUseWebSearch;
60
+ webSearch: typeof webSearch;
61
+ buildWebSearchEnhancedContent: typeof buildWebSearchEnhancedContent;
62
+ };
63
+ export default _default;
64
+ //# sourceMappingURL=webSearchService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSearchService.d.ts","sourceRoot":"","sources":["../../src/services/webSearchService.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B;AAMD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAInE;AAyBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAc5D;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAiBpD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAoBlB;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAG5D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAKtE;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,GAC1D,OAAO,CAKT;AAcD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,EAAE,CAAC,CAiE5B;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,KAAK,EAAE,MAAM,GACZ,MAAM,CAWR"}