libre-webui 0.20.0 → 0.21.1

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 (175) hide show
  1. package/README.md +31 -21
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +2 -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 +31 -5
  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/services/agentAccessService.d.ts +6 -0
  22. package/backend/dist/services/agentAccessService.d.ts.map +1 -0
  23. package/backend/dist/services/agentAccessService.js +58 -0
  24. package/backend/dist/services/agentAccessService.js.map +1 -0
  25. package/backend/dist/services/agentCliService.d.ts.map +1 -1
  26. package/backend/dist/services/agentCliService.js +2 -1
  27. package/backend/dist/services/agentCliService.js.map +1 -1
  28. package/backend/dist/services/authService.d.ts +1 -0
  29. package/backend/dist/services/authService.d.ts.map +1 -1
  30. package/backend/dist/services/authService.js +2 -0
  31. package/backend/dist/services/authService.js.map +1 -1
  32. package/backend/dist/services/documentService.d.ts +2 -0
  33. package/backend/dist/services/documentService.d.ts.map +1 -1
  34. package/backend/dist/services/documentService.js +51 -23
  35. package/backend/dist/services/documentService.js.map +1 -1
  36. package/backend/dist/services/modelAccessService.d.ts +12 -0
  37. package/backend/dist/services/modelAccessService.d.ts.map +1 -0
  38. package/backend/dist/services/modelAccessService.js +66 -0
  39. package/backend/dist/services/modelAccessService.js.map +1 -0
  40. package/backend/dist/services/webSearchService.d.ts +64 -0
  41. package/backend/dist/services/webSearchService.d.ts.map +1 -0
  42. package/backend/dist/services/webSearchService.js +237 -0
  43. package/backend/dist/services/webSearchService.js.map +1 -0
  44. package/backend/dist/services/workAgentGuidance.d.ts +1 -0
  45. package/backend/dist/services/workAgentGuidance.d.ts.map +1 -1
  46. package/backend/dist/services/workAgentGuidance.js +3 -0
  47. package/backend/dist/services/workAgentGuidance.js.map +1 -1
  48. package/backend/dist/services/workAgentService.d.ts +6 -0
  49. package/backend/dist/services/workAgentService.d.ts.map +1 -1
  50. package/backend/dist/services/workAgentService.js +199 -11
  51. package/backend/dist/services/workAgentService.js.map +1 -1
  52. package/backend/dist/services/workPolicyService.d.ts.map +1 -1
  53. package/backend/dist/services/workPolicyService.js +61 -11
  54. package/backend/dist/services/workPolicyService.js.map +1 -1
  55. package/backend/dist/storage.d.ts.map +1 -1
  56. package/backend/dist/storage.js +3 -3
  57. package/backend/dist/storage.js.map +1 -1
  58. package/backend/dist/storageMappers.d.ts +1 -0
  59. package/backend/dist/storageMappers.d.ts.map +1 -1
  60. package/backend/dist/storageMappers.js +1 -0
  61. package/backend/dist/storageMappers.js.map +1 -1
  62. package/backend/dist/types/index.d.ts +1 -0
  63. package/backend/dist/types/index.d.ts.map +1 -1
  64. package/backend/dist/types/index.js.map +1 -1
  65. package/backend/dist/utils/chatDocumentContext.d.ts +7 -0
  66. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  67. package/backend/dist/utils/chatDocumentContext.js +38 -30
  68. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  69. package/backend/dist/websocketServer.d.ts.map +1 -1
  70. package/backend/dist/websocketServer.js +79 -15
  71. package/backend/dist/websocketServer.js.map +1 -1
  72. package/backend/package.json +1 -1
  73. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  74. package/frontend/dist/assets/index-BN-WAt2j.js +2 -0
  75. package/frontend/dist/assets/index-D7m1zWWg.css +1 -0
  76. package/frontend/dist/index.html +12 -12
  77. package/frontend/dist/js/ArtifactContainer-BD20LheX.js +1 -0
  78. package/frontend/dist/js/{ArtifactDemoPage-BOlB1lS-.js → ArtifactDemoPage-DQBTKgzC.js} +1 -1
  79. package/frontend/dist/js/{ArtifactSandboxFrame-DqU5GDrI.js → ArtifactSandboxFrame-CpblpEf4.js} +2 -2
  80. package/frontend/dist/js/{ArtifactSlideOutPanel-B0I-hCux.js → ArtifactSlideOutPanel-BVgr8Cv6.js} +1 -1
  81. package/frontend/dist/js/ChatPage-D2EWlzO4.js +16 -0
  82. package/frontend/dist/js/FirstTimeSetup-C3ldEPmK.js +1 -0
  83. package/frontend/dist/js/GalleryPage-DrrOhli8.js +1 -0
  84. package/frontend/dist/js/HomePage-D21Haon_.js +1 -0
  85. package/frontend/dist/js/{LibreClawPage-DUd3tjQE.js → LibreClawPage-CEf9ws8z.js} +1 -1
  86. package/frontend/dist/js/{ModelManagerModals-D9j9RECi.js → ModelManagerModals-D-NxeVvV.js} +1 -1
  87. package/frontend/dist/js/ModelSelector-whWBlN-S.js +1 -0
  88. package/frontend/dist/js/ModelsPage-CL2t9qNT.js +2 -0
  89. package/frontend/dist/js/{NotesPage-CTutDN50.js → NotesPage-D10aWpVj.js} +1 -1
  90. package/frontend/dist/js/{PersonasPage-C6iTMI3N.js → PersonasPage-BvCPzwx2.js} +2 -2
  91. package/frontend/dist/js/{PluginUsagePage-BQQ0-_PP.js → PluginUsagePage-B9YgizW8.js} +1 -1
  92. package/frontend/dist/js/{RichMessageContent-DPqeqxkQ.js → RichMessageContent-2L-mHp9Q.js} +1 -1
  93. package/frontend/dist/js/SettingsModal-BK05P_rU.js +1 -0
  94. package/frontend/dist/js/SystemPage-CKnhy0Fr.js +1 -0
  95. package/frontend/dist/js/UserManagementPage-B3gA_Zx8.js +1 -0
  96. package/frontend/dist/js/WorkPage-Bj3UVrmb.js +5 -0
  97. package/frontend/dist/js/{api-iCpOEijB.js → api-DjQINB7B.js} +4 -4
  98. package/frontend/dist/js/{appStore-DTd6dWg2.js → appStore-CIV0DhiE.js} +2 -2
  99. package/frontend/dist/js/ar-Bm27TCMQ.js +2 -0
  100. package/frontend/dist/js/{authStore-CuK4HUVh.js → authStore-pmXfK_qt.js} +3 -3
  101. package/frontend/dist/js/bn-C7CHC42H.js +2 -0
  102. package/frontend/dist/js/chatStore-D76rdaV6.js +2 -0
  103. package/frontend/dist/js/{config--Xp9rZtJ.js → config-DF-g5uwS.js} +1 -1
  104. package/frontend/dist/js/cs-zGEtwQn_.js +2 -0
  105. package/frontend/dist/js/da-B-0sHNTu.js +2 -0
  106. package/frontend/dist/js/de-UZNE6t2h.js +2 -0
  107. package/frontend/dist/js/es-CPLnFYIw.js +2 -0
  108. package/frontend/dist/js/{estree-BAQkciRX.js → estree-livw6QLA.js} +1 -1
  109. package/frontend/dist/js/fr-Br1o0WVz.js +2 -0
  110. package/frontend/dist/js/hi-BcEvNEpb.js +2 -0
  111. package/frontend/dist/js/{html-DxA-Bcvi.js → html-CWlKlrlk.js} +1 -1
  112. package/frontend/dist/js/i18n-DJTg6xWw.js +2 -0
  113. package/frontend/dist/js/id-C30L2DoT.js +2 -0
  114. package/frontend/dist/js/is-BAEhfi5Z.js +2 -0
  115. package/frontend/dist/js/it-HWnfQXZY.js +2 -0
  116. package/frontend/dist/js/ja-Dvux1mon.js +2 -0
  117. package/frontend/dist/js/ko-agDQ__KP.js +2 -0
  118. package/frontend/dist/js/{markdown-IsZpJ5ke.js → markdown-BM75gisb.js} +1 -1
  119. package/frontend/dist/js/{messageCodeStyles-CsV3zwyK.js → messageCodeStyles-DxPb6SKm.js} +2 -2
  120. package/frontend/dist/js/ms-aNRa2QX7.js +2 -0
  121. package/frontend/dist/js/nl-BtkiDUn-.js +2 -0
  122. package/frontend/dist/js/pl-SEO0lBnX.js +2 -0
  123. package/frontend/dist/js/pt-BYtjmvq1.js +2 -0
  124. package/frontend/dist/js/ru-B-ynj2hU.js +2 -0
  125. package/frontend/dist/js/{standalone-CK3b5Ktq.js → standalone-h0KNQ5yy.js} +1 -1
  126. package/frontend/dist/js/sv-CliKR15U.js +2 -0
  127. package/frontend/dist/js/th-DJQyDr9J.js +2 -0
  128. package/frontend/dist/js/tr-BBGKZ1la.js +2 -0
  129. package/frontend/dist/js/{typescript-BMYmVohw.js → typescript-CPI0lY4n.js} +1 -1
  130. package/frontend/dist/js/{ui-C2kNYwfG.js → ui-ovAoLjDQ.js} +2 -2
  131. package/frontend/dist/js/{ui-vendor-D_pYT79f.js → ui-vendor-xUzKqAXI.js} +1 -1
  132. package/frontend/dist/js/uk-C1GcFWxE.js +2 -0
  133. package/frontend/dist/js/vi-CIxgICOQ.js +2 -0
  134. package/frontend/dist/js/{workApi-C33ZrPws.js → workApi-CCHIEahA.js} +2 -2
  135. package/frontend/dist/js/zh-Cm7vsQ9s.js +2 -0
  136. package/package.json +2 -2
  137. package/frontend/dist/assets/index-Z4-oLWDC.js +0 -2
  138. package/frontend/dist/assets/index-tBUyDbHh.css +0 -1
  139. package/frontend/dist/js/ArtifactContainer-DQRF4rh-.js +0 -1
  140. package/frontend/dist/js/ChatPage-DyV0_oCt.js +0 -16
  141. package/frontend/dist/js/FirstTimeSetup-ButTmjp0.js +0 -1
  142. package/frontend/dist/js/GalleryPage-CaT63b-s.js +0 -1
  143. package/frontend/dist/js/HomePage-BWyg3nHu.js +0 -1
  144. package/frontend/dist/js/ModelSelector-COFcJnMJ.js +0 -1
  145. package/frontend/dist/js/ModelsPage-BRbTEXNL.js +0 -2
  146. package/frontend/dist/js/SettingsModal-C_1k75Kv.js +0 -1
  147. package/frontend/dist/js/SystemPage-CUecyRPh.js +0 -1
  148. package/frontend/dist/js/UserManagementPage-CZ4KMOY9.js +0 -1
  149. package/frontend/dist/js/WorkPage-BqDcfXV6.js +0 -5
  150. package/frontend/dist/js/ar-C8YV99Y-.js +0 -2
  151. package/frontend/dist/js/bn-C9dcls7_.js +0 -2
  152. package/frontend/dist/js/chatStore-VNT0eHRB.js +0 -2
  153. package/frontend/dist/js/cs-DtL8VeeX.js +0 -2
  154. package/frontend/dist/js/da-U3aNn1aF.js +0 -2
  155. package/frontend/dist/js/de-DzuyeVpX.js +0 -2
  156. package/frontend/dist/js/es-OiU8plii.js +0 -2
  157. package/frontend/dist/js/fr-DDa3R8bs.js +0 -2
  158. package/frontend/dist/js/hi-D8Y0hl34.js +0 -2
  159. package/frontend/dist/js/i18n-BqWNFeNo.js +0 -2
  160. package/frontend/dist/js/id-BwcWtkBv.js +0 -2
  161. package/frontend/dist/js/is-DzfQHQih.js +0 -2
  162. package/frontend/dist/js/it-C5VU3_Je.js +0 -2
  163. package/frontend/dist/js/ja-DLhOhxvf.js +0 -2
  164. package/frontend/dist/js/ko-CCKiyQD6.js +0 -2
  165. package/frontend/dist/js/ms-CXXkPvWw.js +0 -2
  166. package/frontend/dist/js/nl-CA_e0Epl.js +0 -2
  167. package/frontend/dist/js/pl-BG32wdpx.js +0 -2
  168. package/frontend/dist/js/pt-BzRGWQXO.js +0 -2
  169. package/frontend/dist/js/ru-DBjn_Q-Q.js +0 -2
  170. package/frontend/dist/js/sv-Hz_iRGdF.js +0 -2
  171. package/frontend/dist/js/th-MsyXlGH9.js +0 -2
  172. package/frontend/dist/js/tr-Cofmy_ef.js +0 -2
  173. package/frontend/dist/js/uk-B2o05LCR.js +0 -2
  174. package/frontend/dist/js/vi-CZh8uJgV.js +0 -2
  175. package/frontend/dist/js/zh-DhKXi8ZA.js +0 -2
