libre-webui 0.17.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -17
- package/backend/dist/db.d.ts.map +1 -1
- package/backend/dist/db.js +195 -6
- package/backend/dist/db.js.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +48 -19
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +35 -3
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/middleware/index.d.ts.map +1 -1
- package/backend/dist/models/personaModel.d.ts.map +1 -1
- package/backend/dist/models/personaModel.js.map +1 -1
- package/backend/dist/models/userModel.d.ts +24 -0
- package/backend/dist/models/userModel.d.ts.map +1 -1
- package/backend/dist/models/userModel.js +92 -24
- package/backend/dist/models/userModel.js.map +1 -1
- package/backend/dist/routes/agentCli.d.ts.map +1 -1
- package/backend/dist/routes/agentCli.js +4 -2
- package/backend/dist/routes/agentCli.js.map +1 -1
- package/backend/dist/routes/auth.d.ts.map +1 -1
- package/backend/dist/routes/auth.js +118 -55
- package/backend/dist/routes/auth.js.map +1 -1
- package/backend/dist/routes/chat.d.ts.map +1 -1
- package/backend/dist/routes/chat.js +106 -3
- package/backend/dist/routes/chat.js.map +1 -1
- package/backend/dist/routes/documents.d.ts.map +1 -1
- package/backend/dist/routes/documents.js +179 -41
- package/backend/dist/routes/documents.js.map +1 -1
- package/backend/dist/routes/embeddings.d.ts.map +1 -1
- package/backend/dist/routes/embeddings.js +2 -2
- package/backend/dist/routes/embeddings.js.map +1 -1
- package/backend/dist/routes/huggingfaceHub.d.ts.map +1 -1
- package/backend/dist/routes/huggingfaceHub.js +3 -1
- package/backend/dist/routes/huggingfaceHub.js.map +1 -1
- package/backend/dist/routes/imageGen.d.ts.map +1 -1
- package/backend/dist/routes/imageGen.js +2 -0
- package/backend/dist/routes/imageGen.js.map +1 -1
- package/backend/dist/routes/libreClaw.d.ts.map +1 -1
- package/backend/dist/routes/media.d.ts +3 -0
- package/backend/dist/routes/media.d.ts.map +1 -0
- package/backend/dist/routes/media.js +429 -0
- package/backend/dist/routes/media.js.map +1 -0
- package/backend/dist/routes/notes.d.ts +3 -0
- package/backend/dist/routes/notes.d.ts.map +1 -0
- package/backend/dist/routes/notes.js +121 -0
- package/backend/dist/routes/notes.js.map +1 -0
- package/backend/dist/routes/ollama.d.ts.map +1 -1
- package/backend/dist/routes/ollama.js +17 -85
- package/backend/dist/routes/ollama.js.map +1 -1
- package/backend/dist/routes/personas.d.ts.map +1 -1
- package/backend/dist/routes/personas.js +2 -0
- package/backend/dist/routes/personas.js.map +1 -1
- package/backend/dist/routes/plugins.d.ts.map +1 -1
- package/backend/dist/routes/plugins.js +28 -0
- package/backend/dist/routes/plugins.js.map +1 -1
- package/backend/dist/routes/preferences.d.ts.map +1 -1
- package/backend/dist/routes/systemDiagnostics.d.ts +3 -0
- package/backend/dist/routes/systemDiagnostics.d.ts.map +1 -0
- package/backend/dist/routes/systemDiagnostics.js +49 -0
- package/backend/dist/routes/systemDiagnostics.js.map +1 -0
- package/backend/dist/routes/tts.d.ts.map +1 -1
- package/backend/dist/routes/tts.js +4 -0
- package/backend/dist/routes/tts.js.map +1 -1
- package/backend/dist/routes/users.d.ts.map +1 -1
- package/backend/dist/routes/users.js +79 -0
- package/backend/dist/routes/users.js.map +1 -1
- package/backend/dist/routes/work.d.ts.map +1 -1
- package/backend/dist/routes/work.js +84 -0
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/agentCliService.d.ts +37 -4
- package/backend/dist/services/agentCliService.d.ts.map +1 -1
- package/backend/dist/services/agentCliService.js +229 -10
- package/backend/dist/services/agentCliService.js.map +1 -1
- package/backend/dist/services/assistantCompletionService.d.ts.map +1 -1
- package/backend/dist/services/authService.d.ts +15 -9
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +39 -29
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/chatGenerationService.d.ts.map +1 -1
- package/backend/dist/services/chatGenerationService.js +3 -3
- package/backend/dist/services/chatGenerationService.js.map +1 -1
- package/backend/dist/services/chatRequestService.d.ts +8 -2
- package/backend/dist/services/chatRequestService.d.ts.map +1 -1
- package/backend/dist/services/chatRequestService.js +30 -3
- package/backend/dist/services/chatRequestService.js.map +1 -1
- package/backend/dist/services/chatService.d.ts +6 -1
- package/backend/dist/services/chatService.d.ts.map +1 -1
- package/backend/dist/services/chatService.js +54 -1
- package/backend/dist/services/chatService.js.map +1 -1
- package/backend/dist/services/codexOAuthService.d.ts +22 -0
- package/backend/dist/services/codexOAuthService.d.ts.map +1 -0
- package/backend/dist/services/codexOAuthService.js +176 -0
- package/backend/dist/services/codexOAuthService.js.map +1 -0
- package/backend/dist/services/documentService.d.ts +17 -10
- package/backend/dist/services/documentService.d.ts.map +1 -1
- package/backend/dist/services/documentService.js +79 -58
- package/backend/dist/services/documentService.js.map +1 -1
- package/backend/dist/services/embeddingService.d.ts.map +1 -1
- package/backend/dist/services/encryptionService.d.ts.map +1 -1
- package/backend/dist/services/encryptionService.js +18 -8
- package/backend/dist/services/encryptionService.js.map +1 -1
- package/backend/dist/services/followUpService.d.ts +44 -0
- package/backend/dist/services/followUpService.d.ts.map +1 -0
- package/backend/dist/services/followUpService.js +123 -0
- package/backend/dist/services/followUpService.js.map +1 -0
- package/backend/dist/services/galleryService.d.ts +23 -1
- package/backend/dist/services/galleryService.d.ts.map +1 -1
- package/backend/dist/services/galleryService.js +125 -8
- package/backend/dist/services/galleryService.js.map +1 -1
- package/backend/dist/services/libreClawService.d.ts.map +1 -1
- package/backend/dist/services/mediaGenerationJobService.d.ts +25 -0
- package/backend/dist/services/mediaGenerationJobService.d.ts.map +1 -0
- package/backend/dist/services/mediaGenerationJobService.js +82 -0
- package/backend/dist/services/mediaGenerationJobService.js.map +1 -0
- package/backend/dist/services/memoryService.d.ts.map +1 -1
- package/backend/dist/services/memoryService.js.map +1 -1
- package/backend/dist/services/mutationEngineService.d.ts.map +1 -1
- package/backend/dist/services/oauthSecurity.d.ts +14 -0
- package/backend/dist/services/oauthSecurity.d.ts.map +1 -0
- package/backend/dist/services/oauthSecurity.js +101 -0
- package/backend/dist/services/oauthSecurity.js.map +1 -0
- package/backend/dist/services/ollamaService.d.ts +8 -2
- package/backend/dist/services/ollamaService.d.ts.map +1 -1
- package/backend/dist/services/ollamaService.js +40 -2
- package/backend/dist/services/ollamaService.js.map +1 -1
- package/backend/dist/services/personaService.d.ts.map +1 -1
- package/backend/dist/services/personaService.js.map +1 -1
- package/backend/dist/services/pluginActivationService.d.ts.map +1 -1
- package/backend/dist/services/pluginActivationService.js.map +1 -1
- package/backend/dist/services/pluginAudioGenerationService.d.ts +34 -0
- package/backend/dist/services/pluginAudioGenerationService.d.ts.map +1 -0
- package/backend/dist/services/pluginAudioGenerationService.js +211 -0
- package/backend/dist/services/pluginAudioGenerationService.js.map +1 -0
- package/backend/dist/services/pluginCapabilityRegistryService.d.ts.map +1 -1
- package/backend/dist/services/pluginCapabilityRegistryService.js +6 -0
- package/backend/dist/services/pluginCapabilityRegistryService.js.map +1 -1
- package/backend/dist/services/pluginCredentialsService.d.ts.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.d.ts +2 -0
- package/backend/dist/services/pluginEmbeddingService.d.ts.map +1 -1
- package/backend/dist/services/pluginEmbeddingService.js +66 -35
- package/backend/dist/services/pluginEmbeddingService.js.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.d.ts +2 -0
- package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
- package/backend/dist/services/pluginImageGenerationService.js +63 -38
- package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts +43 -1
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +441 -71
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/pluginTTSService.d.ts +2 -0
- package/backend/dist/services/pluginTTSService.d.ts.map +1 -1
- package/backend/dist/services/pluginTTSService.js +27 -2
- package/backend/dist/services/pluginTTSService.js.map +1 -1
- package/backend/dist/services/pluginUsageService.d.ts +100 -0
- package/backend/dist/services/pluginUsageService.d.ts.map +1 -0
- package/backend/dist/services/pluginUsageService.js +291 -0
- package/backend/dist/services/pluginUsageService.js.map +1 -0
- package/backend/dist/services/pluginVariablesService.d.ts.map +1 -1
- package/backend/dist/services/pluginVariablesService.js.map +1 -1
- package/backend/dist/services/pluginVideoGenerationService.d.ts +45 -0
- package/backend/dist/services/pluginVideoGenerationService.d.ts.map +1 -0
- package/backend/dist/services/pluginVideoGenerationService.js +198 -0
- package/backend/dist/services/pluginVideoGenerationService.js.map +1 -0
- package/backend/dist/services/preferencesService.d.ts.map +1 -1
- package/backend/dist/services/preferencesService.js +16 -1
- package/backend/dist/services/preferencesService.js.map +1 -1
- package/backend/dist/services/registrationPolicy.d.ts +5 -0
- package/backend/dist/services/registrationPolicy.d.ts.map +1 -0
- package/backend/dist/services/registrationPolicy.js +21 -0
- package/backend/dist/services/registrationPolicy.js.map +1 -0
- package/backend/dist/services/simpleGitHubOAuth.d.ts +1 -1
- package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleGitHubOAuth.js +13 -13
- package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.d.ts +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleHuggingFaceOAuth.js +12 -17
- package/backend/dist/services/simpleHuggingFaceOAuth.js.map +1 -1
- package/backend/dist/services/systemDiagnosticsService.d.ts +117 -0
- package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -0
- package/backend/dist/services/systemDiagnosticsService.js +326 -0
- package/backend/dist/services/systemDiagnosticsService.js.map +1 -0
- package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
- package/backend/dist/services/turnstileService.d.ts +2 -1
- package/backend/dist/services/turnstileService.d.ts.map +1 -1
- package/backend/dist/services/turnstileService.js +28 -2
- package/backend/dist/services/turnstileService.js.map +1 -1
- package/backend/dist/services/userService.d.ts +1 -0
- package/backend/dist/services/userService.js +1 -1
- package/backend/dist/services/workAgentService.d.ts.map +1 -1
- package/backend/dist/services/workAgentService.js.map +1 -1
- package/backend/dist/services/workEventService.d.ts.map +1 -1
- package/backend/dist/services/workEventService.js.map +1 -1
- package/backend/dist/services/workHostWorkspaceService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.d.ts +3 -0
- package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.js +67 -10
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workPreviewProxyService.d.ts +27 -0
- package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -0
- package/backend/dist/services/workPreviewProxyService.js +514 -0
- package/backend/dist/services/workPreviewProxyService.js.map +1 -0
- package/backend/dist/services/workRuntimeService.d.ts +28 -7
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +287 -8
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/services/workTerminalService.d.ts +1 -1
- package/backend/dist/services/workTerminalService.d.ts.map +1 -1
- package/backend/dist/services/workTerminalService.js.map +1 -1
- package/backend/dist/storage.d.ts +12 -1
- package/backend/dist/storage.d.ts.map +1 -1
- package/backend/dist/storage.js +183 -9
- package/backend/dist/storage.js.map +1 -1
- package/backend/dist/storageMappers.d.ts +13 -0
- package/backend/dist/storageMappers.d.ts.map +1 -1
- package/backend/dist/storageMappers.js +5 -0
- package/backend/dist/storageMappers.js.map +1 -1
- package/backend/dist/types/index.d.ts +106 -1
- package/backend/dist/types/index.d.ts.map +1 -1
- package/backend/dist/types/index.js.map +1 -1
- package/backend/dist/types/work.d.ts +31 -0
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/utils/chatContext.js.map +1 -1
- package/backend/dist/utils/chatDocumentContext.d.ts +1 -1
- package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
- package/backend/dist/utils/chatDocumentContext.js +9 -4
- package/backend/dist/utils/chatDocumentContext.js.map +1 -1
- package/backend/dist/utils/chatProviderSelection.d.ts.map +1 -1
- package/backend/dist/utils/generationUtils.d.ts.map +1 -1
- package/backend/dist/utils/hash.d.ts.map +1 -1
- package/backend/dist/utils/hash.js +13 -2
- package/backend/dist/utils/hash.js.map +1 -1
- package/backend/dist/utils/logger.d.ts +1 -1
- package/backend/dist/utils/logger.d.ts.map +1 -1
- package/backend/dist/utils/ollamaStreaming.d.ts +6 -2
- package/backend/dist/utils/ollamaStreaming.d.ts.map +1 -1
- package/backend/dist/utils/ollamaStreaming.js +12 -2
- package/backend/dist/utils/ollamaStreaming.js.map +1 -1
- package/backend/dist/utils/openAIResponsesAdapter.js.map +1 -1
- package/backend/dist/utils/packagePaths.js.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +11 -4
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginChatContext.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +2 -1
- package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
- package/backend/dist/utils/pluginStreamAdapter.d.ts +10 -1
- package/backend/dist/utils/pluginStreamAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginStreamAdapter.js +30 -23
- package/backend/dist/utils/pluginStreamAdapter.js.map +1 -1
- package/backend/dist/utils/pluginValidation.d.ts +4 -3
- package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
- package/backend/dist/utils/pluginValidation.js +47 -2
- package/backend/dist/utils/pluginValidation.js.map +1 -1
- package/backend/dist/utils/resourceLimits.d.ts +10 -0
- package/backend/dist/utils/resourceLimits.d.ts.map +1 -0
- package/backend/dist/utils/resourceLimits.js +29 -0
- package/backend/dist/utils/resourceLimits.js.map +1 -0
- package/backend/dist/utils/thinkingPhaseTimer.d.ts +21 -0
- package/backend/dist/utils/thinkingPhaseTimer.d.ts.map +1 -0
- package/backend/dist/utils/thinkingPhaseTimer.js +84 -0
- package/backend/dist/utils/thinkingPhaseTimer.js.map +1 -0
- package/backend/dist/utils/webpageFetcher.d.ts +25 -0
- package/backend/dist/utils/webpageFetcher.d.ts.map +1 -0
- package/backend/dist/utils/webpageFetcher.js +231 -0
- package/backend/dist/utils/webpageFetcher.js.map +1 -0
- package/backend/dist/utils/websocketMessages.js.map +1 -1
- package/backend/dist/utils/workGit.d.ts +14 -0
- package/backend/dist/utils/workGit.d.ts.map +1 -0
- package/backend/dist/utils/workGit.js +207 -0
- package/backend/dist/utils/workGit.js.map +1 -0
- package/backend/dist/websocketServer.d.ts +1 -0
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +110 -25
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/dist/workTerminalServer.d.ts.map +1 -1
- package/backend/dist/workTerminalServer.js +3 -1
- package/backend/dist/workTerminalServer.js.map +1 -1
- package/backend/package.json +8 -7
- package/bin/cli.js +2 -2
- package/frontend/dist/assets/index-CFhy8YLA.css +1 -0
- package/frontend/dist/assets/index-_lG_lwU-.js +164 -0
- package/frontend/dist/assets/markdown-math-ClQbWekD.css +1 -0
- package/frontend/dist/assets/xterm-DHcfr8qj.css +1 -0
- package/frontend/dist/index.html +41 -16
- package/frontend/dist/js/ArtifactContainer-CjpvtR8G.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-B4qsvUnF.js → ArtifactDemoPage-yrPXLBQo.js} +1 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-DdsL2AOQ.js +1 -0
- package/frontend/dist/js/{Button-CRwzOaDZ.js → Button-X9TT9gTD.js} +1 -1
- package/frontend/dist/js/ChatPage-D9lWGM8g.js +16 -0
- package/frontend/dist/js/FirstTimeSetup-CwLPbHkI.js +1 -0
- package/frontend/dist/js/GalleryPage-C9DTdo_-.js +1 -0
- package/frontend/dist/js/HomePage-iF44c34e.js +1 -0
- package/frontend/dist/js/LibreClawPage-B9wWZIz6.js +1 -0
- package/frontend/dist/js/{ModelManagerModals-DMoEav1l.js → ModelManagerModals-D9j9RECi.js} +1 -1
- package/frontend/dist/js/ModelSelector-B0RKEJwC.js +1 -0
- package/frontend/dist/js/ModelsPage-DJXoIOs8.js +2 -0
- package/frontend/dist/js/NotesPage-BTNH6JR2.js +1 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-Ci9sRc78.js → OptimizedSyntaxHighlighter-CWYUn9Oe.js} +1 -1
- package/frontend/dist/js/PersonasPage--nqoJ-wA.js +13 -0
- package/frontend/dist/js/PluginUsagePage-BHwm-BBr.js +1 -0
- package/frontend/dist/js/{RichMessageContent-BJ49VN9j.js → RichMessageContent-DYRrXJ75.js} +3 -3
- package/frontend/dist/js/SettingsModal-y1Nzg55O.js +1 -0
- package/frontend/dist/js/SystemPage-CHez8h3p.js +1 -0
- package/frontend/dist/js/UserManagementPage-aJhKXQxG.js +1 -0
- package/frontend/dist/js/WorkPage-Ccla0MDm.js +5 -0
- package/frontend/dist/js/addon-fit-DIOBYJe3.js +1 -0
- package/frontend/dist/js/api-DVP8xiYT.js +19 -0
- package/frontend/dist/js/appStore-Cw7PmG-J.js +2 -0
- package/frontend/dist/js/ar-ONXFvOB1.js +2 -0
- package/frontend/dist/js/artifactHtml-C0Hu9I1u.js +41 -0
- package/frontend/dist/js/authStore-gv_MgDKr.js +3 -0
- package/frontend/dist/js/babel-CmENXdZw.js +16 -0
- package/frontend/dist/js/bn-BLhREPm6.js +2 -0
- package/frontend/dist/js/chatStore-DmDbolTg.js +2 -0
- package/frontend/dist/js/cs-Bg8E9fG5.js +2 -0
- package/frontend/dist/js/da-ODCU8w4x.js +2 -0
- package/frontend/dist/js/de-nuGHRJ5N.js +2 -0
- package/frontend/dist/js/es-DcN_cwum.js +2 -0
- package/frontend/dist/js/estree-DJwQLE88.js +44 -0
- package/frontend/dist/js/fr-C-L_xGr5.js +2 -0
- package/frontend/dist/js/hi-DUEtwA9G.js +2 -0
- package/frontend/dist/js/html-DdAOfeK4.js +25 -0
- package/frontend/dist/js/i18n-xir4Zz7C.js +2 -0
- package/frontend/dist/js/i18next-DgmgtwsV.js +1 -0
- package/frontend/dist/js/id-DNTYhti_.js +2 -0
- package/frontend/dist/js/imageGenModels-Dx_QMLJQ.js +1 -0
- package/frontend/dist/js/is-Bx28ymbQ.js +2 -0
- package/frontend/dist/js/it-BjW-JLlS.js +2 -0
- package/frontend/dist/js/ja-uThj4Q1w.js +2 -0
- package/frontend/dist/js/ko-DqgmMYXK.js +2 -0
- package/frontend/dist/js/logger-DSXjF4ye.js +1 -0
- package/frontend/dist/js/markdown-RaVsONor.js +70 -0
- package/frontend/dist/js/markdown-core-DHnR5Hw8.js +16 -0
- package/frontend/dist/js/markdown-math-B7FlYsmr.js +261 -0
- package/frontend/dist/js/messageCodeStyles-cTX0rQGK.js +2 -0
- package/frontend/dist/js/ms-R9kt_P0T.js +2 -0
- package/frontend/dist/js/nl-BjmtEgpK.js +2 -0
- package/frontend/dist/js/pl-C8_gU9r1.js +2 -0
- package/frontend/dist/js/postcss-B5WIGhAY.js +62 -0
- package/frontend/dist/js/pt-7BJForUD.js +2 -0
- package/frontend/dist/js/react-vendor-DPNXrO-8.js +9 -0
- package/frontend/dist/js/{rolldown-runtime-QTnfLwEv.js → rolldown-runtime-hePW80VL.js} +1 -1
- package/frontend/dist/js/router-vendor-Ca9zqOqT.js +1 -0
- package/frontend/dist/js/ru-D2HmhY6Y.js +2 -0
- package/frontend/dist/js/{standalone-DmLfI4Qj.js → standalone-B_aPlu7o.js} +8 -8
- package/frontend/dist/js/sv-zny3sDBM.js +2 -0
- package/frontend/dist/js/syntax-highlight-Ca9bHsaz.js +8 -0
- package/frontend/dist/js/th-CAzEKRz8.js +2 -0
- package/frontend/dist/js/tr-BmYgtmUo.js +2 -0
- package/frontend/dist/js/{typescript-Bcq62agC.js → typescript-Dz4OUZSl.js} +10 -10
- package/frontend/dist/js/ui-DDlcz2oy.js +2 -0
- package/frontend/dist/js/ui-vendor-D_pYT79f.js +177 -0
- package/frontend/dist/js/uk-eiYZ0uRq.js +2 -0
- package/frontend/dist/js/useTranslation-CdeLZqSW.js +1 -0
- package/frontend/dist/js/utils-BhpNrGnR.js +1 -0
- package/frontend/dist/js/utils-vendor-1zob7nK9.js +9 -0
- package/frontend/dist/js/vi-C7SVAWpO.js +2 -0
- package/frontend/dist/js/welcomePrompts-to5mv_gx.js +1 -0
- package/frontend/dist/js/xterm-Da5ppSVt.js +18 -0
- package/frontend/dist/js/{yaml-mLy9chOK.js → yaml-QD4znPfZ.js} +20 -20
- package/frontend/dist/js/zh-2Q3cQv3s.js +2 -0
- package/package.json +20 -13
- package/plugins/codex-oauth.json +19 -0
- package/plugins/openrouter.json +89 -0
- package/backend/dist/services/systemSettingsService.d.ts +0 -12
- package/backend/dist/services/systemSettingsService.d.ts.map +0 -1
- package/backend/dist/services/systemSettingsService.js +0 -70
- package/backend/dist/services/systemSettingsService.js.map +0 -1
- package/frontend/dist/assets/index-BqI0kezz.css +0 -1
- package/frontend/dist/assets/index-CRC6g6bL.js +0 -3
- package/frontend/dist/assets/markdown-math-CYlHEDRF.css +0 -1
- package/frontend/dist/assets/xterm-CmMoOwwu.css +0 -1
- package/frontend/dist/js/ArtifactContainer-Cdy-973y.js +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CmKgQ4eD.js +0 -1
- package/frontend/dist/js/ChatPage-CYT69oBR.js +0 -16
- package/frontend/dist/js/FirstTimeSetup-C8LdLP5J.js +0 -1
- package/frontend/dist/js/GalleryPage-Bm89pnS8.js +0 -1
- package/frontend/dist/js/HomePage-CeCYnMUG.js +0 -1
- package/frontend/dist/js/LibreClawPage-DGMEV6dm.js +0 -1
- package/frontend/dist/js/ModelSelector-DXPdGdQ_.js +0 -1
- package/frontend/dist/js/ModelsPage-D-FIy2x-.js +0 -2
- package/frontend/dist/js/PersonasPage-CIrEVFo5.js +0 -13
- package/frontend/dist/js/SettingsModal-CxtOXPY7.js +0 -1
- package/frontend/dist/js/UserManagementPage-BfyYGGFQ.js +0 -1
- package/frontend/dist/js/WorkPage-C7bW6Hxx.js +0 -4
- package/frontend/dist/js/addon-fit-Cj0_dfHF.js +0 -1
- package/frontend/dist/js/api-DCD41-l9.js +0 -19
- package/frontend/dist/js/appStore-Bw-8Exsx.js +0 -2
- package/frontend/dist/js/ar-BAHlIvy0.js +0 -2
- package/frontend/dist/js/artifactHtml-B7Oy2e__.js +0 -27
- package/frontend/dist/js/authStore-mOYH_AXI.js +0 -4
- package/frontend/dist/js/babel-BnLuavNv.js +0 -16
- package/frontend/dist/js/bn-BxquDVbd.js +0 -2
- package/frontend/dist/js/cs-C4DoKzRm.js +0 -2
- package/frontend/dist/js/da-CFslpGTw.js +0 -2
- package/frontend/dist/js/de-ChudoRh2.js +0 -2
- package/frontend/dist/js/demoMode-BhEpMVh5.js +0 -1
- package/frontend/dist/js/es-B36fefE-.js +0 -2
- package/frontend/dist/js/estree-0vwU39qX.js +0 -44
- package/frontend/dist/js/fr-BSVeTM5W.js +0 -2
- package/frontend/dist/js/hi-BGoFbl5V.js +0 -2
- package/frontend/dist/js/html-CApr2Bvi.js +0 -25
- package/frontend/dist/js/id-BfYs2p_j.js +0 -2
- package/frontend/dist/js/is-DZ1MS-5A.js +0 -2
- package/frontend/dist/js/it-CXtrPCG1.js +0 -2
- package/frontend/dist/js/ja-FPJ_NK_y.js +0 -2
- package/frontend/dist/js/ko-DVwD4ZZF.js +0 -2
- package/frontend/dist/js/logger-DbNs3-DK.js +0 -1
- package/frontend/dist/js/markdown-C78Qc6xu.js +0 -70
- package/frontend/dist/js/markdown-core-GI9BPwrB.js +0 -16
- package/frontend/dist/js/markdown-math-E4O1gcxj.js +0 -261
- package/frontend/dist/js/ms-PKPP0RX3.js +0 -2
- package/frontend/dist/js/nl-DWM5HJZ8.js +0 -2
- package/frontend/dist/js/pl-B9va8Tuf.js +0 -2
- package/frontend/dist/js/postcss-DSDkwgFE.js +0 -62
- package/frontend/dist/js/pt-P0IQi-Zr.js +0 -2
- package/frontend/dist/js/react-vendor-DyG_ODzn.js +0 -9
- package/frontend/dist/js/router-vendor-BjDI9mRe.js +0 -1
- package/frontend/dist/js/ru-Ca2bxYnc.js +0 -2
- package/frontend/dist/js/sv-DI4RDwyZ.js +0 -2
- package/frontend/dist/js/syntax-highlight-pM1xnNpY.js +0 -8
- package/frontend/dist/js/th-DN0bDS9d.js +0 -2
- package/frontend/dist/js/tr-ChqMv5Q4.js +0 -2
- package/frontend/dist/js/ui-vendor-DohPFHDW.js +0 -177
- package/frontend/dist/js/uk-Cr51h_XQ.js +0 -2
- package/frontend/dist/js/useBaseQuery-BAOlhjar.js +0 -1
- package/frontend/dist/js/useQuery-CcRqxveh.js +0 -1
- package/frontend/dist/js/useTranslation-Cs6iTP4m.js +0 -1
- package/frontend/dist/js/utils-DmZD5uA3.js +0 -1
- package/frontend/dist/js/utils-vendor-Cbaj0BC5.js +0 -9
- package/frontend/dist/js/vi-D4OhoVMH.js +0 -2
- package/frontend/dist/js/xterm-DKl1QLiw.js +0 -7
- package/frontend/dist/js/zh-Bvau7hlR.js +0 -2
package/README.md
CHANGED
|
@@ -252,35 +252,46 @@ Browser or desktop client
|
|
|
252
252
|
|
|
253
253
|
## Deploy on your terms
|
|
254
254
|
|
|
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
|
|
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
|
|
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 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 |
|
|
264
264
|
|
|
265
265
|
Docker commands assume you have cloned this repository. Production deployments
|
|
266
266
|
should set stable `JWT_SECRET` and `ENCRYPTION_KEY` values, persist the data
|
|
267
267
|
directory, back up the database and key together, and terminate public traffic
|
|
268
268
|
with HTTPS.
|
|
269
269
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
> Libre WebUI administrator as a host administrator, and remove the mount if you
|
|
274
|
-
> do not want Work.
|
|
270
|
+
Every fresh installation allows exactly one local administrator to be created.
|
|
271
|
+
After that bootstrap, public local and OAuth registration remains disabled
|
|
272
|
+
unless `ENABLE_SIGNUP=true` is set deliberately.
|
|
275
273
|
|
|
276
|
-
|
|
277
|
-
|
|
274
|
+
> **The Docker socket is the security decision to understand.** Repository
|
|
275
|
+
> Compose files mount it so Work functions out of the box. That grants Libre
|
|
276
|
+
> 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.
|
|
278
|
+
|
|
279
|
+
On Linux, set the socket group in `.env`:
|
|
278
280
|
|
|
279
281
|
```bash
|
|
280
282
|
echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
|
|
281
283
|
alpine stat -c '%g' /var/run/docker.sock)" >> .env
|
|
282
284
|
```
|
|
283
285
|
|
|
286
|
+
Ollama is reachable only on the internal Compose network. If host applications
|
|
287
|
+
also need it, add `-f docker-compose.ollama-host.yml`; that override binds
|
|
288
|
+
Ollama to `127.0.0.1` unless you deliberately choose another address.
|
|
289
|
+
|
|
290
|
+
The WebUI itself also binds to `127.0.0.1` by default. Set
|
|
291
|
+
`WEBUI_BIND_ADDRESS` only when a trusted LAN or a host reverse proxy must reach
|
|
292
|
+
the Compose port; Internet deployments should use the private deployment
|
|
293
|
+
profile instead of publishing it directly.
|
|
294
|
+
|
|
284
295
|
## Documentation
|
|
285
296
|
|
|
286
297
|
Full documentation lives at
|
|
@@ -313,7 +324,9 @@ All participation follows the
|
|
|
313
324
|
[Contributor Covenant 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)
|
|
314
325
|
and the
|
|
315
326
|
[Libre WebUI Community & Ethical Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md).
|
|
316
|
-
Report security issues privately
|
|
327
|
+
Report security issues privately through the
|
|
328
|
+
[security policy](https://github.com/libre-webui/libre-webui/security/policy),
|
|
329
|
+
never through a public issue.
|
|
317
330
|
|
|
318
331
|
## Built from experience, for independence
|
|
319
332
|
|
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;AAuvBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAa/C;eAGc,WAAW"}
|
package/backend/dist/db.js
CHANGED
|
@@ -112,6 +112,9 @@ function initializeTables() {
|
|
|
112
112
|
email TEXT UNIQUE,
|
|
113
113
|
password_hash TEXT NOT NULL,
|
|
114
114
|
role TEXT DEFAULT 'user',
|
|
115
|
+
account_status TEXT NOT NULL DEFAULT 'active' CHECK(account_status IN ('pending', 'active')),
|
|
116
|
+
approved_at INTEGER,
|
|
117
|
+
approved_by TEXT,
|
|
115
118
|
avatar TEXT,
|
|
116
119
|
created_at INTEGER NOT NULL,
|
|
117
120
|
updated_at INTEGER NOT NULL
|
|
@@ -125,6 +128,21 @@ function initializeTables() {
|
|
|
125
128
|
db.exec('ALTER TABLE users ADD COLUMN avatar TEXT');
|
|
126
129
|
logger.debug('Migration: Added avatar column to users table');
|
|
127
130
|
}
|
|
131
|
+
const hasAccountStatus = tableInfo.some(col => col.name === 'account_status');
|
|
132
|
+
if (!hasAccountStatus) {
|
|
133
|
+
db.exec("ALTER TABLE users ADD COLUMN account_status TEXT NOT NULL DEFAULT 'active'");
|
|
134
|
+
logger.debug('Migration: Added account approval status to users table');
|
|
135
|
+
}
|
|
136
|
+
const hasApprovedAt = tableInfo.some(col => col.name === 'approved_at');
|
|
137
|
+
if (!hasApprovedAt) {
|
|
138
|
+
db.exec('ALTER TABLE users ADD COLUMN approved_at INTEGER');
|
|
139
|
+
logger.debug('Migration: Added account approval timestamp to users table');
|
|
140
|
+
}
|
|
141
|
+
const hasApprovedBy = tableInfo.some(col => col.name === 'approved_by');
|
|
142
|
+
if (!hasApprovedBy) {
|
|
143
|
+
db.exec('ALTER TABLE users ADD COLUMN approved_by TEXT');
|
|
144
|
+
logger.debug('Migration: Added account approver to users table');
|
|
145
|
+
}
|
|
128
146
|
}
|
|
129
147
|
catch {
|
|
130
148
|
// Column might already exist or table doesn't exist yet
|
|
@@ -141,9 +159,46 @@ function initializeTables() {
|
|
|
141
159
|
provider_id TEXT, -- Plugin ID when provider_type is plugin
|
|
142
160
|
created_at INTEGER NOT NULL,
|
|
143
161
|
updated_at INTEGER NOT NULL,
|
|
162
|
+
archived INTEGER DEFAULT 0, -- Hidden from the sidebar until unarchived
|
|
163
|
+
settings TEXT, -- Encrypted JSON with per-chat overrides
|
|
164
|
+
folder_id TEXT, -- Optional folder this chat lives in
|
|
144
165
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
145
166
|
FOREIGN KEY (persona_id) REFERENCES personas(id) ON DELETE SET NULL
|
|
146
167
|
)
|
|
168
|
+
`);
|
|
169
|
+
// Folders for organizing chat sessions
|
|
170
|
+
db.exec(`
|
|
171
|
+
CREATE TABLE IF NOT EXISTS session_folders (
|
|
172
|
+
id TEXT PRIMARY KEY,
|
|
173
|
+
user_id TEXT DEFAULT 'default',
|
|
174
|
+
name TEXT NOT NULL,
|
|
175
|
+
created_at INTEGER NOT NULL,
|
|
176
|
+
updated_at INTEGER NOT NULL,
|
|
177
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
178
|
+
)
|
|
179
|
+
`);
|
|
180
|
+
// Knowledge collections group documents for reuse across chats
|
|
181
|
+
db.exec(`
|
|
182
|
+
CREATE TABLE IF NOT EXISTS knowledge_collections (
|
|
183
|
+
id TEXT PRIMARY KEY,
|
|
184
|
+
user_id TEXT DEFAULT 'default',
|
|
185
|
+
name TEXT NOT NULL,
|
|
186
|
+
created_at INTEGER NOT NULL,
|
|
187
|
+
updated_at INTEGER NOT NULL,
|
|
188
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
189
|
+
)
|
|
190
|
+
`);
|
|
191
|
+
// Standalone notes
|
|
192
|
+
db.exec(`
|
|
193
|
+
CREATE TABLE IF NOT EXISTS notes (
|
|
194
|
+
id TEXT PRIMARY KEY,
|
|
195
|
+
user_id TEXT DEFAULT 'default',
|
|
196
|
+
title TEXT NOT NULL,
|
|
197
|
+
content TEXT NOT NULL,
|
|
198
|
+
created_at INTEGER NOT NULL,
|
|
199
|
+
updated_at INTEGER NOT NULL,
|
|
200
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
201
|
+
)
|
|
147
202
|
`);
|
|
148
203
|
// Session messages table - normalized from sessions.json
|
|
149
204
|
db.exec(`
|
|
@@ -159,6 +214,7 @@ function initializeTables() {
|
|
|
159
214
|
images TEXT, -- JSON array of base64 images (for multimodal support)
|
|
160
215
|
statistics TEXT, -- JSON object with generation statistics
|
|
161
216
|
artifacts TEXT, -- JSON array of artifacts
|
|
217
|
+
rating INTEGER, -- User feedback: 1 = liked, -1 = disliked
|
|
162
218
|
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
163
219
|
)
|
|
164
220
|
`);
|
|
@@ -170,6 +226,9 @@ function initializeTables() {
|
|
|
170
226
|
filename TEXT NOT NULL,
|
|
171
227
|
title TEXT,
|
|
172
228
|
content TEXT,
|
|
229
|
+
file_type TEXT,
|
|
230
|
+
size INTEGER,
|
|
231
|
+
session_id TEXT,
|
|
173
232
|
metadata TEXT, -- JSON string for additional metadata
|
|
174
233
|
uploaded_at INTEGER NOT NULL,
|
|
175
234
|
created_at INTEGER NOT NULL,
|
|
@@ -177,6 +236,18 @@ function initializeTables() {
|
|
|
177
236
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
178
237
|
)
|
|
179
238
|
`);
|
|
239
|
+
const documentColumns = db.prepare('PRAGMA table_info(documents)').all();
|
|
240
|
+
const existingDocumentColumns = new Set(documentColumns.map(column => column.name));
|
|
241
|
+
for (const column of [
|
|
242
|
+
{ name: 'file_type', type: 'TEXT' },
|
|
243
|
+
{ name: 'size', type: 'INTEGER' },
|
|
244
|
+
{ name: 'session_id', type: 'TEXT' },
|
|
245
|
+
{ name: 'collection_id', type: 'TEXT' },
|
|
246
|
+
]) {
|
|
247
|
+
if (!existingDocumentColumns.has(column.name)) {
|
|
248
|
+
db.exec(`ALTER TABLE documents ADD COLUMN ${column.name} ${column.type}`);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
180
251
|
// Document chunks table - migrated from document-chunks.json
|
|
181
252
|
db.exec(`
|
|
182
253
|
CREATE TABLE IF NOT EXISTS document_chunks (
|
|
@@ -212,12 +283,6 @@ function initializeTables() {
|
|
|
212
283
|
updated_at INTEGER NOT NULL
|
|
213
284
|
)
|
|
214
285
|
`);
|
|
215
|
-
// Seed default system settings
|
|
216
|
-
const systemSettingsNow = Date.now();
|
|
217
|
-
db.prepare(`
|
|
218
|
-
INSERT OR IGNORE INTO system_settings (key, value, updated_at)
|
|
219
|
-
VALUES (?, ?, ?)
|
|
220
|
-
`).run('allow_user_model_pull', 'true', systemSettingsNow);
|
|
221
286
|
// Personas table - for AI personas/characters
|
|
222
287
|
db.exec(`
|
|
223
288
|
CREATE TABLE IF NOT EXISTS personas (
|
|
@@ -275,6 +340,17 @@ function initializeTables() {
|
|
|
275
340
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
276
341
|
PRIMARY KEY (user_id, plugin_id)
|
|
277
342
|
)
|
|
343
|
+
`);
|
|
344
|
+
db.exec(`
|
|
345
|
+
CREATE TABLE IF NOT EXISTS plugin_discovered_capability_models (
|
|
346
|
+
user_id TEXT DEFAULT 'default',
|
|
347
|
+
plugin_id TEXT NOT NULL,
|
|
348
|
+
capability TEXT NOT NULL CHECK(capability IN ('image', 'tts', 'audio', 'video')),
|
|
349
|
+
models_json TEXT NOT NULL,
|
|
350
|
+
updated_at INTEGER NOT NULL,
|
|
351
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
352
|
+
PRIMARY KEY (user_id, plugin_id, capability)
|
|
353
|
+
)
|
|
278
354
|
`);
|
|
279
355
|
// Plugin activation is account-scoped. Definitions remain shared files.
|
|
280
356
|
db.exec(`
|
|
@@ -296,20 +372,64 @@ function initializeTables() {
|
|
|
296
372
|
approved_by_user_id TEXT NOT NULL,
|
|
297
373
|
approved_at INTEGER NOT NULL
|
|
298
374
|
)
|
|
375
|
+
`);
|
|
376
|
+
// Server-side metering for outbound plugin provider calls. This table stores
|
|
377
|
+
// no prompts, responses, endpoints, credentials, or provider error bodies.
|
|
378
|
+
// Names are snapshotted so historical usage remains understandable after a
|
|
379
|
+
// plugin definition or user account is changed.
|
|
380
|
+
db.exec(`
|
|
381
|
+
CREATE TABLE IF NOT EXISTS plugin_usage_events (
|
|
382
|
+
id TEXT PRIMARY KEY,
|
|
383
|
+
user_id TEXT NOT NULL,
|
|
384
|
+
plugin_id TEXT NOT NULL,
|
|
385
|
+
plugin_name TEXT NOT NULL,
|
|
386
|
+
capability TEXT NOT NULL CHECK(capability IN ('chat', 'embedding', 'image', 'tts', 'audio', 'video')),
|
|
387
|
+
model TEXT NOT NULL,
|
|
388
|
+
status TEXT NOT NULL CHECK(status IN ('success', 'error', 'cancelled')),
|
|
389
|
+
prompt_tokens INTEGER,
|
|
390
|
+
completion_tokens INTEGER,
|
|
391
|
+
total_tokens INTEGER,
|
|
392
|
+
input_units INTEGER NOT NULL DEFAULT 0,
|
|
393
|
+
output_units INTEGER NOT NULL DEFAULT 0,
|
|
394
|
+
unit_kind TEXT,
|
|
395
|
+
duration_ms INTEGER NOT NULL,
|
|
396
|
+
created_at INTEGER NOT NULL
|
|
397
|
+
)
|
|
299
398
|
`);
|
|
300
399
|
// Generated images table - for image gallery
|
|
301
400
|
db.exec(`
|
|
302
401
|
CREATE TABLE IF NOT EXISTS generated_images (
|
|
303
402
|
id TEXT PRIMARY KEY,
|
|
304
403
|
user_id TEXT NOT NULL DEFAULT 'default',
|
|
404
|
+
kind TEXT NOT NULL DEFAULT 'image' CHECK(kind IN ('image', 'video', 'audio')),
|
|
305
405
|
prompt TEXT NOT NULL,
|
|
306
406
|
model TEXT NOT NULL,
|
|
407
|
+
plugin_id TEXT,
|
|
307
408
|
image_data TEXT NOT NULL,
|
|
409
|
+
mime_type TEXT NOT NULL DEFAULT 'image/png',
|
|
308
410
|
size TEXT,
|
|
309
411
|
quality TEXT,
|
|
412
|
+
metadata TEXT,
|
|
310
413
|
created_at INTEGER NOT NULL,
|
|
311
414
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
312
415
|
)
|
|
416
|
+
`);
|
|
417
|
+
db.exec(`
|
|
418
|
+
CREATE TABLE IF NOT EXISTS media_generation_jobs (
|
|
419
|
+
id TEXT PRIMARY KEY,
|
|
420
|
+
user_id TEXT NOT NULL,
|
|
421
|
+
provider_job_id TEXT NOT NULL,
|
|
422
|
+
plugin_id TEXT NOT NULL,
|
|
423
|
+
model TEXT NOT NULL,
|
|
424
|
+
prompt TEXT NOT NULL,
|
|
425
|
+
status TEXT NOT NULL CHECK(status IN ('pending', 'in_progress', 'completed', 'failed')),
|
|
426
|
+
options_json TEXT,
|
|
427
|
+
gallery_id TEXT,
|
|
428
|
+
error TEXT,
|
|
429
|
+
created_at INTEGER NOT NULL,
|
|
430
|
+
updated_at INTEGER NOT NULL,
|
|
431
|
+
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
432
|
+
)
|
|
313
433
|
`);
|
|
314
434
|
// Native Work tasks. Workspace files live in a task-owned Docker volume;
|
|
315
435
|
// SQLite stores ownership, conversation history, and durable run state.
|
|
@@ -381,6 +501,8 @@ function initializeTables() {
|
|
|
381
501
|
CREATE INDEX IF NOT EXISTS idx_session_messages_timestamp ON session_messages(timestamp);
|
|
382
502
|
CREATE INDEX IF NOT EXISTS idx_documents_user_id ON documents(user_id);
|
|
383
503
|
CREATE INDEX IF NOT EXISTS idx_documents_uploaded_at ON documents(uploaded_at);
|
|
504
|
+
CREATE INDEX IF NOT EXISTS idx_notes_user_updated ON notes(user_id, updated_at DESC);
|
|
505
|
+
CREATE INDEX IF NOT EXISTS idx_session_folders_user_id ON session_folders(user_id);
|
|
384
506
|
CREATE INDEX IF NOT EXISTS idx_document_chunks_document_id ON document_chunks(document_id);
|
|
385
507
|
CREATE INDEX IF NOT EXISTS idx_document_chunks_index ON document_chunks(chunk_index);
|
|
386
508
|
CREATE INDEX IF NOT EXISTS idx_user_preferences_user_id ON user_preferences(user_id);
|
|
@@ -392,10 +514,17 @@ function initializeTables() {
|
|
|
392
514
|
CREATE INDEX IF NOT EXISTS idx_plugin_variables_user_id ON plugin_variables(user_id);
|
|
393
515
|
CREATE INDEX IF NOT EXISTS idx_plugin_variables_plugin_id ON plugin_variables(plugin_id);
|
|
394
516
|
CREATE INDEX IF NOT EXISTS idx_plugin_discovered_models_plugin_id ON plugin_discovered_models(plugin_id);
|
|
517
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_discovered_capability_models_plugin_id ON plugin_discovered_capability_models(plugin_id);
|
|
395
518
|
CREATE INDEX IF NOT EXISTS idx_plugin_activations_plugin_id ON plugin_activations(plugin_id);
|
|
396
519
|
CREATE INDEX IF NOT EXISTS idx_plugin_definition_approvals_approver ON plugin_definition_approvals(approved_by_user_id);
|
|
520
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_created_at ON plugin_usage_events(created_at DESC);
|
|
521
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_plugin_created ON plugin_usage_events(plugin_id, created_at DESC);
|
|
522
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_model_created ON plugin_usage_events(model, created_at DESC);
|
|
523
|
+
CREATE INDEX IF NOT EXISTS idx_plugin_usage_events_user_created ON plugin_usage_events(user_id, created_at DESC);
|
|
397
524
|
CREATE INDEX IF NOT EXISTS idx_generated_images_user_id ON generated_images(user_id);
|
|
398
525
|
CREATE INDEX IF NOT EXISTS idx_generated_images_created_at ON generated_images(created_at);
|
|
526
|
+
CREATE INDEX IF NOT EXISTS idx_media_generation_jobs_user_created ON media_generation_jobs(user_id, created_at DESC);
|
|
527
|
+
CREATE INDEX IF NOT EXISTS idx_media_generation_jobs_updated_at ON media_generation_jobs(updated_at);
|
|
399
528
|
`);
|
|
400
529
|
logger.debug('Database tables initialized successfully');
|
|
401
530
|
// Create default user if no users exist
|
|
@@ -431,7 +560,63 @@ function createDefaultUserIfNeeded() {
|
|
|
431
560
|
function runMigrations() {
|
|
432
561
|
if (!db)
|
|
433
562
|
return;
|
|
563
|
+
const migrationDb = db;
|
|
434
564
|
try {
|
|
565
|
+
const usageTableSql = migrationDb
|
|
566
|
+
.prepare(`SELECT sql FROM sqlite_master
|
|
567
|
+
WHERE type = 'table' AND name = 'plugin_usage_events'`)
|
|
568
|
+
.get();
|
|
569
|
+
if (usageTableSql?.sql &&
|
|
570
|
+
(!usageTableSql.sql.includes("'video'") ||
|
|
571
|
+
!usageTableSql.sql.includes("'audio'"))) {
|
|
572
|
+
migrationDb.transaction(() => {
|
|
573
|
+
migrationDb.exec(`
|
|
574
|
+
CREATE TABLE plugin_usage_events_next (
|
|
575
|
+
id TEXT PRIMARY KEY,
|
|
576
|
+
user_id TEXT NOT NULL,
|
|
577
|
+
plugin_id TEXT NOT NULL,
|
|
578
|
+
plugin_name TEXT NOT NULL,
|
|
579
|
+
capability TEXT NOT NULL CHECK(capability IN ('chat', 'embedding', 'image', 'tts', 'audio', 'video')),
|
|
580
|
+
model TEXT NOT NULL,
|
|
581
|
+
status TEXT NOT NULL CHECK(status IN ('success', 'error', 'cancelled')),
|
|
582
|
+
prompt_tokens INTEGER,
|
|
583
|
+
completion_tokens INTEGER,
|
|
584
|
+
total_tokens INTEGER,
|
|
585
|
+
input_units INTEGER NOT NULL DEFAULT 0,
|
|
586
|
+
output_units INTEGER NOT NULL DEFAULT 0,
|
|
587
|
+
unit_kind TEXT,
|
|
588
|
+
duration_ms INTEGER NOT NULL,
|
|
589
|
+
created_at INTEGER NOT NULL
|
|
590
|
+
);
|
|
591
|
+
INSERT INTO plugin_usage_events_next SELECT * FROM plugin_usage_events;
|
|
592
|
+
DROP TABLE plugin_usage_events;
|
|
593
|
+
ALTER TABLE plugin_usage_events_next RENAME TO plugin_usage_events;
|
|
594
|
+
CREATE INDEX idx_plugin_usage_events_created_at ON plugin_usage_events(created_at DESC);
|
|
595
|
+
CREATE INDEX idx_plugin_usage_events_plugin_created ON plugin_usage_events(plugin_id, created_at DESC);
|
|
596
|
+
CREATE INDEX idx_plugin_usage_events_model_created ON plugin_usage_events(model, created_at DESC);
|
|
597
|
+
CREATE INDEX idx_plugin_usage_events_user_created ON plugin_usage_events(user_id, created_at DESC);
|
|
598
|
+
`);
|
|
599
|
+
})();
|
|
600
|
+
}
|
|
601
|
+
const generatedMediaColumns = db.prepare('PRAGMA table_info(generated_images)').all().map(column => column.name);
|
|
602
|
+
for (const column of [
|
|
603
|
+
{
|
|
604
|
+
name: 'kind',
|
|
605
|
+
definition: "TEXT NOT NULL DEFAULT 'image' CHECK(kind IN ('image', 'video', 'audio'))",
|
|
606
|
+
},
|
|
607
|
+
{ name: 'plugin_id', definition: 'TEXT' },
|
|
608
|
+
{
|
|
609
|
+
name: 'mime_type',
|
|
610
|
+
definition: "TEXT NOT NULL DEFAULT 'image/png'",
|
|
611
|
+
},
|
|
612
|
+
{ name: 'metadata', definition: 'TEXT' },
|
|
613
|
+
]) {
|
|
614
|
+
if (!generatedMediaColumns.includes(column.name)) {
|
|
615
|
+
db.exec(`ALTER TABLE generated_images ADD COLUMN ${column.name} ${column.definition}`);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_generated_images_user_kind_created
|
|
619
|
+
ON generated_images(user_id, kind, created_at DESC)`);
|
|
435
620
|
const pluginCredentialColumns = db.prepare('PRAGMA table_info(plugin_credentials)').all().map(column => column.name);
|
|
436
621
|
if (!pluginCredentialColumns.includes('routing_auth_fingerprint')) {
|
|
437
622
|
db.exec('ALTER TABLE plugin_credentials ADD COLUMN routing_auth_fingerprint TEXT');
|
|
@@ -460,6 +645,7 @@ function runMigrations() {
|
|
|
460
645
|
{ name: 'parent_id', type: 'TEXT' }, // ID of the original message this is a variant of
|
|
461
646
|
{ name: 'branch_index', type: 'INTEGER DEFAULT 0' }, // Index within branch group (0 = original)
|
|
462
647
|
{ name: 'is_active', type: 'INTEGER DEFAULT 1' }, // Whether this is the active variant (1 = true)
|
|
648
|
+
{ name: 'rating', type: 'INTEGER' }, // User feedback: 1 = liked, -1 = disliked
|
|
463
649
|
];
|
|
464
650
|
for (const column of newSessionMessagesColumns) {
|
|
465
651
|
if (!existingSessionMessagesColumns.includes(column.name)) {
|
|
@@ -477,6 +663,9 @@ function runMigrations() {
|
|
|
477
663
|
for (const column of [
|
|
478
664
|
{ name: 'provider_type', type: 'TEXT' },
|
|
479
665
|
{ name: 'provider_id', type: 'TEXT' },
|
|
666
|
+
{ name: 'archived', type: 'INTEGER DEFAULT 0' },
|
|
667
|
+
{ name: 'settings', type: 'TEXT' },
|
|
668
|
+
{ name: 'folder_id', type: 'TEXT' },
|
|
480
669
|
]) {
|
|
481
670
|
if (!existingSessionsColumns.includes(column.name)) {
|
|
482
671
|
logger.debug(`Adding column ${column.name} to sessions table`);
|
package/backend/dist/db.js.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AAqElB,QAAA,MAAM,GAAG,6CAAY,CAAC;eA6iBP,GAAG"}
|
package/backend/dist/index.js
CHANGED
|
@@ -46,19 +46,23 @@ import agentCliRoutes from './routes/agentCli.js';
|
|
|
46
46
|
import preferencesRoutes from './routes/preferences.js';
|
|
47
47
|
import pluginRoutes from './routes/plugins.js';
|
|
48
48
|
import documentRoutes from './routes/documents.js';
|
|
49
|
+
import notesRoutes from './routes/notes.js';
|
|
49
50
|
import authRoutes from './routes/auth.js';
|
|
50
51
|
import usersRoutes from './routes/users.js';
|
|
51
52
|
import personaRoutes from './routes/personas.js';
|
|
52
53
|
import ttsRoutes from './routes/tts.js';
|
|
53
54
|
import imageGenRoutes from './routes/imageGen.js';
|
|
55
|
+
import mediaRoutes from './routes/media.js';
|
|
54
56
|
import embeddingsRoutes from './routes/embeddings.js';
|
|
55
57
|
import huggingfaceHubRoutes from './routes/huggingfaceHub.js';
|
|
56
58
|
import libreClawRoutes from './routes/libreClaw.js';
|
|
57
59
|
import workRoutes from './routes/work.js';
|
|
60
|
+
import systemDiagnosticsRoutes from './routes/systemDiagnostics.js';
|
|
58
61
|
import ollamaService from './services/ollamaService.js';
|
|
59
62
|
import workRuntimeService from './services/workRuntimeService.js';
|
|
60
63
|
import workTaskService from './services/workTaskService.js';
|
|
61
64
|
import workAgentService from './services/workAgentService.js';
|
|
65
|
+
import workPreviewProxyService, { WORK_PREVIEW_PROXY_PREFIX, } from './services/workPreviewProxyService.js';
|
|
62
66
|
import { GitHubOAuthService } from './services/simpleGitHubOAuth.js';
|
|
63
67
|
import { HuggingFaceOAuthService } from './services/simpleHuggingFaceOAuth.js';
|
|
64
68
|
import { loadAppPackage, resolveFrontendDist } from './utils/packagePaths.js';
|
|
@@ -95,13 +99,24 @@ if (trustProxy) {
|
|
|
95
99
|
app.set('trust proxy', trustProxy);
|
|
96
100
|
}
|
|
97
101
|
}
|
|
102
|
+
// Generated Work apps listen on Docker host loopback. Proxy their signed
|
|
103
|
+
// capability URLs before body parsing and the application's Helmet policy so
|
|
104
|
+
// request streams, dev-server assets, and preview-specific sandbox headers are
|
|
105
|
+
// preserved end to end.
|
|
106
|
+
app.use(WORK_PREVIEW_PROXY_PREFIX, workPreviewProxyService.handleHttp);
|
|
98
107
|
const isProduction = process.env.NODE_ENV === 'production';
|
|
99
108
|
const port = process.env.PORT || (isProduction ? 8080 : 3001);
|
|
109
|
+
const host = process.env.WEBUI_HOST?.trim() ||
|
|
110
|
+
(process.env.DOCKER_ENV === 'true' ? '0.0.0.0' : '127.0.0.1');
|
|
100
111
|
const corsOrigins = process.env.CORS_ORIGIN?.split(',') || [
|
|
101
112
|
'http://localhost:5173',
|
|
102
113
|
'http://localhost:3000',
|
|
103
114
|
'http://localhost:8080',
|
|
115
|
+
'http://127.0.0.1:5173',
|
|
116
|
+
'http://127.0.0.1:3000',
|
|
117
|
+
'http://127.0.0.1:8080',
|
|
104
118
|
`http://localhost:${port}`, // Allow same-origin when serving frontend
|
|
119
|
+
`http://127.0.0.1:${port}`,
|
|
105
120
|
];
|
|
106
121
|
// Multi-user safe CORS configuration
|
|
107
122
|
const corsConfig = {
|
|
@@ -135,8 +150,8 @@ const corsConfig = {
|
|
|
135
150
|
};
|
|
136
151
|
// Security middleware
|
|
137
152
|
app.use(helmet({
|
|
138
|
-
// Work previews
|
|
139
|
-
//
|
|
153
|
+
// Work previews have their own sandboxed proxy response policy and do not
|
|
154
|
+
// normally emit CORP.
|
|
140
155
|
crossOriginEmbedderPolicy: false,
|
|
141
156
|
// Content Security Policy - Docker-aware configuration
|
|
142
157
|
contentSecurityPolicy: {
|
|
@@ -178,16 +193,11 @@ app.use(helmet({
|
|
|
178
193
|
fontSrc: ["'self'", 'data:', 'https://fonts.gstatic.com'],
|
|
179
194
|
mediaSrc: ["'self'", 'data:', 'blob:'],
|
|
180
195
|
objectSrc: ["'none'"],
|
|
181
|
-
frameSrc: [
|
|
182
|
-
"'self'",
|
|
183
|
-
'https://challenges.cloudflare.com',
|
|
184
|
-
'http://127.0.0.1:*',
|
|
185
|
-
'http://localhost:*',
|
|
186
|
-
],
|
|
196
|
+
frameSrc: ["'self'", 'https://challenges.cloudflare.com'],
|
|
187
197
|
frameAncestors: ["'self'"],
|
|
188
198
|
formAction: ["'self'"],
|
|
189
|
-
// npx desktop mode
|
|
190
|
-
//
|
|
199
|
+
// npx desktop mode serves the application and signed preview proxy over
|
|
200
|
+
// plain localhost HTTP.
|
|
191
201
|
upgradeInsecureRequests: null,
|
|
192
202
|
baseUri: ["'self'"],
|
|
193
203
|
manifestSrc: ["'self'"],
|
|
@@ -400,12 +410,15 @@ app.use('/api/preferences', preferencesRateLimiter, optionalAuth, preferencesRou
|
|
|
400
410
|
app.use('/api/plugins', pluginAuthBurstRateLimiter, authenticate, pluginRouteRateLimiter, pluginRoutes);
|
|
401
411
|
app.use('/api/embeddings', embeddingsRoutes);
|
|
402
412
|
app.use('/api/documents', documentsRateLimiter, documentRoutes);
|
|
413
|
+
app.use('/api/notes', documentsRateLimiter, notesRoutes);
|
|
403
414
|
app.use('/api/personas', personasRateLimiter, optionalAuth, personaRoutes);
|
|
404
415
|
app.use('/api/tts', ttsRateLimiter, optionalAuth, ttsRoutes);
|
|
405
416
|
app.use('/api/image-gen', imageGenRateLimiter, optionalAuth, imageGenRoutes);
|
|
417
|
+
app.use('/api/media', mediaRoutes);
|
|
406
418
|
app.use('/api/huggingface-hub', huggingfaceHubRoutes);
|
|
407
419
|
app.use('/api/libre-claw', libreClawRateLimiter, libreClawRoutes);
|
|
408
420
|
app.use('/api/work', workRateLimiter, workRoutes);
|
|
421
|
+
app.use('/api/system', systemDiagnosticsRoutes);
|
|
409
422
|
// Serve frontend static files in production (for npx libre-webui)
|
|
410
423
|
if (process.env.NODE_ENV === 'production' ||
|
|
411
424
|
process.env.SERVE_FRONTEND === 'true') {
|
|
@@ -447,19 +460,35 @@ app.use(errorHandler);
|
|
|
447
460
|
const server = createServer(app);
|
|
448
461
|
registerWebSocketServer(server);
|
|
449
462
|
// Start server
|
|
450
|
-
server.listen({ port, host
|
|
451
|
-
const
|
|
463
|
+
server.listen({ port, host }, () => {
|
|
464
|
+
const displayHost = ['0.0.0.0', '::'].includes(host)
|
|
465
|
+
? 'localhost'
|
|
466
|
+
: host.includes(':')
|
|
467
|
+
? `[${host}]`
|
|
468
|
+
: host;
|
|
469
|
+
const url = `http://${displayHost}:${port}`;
|
|
452
470
|
logger.info(`Libre WebUI v${pkg.version}`);
|
|
453
471
|
logger.info(url);
|
|
454
472
|
// Open browser in production mode
|
|
455
|
-
if (process.env.SERVE_FRONTEND === 'true'
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
473
|
+
if (process.env.SERVE_FRONTEND === 'true' &&
|
|
474
|
+
process.env.OPEN_BROWSER !== 'false') {
|
|
475
|
+
import('child_process').then(({ spawn }) => {
|
|
476
|
+
const opener = process.platform === 'darwin'
|
|
477
|
+
? { command: 'open', args: [url] }
|
|
459
478
|
: process.platform === 'win32'
|
|
460
|
-
?
|
|
461
|
-
|
|
462
|
-
|
|
479
|
+
? {
|
|
480
|
+
command: 'rundll32',
|
|
481
|
+
args: ['url.dll,FileProtocolHandler', url],
|
|
482
|
+
}
|
|
483
|
+
: { command: 'xdg-open', args: [url] };
|
|
484
|
+
const browser = spawn(opener.command, opener.args, {
|
|
485
|
+
detached: true,
|
|
486
|
+
stdio: 'ignore',
|
|
487
|
+
});
|
|
488
|
+
browser.on('error', error => {
|
|
489
|
+
logger.debug(`Unable to open the browser automatically: ${error}`);
|
|
490
|
+
});
|
|
491
|
+
browser.unref();
|
|
463
492
|
});
|
|
464
493
|
}
|
|
465
494
|
// Check OAuth providers configuration on startup
|