libre-webui 0.37.2 → 0.39.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 +29 -65
- package/backend/dist/db.js +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +13 -36
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/main.js +0 -12
- package/backend/dist/main.js.map +1 -1
- package/backend/dist/middleware/cors.d.ts.map +1 -1
- package/backend/dist/middleware/cors.js +5 -0
- package/backend/dist/middleware/cors.js.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/postgresExtensionRepositories.js +2 -4
- package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts +9 -0
- package/backend/dist/persistence/postgresWorkRunThinkMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresWorkRunThinkMigration.js +39 -0
- package/backend/dist/persistence/postgresWorkRunThinkMigration.js.map +1 -0
- package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteExtensionRepositories.js +2 -4
- package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +20 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +1 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js +3 -2
- package/backend/dist/platform/workPersistence/postgresWorkPersistence.js.map +1 -1
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js +3 -3
- package/backend/dist/platform/workPersistence/sqliteWorkPersistence.js.map +1 -1
- package/backend/dist/platform/workPersistence/types.d.ts +5 -0
- package/backend/dist/platform/workPersistence/types.d.ts.map +1 -1
- package/backend/dist/platform/workPersistence/types.js.map +1 -1
- package/backend/dist/routes/agentCli.d.ts.map +1 -1
- package/backend/dist/routes/agentCli.js +8 -3
- package/backend/dist/routes/agentCli.js.map +1 -1
- package/backend/dist/routes/{cordis.d.ts → strands.d.ts} +1 -1
- package/backend/dist/routes/strands.d.ts.map +1 -0
- package/backend/dist/routes/strands.js +300 -0
- package/backend/dist/routes/strands.js.map +1 -0
- package/backend/dist/routes/work.d.ts.map +1 -1
- package/backend/dist/routes/work.js +26 -23
- package/backend/dist/routes/work.js.map +1 -1
- package/backend/dist/services/agentAccessService.d.ts +0 -5
- package/backend/dist/services/agentAccessService.d.ts.map +1 -1
- package/backend/dist/services/agentAccessService.js +7 -35
- package/backend/dist/services/agentAccessService.js.map +1 -1
- package/backend/dist/services/agentCliService.d.ts +16 -23
- package/backend/dist/services/agentCliService.d.ts.map +1 -1
- package/backend/dist/services/agentCliService.js +85 -112
- package/backend/dist/services/agentCliService.js.map +1 -1
- package/backend/dist/services/authService.d.ts +3 -3
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +3 -4
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/authorizationService.d.ts +1 -1
- package/backend/dist/services/authorizationService.d.ts.map +1 -1
- package/backend/dist/services/authorizationService.js +17 -8
- package/backend/dist/services/authorizationService.js.map +1 -1
- package/backend/dist/services/followUpService.d.ts +4 -1
- package/backend/dist/services/followUpService.d.ts.map +1 -1
- package/backend/dist/services/followUpService.js +23 -2
- package/backend/dist/services/followUpService.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +10 -6
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/pluginUsageService.d.ts +0 -34
- package/backend/dist/services/pluginUsageService.d.ts.map +1 -1
- package/backend/dist/services/pluginUsageService.js +0 -62
- package/backend/dist/services/pluginUsageService.js.map +1 -1
- package/backend/dist/services/strandsAccessService.d.ts +26 -0
- package/backend/dist/services/strandsAccessService.d.ts.map +1 -0
- package/backend/dist/services/strandsAccessService.js +95 -0
- package/backend/dist/services/strandsAccessService.js.map +1 -0
- package/backend/dist/services/thinkingSummaryService.d.ts +2 -3
- package/backend/dist/services/thinkingSummaryService.d.ts.map +1 -1
- package/backend/dist/services/thinkingSummaryService.js +13 -27
- package/backend/dist/services/thinkingSummaryService.js.map +1 -1
- package/backend/dist/services/titleGenerationService.d.ts +7 -18
- package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
- package/backend/dist/services/titleGenerationService.js +15 -36
- package/backend/dist/services/titleGenerationService.js.map +1 -1
- package/backend/dist/services/workAgentService.d.ts +1 -1
- package/backend/dist/services/workAgentService.d.ts.map +1 -1
- package/backend/dist/services/workAgentService.js +17 -60
- package/backend/dist/services/workAgentService.js.map +1 -1
- package/backend/dist/services/workModelProviderService.d.ts +1 -4
- package/backend/dist/services/workModelProviderService.d.ts.map +1 -1
- package/backend/dist/services/workModelProviderService.js +60 -50
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workTaskService.d.ts +3 -2
- package/backend/dist/services/workTaskService.d.ts.map +1 -1
- package/backend/dist/services/workTaskService.js +11 -7
- package/backend/dist/services/workTaskService.js.map +1 -1
- package/backend/dist/strands/catalog.d.ts +57 -0
- package/backend/dist/strands/catalog.d.ts.map +1 -0
- package/backend/dist/strands/catalog.js +241 -0
- package/backend/dist/strands/catalog.js.map +1 -0
- package/backend/dist/strands/engine.d.ts +131 -0
- package/backend/dist/strands/engine.d.ts.map +1 -0
- package/backend/dist/strands/engine.js +477 -0
- package/backend/dist/strands/engine.js.map +1 -0
- package/backend/dist/strands/harness.d.ts +14 -0
- package/backend/dist/strands/harness.d.ts.map +1 -0
- package/backend/dist/strands/harness.js +41 -0
- package/backend/dist/strands/harness.js.map +1 -0
- package/backend/dist/strands/model.d.ts +24 -0
- package/backend/dist/strands/model.d.ts.map +1 -0
- package/backend/dist/strands/model.js +381 -0
- package/backend/dist/strands/model.js.map +1 -0
- package/backend/dist/strands/runtime.d.ts +4 -0
- package/backend/dist/strands/runtime.d.ts.map +1 -0
- package/backend/dist/{cordis/work-model.js → strands/runtime.js} +16 -12
- package/backend/dist/strands/runtime.js.map +1 -0
- package/backend/dist/strands/sandbox.d.ts +24 -0
- package/backend/dist/strands/sandbox.d.ts.map +1 -0
- package/backend/dist/strands/sandbox.js +156 -0
- package/backend/dist/strands/sandbox.js.map +1 -0
- package/backend/dist/strands/work-driver.d.ts +11 -0
- package/backend/dist/strands/work-driver.d.ts.map +1 -0
- package/backend/dist/strands/work-driver.js +443 -0
- package/backend/dist/strands/work-driver.js.map +1 -0
- package/backend/dist/strands/work-model.d.ts +7 -0
- package/backend/dist/strands/work-model.d.ts.map +1 -0
- package/backend/dist/strands/work-model.js +42 -0
- package/backend/dist/strands/work-model.js.map +1 -0
- package/backend/dist/types/work.d.ts +7 -11
- package/backend/dist/types/work.d.ts.map +1 -1
- package/backend/dist/types/work.js.map +1 -1
- package/backend/dist/utils/bedrockMantle.d.ts +46 -0
- package/backend/dist/utils/bedrockMantle.d.ts.map +1 -0
- package/backend/dist/utils/bedrockMantle.js +206 -0
- package/backend/dist/utils/bedrockMantle.js.map +1 -0
- package/backend/dist/utils/corsOriginPolicy.d.ts +10 -0
- package/backend/dist/utils/corsOriginPolicy.d.ts.map +1 -0
- package/backend/dist/utils/corsOriginPolicy.js +70 -0
- package/backend/dist/utils/corsOriginPolicy.js.map +1 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts +36 -0
- package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
- package/backend/dist/utils/pluginChatAdapter.js +122 -47
- package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.d.ts.map +1 -1
- package/backend/dist/utils/pluginDefinitionTrust.js +3 -2
- package/backend/dist/utils/pluginDefinitionTrust.js.map +1 -1
- package/backend/dist/utils/pluginValidation.d.ts +1 -1
- package/backend/dist/utils/pluginValidation.d.ts.map +1 -1
- package/backend/dist/utils/pluginValidation.js +11 -0
- package/backend/dist/utils/pluginValidation.js.map +1 -1
- package/backend/package.json +6 -36
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/artifact-runtime/babel.js +170 -170
- package/frontend/dist/artifact-runtime/framer-motion.js +3 -3
- package/frontend/dist/artifact-runtime/lucide-react.js +1 -1
- package/frontend/dist/artifact-runtime/mathjs.js +1 -1
- package/frontend/dist/artifact-runtime/mermaid.js +1 -1
- package/frontend/dist/artifact-runtime/plotly.js +1 -1
- package/frontend/dist/artifact-runtime/react.js +3 -3
- package/frontend/dist/assets/index-D99DS5c6.js +57 -0
- package/frontend/dist/assets/index-Dz1JufgZ.css +1 -0
- package/frontend/dist/assets/{markdown-math-D1Bj3pDB.css → markdown-math-DzFXvcrH.css} +1 -1
- package/frontend/dist/index.html +34 -34
- package/frontend/dist/js/{ArtifactContainer-D4v4l15L.js → ArtifactContainer-Cn7X9HGm.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-B2uaVpsi.js → ArtifactDemoPage-Ddpy2O_v.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-DlWJHI-r.js → ArtifactSandboxFrame-CdsAqv8H.js} +1 -1
- package/frontend/dist/js/{ArtifactSlideOutPanel-laZ98QKB.js → ArtifactSlideOutPanel-cVd9X80o.js} +1 -1
- package/frontend/dist/js/AutomationModal-B4UaWjkk.js +1 -0
- package/frontend/dist/js/AutomationsPage-huCrvLUp.js +1 -0
- package/frontend/dist/js/{AvatarUpload-KaBaTKoG.js → AvatarUpload-CG-w6Mpt.js} +1 -1
- package/frontend/dist/js/{Button-CGMYia4g.js → Button-j68Q8KVh.js} +1 -1
- package/frontend/dist/js/{CalendarPage-Dc7r-86c.js → CalendarPage-CZXT1w99.js} +1 -1
- package/frontend/dist/js/ChannelsPage-DbtdHnSL.js +1 -0
- package/frontend/dist/js/ChatPage-BZE65kiq.js +14 -0
- package/frontend/dist/js/ConnectModels-DD4bLgdq.js +1 -0
- package/frontend/dist/js/{EvaluationsPage-BB7sPhIR.js → EvaluationsPage-Dq53LaXd.js} +2 -2
- package/frontend/dist/js/{FirstTimeSetup-elqSi9JH.js → FirstTimeSetup-BoJIfuQT.js} +1 -1
- package/frontend/dist/js/GalleryPage-DKwqeB2A.js +1 -0
- package/frontend/dist/js/HomePage-C8bCJfls.js +1 -0
- package/frontend/dist/js/LanguageSwitcher-B_YyU5JG.js +1 -0
- package/frontend/dist/js/{Logo-HZvdAk2c.js → Logo-DnfVtjgj.js} +1 -1
- package/frontend/dist/js/{LogoMark-GJnfMXsk.js → LogoMark-BzObGdA9.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-Bk6OQzJI.js → ModelManagerModals-BzjZ-QwL.js} +1 -1
- package/frontend/dist/js/NotesPage-CnaAp_w_.js +3 -0
- package/frontend/dist/js/{OptimizedSyntaxHighlighter-CzzV6ONG.js → OptimizedSyntaxHighlighter-B0g8cxZQ.js} +1 -1
- package/frontend/dist/js/OptimizedSyntaxHighlighter-B_BbHeO1.js +1 -0
- package/frontend/dist/js/{PasswordStrengthMeter-DasfJa4P.js → PasswordStrengthMeter-DI4RDv67.js} +1 -1
- package/frontend/dist/js/{PersonasPage-CIJINcQK.js → PersonasPage-CH3GUKph.js} +2 -2
- package/frontend/dist/js/PluginUsagePage-d54K2gAj.js +1 -0
- package/frontend/dist/js/{RichMessageContent-DxCHlUlY.js → RichMessageContent-BfYbVBFz.js} +2 -2
- package/frontend/dist/js/RichMessageContent-CDxxs3Tt.js +1 -0
- package/frontend/dist/js/SettingsModal-BvtJcvow.js +19 -0
- package/frontend/dist/js/{SettingsToggle-oxvw7ulA.js → SettingsToggle-DrJ0Bapi.js} +1 -1
- package/frontend/dist/js/{ShareDialog-Bhpt_Y1N.js → ShareDialog-DaSxkTKS.js} +1 -1
- package/frontend/dist/js/StrandsPage-BQwz0mWq.js +1 -0
- package/frontend/dist/js/{SystemPage-BfhVXqar.js → SystemPage-BqNZoFxR.js} +1 -1
- package/frontend/dist/js/{TurnstileWidget-CVepEMEQ.js → TurnstileWidget-tI50c7Kc.js} +1 -1
- package/frontend/dist/js/{UserManagementPage-2yHv89ZA.js → UserManagementPage-UvPjA9RP.js} +1 -1
- package/frontend/dist/js/UserManagementPanel-C3T1ReJJ.js +1 -0
- package/frontend/dist/js/{WhatsNewModal-Dl69bG2T.js → WhatsNewModal-CLcU2Ugk.js} +1 -1
- package/frontend/dist/js/WorkPage-BpjGn--1.js +8 -0
- package/frontend/dist/js/api-BrHW-VGd.js +14 -0
- package/frontend/dist/js/api-K_hhqPdx.js +1 -0
- package/frontend/dist/js/{appNavigation-R8iKverf.js → appNavigation-B6xYIgLi.js} +1 -1
- package/frontend/dist/js/appStore-DkRdQQeY.js +2 -0
- package/frontend/dist/js/appVersion-BVtSqLVj.js +1 -0
- package/frontend/dist/js/ar-XTZGEtBr.js +2 -0
- package/frontend/dist/js/authStore-DBS6Kbvh.js +1 -0
- package/frontend/dist/js/{authStore-D8fc-Hl0.js → authStore-DjAsRpNL.js} +3 -3
- package/frontend/dist/js/bn-JiK7ZWmy.js +2 -0
- package/frontend/dist/js/chatStore-DpVxt9VX.js +3 -0
- package/frontend/dist/js/{client-BeJbHHWx.js → client-DppLngAs.js} +2 -2
- package/frontend/dist/js/{config-D6Kcp5n3.js → config-4_s8hdqO.js} +1 -1
- package/frontend/dist/js/cs-D8ju18CO.js +2 -0
- package/frontend/dist/js/da-BJWcAoUc.js +2 -0
- package/frontend/dist/js/de-CLJLmy69.js +2 -0
- package/frontend/dist/js/es-BvqHEL-3.js +2 -0
- package/frontend/dist/js/{evaluationsApi-2YwZBPk5.js → evaluationsApi-DyuW7IJ_.js} +1 -1
- package/frontend/dist/js/fr-B8ZoZomI.js +2 -0
- package/frontend/dist/js/hi-AzJLALo-.js +2 -0
- package/frontend/dist/js/id-DZYGQhvC.js +2 -0
- package/frontend/dist/js/is-Da_kvtzW.js +2 -0
- package/frontend/dist/js/it-B90zSlqn.js +2 -0
- package/frontend/dist/js/ja-DU_K1GOr.js +2 -0
- package/frontend/dist/js/ko-DicfoO-e.js +2 -0
- package/frontend/dist/js/{markdown-CZ1tYEW8.js → markdown-DU84620G.js} +1 -1
- package/frontend/dist/js/{markdown-core-KjS96SYW.js → markdown-core-Cyql92Hg.js} +1 -1
- package/frontend/dist/js/{markdown-html-DQEwrWcf.js → markdown-html-CUc2fCgY.js} +1 -1
- package/frontend/dist/js/{markdown-math-CKi32S5d.js → markdown-math-DxPfMKvO.js} +1 -1
- package/frontend/dist/js/{markdownHtml-lrXhxBhK.js → markdownHtml-KhS0cFNH.js} +1 -1
- package/frontend/dist/js/markdownMath-CsfRQAcz.js +1 -0
- package/frontend/dist/js/{messageCodeStyles-D4haBw80.js → messageCodeStyles-CuQPkfEK.js} +1 -1
- package/frontend/dist/js/ms-CfH7wjUY.js +2 -0
- package/frontend/dist/js/nl-ELlOz-B3.js +2 -0
- package/frontend/dist/js/pl-33dayyUk.js +2 -0
- package/frontend/dist/js/pt-aIXSQPCT.js +2 -0
- package/frontend/dist/js/react-vendor-CR5VJ85Q.js +9 -0
- package/frontend/dist/js/{router-vendor-HZm4FR0A.js → router-vendor-DqMnEJWK.js} +1 -1
- package/frontend/dist/js/ru-BSvGtBtW.js +2 -0
- package/frontend/dist/js/{standalone-DbyFjvTU.js → standalone-D_lg5NC9.js} +1 -1
- package/frontend/dist/js/strandsApi-BFbeEpAY.js +2 -0
- package/frontend/dist/js/sv-B7KOz81W.js +2 -0
- package/frontend/dist/js/{syntax-highlight-DNc3FFCa.js → syntax-highlight-D7dQ5s5-.js} +1 -1
- package/frontend/dist/js/{teamEventStream-omPy51va.js → teamEventStream-DsAS6P4m.js} +1 -1
- package/frontend/dist/js/th-DgpjGxvA.js +2 -0
- package/frontend/dist/js/tr-BQTbl2h-.js +2 -0
- package/frontend/dist/js/{ui-D5-4niRk.js → ui-Aq8MP7Ph.js} +2 -2
- package/frontend/dist/js/ui-vendor-DVTj_sKN.js +1 -0
- package/frontend/dist/js/uk-JLymloot.js +2 -0
- package/frontend/dist/js/{useChat-DnGClJeX.js → useChat-D3ZAGz70.js} +4 -4
- package/frontend/dist/js/useDialogFocus-zSGHkpE4.js +1 -0
- package/frontend/dist/js/useDictation-B6l8QzeM.js +1 -0
- package/frontend/dist/js/{useQuery-hWmQjdLu.js → useQuery-BTKpXudI.js} +1 -1
- package/frontend/dist/js/{useTranslation-B9kflK9S.js → useTranslation-Boi0fB1B.js} +1 -1
- package/frontend/dist/js/utils-B-Bhh1pF.js +1 -0
- package/frontend/dist/js/utils-vendor-DPJG-EG_.js +1 -0
- package/frontend/dist/js/vi-BXdLOJ8q.js +2 -0
- package/frontend/dist/js/{work-DmJpVPPO.js → work-CdbmBok5.js} +1 -1
- package/frontend/dist/js/workApi-D1xtiG3Q.js +1 -0
- package/frontend/dist/js/{workApi-C5InfT8x.js → workApi-UPxumrEF.js} +1 -1
- package/frontend/dist/js/workModels-BM2Zyiba.js +1 -0
- package/frontend/dist/js/zh-gdUf9sXa.js +2 -0
- package/package.json +11 -40
- package/plugins/anthropic.json +3 -1
- package/plugins/bedrock.json +86 -0
- package/plugins/openrouter.json +2 -0
- package/backend/dist/cordis/contracts.d.ts +0 -270
- package/backend/dist/cordis/contracts.d.ts.map +0 -1
- package/backend/dist/cordis/contracts.js +0 -32
- package/backend/dist/cordis/contracts.js.map +0 -1
- package/backend/dist/cordis/dsh/chat-model.d.ts +0 -16
- package/backend/dist/cordis/dsh/chat-model.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/chat-model.js +0 -104
- package/backend/dist/cordis/dsh/chat-model.js.map +0 -1
- package/backend/dist/cordis/dsh/engine-plugin.d.ts +0 -186
- package/backend/dist/cordis/dsh/engine-plugin.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/engine-plugin.js +0 -1116
- package/backend/dist/cordis/dsh/engine-plugin.js.map +0 -1
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts +0 -175
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.js +0 -480
- package/backend/dist/cordis/dsh/librewebui-llm-adapter.js.map +0 -1
- package/backend/dist/cordis/dsh/model-identity.d.ts +0 -12
- package/backend/dist/cordis/dsh/model-identity.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/model-identity.js +0 -87
- package/backend/dist/cordis/dsh/model-identity.js.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-client.d.ts +0 -44
- package/backend/dist/cordis/dsh/native-provider-client.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-client.js +0 -524
- package/backend/dist/cordis/dsh/native-provider-client.js.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-plugin.d.ts +0 -11
- package/backend/dist/cordis/dsh/native-provider-plugin.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-plugin.js +0 -416
- package/backend/dist/cordis/dsh/native-provider-plugin.js.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-protocol.d.ts +0 -37
- package/backend/dist/cordis/dsh/native-provider-protocol.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/native-provider-protocol.js +0 -325
- package/backend/dist/cordis/dsh/native-provider-protocol.js.map +0 -1
- package/backend/dist/cordis/dsh/provider-handler.d.ts +0 -36
- package/backend/dist/cordis/dsh/provider-handler.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/provider-handler.js +0 -582
- package/backend/dist/cordis/dsh/provider-handler.js.map +0 -1
- package/backend/dist/cordis/dsh/session-files.d.ts +0 -9
- package/backend/dist/cordis/dsh/session-files.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/session-files.js +0 -60
- package/backend/dist/cordis/dsh/session-files.js.map +0 -1
- package/backend/dist/cordis/dsh/session-settings.d.ts +0 -15
- package/backend/dist/cordis/dsh/session-settings.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/session-settings.js +0 -51
- package/backend/dist/cordis/dsh/session-settings.js.map +0 -1
- package/backend/dist/cordis/dsh/work-driver.d.ts +0 -12
- package/backend/dist/cordis/dsh/work-driver.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/work-driver.js +0 -402
- package/backend/dist/cordis/dsh/work-driver.js.map +0 -1
- package/backend/dist/cordis/dsh/workspace-policy.d.ts +0 -10
- package/backend/dist/cordis/dsh/workspace-policy.d.ts.map +0 -1
- package/backend/dist/cordis/dsh/workspace-policy.js +0 -44
- package/backend/dist/cordis/dsh/workspace-policy.js.map +0 -1
- package/backend/dist/cordis/host/composition.d.ts +0 -73
- package/backend/dist/cordis/host/composition.d.ts.map +0 -1
- package/backend/dist/cordis/host/composition.js +0 -205
- package/backend/dist/cordis/host/composition.js.map +0 -1
- package/backend/dist/cordis/host/config.d.ts +0 -159
- package/backend/dist/cordis/host/config.d.ts.map +0 -1
- package/backend/dist/cordis/host/config.js +0 -184
- package/backend/dist/cordis/host/config.js.map +0 -1
- package/backend/dist/cordis/host/host.d.ts +0 -74
- package/backend/dist/cordis/host/host.d.ts.map +0 -1
- package/backend/dist/cordis/host/host.js +0 -420
- package/backend/dist/cordis/host/host.js.map +0 -1
- package/backend/dist/cordis/host/loader-entry.d.ts +0 -41
- package/backend/dist/cordis/host/loader-entry.d.ts.map +0 -1
- package/backend/dist/cordis/host/loader-entry.js +0 -52
- package/backend/dist/cordis/host/loader-entry.js.map +0 -1
- package/backend/dist/cordis/host/model.d.ts +0 -45
- package/backend/dist/cordis/host/model.d.ts.map +0 -1
- package/backend/dist/cordis/host/model.js +0 -54
- package/backend/dist/cordis/host/model.js.map +0 -1
- package/backend/dist/cordis/host/privacy.d.ts +0 -8
- package/backend/dist/cordis/host/privacy.d.ts.map +0 -1
- package/backend/dist/cordis/host/privacy.js +0 -73
- package/backend/dist/cordis/host/privacy.js.map +0 -1
- package/backend/dist/cordis/index.d.ts +0 -14
- package/backend/dist/cordis/index.d.ts.map +0 -1
- package/backend/dist/cordis/index.js +0 -30
- package/backend/dist/cordis/index.js.map +0 -1
- package/backend/dist/cordis/runtime.d.ts +0 -97
- package/backend/dist/cordis/runtime.d.ts.map +0 -1
- package/backend/dist/cordis/runtime.js +0 -231
- package/backend/dist/cordis/runtime.js.map +0 -1
- package/backend/dist/cordis/work-model.d.ts +0 -7
- package/backend/dist/cordis/work-model.d.ts.map +0 -1
- package/backend/dist/cordis/work-model.js.map +0 -1
- package/backend/dist/routes/cordis.d.ts.map +0 -1
- package/backend/dist/routes/cordis.js +0 -440
- package/backend/dist/routes/cordis.js.map +0 -1
- package/backend/dist/routes/libreClaw.d.ts +0 -3
- package/backend/dist/routes/libreClaw.d.ts.map +0 -1
- package/backend/dist/routes/libreClaw.js +0 -200
- package/backend/dist/routes/libreClaw.js.map +0 -1
- package/backend/dist/services/cordisAccessService.d.ts +0 -56
- package/backend/dist/services/cordisAccessService.d.ts.map +0 -1
- package/backend/dist/services/cordisAccessService.js +0 -98
- package/backend/dist/services/cordisAccessService.js.map +0 -1
- package/backend/dist/services/libreClawService.d.ts +0 -105
- package/backend/dist/services/libreClawService.d.ts.map +0 -1
- package/backend/dist/services/libreClawService.js +0 -169
- package/backend/dist/services/libreClawService.js.map +0 -1
- package/frontend/dist/assets/index-C8_AByBq.css +0 -1
- package/frontend/dist/assets/index-DWLnkKwj.js +0 -16
- package/frontend/dist/js/AutomationModal-CjjiEZFA.js +0 -1
- package/frontend/dist/js/AutomationsPage-jnWmD58y.js +0 -1
- package/frontend/dist/js/ChannelsPage-DHPabX1e.js +0 -1
- package/frontend/dist/js/ChatPage-ZvGp-iqV.js +0 -14
- package/frontend/dist/js/ConnectModels-aUTD6s9B.js +0 -1
- package/frontend/dist/js/CordisPage-DZKcpPVj.js +0 -1
- package/frontend/dist/js/GalleryPage-CrlNRnkn.js +0 -1
- package/frontend/dist/js/HomePage-lR9h7_a1.js +0 -1
- package/frontend/dist/js/LanguageSwitcher-CWkbzpxT.js +0 -1
- package/frontend/dist/js/LibreClawPage-P19FnNlu.js +0 -1
- package/frontend/dist/js/NotesPage-DopG0M4B.js +0 -3
- package/frontend/dist/js/OptimizedSyntaxHighlighter-ajqwyBQm.js +0 -1
- package/frontend/dist/js/PluginUsagePage-Cj0mUxD8.js +0 -1
- package/frontend/dist/js/RichMessageContent-BZndQSJU.js +0 -1
- package/frontend/dist/js/SettingsModal-wAuFQOE4.js +0 -19
- package/frontend/dist/js/UserManagementPanel-BU95ZPOv.js +0 -1
- package/frontend/dist/js/WorkPage-CSderbeT.js +0 -8
- package/frontend/dist/js/api-CU-JXx2u.js +0 -1
- package/frontend/dist/js/api-DPXCtanG.js +0 -14
- package/frontend/dist/js/appStore-BD70bvas.js +0 -2
- package/frontend/dist/js/appVersion-C7sxqgMd.js +0 -1
- package/frontend/dist/js/ar-Cq-DrSYL.js +0 -2
- package/frontend/dist/js/authStore-FNKLFUQp.js +0 -1
- package/frontend/dist/js/bn-BqxLh-KL.js +0 -2
- package/frontend/dist/js/chatStore-CK5ojwft.js +0 -3
- package/frontend/dist/js/cordisApi-BS8QMSV4.js +0 -2
- package/frontend/dist/js/cs-D2DDNZf-.js +0 -2
- package/frontend/dist/js/da-BciY-TSG.js +0 -2
- package/frontend/dist/js/de-DjU_eXQ-.js +0 -2
- package/frontend/dist/js/es-ChIEs80I.js +0 -2
- package/frontend/dist/js/fr-Bi8BGRW4.js +0 -2
- package/frontend/dist/js/hi-BMsCnWg7.js +0 -2
- package/frontend/dist/js/i18next-DOICz7ZY.js +0 -1
- package/frontend/dist/js/id-CpcN1vhk.js +0 -2
- package/frontend/dist/js/is-DkUy2cmP.js +0 -2
- package/frontend/dist/js/it-BglK9DRZ.js +0 -2
- package/frontend/dist/js/ja-IrprzwLJ.js +0 -2
- package/frontend/dist/js/ko--wwEsMPi.js +0 -2
- package/frontend/dist/js/markdownMath-B0BpyFBS.js +0 -1
- package/frontend/dist/js/ms-BWj59y7-.js +0 -2
- package/frontend/dist/js/nl-D-QndW_A.js +0 -2
- package/frontend/dist/js/pl-Dw7d7iDV.js +0 -2
- package/frontend/dist/js/pt-BI53uHJw.js +0 -2
- package/frontend/dist/js/react-vendor-wiHys0m2.js +0 -9
- package/frontend/dist/js/ru-JKyTgPg9.js +0 -2
- package/frontend/dist/js/sv-BIkBLPSQ.js +0 -2
- package/frontend/dist/js/th-CZ_LcCU0.js +0 -2
- package/frontend/dist/js/tr-B265byx1.js +0 -2
- package/frontend/dist/js/ui-vendor-BhHHyHk3.js +0 -1
- package/frontend/dist/js/uk-VTAlChwf.js +0 -2
- package/frontend/dist/js/useDialogFocus-BPTG_Zmy.js +0 -1
- package/frontend/dist/js/useDictation-D7zVBjDJ.js +0 -1
- package/frontend/dist/js/utils-p8Gt72YP.js +0 -1
- package/frontend/dist/js/utils-vendor-DISWt2y9.js +0 -1
- package/frontend/dist/js/vi-D8rXh-53.js +0 -2
- package/frontend/dist/js/workApi-FV75LKJn.js +0 -1
- package/frontend/dist/js/workModels-MzU2Ab7l.js +0 -1
- package/frontend/dist/js/zh-BEGd9iBD.js +0 -2
- package/scripts/prepare-dsh-provider.mjs +0 -124
|
@@ -1,480 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Libre WebUI
|
|
3
|
-
* Copyright (C) 2025 Kroonen AI, Inc.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at:
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* A DSH provider adapter backed by Libre WebUI's own provider layer.
|
|
19
|
-
*
|
|
20
|
-
* Without this, the engine would need its own provider configuration — its own
|
|
21
|
-
* route, its own credential variable, its own model list — duplicating what the
|
|
22
|
-
* Chat surface already resolves. That parallel stack drifts: a model pulled in
|
|
23
|
-
* the UI would be invisible to the engine, and an operator would maintain two
|
|
24
|
-
* places to say which model to use.
|
|
25
|
-
*
|
|
26
|
-
* So the engine asks Libre WebUI instead. `ctx.llm.registerAdapter` publishes a
|
|
27
|
-
* single route whose models and calls come from a handler Libre WebUI installs
|
|
28
|
-
* at startup, which means the engine uses exactly the providers, credentials,
|
|
29
|
-
* and models the product already manages.
|
|
30
|
-
*
|
|
31
|
-
* The direction of the dependency is deliberate: this module imports nothing
|
|
32
|
-
* from Libre WebUI's services, and Libre WebUI's services import nothing from
|
|
33
|
-
* here. The handler is passed in through {@link registerLibreWebUiProvider}.
|
|
34
|
-
* That keeps the engine substitutable and keeps Libre WebUI's service graph
|
|
35
|
-
* free of engine types.
|
|
36
|
-
*
|
|
37
|
-
* @module cordis/dsh/librewebui-llm-adapter
|
|
38
|
-
*/
|
|
39
|
-
import { LlmAdapter } from '@deepseek-ai/dsh-llm';
|
|
40
|
-
import { DSH_ENGINE_SERVICE } from '../contracts.js';
|
|
41
|
-
/** Plugin name reported to Cordis diagnostics. */
|
|
42
|
-
export const name = 'librewebui-llm-adapter';
|
|
43
|
-
/** The LLM service must exist before a route can be registered. */
|
|
44
|
-
export const inject = ['llm'];
|
|
45
|
-
/** Provider route the engine addresses Libre WebUI's providers by. */
|
|
46
|
-
export const ROUTE = 'libre-webui';
|
|
47
|
-
/** Loader entry id of the adapter row that publishes {@link ROUTE}. */
|
|
48
|
-
export const ADAPTER_ENTRY_ID = 'libre-webui-llm-adapter';
|
|
49
|
-
let handler;
|
|
50
|
-
/**
|
|
51
|
-
* Install the provider handler the engine's adapter delegates to.
|
|
52
|
-
*
|
|
53
|
-
* A plugin row is imported by URL while the application imports its own modules
|
|
54
|
-
* by path, so the two are separate module instances with separate state: a
|
|
55
|
-
* registration made from `src/main.ts` is invisible to a row loaded from
|
|
56
|
-
* `dist/`. The host therefore calls this against the instance the row will use,
|
|
57
|
-
* immediately before the row activates, and this entry point exists for direct
|
|
58
|
-
* use in tests.
|
|
59
|
-
*
|
|
60
|
-
* @param next - the handler, or undefined to withdraw it.
|
|
61
|
-
*/
|
|
62
|
-
export function setLibreWebUiProvider(next) {
|
|
63
|
-
handler = next;
|
|
64
|
-
}
|
|
65
|
-
/** Alias of {@link setLibreWebUiProvider} for callers that read it as a registration. */
|
|
66
|
-
export const registerLibreWebUiProvider = setLibreWebUiProvider;
|
|
67
|
-
/** Whether a provider handler is installed. */
|
|
68
|
-
export function hasLibreWebUiProvider() {
|
|
69
|
-
return handler !== undefined;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Read the installed handler.
|
|
73
|
-
* @returns the handler.
|
|
74
|
-
* @throws when no handler is installed, rather than failing a call obscurely.
|
|
75
|
-
*/
|
|
76
|
-
function requireProvider() {
|
|
77
|
-
if (!handler) {
|
|
78
|
-
throw new Error('librewebui-llm-adapter: no Libre WebUI provider handler is installed');
|
|
79
|
-
}
|
|
80
|
-
return handler;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* The adapter the engine calls for the `libre-webui` route.
|
|
84
|
-
*
|
|
85
|
-
* DSH requires the emitted stream to follow a strict grammar: a `block-start`
|
|
86
|
-
* before any delta at that index, a matching `block-end` before the finish, at
|
|
87
|
-
* most one `usage`, and a terminal `finish` that is last. Text and tool-call
|
|
88
|
-
* blocks are opened lazily, so a response that turns out to be tool calls only
|
|
89
|
-
* never opens a text block.
|
|
90
|
-
*/
|
|
91
|
-
class LibreWebUiAdapter extends LlmAdapter {
|
|
92
|
-
constructor(requestUserId) {
|
|
93
|
-
super();
|
|
94
|
-
this.requestUserId = requestUserId;
|
|
95
|
-
/** Model ids this adapter last advertised. */
|
|
96
|
-
this.known = new Map();
|
|
97
|
-
}
|
|
98
|
-
providerInfo(provider) {
|
|
99
|
-
return { id: provider, name: 'Libre WebUI' };
|
|
100
|
-
}
|
|
101
|
-
async listModels(provider) {
|
|
102
|
-
const models = await requireProvider().listModels();
|
|
103
|
-
this.known = new Map(models.map(model => [model.id, model]));
|
|
104
|
-
return models.map(model => ({
|
|
105
|
-
provider,
|
|
106
|
-
id: model.id,
|
|
107
|
-
name: model.name,
|
|
108
|
-
// The engine projects image history to text for a route that declares
|
|
109
|
-
// text only, which is what Libre WebUI's text providers accept.
|
|
110
|
-
inputModalities: ['text'],
|
|
111
|
-
}));
|
|
112
|
-
}
|
|
113
|
-
async resolveModel(provider, model) {
|
|
114
|
-
const resolved = this.known.get(model) ?? (await requireProvider().resolveModel(model));
|
|
115
|
-
return {
|
|
116
|
-
provider,
|
|
117
|
-
id: model,
|
|
118
|
-
name: resolved?.name ?? model,
|
|
119
|
-
inputModalities: ['text'],
|
|
120
|
-
...(resolved?.contextWindow
|
|
121
|
-
? { context: { contextWindow: resolved.contextWindow } }
|
|
122
|
-
: {}),
|
|
123
|
-
...(resolved?.maxTokens ? { defaultMaxTokens: resolved.maxTokens } : {}),
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
async *stream(options) {
|
|
127
|
-
options.signal?.throwIfAborted();
|
|
128
|
-
const provider = requireProvider();
|
|
129
|
-
const call = {
|
|
130
|
-
model: options.model,
|
|
131
|
-
messages: [
|
|
132
|
-
...(options.system
|
|
133
|
-
? [{ role: 'system', content: options.system }]
|
|
134
|
-
: []),
|
|
135
|
-
...toBridgeMessages(options.messages),
|
|
136
|
-
],
|
|
137
|
-
signal: options.signal,
|
|
138
|
-
userId: options.sessionId
|
|
139
|
-
? this.requestUserId(options.sessionId)
|
|
140
|
-
: undefined,
|
|
141
|
-
...(options.tools?.length ? { tools: toBridgeTools(options.tools) } : {}),
|
|
142
|
-
...(options.temperature === undefined
|
|
143
|
-
? {}
|
|
144
|
-
: { temperature: options.temperature }),
|
|
145
|
-
...(options.maxTokens === undefined
|
|
146
|
-
? {}
|
|
147
|
-
: { maxTokens: options.maxTokens }),
|
|
148
|
-
...(options.stop?.length ? { stop: options.stop } : {}),
|
|
149
|
-
...(options.reasoningEffort
|
|
150
|
-
? { reasoningEffort: options.reasoningEffort }
|
|
151
|
-
: {}),
|
|
152
|
-
...(options.purpose ? { purpose: options.purpose } : {}),
|
|
153
|
-
};
|
|
154
|
-
// Indexes are adapter-local and assigned in emission order; text and tool
|
|
155
|
-
// blocks may interleave, so each open block keeps its own index and
|
|
156
|
-
// accumulated text.
|
|
157
|
-
let nextIndex = 0;
|
|
158
|
-
let textIndex;
|
|
159
|
-
let reasoningIndex;
|
|
160
|
-
let text = '';
|
|
161
|
-
let reasoning = '';
|
|
162
|
-
const openToolCalls = new Map();
|
|
163
|
-
let finishReason = 'stop';
|
|
164
|
-
let usage;
|
|
165
|
-
let providerMetadata = {};
|
|
166
|
-
const closeText = function* () {
|
|
167
|
-
if (textIndex === undefined)
|
|
168
|
-
return;
|
|
169
|
-
yield {
|
|
170
|
-
type: 'block-end',
|
|
171
|
-
index: textIndex,
|
|
172
|
-
block: { type: 'text', text },
|
|
173
|
-
};
|
|
174
|
-
textIndex = undefined;
|
|
175
|
-
text = '';
|
|
176
|
-
};
|
|
177
|
-
const closeReasoning = function* () {
|
|
178
|
-
if (reasoningIndex === undefined)
|
|
179
|
-
return;
|
|
180
|
-
yield {
|
|
181
|
-
type: 'block-end',
|
|
182
|
-
index: reasoningIndex,
|
|
183
|
-
block: { type: 'reasoning', text: reasoning },
|
|
184
|
-
};
|
|
185
|
-
reasoningIndex = undefined;
|
|
186
|
-
reasoning = '';
|
|
187
|
-
};
|
|
188
|
-
const closeToolCalls = function* () {
|
|
189
|
-
for (const [id, open] of openToolCalls) {
|
|
190
|
-
yield {
|
|
191
|
-
type: 'block-end',
|
|
192
|
-
index: open.index,
|
|
193
|
-
block: {
|
|
194
|
-
type: 'tool-call',
|
|
195
|
-
// The identity is the provider's; DSH brands it, and the brand is
|
|
196
|
-
// a compile-time marker rather than a runtime wrapper.
|
|
197
|
-
id: id,
|
|
198
|
-
name: open.name,
|
|
199
|
-
// DSH requires the raw JSON string, never a parsed object.
|
|
200
|
-
arguments: open.arguments,
|
|
201
|
-
},
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
openToolCalls.clear();
|
|
205
|
-
};
|
|
206
|
-
for await (const event of provider.stream(call)) {
|
|
207
|
-
options.signal?.throwIfAborted();
|
|
208
|
-
switch (event.type) {
|
|
209
|
-
case 'text': {
|
|
210
|
-
if (event.text === '')
|
|
211
|
-
break;
|
|
212
|
-
// Empty deltas are skipped rather than opening an empty block, which
|
|
213
|
-
// the grammar rejects as an empty response.
|
|
214
|
-
yield* closeReasoning();
|
|
215
|
-
if (textIndex === undefined) {
|
|
216
|
-
textIndex = nextIndex++;
|
|
217
|
-
yield {
|
|
218
|
-
type: 'block-start',
|
|
219
|
-
index: textIndex,
|
|
220
|
-
blockType: 'text',
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
text += event.text;
|
|
224
|
-
yield {
|
|
225
|
-
type: 'text-delta',
|
|
226
|
-
index: textIndex,
|
|
227
|
-
text: event.text,
|
|
228
|
-
};
|
|
229
|
-
break;
|
|
230
|
-
}
|
|
231
|
-
case 'reasoning': {
|
|
232
|
-
if (event.text === '')
|
|
233
|
-
break;
|
|
234
|
-
yield* closeText();
|
|
235
|
-
if (reasoningIndex === undefined) {
|
|
236
|
-
reasoningIndex = nextIndex++;
|
|
237
|
-
yield {
|
|
238
|
-
type: 'block-start',
|
|
239
|
-
index: reasoningIndex,
|
|
240
|
-
blockType: 'reasoning',
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
reasoning += event.text;
|
|
244
|
-
yield {
|
|
245
|
-
type: 'reasoning-delta',
|
|
246
|
-
index: reasoningIndex,
|
|
247
|
-
text: event.text,
|
|
248
|
-
};
|
|
249
|
-
break;
|
|
250
|
-
}
|
|
251
|
-
case 'tool-call': {
|
|
252
|
-
yield* closeText();
|
|
253
|
-
yield* closeReasoning();
|
|
254
|
-
const { id, name, arguments: args } = event.toolCall;
|
|
255
|
-
Object.assign(providerMetadata, event.toolCall.providerMetadata);
|
|
256
|
-
const open = openToolCalls.get(id);
|
|
257
|
-
if (!open) {
|
|
258
|
-
const index = nextIndex++;
|
|
259
|
-
openToolCalls.set(id, { index, arguments: args, name });
|
|
260
|
-
yield {
|
|
261
|
-
type: 'block-start',
|
|
262
|
-
index,
|
|
263
|
-
blockType: 'tool-call',
|
|
264
|
-
};
|
|
265
|
-
// `name` is omitted rather than sent as undefined: the accumulator
|
|
266
|
-
// rejects an explicit undefined, and a chunk must stay
|
|
267
|
-
// JSON-serializable.
|
|
268
|
-
yield {
|
|
269
|
-
type: 'tool-call-delta',
|
|
270
|
-
index,
|
|
271
|
-
id: id,
|
|
272
|
-
argumentsDelta: args,
|
|
273
|
-
...(name === '' ? {} : { name }),
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
open.arguments += args;
|
|
278
|
-
if (open.name === '' && name !== '')
|
|
279
|
-
open.name = name;
|
|
280
|
-
yield {
|
|
281
|
-
type: 'tool-call-delta',
|
|
282
|
-
index: open.index,
|
|
283
|
-
id: id,
|
|
284
|
-
argumentsDelta: args,
|
|
285
|
-
...(name === '' ? {} : { name }),
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
|
-
finishReason = 'tool-calls';
|
|
289
|
-
break;
|
|
290
|
-
}
|
|
291
|
-
case 'usage': {
|
|
292
|
-
usage = {
|
|
293
|
-
inputTokens: event.inputTokens,
|
|
294
|
-
outputTokens: event.outputTokens,
|
|
295
|
-
};
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
case 'done': {
|
|
299
|
-
finishReason = event.reason;
|
|
300
|
-
Object.assign(providerMetadata, event.providerMetadata);
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
yield* closeText();
|
|
306
|
-
yield* closeReasoning();
|
|
307
|
-
yield* closeToolCalls();
|
|
308
|
-
if (usage) {
|
|
309
|
-
yield { type: 'usage', usage };
|
|
310
|
-
}
|
|
311
|
-
options.signal?.throwIfAborted();
|
|
312
|
-
yield {
|
|
313
|
-
type: 'finish',
|
|
314
|
-
reason: finishReasonOf(finishReason),
|
|
315
|
-
...(Object.keys(providerMetadata).length
|
|
316
|
-
? { replayState: { response: { libreWebUi: providerMetadata } } }
|
|
317
|
-
: {}),
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Build the terminal reason for a finished call.
|
|
323
|
-
*
|
|
324
|
-
* `error` and `aborted` reasons carry a failure payload in DSH's vocabulary
|
|
325
|
-
* rather than being bare kinds, so the error case names the provider layer as
|
|
326
|
-
* the origin instead of emitting an invalid reason.
|
|
327
|
-
*
|
|
328
|
-
* @param reason - the reason the provider stream reported.
|
|
329
|
-
* @returns a well-formed DSH finish reason.
|
|
330
|
-
*/
|
|
331
|
-
function finishReasonOf(reason) {
|
|
332
|
-
if (reason === 'error') {
|
|
333
|
-
return {
|
|
334
|
-
kind: 'error',
|
|
335
|
-
failure: {
|
|
336
|
-
message: 'The Libre WebUI provider stream reported a failure.',
|
|
337
|
-
code: 'PROVIDER_STREAM_FAILED',
|
|
338
|
-
},
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
return { kind: reason };
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Read a DSH message's content as flat text.
|
|
345
|
-
* @param message - the message to flatten.
|
|
346
|
-
* @returns concatenated text blocks.
|
|
347
|
-
*/
|
|
348
|
-
function messageText(message, type = 'text') {
|
|
349
|
-
const content = message.content;
|
|
350
|
-
if (typeof content === 'string')
|
|
351
|
-
return content;
|
|
352
|
-
if (!Array.isArray(content))
|
|
353
|
-
return '';
|
|
354
|
-
const parts = [];
|
|
355
|
-
for (const block of content) {
|
|
356
|
-
if (block === null || typeof block !== 'object')
|
|
357
|
-
continue;
|
|
358
|
-
const record = block;
|
|
359
|
-
if (record.type === type && typeof record.text === 'string') {
|
|
360
|
-
parts.push(record.text);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
return parts.join('');
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Convert DSH messages into Libre WebUI's provider-neutral shape.
|
|
367
|
-
*
|
|
368
|
-
* DSH carries structured content; Libre WebUI's providers take flattened text
|
|
369
|
-
* plus the wire fields a tool loop needs, so tool calls and their results are
|
|
370
|
-
* lifted onto the message rather than dropped.
|
|
371
|
-
*
|
|
372
|
-
* @param messages - DSH messages, oldest first.
|
|
373
|
-
* @returns messages Libre WebUI's provider layer accepts.
|
|
374
|
-
*/
|
|
375
|
-
export function toBridgeMessages(messages) {
|
|
376
|
-
const converted = [];
|
|
377
|
-
for (const raw of messages) {
|
|
378
|
-
if (raw === null || typeof raw !== 'object')
|
|
379
|
-
continue;
|
|
380
|
-
const message = raw;
|
|
381
|
-
const role = message.role;
|
|
382
|
-
if (role !== 'user' &&
|
|
383
|
-
role !== 'assistant' &&
|
|
384
|
-
role !== 'system' &&
|
|
385
|
-
role !== 'tool') {
|
|
386
|
-
continue;
|
|
387
|
-
}
|
|
388
|
-
const content = message.content;
|
|
389
|
-
const toolCalls = [];
|
|
390
|
-
const toolResults = [];
|
|
391
|
-
if (Array.isArray(content)) {
|
|
392
|
-
for (const block of content) {
|
|
393
|
-
if (block === null || typeof block !== 'object')
|
|
394
|
-
continue;
|
|
395
|
-
const record = block;
|
|
396
|
-
if (record.type === 'tool-call') {
|
|
397
|
-
toolCalls.push({
|
|
398
|
-
id: typeof record.id === 'string' ? record.id : '',
|
|
399
|
-
name: typeof record.name === 'string' ? record.name : '',
|
|
400
|
-
// DSH already holds the raw argument string.
|
|
401
|
-
arguments: typeof record.arguments === 'string'
|
|
402
|
-
? record.arguments
|
|
403
|
-
: JSON.stringify(record.arguments ?? {}),
|
|
404
|
-
});
|
|
405
|
-
}
|
|
406
|
-
if (record.type === 'tool-result') {
|
|
407
|
-
if (typeof record.toolCallId !== 'string' || !record.toolCallId) {
|
|
408
|
-
throw new Error('A tool result is missing its call identifier.');
|
|
409
|
-
}
|
|
410
|
-
toolResults.push({
|
|
411
|
-
role: 'tool',
|
|
412
|
-
content: messageText(record),
|
|
413
|
-
toolCallId: record.toolCallId,
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
const text = messageText(message);
|
|
419
|
-
const thinking = Array.isArray(content)
|
|
420
|
-
? messageText(message, 'reasoning')
|
|
421
|
-
: '';
|
|
422
|
-
const source = message.source;
|
|
423
|
-
const providerMetadata = source?.replayState?.response?.libreWebUi;
|
|
424
|
-
// DSH stores tool outputs as user-role blocks. Each result must become its
|
|
425
|
-
// own wire message; an empty user message would break call correlation.
|
|
426
|
-
if (!toolResults.length || text || thinking || toolCalls.length) {
|
|
427
|
-
converted.push({
|
|
428
|
-
role,
|
|
429
|
-
content: text,
|
|
430
|
-
...(thinking ? { thinking } : {}),
|
|
431
|
-
...(providerMetadata ? { providerMetadata } : {}),
|
|
432
|
-
...(toolCalls.length > 0 ? { toolCalls } : {}),
|
|
433
|
-
...(role === 'tool' && typeof message.toolCallId === 'string'
|
|
434
|
-
? { toolCallId: message.toolCallId }
|
|
435
|
-
: {}),
|
|
436
|
-
});
|
|
437
|
-
}
|
|
438
|
-
converted.push(...toolResults);
|
|
439
|
-
}
|
|
440
|
-
return converted;
|
|
441
|
-
}
|
|
442
|
-
/**
|
|
443
|
-
* Convert DSH tool schemas into Libre WebUI's provider-neutral shape.
|
|
444
|
-
* @param tools - DSH tool schemas.
|
|
445
|
-
* @returns tool declarations for the provider layer.
|
|
446
|
-
*/
|
|
447
|
-
export function toBridgeTools(tools) {
|
|
448
|
-
const converted = [];
|
|
449
|
-
for (const raw of tools) {
|
|
450
|
-
if (raw === null || typeof raw !== 'object')
|
|
451
|
-
continue;
|
|
452
|
-
const tool = raw;
|
|
453
|
-
if (typeof tool.name !== 'string')
|
|
454
|
-
continue;
|
|
455
|
-
converted.push({
|
|
456
|
-
name: tool.name,
|
|
457
|
-
description: typeof tool.description === 'string' ? tool.description : '',
|
|
458
|
-
parameters: tool.parameters !== null &&
|
|
459
|
-
typeof tool.parameters === 'object' &&
|
|
460
|
-
!Array.isArray(tool.parameters)
|
|
461
|
-
? tool.parameters
|
|
462
|
-
: { type: 'object', properties: {} },
|
|
463
|
-
});
|
|
464
|
-
}
|
|
465
|
-
return converted;
|
|
466
|
-
}
|
|
467
|
-
/**
|
|
468
|
-
* Register the Libre WebUI route, when a provider handler is installed.
|
|
469
|
-
* @param ctx - the row's context, carrying `llm`.
|
|
470
|
-
* @returns the disposer, or undefined when nothing was registered.
|
|
471
|
-
*/
|
|
472
|
-
export function apply(ctx) {
|
|
473
|
-
if (!handler)
|
|
474
|
-
return;
|
|
475
|
-
ctx.llm.registerAdapter([ROUTE], new LibreWebUiAdapter(sessionId => {
|
|
476
|
-
const engine = ctx.get(DSH_ENGINE_SERVICE);
|
|
477
|
-
return engine?.requestUserId(sessionId);
|
|
478
|
-
}));
|
|
479
|
-
}
|
|
480
|
-
//# sourceMappingURL=librewebui-llm-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"librewebui-llm-adapter.js","sourceRoot":"","sources":["../../../src/cordis/dsh/librewebui-llm-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classify syntax and pseudo-model selectors only. Never consult availability:
|
|
3
|
-
* an offline but valid selected provider must remain pinned to that provider.
|
|
4
|
-
*/
|
|
5
|
-
export declare function isProviderModelIdentity(value: unknown): value is string;
|
|
6
|
-
/** Native routes retain the owning DSH provider independently of LWUI plugins. */
|
|
7
|
-
export declare function nativeDshModelId(providerId: string, model: string): string;
|
|
8
|
-
export declare function parseNativeDshModelId(value: string): {
|
|
9
|
-
providerId: string;
|
|
10
|
-
model: string;
|
|
11
|
-
} | undefined;
|
|
12
|
-
//# sourceMappingURL=model-identity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-identity.d.ts","sourceRoot":"","sources":["../../../src/cordis/dsh/model-identity.ts"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAyBvE;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GACZ;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAanD"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Libre WebUI
|
|
3
|
-
* Copyright (C) 2025 Kroonen AI, Inc.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at:
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
/** Dependency-free validation for provider model identities in engine history. */
|
|
18
|
-
const AGENT_SELECTORS = ['claude-code', 'dsh', 'codex', 'opencode', 'pi'];
|
|
19
|
-
function plainIdentifier(value) {
|
|
20
|
-
return (value.length > 0 &&
|
|
21
|
-
value === value.trim() &&
|
|
22
|
-
![...value].some(character => character.charCodeAt(0) < 32 || character.charCodeAt(0) === 127));
|
|
23
|
-
}
|
|
24
|
-
function providerModel(value) {
|
|
25
|
-
const normalized = value.toLowerCase();
|
|
26
|
-
return (plainIdentifier(value) &&
|
|
27
|
-
!normalized.startsWith('lwui:') &&
|
|
28
|
-
!normalized.startsWith('native:') &&
|
|
29
|
-
!normalized.startsWith('persona:') &&
|
|
30
|
-
!normalized.startsWith('agent:') &&
|
|
31
|
-
!AGENT_SELECTORS.some(selector => normalized === selector || normalized.startsWith(`${selector}:`)));
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Classify syntax and pseudo-model selectors only. Never consult availability:
|
|
35
|
-
* an offline but valid selected provider must remain pinned to that provider.
|
|
36
|
-
*/
|
|
37
|
-
export function isProviderModelIdentity(value) {
|
|
38
|
-
if (typeof value !== 'string' || !plainIdentifier(value))
|
|
39
|
-
return false;
|
|
40
|
-
if (value.startsWith('native:')) {
|
|
41
|
-
try {
|
|
42
|
-
return parseNativeDshModelId(value) !== undefined;
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (!value.toLowerCase().startsWith('lwui:'))
|
|
49
|
-
return providerModel(value);
|
|
50
|
-
const parts = value.split(':');
|
|
51
|
-
try {
|
|
52
|
-
if (parts[0] !== 'lwui')
|
|
53
|
-
return false;
|
|
54
|
-
if (parts[1] === 'ollama' && parts.length === 3)
|
|
55
|
-
return providerModel(decodeURIComponent(parts[2]));
|
|
56
|
-
if (parts[1] === 'plugin' && parts.length === 4) {
|
|
57
|
-
return (plainIdentifier(decodeURIComponent(parts[2])) &&
|
|
58
|
-
providerModel(decodeURIComponent(parts[3])));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
return false;
|
|
63
|
-
}
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
/** Native routes retain the owning DSH provider independently of LWUI plugins. */
|
|
67
|
-
export function nativeDshModelId(providerId, model) {
|
|
68
|
-
return `native:${encodeURIComponent(providerId)}:${encodeURIComponent(model)}`;
|
|
69
|
-
}
|
|
70
|
-
export function parseNativeDshModelId(value) {
|
|
71
|
-
if (!value.startsWith('native:'))
|
|
72
|
-
return undefined;
|
|
73
|
-
const parts = value.split(':');
|
|
74
|
-
try {
|
|
75
|
-
if (parts.length !== 3 || value.length > 2048)
|
|
76
|
-
throw new Error();
|
|
77
|
-
const providerId = decodeURIComponent(parts[1]);
|
|
78
|
-
const model = decodeURIComponent(parts[2]);
|
|
79
|
-
if (!plainIdentifier(providerId) || !plainIdentifier(model))
|
|
80
|
-
throw new Error();
|
|
81
|
-
return { providerId, model };
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
throw new Error('Invalid native DSH model selection.');
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=model-identity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-identity.js","sourceRoot":"","sources":["../../../src/cordis/dsh/model-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { OllamaChatRequest, OllamaChatResponse } from '../../types/index.js';
|
|
2
|
-
import type { WorkModelStreamObserver } from '../../services/workModelProviderService.js';
|
|
3
|
-
import type { NativeDshUsageEventInput } from '../../services/pluginUsageService.js';
|
|
4
|
-
import type { BridgeCall, BridgeEvent } from './librewebui-llm-adapter.js';
|
|
5
|
-
import { type NativeProviderModel } from './native-provider-protocol.js';
|
|
6
|
-
export type NativeDshModel = NativeProviderModel;
|
|
7
|
-
export interface NativeDshCatalog {
|
|
8
|
-
status: 'disabled' | 'unavailable' | 'ready';
|
|
9
|
-
models: NativeDshModel[];
|
|
10
|
-
}
|
|
11
|
-
interface NativeProviderDependencies {
|
|
12
|
-
socketPath(): string | undefined | Promise<string | undefined>;
|
|
13
|
-
authorize(userId: string): Promise<boolean>;
|
|
14
|
-
recordUsage?(usage: NativeDshUsageEventInput): Promise<void> | void;
|
|
15
|
-
assertUsageAllowed?(input: Pick<NativeDshUsageEventInput, 'userId' | 'providerId' | 'model'>): Promise<void> | void;
|
|
16
|
-
}
|
|
17
|
-
/** The socket is a local capability owned by the same OS account as LWUI. */
|
|
18
|
-
export declare function verifyNativeProviderSocket(socketPath: string): Promise<void>;
|
|
19
|
-
/** Only provider inference crosses this boundary; tool execution stays in Work. */
|
|
20
|
-
export declare class NativeDshProviderService {
|
|
21
|
-
private readonly dependencies;
|
|
22
|
-
constructor(dependencies?: NativeProviderDependencies);
|
|
23
|
-
private recordUsage;
|
|
24
|
-
private assertUsageAllowed;
|
|
25
|
-
private connection;
|
|
26
|
-
private readCatalog;
|
|
27
|
-
catalog(userId: string): Promise<NativeDshCatalog>;
|
|
28
|
-
assertModel(providerId: string, model: string, userId: string): Promise<NativeDshModel>;
|
|
29
|
-
routingFingerprint(providerId: string, model: string, userId: string): Promise<string>;
|
|
30
|
-
private chunks;
|
|
31
|
-
stream(call: BridgeCall, providerId: string): AsyncIterable<BridgeEvent>;
|
|
32
|
-
generate(request: OllamaChatRequest, providerId: string, userId: string, observer?: WorkModelStreamObserver, signal?: AbortSignal): Promise<OllamaChatResponse>;
|
|
33
|
-
text(input: {
|
|
34
|
-
providerId: string;
|
|
35
|
-
model: string;
|
|
36
|
-
userId: string;
|
|
37
|
-
prompt: string;
|
|
38
|
-
purpose?: 'session-title';
|
|
39
|
-
signal?: AbortSignal;
|
|
40
|
-
}): Promise<string>;
|
|
41
|
-
}
|
|
42
|
-
export declare const nativeDshProviderService: NativeDshProviderService;
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=native-provider-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"native-provider-client.d.ts","sourceRoot":"","sources":["../../../src/cordis/dsh/native-provider-client.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAKL,KAAK,mBAAmB,EAEzB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AACjD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC;IAC7C,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AASD,UAAU,0BAA0B;IAClC,UAAU,IAAI,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,WAAW,CAAC,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpE,kBAAkB,CAAC,CACjB,KAAK,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzB;AAqBD,6EAA6E;AAC7E,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAsHD,mFAAmF;AACnF,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAD/B,YACmB,YAAY,GAAE,0BAAgD,EAC7E;YAEU,WAAW;YAgBX,kBAAkB;YAYlB,UAAU;YAUV,WAAW;IAmCnB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYvD;IAEK,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAQzB;IAEK,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAoBjB;YAEc,MAAM;IAoGd,MAAM,CACX,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,WAAW,CAAC,CAwD5B;IAEK,QAAQ,CACZ,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,uBAA4B,EACtC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA2F7B;IAEK,IAAI,CAAC,KAAK,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,eAAe,CAAC;QAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BlB;CACF;AAED,eAAO,MAAM,wBAAwB,0BAAiC,CAAC"}
|