package/README.md CHANGED
@@ -55,7 +55,8 @@ anyone's permission.
55
55
  ## Quick start
56
56
 
57
57
  You need [Node.js 22.22 or newer](https://nodejs.org). Docker is optional — only
58
- [Work](#work-one-persistent-environment-per-task) requires it.
58
+ [Work](#work-one-persistent-environment-per-task) needs a sandbox runtime
59
+ (Docker locally, or Kubernetes when deployed with the Helm chart).
59
60
 
60
61
  ```bash
61
62
  npx libre-webui@latest
@@ -172,8 +173,8 @@ and preview — so returning to it a week later returns to exactly where it was.
172
173
  ```text
173
174
  Work task
174
175
  ├── durable conversation and run history in SQLite
175
- ├── dedicated Docker named volume mounted at /workspace
176
- ├── disposable, policy-checked container for commands
176
+ ├── dedicated persistent volume mounted at /workspace
177
+ ├── disposable, policy-checked sandbox for commands
177
178
  └── Files · Activity · Terminal · Preview workspace pane
178
179
  ```
179
180
 
@@ -195,13 +196,18 @@ can make many paid calls and can send conversation context and tool results,
195
196
  including file contents, to that provider. You should know that before a run
196
197
  starts, not after the bill.
197
198
 
198
- **On the sandbox.** Work is admin-only and never falls back to host execution.
199
- Containers run as a non-root user with a read-only root filesystem, dropped
200
- capabilities, `no-new-privileges`, resource limits with swap pinned to the
201
- memory cap, and only the task volume mounted. Networked tasks join a managed
202
- bridge with inter-container communication disabled. The whole policy is hashed
203
- into a container label and re-verified before reuse, so a container predating a
204
- hardening change is recreated rather than reused.
199
+ **On the sandbox.** Work is admins-only by default — an administrator can open
200
+ it to all users, and access is re-checked on every request — and it never falls
201
+ back to host execution. Containers run as a non-root user with a read-only
202
+ root filesystem, dropped capabilities, `no-new-privileges`, resource limits
203
+ with swap pinned to the memory cap, and only the task volume mounted.
204
+ Networked tasks join a managed bridge with inter-container communication
205
+ disabled. The whole policy is hashed into a container label and re-verified
206
+ before reuse, so a container predating a hardening change is recreated rather
207
+ than reused. Administrators can define **named runtime policies** — image,
208
+ resource limits, workspace size, idle timeout — that tasks are created under;
209
+ the hardening profile is not a policy field, so a policy can size a sandbox
210
+ but never weaken it.
205
211
 
206
212
  Two honest limits: containers are not virtual machines, and Work tasks have
207
213
  outbound internet egress by design.
@@ -246,21 +252,21 @@ Browser or desktop client
246
252
  │
247
253
  ├────────► Ollama (local models)
248
254
  ├────────► selected provider plugins
249
- ├────────► Docker (native Work task containers)
255
+ ├────────► Docker or Kubernetes (Work task sandboxes)
250
256
  └────────► Libre Claw (optional agent runtime)
251
257
  ```
252
258
 
253
259
  ## Deploy on your terms
254
260
 
255
- | Path | Command or link | Best for |
256
- | ------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------- |
257
- | **npm** | `npx libre-webui@latest` | Fast local start; Work available when Docker is installed |
258
- | **Docker + Ollama** | `docker compose up -d` | Persistent stack; Work enabled through host Docker |
259
- | **External Ollama** | `docker compose -f docker-compose.external-ollama.yml up -d` | An Ollama you already run |
260
- | **NVIDIA Docker** | `docker compose -f docker-compose.gpu.yml up -d` | Local GPU inference |
261
- | **Kubernetes** | `helm install libre-webui oci://ghcr.io/libre-webui/charts/libre-webui` | Cluster deployment; the chart has no Work runtime driver |
262
- | **Desktop client** | [GitHub Releases](https://github.com/libre-webui/libre-webui/releases) | Electron UI over a separately managed backend |
263
- | **Source** | `npm install && npm run dev` | Development |
261
+ | Path | Command or link | Best for |
262
+ | ------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
263
+ | **npm** | `npx libre-webui@latest` | Fast local start; Work available when Docker is installed |
264
+ | **Docker + Ollama** | `docker compose up -d` | Persistent stack; Work enabled through host Docker |
265
+ | **External Ollama** | `docker compose -f docker-compose.external-ollama.yml up -d` | An Ollama you already run |
266
+ | **NVIDIA Docker** | `docker compose -f docker-compose.gpu.yml up -d` | Local GPU inference |
267
+ | **Kubernetes** | `helm install libre-webui oci://ghcr.io/libre-webui/charts/libre-webui` | Cluster deployment; `--set work.enabled=true` runs Work sandboxes as Pods — no Docker socket anywhere |
268
+ | **Desktop client** | [GitHub Releases](https://github.com/libre-webui/libre-webui/releases) | Electron UI over a separately managed backend |
269
+ | **Source** | `npm install && npm run dev` | Development |
264
270
 
265
271
  Docker commands assume you have cloned this repository. Production deployments
266
272
  should set stable `JWT_SECRET` and `ENCRYPTION_KEY` values, persist the data
@@ -274,7 +280,11 @@ unless `ENABLE_SIGNUP=true` is set deliberately.
274
280
  > **The Docker socket is the security decision to understand.** Repository
275
281
  > Compose files mount it so Work functions out of the box. That grants Libre
276
282
  > WebUI root-equivalent control of the host and makes every Libre WebUI
277
- > administrator a host administrator. Remove the mount when Work is not wanted.
283
+ > administrator a host administrator. Remove the mount when Work is not
284
+ > wanted — or keep Work without handing the app the socket:
285
+ > `docker compose -f docker-compose.socket-proxy.yml up -d` runs Work through
286
+ > a filtered API proxy on an internal network, and the Kubernetes backend
287
+ > needs no socket at all.
278
288
 
279
289
  On Linux, set the socket group in `.env`:
280
290
 
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAiBA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AA0BtC;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CA0D/C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAO1D;AAuxBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAa/C;eAGc,WAAW"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAiBA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AA0BtC;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CA0D/C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAO1D;AAyxBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAa/C;eAGc,WAAW"}
@@ -162,6 +162,7 @@ function initializeTables() {
162
162
  archived INTEGER DEFAULT 0, -- Hidden from the sidebar until unarchived
163
163
  settings TEXT, -- Encrypted JSON with per-chat overrides
164
164
  folder_id TEXT, -- Optional folder this chat lives in
165
+ pinned INTEGER DEFAULT 0, -- Shown in the sidebar's Pinned group
165
166
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
166
167
  FOREIGN KEY (persona_id) REFERENCES personas(id) ON DELETE SET NULL
167
168
  )
@@ -697,6 +698,7 @@ function runMigrations() {
697
698
  { name: 'archived', type: 'INTEGER DEFAULT 0' },
698
699
  { name: 'settings', type: 'TEXT' },
699
700
  { name: 'folder_id', type: 'TEXT' },
701
+ { name: 'pinned', type: 'INTEGER DEFAULT 0' },
700
702
  ]) {
701
703
  if (!existingSessionsColumns.includes(column.name)) {
702
704
  logger.debug(`Adding column ${column.name} to sessions table`);
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AAyElB,QAAA,MAAM,GAAG,6CAAY,CAAC;eA+mBP,GAAG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AA2ElB,QAAA,MAAM,GAAG,6CAAY,CAAC;eA0oBP,GAAG"}
@@ -62,6 +62,7 @@ import libreClawRoutes from './routes/libreClaw.js';
62
62
  import workRoutes from './routes/work.js';
63
63
  import systemDiagnosticsRoutes from './routes/systemDiagnostics.js';
64
64
  import artifactsRoutes from './routes/artifacts.js';
65
+ import searchRoutes from './routes/search.js';
65
66
  import ollamaService from './services/ollamaService.js';
66
67
  import workRuntimeService from './services/workRuntimeService.js';
67
68
  import workTaskService from './services/workTaskService.js';
@@ -72,6 +73,7 @@ import { HuggingFaceOAuthService } from './services/simpleHuggingFaceOAuth.js';
72
73
  import { loadAppPackage, resolveFrontendDist } from './utils/packagePaths.js';
73
74
  import { registerWebSocketServer } from './websocketServer.js';
74
75
  import { createLogger } from './utils/logger.js';
76
+ import { getDatabase } from './db.js';
75
77
  const pkg = loadAppPackage(import.meta.url);
76
78
  const app = express();
77
79
  const logger = createLogger('server');
@@ -480,10 +482,10 @@ app.use('/api/libre-claw', libreClawRateLimiter, libreClawRoutes);
480
482
  app.use('/api/work', workRateLimiter, workRoutes);
481
483
  app.use('/api/system', systemDiagnosticsRoutes);
482
484
  app.use('/api/artifacts', artifactsRoutes);
485
+ app.use('/api/search', chatRateLimiter, searchRoutes);
483
486
  // Serve frontend static files in production (for npx libre-webui)
484
487
  if (process.env.NODE_ENV === 'production' ||
485
488
  process.env.SERVE_FRONTEND === 'true') {
486
- const pathModule = await import('path');
487
489
  const frontendPath = resolveFrontendDist(import.meta.url);
488
490
  if (frontendPath) {
489
491
  logger.info(`Serving frontend from: ${frontendPath}`);
@@ -496,18 +498,25 @@ if (process.env.NODE_ENV === 'production' ||
496
498
  legacyHeaders: false,
497
499
  });
498
500
  app.use(staticRateLimiter, express.static(frontendPath));
499
- // SPA fallback - serve index.html for all non-API routes
500
- const indexPath = pathModule.join(frontendPath, 'index.html');
501
+ // SPA fallback - serve index.html for all non-API routes. Pass the file
502
+ // relative to a root instead of as an absolute path: send() rejects
503
+ // absolute paths that contain a dot-segment, and the npx cache lives
504
+ // under ~/.npm/_npx, so every `npx libre-webui` install 500s on deep
505
+ // links without the root option.
506
+ const indexFile = 'index.html';
507
+ const sendIndex = (res) => {
508
+ res.sendFile(indexFile, { root: frontendPath });
509
+ };
501
510
  // Root route
502
511
  app.get('/', staticRateLimiter, (_req, res) => {
503
- res.sendFile(indexPath);
512
+ sendIndex(res);
504
513
  });
505
514
  // All other non-API routes (Express 5 wildcard syntax)
506
515
  app.get('/{*splat}', staticRateLimiter, (req, res, next) => {
507
516
  if (req.path.startsWith('/api/') || req.path.startsWith('/ws')) {
508
517
  return next();
509
518
  }
510
- res.sendFile(indexPath);
519
+ sendIndex(res);
511
520
  });
512
521
  }
513
522
  else {
@@ -530,6 +539,23 @@ server.listen({ port, host }, () => {
530
539
  const url = `http://${displayHost}:${port}`;
531
540
  logger.info(`Libre WebUI v${pkg.version}`);
532
541
  logger.info(url);
542
+ // One quiet line on the very first boot, never repeated. Not a nag, not a
543
+ // modal, no telemetry — the flag lives in the local database only.
544
+ try {
545
+ const db = getDatabase();
546
+ const seen = db
547
+ .prepare('SELECT value FROM system_settings WHERE key = ?')
548
+ .get('first_run_star_note');
549
+ if (!seen) {
550
+ db.prepare(`INSERT INTO system_settings (key, value, updated_at)
551
+ VALUES (?, ?, ?)
552
+ ON CONFLICT(key) DO NOTHING`).run('first_run_star_note', 'shown', Date.now());
553
+ logger.info('If Libre WebUI is useful to you, a star helps others find it: https://github.com/libre-webui/libre-webui');
554
+ }
555
+ }
556
+ catch {
557
+ // A missing table or read-only database must never affect startup.
558
+ }
533
559
  // Open browser in production mode
534
560
  if (process.env.SERVE_FRONTEND === 'true' &&
535
561
  process.env.OPEN_BROWSER !== 'false') {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"AA4DA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAmkCjB,MAAM"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"AAuEA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAorCjB,MAAM"}
@@ -23,6 +23,8 @@ import { personaService } from '../services/personaService.js';
23
23
  import { authenticate } from '../middleware/auth.js';
24
24
  import { extractStatistics } from '../utils/generationUtils.js';
25
25
  import agentCliService from '../services/agentCliService.js';
26
+ import { buildWebSearchEnhancedContent, isWebSearchAvailable, userCanUseWebSearch, webSearch as runWebSearch, } from '../services/webSearchService.js';
27
+ import { userModel } from '../models/userModel.js';
26
28
  import chatGenerationService from '../services/chatGenerationService.js';
27
29
  import preferencesService from '../services/preferencesService.js';
28
30
  import { ChatRequestService } from '../services/chatRequestService.js';
@@ -30,7 +32,7 @@ import { TitleGenerationService } from '../services/titleGenerationService.js';
30
32
  import { FollowUpService } from '../services/followUpService.js';
31
33
  import { getErrorMessage, } from '../types/index.js';
32
34
  import { createLogger } from '../utils/logger.js';
33
- import { buildChatDocumentContext } from '../utils/chatDocumentContext.js';
35
+ import { buildChatDocumentContext, EMPTY_CHAT_DOCUMENT_CONTEXT, } from '../utils/chatDocumentContext.js';
34
36
  import { ChatProviderSelectionError } from '../utils/chatProviderSelection.js';
35
37
  import { formatPluginStreamToolCalls } from '../utils/pluginStreaming.js';
36
38
  import { ResourcePolicyError } from '../utils/resourceLimits.js';
@@ -324,24 +326,44 @@ router.post('/sessions/:sessionId/generate', async (req, res) => {
324
326
  });
325
327
  return;
326
328
  }
327
- let documentContext = {
328
- enhancedContent: message,
329
- hasRelevantContext: false,
330
- };
329
+ let documentContext = EMPTY_CHAT_DOCUMENT_CONTEXT(message);
331
330
  try {
332
331
  documentContext = await buildChatDocumentContext(message, sessionId, userId);
333
332
  }
334
333
  catch (error) {
335
334
  logger.error('Error during document search:', error);
336
335
  }
336
+ // Requested web search composes on top of any document context; a
337
+ // failed search degrades to a normal reply rather than failing it.
338
+ let webSearchSources;
339
+ let enhancedContent = documentContext.enhancedContent;
340
+ let hasRelevantContext = documentContext.hasRelevantContext;
341
+ if (req.body?.webSearch === true &&
342
+ isWebSearchAvailable() &&
343
+ userCanUseWebSearch(userModel.getUserById(userId))) {
344
+ try {
345
+ const results = await runWebSearch(message);
346
+ if (results.length > 0) {
347
+ enhancedContent = buildWebSearchEnhancedContent(enhancedContent, results, message);
348
+ hasRelevantContext = true;
349
+ webSearchSources = results.map(({ title, url }) => ({
350
+ title,
351
+ url,
352
+ }));
353
+ }
354
+ }
355
+ catch (error) {
356
+ logger.error('Web search failed; answering without it:', error);
357
+ }
358
+ }
337
359
  const preparedGeneration = await chatRequestService.prepareGenerationRequest({
338
360
  session,
339
361
  userId,
340
362
  options,
341
363
  persistedMessages: chatService.getMessagesForContext(sessionId),
342
364
  content: message,
343
- hasRelevantContext: documentContext.hasRelevantContext,
344
- enhancedContent: documentContext.enhancedContent,
365
+ hasRelevantContext,
366
+ enhancedContent,
345
367
  });
346
368
  const generationResult = await chatGenerationService.executeNonStreaming({
347
369
  target: preparedGeneration.target,
@@ -361,7 +383,15 @@ router.post('/sessions/:sessionId/generate', async (req, res) => {
361
383
  thinking: generationResult.assistantThinking,
362
384
  model: session.model,
363
385
  statistics,
364
- providerMetadata: generationResult.response.message.providerMetadata,
386
+ providerMetadata: webSearchSources?.length || documentContext.sources.length > 0
387
+ ? {
388
+ ...(generationResult.response.message.providerMetadata ?? {}),
389
+ ...(webSearchSources?.length ? { webSearchSources } : {}),
390
+ ...(documentContext.sources.length > 0
391
+ ? { ragSources: documentContext.sources }
392
+ : {}),
393
+ }
394
+ : generationResult.response.message.providerMetadata,
365
395
  }, userId);
366
396
  if (!assistantMessage) {
367
397
  res.status(500).json({
@@ -418,12 +448,68 @@ router.post('/sessions/:sessionId/generate/stream', async (req, res) => {
418
448
  res.end();
419
449
  return;
420
450
  }
451
+ // Document context first, matching the WebSocket and non-stream
452
+ // paths; search composes on top of it.
453
+ let documentContext = EMPTY_CHAT_DOCUMENT_CONTEXT(message);
454
+ try {
455
+ documentContext = await buildChatDocumentContext(message, sessionId, userId);
456
+ }
457
+ catch (contextError) {
458
+ logger.error('Error during document search:', contextError);
459
+ }
460
+ // Requested web search runs before generation and reports its own
461
+ // progress so the interface can show a searching state; failure
462
+ // degrades to a normal reply.
463
+ let webSearchSources;
464
+ let searchEnhancedContent;
465
+ if (req.body?.webSearch === true &&
466
+ isWebSearchAvailable() &&
467
+ userCanUseWebSearch(userModel.getUserById(userId))) {
468
+ res.write(`data: ${JSON.stringify({ type: 'search', status: 'searching' })}\n\n`);
469
+ try {
470
+ const results = await runWebSearch(message);
471
+ if (results.length > 0) {
472
+ searchEnhancedContent = buildWebSearchEnhancedContent(documentContext.enhancedContent, results, message);
473
+ webSearchSources = results.map(({ title, url }) => ({
474
+ title,
475
+ url,
476
+ }));
477
+ }
478
+ res.write(`data: ${JSON.stringify({
479
+ type: 'search',
480
+ status: 'done',
481
+ sources: webSearchSources ?? [],
482
+ })}\n\n`);
483
+ }
484
+ catch (searchError) {
485
+ logger.error('Web search failed; answering without it:', searchError);
486
+ res.write(`data: ${JSON.stringify({
487
+ type: 'search',
488
+ status: 'failed',
489
+ error: getErrorMessage(searchError, 'Web search failed.'),
490
+ })}\n\n`);
491
+ }
492
+ }
493
+ const withSearchSources = (metadata) => {
494
+ const extras = {};
495
+ if (webSearchSources?.length) {
496
+ extras.webSearchSources = webSearchSources;
497
+ }
498
+ if (documentContext.sources.length > 0) {
499
+ extras.ragSources = documentContext.sources;
500
+ }
501
+ return Object.keys(extras).length > 0
502
+ ? { ...(metadata ?? {}), ...extras }
503
+ : metadata;
504
+ };
421
505
  const preparedGeneration = await chatRequestService.prepareGenerationRequest({
422
506
  session,
423
507
  userId,
424
508
  options,
425
509
  persistedMessages: chatService.getMessagesForContext(sessionId),
426
510
  content: message,
511
+ enhancedContent: searchEnhancedContent ?? documentContext.enhancedContent,
512
+ hasRelevantContext: Boolean(searchEnhancedContent ?? documentContext.hasRelevantContext),
427
513
  });
428
514
  const { target, actualModelName, mergedOptions, activePlugin, ollamaMessages, pluginMessages, shouldStreamPlugin, } = preparedGeneration;
429
515
  const chatRequest = {
@@ -463,7 +549,7 @@ router.post('/sessions/:sessionId/generate/stream', async (req, res) => {
463
549
  content: fullResponse,
464
550
  thinking: fullThinking || undefined,
465
551
  model: session.model,
466
- providerMetadata: assistantProviderMetadata,
552
+ providerMetadata: withSearchSources(assistantProviderMetadata),
467
553
  }, userId);
468
554
  }
469
555
  res.write(`data: ${JSON.stringify({ type: 'done' })}\n\n`);
@@ -547,7 +633,7 @@ router.post('/sessions/:sessionId/generate/stream', async (req, res) => {
547
633
  content: fullResponse,
548
634
  thinking: fullThinking || undefined,
549
635
  model: session.model,
550
- providerMetadata: assistantProviderMetadata,
636
+ providerMetadata: withSearchSources(assistantProviderMetadata),
551
637
  }, userId);
552
638
  }
553
639
  res.write(`data: ${JSON.stringify({ type: 'done' })}\n\n`);
@@ -586,6 +672,7 @@ router.post('/sessions/:sessionId/generate/stream', async (req, res) => {
586
672
  content: fullResponse,
587
673
  thinking: fullThinking || undefined,
588
674
  model: session.model,
675
+ providerMetadata: withSearchSources(undefined),
589
676
  }, userId);
590
677
  }
591
678
  res.write(`data: ${JSON.stringify({ type: 'done' })}\n\n`);