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,582 +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
|
-
* Libre WebUI's answer to the engine's provider questions.
|
|
19
|
-
*
|
|
20
|
-
* The engine's adapter asks this handler which models exist and how to stream a
|
|
21
|
-
* call; the handler resolves both through the services the Chat surface already
|
|
22
|
-
* uses. That is what makes a model pulled in the UI immediately available to
|
|
23
|
-
* the engine, with the credentials and endpoints already configured, instead of
|
|
24
|
-
* a second provider configuration maintained by hand in YAML.
|
|
25
|
-
*
|
|
26
|
-
* This module is the one place that knows both sides. It imports Libre WebUI's
|
|
27
|
-
* services and the engine adapter's types, and it is installed by
|
|
28
|
-
* {@link installLibreWebUiProvider} at startup.
|
|
29
|
-
*
|
|
30
|
-
* @module cordis/dsh/provider-handler
|
|
31
|
-
*/
|
|
32
|
-
import { randomUUID } from 'node:crypto';
|
|
33
|
-
import pluginService from '../../services/pluginService.js';
|
|
34
|
-
import ollamaService from '../../services/ollamaService.js';
|
|
35
|
-
import { getOllamaRuntimeSettings } from '../../services/ollamaSettingsService.js';
|
|
36
|
-
import preferencesService, { instanceDefaultModel, } from '../../services/preferencesService.js';
|
|
37
|
-
import { userModel } from '../../models/userModel.js';
|
|
38
|
-
import { isProviderModelIdentity, nativeDshModelId, parseNativeDshModelId, } from './model-identity.js';
|
|
39
|
-
import { nativeDshProviderService } from './native-provider-client.js';
|
|
40
|
-
import { createLogger } from '../../utils/logger.js';
|
|
41
|
-
import { toOpenAICompatibleTools } from '../../utils/pluginChatAdapter.js';
|
|
42
|
-
const logger = createLogger('cordis-provider');
|
|
43
|
-
/**
|
|
44
|
-
* Account whose provider credentials serve engine calls.
|
|
45
|
-
*
|
|
46
|
-
* A trusted composition without an interactive caller may explicitly name a
|
|
47
|
-
* service account. Interactive requests always use their authenticated actor.
|
|
48
|
-
*/
|
|
49
|
-
function configuredUserId() {
|
|
50
|
-
const configured = process.env.LIBRE_CORDIS_USER;
|
|
51
|
-
return configured && configured.trim() !== '' ? configured.trim() : undefined;
|
|
52
|
-
}
|
|
53
|
-
function modelRouteId(route) {
|
|
54
|
-
return route.type === 'ollama'
|
|
55
|
-
? `lwui:ollama:${encodeURIComponent(route.model)}`
|
|
56
|
-
: `lwui:plugin:${encodeURIComponent(route.pluginId)}:${encodeURIComponent(route.model)}`;
|
|
57
|
-
}
|
|
58
|
-
/** Qualified IDs retain the selected destination across restarts and outages. */
|
|
59
|
-
function parseModelRoute(id) {
|
|
60
|
-
if (!id.startsWith('lwui:'))
|
|
61
|
-
return undefined;
|
|
62
|
-
const parts = id.split(':');
|
|
63
|
-
try {
|
|
64
|
-
if (parts[1] === 'ollama' && parts.length === 3 && parts[2]) {
|
|
65
|
-
return { type: 'ollama', model: decodeURIComponent(parts[2]) };
|
|
66
|
-
}
|
|
67
|
-
if (parts[1] === 'plugin' && parts.length === 4 && parts[2] && parts[3]) {
|
|
68
|
-
return {
|
|
69
|
-
type: 'plugin',
|
|
70
|
-
pluginId: decodeURIComponent(parts[2]),
|
|
71
|
-
model: decodeURIComponent(parts[3]),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
catch {
|
|
76
|
-
// A malformed qualified route must never become a legacy model lookup.
|
|
77
|
-
}
|
|
78
|
-
throw new Error('The Cordis model route is invalid.');
|
|
79
|
-
}
|
|
80
|
-
async function requirePluginRoute(route, userId) {
|
|
81
|
-
if (!userId)
|
|
82
|
-
throw new Error('A Cordis plugin route requires an authenticated provider account.');
|
|
83
|
-
const plugin = await pluginService.getActivePluginForModel(route.model, userId, route.pluginId);
|
|
84
|
-
if (!plugin)
|
|
85
|
-
throw new Error('The selected Cordis provider is unavailable.');
|
|
86
|
-
return plugin;
|
|
87
|
-
}
|
|
88
|
-
async function requireOllamaEnabled() {
|
|
89
|
-
if (!(await getOllamaRuntimeSettings()).enabled)
|
|
90
|
-
throw new Error('Ollama is disabled. Choose an available qualified provider model.');
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Whether a model identifier names an embedding model.
|
|
94
|
-
*
|
|
95
|
-
* Embedding models appear in the same listing as chat models and cannot answer
|
|
96
|
-
* a turn, so they are excluded from what the engine may select.
|
|
97
|
-
* @param id - the model identifier.
|
|
98
|
-
* @returns true when the model is for embeddings rather than chat.
|
|
99
|
-
*/
|
|
100
|
-
function isEmbeddingModel(id) {
|
|
101
|
-
const name = id.toLowerCase();
|
|
102
|
-
return (name.includes('embed') ||
|
|
103
|
-
name.includes('minilm') ||
|
|
104
|
-
name.includes('bge-') ||
|
|
105
|
-
name.includes('rerank'));
|
|
106
|
-
}
|
|
107
|
-
/** Chat execution selections are not provider model identifiers. */
|
|
108
|
-
function isChatModelId(id) {
|
|
109
|
-
return (!id.toLowerCase().startsWith('lwui:') &&
|
|
110
|
-
isProviderModelIdentity(id) &&
|
|
111
|
-
!isEmbeddingModel(id));
|
|
112
|
-
}
|
|
113
|
-
/** An engine picker catalog, independently of Chat persona selection/prompts. */
|
|
114
|
-
export async function getCordisModelCatalog(userId) {
|
|
115
|
-
const models = await libreWebUiProviderHandler.listModels(userId);
|
|
116
|
-
let defaultModel;
|
|
117
|
-
try {
|
|
118
|
-
defaultModel = await libreWebUiProviderHandler.defaultModel(userId);
|
|
119
|
-
}
|
|
120
|
-
catch (error) {
|
|
121
|
-
// The catalog stays usable to replace an unavailable preference. Actual
|
|
122
|
-
// execution still resolves explicit routes without provider fallback.
|
|
123
|
-
logger.debug('Cordis default model is unavailable', { error });
|
|
124
|
-
}
|
|
125
|
-
return { models, ...(defaultModel ? { defaultModel } : {}) };
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* The model the engine should request when its own configuration names none.
|
|
129
|
-
*
|
|
130
|
-
* Read live from preferences so changing the default in the UI changes what the
|
|
131
|
-
* engine uses, rather than pinning a copy in the engine's settings document.
|
|
132
|
-
* @returns the model identifier, or undefined when the deployment has none.
|
|
133
|
-
*/
|
|
134
|
-
export async function resolveEngineDefaultModel(userId) {
|
|
135
|
-
return libreWebUiProviderHandler.defaultModel(userId);
|
|
136
|
-
}
|
|
137
|
-
async function providerUserId(requested) {
|
|
138
|
-
const userId = requested ?? configuredUserId();
|
|
139
|
-
if (!userId)
|
|
140
|
-
return undefined;
|
|
141
|
-
const user = await userModel.getUserById(userId);
|
|
142
|
-
if (user?.role !== 'admin' || user.status !== 'active') {
|
|
143
|
-
throw new Error('Cordis provider calls require an active administrator.');
|
|
144
|
-
}
|
|
145
|
-
return userId;
|
|
146
|
-
}
|
|
147
|
-
async function resolveProviderCallModel(requestedModel, requestedUserId) {
|
|
148
|
-
const userId = await providerUserId(requestedUserId);
|
|
149
|
-
const preferences = userId
|
|
150
|
-
? await preferencesService.getPreferences(userId)
|
|
151
|
-
: undefined;
|
|
152
|
-
const qualified = parseModelRoute(requestedModel);
|
|
153
|
-
const model = qualified?.model ?? requestedModel;
|
|
154
|
-
if (!isChatModelId(model)) {
|
|
155
|
-
throw new Error('Select a provider chat model for Cordis; personas and agent selectors cannot be used as models.');
|
|
156
|
-
}
|
|
157
|
-
const preferred = preferences?.defaultModel === model;
|
|
158
|
-
let plugin;
|
|
159
|
-
if (qualified?.type === 'plugin') {
|
|
160
|
-
plugin = await requirePluginRoute(qualified, userId);
|
|
161
|
-
}
|
|
162
|
-
else if (qualified?.type === 'ollama') {
|
|
163
|
-
await requireOllamaEnabled();
|
|
164
|
-
}
|
|
165
|
-
else if (!qualified) {
|
|
166
|
-
if (preferred && preferences?.defaultProviderType === 'plugin') {
|
|
167
|
-
if (!preferences.defaultProviderId)
|
|
168
|
-
throw new Error('The selected Cordis provider has no provider identity.');
|
|
169
|
-
plugin = await requirePluginRoute({ type: 'plugin', model, pluginId: preferences.defaultProviderId }, userId);
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
await requireOllamaEnabled();
|
|
173
|
-
if (!(preferred && preferences?.defaultProviderType === 'ollama')) {
|
|
174
|
-
// Raw operator-configured IDs retain legacy lookup only while the
|
|
175
|
-
// local catalog is available. Qualified routes never need this probe.
|
|
176
|
-
const local = await ollamaService.getModels();
|
|
177
|
-
if (userId && !local.some(candidate => candidate.name === model)) {
|
|
178
|
-
plugin = await pluginService.getActivePluginForModel(model, userId);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return { userId, model, plugin };
|
|
184
|
-
}
|
|
185
|
-
/** Resolve a text-only task through the same provider as an engine request. */
|
|
186
|
-
export async function resolveCordisProviderTarget(requestedModel, requestedUserId) {
|
|
187
|
-
const native = parseNativeDshModelId(requestedModel);
|
|
188
|
-
if (native) {
|
|
189
|
-
await nativeDshProviderService.assertModel(native.providerId, native.model, requestedUserId);
|
|
190
|
-
return { ...native, providerType: 'dsh' };
|
|
191
|
-
}
|
|
192
|
-
const { model, plugin } = await resolveProviderCallModel(requestedModel, requestedUserId);
|
|
193
|
-
return {
|
|
194
|
-
model,
|
|
195
|
-
providerType: plugin ? 'plugin' : 'ollama',
|
|
196
|
-
providerId: plugin?.id ?? null,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Build the provider-layer messages LWUI's services expect.
|
|
201
|
-
* @param call - the engine's request.
|
|
202
|
-
* @returns chat messages with the fields the providers read.
|
|
203
|
-
*/
|
|
204
|
-
function toChatMessages(call) {
|
|
205
|
-
const now = Date.now();
|
|
206
|
-
return call.messages.map((message, index) => ({
|
|
207
|
-
id: `cordis-${now}-${index}`,
|
|
208
|
-
role: message.role,
|
|
209
|
-
content: message.content,
|
|
210
|
-
...(message.thinking ? { thinking: message.thinking } : {}),
|
|
211
|
-
...(message.providerMetadata
|
|
212
|
-
? { providerMetadata: message.providerMetadata }
|
|
213
|
-
: {}),
|
|
214
|
-
timestamp: now,
|
|
215
|
-
...(message.toolCalls && message.toolCalls.length > 0
|
|
216
|
-
? {
|
|
217
|
-
tool_calls: message.toolCalls.map(toolCall => ({
|
|
218
|
-
id: toolCall.id,
|
|
219
|
-
type: 'function',
|
|
220
|
-
function: {
|
|
221
|
-
name: toolCall.name,
|
|
222
|
-
arguments: toolCall.arguments,
|
|
223
|
-
},
|
|
224
|
-
})),
|
|
225
|
-
}
|
|
226
|
-
: {}),
|
|
227
|
-
...(message.toolCallId === undefined
|
|
228
|
-
? {}
|
|
229
|
-
: { tool_call_id: message.toolCallId }),
|
|
230
|
-
}));
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* The options object the providers read for sampling controls.
|
|
234
|
-
*
|
|
235
|
-
* Exported for its regression test: the tool shape it produces is only
|
|
236
|
-
* observable at this boundary, because the engine normalises tool declarations
|
|
237
|
-
* before they reach the adapter that calls it.
|
|
238
|
-
* @param call - the engine's request.
|
|
239
|
-
* @returns options for Libre WebUI's provider layer.
|
|
240
|
-
*/
|
|
241
|
-
export function toGenerationOptions(call) {
|
|
242
|
-
return {
|
|
243
|
-
...(call.temperature === undefined
|
|
244
|
-
? {}
|
|
245
|
-
: { temperature: call.temperature }),
|
|
246
|
-
...(call.maxTokens === undefined ? {} : { num_predict: call.maxTokens }),
|
|
247
|
-
...(call.stop === undefined ? {} : { stop: [...call.stop] }),
|
|
248
|
-
...(call.tools === undefined || call.tools.length === 0
|
|
249
|
-
? {}
|
|
250
|
-
: {
|
|
251
|
-
// Libre WebUI's provider layer takes tool declarations flat and
|
|
252
|
-
// wraps them per protocol itself. Pre-wrapping them the way an
|
|
253
|
-
// OpenAI request looks made every name read as undefined, and the
|
|
254
|
-
// provider rejected the request outright.
|
|
255
|
-
tools: call.tools.map(tool => ({
|
|
256
|
-
name: tool.name,
|
|
257
|
-
description: tool.description,
|
|
258
|
-
parameters: tool.parameters,
|
|
259
|
-
})),
|
|
260
|
-
}),
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
/** Map one plugin stream chunk onto the engine's event vocabulary. */
|
|
264
|
-
function fromPluginChunk(chunk) {
|
|
265
|
-
if (chunk.type === 'content' && chunk.content) {
|
|
266
|
-
return { type: 'text', text: chunk.content };
|
|
267
|
-
}
|
|
268
|
-
if (chunk.type === 'reasoning' && chunk.content) {
|
|
269
|
-
return { type: 'reasoning', text: chunk.content };
|
|
270
|
-
}
|
|
271
|
-
if (chunk.type === 'tool_call' && chunk.toolCall) {
|
|
272
|
-
return { type: 'tool-call', toolCall: chunk.toolCall };
|
|
273
|
-
}
|
|
274
|
-
if (chunk.type === 'usage' && chunk.usage) {
|
|
275
|
-
return {
|
|
276
|
-
type: 'usage',
|
|
277
|
-
inputTokens: chunk.usage.promptTokens ?? 0,
|
|
278
|
-
outputTokens: chunk.usage.completionTokens ?? 0,
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
return undefined;
|
|
282
|
-
}
|
|
283
|
-
/** Keep native completion reasons; truncation must never execute partial tools. */
|
|
284
|
-
function completionReason(reason, hasTools) {
|
|
285
|
-
if (reason === 'length' ||
|
|
286
|
-
reason === 'max_tokens' ||
|
|
287
|
-
reason === 'max-tokens' ||
|
|
288
|
-
reason === 'incomplete:max_output_tokens')
|
|
289
|
-
return 'max-tokens';
|
|
290
|
-
if (reason === 'error' || reason?.startsWith('incomplete:'))
|
|
291
|
-
return 'error';
|
|
292
|
-
return hasTools ? 'tool-calls' : 'stop';
|
|
293
|
-
}
|
|
294
|
-
/** The handler the engine's adapter delegates to. */
|
|
295
|
-
export const libreWebUiProviderHandler = {
|
|
296
|
-
async defaultModel(requestedUserId) {
|
|
297
|
-
const userId = await providerUserId(requestedUserId);
|
|
298
|
-
const preferences = userId
|
|
299
|
-
? await preferencesService.getPreferences(userId)
|
|
300
|
-
: undefined;
|
|
301
|
-
const preferred = preferences?.defaultModel || instanceDefaultModel();
|
|
302
|
-
const qualified = preferred ? parseModelRoute(preferred) : undefined;
|
|
303
|
-
if (preferred &&
|
|
304
|
-
preferences?.defaultProviderType !== 'agent' &&
|
|
305
|
-
isChatModelId(qualified?.model ?? preferred)) {
|
|
306
|
-
if (qualified) {
|
|
307
|
-
if (qualified.type === 'plugin')
|
|
308
|
-
await requirePluginRoute(qualified, userId);
|
|
309
|
-
else
|
|
310
|
-
await requireOllamaEnabled();
|
|
311
|
-
return modelRouteId(qualified);
|
|
312
|
-
}
|
|
313
|
-
if (preferences?.defaultProviderType === 'plugin') {
|
|
314
|
-
if (!preferences.defaultProviderId)
|
|
315
|
-
throw new Error('The selected Cordis provider has no provider identity.');
|
|
316
|
-
const route = {
|
|
317
|
-
type: 'plugin',
|
|
318
|
-
model: preferred,
|
|
319
|
-
pluginId: preferences.defaultProviderId,
|
|
320
|
-
};
|
|
321
|
-
await requirePluginRoute(route, userId);
|
|
322
|
-
return modelRouteId(route);
|
|
323
|
-
}
|
|
324
|
-
if (preferences?.defaultProviderType === 'ollama') {
|
|
325
|
-
await requireOllamaEnabled();
|
|
326
|
-
return modelRouteId({ type: 'ollama', model: preferred });
|
|
327
|
-
}
|
|
328
|
-
// Legacy unqualified defaults are only resolved when the local catalog
|
|
329
|
-
// answers. An outage cannot turn an ambiguous local name into a remote call.
|
|
330
|
-
await requireOllamaEnabled();
|
|
331
|
-
const local = await ollamaService.getModels();
|
|
332
|
-
if (local.some(model => model.name === preferred)) {
|
|
333
|
-
return modelRouteId({ type: 'ollama', model: preferred });
|
|
334
|
-
}
|
|
335
|
-
if (userId) {
|
|
336
|
-
const plugin = await pluginService.getActivePluginForModel(preferred, userId);
|
|
337
|
-
if (plugin)
|
|
338
|
-
return modelRouteId({
|
|
339
|
-
type: 'plugin',
|
|
340
|
-
model: preferred,
|
|
341
|
-
pluginId: plugin.id,
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
// Personas and agents are Chat execution surfaces. Do not resolve their
|
|
346
|
-
// backing configuration or inherit their prompts into the coding engine.
|
|
347
|
-
return (await this.listModels(userId))[0]?.id;
|
|
348
|
-
},
|
|
349
|
-
async listModels(requestedUserId) {
|
|
350
|
-
const userId = await providerUserId(requestedUserId);
|
|
351
|
-
const models = new Map();
|
|
352
|
-
try {
|
|
353
|
-
const local = (await getOllamaRuntimeSettings()).enabled
|
|
354
|
-
? await ollamaService.getModels()
|
|
355
|
-
: [];
|
|
356
|
-
for (const model of local) {
|
|
357
|
-
if (isChatModelId(model.name)) {
|
|
358
|
-
const id = modelRouteId({ type: 'ollama', model: model.name });
|
|
359
|
-
models.set(id, {
|
|
360
|
-
id,
|
|
361
|
-
name: model.name,
|
|
362
|
-
providerType: 'ollama',
|
|
363
|
-
providerName: 'Ollama',
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
catch (error) {
|
|
369
|
-
logger.debug('Ollama models unavailable to the engine', { error });
|
|
370
|
-
}
|
|
371
|
-
// No account means no implicit access to somebody else's remote keys.
|
|
372
|
-
if (userId) {
|
|
373
|
-
const statuses = await pluginService.getPluginStatus(userId);
|
|
374
|
-
for (const plugin of await pluginService.getActivePlugins(userId)) {
|
|
375
|
-
if ((plugin.type !== 'completion' && plugin.type !== 'chat') ||
|
|
376
|
-
!statuses.some(status => status.id === plugin.id && status.available))
|
|
377
|
-
continue;
|
|
378
|
-
for (const model of plugin.model_map) {
|
|
379
|
-
if (isChatModelId(model)) {
|
|
380
|
-
const id = modelRouteId({
|
|
381
|
-
type: 'plugin',
|
|
382
|
-
model,
|
|
383
|
-
pluginId: plugin.id,
|
|
384
|
-
});
|
|
385
|
-
models.set(id, {
|
|
386
|
-
id,
|
|
387
|
-
name: model,
|
|
388
|
-
providerType: 'plugin',
|
|
389
|
-
providerId: plugin.id,
|
|
390
|
-
providerName: plugin.name,
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
if (userId) {
|
|
397
|
-
const native = await nativeDshProviderService.catalog(userId);
|
|
398
|
-
for (const model of native.models) {
|
|
399
|
-
const id = nativeDshModelId(model.providerId, model.model);
|
|
400
|
-
models.set(id, {
|
|
401
|
-
id,
|
|
402
|
-
name: model.name,
|
|
403
|
-
providerType: 'dsh',
|
|
404
|
-
providerId: model.providerId,
|
|
405
|
-
providerName: model.providerName,
|
|
406
|
-
...(model.contextWindow
|
|
407
|
-
? { contextWindow: model.contextWindow }
|
|
408
|
-
: {}),
|
|
409
|
-
...(model.defaultMaxTokens
|
|
410
|
-
? { maxTokens: model.defaultMaxTokens }
|
|
411
|
-
: {}),
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
return [...models.values()];
|
|
416
|
-
},
|
|
417
|
-
async resolveModel(model, userId) {
|
|
418
|
-
return (await this.listModels(userId)).find(candidate => candidate.id === model);
|
|
419
|
-
},
|
|
420
|
-
async *stream(call) {
|
|
421
|
-
call.signal?.throwIfAborted();
|
|
422
|
-
const native = parseNativeDshModelId(call.model);
|
|
423
|
-
if (native) {
|
|
424
|
-
const userId = await providerUserId(call.userId);
|
|
425
|
-
yield* nativeDshProviderService.stream({ ...call, model: native.model, userId }, native.providerId);
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
const { userId, model, plugin } = await resolveProviderCallModel(call.model, call.userId);
|
|
429
|
-
const messages = toChatMessages(call);
|
|
430
|
-
const options = toGenerationOptions(call);
|
|
431
|
-
const controller = new AbortController();
|
|
432
|
-
const signal = call.signal
|
|
433
|
-
? AbortSignal.any([call.signal, controller.signal])
|
|
434
|
-
: controller.signal;
|
|
435
|
-
try {
|
|
436
|
-
if (plugin) {
|
|
437
|
-
let hasTools = false;
|
|
438
|
-
for await (const chunk of pluginService.executePluginStreamRequest(model, messages, options, userId, plugin.id, signal)) {
|
|
439
|
-
signal.throwIfAborted();
|
|
440
|
-
const event = fromPluginChunk(chunk);
|
|
441
|
-
if (event)
|
|
442
|
-
yield event;
|
|
443
|
-
if (chunk.type === 'tool_call')
|
|
444
|
-
hasTools = true;
|
|
445
|
-
if (chunk.type === 'done') {
|
|
446
|
-
yield {
|
|
447
|
-
type: 'done',
|
|
448
|
-
reason: completionReason(chunk.doneReason, hasTools),
|
|
449
|
-
...(chunk.providerMetadata
|
|
450
|
-
? { providerMetadata: chunk.providerMetadata }
|
|
451
|
-
: {}),
|
|
452
|
-
};
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
return;
|
|
456
|
-
}
|
|
457
|
-
const { tools, ...samplingOptions } = options;
|
|
458
|
-
const queue = [];
|
|
459
|
-
let bufferedBytes = 0;
|
|
460
|
-
let settled = false;
|
|
461
|
-
let failure;
|
|
462
|
-
let wake;
|
|
463
|
-
let hasTools = false;
|
|
464
|
-
let doneReason;
|
|
465
|
-
const notify = () => {
|
|
466
|
-
wake?.();
|
|
467
|
-
wake = undefined;
|
|
468
|
-
};
|
|
469
|
-
const fail = (error) => {
|
|
470
|
-
failure ?? (failure = error);
|
|
471
|
-
settled = true;
|
|
472
|
-
notify();
|
|
473
|
-
};
|
|
474
|
-
const push = (event) => {
|
|
475
|
-
if (settled || signal.aborted)
|
|
476
|
-
return;
|
|
477
|
-
const bytes = Buffer.byteLength(JSON.stringify(event));
|
|
478
|
-
if (queue.length >= 2048 || bufferedBytes + bytes > 2000000) {
|
|
479
|
-
const error = new Error('Cordis provider output exceeded its stream buffer limit.');
|
|
480
|
-
fail(error);
|
|
481
|
-
controller.abort(error);
|
|
482
|
-
return;
|
|
483
|
-
}
|
|
484
|
-
queue.push(event);
|
|
485
|
-
bufferedBytes += bytes;
|
|
486
|
-
notify();
|
|
487
|
-
};
|
|
488
|
-
const abort = () => {
|
|
489
|
-
fail(signal.reason instanceof Error
|
|
490
|
-
? signal.reason
|
|
491
|
-
: new Error('Request aborted'));
|
|
492
|
-
};
|
|
493
|
-
signal.addEventListener('abort', abort, { once: true });
|
|
494
|
-
if (signal.aborted)
|
|
495
|
-
abort();
|
|
496
|
-
const finished = ollamaService
|
|
497
|
-
.generateChatStreamResponse({
|
|
498
|
-
model,
|
|
499
|
-
messages,
|
|
500
|
-
stream: true,
|
|
501
|
-
options: samplingOptions,
|
|
502
|
-
...(tools?.length ? { tools: toOpenAICompatibleTools(tools) } : {}),
|
|
503
|
-
}, chunk => {
|
|
504
|
-
const text = chunk.message?.content;
|
|
505
|
-
if (text)
|
|
506
|
-
push({ type: 'text', text });
|
|
507
|
-
if (chunk.message?.thinking)
|
|
508
|
-
push({ type: 'reasoning', text: chunk.message.thinking });
|
|
509
|
-
for (const rawCall of chunk.message?.tool_calls ?? []) {
|
|
510
|
-
const fn = rawCall.function;
|
|
511
|
-
hasTools = true;
|
|
512
|
-
push({
|
|
513
|
-
type: 'tool-call',
|
|
514
|
-
toolCall: {
|
|
515
|
-
id: typeof rawCall.id === 'string' && rawCall.id
|
|
516
|
-
? rawCall.id
|
|
517
|
-
: `call_${randomUUID()}`,
|
|
518
|
-
name: typeof fn?.name === 'string' ? fn.name : '',
|
|
519
|
-
arguments: typeof fn?.arguments === 'string'
|
|
520
|
-
? fn.arguments
|
|
521
|
-
: JSON.stringify(fn?.arguments ?? {}),
|
|
522
|
-
},
|
|
523
|
-
});
|
|
524
|
-
}
|
|
525
|
-
if (typeof chunk.prompt_eval_count === 'number' &&
|
|
526
|
-
typeof chunk.eval_count === 'number') {
|
|
527
|
-
push({
|
|
528
|
-
type: 'usage',
|
|
529
|
-
inputTokens: chunk.prompt_eval_count,
|
|
530
|
-
outputTokens: chunk.eval_count,
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
if (chunk.done_reason)
|
|
534
|
-
doneReason = chunk.done_reason;
|
|
535
|
-
}, fail, () => push({
|
|
536
|
-
type: 'done',
|
|
537
|
-
reason: completionReason(doneReason, hasTools),
|
|
538
|
-
}), signal, { userId })
|
|
539
|
-
.catch(error => fail(error instanceof Error ? error : new Error(String(error))))
|
|
540
|
-
.finally(() => {
|
|
541
|
-
settled = true;
|
|
542
|
-
notify();
|
|
543
|
-
});
|
|
544
|
-
try {
|
|
545
|
-
while (!settled || queue.length) {
|
|
546
|
-
signal.throwIfAborted();
|
|
547
|
-
if (failure)
|
|
548
|
-
throw failure;
|
|
549
|
-
const event = queue.shift();
|
|
550
|
-
if (event) {
|
|
551
|
-
bufferedBytes -= Buffer.byteLength(JSON.stringify(event));
|
|
552
|
-
yield event;
|
|
553
|
-
}
|
|
554
|
-
else {
|
|
555
|
-
await new Promise(resolve => {
|
|
556
|
-
wake = resolve;
|
|
557
|
-
});
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
if (failure)
|
|
561
|
-
throw failure;
|
|
562
|
-
}
|
|
563
|
-
finally {
|
|
564
|
-
signal.removeEventListener('abort', abort);
|
|
565
|
-
controller.abort();
|
|
566
|
-
queue.length = 0;
|
|
567
|
-
await finished;
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
finally {
|
|
571
|
-
// Async iterator return (including disconnect) owns the provider request.
|
|
572
|
-
controller.abort();
|
|
573
|
-
}
|
|
574
|
-
},
|
|
575
|
-
};
|
|
576
|
-
/** Install a capability without borrowing an administrator's credentials. */
|
|
577
|
-
export async function installLibreWebUiProvider() {
|
|
578
|
-
if (configuredUserId())
|
|
579
|
-
await providerUserId();
|
|
580
|
-
return libreWebUiProviderHandler;
|
|
581
|
-
}
|
|
582
|
-
//# sourceMappingURL=provider-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-handler.js","sourceRoot":"","sources":["../../../src/cordis/dsh/provider-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,aAAa,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,kBAAkB,EAAE,EACzB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAS3E,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C;;;;;GAKG;AACH,SAAS,gBAAgB;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACjD,OAAO,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AAMD,SAAS,YAAY,CAAC,KAAoB;IACxC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC5B,CAAC,CAAC,eAAe,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAClD,CAAC,CAAC,eAAe,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,iFAAiF;AACjF,SAAS,eAAe,CAAC,EAAU;IACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAiD,EACjD,MAAe;IAEf,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,uBAAuB,CACxD,KAAK,CAAC,KAAK,EACX,MAAM,EACN,KAAK,CAAC,QAAQ,CACf,CAAC;IACF,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,IAAI,CAAC,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO;QAC7C,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,EAAU;IAClC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAS,aAAa,CAAC,EAAU;IAC/B,OAAO,CACL,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QACrC,uBAAuB,CAAC,EAAE,CAAC;QAC3B,CAAC,gBAAgB,CAAC,EAAE,CAAC,CACtB,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAc;IAIxD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,YAAgC,CAAC;IACrC,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wEAAwE;QACxE,sEAAsE;QACtE,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAe;IAEf,OAAO,yBAAyB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,SAAkB;IAC9C,MAAM,MAAM,GAAG,SAAS,IAAI,gBAAgB,EAAE,CAAC;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,cAAsB,EACtB,eAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM;QACxB,CAAC,CAAC,MAAM,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,cAAc,CAAC;IACjD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,WAAW,EAAE,YAAY,KAAK,KAAK,CAAC;IACtD,IAAI,MAAiC,CAAC;IACtC,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,oBAAoB,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,SAAS,IAAI,WAAW,EAAE,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,iBAAiB;gBAChC,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;YACJ,MAAM,GAAG,MAAM,kBAAkB,CAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,iBAAiB,EAAE,EAClE,MAAM,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,oBAAoB,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,SAAS,IAAI,WAAW,EAAE,mBAAmB,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAClE,kEAAkE;gBAClE,sEAAsE;gBACtE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC9C,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACjE,MAAM,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,cAAsB,EACtB,eAAuB;IAMvB,MAAM,MAAM,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACrD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,wBAAwB,CAAC,WAAW,CACxC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,KAAK,EACZ,eAAe,CAChB,CAAC;QACF,OAAO,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CACtD,cAAc,EACd,eAAe,CAChB,CAAC;IACF,OAAO;QACL,KAAK;QACL,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAC1C,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI;KAC/B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAgB;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,EAAE,EAAE,UAAU,GAAG,IAAI,KAAK,EAAE;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,gBAAgB;YAC1B,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;QACP,SAAS,EAAE,GAAG;QACd,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC;gBACE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC7C,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,UAAmB;oBACzB,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;qBAC9B;iBACF,CAAC,CAAC;aACJ;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgB;IAClD,OAAO;QACL,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS;YAChC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACrD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,gEAAgE;gBAChE,+DAA+D;gBAC/D,kEAAkE;gBAClE,0CAA0C;gBAC1C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;aACJ,CAAC;KACP,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,eAAe,CAAC,KAMxB;IACC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;YAC1C,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,mFAAmF;AACnF,SAAS,gBAAgB,CACvB,MAA0B,EAC1B,QAAiB;IAEjB,IACE,MAAM,KAAK,QAAQ;QACnB,MAAM,KAAK,YAAY;QACvB,MAAM,KAAK,YAAY;QACvB,MAAM,KAAK,8BAA8B;QAEzC,OAAO,YAAY,CAAC;IACtB,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5E,OAAO,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAA8B;IAClE,KAAK,CAAC,YAAY,CAAC,eAAe;QAChC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM;YACxB,CAAC,CAAC,MAAM,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,SAAS,GAAG,WAAW,EAAE,YAAY,IAAI,oBAAoB,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,IACE,SAAS;YACT,WAAW,EAAE,mBAAmB,KAAK,OAAO;YAC5C,aAAa,CAAC,SAAS,EAAE,KAAK,IAAI,SAAS,CAAC,EAC5C,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ;oBAC7B,MAAM,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;;oBACzC,MAAM,oBAAoB,EAAE,CAAC;gBAClC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,WAAW,EAAE,mBAAmB,KAAK,QAAQ,EAAE,CAAC;gBAClD,IAAI,CAAC,WAAW,CAAC,iBAAiB;oBAChC,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;gBACJ,MAAM,KAAK,GAAG;oBACZ,IAAI,EAAE,QAAiB;oBACvB,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,WAAW,CAAC,iBAAiB;iBACxC,CAAC;gBACF,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,WAAW,EAAE,mBAAmB,KAAK,QAAQ,EAAE,CAAC;gBAClD,MAAM,oBAAoB,EAAE,CAAC;gBAC7B,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,uEAAuE;YACvE,6EAA6E;YAC7E,MAAM,oBAAoB,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBAClD,OAAO,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,uBAAuB,CACxD,SAAS,EACT,MAAM,CACP,CAAC;gBACF,IAAI,MAAM;oBACR,OAAO,YAAY,CAAC;wBAClB,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,MAAM,CAAC,EAAE;qBACpB,CAAC,CAAC;YACP,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,yEAAyE;QACzE,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,eAAe;QAC9B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO;gBACtD,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC/D,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;wBACb,EAAE;wBACF,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,YAAY,EAAE,QAAQ;wBACtB,YAAY,EAAE,QAAQ;qBACvB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,sEAAsE;QACtE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7D,KAAK,MAAM,MAAM,IAAI,MAAM,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClE,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;oBACxD,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC;oBAErE,SAAS;gBACX,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,MAAM,EAAE,GAAG,YAAY,CAAC;4BACtB,IAAI,EAAE,QAAQ;4BACd,KAAK;4BACL,QAAQ,EAAE,MAAM,CAAC,EAAE;yBACpB,CAAC,CAAC;wBACH,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;4BACb,EAAE;4BACF,IAAI,EAAE,KAAK;4BACX,YAAY,EAAE,QAAQ;4BACtB,UAAU,EAAE,MAAM,CAAC,EAAE;4BACrB,YAAY,EAAE,MAAM,CAAC,IAAI;yBAC1B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3D,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;oBACb,EAAE;oBACF,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,YAAY,EAAE,KAAK;oBACnB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,GAAG,CAAC,KAAK,CAAC,aAAa;wBACrB,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;wBACxC,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,KAAK,CAAC,gBAAgB;wBACxB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,gBAAgB,EAAE;wBACvC,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM;QAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACzC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CACpC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,IAAgB;QAC5B,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,CAAC,CAAC,wBAAwB,CAAC,MAAM,CACpC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EACxC,MAAM,CAAC,UAAU,CAClB,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAC9D,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAEtB,IAAI,CAAC;YACH,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,CAAC,0BAA0B,CAChE,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,MAAM,CAAC,EAAE,EACT,MAAM,CACP,EAAE,CAAC;oBACF,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,KAAK;wBAAE,MAAM,KAAK,CAAC;oBACvB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;wBAAE,QAAQ,GAAG,IAAI,CAAC;oBAChD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC1B,MAAM;4BACJ,IAAI,EAAE,MAAM;4BACZ,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;4BACpD,GAAG,CAAC,KAAK,CAAC,gBAAgB;gCACxB,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE;gCAC9C,CAAC,CAAC,EAAE,CAAC;yBACR,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC;YAC9C,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,OAA0B,CAAC;YAC/B,IAAI,IAA8B,CAAC;YACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,UAA8B,CAAC;YACnC,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,EAAE,EAAE,CAAC;gBACT,IAAI,GAAG,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,EAAE;gBAC5B,OAAO,KAAP,OAAO,GAAK,KAAK,EAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,EAAE,CAAC;YACX,CAAC,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,KAAkB,EAAE,EAAE;gBAClC,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAO;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,aAAa,GAAG,KAAK,GAAG,OAAS,EAAE,CAAC;oBAC9D,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,0DAA0D,CAC3D,CAAC;oBACF,IAAI,CAAC,KAAK,CAAC,CAAC;oBACZ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACxB,OAAO;gBACT,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,aAAa,IAAI,KAAK,CAAC;gBACvB,MAAM,EAAE,CAAC;YACX,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,IAAI,CACF,MAAM,CAAC,MAAM,YAAY,KAAK;oBAC5B,CAAC,CAAC,MAAM,CAAC,MAAM;oBACf,CAAC,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CACjC,CAAC;YACJ,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,OAAO;gBAAE,KAAK,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,aAAa;iBAC3B,0BAA0B,CACzB;gBACE,KAAK;gBACL,QAAQ;gBACR,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,eAAe;gBACxB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,EACD,KAAK,CAAC,EAAE;gBACN,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;gBACpC,IAAI,IAAI;oBAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ;oBACzB,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;oBACtD,MAAM,EAAE,GAAG,OAAO,CAAC,QACkC,CAAC;oBACtD,QAAQ,GAAG,IAAI,CAAC;oBAChB,IAAI,CAAC;wBACH,IAAI,EAAE,WAAW;wBACjB,QAAQ,EAAE;4BACR,EAAE,EACA,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,CAAC,EAAE;gCAC1C,CAAC,CAAC,OAAO,CAAC,EAAE;gCACZ,CAAC,CAAC,QAAQ,UAAU,EAAE,EAAE;4BAC5B,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACjD,SAAS,EACP,OAAO,EAAE,EAAE,SAAS,KAAK,QAAQ;gCAC/B,CAAC,CAAC,EAAE,CAAC,SAAS;gCACd,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC;yBAC1C;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,IACE,OAAO,KAAK,CAAC,iBAAiB,KAAK,QAAQ;oBAC3C,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EACpC,CAAC;oBACD,IAAI,CAAC;wBACH,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,KAAK,CAAC,iBAAiB;wBACpC,YAAY,EAAE,KAAK,CAAC,UAAU;qBAC/B,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,KAAK,CAAC,WAAW;oBAAE,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;YACxD,CAAC,EACD,IAAI,EACJ,GAAG,EAAE,CACH,IAAI,CAAC;gBACH,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC;aAC/C,CAAC,EACJ,MAAM,EACN,EAAE,MAAM,EAAE,CACX;iBACA,KAAK,CAAC,KAAK,CAAC,EAAE,CACb,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAChE;iBACA,OAAO,CAAC,GAAG,EAAE;gBACZ,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAChC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,IAAI,OAAO;wBAAE,MAAM,OAAO,CAAC;oBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC5B,IAAI,KAAK,EAAE,CAAC;wBACV,aAAa,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC1D,MAAM,KAAK,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;4BAChC,IAAI,GAAG,OAAO,CAAC;wBACjB,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO;oBAAE,MAAM,OAAO,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC3C,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjB,MAAM,QAAQ,CAAC;YACjB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,0EAA0E;YAC1E,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,IAAI,gBAAgB,EAAE;QAAE,MAAM,cAAc,EAAE,CAAC;IAC/C,OAAO,yBAAyB,CAAC;AACnC,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { SessionHeader } from '@deepseek-ai/dsh-session';
|
|
2
|
-
/**
|
|
3
|
-
* Delete only a bridge-minted session directory after its writer is disposed.
|
|
4
|
-
* The upstream persistence API has no delete operation. Keep its pinned
|
|
5
|
-
* two-directory artifact layout in this one adapter, and refuse links rather
|
|
6
|
-
* than letting an artifact path escape the configured local store.
|
|
7
|
-
*/
|
|
8
|
-
export declare function deleteJsonlSession(storePath: string, header: SessionHeader): Promise<void>;
|
|
9
|
-
//# sourceMappingURL=session-files.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-files.d.ts","sourceRoot":"","sources":["../../../src/cordis/dsh/session-files.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|