libre-webui 0.16.0 → 0.17.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.
- package/README.md +237 -149
- package/backend/dist/db.d.ts.map +1 -1
- package/backend/dist/db.js +5 -0
- package/backend/dist/db.js.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +2 -0
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/routes/agentCli.d.ts +3 -0
- package/backend/dist/routes/agentCli.d.ts.map +1 -0
- package/backend/dist/routes/agentCli.js +33 -0
- package/backend/dist/routes/agentCli.js.map +1 -0
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +27 -0
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/plugins.d.ts.map +1 -1
- package/backend/dist/routes/plugins.js +10 -3
- package/backend/dist/routes/plugins.js.map +1 -1
- package/backend/dist/routes/work.d.ts.map +1 -1
- package/backend/dist/routes/work.js +25 -3
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/agentCliService.d.ts +30 -0
- package/backend/dist/services/agentCliService.d.ts.map +1 -0
- package/backend/dist/services/agentCliService.js +328 -0
- package/backend/dist/services/agentCliService.js.map +1 -0
- package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/chatGenerationService.js +19 -1
- package/backend/dist/services/chatGenerationService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts +42 -1
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +143 -12
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/workAgentGuidance.js +1 -1
- package/backend/dist/services/workAgentGuidance.js.map +1 -1
- package/backend/dist/services/workAgentService.d.ts.map +1 -1
- package/backend/dist/services/workAgentService.js +37 -0
- package/backend/dist/services/workAgentService.js.map +1 -1
- package/backend/dist/services/workHostWorkspaceService.d.ts +22 -0
- package/backend/dist/services/workHostWorkspaceService.d.ts.map +1 -0
- package/backend/dist/services/workHostWorkspaceService.js +136 -0
- package/backend/dist/services/workHostWorkspaceService.js.map +1 -0
- package/backend/dist/services/workRuntimeService.d.ts +61 -3
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +311 -17
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/services/workTaskService.d.ts +3 -3
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +10 -6
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/services/workTerminalService.d.ts +46 -0
- package/backend/dist/services/workTerminalService.d.ts.map +1 -0
- package/backend/dist/services/workTerminalService.js +241 -0
- package/backend/dist/services/workTerminalService.js.map +1 -0
- package/backend/dist/types/index.d.ts +1 -1
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/work.d.ts +22 -0
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/utils/chatProviderSelection.d.ts.map +1 -1
- package/backend/dist/utils/chatProviderSelection.js +7 -5
- package/backend/dist/utils/chatProviderSelection.js.map +1 -1
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +51 -14
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/dist/workTerminalServer.d.ts +17 -0
- package/backend/dist/workTerminalServer.d.ts.map +1 -0
- package/backend/dist/workTerminalServer.js +224 -0
- package/backend/dist/workTerminalServer.js.map +1 -0
- package/backend/package.json +1 -1
- package/frontend/dist/assets/index-BqI0kezz.css +1 -0
- package/frontend/dist/assets/index-CRC6g6bL.js +3 -0
- package/frontend/dist/assets/xterm-CmMoOwwu.css +1 -0
- package/frontend/dist/index.html +8 -6
- package/frontend/dist/js/ArtifactContainer-Cdy-973y.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-DBVPHFxk.js → ArtifactDemoPage-B4qsvUnF.js} +1 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CmKgQ4eD.js +1 -0
- package/frontend/dist/js/{Button-DBk-AREB.js → Button-CRwzOaDZ.js} +1 -1
- package/frontend/dist/js/ChatPage-CYT69oBR.js +16 -0
- package/frontend/dist/js/FirstTimeSetup-C8LdLP5J.js +1 -0
- package/frontend/dist/js/GalleryPage-Bm89pnS8.js +1 -0
- package/frontend/dist/js/HomePage-CeCYnMUG.js +1 -0
- package/frontend/dist/js/{LibreClawPage-qGr1Jy8p.js → LibreClawPage-DGMEV6dm.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-DltRprHU.js → ModelManagerModals-DMoEav1l.js} +1 -1
- package/frontend/dist/js/ModelSelector-DXPdGdQ_.js +1 -0
- package/frontend/dist/js/ModelsPage-D-FIy2x-.js +2 -0
- package/frontend/dist/js/PersonasPage-CIrEVFo5.js +13 -0
- package/frontend/dist/js/RichMessageContent-BJ49VN9j.js +3 -0
- package/frontend/dist/js/SettingsModal-CxtOXPY7.js +1 -0
- package/frontend/dist/js/UserManagementPage-BfyYGGFQ.js +1 -0
- package/frontend/dist/js/WorkPage-C7bW6Hxx.js +4 -0
- package/frontend/dist/js/addon-fit-Cj0_dfHF.js +1 -0
- package/frontend/dist/js/api-DCD41-l9.js +19 -0
- package/frontend/dist/js/appStore-Bw-8Exsx.js +2 -0
- package/frontend/dist/js/ar-BAHlIvy0.js +2 -0
- package/frontend/dist/js/authStore-mOYH_AXI.js +4 -0
- package/frontend/dist/js/bn-BxquDVbd.js +2 -0
- package/frontend/dist/js/{cs-6UKhKj0A.js → cs-C4DoKzRm.js} +2 -2
- package/frontend/dist/js/da-CFslpGTw.js +2 -0
- package/frontend/dist/js/de-ChudoRh2.js +2 -0
- package/frontend/dist/js/es-B36fefE-.js +2 -0
- package/frontend/dist/js/{estree-PDLT672k.js → estree-0vwU39qX.js} +1 -1
- package/frontend/dist/js/fr-BSVeTM5W.js +2 -0
- package/frontend/dist/js/hi-BGoFbl5V.js +2 -0
- package/frontend/dist/js/{html-CkhF9wDQ.js → html-CApr2Bvi.js} +1 -1
- package/frontend/dist/js/id-BfYs2p_j.js +2 -0
- package/frontend/dist/js/{is-BWSbAIoq.js → is-DZ1MS-5A.js} +2 -2
- package/frontend/dist/js/it-CXtrPCG1.js +2 -0
- package/frontend/dist/js/ja-FPJ_NK_y.js +2 -0
- package/frontend/dist/js/ko-DVwD4ZZF.js +2 -0
- package/frontend/dist/js/{markdown-B1iNUbse.js → markdown-C78Qc6xu.js} +1 -1
- package/frontend/dist/js/ms-PKPP0RX3.js +2 -0
- package/frontend/dist/js/nl-DWM5HJZ8.js +2 -0
- package/frontend/dist/js/pl-B9va8Tuf.js +2 -0
- package/frontend/dist/js/pt-P0IQi-Zr.js +2 -0
- package/frontend/dist/js/ru-Ca2bxYnc.js +2 -0
- package/frontend/dist/js/{standalone-CCd6rkf-.js → standalone-DmLfI4Qj.js} +1 -1
- package/frontend/dist/js/sv-DI4RDwyZ.js +2 -0
- package/frontend/dist/js/th-DN0bDS9d.js +2 -0
- package/frontend/dist/js/tr-ChqMv5Q4.js +2 -0
- package/frontend/dist/js/{typescript-DKJ1uM5L.js → typescript-Bcq62agC.js} +1 -1
- package/frontend/dist/js/{ui-vendor-CAFEDSaO.js → ui-vendor-DohPFHDW.js} +1 -1
- package/frontend/dist/js/uk-Cr51h_XQ.js +2 -0
- package/frontend/dist/js/useBaseQuery-BAOlhjar.js +1 -0
- package/frontend/dist/js/useQuery-CcRqxveh.js +1 -0
- package/frontend/dist/js/utils-DmZD5uA3.js +1 -0
- package/frontend/dist/js/{vi-82JkwFsQ.js → vi-D4OhoVMH.js} +2 -2
- package/frontend/dist/js/work-DVgm81bJ.js +1 -0
- package/frontend/dist/js/xterm-DKl1QLiw.js +7 -0
- package/frontend/dist/js/zh-Bvau7hlR.js +2 -0
- package/package.json +3 -3
- package/frontend/dist/assets/index-CKV9Lnj8.js +0 -5
- package/frontend/dist/assets/index-Dme2Ozol.css +0 -1
- package/frontend/dist/js/ArtifactContainer-B0uVR8Z9.js +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-Cg5kAwv9.js +0 -1
- package/frontend/dist/js/ChatPage-CPHlIZqU.js +0 -16
- package/frontend/dist/js/FirstTimeSetup-DksL5arK.js +0 -1
- package/frontend/dist/js/GalleryPage-1mdUGo_N.js +0 -1
- package/frontend/dist/js/ModelSelector-CUnwRmNU.js +0 -1
- package/frontend/dist/js/ModelsPage-DMYVg3LT.js +0 -2
- package/frontend/dist/js/PersonasPage-Ct-KKW-j.js +0 -13
- package/frontend/dist/js/RichMessageContent-CGBAcUES.js +0 -3
- package/frontend/dist/js/SettingsModal-BVj3gFCS.js +0 -1
- package/frontend/dist/js/UserManagementPage-D3tLGtTu.js +0 -1
- package/frontend/dist/js/WorkPage-DhTjy-kf.js +0 -2
- package/frontend/dist/js/api-YWoSobKv.js +0 -19
- package/frontend/dist/js/ar-KceI0PfT.js +0 -2
- package/frontend/dist/js/bn-DsKo2dzS.js +0 -2
- package/frontend/dist/js/da-CJgZ3YuL.js +0 -2
- package/frontend/dist/js/de-BZAmOuCT.js +0 -2
- package/frontend/dist/js/es-CD4u7no9.js +0 -2
- package/frontend/dist/js/fr-Cou2jOS3.js +0 -2
- package/frontend/dist/js/hi-ZxkbNCyB.js +0 -2
- package/frontend/dist/js/id-DT9CqaWQ.js +0 -2
- package/frontend/dist/js/it-CdNoTXm3.js +0 -2
- package/frontend/dist/js/ja-CIuQg0xv.js +0 -2
- package/frontend/dist/js/ko-BWRUjDOH.js +0 -2
- package/frontend/dist/js/ms-gJstIj2a.js +0 -2
- package/frontend/dist/js/nl-CydjVNUw.js +0 -2
- package/frontend/dist/js/pl-DPN9mAa5.js +0 -2
- package/frontend/dist/js/pt-MRXGqIjQ.js +0 -2
- package/frontend/dist/js/ru-CvQ9GkJF.js +0 -2
- package/frontend/dist/js/sv-BxS2fvhU.js +0 -2
- package/frontend/dist/js/th-DMxyn6e4.js +0 -2
- package/frontend/dist/js/tr-BTPldUaA.js +0 -2
- package/frontend/dist/js/uk-BGxZOKgp.js +0 -2
- package/frontend/dist/js/useBaseQuery-MuQj7vA5.js +0 -1
- package/frontend/dist/js/useQuery-CYGPkxWR.js +0 -1
- package/frontend/dist/js/utils-pTFqSV8c.js +0 -1
- package/frontend/dist/js/zh-Bxxfwci3.js +0 -2
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ Self-hosted. Provider-flexible. Apache 2.0.
|
|
|
25
25
|
<a href="https://librewebui.org"><strong>Website</strong></a> ·
|
|
26
26
|
<a href="https://docs.librewebui.org"><strong>Documentation</strong></a> ·
|
|
27
27
|
<a href="https://github.com/libre-webui/libre-webui/releases"><strong>Download</strong></a> ·
|
|
28
|
-
<a href="#start
|
|
28
|
+
<a href="#quick-start"><strong>Quick start</strong></a>
|
|
29
29
|
</p>
|
|
30
30
|
|
|
31
31
|
<br>
|
|
@@ -36,148 +36,203 @@ Self-hosted. Provider-flexible. Apache 2.0.
|
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
##
|
|
40
|
-
|
|
41
|
-
An AI interface can be self-hosted today and still become a gatekeeper tomorrow. Libre WebUI is built so your freedom does not depend on a company remaining benevolent.
|
|
42
|
-
|
|
43
|
-
Run it. Inspect it. Change it. Fork it. Connect it to something else. Or leave it behind. The code is Apache 2.0, local inference is the default path, remote providers are opt-in, and the project charter puts independence and inclusive participation into writing.
|
|
39
|
+
## What Libre WebUI is
|
|
44
40
|
|
|
45
|
-
|
|
41
|
+
A complete AI workspace you run yourself. Chat with local models through
|
|
42
|
+
[Ollama](https://ollama.com) or with any provider you choose to connect, give a
|
|
43
|
+
model a sandboxed workspace where it can actually build something, search your
|
|
44
|
+
own documents, generate images and speech, and keep every conversation on
|
|
45
|
+
hardware you control.
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
The interface works like a browser. **Home** is your launcher; chats, Work
|
|
48
|
+
sessions, and pages open as tabs beside it; `⌘K` searches everything you have.
|
|
49
|
+
Nothing is buried three menus deep.
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
| **Model choice** | Local Ollama plus optional provider plugins and OpenAI-compatible endpoints | [Plugin architecture](https://docs.librewebui.org/PLUGIN_ARCHITECTURE) |
|
|
53
|
-
| **Code** | Use, modify, redistribute, and fork under Apache 2.0 | [License](https://github.com/libre-webui/libre-webui/blob/main/LICENSE) |
|
|
54
|
-
| **Project direction** | The charter rejects funding control over the roadmap, license, or community | [Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md) |
|
|
55
|
-
| **Participation** | Contributors and users are welcome regardless of background, identity, or geography | [Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md) |
|
|
56
|
-
| **Exit** | Your installation and your fork do not need our permission | [Source](https://github.com/libre-webui/libre-webui) |
|
|
51
|
+
It is Apache 2.0, ships without telemetry, and is built so you can leave. If
|
|
52
|
+
this project ever stops serving you, your installation and your fork do not need
|
|
53
|
+
anyone's permission.
|
|
57
54
|
|
|
58
|
-
##
|
|
55
|
+
## Quick start
|
|
59
56
|
|
|
60
|
-
|
|
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.
|
|
61
59
|
|
|
62
60
|
```bash
|
|
63
61
|
npx libre-webui
|
|
64
62
|
```
|
|
65
63
|
|
|
66
|
-
Open [http://localhost:8080](http://localhost:8080). The first account created
|
|
64
|
+
Open [http://localhost:8080](http://localhost:8080). The first account created
|
|
65
|
+
on a fresh install becomes the administrator.
|
|
67
66
|
|
|
68
|
-
For private local inference, install [Ollama](https://ollama.com) and pull a
|
|
67
|
+
For private local inference, install [Ollama](https://ollama.com) and pull a
|
|
68
|
+
model:
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
ollama pull
|
|
71
|
+
ollama pull gemma4:12b
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
That is enough to start.
|
|
75
|
-
|
|
76
|
-
Chat works without Docker. The new **Work** mode additionally needs Docker on
|
|
77
|
-
the machine running the Libre WebUI backend. If Docker is missing, Libre WebUI
|
|
78
|
-
still starts normally and Work shows a clear **Runtime unavailable** state
|
|
79
|
-
instead of running commands on the host.
|
|
80
|
-
|
|
81
|
-
## One workspace. Your choices.
|
|
74
|
+
That is enough to start. No cloud account is required. When you do want a remote
|
|
75
|
+
model, add only the provider you choose.
|
|
82
76
|
|
|
83
|
-
|
|
77
|
+
If Docker is missing, Libre WebUI starts normally and Work reports a clear
|
|
78
|
+
**Runtime unavailable** state rather than running commands on your host.
|
|
84
79
|
|
|
85
|
-
|
|
86
|
-
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
87
|
-
| **Talk to the model you want** | Stream conversations through local Ollama, Ollama Cloud, bundled providers, or compatible endpoints. Discover and manage models from the UI. |
|
|
88
|
-
| **Give every task a workspace** | Let a tool-capable model inspect files, edit code, run commands, and preview an app in a persistent, task-scoped Docker workspace. |
|
|
89
|
-
| **Bring your own context** | Chat with PDF and plain-text documents using keyword retrieval or optional semantic embeddings. |
|
|
90
|
-
| **Turn answers into artifacts** | Preview sandboxed HTML, SVG, JSON, code, and multi-file artifacts beside a normal chat. |
|
|
91
|
-
| **Create with more than text** | Generate images, use provider-backed speech, and build reusable personas with prompts, parameters, and memory. |
|
|
92
|
-
| **Make the interface yours** | Keep light or dark mode across refreshes, apply an adaptive accent theme, and work in 25 languages/locales including Arabic RTL. |
|
|
93
|
-
| **Operate it your way** | Use local accounts, roles, optional OAuth, Docker, Kubernetes, npm, or the Electron desktop client. |
|
|
94
|
-
| **Extend without lock-in** | Configure chat, embeddings, image generation, and text-to-speech providers through the plugin layer. |
|
|
80
|
+
## What you can do
|
|
95
81
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
| | |
|
|
83
|
+
| ---------------------------------- | -------------------------------------------------------------------------- |
|
|
84
|
+
| **Work the way you browse** | Home launcher, tabs for chats and Work sessions, `⌘K` to jump anywhere |
|
|
85
|
+
| **Talk to the model you want** | Local Ollama, Ollama Cloud, bundled providers, or any compatible endpoint |
|
|
86
|
+
| **Use the agent you subscribe to** | An installed Claude Code or Codex CLI, as a chat model, with no API key |
|
|
87
|
+
| **Give every task a workspace** | Files, a terminal, a diff, and a live preview inside an isolated container |
|
|
88
|
+
| **Bring your own context** | Chat with PDF and plain-text documents by keyword or embeddings |
|
|
89
|
+
| **Turn answers into artifacts** | Sandboxed HTML, SVG, JSON, code, and multi-file previews beside the chat |
|
|
90
|
+
| **Create with more than text** | Image generation, provider-backed speech, and reusable personas |
|
|
91
|
+
| **Make the interface yours** | Light and dark themes, adaptive accents, 25 locales including Arabic RTL |
|
|
92
|
+
| **Operate it your way** | Local accounts and roles, optional OAuth, Docker, Kubernetes, npm, desktop |
|
|
93
|
+
| **Extend without lock-in** | Chat, embedding, image, and speech providers through the plugin layer |
|
|
99
94
|
|
|
100
|
-
|
|
95
|
+
## Freedom should survive success
|
|
101
96
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
- Application-layer AES-256-GCM encryption for supported sensitive values such as credentials
|
|
106
|
-
- Persistent SQLite storage, configurable data directories, and documented backup practices
|
|
97
|
+
An AI interface can be self-hosted today and still become a gatekeeper
|
|
98
|
+
tomorrow. Libre WebUI is built so your freedom does not depend on a company
|
|
99
|
+
remaining benevolent.
|
|
107
100
|
|
|
108
|
-
|
|
101
|
+
Run it. Inspect it. Change it. Fork it. Connect it to something else. Or leave
|
|
102
|
+
it behind. The code is Apache 2.0, local inference is the default path, remote
|
|
103
|
+
providers are opt-in, and the project charter puts independence and inclusive
|
|
104
|
+
participation into writing.
|
|
109
105
|
|
|
110
|
-
|
|
106
|
+
> **Open source is a license. Libre is an operating principle.**
|
|
111
107
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
108
|
+
Do not trust the pitch. Inspect the
|
|
109
|
+
[license](https://github.com/libre-webui/libre-webui/blob/main/LICENSE),
|
|
110
|
+
[charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md),
|
|
111
|
+
[source](https://github.com/libre-webui/libre-webui), and
|
|
112
|
+
[CI](https://github.com/libre-webui/libre-webui/actions).
|
|
113
|
+
|
|
114
|
+
| What stays yours | Libre WebUI's approach | Verify it |
|
|
115
|
+
| --------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
116
|
+
| **Data path** | Self-hosted by default; remote inference only when you select it | [Deployment docs](https://docs.librewebui.org/DOCKER) |
|
|
117
|
+
| **Model choice** | Local Ollama plus optional provider plugins and compatible endpoints | [Plugin architecture](https://docs.librewebui.org/PLUGIN_ARCHITECTURE) |
|
|
118
|
+
| **Code** | Use, modify, redistribute, and fork under Apache 2.0 | [License](https://github.com/libre-webui/libre-webui/blob/main/LICENSE) |
|
|
119
|
+
| **Project direction** | The charter rejects funding control over roadmap, license, or community | [Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md) |
|
|
120
|
+
| **Participation** | Everyone is welcome regardless of background, identity, or geography | [Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md) |
|
|
121
|
+
| **Exit** | Your installation and your fork do not need our permission | [Source](https://github.com/libre-webui/libre-webui) |
|
|
118
122
|
|
|
119
|
-
|
|
123
|
+
## Local-first is a real boundary
|
|
120
124
|
|
|
121
|
-
|
|
125
|
+
Libre WebUI ships without application telemetry or analytics. When you use
|
|
126
|
+
Ollama locally, prompts and responses stay on infrastructure you control. If you
|
|
127
|
+
select a remote provider, that provider receives the requests you choose to send
|
|
128
|
+
it; Libre WebUI does not pretend otherwise.
|
|
129
|
+
|
|
130
|
+
For shared and public deployments, the backend includes local accounts with
|
|
131
|
+
bcrypt hashing and JWT sessions, admin and user roles, login and signup rate
|
|
132
|
+
limits, optional Cloudflare Turnstile, optional GitHub and Hugging Face OAuth,
|
|
133
|
+
application-layer AES-256-GCM encryption for sensitive values such as
|
|
134
|
+
credentials, and persistent SQLite storage with configurable data directories.
|
|
135
|
+
|
|
136
|
+
Application-layer encryption is not full-disk or end-to-end encryption. Use
|
|
137
|
+
HTTPS, access-controlled storage, stable secrets, and disk encryption where your
|
|
138
|
+
threat model requires them. Start with the
|
|
139
|
+
[authentication guide](https://docs.librewebui.org/AUTHENTICATION) and
|
|
140
|
+
[encryption guide](https://docs.librewebui.org/DATABASE_ENCRYPTION).
|
|
141
|
+
|
|
142
|
+
## Models, providers, and agents
|
|
143
|
+
|
|
144
|
+
Ollama is the default local path, not a lock-in strategy. Libre WebUI bundles an
|
|
145
|
+
MLX LM plugin for native Apple Silicon inference plus provider definitions
|
|
146
|
+
spanning chat, images, embeddings, and speech — OpenAI, Anthropic, Google
|
|
147
|
+
Gemini, Groq, Kimi Code by Moonshot AI, Mistral, OpenRouter, Hugging Face,
|
|
148
|
+
GitHub Models, ComfyUI, ElevenLabs, Qwen3-TTS, Kyutai TTS, and any
|
|
149
|
+
OpenAI-compatible service.
|
|
150
|
+
|
|
151
|
+
Credentials come from deployment-wide environment variables or encrypted,
|
|
152
|
+
user-scoped settings. Plugins can declare static model lists and use live
|
|
153
|
+
discovery when a provider exposes a compatible model-list endpoint.
|
|
154
|
+
|
|
155
|
+
A coding agent you already pay for can answer in chat directly. If `claude` or
|
|
156
|
+
`codex` is installed on the server, administrators see an **Agents** group in
|
|
157
|
+
the model selector and can hold a normal conversation using the subscription
|
|
158
|
+
that CLI is already signed in with — no API key. The CLI runs as the Libre WebUI
|
|
159
|
+
server user and inherits that user's agent credentials, so treat it as
|
|
160
|
+
equivalent to granting those agents shell access, and set
|
|
161
|
+
`AGENT_CLI_MODELS_ENABLED=false` to turn it off.
|
|
162
|
+
|
|
163
|
+
[Connect a provider →](https://docs.librewebui.org/PROVIDER_CONNECTIONS) ·
|
|
164
|
+
[Use an installed agent →](https://docs.librewebui.org/AGENT_CLI_MODELS)
|
|
122
165
|
|
|
123
166
|
## Work: one persistent environment per task
|
|
124
167
|
|
|
125
|
-
Work
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
activity, and preview state.
|
|
168
|
+
Work gives a tool-capable model a real place to build. Describe what you want,
|
|
169
|
+
and the task keeps its own conversation, provider route, files, tool activity,
|
|
170
|
+
and preview — so returning to it a week later returns to exactly where it was.
|
|
129
171
|
|
|
130
172
|
```text
|
|
131
173
|
Work task
|
|
132
174
|
├── durable conversation and run history in SQLite
|
|
133
175
|
├── dedicated Docker named volume mounted at /workspace
|
|
134
176
|
├── disposable, policy-checked container for commands
|
|
135
|
-
└── Files · Activity · Preview workspace pane
|
|
177
|
+
└── Files · Activity · Terminal · Preview workspace pane
|
|
136
178
|
```
|
|
137
179
|
|
|
138
|
-
The model can
|
|
139
|
-
commands, and start or stop a browser preview.
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
180
|
+
The model can read, write, move, delete, and search files, run bounded shell
|
|
181
|
+
commands, and start or stop a browser preview. You get a syntax-highlighted
|
|
182
|
+
editor, a red/green diff of what changed in the last turn, conflict-aware saves,
|
|
183
|
+
and a real interactive terminal attached to the same container — under the same
|
|
184
|
+
policy as the model's own tools, so it is a window into the sandbox rather than
|
|
185
|
+
a way around it.
|
|
186
|
+
|
|
187
|
+
Runs stream assistant text, tool calls, results, usage, and state changes live.
|
|
188
|
+
Reasoning appears only when the provider returns it; Libre WebUI cannot reveal a
|
|
189
|
+
model's hidden chain-of-thought. When a run exhausts its round budget it asks
|
|
190
|
+
for a final progress handoff and ends in a yellow **Needs input** state instead
|
|
191
|
+
of reporting false success — a follow-up run continues in the same workspace.
|
|
192
|
+
|
|
193
|
+
Choosing a remote route shows a one-time disclosure, because an autonomous run
|
|
194
|
+
can make many paid calls and can send conversation context and tool results,
|
|
195
|
+
including file contents, to that provider. You should know that before a run
|
|
196
|
+
starts, not after the bill.
|
|
197
|
+
|
|
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.
|
|
205
|
+
|
|
206
|
+
Two honest limits: containers are not virtual machines, and Work tasks have
|
|
207
|
+
outbound internet egress by design.
|
|
208
|
+
|
|
209
|
+
A task can instead be bound to a real folder on your machine, when a deployment
|
|
210
|
+
opts in with `WORK_HOST_WORKSPACES_ENABLED`. Requested paths are resolved
|
|
211
|
+
through symlinks, checked against an allowlist of roots, and credential
|
|
212
|
+
directories are refused — but it ships off, because pointing an agent at your
|
|
213
|
+
real files is a deliberate narrowing of the sandbox and should be a decision you
|
|
214
|
+
make on purpose.
|
|
215
|
+
|
|
216
|
+
[Read the Work guide →](https://docs.librewebui.org/WORKSPACES)
|
|
217
|
+
|
|
218
|
+
## Agents: broader automation, runtime kept separate
|
|
219
|
+
|
|
220
|
+
The **Agents** section is the control surface for
|
|
221
|
+
[Libre Claw](https://github.com/kroonen-ai/libre-claw), an optional
|
|
222
|
+
admin-controlled local agent runtime. Libre WebUI provides the authenticated
|
|
223
|
+
view of durable runs, timelines, approvals, schedules, usage, and configuration;
|
|
224
|
+
Libre Claw owns the tools, memory, permission model, and execution.
|
|
225
|
+
|
|
226
|
+
It is deliberately not Work. Work is native and focused on one isolated project
|
|
227
|
+
workspace; Libre Claw is the optional daemon for broader file, shell, git,
|
|
228
|
+
browser, HTTP, web-search, MCP, memory, and automation workflows. The WebUI
|
|
229
|
+
backend never executes its shell or browser tools — it proxies authenticated
|
|
230
|
+
admin actions to the separately running daemon, where approvals stay
|
|
231
|
+
authoritative.
|
|
232
|
+
|
|
233
|
+
[Read the integration guide →](https://docs.librewebui.org/LIBRE_CLAW_INTEGRATION)
|
|
234
|
+
|
|
235
|
+
## How it fits together
|
|
181
236
|
|
|
182
237
|
```text
|
|
183
238
|
Browser or desktop client
|
|
@@ -195,43 +250,54 @@ Browser or desktop client
|
|
|
195
250
|
└────────► Libre Claw (optional agent runtime)
|
|
196
251
|
```
|
|
197
252
|
|
|
198
|
-
The WebUI backend does not execute Libre Claw's shell or browser tools itself. It proxies authenticated admin actions to the separately running daemon, where approvals and safety rules remain authoritative.
|
|
199
|
-
|
|
200
|
-
[Read the Libre Claw integration guide →](https://docs.librewebui.org/LIBRE_CLAW_INTEGRATION)
|
|
201
|
-
|
|
202
253
|
## Deploy on your terms
|
|
203
254
|
|
|
204
|
-
| Path | Command or link | Best for
|
|
205
|
-
| ------------------- | ----------------------------------------------------------------------- |
|
|
206
|
-
| **npm** | `npx libre-webui` | Fast local start; Work
|
|
207
|
-
| **Docker + Ollama** | `docker compose up -d` | Persistent
|
|
208
|
-
| **External Ollama** | `docker compose -f docker-compose.external-ollama.yml up -d` |
|
|
209
|
-
| **NVIDIA Docker** | `docker compose -f docker-compose.gpu.yml up -d` | Local GPU inference
|
|
210
|
-
| **Kubernetes** | `helm install libre-webui oci://ghcr.io/libre-webui/charts/libre-webui` | Cluster deployment; the
|
|
211
|
-
| **Desktop client** | [GitHub Releases](https://github.com/libre-webui/libre-webui/releases) | Electron UI
|
|
212
|
-
| **Source** | `npm install && npm run dev` | Development
|
|
213
|
-
|
|
214
|
-
Docker commands assume you have cloned this repository. Production deployments
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
255
|
+
| Path | Command or link | Best for |
|
|
256
|
+
| ------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------- |
|
|
257
|
+
| **npm** | `npx libre-webui` | Fast local start; Work available when Docker is installed |
|
|
258
|
+
| **Docker + Ollama** | `docker compose up -d` | Persistent stack; Work enabled through the host Docker socket |
|
|
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 |
|
|
264
|
+
|
|
265
|
+
Docker commands assume you have cloned this repository. Production deployments
|
|
266
|
+
should set stable `JWT_SECRET` and `ENCRYPTION_KEY` values, persist the data
|
|
267
|
+
directory, back up the database and key together, and terminate public traffic
|
|
268
|
+
with HTTPS.
|
|
269
|
+
|
|
270
|
+
> **The Docker socket is the security decision to understand.** Every Compose
|
|
271
|
+
> file mounts `/var/run/docker.sock` so Work can run task containers as
|
|
272
|
+
> siblings. That socket grants root-equivalent control of the host: treat every
|
|
273
|
+
> Libre WebUI administrator as a host administrator, and remove the mount if you
|
|
274
|
+
> do not want Work.
|
|
275
|
+
|
|
276
|
+
On Linux the socket belongs to the `docker` group rather than root, so set the
|
|
277
|
+
group id once in `.env`:
|
|
221
278
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
279
|
+
```bash
|
|
280
|
+
echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
|
|
281
|
+
alpine stat -c '%g' /var/run/docker.sock)" >> .env
|
|
282
|
+
```
|
|
225
283
|
|
|
226
|
-
|
|
284
|
+
## Documentation
|
|
227
285
|
|
|
228
|
-
|
|
286
|
+
Full documentation lives at
|
|
287
|
+
**[docs.librewebui.org](https://docs.librewebui.org)**.
|
|
229
288
|
|
|
230
|
-
|
|
289
|
+
| Getting started | Going deeper | Operating it |
|
|
290
|
+
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
|
|
291
|
+
| [Quick start](https://docs.librewebui.org/QUICK_START) | [Work workspaces](https://docs.librewebui.org/WORKSPACES) | [Docker](https://docs.librewebui.org/DOCKER) |
|
|
292
|
+
| [Working with models](https://docs.librewebui.org/WORKING_WITH_MODELS) | [Provider connections](https://docs.librewebui.org/PROVIDER_CONNECTIONS) | [Kubernetes](https://docs.librewebui.org/KUBERNETES) |
|
|
293
|
+
| [Keyboard shortcuts](https://docs.librewebui.org/KEYBOARD_SHORTCUTS) | [Installed agent CLIs](https://docs.librewebui.org/AGENT_CLI_MODELS) | [Environment variables](https://docs.librewebui.org/ENVIRONMENT_VARIABLES) |
|
|
294
|
+
| [Hardware requirements](https://docs.librewebui.org/HARDWARE_REQUIREMENTS) | [Plugin architecture](https://docs.librewebui.org/PLUGIN_ARCHITECTURE) | [Authentication](https://docs.librewebui.org/AUTHENTICATION) |
|
|
295
|
+
| [Troubleshooting](https://docs.librewebui.org/TROUBLESHOOTING) | [Document chat](https://docs.librewebui.org/RAG_FEATURE) | [Database encryption](https://docs.librewebui.org/DATABASE_ENCRYPTION) |
|
|
231
296
|
|
|
232
297
|
## Build with us
|
|
233
298
|
|
|
234
|
-
Libre WebUI is for people who want excellent AI software and the freedom to
|
|
299
|
+
Libre WebUI is for people who want excellent AI software and the freedom to
|
|
300
|
+
outgrow its maintainers.
|
|
235
301
|
|
|
236
302
|
1. Fork and clone the repository.
|
|
237
303
|
2. Create a branch from `dev`.
|
|
@@ -239,26 +305,48 @@ Libre WebUI is for people who want excellent AI software and the freedom to outg
|
|
|
239
305
|
4. Add tests and documentation with your change.
|
|
240
306
|
5. Open a pull request against `dev`.
|
|
241
307
|
|
|
242
|
-
You can also help by
|
|
308
|
+
You can also help by
|
|
309
|
+
[reporting bugs](https://github.com/libre-webui/libre-webui/issues), improving
|
|
310
|
+
documentation, translating the interface, or contributing provider definitions.
|
|
243
311
|
|
|
244
|
-
All participation follows the
|
|
312
|
+
All participation follows the
|
|
313
|
+
[Contributor Covenant 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)
|
|
314
|
+
and the
|
|
315
|
+
[Libre WebUI Community & Ethical Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md).
|
|
316
|
+
Report security issues privately to **security@kroonen.ai**.
|
|
245
317
|
|
|
246
|
-
##
|
|
318
|
+
## Built from experience, for independence
|
|
247
319
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
After GitHub CI publishes a release, an idempotent mirror copies its release
|
|
252
|
-
notes to Forgejo and adds named links to the GitHub-hosted desktop artifacts.
|
|
253
|
-
This keeps both release indexes aligned without storing a second copy of every
|
|
254
|
-
large binary. Maintainers can find the gated publication and backfill procedure
|
|
255
|
-
in the [release automation guide](https://docs.librewebui.org/RELEASE_AUTOMATION).
|
|
320
|
+
Libre WebUI is built around a hard-earned lesson: source availability alone does
|
|
321
|
+
not guarantee shared power. Our response is constructive — compete by shipping
|
|
322
|
+
better software and stronger commitments that anyone can inspect.
|
|
256
323
|
|
|
257
|
-
|
|
324
|
+
That means local-first defaults without forbidding the cloud, commercial support
|
|
325
|
+
without changing the core license, and a community where identity, background,
|
|
326
|
+
or geography never determines who belongs. Kroonen AI maintains Libre WebUI
|
|
327
|
+
under the project's public charter, which accepts donations or grants only when
|
|
328
|
+
they do not control the roadmap, license, or community.
|
|
258
329
|
|
|
259
|
-
|
|
330
|
+
**Freedom should not be a phase in a startup's growth plan. It should be part of
|
|
331
|
+
the architecture.**
|
|
332
|
+
|
|
333
|
+
## Stewardship and support
|
|
260
334
|
|
|
261
|
-
|
|
335
|
+
[Kroonen AI](https://kroonen.ai) funds development and provides professional
|
|
336
|
+
deployment, integration, security review, training, customization, and
|
|
337
|
+
SLA-backed support. Commercial services do not change the Apache 2.0 license of
|
|
338
|
+
the core project.
|
|
339
|
+
|
|
340
|
+
For enterprise work, contact **enterprise@kroonen.ai**. To support independent
|
|
341
|
+
development directly,
|
|
342
|
+
[sponsor Libre WebUI](https://github.com/sponsors/libre-webui).
|
|
343
|
+
|
|
344
|
+
Every release tag is published to both
|
|
345
|
+
[GitHub](https://github.com/libre-webui/libre-webui/releases) and a
|
|
346
|
+
[Forgejo mirror](https://git.kroonen.ai/libre-webui/libre-webui/releases), so
|
|
347
|
+
neither index is a single point of failure. Maintainers can find the procedure
|
|
348
|
+
in the
|
|
349
|
+
[release automation guide](https://docs.librewebui.org/RELEASE_AUTOMATION).
|
|
262
350
|
|
|
263
351
|
## Project links
|
|
264
352
|
|
package/backend/dist/db.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AA6hBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAa/C;AAGD,eAAe,WAAW,CAAC"}
|
package/backend/dist/db.js
CHANGED
|
@@ -325,6 +325,8 @@ function initializeTables() {
|
|
|
325
325
|
network_enabled INTEGER NOT NULL DEFAULT 1,
|
|
326
326
|
volume_name TEXT NOT NULL UNIQUE,
|
|
327
327
|
container_name TEXT NOT NULL UNIQUE,
|
|
328
|
+
-- Set when the task is bound to a host folder instead of its volume.
|
|
329
|
+
host_path TEXT,
|
|
328
330
|
preview_url TEXT,
|
|
329
331
|
preview_status TEXT NOT NULL DEFAULT 'stopped',
|
|
330
332
|
created_at INTEGER NOT NULL,
|
|
@@ -520,6 +522,9 @@ function runMigrations() {
|
|
|
520
522
|
if (!columns.includes('provider_id')) {
|
|
521
523
|
db.exec(`ALTER TABLE ${table} ADD COLUMN provider_id TEXT`);
|
|
522
524
|
}
|
|
525
|
+
if (table === 'work_tasks' && !columns.includes('host_path')) {
|
|
526
|
+
db.exec(`ALTER TABLE work_tasks ADD COLUMN host_path TEXT`);
|
|
527
|
+
}
|
|
523
528
|
db.prepare(`UPDATE ${table}
|
|
524
529
|
SET provider_type = 'ollama', provider_id = NULL
|
|
525
530
|
WHERE provider_type IS NULL
|
package/backend/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAExC,oBAAoB;AACpB,IAAI,EAAE,GAA6B,IAAI,CAAC;AACxC,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,+EAA+E;QAC/E,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,sBAAsB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CACV,4EAA4E,CAC7E,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,wEAAwE;YACxE,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAEjD,8BAA8B;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,sBAAsB;YACtB,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE1B,sBAAsB;YACtB,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAE/B,kCAAkC;YAClC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACjC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ;YAE5C,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAEzE,oCAAoC;YACpC,gBAAgB,EAAE,CAAC;YAEnB,iBAAiB;YACjB,aAAa,EAAE,CAAC;YAEhB,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC,EAAE;QAAE,OAAO;IAEhB,2CAA2C;IAC3C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;GAWP,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAEzD,CAAC;QACJ,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IAED,+CAA+C;IAC/C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IAEH,yDAAyD;IACzD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;GAeP,CAAC,CAAC;IAEH,iDAAiD;IACjD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaP,CAAC,CAAC;IAEH,6DAA6D;IAC7D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,0DAA0D;IAC1D,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;GAWP,CAAC,CAAC;IAEH,+BAA+B;IAC/B,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,EAAE,CAAC,OAAO,CACR;;;KAGC,CACF,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE1D,8CAA8C;IAC9C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;IAEH,mDAAmD;IACnD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,sEAAsE;IACtE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaP,CAAC,CAAC;IAEH,2EAA2E;IAC3E,yEAAyE;IACzE,qCAAqC;IACrC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;GASP,CAAC,CAAC;IAEH,wEAAwE;IACxE,EAAE,CAAC,IAAI,CAAC;;;;;;;;GAQP,CAAC,CAAC;IAEH,uEAAuE;IACvE,mCAAmC;IACnC,EAAE,CAAC,IAAI,CAAC;;;;;;;;GAQP,CAAC,CAAC;IAEH,6CAA6C;IAC7C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;GAYP,CAAC,CAAC;IAEH,yEAAyE;IACzE,wEAAwE;IACxE,EAAE,CAAC,IAAI,CAAC
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AA+DlB,QAAA,MAAM,GAAG,6CAAY,CAAC;AAghBtB,eAAe,GAAG,CAAC"}
|
package/backend/dist/index.js
CHANGED
|
@@ -42,6 +42,7 @@ import { errorHandler, notFoundHandler, requestLogger, } from './middleware/inde
|
|
|
42
42
|
import { authenticate, optionalAuth, } from './middleware/auth.js';
|
|
43
43
|
import ollamaRoutes from './routes/ollama.js';
|
|
44
44
|
import chatRoutes from './routes/chat.js';
|
|
45
|
+
import agentCliRoutes from './routes/agentCli.js';
|
|
45
46
|
import preferencesRoutes from './routes/preferences.js';
|
|
46
47
|
import pluginRoutes from './routes/plugins.js';
|
|
47
48
|
import documentRoutes from './routes/documents.js';
|
|
@@ -394,6 +395,7 @@ app.use('/api/auth', authRateLimiter, optionalAuth, authRoutes);
|
|
|
394
395
|
app.use('/api/users', usersRateLimiter, optionalAuth, usersRoutes);
|
|
395
396
|
app.use('/api/ollama', ollamaRateLimiter, ollamaRoutes);
|
|
396
397
|
app.use('/api/chat', chatRateLimiter, optionalAuth, chatRoutes);
|
|
398
|
+
app.use('/api/agent-clis', chatRateLimiter, optionalAuth, agentCliRoutes);
|
|
397
399
|
app.use('/api/preferences', preferencesRateLimiter, optionalAuth, preferencesRoutes);
|
|
398
400
|
app.use('/api/plugins', pluginAuthBurstRateLimiter, authenticate, pluginRouteRateLimiter, pluginRoutes);
|
|
399
401
|
app.use('/api/embeddings', embeddingsRoutes);
|