libre-webui 0.37.1 → 0.38.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 +28 -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/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/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 +9 -21
- 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 +87 -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/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 +14 -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 +17 -37
- package/backend/dist/services/workModelProviderService.js.map +1 -1
- package/backend/dist/services/workTaskService.js +1 -1
- 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 +4 -11
- package/backend/dist/types/work.d.ts.map +1 -1
- 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/pluginDefinitionTrust.js +1 -1
- package/backend/package.json +4 -34
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-CJHJxwjA.js +68 -0
- package/frontend/dist/assets/index-DSHdOZRK.css +1 -0
- package/frontend/dist/index.html +30 -30
- package/frontend/dist/js/{ArtifactContainer-B1-GVzVf.js → ArtifactContainer-BWTN4QSW.js} +1 -1
- package/frontend/dist/js/{ArtifactDemoPage-goftRHdk.js → ArtifactDemoPage-CCh7lQEw.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-_8RA8_JV.js → ArtifactSandboxFrame-D1ntMsqe.js} +1 -1
- package/frontend/dist/js/{ArtifactSlideOutPanel-DlkOZI5N.js → ArtifactSlideOutPanel-zPEBPoMh.js} +1 -1
- package/frontend/dist/js/AutomationModal-DN98Eyym.js +1 -0
- package/frontend/dist/js/AutomationsPage-3DBwRKME.js +1 -0
- package/frontend/dist/js/{AvatarUpload-CH_n1Ef0.js → AvatarUpload-D5_wGUb5.js} +1 -1
- package/frontend/dist/js/{Button-CGMYia4g.js → Button-CTwi9N3d.js} +1 -1
- package/frontend/dist/js/{CalendarPage-DLo5nm3Q.js → CalendarPage-CUbGH3Tl.js} +1 -1
- package/frontend/dist/js/ChannelsPage-B1hC1rRS.js +1 -0
- package/frontend/dist/js/ChatPage-B7mEg5z2.js +14 -0
- package/frontend/dist/js/{ConnectModels-B4dGb5yc.js → ConnectModels-Cby89_Mc.js} +1 -1
- package/frontend/dist/js/{EvaluationsPage-DpdGpd7x.js → EvaluationsPage-BaND2qQM.js} +2 -2
- package/frontend/dist/js/{FirstTimeSetup-By8OE1JS.js → FirstTimeSetup-D8ktLJKO.js} +1 -1
- package/frontend/dist/js/GalleryPage-DXQLoU0l.js +1 -0
- package/frontend/dist/js/HomePage-WVug1vWc.js +1 -0
- package/frontend/dist/js/LanguageSwitcher-DHHTrDBR.js +1 -0
- package/frontend/dist/js/{Logo-HZvdAk2c.js → Logo-D1o5k_wt.js} +1 -1
- package/frontend/dist/js/{LogoMark-GJnfMXsk.js → LogoMark-lnmc98jv.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-Bk6OQzJI.js → ModelManagerModals-BPALNMDH.js} +1 -1
- package/frontend/dist/js/NotesPage-CRzX2Wa8.js +3 -0
- package/frontend/dist/js/{PasswordStrengthMeter-DasfJa4P.js → PasswordStrengthMeter-BGrHWG0B.js} +1 -1
- package/frontend/dist/js/{PersonasPage-nOThOpXp.js → PersonasPage-BRU9151f.js} +2 -2
- package/frontend/dist/js/PluginUsagePage-BlhYZq1l.js +1 -0
- package/frontend/dist/js/RichMessageContent-FiuPwDG7.js +1 -0
- package/frontend/dist/js/{RichMessageContent-BZ7KKJKK.js → RichMessageContent-OGBLO64L.js} +1 -1
- package/frontend/dist/js/SettingsModal-sLkxG-lW.js +19 -0
- package/frontend/dist/js/{SettingsToggle-oxvw7ulA.js → SettingsToggle-Du2FSUPO.js} +1 -1
- package/frontend/dist/js/{ShareDialog-CnxPGPb_.js → ShareDialog-DEhxnLfn.js} +1 -1
- package/frontend/dist/js/StrandsPage-DWnUKSb0.js +1 -0
- package/frontend/dist/js/{SystemPage-D2ikvhDp.js → SystemPage-cqq8lSxB.js} +1 -1
- package/frontend/dist/js/UserManagementPanel-NZmoTk6V.js +1 -0
- package/frontend/dist/js/{WhatsNewModal-DAAFzY0d.js → WhatsNewModal-5SwIdmU1.js} +1 -1
- package/frontend/dist/js/WorkPage-BIuaVNEC.js +8 -0
- package/frontend/dist/js/api-C2k0OqEk.js +1 -0
- package/frontend/dist/js/api-CnJYEbRz.js +14 -0
- package/frontend/dist/js/{appNavigation-CqtrZ9bm.js → appNavigation-BXNRwrN-.js} +1 -1
- package/frontend/dist/js/appStore-DULGAJnH.js +2 -0
- package/frontend/dist/js/appVersion-DooVk4c_.js +1 -0
- package/frontend/dist/js/ar-Bp843BgG.js +2 -0
- package/frontend/dist/js/authStore-CaLdzyAr.js +1 -0
- package/frontend/dist/js/{authStore-C5qKrmn4.js → authStore-DwaPsICv.js} +3 -3
- package/frontend/dist/js/bn-DmSGkklY.js +2 -0
- package/frontend/dist/js/chatStore-j8bGpkeT.js +3 -0
- package/frontend/dist/js/{client-gf5bjBrn.js → client-DQy1iGRM.js} +2 -2
- package/frontend/dist/js/{config-CNvgxwAm.js → config-BbrsmDn2.js} +1 -1
- package/frontend/dist/js/cs-BcauIRyG.js +2 -0
- package/frontend/dist/js/da-CJ14DPJ_.js +2 -0
- package/frontend/dist/js/de-ajswyAhq.js +2 -0
- package/frontend/dist/js/es-rlf8FsMZ.js +2 -0
- package/frontend/dist/js/{evaluationsApi-Bg12ekHo.js → evaluationsApi-KVsH7yXe.js} +1 -1
- package/frontend/dist/js/fr-BwkM1wie.js +2 -0
- package/frontend/dist/js/hi-B3eId9-I.js +2 -0
- package/frontend/dist/js/id-BcgPFJh2.js +2 -0
- package/frontend/dist/js/is-Crvd3K7f.js +2 -0
- package/frontend/dist/js/it-DrLx24hb.js +2 -0
- package/frontend/dist/js/ja-DZMcf-oB.js +2 -0
- package/frontend/dist/js/ko-Cm0NiOE8.js +2 -0
- package/frontend/dist/js/{messageCodeStyles-DJZ4QMVq.js → messageCodeStyles-CDnMKLgo.js} +1 -1
- package/frontend/dist/js/ms-ymaG59hx.js +2 -0
- package/frontend/dist/js/nl-CdIdeA9d.js +2 -0
- package/frontend/dist/js/pl-CuO0b605.js +2 -0
- package/frontend/dist/js/pt-Vy413FG5.js +2 -0
- package/frontend/dist/js/ru-D0zOEVrL.js +2 -0
- package/frontend/dist/js/strandsApi-SeoX_IsY.js +2 -0
- package/frontend/dist/js/sv-JoS4krpk.js +2 -0
- package/frontend/dist/js/{teamEventStream-PXiwR5Kr.js → teamEventStream-CZYdpbVw.js} +1 -1
- package/frontend/dist/js/th-afhelaqR.js +2 -0
- package/frontend/dist/js/tr-BhSy9UrR.js +2 -0
- package/frontend/dist/js/{ui-DDMjO5dd.js → ui-CW3gJ4Kl.js} +2 -2
- package/frontend/dist/js/ui-vendor-_fvLnmDx.js +1 -0
- package/frontend/dist/js/uk-CibXypnZ.js +2 -0
- package/frontend/dist/js/{useChat-DaIZ2Dbu.js → useChat-CBySqLqR.js} +4 -4
- package/frontend/dist/js/useDialogFocus-DbW0oA9H.js +1 -0
- package/frontend/dist/js/useDictation-DEAp64eu.js +1 -0
- package/frontend/dist/js/{useTranslation-B9kflK9S.js → useTranslation-UHEMTEHd.js} +1 -1
- package/frontend/dist/js/utils-DaXuqmQm.js +1 -0
- package/frontend/dist/js/utils-vendor-CvhktdS_.js +1 -0
- package/frontend/dist/js/vi-Cg0WKHtb.js +2 -0
- package/frontend/dist/js/{work-DmJpVPPO.js → work-CdbmBok5.js} +1 -1
- package/frontend/dist/js/{workApi-C3Td_lFD.js → workApi-BqkCbCLQ.js} +1 -1
- package/frontend/dist/js/workApi-gpxrWwCm.js +1 -0
- package/frontend/dist/js/workModels-BM2Zyiba.js +1 -0
- package/frontend/dist/js/zh-DTqys9TE.js +2 -0
- package/package.json +10 -39
- package/plugins/codex-oauth.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-BrDSO609.js +0 -20
- package/frontend/dist/assets/index-C8_AByBq.css +0 -1
- package/frontend/dist/js/AutomationModal-BaaxZF1M.js +0 -1
- package/frontend/dist/js/AutomationsPage-DY2x7zVm.js +0 -1
- package/frontend/dist/js/ChannelsPage-DnQI7mzq.js +0 -1
- package/frontend/dist/js/ChatPage-BaDkJnEC.js +0 -14
- package/frontend/dist/js/CordisPage-CPiYn2Bx.js +0 -1
- package/frontend/dist/js/GalleryPage-ByZyIhZQ.js +0 -1
- package/frontend/dist/js/HomePage-Btc-Mvin.js +0 -1
- package/frontend/dist/js/LanguageSwitcher-B3CxRW6J.js +0 -1
- package/frontend/dist/js/LibreClawPage-3Sonm1gu.js +0 -1
- package/frontend/dist/js/NotesPage-lFhfjMqJ.js +0 -3
- package/frontend/dist/js/PluginUsagePage-BRbHeRf7.js +0 -1
- package/frontend/dist/js/RichMessageContent-oyydJjgc.js +0 -1
- package/frontend/dist/js/SettingsModal-VpsAx2Ns.js +0 -19
- package/frontend/dist/js/UserManagementPanel-vxpiyiTZ.js +0 -1
- package/frontend/dist/js/WorkPage-BYpYD9mr.js +0 -8
- package/frontend/dist/js/api-C0ligMmL.js +0 -1
- package/frontend/dist/js/api-CVUaOaq4.js +0 -14
- package/frontend/dist/js/appStore-Biw63DtJ.js +0 -2
- package/frontend/dist/js/appVersion-D78eXAb-.js +0 -1
- package/frontend/dist/js/ar-Cq-DrSYL.js +0 -2
- package/frontend/dist/js/authStore-2DsDTcIu.js +0 -1
- package/frontend/dist/js/bn-BqxLh-KL.js +0 -2
- package/frontend/dist/js/chatStore-DQhEqb9F.js +0 -3
- package/frontend/dist/js/cordisApi-BYjA4EOQ.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/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/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-BXyX1U8r.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-BIS9RxRi.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,10 +1,10 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-vendor-wiHys0m2.js";import{a as n,t as r}from"./logger-BR4forr_.js";import{t as
|
|
2
|
-
`).slice(-3).reverse();for(let e of n){let t=e.trim().replace(/^#{1,6}\s*/,``).replace(/^[-*]\s*/,``).replace(/[::]\s*$/,``).match(x);if(t)return P(t[0])}}function P(e){return e.replace(/^["'`]+|["'`:]+$/g,``)}function F(e){return e?.match(/\.([a-z0-9]+)$/i)?.[1]}function I(e){return e?.split(/[\\/]/).pop()}function L(e){let t=I(e);if(!t)return null;let n=t.replace(/\.[^.]+$/,``);return/^(index|main|app)$/i.test(n)?null:n.replace(/[-_]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function R(e){let t=Date.now();return{...e,id:`artifact-${t}-${
|
|
3
|
-
`).length,n=e.trim().length,r=/function|class|def |import |from |const |let |var |if |for |while |try |catch/.test(e);return(n>500||t>15)&&r}return e.trim().length>200}function oe(e){let t=[],n=e;for(let e of S){e.regex.lastIndex=0;let r=[],i;for(;(i=e.regex.exec(n))!==null;){let n=e.extract(i);q(n.content,n.type)&&(t.push(R({type:n.type,title:n.title,content:n.content})),r.push({start:i.index,end:i.index+i[0].length}))}n=G(n,r)}let r=H(n);for(;r;)t.push(r.artifact),n=G(n,r.ranges),r=H(n);let i=ae(n);i&&(t.push(i.artifact),n=G(n,i.ranges));let a=M(n),o=[];for(let e of a){let n=z(e);n&&q(e.content,n.type)&&(t.push(R({type:n.type,title:n.title,content:e.content,language:n.language})),o.push(e))}return n=G(n,o),{content:n.trim(),artifacts:t}}var J=new Map;function se(e,t,n=``){let r=J.get(e);if(n){if((!r||r.state===`none`)&&(J.set(e,{state:`open`,startedAt:Date.now()}),!t))return;let n=J.get(e);t&&n?.state===`open`&&J.set(e,{state:`done`,durationMs:Date.now()-n.startedAt});return}if(r&&r.state!==`open`||!t)return;let i=
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-vendor-wiHys0m2.js";import{a as n,t as r}from"./logger-BR4forr_.js";import{g as i,t as a}from"./chatStore-j8bGpkeT.js";import{t as o}from"./useTranslation-UHEMTEHd.js";import{a as s,c,s as l}from"./utils-DaXuqmQm.js";import{Tr as u}from"./ui-vendor-_fvLnmDx.js";import{t as d}from"./config-BbrsmDn2.js";import{N as f,d as p}from"./api-CnJYEbRz.js";import{n as m}from"./authStore-DwaPsICv.js";import{t as h}from"./appStore-DULGAJnH.js";import{c as g,s as _}from"./artifactHtml-DDmfpcB0.js";var v=e(t(),1),y=/```([^\n`]*)\n([\s\S]*?)\n```/g,b=/^(?:%%|flowchart|graph|sequenceDiagram|classDiagram|stateDiagram(?:-v2)?|erDiagram|journey|gantt|pie|mindmap|timeline|gitGraph|quadrantChart|requirementDiagram|sankey-beta|xychart-beta|block-beta|architecture-beta|packet-beta|kanban|radar-beta|treemap-beta|C4Context)\b/i,x=/[\w@./-]+\.(?:html?|css|mjs|js|jsx|ts|tsx|svg|json|py)/i,ee=[`html`,`react`,`svg`,`mermaid`,`chart`,`code`,`text`,`json`],S=[{regex:/<artifact\s+type="([^"]+)"\s+title="([^"]+)"[^>]*>([\s\S]*?)<\/artifact>/gi,extract:e=>({type:A(e[1]),title:C(e[2]).trim()||`Artifact`,content:e[3].trim()})},{regex:/<artifact\s+type="([^"]+)"[^>]*>([\s\S]*?)<\/artifact>/gi,extract:e=>{let t=A(e[1]);return{type:t,title:`${t.toUpperCase()} Artifact`,content:e[2].trim()}}}];function C(e){if(typeof document<`u`){let t=document.createElement(`div`);return t.innerHTML=e,t.textContent||t.innerText||``}return T(w(e))}function w(e){return e.replace(/&(lt|gt|quot|apos|#39);/gi,(e,t)=>{switch(t.toLowerCase()){case`lt`:return`<`;case`gt`:return`>`;case`quot`:return`"`;case`apos`:case`#39`:return`'`;default:return``}}).replace(/&/gi,`&`)}function T(e){let t=``,n=!1,r=null;for(let i=0;i<e.length;i+=1){let a=e[i];if(n){if(r){a===r&&(r=null);continue}if(a===`"`||a===`'`){r=a;continue}a===`>`&&(n=!1);continue}if(a===`<`){let t=e[i+1];if(t&&/[!/A-Za-z?]/.test(t)){n=!0;continue}}t+=a}return t}function E(e){let t=e.match(/<title[^>]*>([\s\S]*?)<\/title>/i);if(t)return C(t[1]).trim()||null;let n=e.match(/<h1[^>]*>([\s\S]*?)<\/h1>/i);return n&&C(n[1]).trim()||null}function D(e){for(let t of[/export\s+default\s+(?:function|class)\s+([A-Z]\w*)/,/export\s+default\s+([A-Z]\w*)\s*(?:;|$)/m,/(?:function|class)\s+([A-Z]\w*)/,/const\s+([A-Z]\w*)\s*[:=]/,/(?:function|const|class)\s+(\w+)/]){let n=e.match(t);if(n)return n[1]}return null}function O(e){let t=e.match(/^\s*title\s+(.+)$/im);if(t)return t[1].trim();let n=e.trim().match(/^([A-Za-z][\w-]*)/);if(!n)return null;let r=n[1].replace(/-(?:beta|v2)$/i,``).replace(/([a-z])([A-Z])/g,`$1 $2`);return`${r.charAt(0).toUpperCase()}${r.slice(1)}`}function k(e){if(e.includes(`def main(`))return`Python Script`;let t=e.match(/class\s+(\w+)/);if(t)return`${t[1]} Class`;let n=e.match(/def\s+(\w+)/);return n&&n[1]!==`__init__`?`${n[1]} Function`:null}function te(e){let t=e.match(/function\s+(\w+)/);if(t)return`${t[1]} Function`;let n=e.match(/(?:const|let)\s+(\w+)\s*=/);return n?n[1]:null}function A(e){let t=e.trim().toLowerCase();return ee.includes(t)?t:`text`}function j(e){if(!e)return;let t=e.trim().toLowerCase().replace(/^\./,``).replace(/[,:;]+$/,``);switch(t){case`htm`:case`html`:return`html`;case`js`:case`mjs`:case`javascript`:return`javascript`;case`jsx`:case`tsx`:case`react`:return`react`;case`ts`:case`typescript`:return`typescript`;case`py`:case`python`:return`python`;case`css`:case`svg`:case`json`:return t;default:return t||void 0}}function M(e){let t=[],n=new RegExp(y),r;for(;(r=n.exec(e))!==null;){let n=r[1].trim(),i=ne(n,N(e,r.index));t.push({raw:r[0],info:n,content:r[2].trim(),start:r.index,end:r.index+r[0].length,language:i.language,fileName:i.fileName})}return t}function ne(e,t){let n=re(e)||t,r=e.split(/\s+/).filter(Boolean)[0]?.replace(/[{}[\]()]/g,``);return{language:(r&&!x.test(r)&&!r.includes(`=`)?j(r):void 0)||j(F(n)),fileName:n}}function re(e){let t=e.match(/(?:file(?:name)?|path|name)\s*=\s*["']?([^"'\s]+)["']?/i);if(t&&x.test(t[1]))return P(t[1]);let n=e.match(x);return n?P(n[0]):void 0}function N(e,t){let n=e.slice(Math.max(0,t-180),t).split(`
|
|
2
|
+
`).slice(-3).reverse();for(let e of n){let t=e.trim().replace(/^#{1,6}\s*/,``).replace(/^[-*]\s*/,``).replace(/[::]\s*$/,``).match(x);if(t)return P(t[0])}}function P(e){return e.replace(/^["'`]+|["'`:]+$/g,``)}function F(e){return e?.match(/\.([a-z0-9]+)$/i)?.[1]}function I(e){return e?.split(/[\\/]/).pop()}function L(e){let t=I(e);if(!t)return null;let n=t.replace(/\.[^.]+$/,``);return/^(index|main|app)$/i.test(n)?null:n.replace(/[-_]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function R(e){let t=Date.now();return{...e,id:`artifact-${t}-${c(9)}`,createdAt:t,updatedAt:t}}function z(e){let t=j(e.language)||j(F(e.fileName));switch(t){case`html`:return{type:`html`,title:E(e.content)||L(e.fileName)||`HTML Document`};case`svg`:return{type:`svg`,title:L(e.fileName)||`SVG Image`};case`react`:return{type:`react`,title:D(e.content)||L(e.fileName)||`React Component`,language:`jsx`};case`mermaid`:return{type:`mermaid`,title:O(e.content)||`Diagram`,language:`mermaid`};case`json`:return{type:`json`,title:L(e.fileName)||`JSON Data`};case`python`:return{type:`code`,title:k(e.content)||L(e.fileName)||`Python Code`,language:`python`};case`css`:return{type:`code`,title:L(e.fileName)||`CSS Styles`,language:`css`};case`javascript`:return{type:`code`,title:te(e.content)||L(e.fileName)||`JavaScript Code`,language:`javascript`};case`typescript`:return{type:`code`,title:L(e.fileName)||`TypeScript Code`,language:`typescript`};default:return t?{type:`code`,title:L(e.fileName)||`${t.toUpperCase()} Code`,language:t}:null}}function B(e){return(j(e.language)||j(F(e.fileName)))===`html`}function V(e){return(j(e.language)||j(F(e.fileName)))===`css`}function ie(e){return(j(e.language)||j(F(e.fileName)))===`javascript`}function H(e){let t=M(e),n=t.filter(B);if(n.length===0)return null;let r=t.filter(V),i=t.filter(ie);if(r.length===0&&i.length===0)return null;let a=n.find(e=>/(^|[/\\])index\.html?$/i.test(e.fileName||``))||n[0],o=U(a.content,r,i),s=g(o,r.map(e=>e.content),i.map(e=>e.content));return q(s,`html`)?{artifact:R({type:`html`,title:E(s)||L(a.fileName)||`Interactive HTML App`,description:`Bundled generated HTML, CSS, and JavaScript files into one runnable artifact.`,content:s}),ranges:[a,...r,...i]}:null}function U(e,t,n){let r=e;for(let e of t){let t=I(e.fileName);t&&(r=r.replace(RegExp(`<link\\b[^>]*href=["'][^"']*${K(t)}["'][^>]*>`,`gi`),``))}for(let e of n){let t=I(e.fileName);t&&(r=r.replace(RegExp(`<script\\b[^>]*src=["'][^"']*${K(t)}["'][^>]*>\\s*<\\/script>`,`gi`),``))}return r}function ae(e){let t=/<!doctype\s+html|<html[\s>]/i.exec(e);if(!t||t.index===void 0)return null;let n=M(e);if(W(t.index,n))return null;let r=t.index,i=/<\/html>/gi;i.lastIndex=r;let a=i.exec(e),o=a?a.index+a[0].length:e.length,s=e.slice(r,o).trim();return q(s,`html`)?{artifact:R({type:`html`,title:E(s)||`HTML Document`,content:s}),ranges:[{start:r,end:o}]}:null}function W(e,t){return t.some(t=>e>=t.start&&e<=t.end)}function G(e,t){return[...t].sort((e,t)=>t.start-e.start).reduce((e,t)=>`${e.slice(0,t.start)}${e.slice(t.end)}`,e)}function K(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function q(e,t){if(t===`html`){let t=e.trim(),n=/<[^>]+>/.test(t),r=/<(canvas|script|style|button|form|input|select|textarea|video|audio)\b/i.test(t)||/\bon(?:click|input|submit|keydown|keyup|mousemove)=/i.test(t);return n&&(_(t)||t.length>160||r)}if(t===`svg`)return/<svg[^>]*>/.test(e);if(t===`react`)return/<[A-Za-z][^>]*>/.test(e)&&/\b(?:export\s+default|return\s*[(<]|=>\s*[(<]|createRoot|render\s*\()/.test(e);if(t===`mermaid`)return b.test(e.trim());if(t===`json`)try{return JSON.parse(e),e.trim().length>100}catch{return!1}if(t===`code`){let t=e.split(`
|
|
3
|
+
`).length,n=e.trim().length,r=/function|class|def |import |from |const |let |var |if |for |while |try |catch/.test(e);return(n>500||t>15)&&r}return e.trim().length>200}function oe(e){let t=[],n=e;for(let e of S){e.regex.lastIndex=0;let r=[],i;for(;(i=e.regex.exec(n))!==null;){let n=e.extract(i);q(n.content,n.type)&&(t.push(R({type:n.type,title:n.title,content:n.content})),r.push({start:i.index,end:i.index+i[0].length}))}n=G(n,r)}let r=H(n);for(;r;)t.push(r.artifact),n=G(n,r.ranges),r=H(n);let i=ae(n);i&&(t.push(i.artifact),n=G(n,i.ranges));let a=M(n),o=[];for(let e of a){let n=z(e);n&&q(e.content,n.type)&&(t.push(R({type:n.type,title:n.title,content:e.content,language:n.language})),o.push(e))}return n=G(n,o),{content:n.trim(),artifacts:t}}var J=new Map;function se(e,t,n=``){let r=J.get(e);if(n){if((!r||r.state===`none`)&&(J.set(e,{state:`open`,startedAt:Date.now()}),!t))return;let n=J.get(e);t&&n?.state===`open`&&J.set(e,{state:`done`,durationMs:Date.now()-n.startedAt});return}if(r&&r.state!==`open`||!t)return;let i=l(t);if(!r){i.thinkingComplete?J.set(e,{state:`none`}):J.set(e,{state:`open`,startedAt:Date.now()});return}i.thinkingComplete&&J.set(e,{state:`done`,durationMs:Date.now()-r.startedAt})}function Y(e){let t=J.get(e);if(t){if(t.state===`done`)return t.durationMs;if(t.state===`open`)return Date.now()-t.startedAt}}function ce(e){let t=J.get(e);if(J.delete(e),t){if(t.state===`done`)return t.durationMs;if(t.state===`open`)return Date.now()-t.startedAt}}function le(e){let t=e/1e3;if(t<.95)return`${Math.max(.1,Math.round(t*10)/10)}s`;if(t<60)return`${Math.round(t)}s`;let n=Math.floor(t/60),r=Math.round(t%60);return r>0?`${n}m ${r}s`:`${n}m`}var ue=(e,t)=>{a.setState(n=>{let r=n=>n&&n.id===e?{...n,settings:{...n.settings,...t.length>0?{promptQueue:t}:{promptQueue:void 0}}}:n;return{currentSession:r(n.currentSession),sessions:n.sessions.map(e=>r(e))}})},de=(e,t)=>{t?.add(e.assistantMessageId),e.cancelRequested=!0,e.jobId&&e.abort.abort()},fe=async e=>{if(!e.cancelledMessageIds.has(e.assistantMessageId))return!1;try{let t=await(e.cancelByIdentity??Q)(e.sessionId,e.assistantMessageId);await e.settle(t)}catch(t){e.onError?.(t)}return!0},pe=e=>{e.retainForContinuation||e.cancelledMessageIds.delete(e.assistantMessageId)},me=async(e,t,n={})=>{if(e.jobId=t.jobId,!e.cancelRequested)return`stream`;e.abort.abort();let[,r]=await Promise.allSettled([(n.byJob??ye)(t.jobId),(n.byIdentity??Q)(e.sessionId,e.assistantMessageId)]);if(r.status===`rejected`)throw r.reason;return r.value.completed?`completed`:`cancelled`},he=async e=>{let t=await e.loadSession(e.sessionId);if(t.id!==e.sessionId)throw Error(`Reloaded chat session does not match the completed turn.`);if(!t.messages.find(t=>t.id===e.assistantMessageId&&t.role===`assistant`))throw Error(`Completed assistant message is absent from chat storage.`);return e.applySession(t),t},X=async e=>{try{let t=await e.json(),n=typeof t.error==`string`?t.error:typeof t.message==`string`?t.message:void 0;if(n)return Error(n)}catch{}return Error(`Chat event request failed with status ${e.status}.`)},Z=()=>{let e=localStorage.getItem(`auth-token`);return e?{Authorization:`Bearer ${e}`}:{}},ge=async e=>{let t=await fetch(`${d}/chat/sessions/${encodeURIComponent(e.sessionId)}/generations`,{method:`POST`,headers:{"Content-Type":`application/json`,...Z()},credentials:`same-origin`,signal:e.signal,body:JSON.stringify({message:e.message,images:e.images,userMessageId:e.userMessageId,assistantMessageId:e.assistantMessageId,options:e.options,webSearch:e.webSearch,tools:e.tools===!0,...e.toolSelection?{toolSelection:e.toolSelection}:{},regenerate:e.regenerate===!0,originalMessageId:e.originalMessageId,...e.modelOverride?{modelOverride:e.modelOverride}:{},...e.compare?{compare:!0}:{}})});if(!t.ok)throw await X(t);let n=await t.json();if(!n.data?.jobId)throw Error(`Chat generation response did not include a durable job.`);return n.data},_e=async(e,t)=>{if(!e.body)throw Error(`Chat event stream has no response body.`);let n=e.body.getReader(),r=new TextDecoder,i=``,a=0,o=!1,s=e=>{let n,r=[];for(let t of e.split(`
|
|
4
4
|
`))t.startsWith(`id:`)&&(n=Number(t.slice(3).trim())),t.startsWith(`data:`)&&r.push(t.slice(5).trimStart());if(!Number.isSafeInteger(n)||!r.length)return;let i=JSON.parse(r.join(`
|
|
5
5
|
`)),s=n,c=i.type===`done`||i.type===`error`;t(s,i),a=s,o=c};try{for(;;){let{done:e,value:t}=await n.read();i+=r.decode(t,{stream:!e}).replace(/\r\n/g,`
|
|
6
6
|
`);let a=i.indexOf(`
|
|
7
7
|
|
|
8
8
|
`);for(;a>=0;)s(i.slice(0,a)),i=i.slice(a+2),a=i.indexOf(`
|
|
9
9
|
|
|
10
|
-
`);if(e||o)break}}finally{await n.cancel().catch(()=>void 0),n.releaseLock()}return{cursor:a,terminal:o}},ve=async e=>{let t=0,n=0;for(;!e.signal.aborted;){let r=new URL(`${d}/chat/sessions/${encodeURIComponent(e.sessionId)}/events`,window.location.origin);r.searchParams.set(`after`,String(t)),r.searchParams.set(`generation`,e.assistantMessageId);try{let i=await fetch(r,{headers:{Accept:`text/event-stream`,...Z()},credentials:`same-origin`,cache:`no-store`,signal:e.signal});if(!i.ok)throw await X(i);if((await _e(i,(n,r)=>{e.onEvent(r),t=n})).terminal)return;n=0}catch(t){if(e.signal.aborted||(n+=1,n>8))throw t}await new Promise((t,r)=>{let i=window.setTimeout(()=>{e.signal.removeEventListener(`abort`,a),t()},Math.min(5e3,n*500+250)),a=()=>{window.clearTimeout(i),e.signal.removeEventListener(`abort`,a),r(e.signal.reason??Error(`Chat stream cancelled`))};e.signal.addEventListener(`abort`,a,{once:!0})})}},ye=async e=>{let t=await fetch(`${d}/jobs/${encodeURIComponent(e)}/cancel`,{method:`POST`,headers:Z(),credentials:`same-origin`});if(!t.ok)throw await X(t)},Q=async(e,t)=>{let n=await fetch(`${d}/chat/sessions/${encodeURIComponent(e)}/generations/${encodeURIComponent(t)}/cancel`,{method:`POST`,headers:Z(),credentials:`same-origin`});if(!n.ok)throw await X(n);let r=(await n.json()).data;if(!r)throw Error(`Chat cancellation response did not include a decision.`);let i=typeof r.jobId==`string`?r.jobId:void 0;if(r.completed!==!0&&r.pending!==!0&&!i)throw Error(`Chat cancellation response did not include a decision.`);return{completed:r.completed===!0,pending:r.pending===!0,...i?{jobId:i}:{},...typeof r.state==`string`?{state:r.state}:{}}},$=r(`use-chat`),be=new Set([`New Chat`,`New Demo Session`]),xe=e=>!e||be.has(e),Se=e=>{let t=l.getState();return t.currentSession?.id===e?t.currentSession.title:t.sessions.find(t=>t.id===e)?.title},Ce=e=>{let{t}=i(),[r,o]=(0,v.useState)(``),[d,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(!1),[ee,S]=(0,v.useState)([]),[C,w]=(0,v.useState)([]),[T,E]=(0,v.useState)(null),{addMessage:D,updateMessage:O,updateMessageWithStatistics:k,applySessionTitle:te,setGeneratingTitleForSession:A,removeMessage:j}=l(),{setIsGenerating:M}=h(),ne=(0,v.useRef)(null),re=(0,v.useRef)(new Map),N=(0,v.useRef)(null),P=(0,v.useRef)(new Set),F=(0,v.useRef)(null),I=(0,v.useRef)(null),L=(0,v.useRef)(``),R=(0,v.useRef)(``),z=(0,v.useRef)(0),B=(0,v.useRef)(void 0),V=(0,v.useRef)(null),ie=(0,v.useRef)(``),H=(0,v.useRef)(``),U=(0,v.useCallback)(()=>{V.current!==null&&typeof window<`u`&&window.cancelAnimationFrame(V.current),V.current=null},[]),ae=(0,v.useCallback)((e,t=!1,n=``)=>{if(ie.current=e,H.current=n,t||typeof window>`u`){U(),o(e),g(n);return}V.current===null&&(V.current=window.requestAnimationFrame(()=>{V.current=null,o(ie.current),g(H.current)}))},[U]),W=(0,v.useCallback)(()=>{U(),ie.current=``,H.current=``,o(``),g(``)},[U]),G=(0,v.useCallback)((e,t)=>{l.setState(n=>{let r=n.currentSession?.id===e.id?n.currentSession:n.sessions.find(t=>t.id===e.id),i=r&&t!==void 0&&r.title!==t?{...e,title:r.title,updatedAt:Math.max(r.updatedAt,e.updatedAt)}:e;return{sessions:n.sessions.some(t=>t.id===e.id)?n.sessions.map(t=>t.id===e.id?i:t):[i,...n.sessions],currentSession:n.currentSession?.id===e.id?i:n.currentSession}})},[]),K=(0,v.useCallback)(async(e,t)=>{let n=Se(e);await he({sessionId:e,assistantMessageId:t,loadSession:async e=>{let t=await f.getSession(e);if(!t.success||!t.data)throw Error(t.error||`Completed chat session could not be reloaded.`);return t.data},applySession:e=>G(e,n)})},[G]),q=(0,v.useCallback)(async(e,t,n,r={})=>{n.completed?await K(e,t):j(e,t),pe({assistantMessageId:t,cancelledMessageIds:P.current,decision:n,retainForContinuation:r.retainForContinuation})},[K,j]),J=(0,v.useCallback)(async(e,n)=>{let r=h.getState().preferences.titleSettings;if(n&&r?.autoTitle&&r?.taskModel){$.debug(`Triggering auto-title generation...`),A(e);try{let i=await f.generateTitle(e,r.taskModel,n,r.taskProviderType,r.taskProviderId);if($.debug(`Title generation response:`,i),!i.success||!i.data?.title)throw Error(i.error||`Title generation returned no title`);te(e,i.data.title,i.data.updatedAt),i.data.source===`fallback`?u.error(t(`chat.toasts.titlePreviewFallback`)):u.success(t(`chat.toasts.titleGenerated`))}catch(e){$.error(`Failed to generate title:`,e),u.error(t(`chat.toasts.titleGenerationFailed`))}finally{l.getState().generatingTitleForSession===e&&A(null)}}},[te,A,t]);(0,v.useEffect)(()=>{let t=P.current;return()=>{let n=N.current,r=I.current;if(r){let e=!r.jobId;de(r,t),Q(r.sessionId,r.assistantMessageId).then(t=>q(r.sessionId,r.assistantMessageId,t,{retainForContinuation:e})).catch(e=>$.error(`Failed to cancel durable chat generation:`,e)),r.jobId&&ye(r.jobId).catch(e=>$.error(`Failed to cancel durable chat generation:`,e)),I.current=null}n&&e&&!r&&m.send({type:`chat_cancel`,data:{sessionId:e,assistantMessageId:n}}),m.offMessage(`user_message`),m.offMessage(`assistant_chunk`),m.offMessage(`assistant_complete`),m.offMessage(`assistant_cancelled`),m.offMessage(`tool_status`),m.offMessage(`error`)}},[e,q]),(0,v.useEffect)(()=>{if(!e){m.offMessage(`user_message`),m.offMessage(`assistant_chunk`),m.offMessage(`assistant_complete`),m.offMessage(`assistant_cancelled`),m.offMessage(`tool_status`),m.offMessage(`tool_event`),m.offMessage(`error`);return}return m.onMessage(`user_message`,()=>{}),m.onMessage(`assistant_chunk`,t=>{let n=t,r=n.messageId||N.current;r&&P.current.has(r)||r&&N.current&&r!==N.current||r&&(typeof n.total==`string`?L.current=n.total:typeof n.content==`string`&&(L.current+=n.content),typeof n.thinkingTotal==`string`?R.current=n.thinkingTotal:typeof n.thinking==`string`&&(R.current+=n.thinking),se(r,L.current,R.current),ae(L.current,n.done,R.current),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>{O(e,r,L.current),z.current=Date.now()},n.done?0:200))}),m.onMessage(`tool_status`,e=>{let t=e;S(e=>e.find(e=>e.toolCallId===t.toolCallId)?e.map(e=>e.toolCallId===t.toolCallId?{...e,phase:t.phase}:e):[...e,{toolCallId:t.toolCallId,name:t.name,phase:t.phase,startedAt:Date.now()}])}),m.onMessage(`tool_event`,e=>{let t=e;if(t.type&&t.messageId&&!(N.current&&t.messageId!==N.current)){if(t.type===`chat.tool-call.v1`&&t.toolCall){let e=t.toolCall;w(t=>t.find(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[...t,e]);return}if(t.type===`chat.tool-result.v1`&&t.toolCallId){w(e=>e.map(e=>e.id===t.toolCallId?{...e,status:t.status??e.status,resultPreview:t.preview,isError:t.isError===!0,finishedAt:Date.now()}:e)),E(e=>e&&e.toolCall.id===t.toolCallId?null:e);return}if(t.type===`chat.approval.v1`&&t.approvalId&&t.toolCall){let e=t.toolCall;w(t=>t.find(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[...t,e]),E({approvalId:t.approvalId,messageId:t.messageId,toolCall:e,expiresAt:t.expiresAt??Date.now()+12e4})}}}),m.onMessage(`assistant_complete`,t=>{let n=t;$.debug(`Hook: Received assistant_complete for session:`,e,`messageId:`,n.messageId,`with statistics:`,!!n.statistics);let r=n.messageId||N.current,i=!r||r===N.current;if(r&&P.current.delete(r),!i){if(n.truncated&&r){K(e,r);return}r&&k(e,r,n.content,n.statistics,n.providerMetadata,n.thinking);return}if(x(!1),W(),M(!1),S([]),w([]),E(null),n&&r){let t=L.current||n.content,i=R.current||n.thinking,a=ce(r),o=n.statistics?.thinking_duration_ms===void 0&&a!==void 0?{...n.statistics,thinking_duration_ms:a}:n.statistics;k(e,r,t,o,n.providerMetadata,i);let{preferences:c,openArtifactPanel:l}=h.getState();if(c.autoOpenArtifactPanel!==!1){let{artifacts:e}=oe(s(t).content);e.length>0&&l(e[e.length-1])}}N.current=null,L.current=``,R.current=``,window.setTimeout(()=>{ne.current?.()},0),B.current&&clearTimeout(B.current),z.current=0}),m.onMessage(`assistant_cancelled`,t=>{let n=t,r=n.assistantMessageId;r&&n.sessionId===e&&P.current.has(r)&&(P.current.delete(r),j(e,r),N.current===r&&(x(!1),W(),y(null),M(!1),S([]),w([]),E(null),N.current=null,L.current=``,R.current=``))}),m.onMessage(`error`,e=>{let n=e;if(x(!1),W(),M(!1),w([]),E(null),N.current=null,R.current=``,n.code===`SESSION_NOT_FOUND`){$.warn(`Session not found, redirecting to create new session...`),u.error(t(`chat.toasts.sessionNotFoundRedirect`)),window.location.href=`/`;return}u.error(n.error)}),x(!1),W(),N.current=null,R.current=``,()=>{B.current&&clearTimeout(B.current),U()}},[e,O,k,M,ae,W,U,j,K,t]);let Y=(0,v.useCallback)(async(r,i,o,s,d,f,p)=>{if(!e||!r.trim()&&(!i||i.length===0))return;let h;try{let g=l.getState(),_=g.currentSession,v={model:_?.personaId?`persona:${_.personaId}`:_?.model||``,providerType:_?.providerType,providerId:_?.providerId};if(!c(g.models,v)){u.error(t(`chat.model.selectBeforeSending`));return}M(!0),x(!0),W(),w([]),E(null),L.current=``,R.current=``,B.current&&clearTimeout(B.current),z.current=Date.now();let b=_?.isPrivate===!0,ee=_?.messages?.some(e=>e.role===`user`),S=!b&&!ee&&xe(_?.title),C=a();D(e,{id:C,role:`user`,content:r.trim(),images:i});let T=a();if(h=T,N.current=T,R.current=``,y(T),D(e,{role:`assistant`,content:``,id:T}),S&&J(e,r.trim()),n()){let t=`Demo response for: ${r.trim()}`;F.current=window.setTimeout(()=>{F.current=null,!P.current.has(T)&&(O(e,T,t),x(!1),W(),y(null),M(!1),N.current=null,L.current=``,R.current=``)},500);return}if(!b){let n=new AbortController,c={sessionId:e,assistantMessageId:T,abort:n};I.current=c;let h=await me(c,await ge({sessionId:e,message:r.trim(),images:i,userMessageId:C,assistantMessageId:T,options:{..._?.settings?.generationOptions??{},...o===void 0?{}:{format:o}},webSearch:s===!0,tools:d===!0,...d===!0&&f?{toolSelection:f}:{},signal:n.signal}));if(h!==`stream`){await q(e,T,{completed:h===`completed`,pending:!1,state:h===`completed`?`succeeded`:`cancelled`}),I.current===c&&(I.current=null);return}for(let n of p??[]){let s=a(),c=new AbortController;re.current.set(s,c),l.getState().addPendingComparison({sessionId:e,assistantMessageId:s,model:n.model}),(async()=>{try{await ge({sessionId:e,message:r.trim(),images:i,userMessageId:C,assistantMessageId:s,options:{..._?.settings?.generationOptions??{},...o===void 0?{}:{format:o}},webSearch:!1,compare:!0,modelOverride:n,signal:c.signal}),await ve({sessionId:e,assistantMessageId:s,signal:c.signal,onEvent:r=>{r.type===`done`?K(e,s):r.type===`error`&&u.error(t(`chat.toasts.comparisonError`,{model:n.model,error:String(r.error??t(`chat.toasts.generationFailed`))}))}})}catch(e){c.signal.aborted||($.error(`Comparison generation failed:`,e),u.error(t(`chat.toasts.comparisonError`,{model:n.model,error:t(`chat.toasts.comparisonFailed`)})))}finally{re.current.delete(s),l.getState().removePendingComparison(s)}})()}await ve({sessionId:e,assistantMessageId:T,signal:n.signal,onEvent:t=>{t.type===`chunk`?m.dispatchMessage(`assistant_chunk`,t):t.type===`done`?m.dispatchMessage(`assistant_complete`,t):typeof t.type==`string`&&(t.type.startsWith(`chat.tool`)||t.type.startsWith(`chat.approval`))?m.dispatchMessage(`tool_event`,t):t.type===`error`&&m.dispatchMessage(`error`,{...t,sessionId:e})}}),I.current?.assistantMessageId===T&&(I.current=null);return}m.isConnected||await m.connect();let k=b?_?.messages?.filter(e=>e.role!==`system`&&e.id!==T).map(e=>({role:e.role,content:e.content,thinking:e.thinking,images:e.images,providerMetadata:e.providerMetadata})):void 0;m.send({type:`chat_stream`,data:{sessionId:e,content:r.trim(),images:i,format:o,options:_?.settings?.generationOptions??{},assistantMessageId:T,isPrivate:b,...s===!0?{webSearch:!0}:{},...b?{model:_?.model,providerType:_?.providerType,providerId:_?.providerId,messageHistory:k}:{}}})}catch(n){let r=h;if(r&&await fe({sessionId:e,assistantMessageId:r,cancelledMessageIds:P.current,settle:t=>q(e,r,t),onError:e=>$.error(`Failed to resolve cancelled durable chat generation:`,e)})){I.current?.assistantMessageId===r&&(I.current=null);return}if(n instanceof DOMException&&n.name===`AbortError`)return;$.error(`Failed to send message:`,n),x(!1),W(),y(null),M(!1),N.current=null,R.current=``,u.error(t(`chat.toasts.sendFailed`))}},[e,D,O,M,W,J,q,K,t]),le=(0,v.useCallback)(()=>{let t=N.current;if(t){if(P.current.add(t),F.current!==null)window.clearTimeout(F.current),F.current=null,j(e,t),P.current.delete(t);else if(I.current?.assistantMessageId===t){let n=I.current,r=!n.jobId;de(n),Q(e,t).then(async i=>{await q(e,t,i,{retainForContinuation:r}),I.current===n&&(I.current=null)}).catch(e=>$.error(`Failed to cancel durable chat generation:`,e)),n.jobId&&ye(n.jobId).catch(e=>$.error(`Failed to cancel durable chat generation:`,e))}else m.send({type:`chat_cancel`,data:{sessionId:e,assistantMessageId:t}})||(j(e,t),P.current.delete(t))}B.current&&=(clearTimeout(B.current),void 0),x(!1),W(),y(null),M(!1),N.current=null,L.current=``,R.current=``},[M,W,j,e,q]),X=(0,v.useCallback)(async()=>{let n=l.getState(),r=n.currentSession;if(!r||!e)return;if(!c(n.models,{model:r.personaId?`persona:${r.personaId}`:r.model,providerType:r.providerType,providerId:r.providerId})){u.error(t(`chat.model.selectBeforeRegenerating`));return}let i=r.messages,o=-1,s=-1;for(let e=i.length-1;e>=0;e--)if(i[e].role===`assistant`){s=e;break}if(s>0){for(let e=s-1;e>=0;e--)if(i[e].role===`user`){o=e;break}}if(o===-1||s===-1){u.error(t(`chat.toasts.noMessageToRegenerate`));return}let d=i[o],p=i[s],h;try{M(!0),x(!0),W(),L.current=``,R.current=``,B.current&&clearTimeout(B.current),z.current=Date.now();let t=a();h=t,N.current=t,R.current=``,y(t),D(e,{role:`assistant`,content:``,id:t,parentId:p.parentId||p.id,branchIndex:p.siblingCount||1,isActive:!0});let n=r.isPrivate===!0;if(!n){let n=new AbortController,i={sessionId:e,assistantMessageId:t,abort:n};I.current=i;let a=await me(i,await ge({sessionId:e,message:d.content,images:d.images,userMessageId:d.id,assistantMessageId:t,options:r.settings?.generationOptions??{},webSearch:!1,regenerate:!0,originalMessageId:p.id,signal:n.signal}));if(a!==`stream`){await q(e,t,{completed:a===`completed`,pending:!1,state:a===`completed`?`succeeded`:`cancelled`}),I.current===i&&(I.current=null);return}await ve({sessionId:e,assistantMessageId:t,signal:n.signal,onEvent:t=>{t.type===`chunk`?m.dispatchMessage(`assistant_chunk`,t):t.type===`done`?m.dispatchMessage(`assistant_complete`,t):t.type===`error`&&m.dispatchMessage(`error`,{...t,sessionId:e})}}),I.current?.assistantMessageId===t&&(I.current=null);return}m.isConnected||await m.connect();let o=n?i.filter(e=>e.role!==`system`).map(e=>({role:e.role,content:e.content,thinking:e.thinking,images:e.images,providerMetadata:e.providerMetadata})):void 0;m.send({type:`chat_stream`,data:{sessionId:e,content:d.content,images:d.images,options:r.settings?.generationOptions??{},assistantMessageId:t,regenerate:!0,originalMessageId:p.id,isPrivate:n,...n?{model:r.model,providerType:r.providerType,providerId:r.providerId,messageHistory:o}:{}}})}catch(n){let r=h;if(r&&await fe({sessionId:e,assistantMessageId:r,cancelledMessageIds:P.current,settle:t=>q(e,r,t),onError:e=>$.error(`Failed to resolve cancelled durable chat regeneration:`,e)})){I.current?.assistantMessageId===r&&(I.current=null);return}$.error(`Failed to regenerate message:`,n),r&&j(e,r);try{let t=Se(e),n=await f.getSession(e);n.success&&n.data&&G(n.data,t)}catch(e){$.error(`Failed to reload session after regenerate:`,e)}x(!1),W(),y(null),M(!1),N.current=null,R.current=``,u.error(t(`chat.toasts.regenerateFailed`))}},[e,M,W,D,j,G,q,t]),Z=(0,v.useCallback)(async n=>{let r=l.getState().currentSession;if(!r||!e)return;let i=r.messages.find(e=>e.id===n);if(!i){u.error(t(`chat.toasts.messageNotFound`));return}if(i.isActive!==!1)return;let a=i.parentId||i.id,o=i.branchIndex||0;try{let i=await f.switchMessageBranch(e,n,o);if(i.success&&i.data){let i=r.messages.map(e=>e.id===a||e.parentId===a?{...e,isActive:e.id===n}:e),s={...r,messages:i,updatedAt:Date.now()};l.setState(t=>({sessions:t.sessions.map(t=>t.id===e?s:t),currentSession:s})),u.success(t(`chat.toasts.branchSwitched`,{number:o+1}))}else u.error(i.error||t(`chat.toasts.branchSelectFailed`))}catch(e){$.error(`Failed to select branch:`,e),u.error(t(`chat.toasts.branchSelectFailed`))}},[e,t]),_e=(0,v.useCallback)(async(n,r)=>{if(!e||!r.trim())return;let i=l.getState(),a=i.currentSession;if(!a||a.id!==e)return;let o=a.messages.findIndex(e=>e.id===n);if(o===-1||a.messages[o].role!==`user`)return;let s=a.messages[o];try{if(!a.isPrivate){let t=await f.truncateMessagesFrom(e,n);if(!t.success)throw Error(t.error||`Failed to truncate session`)}i.truncateMessagesFrom(e,n),await Y(r,s.images)}catch(e){$.error(`Failed to edit message:`,e),u.error(t(`chat.toasts.editFailed`))}},[e,Y,t]),be=(0,v.useCallback)(async(e,n,r)=>{try{await p.decideApproval(e,n,r),E(t=>t&&t.approvalId===e?null:t)}catch(e){$.error(`Failed to record the tool decision:`,e),u.error(t(`chat.toasts.toolDecisionFailed`))}},[t]),Ce=(0,v.useCallback)(async()=>{if(!e)return;let t=l.getState().currentSession;if(!t||t.id!==e||t.isPrivate||h.getState().isGenerating)return;let n=t.settings?.promptQueue;if(n&&n.length!==0)try{let t=await f.claimQueuedPrompt(e,n[0].id);if(!t.success||!t.data)return;ue(e,t.data.queue),await Y(t.data.entry.content)}catch(e){$.error(`Prompt queue drain failed:`,e)}},[e,Y]);return(0,v.useEffect)(()=>{ne.current=Ce},[Ce]),(0,v.useEffect)(()=>{if(!e)return;let t=window.setTimeout(()=>{ne.current?.()},400);return()=>window.clearTimeout(t)},[e]),{sendMessage:Y,stopGeneration:le,cancelComparison:(0,v.useCallback)(async t=>{if(e){re.current.get(t)?.abort();try{await Q(e,t)}catch(e){$.error(`Failed to cancel the comparison generation:`,e)}finally{l.getState().removePendingComparison(t)}}},[e]),regenerateLastMessage:X,editAndResendMessage:_e,selectBranch:Z,isStreaming:b,streamingMessage:r,streamingThinking:d,streamingMessageId:_,toolActivities:ee,activeToolCalls:C,pendingToolApproval:T,decideToolApproval:be}};export{Y as a,le as i,Ce as n,oe as o,ue as r,xe as t};
|
|
10
|
+
`);if(e||o)break}}finally{await n.cancel().catch(()=>void 0),n.releaseLock()}return{cursor:a,terminal:o}},ve=async e=>{let t=0,n=0;for(;!e.signal.aborted;){let r=new URL(`${d}/chat/sessions/${encodeURIComponent(e.sessionId)}/events`,window.location.origin);r.searchParams.set(`after`,String(t)),r.searchParams.set(`generation`,e.assistantMessageId);try{let i=await fetch(r,{headers:{Accept:`text/event-stream`,...Z()},credentials:`same-origin`,cache:`no-store`,signal:e.signal});if(!i.ok)throw await X(i);if((await _e(i,(n,r)=>{e.onEvent(r),t=n})).terminal)return;n=0}catch(t){if(e.signal.aborted||(n+=1,n>8))throw t}await new Promise((t,r)=>{let i=window.setTimeout(()=>{e.signal.removeEventListener(`abort`,a),t()},Math.min(5e3,n*500+250)),a=()=>{window.clearTimeout(i),e.signal.removeEventListener(`abort`,a),r(e.signal.reason??Error(`Chat stream cancelled`))};e.signal.addEventListener(`abort`,a,{once:!0})})}},ye=async e=>{let t=await fetch(`${d}/jobs/${encodeURIComponent(e)}/cancel`,{method:`POST`,headers:Z(),credentials:`same-origin`});if(!t.ok)throw await X(t)},Q=async(e,t)=>{let n=await fetch(`${d}/chat/sessions/${encodeURIComponent(e)}/generations/${encodeURIComponent(t)}/cancel`,{method:`POST`,headers:Z(),credentials:`same-origin`});if(!n.ok)throw await X(n);let r=(await n.json()).data;if(!r)throw Error(`Chat cancellation response did not include a decision.`);let i=typeof r.jobId==`string`?r.jobId:void 0;if(r.completed!==!0&&r.pending!==!0&&!i)throw Error(`Chat cancellation response did not include a decision.`);return{completed:r.completed===!0,pending:r.pending===!0,...i?{jobId:i}:{},...typeof r.state==`string`?{state:r.state}:{}}},$=r(`use-chat`),be=new Set([`New Chat`,`New Demo Session`]),xe=e=>!e||be.has(e),Se=e=>{let t=a.getState();return t.currentSession?.id===e?t.currentSession.title:t.sessions.find(t=>t.id===e)?.title},Ce=e=>{let{t}=o(),[r,c]=(0,v.useState)(``),[d,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(!1),[ee,S]=(0,v.useState)([]),[C,w]=(0,v.useState)([]),[T,E]=(0,v.useState)(null),{addMessage:D,updateMessage:O,updateMessageWithStatistics:k,applySessionTitle:te,setGeneratingTitleForSession:A,removeMessage:j}=a(),{setIsGenerating:M}=h(),ne=(0,v.useRef)(null),re=(0,v.useRef)(new Map),N=(0,v.useRef)(null),P=(0,v.useRef)(new Set),F=(0,v.useRef)(null),I=(0,v.useRef)(null),L=(0,v.useRef)(``),R=(0,v.useRef)(``),z=(0,v.useRef)(0),B=(0,v.useRef)(void 0),V=(0,v.useRef)(null),ie=(0,v.useRef)(``),H=(0,v.useRef)(``),U=(0,v.useCallback)(()=>{V.current!==null&&typeof window<`u`&&window.cancelAnimationFrame(V.current),V.current=null},[]),ae=(0,v.useCallback)((e,t=!1,n=``)=>{if(ie.current=e,H.current=n,t||typeof window>`u`){U(),c(e),g(n);return}V.current===null&&(V.current=window.requestAnimationFrame(()=>{V.current=null,c(ie.current),g(H.current)}))},[U]),W=(0,v.useCallback)(()=>{U(),ie.current=``,H.current=``,c(``),g(``)},[U]),G=(0,v.useCallback)((e,t)=>{a.setState(n=>{let r=n.currentSession?.id===e.id?n.currentSession:n.sessions.find(t=>t.id===e.id),i=r&&t!==void 0&&r.title!==t?{...e,title:r.title,updatedAt:Math.max(r.updatedAt,e.updatedAt)}:e;return{sessions:n.sessions.some(t=>t.id===e.id)?n.sessions.map(t=>t.id===e.id?i:t):[i,...n.sessions],currentSession:n.currentSession?.id===e.id?i:n.currentSession}})},[]),K=(0,v.useCallback)(async(e,t)=>{let n=Se(e);await he({sessionId:e,assistantMessageId:t,loadSession:async e=>{let t=await f.getSession(e);if(!t.success||!t.data)throw Error(t.error||`Completed chat session could not be reloaded.`);return t.data},applySession:e=>G(e,n)})},[G]),q=(0,v.useCallback)(async(e,t,n,r={})=>{n.completed?await K(e,t):j(e,t),pe({assistantMessageId:t,cancelledMessageIds:P.current,decision:n,retainForContinuation:r.retainForContinuation})},[K,j]),J=(0,v.useCallback)(async(e,n)=>{let r=h.getState().preferences.titleSettings;if(n&&r?.autoTitle&&r?.taskModel){$.debug(`Triggering auto-title generation...`),A(e);try{let i=await f.generateTitle(e,r.taskModel,n,r.taskProviderType,r.taskProviderId);if($.debug(`Title generation response:`,i),!i.success||!i.data?.title)throw Error(i.error||`Title generation returned no title`);te(e,i.data.title,i.data.updatedAt),i.data.source===`fallback`?u.error(t(`chat.toasts.titlePreviewFallback`)):u.success(t(`chat.toasts.titleGenerated`))}catch(e){$.error(`Failed to generate title:`,e),u.error(t(`chat.toasts.titleGenerationFailed`))}finally{a.getState().generatingTitleForSession===e&&A(null)}}},[te,A,t]);(0,v.useEffect)(()=>{let t=P.current;return()=>{let n=N.current,r=I.current;if(r){let e=!r.jobId;de(r,t),Q(r.sessionId,r.assistantMessageId).then(t=>q(r.sessionId,r.assistantMessageId,t,{retainForContinuation:e})).catch(e=>$.error(`Failed to cancel durable chat generation:`,e)),r.jobId&&ye(r.jobId).catch(e=>$.error(`Failed to cancel durable chat generation:`,e)),I.current=null}n&&e&&!r&&m.send({type:`chat_cancel`,data:{sessionId:e,assistantMessageId:n}}),m.offMessage(`user_message`),m.offMessage(`assistant_chunk`),m.offMessage(`assistant_complete`),m.offMessage(`assistant_cancelled`),m.offMessage(`tool_status`),m.offMessage(`error`)}},[e,q]),(0,v.useEffect)(()=>{if(!e){m.offMessage(`user_message`),m.offMessage(`assistant_chunk`),m.offMessage(`assistant_complete`),m.offMessage(`assistant_cancelled`),m.offMessage(`tool_status`),m.offMessage(`tool_event`),m.offMessage(`error`);return}return m.onMessage(`user_message`,()=>{}),m.onMessage(`assistant_chunk`,t=>{let n=t,r=n.messageId||N.current;r&&P.current.has(r)||r&&N.current&&r!==N.current||r&&(typeof n.total==`string`?L.current=n.total:typeof n.content==`string`&&(L.current+=n.content),typeof n.thinkingTotal==`string`?R.current=n.thinkingTotal:typeof n.thinking==`string`&&(R.current+=n.thinking),se(r,L.current,R.current),ae(L.current,n.done,R.current),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>{O(e,r,L.current),z.current=Date.now()},n.done?0:200))}),m.onMessage(`tool_status`,e=>{let t=e;S(e=>e.find(e=>e.toolCallId===t.toolCallId)?e.map(e=>e.toolCallId===t.toolCallId?{...e,phase:t.phase}:e):[...e,{toolCallId:t.toolCallId,name:t.name,phase:t.phase,startedAt:Date.now()}])}),m.onMessage(`tool_event`,e=>{let t=e;if(t.type&&t.messageId&&!(N.current&&t.messageId!==N.current)){if(t.type===`chat.tool-call.v1`&&t.toolCall){let e=t.toolCall;w(t=>t.find(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[...t,e]);return}if(t.type===`chat.tool-result.v1`&&t.toolCallId){w(e=>e.map(e=>e.id===t.toolCallId?{...e,status:t.status??e.status,resultPreview:t.preview,isError:t.isError===!0,finishedAt:Date.now()}:e)),E(e=>e&&e.toolCall.id===t.toolCallId?null:e);return}if(t.type===`chat.approval.v1`&&t.approvalId&&t.toolCall){let e=t.toolCall;w(t=>t.find(t=>t.id===e.id)?t.map(t=>t.id===e.id?e:t):[...t,e]),E({approvalId:t.approvalId,messageId:t.messageId,toolCall:e,expiresAt:t.expiresAt??Date.now()+12e4})}}}),m.onMessage(`assistant_complete`,t=>{let n=t;$.debug(`Hook: Received assistant_complete for session:`,e,`messageId:`,n.messageId,`with statistics:`,!!n.statistics);let r=n.messageId||N.current,i=!r||r===N.current;if(r&&P.current.delete(r),!i){if(n.truncated&&r){K(e,r);return}r&&k(e,r,n.content,n.statistics,n.providerMetadata,n.thinking);return}if(x(!1),W(),M(!1),S([]),w([]),E(null),n&&r){let t=L.current||n.content,i=R.current||n.thinking,a=ce(r),o=n.statistics?.thinking_duration_ms===void 0&&a!==void 0?{...n.statistics,thinking_duration_ms:a}:n.statistics;k(e,r,t,o,n.providerMetadata,i);let{preferences:s,openArtifactPanel:c}=h.getState();if(s.autoOpenArtifactPanel!==!1){let{artifacts:e}=oe(l(t).content);e.length>0&&c(e[e.length-1])}}N.current=null,L.current=``,R.current=``,window.setTimeout(()=>{ne.current?.()},0),B.current&&clearTimeout(B.current),z.current=0}),m.onMessage(`assistant_cancelled`,t=>{let n=t,r=n.assistantMessageId;r&&n.sessionId===e&&P.current.has(r)&&(P.current.delete(r),j(e,r),N.current===r&&(x(!1),W(),y(null),M(!1),S([]),w([]),E(null),N.current=null,L.current=``,R.current=``))}),m.onMessage(`error`,e=>{let n=e;if(x(!1),W(),M(!1),w([]),E(null),N.current=null,R.current=``,n.code===`SESSION_NOT_FOUND`){$.warn(`Session not found, redirecting to create new session...`),u.error(t(`chat.toasts.sessionNotFoundRedirect`)),window.location.href=`/`;return}u.error(n.error)}),x(!1),W(),N.current=null,R.current=``,()=>{B.current&&clearTimeout(B.current),U()}},[e,O,k,M,ae,W,U,j,K,t]);let Y=(0,v.useCallback)(async(r,o,c,l,d,f,p)=>{if(!e||!r.trim()&&(!o||o.length===0))return;let h;try{let g=a.getState(),_=g.currentSession,v={model:_?.personaId?`persona:${_.personaId}`:_?.model||``,providerType:_?.providerType,providerId:_?.providerId};if(!i(g.models,v)){u.error(t(`chat.model.selectBeforeSending`));return}M(!0),x(!0),W(),w([]),E(null),L.current=``,R.current=``,B.current&&clearTimeout(B.current),z.current=Date.now();let b=_?.isPrivate===!0,ee=_?.messages?.some(e=>e.role===`user`),S=!b&&!ee&&xe(_?.title),C=s();D(e,{id:C,role:`user`,content:r.trim(),images:o});let T=s();if(h=T,N.current=T,R.current=``,y(T),D(e,{role:`assistant`,content:``,id:T}),S&&J(e,r.trim()),n()){let t=`Demo response for: ${r.trim()}`;F.current=window.setTimeout(()=>{F.current=null,!P.current.has(T)&&(O(e,T,t),x(!1),W(),y(null),M(!1),N.current=null,L.current=``,R.current=``)},500);return}if(!b){let n=new AbortController,i={sessionId:e,assistantMessageId:T,abort:n};I.current=i;let h=await me(i,await ge({sessionId:e,message:r.trim(),images:o,userMessageId:C,assistantMessageId:T,options:{..._?.settings?.generationOptions??{},...c===void 0?{}:{format:c}},webSearch:l===!0,tools:d===!0,...d===!0&&f?{toolSelection:f}:{},signal:n.signal}));if(h!==`stream`){await q(e,T,{completed:h===`completed`,pending:!1,state:h===`completed`?`succeeded`:`cancelled`}),I.current===i&&(I.current=null);return}for(let n of p??[]){let i=s(),l=new AbortController;re.current.set(i,l),a.getState().addPendingComparison({sessionId:e,assistantMessageId:i,model:n.model}),(async()=>{try{await ge({sessionId:e,message:r.trim(),images:o,userMessageId:C,assistantMessageId:i,options:{..._?.settings?.generationOptions??{},...c===void 0?{}:{format:c}},webSearch:!1,compare:!0,modelOverride:n,signal:l.signal}),await ve({sessionId:e,assistantMessageId:i,signal:l.signal,onEvent:r=>{r.type===`done`?K(e,i):r.type===`error`&&u.error(t(`chat.toasts.comparisonError`,{model:n.model,error:String(r.error??t(`chat.toasts.generationFailed`))}))}})}catch(e){l.signal.aborted||($.error(`Comparison generation failed:`,e),u.error(t(`chat.toasts.comparisonError`,{model:n.model,error:t(`chat.toasts.comparisonFailed`)})))}finally{re.current.delete(i),a.getState().removePendingComparison(i)}})()}await ve({sessionId:e,assistantMessageId:T,signal:n.signal,onEvent:t=>{t.type===`chunk`?m.dispatchMessage(`assistant_chunk`,t):t.type===`done`?m.dispatchMessage(`assistant_complete`,t):typeof t.type==`string`&&(t.type.startsWith(`chat.tool`)||t.type.startsWith(`chat.approval`))?m.dispatchMessage(`tool_event`,t):t.type===`error`&&m.dispatchMessage(`error`,{...t,sessionId:e})}}),I.current?.assistantMessageId===T&&(I.current=null);return}m.isConnected||await m.connect();let k=b?_?.messages?.filter(e=>e.role!==`system`&&e.id!==T).map(e=>({role:e.role,content:e.content,thinking:e.thinking,images:e.images,providerMetadata:e.providerMetadata})):void 0;m.send({type:`chat_stream`,data:{sessionId:e,content:r.trim(),images:o,format:c,options:_?.settings?.generationOptions??{},assistantMessageId:T,isPrivate:b,...l===!0?{webSearch:!0}:{},...b?{model:_?.model,providerType:_?.providerType,providerId:_?.providerId,messageHistory:k}:{}}})}catch(n){let r=h;if(r&&await fe({sessionId:e,assistantMessageId:r,cancelledMessageIds:P.current,settle:t=>q(e,r,t),onError:e=>$.error(`Failed to resolve cancelled durable chat generation:`,e)})){I.current?.assistantMessageId===r&&(I.current=null);return}if(n instanceof DOMException&&n.name===`AbortError`)return;$.error(`Failed to send message:`,n),x(!1),W(),y(null),M(!1),N.current=null,R.current=``,u.error(t(`chat.toasts.sendFailed`))}},[e,D,O,M,W,J,q,K,t]),le=(0,v.useCallback)(()=>{let t=N.current;if(t){if(P.current.add(t),F.current!==null)window.clearTimeout(F.current),F.current=null,j(e,t),P.current.delete(t);else if(I.current?.assistantMessageId===t){let n=I.current,r=!n.jobId;de(n),Q(e,t).then(async i=>{await q(e,t,i,{retainForContinuation:r}),I.current===n&&(I.current=null)}).catch(e=>$.error(`Failed to cancel durable chat generation:`,e)),n.jobId&&ye(n.jobId).catch(e=>$.error(`Failed to cancel durable chat generation:`,e))}else m.send({type:`chat_cancel`,data:{sessionId:e,assistantMessageId:t}})||(j(e,t),P.current.delete(t))}B.current&&=(clearTimeout(B.current),void 0),x(!1),W(),y(null),M(!1),N.current=null,L.current=``,R.current=``},[M,W,j,e,q]),X=(0,v.useCallback)(async()=>{let n=a.getState(),r=n.currentSession;if(!r||!e)return;if(!i(n.models,{model:r.personaId?`persona:${r.personaId}`:r.model,providerType:r.providerType,providerId:r.providerId})){u.error(t(`chat.model.selectBeforeRegenerating`));return}let o=r.messages,c=-1,l=-1;for(let e=o.length-1;e>=0;e--)if(o[e].role===`assistant`){l=e;break}if(l>0){for(let e=l-1;e>=0;e--)if(o[e].role===`user`){c=e;break}}if(c===-1||l===-1){u.error(t(`chat.toasts.noMessageToRegenerate`));return}let d=o[c],p=o[l],h;try{M(!0),x(!0),W(),L.current=``,R.current=``,B.current&&clearTimeout(B.current),z.current=Date.now();let t=s();h=t,N.current=t,R.current=``,y(t),D(e,{role:`assistant`,content:``,id:t,parentId:p.parentId||p.id,branchIndex:p.siblingCount||1,isActive:!0});let n=r.isPrivate===!0;if(!n){let n=new AbortController,i={sessionId:e,assistantMessageId:t,abort:n};I.current=i;let a=await me(i,await ge({sessionId:e,message:d.content,images:d.images,userMessageId:d.id,assistantMessageId:t,options:r.settings?.generationOptions??{},webSearch:!1,regenerate:!0,originalMessageId:p.id,signal:n.signal}));if(a!==`stream`){await q(e,t,{completed:a===`completed`,pending:!1,state:a===`completed`?`succeeded`:`cancelled`}),I.current===i&&(I.current=null);return}await ve({sessionId:e,assistantMessageId:t,signal:n.signal,onEvent:t=>{t.type===`chunk`?m.dispatchMessage(`assistant_chunk`,t):t.type===`done`?m.dispatchMessage(`assistant_complete`,t):t.type===`error`&&m.dispatchMessage(`error`,{...t,sessionId:e})}}),I.current?.assistantMessageId===t&&(I.current=null);return}m.isConnected||await m.connect();let i=n?o.filter(e=>e.role!==`system`).map(e=>({role:e.role,content:e.content,thinking:e.thinking,images:e.images,providerMetadata:e.providerMetadata})):void 0;m.send({type:`chat_stream`,data:{sessionId:e,content:d.content,images:d.images,options:r.settings?.generationOptions??{},assistantMessageId:t,regenerate:!0,originalMessageId:p.id,isPrivate:n,...n?{model:r.model,providerType:r.providerType,providerId:r.providerId,messageHistory:i}:{}}})}catch(n){let r=h;if(r&&await fe({sessionId:e,assistantMessageId:r,cancelledMessageIds:P.current,settle:t=>q(e,r,t),onError:e=>$.error(`Failed to resolve cancelled durable chat regeneration:`,e)})){I.current?.assistantMessageId===r&&(I.current=null);return}$.error(`Failed to regenerate message:`,n),r&&j(e,r);try{let t=Se(e),n=await f.getSession(e);n.success&&n.data&&G(n.data,t)}catch(e){$.error(`Failed to reload session after regenerate:`,e)}x(!1),W(),y(null),M(!1),N.current=null,R.current=``,u.error(t(`chat.toasts.regenerateFailed`))}},[e,M,W,D,j,G,q,t]),Z=(0,v.useCallback)(async n=>{let r=a.getState().currentSession;if(!r||!e)return;let i=r.messages.find(e=>e.id===n);if(!i){u.error(t(`chat.toasts.messageNotFound`));return}if(i.isActive!==!1)return;let o=i.parentId||i.id,s=i.branchIndex||0;try{let i=await f.switchMessageBranch(e,n,s);if(i.success&&i.data){let i=r.messages.map(e=>e.id===o||e.parentId===o?{...e,isActive:e.id===n}:e),c={...r,messages:i,updatedAt:Date.now()};a.setState(t=>({sessions:t.sessions.map(t=>t.id===e?c:t),currentSession:c})),u.success(t(`chat.toasts.branchSwitched`,{number:s+1}))}else u.error(i.error||t(`chat.toasts.branchSelectFailed`))}catch(e){$.error(`Failed to select branch:`,e),u.error(t(`chat.toasts.branchSelectFailed`))}},[e,t]),_e=(0,v.useCallback)(async(n,r)=>{if(!e||!r.trim())return;let i=a.getState(),o=i.currentSession;if(!o||o.id!==e)return;let s=o.messages.findIndex(e=>e.id===n);if(s===-1||o.messages[s].role!==`user`)return;let c=o.messages[s];try{if(!o.isPrivate){let t=await f.truncateMessagesFrom(e,n);if(!t.success)throw Error(t.error||`Failed to truncate session`)}i.truncateMessagesFrom(e,n),await Y(r,c.images)}catch(e){$.error(`Failed to edit message:`,e),u.error(t(`chat.toasts.editFailed`))}},[e,Y,t]),be=(0,v.useCallback)(async(e,n,r)=>{try{await p.decideApproval(e,n,r),E(t=>t&&t.approvalId===e?null:t)}catch(e){$.error(`Failed to record the tool decision:`,e),u.error(t(`chat.toasts.toolDecisionFailed`))}},[t]),Ce=(0,v.useCallback)(async()=>{if(!e)return;let t=a.getState().currentSession;if(!t||t.id!==e||t.isPrivate||h.getState().isGenerating)return;let n=t.settings?.promptQueue;if(n&&n.length!==0)try{let t=await f.claimQueuedPrompt(e,n[0].id);if(!t.success||!t.data)return;ue(e,t.data.queue),await Y(t.data.entry.content)}catch(e){$.error(`Prompt queue drain failed:`,e)}},[e,Y]);return(0,v.useEffect)(()=>{ne.current=Ce},[Ce]),(0,v.useEffect)(()=>{if(!e)return;let t=window.setTimeout(()=>{ne.current?.()},400);return()=>window.clearTimeout(t)},[e]),{sendMessage:Y,stopGeneration:le,cancelComparison:(0,v.useCallback)(async t=>{if(e){re.current.get(t)?.abort();try{await Q(e,t)}catch(e){$.error(`Failed to cancel the comparison generation:`,e)}finally{a.getState().removePendingComparison(t)}}},[e]),regenerateLastMessage:X,editAndResendMessage:_e,selectBranch:Z,isStreaming:b,streamingMessage:r,streamingThinking:d,streamingMessageId:_,toolActivities:ee,activeToolCalls:C,pendingToolApproval:T,decideToolApproval:be}};export{Y as a,le as i,Ce as n,oe as o,ue as r,xe as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-vendor-wiHys0m2.js";var n=e(t(),1),r=`button, [href], input, select, textarea, [tabindex], [contenteditable="true"]`;function i(e,{onClose:t,enabled:i=!0,initialFocusRef:a}){let[o]=(0,n.useState)(()=>document.activeElement),s=(0,n.useRef)(null),c=(0,n.useRef)(t);(0,n.useEffect)(()=>{c.current=t},[t]),(0,n.useEffect)(()=>{let t=e.current;if(!i||!t)return;let n=document.activeElement,l=t.contains(n)?o:n,u=e=>e.getClientRects().length>0&&getComputedStyle(e).visibility!==`hidden`&&!e.closest(`[inert], [aria-hidden="true"]`),d=()=>{let e=Array.from(t.querySelectorAll(r)).filter(e=>e.tabIndex>=0&&!e.matches(`:disabled`)&&u(e));return e.filter(t=>{if(!(t instanceof HTMLInputElement)||t.type!==`radio`||!t.name)return!0;let n=e.filter(e=>e instanceof HTMLInputElement&&e.type===`radio`&&e.name===t.name&&e.form===t.form);return t===(n.find(e=>e.checked)??n[0])})},f=()=>{let e=Array.from(document.querySelectorAll(`[role="dialog"][aria-modal="true"]`)).filter(u);return e[e.length-1]===t},p=a?.current;if(p&&t.contains(p)&&u(p)&&!p.matches(`:disabled`))s.current=p,p.focus({preventScroll:!0});else if(n instanceof HTMLElement&&t.contains(n))s.current=n;else{let e=s.current;(e&&t.contains(e)&&u(e)&&!e.matches(`:disabled`)?e:d()[0]??t).focus({preventScroll:!0})}let m=e=>{if(!(e.defaultPrevented||!f()||e.isComposing)){if(e.key===`Escape`&&c.current)e.preventDefault(),e.stopPropagation(),c.current();else if(e.key===`Tab`){let n=d(),r=n[0];if(e.preventDefault(),!r)t.focus();else{let t=n.indexOf(document.activeElement);n[e.shiftKey?t<=0?n.length-1:t-1:(t+1)%n.length]?.focus()}}}},h=e=>{if(e.defaultPrevented||e.button!==0||!f())return;let t=e.target instanceof Element?e.target.closest(`button`):null;t&&d().includes(t)&&(e.preventDefault(),t.focus({preventScroll:!0}))};return document.addEventListener(`keydown`,m),document.addEventListener(`mousedown`,h),()=>{document.removeEventListener(`keydown`,m),document.removeEventListener(`mousedown`,h),l instanceof HTMLElement&&l.isConnected&&l.focus({preventScroll:!0})}},[e,i,o,a])}export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,r as n,t as r}from"./react-vendor-wiHys0m2.js";import{t as i}from"./useQuery-hWmQjdLu.js";import{d as a}from"./router-vendor-HZm4FR0A.js";import{t as o}from"./logger-BR4forr_.js";import{h as s,s as c,t as l}from"./chatStore-j8bGpkeT.js";import{t as u}from"./useTranslation-UHEMTEHd.js";import{t as d}from"./utils-DaXuqmQm.js";import{An as f,G as p,It as m,Kt as h,Ln as g,M as _,On as v,Qn as y,S as b,Tn as x,Tr as S,Yt as C,Z as w,Zn as ee,Zt as te,c as T,cr as E,et as D,ir as O,n as k,t as A}from"./ui-vendor-_fvLnmDx.js";import{S as ne,g as re,t as ie,y as j}from"./api-CnJYEbRz.js";import{t as ae}from"./authStore-DwaPsICv.js";var M=e(t(),1),oe=n(),N=r();function P(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString()}function se({hfTask:e,hfSort:t,canInstallModels:n,loadingHf:r,hfModels:i,expandedHfModel:a,hfGgufFiles:o,loadingGguf:s,pullingModel:c,pullProgress:l,setHfTask:f,setHfSort:p,onToggleHfModel:h,onPullHfGguf:g,onCancelPull:_,onRefreshHfModels:y}){let{t:b}=u();return(0,N.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[(0,N.jsx)(`div`,{className:`px-3 py-2 border-b border-gray-200 dark:border-dark-300 flex-shrink-0 space-y-2`,children:(0,N.jsxs)(`div`,{className:`flex gap-2`,children:[(0,N.jsxs)(`select`,{value:e,onChange:e=>f(e.target.value),onMouseDown:e=>e.stopPropagation(),className:`flex-1 px-2 py-1.5 rounded-lg border text-xs bg-gray-50 dark:bg-dark-50 border-gray-200 dark:border-dark-300 text-gray-900 dark:text-gray-100`,children:[(0,N.jsx)(`option`,{value:`text-generation`,children:b(`modelManager.huggingface.taskTextGeneration`)}),(0,N.jsx)(`option`,{value:`text-to-speech`,children:b(`modelManager.huggingface.taskTextToSpeech`)}),(0,N.jsx)(`option`,{value:`text-to-image`,children:b(`modelManager.huggingface.taskTextToImage`)}),(0,N.jsx)(`option`,{value:`automatic-speech-recognition`,children:b(`modelManager.huggingface.taskSpeechRecognition`)})]}),(0,N.jsxs)(`select`,{value:t,onChange:e=>p(e.target.value),onMouseDown:e=>e.stopPropagation(),className:`px-2 py-1.5 rounded-lg border text-xs bg-gray-50 dark:bg-dark-50 border-gray-200 dark:border-dark-300 text-gray-900 dark:text-gray-100`,children:[(0,N.jsx)(`option`,{value:`downloads`,children:b(`modelManager.huggingface.sortDownloads`)}),(0,N.jsx)(`option`,{value:`likes`,children:b(`modelManager.huggingface.sortLikes`)}),(0,N.jsx)(`option`,{value:`lastModified`,children:b(`modelManager.huggingface.sortRecent`)})]})]})}),(0,N.jsxs)(`div`,{className:`scroll-region min-h-0 flex-1 scrollbar-thin`,children:[!n&&(0,N.jsx)(`div`,{className:`mx-3 mb-1 mt-3 rounded-lg border border-amber-200 bg-amber-500/10 px-3 py-2 text-xs text-ink dark:border-amber-800 dark:bg-amber-900/20`,children:b(`modelSelector.pullRestricted`)}),r?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,N.jsx)(m,{className:`h-6 w-6 animate-spin text-gray-400`})}):i.length===0?(0,N.jsxs)(`div`,{className:`px-4 py-8 text-center text-gray-500 dark:text-gray-400`,children:[(0,N.jsx)(A,{className:`h-8 w-8 mx-auto mb-2 text-gray-300 dark:text-gray-600`}),(0,N.jsx)(`p`,{className:`text-sm`,children:b(`modelManager.huggingface.noModelsFound`)})]}):(0,N.jsx)(`div`,{className:`divide-y divide-gray-100 dark:divide-dark-200`,children:i.map(e=>{let t=a===e.id,r=o[e.id]||[],i=s===e.id;return(0,N.jsxs)(`div`,{className:`bg-white dark:bg-dark-100`,children:[(0,N.jsx)(`div`,{className:`px-3 py-3 cursor-pointer hover:bg-gray-50 dark:hover:bg-dark-200`,onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),h(e.id)},children:(0,N.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,N.jsx)(`div`,{className:`flex-shrink-0 rounded-lg bg-yellow-500/20 p-2 dark:bg-yellow-900/30`,children:(0,N.jsx)(A,{className:`h-4 w-4 text-yellow-600 dark:text-yellow-400`})}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`h4`,{dir:`ltr`,className:`text-sm font-medium text-gray-900 dark:text-gray-100 truncate`,children:e.id}),e.gated&&(0,N.jsx)(`span`,{className:`rounded bg-yellow-500/20 px-1.5 py-0.5 text-xs text-ink dark:bg-yellow-900/30`,children:`Gated`})]}),(0,N.jsxs)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-0.5`,children:[`by `,e.author]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3 mt-1.5 text-xs text-gray-400 dark:text-gray-500`,children:[(0,N.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,N.jsx)(v,{className:`h-3 w-3`}),P(e.downloads)]}),(0,N.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,N.jsx)(C,{className:`h-3 w-3`}),P(e.likes)]}),e.pipeline_tag&&(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded bg-gray-100 dark:bg-dark-200`,children:e.pipeline_tag})]})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,N.jsx)(`a`,{href:`https://huggingface.co/${e.id}`,target:`_blank`,rel:`noopener noreferrer`,onMouseDown:e=>e.stopPropagation(),className:`p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,N.jsx)(x,{className:`h-4 w-4 text-gray-400`})}),(0,N.jsx)(ee,{className:d(`h-4 w-4 text-gray-400 transition-transform`,t&&`rotate-180`)})]})]})}),t&&(0,N.jsx)(`div`,{className:`px-3 pb-3 pt-1 border-t border-gray-100 dark:border-dark-200 bg-gray-50 dark:bg-dark-200`,children:i?(0,N.jsxs)(`div`,{className:`flex items-center justify-center py-4`,children:[(0,N.jsx)(m,{className:`h-4 w-4 animate-spin text-gray-400`}),(0,N.jsx)(`span`,{className:`ml-2 text-xs text-gray-500`,children:b(`modelManager.huggingface.checkingGguf`)})]}):r.length===0?(0,N.jsx)(`div`,{className:`py-4 text-center text-xs text-gray-500 dark:text-gray-400`,children:b(`modelManager.huggingface.noGgufAvailable`)}):(0,N.jsxs)(`div`,{className:`space-y-2`,children:[(0,N.jsx)(`div`,{className:`text-xs font-medium text-gray-600 dark:text-gray-300 mb-2`,children:b(`modelManager.huggingface.ggufFilesCount`,{count:r.length})}),r.map(e=>{let t=c===e.ollamaCommand;return(0,N.jsxs)(`div`,{className:`flex items-center gap-2 p-2 rounded-lg bg-white dark:bg-dark-100 border border-gray-200 dark:border-dark-300`,children:[(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsx)(`div`,{className:`text-xs font-medium text-gray-800 dark:text-gray-200 truncate`,children:e.filename}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mt-0.5 text-xs text-gray-500 dark:text-gray-400`,children:[(0,N.jsx)(`span`,{children:e.sizeFormatted}),e.quantization&&(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-400`,children:e.quantization})]})]}),t?(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`text-xs text-gray-500 w-12 text-right`,children:l?.percent===void 0?`...`:`${l.percent}%`}),(0,N.jsx)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),_()},className:`p-1.5 rounded-lg text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20`,children:(0,N.jsx)(k,{className:`h-4 w-4`})})]}):n?(0,N.jsxs)(`button`,{onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),g(e.ollamaCommand,e.filename)},disabled:!!c,className:d(`px-3 py-1.5 rounded-lg text-xs font-medium`,`bg-primary-100 dark:bg-primary-900/30`,`text-primary-700 dark:text-primary-400`,`hover:bg-primary-200 dark:hover:bg-primary-900/50`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:[(0,N.jsx)(v,{className:`h-3 w-3 inline mr-1`}),b(`models.pull`)]}):(0,N.jsx)(`span`,{className:`rounded bg-amber-500/20 px-2 py-1 text-[11px] font-medium text-ink dark:bg-amber-900/30`,children:b(`modelSelector.adminOnlyPull`)})]},e.filename)}),c?.startsWith(`hf.co/`)&&c.includes(e.id)&&l?.percent!==void 0&&(0,N.jsx)(`div`,{className:`w-full bg-gray-200 dark:bg-dark-300 rounded-full h-1.5 overflow-hidden mt-2`,children:(0,N.jsx)(`div`,{className:`h-1.5 rounded-full bg-primary-500 transition-all duration-300`,style:{width:`${l.percent}%`}})})]})})]},e.id)})})]}),(0,N.jsxs)(`div`,{className:`px-3 py-2 border-t border-gray-200 dark:border-dark-300 flex items-center justify-between flex-shrink-0`,children:[(0,N.jsxs)(`a`,{href:`https://huggingface.co/models`,target:`_blank`,rel:`noopener noreferrer`,onMouseDown:e=>e.stopPropagation(),className:`text-xs text-primary-600 dark:text-primary-400 hover:underline flex items-center gap-1`,children:[(0,N.jsx)(x,{className:`h-3 w-3`}),b(`modelManager.huggingface.browseAllLink`)]}),(0,N.jsx)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),y()},className:`p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,N.jsx)(w,{className:d(`h-3.5 w-3.5 text-gray-400`,r&&`animate-spin`)})})]})]})}function ce({filteredGroups:e,selectedModel:t,showImageGen:n,getModelValue:r,getModelIcon:i,getModelLabel:a,getModelSubLabel:o,onModelSelect:s,onOpenGallery:c}){let{t:l}=u();return(0,N.jsxs)(`div`,{className:`scroll-region min-h-0 flex-1 scrollbar-thin scrollbar-thumb-gray-300 dark:scrollbar-thumb-dark-400`,children:[e.length>0?e.map(e=>(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-dark-300 border-b border-gray-200 dark:border-dark-400 sticky top-0`,children:(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon,e.label,` (`,e.models.length,`)`]})}),e.models.map(e=>{let n=r(e);return(0,N.jsx)(`button`,{type:`button`,"data-testid":`model-selector-option`,"data-model-value":n,"aria-pressed":t===n,onClick:()=>s(n),className:d(`block w-full cursor-pointer border-b border-gray-100 px-3 py-3 text-start last:border-b-0 dark:border-dark-200`,`hover:bg-gray-50 dark:hover:bg-dark-200`,`bg-white dark:bg-dark-100 transition-colors`,`focus-visible:relative focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary-500/50`,t===n&&`bg-primary-50 dark:bg-primary-900/30`),children:(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[i(e),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsx)(`div`,{dir:e.isPersona?`auto`:`ltr`,className:`text-sm font-medium text-gray-900 dark:text-gray-100 truncate`,children:a(e)}),o(e)&&(0,N.jsx)(`div`,{dir:`auto`,className:`text-xs text-gray-500 dark:text-gray-400 truncate`,children:o(e)})]}),t===n&&(0,N.jsx)(y,{className:`h-4 w-4 text-primary-600 dark:text-primary-400 flex-shrink-0`})]})},n)})]},e.type)):(0,N.jsxs)(`div`,{className:`px-4 py-8 text-center text-gray-500 dark:text-gray-400`,children:[(0,N.jsx)(f,{className:`h-8 w-8 mx-auto mb-2 text-gray-300 dark:text-gray-600`}),(0,N.jsx)(`p`,{className:`text-sm`,children:l(`models.noModelsFound`)})]}),n&&(0,N.jsxs)(`div`,{className:`border-t border-gray-200 dark:border-dark-300`,children:[(0,N.jsx)(`div`,{className:`px-3 py-2 text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-dark-300`,children:(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(D,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`}),l(`modelSelector.actions`)]})}),(0,N.jsx)(`div`,{onMouseDown:e=>{e.preventDefault(),c()},className:`px-3 py-3 cursor-pointer hover:bg-blue-50 dark:hover:bg-blue-900/20 bg-white dark:bg-dark-100`,children:(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(h,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`}),(0,N.jsxs)(`div`,{className:`flex-1`,children:[(0,N.jsx)(`div`,{className:`text-sm font-medium text-gray-900 dark:text-gray-100`,children:l(`gallery.generate`)}),(0,N.jsx)(`div`,{className:`text-xs text-gray-500 dark:text-gray-400`,children:l(`gallery.generateDescription`)})]})]})})]})]})}function le({libraryCategories:e,libraryCategory:t,canInstallModels:n,loadingLibrary:r,filteredLibraryModels:i,pullingModel:a,pullProgress:o,setLibraryCategory:s,isModelInstalled:c,onModelSelect:l,onPullModel:f,onCancelPull:p,onRefreshLibrary:h}){let{t:_}=u();return(0,N.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:[(0,N.jsx)(`div`,{className:`px-3 py-2 border-b border-gray-200 dark:border-dark-300 flex-shrink-0`,children:(0,N.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map(e=>(0,N.jsx)(`button`,{onMouseDown:t=>{t.preventDefault(),t.stopPropagation(),s(e)},className:d(`px-2.5 py-1 rounded-full text-xs font-medium transition-colors`,t===e?`bg-primary-100 dark:bg-primary-900/30 text-primary-700 dark:text-primary-400`:`bg-gray-100 dark:bg-dark-200 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-dark-300`),children:e.charAt(0).toUpperCase()+e.slice(1)},e))})}),(0,N.jsxs)(`div`,{className:`scroll-region min-h-0 flex-1 scrollbar-thin`,children:[!n&&(0,N.jsx)(`div`,{className:`mx-3 mb-1 mt-3 rounded-lg border border-amber-200 bg-amber-500/10 px-3 py-2 text-xs text-ink dark:border-amber-800 dark:bg-amber-900/20`,children:_(`modelSelector.pullRestricted`)}),r?(0,N.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,N.jsx)(m,{className:`h-6 w-6 animate-spin text-gray-400`})}):i.length===0?(0,N.jsxs)(`div`,{className:`px-4 py-8 text-center text-gray-500 dark:text-gray-400`,children:[(0,N.jsx)(g,{className:`h-8 w-8 mx-auto mb-2 text-gray-300 dark:text-gray-600`}),(0,N.jsx)(`p`,{className:`text-sm`,children:_(`models.noModelsFound`)})]}):(0,N.jsx)(`div`,{className:`divide-y divide-gray-100 dark:divide-dark-200`,children:i.map(e=>{let t=c(e.name),r=a===e.name;return(0,N.jsxs)(`div`,{className:d(`px-3 py-3 bg-white dark:bg-dark-100`,t&&`bg-green-50/50 dark:bg-green-900/10`),children:[(0,N.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,N.jsx)(`div`,{className:`p-2 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex-shrink-0`,children:(0,N.jsx)(g,{className:`h-4 w-4 text-blue-600 dark:text-blue-400`})}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`h4`,{dir:`ltr`,className:`text-sm font-medium text-gray-900 dark:text-gray-100 truncate`,children:e.name}),t&&(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400`,children:_(`modelSelector.installed`)}),(e.category===`cloud`||e.tags?.includes(`cloud`))&&(0,N.jsxs)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400 flex items-center gap-1`,children:[(0,N.jsx)(g,{className:`h-3 w-3`}),`Cloud`]})]}),(0,N.jsx)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 line-clamp-1 mt-0.5`,children:e.description}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mt-1.5`,children:[e.sizes.slice(0,3).map(e=>(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-xs bg-gray-100 dark:bg-dark-200 text-gray-600 dark:text-gray-400`,children:e},e)),e.pulls&&(0,N.jsxs)(`span`,{className:`text-xs text-gray-400 dark:text-gray-500 flex items-center gap-1`,children:[(0,N.jsx)(v,{className:`h-3 w-3`}),e.pulls]})]})]}),(0,N.jsx)(`div`,{className:`flex-shrink-0`,children:r?(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`text-xs text-gray-500 w-12 text-right`,children:o?.percent===void 0?`...`:`${o.percent}%`}),(0,N.jsx)(`button`,{onClick:p,className:`p-1.5 rounded-lg text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20`,children:(0,N.jsx)(k,{className:`h-4 w-4`})})]}):t?(0,N.jsx)(`button`,{onClick:()=>l(e.name),className:`px-3 py-1.5 rounded-lg text-xs font-medium bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 hover:bg-green-200 dark:hover:bg-green-900/50`,children:_(`modelSelector.use`)}):n?(0,N.jsxs)(`button`,{onClick:()=>f(e.name),className:`px-3 py-1.5 rounded-lg text-xs font-medium bg-primary-100 dark:bg-primary-900/30 text-primary-700 dark:text-primary-400 hover:bg-primary-200 dark:hover:bg-primary-900/50`,children:[(0,N.jsx)(v,{className:`h-3 w-3 inline mr-1`}),_(`modelSelector.pull`)]}):(0,N.jsx)(`span`,{className:`rounded bg-amber-500/20 px-2 py-1 text-[11px] font-medium text-ink dark:bg-amber-900/30`,children:_(`modelSelector.adminOnlyPull`)})})]}),r&&o?.percent!==void 0&&(0,N.jsx)(`div`,{className:`mt-2 w-full bg-gray-200 dark:bg-dark-300 rounded-full h-1.5 overflow-hidden`,children:(0,N.jsx)(`div`,{className:`h-1.5 rounded-full bg-primary-500 transition-all duration-300`,style:{width:`${o.percent}%`}})})]},e.name)})})]}),(0,N.jsxs)(`div`,{className:`px-3 py-2 border-t border-gray-200 dark:border-dark-300 flex items-center justify-between flex-shrink-0`,children:[(0,N.jsxs)(`a`,{href:`https://ollama.com/library`,target:`_blank`,rel:`noopener noreferrer`,onMouseDown:e=>e.stopPropagation(),className:`text-xs text-primary-600 dark:text-primary-400 hover:underline flex items-center gap-1`,children:[(0,N.jsx)(x,{className:`h-3 w-3`}),_(`modelManager.huggingface.browseAllLink`)]}),(0,N.jsx)(`button`,{onMouseDown:e=>{e.preventDefault(),e.stopPropagation(),h()},className:`p-1.5 rounded-lg hover:bg-gray-100 dark:hover:bg-dark-200`,children:(0,N.jsx)(w,{className:d(`h-3.5 w-3.5 text-gray-400`,r&&`animate-spin`)})})]})]})}var ue=o(`components:model-selector`),F=({models:e,selectedModel:t,onModelChange:n,currentPersona:r,className:o,disabled:f=!1,compact:m=!1,showImageGen:h=!1,onModelsRefresh:v,getModelValue:y,getModelLabel:x,getModelTitle:C,triggerRef:w,triggerTestId:D,selectTestId:ie,ariaLabel:P})=>{let{t:F}=u(),[I,L]=(0,M.useState)(!1),[R,z]=(0,M.useState)(``),[B,V]=(0,M.useState)(`installed`),de=(0,M.useRef)(null),H=(0,M.useRef)(null),fe=(0,M.useRef)(null),pe=(0,M.useRef)(null),me=a(),{user:he,systemInfo:ge}=ae(),U=he?.role===`admin`||ge?.requiresAuth===!1,[W,_e]=(0,M.useState)(`all`),[ve,ye]=(0,M.useState)(``),[be,xe]=(0,M.useState)(`text-generation`),[Se,Ce]=(0,M.useState)(`downloads`),[we,Te]=(0,M.useState)(``),[Ee,De]=(0,M.useState)(null),[Oe,ke]=(0,M.useState)({}),[Ae,je]=(0,M.useState)(null),[G,K]=(0,M.useState)(null),[Me,q]=(0,M.useState)(null),[Ne,J]=(0,M.useState)(null),Pe=[`all`,`general`,`coding`,`reasoning`,`vision`,`embedding`,`cloud`],Fe=[{type:`legacy`,label:F(`modelSelector.providerNotRecorded`,`Provider not recorded`),icon:(0,N.jsx)(O,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}),models:e.filter(e=>e.isLegacySelection),color:`gray`},{type:`unavailable`,label:F(`modelSelector.unavailableSelections`,`Unavailable selections`),icon:(0,N.jsx)(k,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}),models:e.filter(e=>e.isUnavailable&&!e.isLegacySelection),color:`gray`},{type:`personas`,label:F(`modelSelector.personas`),icon:(0,N.jsx)(T,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}),models:e.filter(e=>e.isPersona&&!e.isUnavailable),color:`purple`},{type:`agents`,label:F(`modelSelector.agentModels`,`Agents`),icon:(0,N.jsx)(b,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}),models:e.filter(e=>e.isAgent&&!e.isUnavailable),color:`green`},{type:`ollama`,label:F(`modelSelector.ollamaModels`),icon:(0,N.jsx)(E,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}),models:e.filter(e=>s(e)&&!e.name.includes(`embed`)),color:`green`},{type:`plugins`,label:F(`modelSelector.pluginModels`),icon:(0,N.jsx)(A,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}),models:e.filter(e=>e.isPlugin&&!e.isUnavailable),color:`green`}].filter(e=>e.models.length>0).map(e=>({...e,models:e.models.filter(e=>e.name.toLowerCase().includes(R.toLowerCase())||e.personaName&&e.personaName.toLowerCase().includes(R.toLowerCase())||e.pluginName&&e.pluginName.toLowerCase().includes(R.toLowerCase()))})).filter(e=>e.models.length>0),Y=e=>y?.(e)??e.name,Ie=l(e=>e.modelMetadata),X=l(e=>e.personas),Z=e.find(e=>Y(e)===t),Le=e=>{if(!e.name.startsWith(`persona:`))return;let t=e.name.slice(8),n=t;try{n=decodeURIComponent(t)}catch{}let r=X[t]??X[n];if(r?.name)return r.name;if(e.personaName&&e.personaName!==t)return e.personaName},Re=e=>{if(!e.name.startsWith(`persona:`))return;let t=e.name.slice(8),n=t;try{n=decodeURIComponent(t)}catch{}return X[t]??X[n]};(0,M.useImperativeHandle)(w,()=>fe.current);let Q=(0,M.useCallback)((e=!0)=>{L(!1),z(``),e&&window.requestAnimationFrame(()=>fe.current?.focus())},[]),{data:ze=[],isLoading:Be,refetch:Ve}=i({queryKey:[`ollama-library-selector`,ve,W===`cloud`?`cloud`:`all`],queryFn:async()=>{let e=await j.getLibraryModels({search:ve||void 0,sort:`popular`,category:W===`cloud`?`cloud`:void 0});return e.success&&e.data?e.data:[]},enabled:I&&B===`ollama`}),{data:He=[],isLoading:Ue,refetch:We}=i({queryKey:[`hf-models-selector`,be,we,Se],queryFn:async()=>{let e=await ne.getModels({task:be,search:we||void 0,sort:Se,limit:30});return e.success&&e.data?e.data:[]},enabled:I&&B===`huggingface`}),Ge=ze.filter(e=>{let t=!R||e.name.toLowerCase().includes(R.toLowerCase())||e.description.toLowerCase().includes(R.toLowerCase()),n=W===`all`||e.category===W;return t&&n}),Ke=(0,M.useCallback)(async e=>{let[t,n]=e.split(`/`);if(t&&n){je(e);try{let r=await ne.getGgufFiles(t,n);r.success&&r.data&&ke(t=>({...t,[e]:r.data}))}catch(e){ue.error(`Failed to load GGUF files:`,e)}finally{je(null)}}},[]),qe=(0,M.useCallback)(e=>{Ee===e?De(null):(De(e),Oe[e]||Ke(e))},[Ee,Oe,Ke]),Je=(0,M.useCallback)((e,t)=>{if(!U){S.error(F(`modelSelector.pullRestricted`));return}if(!G){K(e),q({status:`starting`});try{let n=j.pullModelStream(e,e=>{q(e)},()=>{q(null),K(null),J(null),S.success(F(`modelDownload.success`,{name:t})),v?.()},e=>{q(null),K(null),J(null),S.error(F(`modelDownload.failed`,{error:e}))});J(()=>n)}catch{q(null),K(null),S.error(F(`modelDownload.startFailed`))}}},[U,v,G,F]);(0,M.useEffect)(()=>{let e=setTimeout(()=>{B===`huggingface`?Te(R):B===`ollama`&&ye(R)},300);return()=>clearTimeout(e)},[R,B]),(0,M.useEffect)(()=>{if(!I)return;let e=e=>{if(e.key===`Escape`){e.preventDefault(),Q();return}if(e.key===`Tab`&&H.current){let t=Array.from(H.current.querySelectorAll(`button:not([disabled]), input:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>e.offsetParent!==null),n=t[0],r=t[t.length-1];if(!n||!r)return;e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())}};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[Q,I]),(0,M.useEffect)(()=>{I&&pe.current&&pe.current.focus()},[I]);let Ye=async t=>{let r=e.find(e=>Y(e)===t)??e.find(e=>!e.isPlugin&&!e.isPersona&&e.name===t),i=r?Y(r):t,a=r?.name??t;Q();try{let e=await j.listRunningModels();if(e.success&&e.data){let t=e.data;t.length>0&&(r?.isPlugin!==!0&&t.some(e=>e.name===a||a.startsWith(`persona:`))||await j.unloadAllModels())}}catch(e){ue.warn(`Failed to unload models before switch:`,e)}n({target:{value:i}})},Xe=async e=>{if(!U){S.error(F(`modelSelector.pullRestricted`));return}if(!G){K(e),q({status:`starting`});try{let t=j.pullModelStream(e,e=>{q(e)},()=>{q(null),K(null),J(null),S.success(F(`modelDownload.success`,{name:e})),v?.()},e=>{q(null),K(null),J(null),S.error(F(`modelDownload.failed`,{error:e}))});J(()=>t)}catch{q(null),K(null),S.error(F(`modelDownload.startFailed`))}}},Ze=()=>{Ne&&(Ne(),J(null),K(null),q(null),S.success(F(`modelDownload.cancelled`)))},Qe=t=>e.some(e=>s(e)&&(e.name===t||e.name.startsWith(t+`:`))),$e=e=>{let t=Ie[c(e)]?.avatar;if(t&&!e.isPersona)return(0,N.jsx)(`img`,{src:t,alt:``,className:`h-4 w-4 shrink-0 rounded-full object-cover`});if(e.isPersona||e.isLegacySelection){let t=Re(e);if(t)return(0,N.jsx)(`img`,{src:re(t,64),alt:``,className:`h-4 w-4 shrink-0 rounded object-cover`})}return e.isLegacySelection?(0,N.jsx)(O,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}):e.isPersona?(0,N.jsx)(T,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}):e.isPlugin?(0,N.jsx)(A,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`}):(0,N.jsx)(E,{className:`h-4 w-4 text-gray-500 dark:text-dark-600`})},$=e=>{if(x)return x(e);let t=Ie[c(e)]?.label;return t&&!e.isPersona?t:e.isLegacySelection?`${Le(e)??e.name} (${F(`modelSelector.legacyProvider`,`provider not recorded`)})`:e.isPersona?Le(e)||e.personaName||e.name:e.isAgent?e.isUnavailable?`${e.agentName||e.name} (${F(`modelSelector.unavailable`,`unavailable`)})`:e.agentName||e.name:(e.isPlugin,e.isUnavailable?`${e.name} (${F(`modelSelector.unavailable`,`unavailable`)})`:e.name)},et=e=>e.isLegacySelection?e.isUnavailable?F(`modelSelector.providerUnavailable`,`provider unavailable`):F(`modelSelector.reselectProvider`,`reselect a provider to pin this model`):e.isPersona?`via ${e.model}`:e.isPlugin?e.isUnavailable?`via ${e.pluginName||e.pluginId} · ${F(`modelSelector.providerUnavailable`,`provider unavailable`)}`:`via ${e.pluginName}`:e.isUnavailable?F(`modelSelector.providerUnavailable`,`provider unavailable`):null;return(0,N.jsxs)(`div`,{className:d(`relative min-w-0`,o),ref:de,children:[(0,N.jsxs)(`button`,{ref:fe,"data-testid":D,type:`button`,onClick:()=>!f&&L(!I),disabled:f,"aria-haspopup":`dialog`,"aria-expanded":I,"aria-label":P&&Z?`${P}: ${$(Z)}`:P,className:d(m?`flex h-9 w-full min-w-0 items-center justify-between gap-2 px-2.5 text-start`:`w-full flex items-center justify-between gap-2 px-3 py-2.5 text-start`,`rounded-xl border border-line bg-surface-subtle text-sm text-ink hover:bg-hover-solid`,`transition-colors duration-150 focus:outline-none focus:ring-2 focus:ring-primary-500/20 focus:border-primary-500/40`,f?`opacity-50 cursor-not-allowed`:`cursor-pointer`),title:m?Z?C?.(Z)??$(Z):F(`modelSelector.selectModel`):void 0,children:[(()=>{if(!Z)return m?(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,N.jsx)(E,{className:`h-4 w-4 shrink-0`}),(0,N.jsx)(`span`,{className:`truncate text-xs font-medium text-ink-subtle`,children:F(`modelSelector.selectModel`)})]}):F(`modelSelector.selectModel`);if(m){let e=$(Z);return(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`shrink-0`,children:$e(Z)}),(0,N.jsx)(`span`,{dir:Z.isPersona?`auto`:`ltr`,className:`truncate text-xs font-medium text-ink`,children:e})]})}let e=$(Z),t=et(Z);return(0,N.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[$e(Z),(0,N.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,N.jsx)(`span`,{dir:Z.isPersona?`auto`:`ltr`,className:`text-sm font-medium truncate`,children:e}),t&&(0,N.jsx)(`span`,{dir:`auto`,className:`text-xs text-gray-500 dark:text-gray-400 truncate`,children:t})]}),Z.isPersona&&r&&(0,N.jsxs)(`div`,{className:`flex items-center gap-1 ms-auto`,children:[(0,N.jsx)(O,{className:`h-3 w-3 text-gray-500 dark:text-dark-600`}),r.embedding_model&&(0,N.jsx)(_,{className:`h-3 w-3 text-gray-400 dark:text-dark-500`})]})]})})(),(0,N.jsx)(ee,{className:d(m?`h-3 w-3`:`h-4 w-4`,`shrink-0 text-ink-subtle transition-transform duration-150 motion-reduce:transition-none`,I&&`rotate-180`)})]}),I&&(0,oe.createPortal)((0,N.jsxs)(`div`,{className:`fixed inset-0 z-[999999] flex items-center justify-center p-3 sm:p-6`,children:[(0,N.jsx)(`div`,{className:`absolute inset-0 bg-gray-950/55 backdrop-blur-md`,onClick:()=>Q()}),(0,N.jsxs)(`div`,{ref:H,role:`dialog`,"aria-modal":`true`,"aria-label":F(`modelSelector.selectModel`),className:d(`relative flex w-full max-w-xl flex-col overflow-hidden bg-white/[0.98] dark:bg-dark-25/[0.98]`,`h-[min(620px,88vh)] rounded-[1.5rem] border border-black/[0.08] dark:border-white/[0.09]`,`shadow-[0_30px_100px_rgba(0,0,0,0.28)] backdrop-blur-xl animate-scale-in`),onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex-shrink-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between px-4 pb-2 pt-4 sm:px-5 sm:pt-5`,children:[(0,N.jsx)(`h2`,{className:`text-lg font-medium tracking-[-0.025em] text-gray-950 dark:text-dark-950 rtl:tracking-normal`,children:F(`modelSelector.selectModel`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>Q(),className:`flex h-9 w-9 items-center justify-center rounded-full text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-950 dark:text-dark-500 dark:hover:bg-dark-200 dark:hover:text-dark-950`,title:F(`common.close`),children:(0,N.jsx)(k,{className:`h-4 w-4`})})]}),(0,N.jsx)(`div`,{className:`px-4 pb-3 sm:px-5`,children:(0,N.jsxs)(`div`,{className:`relative`,children:[(0,N.jsx)(p,{className:`absolute start-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400`}),(0,N.jsx)(`input`,{ref:pe,type:`text`,placeholder:F(B===`installed`?`modelSelector.searchInstalled`:B===`ollama`?`modelSelector.searchOllama`:`modelSelector.searchHuggingFace`),value:R,onChange:e=>z(e.target.value),className:d(`w-full rounded-xl border border-black/[0.07] bg-gray-100/70 py-2.5 ps-10 pe-4 text-sm dark:border-white/[0.07] dark:bg-dark-200/70`,`focus:outline-none focus:ring-2 focus:ring-primary-500/20`,`text-gray-900 dark:text-dark-900 placeholder:text-gray-400 dark:placeholder:text-dark-500`)})]})}),(0,N.jsxs)(`div`,{className:`mx-4 mb-3 flex rounded-xl bg-gray-100/70 p-1 dark:bg-dark-200/70 sm:mx-5`,children:[(0,N.jsxs)(`button`,{onClick:()=>{V(`installed`)},className:d(`flex-1 rounded-lg px-2 py-2 text-xs font-medium transition-colors sm:px-4`,B===`installed`?`bg-white text-gray-950 shadow-sm dark:bg-dark-300 dark:text-dark-950`:`text-gray-500 hover:text-gray-800 dark:text-dark-500 dark:hover:text-dark-800`),"aria-pressed":B===`installed`,children:[(0,N.jsx)(te,{className:`h-4 w-4 inline me-1.5`}),F(`modelSelector.installed`)]}),(0,N.jsxs)(`button`,{onClick:()=>{V(`ollama`)},className:d(`flex-1 rounded-lg px-2 py-2 text-xs font-medium transition-colors sm:px-4`,B===`ollama`?`bg-white text-gray-950 shadow-sm dark:bg-dark-300 dark:text-dark-950`:`text-gray-500 hover:text-gray-800 dark:text-dark-500 dark:hover:text-dark-800`),"aria-pressed":B===`ollama`,children:[(0,N.jsx)(g,{className:`h-4 w-4 inline me-1.5`}),`Ollama`]}),(0,N.jsxs)(`button`,{onClick:()=>{V(`huggingface`)},className:d(`flex-1 rounded-lg px-2 py-2 text-xs font-medium transition-colors sm:px-4`,B===`huggingface`?`bg-white text-gray-950 shadow-sm dark:bg-dark-300 dark:text-dark-950`:`text-gray-500 hover:text-gray-800 dark:text-dark-500 dark:hover:text-dark-800`),"aria-pressed":B===`huggingface`,children:[(0,N.jsx)(A,{className:`h-4 w-4 inline me-1.5`}),`HuggingFace`]})]})]}),B===`installed`&&(0,N.jsx)(ce,{filteredGroups:Fe,selectedModel:t,showImageGen:h,getModelValue:Y,getModelIcon:$e,getModelLabel:$,getModelSubLabel:et,onModelSelect:Ye,onOpenGallery:()=>{Q(!1),me(`/gallery`)}}),B===`ollama`&&(0,N.jsx)(le,{libraryCategories:Pe,libraryCategory:W,canInstallModels:U,loadingLibrary:Be,filteredLibraryModels:Ge,pullingModel:G,pullProgress:Me,setLibraryCategory:_e,isModelInstalled:Qe,onModelSelect:Ye,onPullModel:Xe,onCancelPull:Ze,onRefreshLibrary:()=>{Ve()}}),B===`huggingface`&&(0,N.jsx)(se,{hfTask:be,hfSort:Se,canInstallModels:U,loadingHf:Ue,hfModels:He,expandedHfModel:Ee,hfGgufFiles:Oe,loadingGguf:Ae,pullingModel:G,pullProgress:Me,setHfTask:xe,setHfSort:Ce,onToggleHfModel:qe,onPullHfGguf:Je,onCancelPull:Ze,onRefreshHfModels:()=>{We()}})]})]}),document.body),(0,N.jsx)(`select`,{"data-testid":ie,"aria-label":P,"aria-hidden":`true`,dir:`ltr`,value:t,onChange:n,className:`hidden`,tabIndex:-1,children:e.map(e=>(0,N.jsx)(`option`,{value:Y(e),children:$(e)},`${e.isLegacySelection?`legacy`:e.isPersona?`persona`:e.isPlugin?`plugin`:`ollama`}:${e.pluginId||``}:${Y(e)}`))})]})},I=o(`hooks:dictation`),L=()=>{if(typeof window>`u`)return;let e=window;return e.SpeechRecognition||e.webkitSpeechRecognition},R=[{mimeType:`audio/webm;codecs=opus`,format:`webm`}],z=300,B=.25,V=e=>`${encodeURIComponent(e.plugin)}:${encodeURIComponent(e.model)}`;function de(e){if(typeof MediaRecorder>`u`)return;let t=new Set((e.config?.formats||[]).map(e=>e.toLowerCase()));return R.find(e=>(t.size===0||t.has(e.format))&&(typeof MediaRecorder.isTypeSupported!=`function`||MediaRecorder.isTypeSupported(e.mimeType)))?.mimeType}function H({onStart:e,onText:t,ownerKey:n}){let{t:r,i18n:i}=u(),[a,o]=(0,M.useState)(`idle`),[s,c]=(0,M.useState)([]),l=(0,M.useRef)(null),d=(0,M.useRef)(null),f=(0,M.useRef)(null),p=(0,M.useRef)(null),m=(0,M.useRef)(null),h=(0,M.useRef)(0),g=(0,M.useRef)(`idle`),_=(0,M.useRef)(void 0),v=(0,M.useRef)(e),y=(0,M.useRef)(t);(0,M.useEffect)(()=>{v.current=e,y.current=t},[e,t]),(0,M.useEffect)(()=>{let e=!1;return ie.getModels().then(t=>{!e&&t.success&&t.data&&c(t.data)}).catch(()=>{e||c([])}),()=>{e=!0}},[]);let b=(0,M.useMemo)(()=>typeof window<`u`&&window.isSecureContext&&typeof navigator<`u`&&!!navigator.mediaDevices&&!!L(),[]),x=typeof window<`u`&&window.isSecureContext&&typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia,C=(0,M.useMemo)(()=>[...b?[{key:`browser`,kind:`browser`}]:[],...x?s.filter(e=>!!de(e)).map(e=>({key:V(e),kind:`provider`,model:e})):[]],[b,x,s]),[w,ee]=(0,M.useState)(``),te=(0,M.useMemo)(()=>C.find(e=>e.key===w)??C[0],[w,C]),T=te?.kind===`provider`?te.model:void 0,E=C.length>0,D=(0,M.useCallback)(()=>{m.current!==null&&(window.clearTimeout(m.current),m.current=null)},[]),O=(0,M.useCallback)(e=>{g.current=e,o(e)},[]),k=(0,M.useCallback)(()=>{h.current+=1,D(),l.current?.stop(),l.current=null,p.current?.abort(),p.current=null;let e=d.current;d.current=null,e&&(e.ondataavailable=null,e.onerror=null,e.onstop=null,e.state===`recording`&&e.stop()),f.current?.getTracks().forEach(e=>e.stop()),f.current=null,O(`idle`)},[D,O]);return(0,M.useEffect)(()=>(_.current=n,k),[k,n]),{supported:E,phase:a,toggle:(0,M.useCallback)(async()=>{let e=g.current;if(e===`starting`||e===`transcribing`){k();return}if(e===`recording`){d.current?.state===`recording`?(O(`transcribing`),d.current.stop()):k();return}if(T){let e=h.current+1;h.current=e;let t=_.current;v.current(),O(`starting`);try{let n=await navigator.mediaDevices.getUserMedia({audio:!0});if(h.current!==e||_.current!==t){n.getTracks().forEach(e=>e.stop());return}f.current=n;let a=de(T),o=a?new MediaRecorder(n,{mimeType:a}):new MediaRecorder(n),s=[];o.ondataavailable=e=>{e.data.size>0&&s.push(e.data)},o.onerror=()=>{n.getTracks().forEach(e=>e.stop()),D(),h.current===e&&(d.current=null,f.current=null,O(`idle`),S.error(r(`voiceMode.transcriptionFailed`)))},o.onstop=()=>{if(n.getTracks().forEach(e=>e.stop()),D(),h.current!==e||_.current!==t)return;if(d.current=null,f.current=null,s.length===0){O(`idle`);return}let a=new Blob(s,{type:o.mimeType||s[0].type||`audio/webm`}),c=new AbortController;p.current=c,O(`transcribing`),ie.transcribe(a,T,{language:i.language,signal:c.signal,fallbackMessage:r(`voiceMode.transcriptionFailed`)}).then(n=>{h.current!==e||_.current!==t||c.signal.aborted||y.current(n.text.trim())}).catch(e=>{c.signal.aborted||(I.error(`Provider transcription failed:`,e),S.error(e instanceof Error?e.message:r(`voiceMode.transcriptionFailed`)))}).finally(()=>{p.current===c&&h.current===e&&(p.current=null,O(`idle`))})},d.current=o,o.start(250);let c=T.config?.max_duration_seconds,l=typeof c==`number`&&c>0?Math.min(c,z):z;m.current=window.setTimeout(()=>{h.current===e&&o.state===`recording`&&o.stop()},Math.max(.1,l-B)*1e3),O(`recording`);return}catch(t){if(h.current!==e)return;I.error(`Failed to start provider dictation:`,t),D(),f.current?.getTracks().forEach(e=>e.stop()),f.current=null,d.current=null,O(`idle`),S.error(r(`voiceMode.transcriptionFailed`));return}}let t=L();if(!t)return;let n=h.current+1;h.current=n;let a=_.current,o=new t;o.lang=i.language,o.continuous=!0,o.interimResults=!0,v.current(),o.onresult=e=>{if(h.current!==n||_.current!==a||l.current!==o)return;let t=``;for(let n=0;n<e.results.length;n++)t+=e.results[n][0]?.transcript??``;y.current(t.trim())},o.onend=()=>{h.current===n&&(l.current=null,O(`idle`))},o.onerror=()=>{h.current===n&&(l.current=null,O(`idle`))},l.current=o,O(`recording`);try{o.start()}catch(e){I.error(`Failed to start dictation:`,e),l.current=null,O(`idle`)}},[k,D,i.language,T,O,r]),cancel:k,sources:C,activeSourceKey:te?.key??``,setSourceKey:ee,providerModel:T}}export{F as n,H as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,t}from"./rolldown-runtime-hePW80VL.js";import{i as n}from"./react-vendor-wiHys0m2.js";import{f as r,u as i}from"./utils-
|
|
1
|
+
import{r as e,t}from"./rolldown-runtime-hePW80VL.js";import{i as n}from"./react-vendor-wiHys0m2.js";import{f as r,u as i}from"./utils-DaXuqmQm.js";var a=e(n()),o=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);p(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},s={},c=(e,t,n,r)=>{p(n)&&s[n]||(p(n)&&(s[n]=new Date),o(e,t,n,r))},l=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},u=(e,t,n)=>{e.loadNamespaces(t,l(e,n))},d=(e,t,n,r)=>{if(p(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return u(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,l(e,r))},f=(e,t,n={})=>!t.languages||!t.languages.length?(c(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),p=e=>typeof e==`string`,m=e=>typeof e==`object`&&!!e,h=(0,a.createContext)(),g=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},_=t((e=>{var t=n();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),v=t(((e,t)=>{t.exports=_()}))(),y={t:(e,t)=>{if(p(t))return t;if(m(t)&&p(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},b=()=>()=>{},x=(e,t={})=>{let{i18n:n}=t,{i18n:o,defaultNS:s}=(0,a.useContext)(h)||{},l=n||o||i();l&&!l.reportNamespaces&&(l.reportNamespaces=new g),l||c(l,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next or by passing it via props or context. In monorepo setups, make sure there is only one instance of react-i18next.`);let m=(0,a.useMemo)(()=>({...r(),...l?.options?.react,...t}),[l,t]),{useSuspense:_,keyPrefix:x}=m,S=e||s||l?.options?.defaultNS,C=p(S)?[S]:S||[`translation`],w=(0,a.useMemo)(()=>C,C);l?.reportNamespaces?.addUsedNamespaces?.(w);let T=(0,a.useRef)(0),E=(0,a.useCallback)(e=>{if(!l)return b;let{bindI18n:t,bindI18nStore:n}=m,r=()=>{T.current+=1,e()};return t&&l.on(t,r),n&&l.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>l.off(e,r)),n&&n.split(` `).forEach(e=>l.store.off(e,r))}},[l,m]),D=(0,a.useRef)(),O=(0,a.useCallback)(()=>{if(!l)return y;let e=!!(l.isInitialized||l.initializedStoreOnce)&&w.every(e=>f(e,l,m)),n=t.lng||l.language,r=T.current,i=D.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===x&&i.revision===r)return i;let a={t:l.getFixedT(n,m.nsMode===`fallback`?w:w[0],x,{scopeNs:w}),ready:e,lng:n,keyPrefix:x,revision:r};return D.current=a,a},[l,w,x,m,t.lng]),[k,A]=(0,a.useState)(0),{t:j,ready:M}=(0,v.useSyncExternalStore)(E,O,O);(0,a.useEffect)(()=>{if(l&&!M&&!_){let e=()=>A(e=>e+1);t.lng?d(l,t.lng,w,e):u(l,w,e)}},[l,t.lng,w,M,_,k]);let N=l||{},P=(0,a.useRef)(null),F=(0,a.useRef)(),I=e=>`${e.language}|${e.resolvedLanguage}|${e.languages?.join(`,`)}`,L=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},R=(0,a.useMemo)(()=>{let e=N,t=e&&I(e),n=e;e&&(P.current&&P.current.__original===e&&F.current===t?n=P.current:(n=L(e),P.current=n,F.current=t));let r=!M&&!_?(...e)=>(c(l,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),j(...e)):j,i=[r,n,M];return i.t=r,i.i18n=n,i.ready=M,i},[j,N,M,N.resolvedLanguage,N.language,N.languages]);if(l&&_&&!M){let e=!1;try{e=!1}catch{}throw e&&c(l,`SUSPENDED_WHILE_LOADING`,`useTranslation: suspended while translations are loading (useSuspense is true by default). Add a <Suspense> boundary above this component, or set react.useSuspense: false in the i18next init options. https://react.i18next.com/latest/usetranslation-hook`),new Promise(e=>{let n=()=>e();t.lng?d(l,t.lng,w,n):u(l,w,n)})}return R};export{x as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,r as t}from"./utils-vendor-CvhktdS_.js";var n=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,r={"&":`&`,"&":`&`,"<":`<`,"<":`<`,">":`>`,">":`>`,"'":`'`,"'":`'`,""":`"`,""":`"`," ":` `," ":` `,"©":`©`,"©":`©`,"®":`®`,"®":`®`,"…":`…`,"…":`…`,"/":`/`,"/":`/`},i=e=>r[e],a={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:e=>e.replace(n,i),transDefaultProps:void 0},o=(e={})=>{a={...a,...e}},s=()=>a,c,l=e=>{c=e},u=()=>c;function d(...n){return t(e(n))}function f(){return typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform)}var p=new Map,m=new Map,h=e=>{let t=p.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`,style:`narrow`}),p.set(e,t)),t},g=e=>{let t=m.get(e);return t||(t=new Intl.DateTimeFormat(e),m.set(e,t)),t};function _(e,t=`en`){let n=new Date(e),r=Math.max(0,new Date().getTime()-n.getTime()),i=Math.floor(r/6e4),a=Math.floor(r/36e5),o=Math.floor(r/864e5);if(t.toLowerCase().split(`-`)[0]===`en`)return i<1?`Just now`:i<60?`${i}m ago`:a<24?`${a}h ago`:o<7?`${o}d ago`:g(t).format(n);let s=h(t);return i<1?s.format(0,`second`):i<60?s.format(-i,`minute`):a<24?s.format(-a,`hour`):o<7?s.format(-o,`day`):g(t).format(n)}function v(e,t=`en`,n=Date.now()){let r=Math.round((e-n)/1e3),i=Math.abs(r),a=h(t);return i<60?a.format(r,`second`):i<3600?a.format(Math.round(r/60),`minute`):i<86400?a.format(Math.round(r/3600),`hour`):a.format(Math.round(r/86400),`day`)}function y(e){let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(1)} ${t[r]}`}function b(e=12){let t=new Uint8Array(e);globalThis.crypto.getRandomValues(t);let n=``;for(let e of t)n+=`0123456789abcdefghijklmnopqrstuvwxyz`[e%36];return n}function x(){return b(11)+Date.now().toString(36)}function S(e,t){return e.length<=t?e:e.substring(0,t)+`...`}function C(e){for(let t of[/^\[Thinking:\s*([\s\S]*?)\]\s*/i,/^<thinking>([\s\S]*?)<\/thinking>\s*/i,/^<think>([\s\S]*?)<\/think>\s*/i]){let n=e.match(t);if(n)return{thinking:n[1].trim(),content:e.slice(n[0].length).trim(),thinkingComplete:!0}}for(let[t,n]of[[/^\[Thinking:\s*/i,`]`],[/^<thinking>\s*/i,`</thinking>`],[/^<think>\s*/i,`</think>`]]){let r=e.match(t);if(r&&!e.toLowerCase().includes(n))return{thinking:e.slice(r[0].length).trim()||null,content:``,thinkingComplete:!1}}return{thinking:null,content:e,thinkingComplete:!0}}export{x as a,b as c,l as d,s as f,_ as i,S as l,y as n,f as o,o as p,v as r,C as s,d as t,u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-vendor-wiHys0m2.js";function n(e){var t,r,i=``;if(typeof e==`string`||typeof e==`number`)i+=e;else if(typeof e==`object`){if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=n(e[t]))&&(i&&(i+=` `),i+=r)}else for(r in e)e[r]&&(i&&(i+=` `),i+=r)}return i}function r(){for(var e,t,r=0,i=``,a=arguments.length;r<a;r++)(e=arguments[r])&&(t=n(e))&&(i&&(i+=` `),i+=t);return i}var i=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},a=(e,t)=>({classGroupId:e,validator:t}),o=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),s=`-`,c=[],l=`arbitrary..`,u=e=>{let t=p(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return f(e);let n=e.split(s);return d(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],a=n[e];return t?a?i(a,t):t:a||c}return n[e]||c}}},d=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=d(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(s):e.slice(t).join(s),c=a.length;for(let e=0;e<c;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},f=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?l+r:void 0})(),p=e=>{let{theme:t,classGroups:n}=e;return m(n,t)},m=(e,t)=>{let n=o();for(let r in e){let i=e[r];h(i,n,r,t)}return n},h=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];g(i,t,n,r)}},g=(e,t,n,r)=>{if(typeof e==`string`){_(e,t,n);return}if(typeof e==`function`){ee(e,t,n,r);return}v(e,t,n,r)},_=(e,t,n)=>{let r=e===``?t:y(t,e);r.classGroupId=n},ee=(e,t,n,r)=>{if(b(e)){h(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(a(n,e))},v=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];h(o,y(t,a),n,r)}},y=(e,t)=>{let n=e,r=t.split(s),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=o(),n.nextPart.set(t,i)),n=i}return n},b=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,x=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},S=`!`,C=`:`,w=[],te=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),ne=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===C){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(S)?(c=s.slice(0,-1),l=!0):s.startsWith(S)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return te(t,l,c,u)};if(t){let e=t+C,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):te(w,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},T=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},re=e=>({cache:x(e.cacheSize),parseClassName:ne(e),sortModifiers:T(e),postfixLookupClassGroupIds:E(e),...u(e)}),E=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},D=/\s+/,O=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(D),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),ee=f?_+S:_,v=ee+g;if(s.indexOf(v)>-1)continue;s.push(v);let y=i(g,h);for(let e=0;e<y.length;++e){let t=y[e];s.push(ee+t)}l=t+(l.length>0?` `+l:l)}return l},k=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=A(n))&&(i&&(i+=` `),i+=r);return i},A=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=A(e[r]))&&(n&&(n+=` `),n+=t);return n},j=(e,...t)=>{let n,r,i,a,o=o=>(n=re(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=O(e,n);return i(e,a),a};return a=o,(...e)=>a(k(...e))},M=[],N=e=>{let t=t=>t[e]||M;return t.isThemeGetter=!0,t.themeKey=e,t},P=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,F=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ie=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,I=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,L=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,R=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,z=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ae=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,B=e=>ie.test(e),V=e=>!!e&&!Number.isNaN(Number(e)),H=e=>!!e&&Number.isInteger(Number(e)),oe=e=>e.endsWith(`%`)&&V(e.slice(0,-1)),U=e=>I.test(e),se=()=>!0,W=e=>L.test(e)&&!R.test(e),G=()=>!1,K=e=>z.test(e),q=e=>ae.test(e),ce=e=>!J(e)&&!X(e),le=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),ue=e=>Q(e,Te,G),J=e=>P.test(e),Y=e=>Q(e,Ee,W),de=e=>Q(e,De,V),fe=e=>Q(e,ke,se),pe=e=>Q(e,Oe,G),me=e=>Q(e,Ce,G),he=e=>Q(e,we,q),ge=e=>Q(e,Ae,K),X=e=>F.test(e),Z=e=>$(e,Ee),_e=e=>$(e,Oe),ve=e=>$(e,Ce),ye=e=>$(e,Te),be=e=>$(e,we),xe=e=>$(e,Ae,!0),Se=e=>$(e,ke,!0),Q=(e,t,n)=>{let r=P.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$=(e,t,n=!1)=>{let r=F.exec(e);return r?r[1]?t(r[1]):n:!1},Ce=e=>e===`position`||e===`percentage`,we=e=>e===`image`||e===`url`,Te=e=>e===`length`||e===`size`||e===`bg-size`,Ee=e=>e===`length`,De=e=>e===`number`,Oe=e=>e===`family-name`,ke=e=>e===`number`||e===`weight`,Ae=e=>e===`shadow`,je=j(()=>{let e=N(`color`),t=N(`font`),n=N(`text`),r=N(`font-weight`),i=N(`tracking`),a=N(`leading`),o=N(`breakpoint`),s=N(`container`),c=N(`spacing`),l=N(`radius`),u=N(`shadow`),d=N(`inset-shadow`),f=N(`text-shadow`),p=N(`drop-shadow`),m=N(`blur`),h=N(`perspective`),g=N(`aspect`),_=N(`ease`),ee=N(`animate`),v=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],y=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],b=()=>[...y(),X,J],x=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],S=()=>[`auto`,`contain`,`none`],C=()=>[X,J,c],w=()=>[B,`full`,`auto`,...C()],te=()=>[H,`none`,`subgrid`,X,J],ne=()=>[`auto`,{span:[`full`,H,X,J]},H,X,J],T=()=>[H,`auto`,X,J],re=()=>[`auto`,`min`,`max`,`fr`,X,J],E=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],D=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],O=()=>[`auto`,...C()],k=()=>[B,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...C()],A=()=>[s,B,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...C()],j=()=>[B,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...C()],M=()=>[e,X,J],P=()=>[...y(),ve,me,{position:[X,J]}],F=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ie=()=>[`auto`,`cover`,`contain`,ye,ue,{size:[X,J]}],I=()=>[oe,Z,Y],L=()=>[``,`none`,`full`,l,X,J],R=()=>[``,V,Z,Y],z=()=>[`solid`,`dashed`,`dotted`,`double`],ae=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],W=()=>[V,oe,ve,me],G=()=>[``,`none`,m,X,J],K=()=>[`none`,V,X,J],q=()=>[`none`,V,X,J],Q=()=>[V,X,J],$=()=>[B,`full`,...C()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[U],breakpoint:[U],color:[se],container:[U],"drop-shadow":[U],ease:[`in`,`out`,`in-out`],font:[ce],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[U],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[U],shadow:[U],spacing:[`px`,V],text:[U],"text-shadow":[U],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,B,J,X,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,X,J]}],"container-named":[le],columns:[{columns:[V,`auto`,J,X,s]}],"break-after":[{"break-after":v()}],"break-before":[{"break-before":v()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:b()}],overflow:[{overflow:x()}],"overflow-x":[{"overflow-x":x()}],"overflow-y":[{"overflow-y":x()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{"inset-s":w(),start:w()}],end:[{"inset-e":w(),end:w()}],"inset-bs":[{"inset-bs":w()}],"inset-be":[{"inset-be":w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[H,`auto`,X,J]}],basis:[{basis:[B,`full`,`auto`,s,...C()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[V,B,`auto`,`initial`,`none`,J]}],grow:[{grow:[``,V,X,J]}],shrink:[{shrink:[``,V,X,J]}],order:[{order:[H,`first`,`last`,`none`,X,J]}],"grid-cols":[{"grid-cols":te()}],"col-start-end":[{col:ne()}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":te()}],"row-start-end":[{row:ne()}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":re()}],"auto-rows":[{"auto-rows":re()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...E(),`normal`]}],"justify-items":[{"justify-items":[...D(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...D()]}],"align-content":[{content:[`normal`,...E()]}],"align-items":[{items:[...D(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...D(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":E()}],"place-items":[{"place-items":[...D(),`baseline`]}],"place-self":[{"place-self":[`auto`,...D()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:O()}],mx:[{mx:O()}],my:[{my:O()}],ms:[{ms:O()}],me:[{me:O()}],mbs:[{mbs:O()}],mbe:[{mbe:O()}],mt:[{mt:O()}],mr:[{mr:O()}],mb:[{mb:O()}],ml:[{ml:O()}],"space-x":[{"space-x":C()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":C()}],"space-y-reverse":[`space-y-reverse`],size:[{size:k()}],"inline-size":[{inline:[`auto`,...A()]}],"min-inline-size":[{"min-inline":[`auto`,...A()]}],"max-inline-size":[{"max-inline":[`none`,...A()]}],"block-size":[{block:[`auto`,...j()]}],"min-block-size":[{"min-block":[`auto`,...j()]}],"max-block-size":[{"max-block":[`none`,...j()]}],w:[{w:[s,`screen`,...k()]}],"min-w":[{"min-w":[s,`screen`,`none`,...k()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...k()]}],h:[{h:[`screen`,`lh`,...k()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...k()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...k()]}],"font-size":[{text:[`base`,n,Z,Y]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Se,fe]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,oe,J]}],"font-family":[{font:[_e,pe,t]}],"font-features":[{"font-features":[J]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,X,J]}],"line-clamp":[{"line-clamp":[V,`none`,X,de]}],leading:[{leading:[`none`,a,...C()]}],"list-image":[{"list-image":[`none`,X,J]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,X,J]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...z(),`wavy`]}],"text-decoration-thickness":[{decoration:[V,`from-font`,`auto`,X,Y]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[V,`auto`,X,J]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:C()}],"tab-size":[{tab:[H,X,J]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,X,J]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,X,J]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:P()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:ie()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},H,X,J],radial:[``,X,J],conic:[``,H,X,J]},be,he]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:I()}],"gradient-via-pos":[{via:I()}],"gradient-to-pos":[{to:I()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:R()}],"border-w-x":[{"border-x":R()}],"border-w-y":[{"border-y":R()}],"border-w-s":[{"border-s":R()}],"border-w-e":[{"border-e":R()}],"border-w-bs":[{"border-bs":R()}],"border-w-be":[{"border-be":R()}],"border-w-t":[{"border-t":R()}],"border-w-r":[{"border-r":R()}],"border-w-b":[{"border-b":R()}],"border-w-l":[{"border-l":R()}],"divide-x":[{"divide-x":R()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":R()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...z(),`hidden`,`none`]}],"divide-style":[{divide:[...z(),`hidden`,`none`]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-bs":[{"border-bs":M()}],"border-color-be":[{"border-be":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}],"divide-color":[{divide:M()}],"outline-style":[{outline:[...z(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[V,X,J]}],"outline-w":[{outline:[``,V,Z,Y]}],"outline-color":[{outline:M()}],shadow:[{shadow:[``,`inner`,`none`,u,xe,ge]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":[`none`,d,xe,ge]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:R()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[V,Y]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":R()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":[`none`,f,xe,ge]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[V,X,J]}],"mix-blend":[{"mix-blend":[...ae(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ae()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[V]}],"mask-image-linear-from-pos":[{"mask-linear-from":W()}],"mask-image-linear-to-pos":[{"mask-linear-to":W()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":W()}],"mask-image-t-to-pos":[{"mask-t-to":W()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":W()}],"mask-image-r-to-pos":[{"mask-r-to":W()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":W()}],"mask-image-b-to-pos":[{"mask-b-to":W()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":W()}],"mask-image-l-to-pos":[{"mask-l-to":W()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":W()}],"mask-image-x-to-pos":[{"mask-x-to":W()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":W()}],"mask-image-y-to-pos":[{"mask-y-to":W()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[X,J]}],"mask-image-radial-from-pos":[{"mask-radial-from":W()}],"mask-image-radial-to-pos":[{"mask-radial-to":W()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":y()}],"mask-image-conic-pos":[{"mask-conic":[V]}],"mask-image-conic-from-pos":[{"mask-conic-from":W()}],"mask-image-conic-to-pos":[{"mask-conic-to":W()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:P()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:ie()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,X,J]}],filter:[{filter:[``,`none`,X,J]}],blur:[{blur:G()}],brightness:[{brightness:[V,X,J]}],contrast:[{contrast:[V,X,J]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,xe,ge]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:[``,V,X,J]}],"hue-rotate":[{"hue-rotate":[V,X,J]}],invert:[{invert:[``,V,X,J]}],saturate:[{saturate:[V,X,J]}],sepia:[{sepia:[``,V,X,J]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,X,J]}],"backdrop-blur":[{"backdrop-blur":G()}],"backdrop-brightness":[{"backdrop-brightness":[V,X,J]}],"backdrop-contrast":[{"backdrop-contrast":[V,X,J]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,V,X,J]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[V,X,J]}],"backdrop-invert":[{"backdrop-invert":[``,V,X,J]}],"backdrop-opacity":[{"backdrop-opacity":[V,X,J]}],"backdrop-saturate":[{"backdrop-saturate":[V,X,J]}],"backdrop-sepia":[{"backdrop-sepia":[``,V,X,J]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,X,J]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[V,`initial`,X,J]}],ease:[{ease:[`linear`,`initial`,_,X,J]}],delay:[{delay:[V,X,J]}],animate:[{animate:[`none`,ee,X,J]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,X,J]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:q()}],"scale-x":[{"scale-x":q()}],"scale-y":[{"scale-y":q()}],"scale-z":[{"scale-z":q()}],"scale-3d":[`scale-3d`],skew:[{skew:Q()}],"skew-x":[{"skew-x":Q()}],"skew-y":[{"skew-y":Q()}],transform:[{transform:[X,J,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:$()}],"translate-x":[{"translate-x":$()}],"translate-y":[{"translate-y":$()}],"translate-z":[{"translate-z":$()}],"translate-none":[`translate-none`],zoom:[{zoom:[H,X,J]}],accent:[{accent:M()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:M()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,X,J]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":M()}],"scrollbar-track-color":[{"scrollbar-track":M()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,X,J]}],fill:[{fill:[`none`,...M()]}],"stroke-w":[{stroke:[V,Z,Y,de]}],stroke:[{stroke:[`none`,...M()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`start`,`end`,`right`,`left`],"inset-y":[`inset-bs`,`inset-be`,`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`ps`,`pe`,`pr`,`pl`],py:[`pbs`,`pbe`,`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`ms`,`me`,`mr`,`ml`],my:[`mbs`,`mbe`,`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-s`,`border-w-e`,`border-w-r`,`border-w-l`],"border-w-y":[`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-s`,`border-color-e`,`border-color-r`,`border-color-l`],"border-color-y":[`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-ms`,`scroll-me`,`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-ps`,`scroll-pe`,`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}}),Me=e(t(),1),Ne=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Pe=(e=>e?Ne(e):Ne),Fe=e=>e;function Ie(e,t=Fe){let n=Me.useSyncExternalStore(e.subscribe,Me.useCallback(()=>t(e.getState()),[e,t]),Me.useCallback(()=>t(e.getInitialState()),[e,t]));return Me.useDebugValue(n),n}var Le=e=>{let t=Pe(e),n=e=>Ie(t,e);return Object.assign(n,t),n},Re=(e=>e?Le(e):Le);function ze(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}var Be=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return Be(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return Be(t)(e)}}}},Ve=(e,t)=>(n,r,i)=>{let a={storage:ze(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return Be(u.getItem.bind(u))(a.name).then(e=>{if(e){if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state]}return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{++s,u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p};export{r as i,Re as n,je as r,Ve as t};
|