cartethyia 2.7.5 → 2.7.7
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/.env.example +8 -3
- package/README.md +26 -2
- package/dist/dashboard/assets/BannedPage-B05aF8Dg.js +1 -0
- package/dist/dashboard/assets/BannedPage-B05aF8Dg.js.gz +0 -0
- package/dist/dashboard/assets/CliToolDetailPage-CLUhmjUy.js +3 -0
- package/dist/dashboard/assets/CliToolDetailPage-CLUhmjUy.js.gz +0 -0
- package/dist/dashboard/assets/CliToolsPage-CQmrqqrk.js +1 -0
- package/dist/dashboard/assets/CliToolsPage-CQmrqqrk.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-CHG_1Wr3.js +1 -0
- package/dist/dashboard/assets/CombosPage-CHG_1Wr3.js.gz +0 -0
- package/dist/dashboard/assets/{ConsoleLogPage-D5rol2j2.js → ConsoleLogPage-DPgbklad.js} +1 -1
- package/dist/dashboard/assets/ConsoleLogPage-DPgbklad.js.gz +0 -0
- package/dist/dashboard/assets/{CustomizationPage-BKj_r0rp.js → CustomizationPage-pnfAqr_-.js} +1 -1
- package/dist/dashboard/assets/CustomizationPage-pnfAqr_-.js.gz +0 -0
- package/dist/dashboard/assets/HealthEventsModal-DGJuU2A6.js +1 -0
- package/dist/dashboard/assets/HealthEventsModal-DGJuU2A6.js.gz +0 -0
- package/dist/dashboard/assets/{InjectSystemPromptPanel-B5nZvmf0.js → InjectSystemPromptPanel-C-e2AMz6.js} +245 -2
- package/dist/dashboard/assets/InjectSystemPromptPanel-C-e2AMz6.js.gz +0 -0
- package/dist/dashboard/assets/LoginPage-J8wPbmfT.js +1 -0
- package/dist/dashboard/assets/LoginPage-J8wPbmfT.js.gz +0 -0
- package/dist/dashboard/assets/{ModelPicker-DnQPSIA8.js → ModelPicker-C6WlpU5E.js} +1 -1
- package/dist/dashboard/assets/ModelPicker-C6WlpU5E.js.gz +0 -0
- package/dist/dashboard/assets/OverviewPage-BSQnF2Lp.js +1 -0
- package/dist/dashboard/assets/OverviewPage-BSQnF2Lp.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage-DK_e0FJz.js +7 -0
- package/dist/dashboard/assets/ProviderDetailPage-DK_e0FJz.js.gz +0 -0
- package/dist/dashboard/assets/ProviderIcon-jjqXJDA3.js +1 -0
- package/dist/dashboard/assets/ProviderIcon-jjqXJDA3.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-D_a3r6Gc.js +1 -0
- package/dist/dashboard/assets/ProvidersPage-D_a3r6Gc.js.gz +0 -0
- package/dist/dashboard/assets/{ProxyPage-5SnUSy3j.js → ProxyPage-BBTRBAQ3.js} +1 -1
- package/dist/dashboard/assets/ProxyPage-BBTRBAQ3.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-B2WqMSG1.js +1 -0
- package/dist/dashboard/assets/QuotaPage-B2WqMSG1.js.gz +0 -0
- package/dist/dashboard/assets/{SettingsPage-BJtRZ4qD.js → SettingsPage-D7xp5Ij_.js} +1 -1
- package/dist/dashboard/assets/SettingsPage-D7xp5Ij_.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-LND6_Ss7.js +1 -0
- package/dist/dashboard/assets/SetupPage-LND6_Ss7.js.gz +0 -0
- package/dist/dashboard/assets/{StudioPage-BfAb5-o_.js → StudioPage-BzNnm6Bi.js} +4 -4
- package/dist/dashboard/assets/StudioPage-BzNnm6Bi.js.gz +0 -0
- package/dist/dashboard/assets/ToolIcon-CfeLA-Z_.js +1 -0
- package/dist/dashboard/assets/ToolIcon-CfeLA-Z_.js.gz +0 -0
- package/dist/dashboard/assets/{UsagePage-BNzeZ2Vk.js → UsagePage-C1TbL24N.js} +13 -13
- package/dist/dashboard/assets/UsagePage-C1TbL24N.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-KvX83mRe.js +1 -0
- package/dist/dashboard/assets/api-keys-KvX83mRe.js.gz +0 -0
- package/dist/dashboard/assets/app-DRnQLhsc.js +9 -0
- package/dist/dashboard/assets/app-DRnQLhsc.js.gz +0 -0
- package/dist/dashboard/assets/app-mweRcsKp.css +2 -0
- package/dist/dashboard/assets/app-mweRcsKp.css.gz +0 -0
- package/dist/dashboard/assets/{assert-C0K-c4eo.js → assert-CidQVoNo.js} +1 -1
- package/dist/dashboard/assets/assert-CidQVoNo.js.gz +0 -0
- package/dist/dashboard/assets/{badge-DfbhQU4k.js → badge-BaX2GTrn.js} +1 -1
- package/dist/dashboard/assets/badge-BaX2GTrn.js.gz +0 -0
- package/dist/dashboard/assets/{banner-BllT4LcF.js → banner-DFH4Bkte.js} +1 -1
- package/dist/dashboard/assets/banner-DFH4Bkte.js.gz +0 -0
- package/dist/dashboard/assets/{card-CtkX66Wd.js → card-CxDw0lK6.js} +1 -1
- package/dist/dashboard/assets/card-CxDw0lK6.js.gz +0 -0
- package/dist/dashboard/assets/circle-question-mark-Cz4un8sH.js +1 -0
- package/dist/dashboard/assets/circle-question-mark-Cz4un8sH.js.gz +0 -0
- package/dist/dashboard/assets/{cli-tools-CQXVMn4P.js → cli-tools-Bwv5-zGZ.js} +1 -1
- package/dist/dashboard/assets/cli-tools-Bwv5-zGZ.js.gz +0 -0
- package/dist/dashboard/assets/{clipboard-button-BQqBQd2n.js → clipboard-button-DfS1ntiq.js} +1 -1
- package/dist/dashboard/assets/clipboard-button-DfS1ntiq.js.gz +0 -0
- package/dist/dashboard/assets/dialog-BK-NRr5u.js +1 -0
- package/dist/dashboard/assets/dialog-BK-NRr5u.js.gz +0 -0
- package/dist/dashboard/assets/{drawer-BrTEZ8zu.js → drawer-QqPul6sC.js} +1 -1
- package/dist/dashboard/assets/drawer-QqPul6sC.js.gz +0 -0
- package/dist/dashboard/assets/entry-BMlYJVFj.js +1 -0
- package/dist/dashboard/assets/entry-BMlYJVFj.js.gz +0 -0
- package/dist/dashboard/assets/entry-Dmx7gBiN.js +1 -0
- package/dist/dashboard/assets/entry-Dmx7gBiN.js.gz +0 -0
- package/dist/dashboard/assets/entry-vqGb8yVz.js +4 -0
- package/dist/dashboard/assets/entry-vqGb8yVz.js.gz +0 -0
- package/dist/dashboard/assets/formatters-DP-5E01-.js +1 -0
- package/dist/dashboard/assets/formatters-DP-5E01-.js.gz +0 -0
- package/dist/dashboard/assets/house-h9AZlJuT.js +1 -0
- package/dist/dashboard/assets/house-h9AZlJuT.js.gz +0 -0
- package/dist/dashboard/assets/{index-FQlj0HUT.js → index-D36vCZht.js} +2 -2
- package/dist/dashboard/assets/index-D36vCZht.js.gz +0 -0
- package/dist/dashboard/assets/{inline-C4gU5iOL.js → inline-CHJQwxLa.js} +1 -1
- package/dist/dashboard/assets/inline-CHJQwxLa.js.gz +0 -0
- package/dist/dashboard/assets/{input-BHHX_Tmm.js → input-BlmlizVV.js} +1 -1
- package/dist/dashboard/assets/input-BlmlizVV.js.gz +0 -0
- package/dist/dashboard/assets/{layout-CajrYUnD.js → layout-Bz93I-yE.js} +1 -1
- package/dist/dashboard/assets/layout-Bz93I-yE.js.gz +0 -0
- package/dist/dashboard/assets/{list-row-Bx2I7XUe.js → list-row-Ml16KCfu.js} +1 -1
- package/dist/dashboard/assets/list-row-Ml16KCfu.js.gz +0 -0
- package/dist/dashboard/assets/{live-DNNqRbj2.js → live-7_QpnYGu.js} +1 -1
- package/dist/dashboard/assets/live-7_QpnYGu.js.gz +0 -0
- package/dist/dashboard/assets/{mutation-Rr0TIvcj.js → mutation-GU7XdEjz.js} +1 -1
- package/dist/dashboard/assets/mutation-GU7XdEjz.js.gz +0 -0
- package/dist/dashboard/assets/{network-C5UBACrJ.js → network-CuMDaTzT.js} +1 -1
- package/dist/dashboard/assets/network-CuMDaTzT.js.gz +0 -0
- package/dist/dashboard/assets/numbers-CoqpaDMx.js +2 -0
- package/dist/dashboard/assets/numbers-CoqpaDMx.js.gz +0 -0
- package/dist/dashboard/assets/{pagination-Xsi9Qx04.js → pagination-B5aOoweZ.js} +1 -1
- package/dist/dashboard/assets/pagination-B5aOoweZ.js.gz +0 -0
- package/dist/dashboard/assets/providers/zai.webp +0 -0
- package/dist/dashboard/assets/providers/zcode.webp +0 -0
- package/dist/dashboard/assets/{query-keys-BloKtaXJ.js → query-keys-YSoQOUh6.js} +1 -1
- package/dist/dashboard/assets/{query-keys-BloKtaXJ.js.gz → query-keys-YSoQOUh6.js.gz} +0 -0
- package/dist/dashboard/assets/quota-DJ1QlAOq.js +1 -0
- package/dist/dashboard/assets/quota-DJ1QlAOq.js.gz +0 -0
- package/dist/dashboard/assets/{routing-in0f_IfK.js → routing-fnCsxgNO.js} +1 -1
- package/dist/dashboard/assets/routing-fnCsxgNO.js.gz +0 -0
- package/dist/dashboard/assets/{select-BLULNqTp.js → select-C9Ssle9b.js} +2 -2
- package/dist/dashboard/assets/select-C9Ssle9b.js.gz +0 -0
- package/dist/dashboard/assets/{settings-CcGczj6I.js → settings-BxslsErn.js} +1 -1
- package/dist/dashboard/assets/settings-BxslsErn.js.gz +0 -0
- package/dist/dashboard/assets/{stack-D2lIR0tg.js → stack-j7cXjgYX.js} +1 -1
- package/dist/dashboard/assets/stack-j7cXjgYX.js.gz +0 -0
- package/dist/dashboard/assets/{state-DTARjfiW.js → state-DHmEnLa2.js} +1 -1
- package/dist/dashboard/assets/state-DHmEnLa2.js.gz +0 -0
- package/dist/dashboard/assets/{switch-c0oPSnqW.js → switch-DmZcyTIC.js} +1 -1
- package/dist/dashboard/assets/switch-DmZcyTIC.js.gz +0 -0
- package/dist/dashboard/assets/{useMutation-m8WGNPrz.js → useMutation-CbCP4w1o.js} +1 -1
- package/dist/dashboard/assets/useMutation-CbCP4w1o.js.gz +0 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/dashboard/index.html.gz +0 -0
- package/dist/dashboard/precompressed-assets.json +57 -57
- package/migrations/full-postgres/0042_add_telemetry_degenerate_stop.sql +14 -0
- package/migrations/full-postgres/0043_add_provider_custom_user_agent.sql +14 -0
- package/migrations/lite-sqlite3/0042_add_telemetry_degenerate_stop.sql +12 -0
- package/migrations/lite-sqlite3/0043_add_provider_custom_user_agent.sql +10 -0
- package/package.json +3 -1
- package/src/boot/dependencies.ts +10 -2
- package/src/config/providers.ts +13 -7
- package/src/config/security.ts +1 -1
- package/src/config/spec.ts +31 -17
- package/src/config/usage.ts +27 -0
- package/src/console/api-keys/routes.ts +19 -23
- package/src/console/cli-tools/cartethyia-websearch-plugin.ts +186 -0
- package/src/console/cli-tools/contracts.ts +39 -295
- package/src/console/cli-tools/fs-ops.ts +29 -0
- package/src/console/cli-tools/injectors/claude.ts +3 -3
- package/src/console/cli-tools/injectors/codex.ts +6 -6
- package/src/console/cli-tools/injectors/driver.ts +8 -105
- package/src/console/cli-tools/injectors/kilo.ts +146 -21
- package/src/console/cli-tools/injectors/opencode.ts +68 -17
- package/src/console/cli-tools/routes.ts +6 -0
- package/src/console/cli-tools/service.ts +7 -6
- package/src/console/observability/contracts.ts +6 -0
- package/src/console/observability/store.ts +3 -0
- package/src/console/providers/catalog/contracts.ts +4 -0
- package/src/console/providers/catalog/routes.ts +1 -0
- package/src/console/providers/detail/routes.ts +8 -0
- package/src/console/providers/detail/store.ts +4 -0
- package/src/console/quota/account-quota-tenant.ts +74 -0
- package/src/console/share/share-stats.ts +7 -9
- package/src/observability/event-log.ts +7 -0
- package/src/observability/event-query.ts +2 -0
- package/src/observability/telemetry-buffer.ts +9 -1
- package/src/persistence/boot.ts +13 -4
- package/src/persistence/schema.ts +15 -1
- package/src/persistence/stores/api-key-store.ts +19 -1
- package/src/protocol/canonical-model.ts +7 -0
- package/src/protocol/dsml.ts +5 -76
- package/src/protocol/request/gemini.ts +20 -1
- package/src/protocol/tool-identity.ts +15 -1
- package/src/providers/adapters/compatible-adapter.ts +29 -1
- package/src/providers/default-registry.ts +20 -4
- package/src/providers/discovery/discovery-types.ts +18 -0
- package/src/providers/discovery/probe-phases.ts +45 -0
- package/src/providers/discovery/probing-service.ts +41 -6
- package/src/providers/integrations/antigravity/antigravity-protocol.ts +108 -16
- package/src/providers/integrations/antigravity/antigravity-quota.ts +18 -6
- package/src/providers/integrations/antigravity/antigravity.ts +44 -11
- package/src/providers/integrations/codex/codex.ts +28 -1
- package/src/providers/integrations/cursor/cursor.ts +2 -3
- package/src/providers/integrations/github/github-discovery.ts +15 -2
- package/src/providers/integrations/github/github-oauth.ts +178 -9
- package/src/providers/integrations/github/github.ts +95 -14
- package/src/providers/integrations/kiro/kiro.ts +1 -2
- package/src/providers/integrations/qoder/chat-proto.ts +328 -0
- package/src/providers/integrations/qoder/claim-qoder-credits.ts +258 -0
- package/src/providers/integrations/qoder/qoder-adapter.ts +275 -0
- package/src/providers/integrations/qoder/qoder-auth.ts +201 -0
- package/src/providers/integrations/qoder/qoder-body.ts +78 -0
- package/src/providers/integrations/qoder/qoder-catalog.ts +14 -4
- package/src/providers/integrations/qoder/qoder-chat.ts +514 -0
- package/src/providers/integrations/qoder/qoder-cosy.ts +162 -0
- package/src/providers/integrations/qoder/qoder-grpc.ts +667 -0
- package/src/providers/integrations/qoder/qoder-ide.ts +584 -0
- package/src/providers/integrations/qoder/qoder-oauth.ts +4 -4
- package/src/providers/integrations/qoder/qoder-quota.ts +1 -1
- package/src/providers/integrations/qoder/qoder-realm.ts +40 -4
- package/src/providers/integrations/qoder/qoder-types.ts +51 -0
- package/src/providers/integrations/qoder/qoder-umid.ts +123 -8
- package/src/providers/integrations/qoder/qoder.ts +147 -1830
- package/src/providers/integrations/trae/trae.ts +2 -2
- package/src/providers/operations/account-error-classification.ts +67 -17
- package/src/providers/operations/byok-wire-profile.ts +19 -15
- package/src/providers/provider-contracts.ts +7 -0
- package/src/providers/provider-usage.ts +24 -55
- package/src/security/abuse.ts +5 -5
- package/src/security/admission/service.ts +11 -4
- package/src/security/api-key-auth.ts +5 -3
- package/src/transport/dispatch/attempt-finalize.ts +69 -21
- package/src/transport/dispatch/attempt-loop.ts +22 -0
- package/src/transport/dispatch/upstream.ts +4 -2
- package/src/transport/failure-policy.ts +15 -1
- package/src/transport/guards/error-lifecycle.ts +4 -0
- package/src/transport/request/state.ts +6 -0
- package/src/transport/routing/route-catalog.ts +8 -0
- package/src/transport/routing/route-model.ts +4 -0
- package/src/transport/routing/router.ts +8 -110
- package/src/transport/surface/reasoning-summary.ts +9 -14
- package/src/transport/vision-handoff.ts +83 -28
- package/dist/dashboard/assets/BannedPage-Cj15GsMp.js +0 -1
- package/dist/dashboard/assets/BannedPage-Cj15GsMp.js.gz +0 -0
- package/dist/dashboard/assets/ClaimGiftsButton-D83pBJ6J.js +0 -1
- package/dist/dashboard/assets/ClaimGiftsButton-D83pBJ6J.js.gz +0 -0
- package/dist/dashboard/assets/CliToolDetailPage-DZKmVuJN.js +0 -1
- package/dist/dashboard/assets/CliToolDetailPage-DZKmVuJN.js.gz +0 -0
- package/dist/dashboard/assets/CliToolsPage-BIccZmeL.js +0 -1
- package/dist/dashboard/assets/CliToolsPage-BIccZmeL.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-DEEKkYD-.js +0 -1
- package/dist/dashboard/assets/CombosPage-DEEKkYD-.js.gz +0 -0
- package/dist/dashboard/assets/ConsoleLogPage-D5rol2j2.js.gz +0 -0
- package/dist/dashboard/assets/CustomizationPage-BKj_r0rp.js.gz +0 -0
- package/dist/dashboard/assets/InjectSystemPromptPanel-B5nZvmf0.js.gz +0 -0
- package/dist/dashboard/assets/LoginPage-DkXb6dx-.js +0 -1
- package/dist/dashboard/assets/LoginPage-DkXb6dx-.js.gz +0 -0
- package/dist/dashboard/assets/ModelPicker-DnQPSIA8.js.gz +0 -0
- package/dist/dashboard/assets/OverviewPage-Ci2wQKUz.js +0 -1
- package/dist/dashboard/assets/OverviewPage-Ci2wQKUz.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage-odlgYrOg.js +0 -5
- package/dist/dashboard/assets/ProviderDetailPage-odlgYrOg.js.gz +0 -0
- package/dist/dashboard/assets/ProviderIcon-EfeloBn4.js +0 -1
- package/dist/dashboard/assets/ProviderIcon-EfeloBn4.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-CqFBQEB8.js +0 -1
- package/dist/dashboard/assets/ProvidersPage-CqFBQEB8.js.gz +0 -0
- package/dist/dashboard/assets/ProxyPage-5SnUSy3j.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-CmnMDzhP.js +0 -1
- package/dist/dashboard/assets/QuotaPage-CmnMDzhP.js.gz +0 -0
- package/dist/dashboard/assets/SettingsPage-BJtRZ4qD.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-WTa0sktC.js +0 -1
- package/dist/dashboard/assets/SetupPage-WTa0sktC.js.gz +0 -0
- package/dist/dashboard/assets/StudioPage-BfAb5-o_.js.gz +0 -0
- package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js +0 -1
- package/dist/dashboard/assets/ToolIcon-K1ckcDKg.js.gz +0 -0
- package/dist/dashboard/assets/UsagePage-BNzeZ2Vk.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-l29JROPv.js +0 -1
- package/dist/dashboard/assets/api-keys-l29JROPv.js.gz +0 -0
- package/dist/dashboard/assets/app--PJWq8_C.css +0 -2
- package/dist/dashboard/assets/app--PJWq8_C.css.gz +0 -0
- package/dist/dashboard/assets/app-Bgd3zANQ.js +0 -9
- package/dist/dashboard/assets/app-Bgd3zANQ.js.gz +0 -0
- package/dist/dashboard/assets/assert-C0K-c4eo.js.gz +0 -0
- package/dist/dashboard/assets/badge-DfbhQU4k.js.gz +0 -0
- package/dist/dashboard/assets/banner-BllT4LcF.js.gz +0 -0
- package/dist/dashboard/assets/card-CtkX66Wd.js.gz +0 -0
- package/dist/dashboard/assets/cli-tools-CQXVMn4P.js.gz +0 -0
- package/dist/dashboard/assets/clipboard-button-BQqBQd2n.js.gz +0 -0
- package/dist/dashboard/assets/dialog-BEK7KP0H.js +0 -1
- package/dist/dashboard/assets/dialog-BEK7KP0H.js.gz +0 -0
- package/dist/dashboard/assets/drawer-BrTEZ8zu.js.gz +0 -0
- package/dist/dashboard/assets/entry-CHWxbS56.js +0 -1
- package/dist/dashboard/assets/entry-CHWxbS56.js.gz +0 -0
- package/dist/dashboard/assets/entry-EBHJ3DrE.js +0 -1
- package/dist/dashboard/assets/entry-EBHJ3DrE.js.gz +0 -0
- package/dist/dashboard/assets/entry-LCS85hiq.js +0 -4
- package/dist/dashboard/assets/entry-LCS85hiq.js.gz +0 -0
- package/dist/dashboard/assets/formatters-BAACA727.js +0 -1
- package/dist/dashboard/assets/formatters-BAACA727.js.gz +0 -0
- package/dist/dashboard/assets/github-badge-YSCE4UC2.js +0 -1
- package/dist/dashboard/assets/github-badge-YSCE4UC2.js.gz +0 -0
- package/dist/dashboard/assets/index-FQlj0HUT.js.gz +0 -0
- package/dist/dashboard/assets/inline-C4gU5iOL.js.gz +0 -0
- package/dist/dashboard/assets/input-BHHX_Tmm.js.gz +0 -0
- package/dist/dashboard/assets/layout-CajrYUnD.js.gz +0 -0
- package/dist/dashboard/assets/list-row-Bx2I7XUe.js.gz +0 -0
- package/dist/dashboard/assets/live-DNNqRbj2.js.gz +0 -0
- package/dist/dashboard/assets/mutation-Rr0TIvcj.js.gz +0 -0
- package/dist/dashboard/assets/network-C5UBACrJ.js.gz +0 -0
- package/dist/dashboard/assets/numbers-CUWAZK4J.js +0 -2
- package/dist/dashboard/assets/numbers-CUWAZK4J.js.gz +0 -0
- package/dist/dashboard/assets/pagination-Xsi9Qx04.js.gz +0 -0
- package/dist/dashboard/assets/providers/zai-coding-plan.svg +0 -6
- package/dist/dashboard/assets/providers/zai-coding-plan.svg.gz +0 -0
- package/dist/dashboard/assets/quota-DvQbD_sr.js +0 -1
- package/dist/dashboard/assets/quota-DvQbD_sr.js.gz +0 -0
- package/dist/dashboard/assets/routing-in0f_IfK.js.gz +0 -0
- package/dist/dashboard/assets/select-BLULNqTp.js.gz +0 -0
- package/dist/dashboard/assets/settings-CcGczj6I.js.gz +0 -0
- package/dist/dashboard/assets/stack-D2lIR0tg.js.gz +0 -0
- package/dist/dashboard/assets/state-DTARjfiW.js.gz +0 -0
- package/dist/dashboard/assets/switch-c0oPSnqW.js.gz +0 -0
- package/dist/dashboard/assets/useMutation-m8WGNPrz.js.gz +0 -0
- package/src/console/cli-tools/injectors/cline.ts +0 -110
- package/src/console/cli-tools/injectors/copilot.ts +0 -108
- package/src/console/cli-tools/injectors/cowork.ts +0 -64
- package/src/console/cli-tools/injectors/deepseek-tui.ts +0 -85
- package/src/console/cli-tools/injectors/droid.ts +0 -96
- package/src/console/cli-tools/injectors/grok-build.ts +0 -70
- package/src/console/cli-tools/injectors/hermes.ts +0 -101
- package/src/console/cli-tools/injectors/jcode.ts +0 -115
- package/src/console/cli-tools/injectors/openclaw.ts +0 -161
- package/src/providers/integrations/qoder/qoder-text-tools.ts +0 -277
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e,o as t,r as n,t as r}from"./jsx-runtime-CXUMngI_.js";import{u as i}from"./app-Bgd3zANQ.js";var a=e(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),o=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),s=e(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),c=e(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),l=e(`flask-conical`,[[`path`,{d:`M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2`,key:`18mbvz`}],[`path`,{d:`M6.453 15h11.094`,key:`3shlmq`}],[`path`,{d:`M8.5 2h7`,key:`csnxdl`}]]),u=e(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),d=e(`heart`,[[`path`,{d:`M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5`,key:`mvr1a0`}]]),f=e(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),p=e(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),ee=e(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),m=e(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),h=r(),g=t(n(),1),te=t(i(),1);function _(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var v=e=>{switch(e){case`success`:return b;case`info`:return S;case`warning`:return x;case`error`:return C;default:return null}},y=Array(12).fill(0),ne=({visible:e,className:t})=>g.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},g.createElement(`div`,{className:`sonner-spinner`},y.map((e,t)=>g.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),b=g.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},g.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),x=g.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},g.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),S=g.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},g.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),C=g.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`,"aria-hidden":`true`},g.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),re=g.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`},g.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),g.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),w=()=>{let[e,t]=g.useState(document.hidden);return g.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),e},T=1,ie=100,E=e=>typeof e?.id==`number`||e?.id?.length>0?e.id:T++,D=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),this.getActiveToasts().forEach(t=>e(t)),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e],this.trimHistory()},this.trimHistory=()=>{let e=this.toasts.length-ie;e<=0||(this.toasts=this.toasts.filter(t=>e>0&&this.dismissedToasts.has(t.id)?(this.dismissedToasts.delete(t.id),e--,!1):!0))},this.create=e=>{let{message:t,...n}=e,r=E(e),i=this.pendingDismissals.get(r);i!==void 0&&(cancelAnimationFrame(i),this.pendingDismissals.delete(r),this.dismissedToasts.delete(r));let a=this.dismissedToasts.has(r),o=e.dismissible===void 0||e.dismissible;return a&&(this.dismissedToasts.delete(r),this.toasts=this.toasts.filter(e=>e.id!==r)),!a&&this.toasts.find(e=>e.id===r)?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:o,title:t}):n):this.addToast({title:t,...n,dismissible:o,id:r}),r},this.dismiss=e=>{if(e==null)return this.getActiveToasts().forEach(e=>{this.dismissedToasts.add(e.id),this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e;this.dismissedToasts.add(e);let t=this.pendingDismissals.get(e);return t!==void 0&&cancelAnimationFrame(t),this.pendingDismissals.set(e,requestAnimationFrame(()=>{this.pendingDismissals.delete(e),this.subscribers.forEach(t=>t({id:e,dismiss:!0}))})),e},this.message=(e,t)=>this.create({...t,message:e,type:void 0}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],g.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(ae(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!g.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!g.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!g.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!g.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=E(t);return this.create({...t,jsx:e(n),id:n,type:void 0}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set,this.pendingDismissals=new Map}},O=(e,t)=>D.message(e,t),ae=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,k=Object.assign(O,{success:D.success,info:D.info,warning:D.warning,error:D.error,custom:D.custom,message:D.message,promise:D.promise,dismiss:D.dismiss,loading:D.loading},{getHistory:()=>D.toasts,getToasts:()=>D.getActiveToasts()});_(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--normal-text);background:var(--normal-bg);border:1px solid var(--normal-border);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function A(e){return e.label!==void 0}var oe=3,j=`24px`,se=`16px`,M=4e3,N=356,P=14,F=45,ce=200;function I(...e){return e.filter(Boolean).join(` `)}function le(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var L=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:ee,cancelButtonStyle:m,actionButtonStyle:h,className:te=``,descriptionClassName:_=``,duration:y,position:b,gap:x,expandByDefault:S,classNames:C,icons:T,closeButtonAriaLabel:ie=`Close toast`}=e,[E,D]=g.useState(null),[O,ae]=g.useState(null),[k,oe]=g.useState(!1),[j,se]=g.useState(!1),[N,P]=g.useState(!1),[L,ue]=g.useState(!1),[de,R]=g.useState(!1),[fe,pe]=g.useState(0),[me,he]=g.useState(0),ge=g.useRef(n.duration||y||M),_e=g.useRef(null),z=g.useRef(null),ve=c===0,ye=c+1<=o,B=n.type,be=B??`default`,V=n.dismissible!==!1,xe=n.className||``,Se=n.descriptionClassName||``,Ce=g.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),we=g.useMemo(()=>n.closeButton??p,[n.closeButton,p]),Te=g.useMemo(()=>n.duration||y||M,[n.duration,y]),Ee=g.useRef(0),H=g.useRef(0),De=g.useRef(0),Oe=g.useRef(null),[ke,Ae]=b.split(`-`),je=g.useMemo(()=>s.reduce((e,t,n)=>n>=Ce?e:e+t.height,0),[s,Ce]),Me=w(),U=g.useMemo(()=>e.swipeDirections??le(b),[e.swipeDirections,b]),Ne=n.invert||t,Pe=B===`loading`;H.current=g.useMemo(()=>Ce*x+je,[Ce,je]),g.useEffect(()=>{ge.current=Te},[Te]),g.useEffect(()=>{oe(!0)},[]),g.useEffect(()=>{let e=z.current;if(e){let t=e.getBoundingClientRect().height;return he(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),g.useLayoutEffect(()=>{if(!k)return;let e=z.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,he(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[k,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let W=g.useCallback(()=>{se(!0),pe(H.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},ce)},[n,d,a,H]);g.useEffect(()=>{if(n.promise&&B===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||Me?(()=>{if(De.current<Ee.current){let e=new Date().getTime()-Ee.current;ge.current-=e}De.current=new Date().getTime()})():ge.current!==1/0&&(Ee.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),W()},ge.current)),()=>clearTimeout(e)},[u,i,n,B,Me,W]),g.useEffect(()=>{n.delete&&(W(),n.onDismiss==null||n.onDismiss.call(n,n))},[W,n.delete]);function Fe(){return T?.loading?g.createElement(`div`,{className:I(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":B===`loading`},T.loading):g.createElement(ne,{className:I(C?.loader,n?.classNames?.loader),visible:B===`loading`})}let Ie=n.icon||T?.[B]||v(B);return g.createElement(`li`,{tabIndex:0,ref:z,className:I(te,xe,C?.toast,n?.classNames?.toast,C?.[be],n?.classNames?.[be]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":k,"data-promise":!!n.promise,"data-swiped":de,"data-removed":j,"data-visible":ye,"data-y-position":ke,"data-x-position":Ae,"data-index":c,"data-front":ve,"data-swiping":N,"data-dismissible":V,"data-type":B,"data-invert":Ne,"data-swipe-out":L,"data-swipe-direction":O,"data-expanded":!!(u||S&&k),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${j?fe:H.current}px`,"--initial-height":S?`auto`:`${me}px`,...ee,...n.style},onDragEnd:()=>{P(!1),D(null),Oe.current=null},onPointerDown:e=>{e.button!==2&&!Pe&&V&&(_e.current=new Date,pe(H.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(P(!0),Oe.current={x:e.clientX,y:e.clientY}))},onPointerUp:()=>{if(L||!V)return;Oe.current=null;let e=Number(z.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(z.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-_e.current?.getTime(),i=E===`x`?e:t,a=Math.abs(i)/r;if((E===`x`?U.includes(e>0?`right`:`left`):U.includes(t>0?`bottom`:`top`))&&(Math.abs(i)>=F||a>.11)){pe(H.current),n.onDismiss==null||n.onDismiss.call(n,n),ae(E===`x`?e>0?`right`:`left`:t>0?`down`:`up`),W(),ue(!0);return}var o,s;(o=z.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=z.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`),R(!1),P(!1),D(null)},onPointerMove:e=>{var t,n;if(!Oe.current||!V||window.getSelection()?.toString().length>0)return;let r=e.clientY-Oe.current.y,i=e.clientX-Oe.current.x;!E&&(Math.abs(i)>1||Math.abs(r)>1)&&D(Math.abs(i)>Math.abs(r)?`x`:`y`);let a={x:0,y:0},o=e=>1/(1.5+Math.abs(e)/20);if(E===`y`){if(U.includes(`top`)||U.includes(`bottom`)){if(U.includes(`top`)&&r<0||U.includes(`bottom`)&&r>0)a.y=r;else{let e=r*o(r);a.y=Math.abs(e)<Math.abs(r)?e:r}}}else if(E===`x`&&(U.includes(`left`)||U.includes(`right`))){if(U.includes(`left`)&&i<0||U.includes(`right`)&&i>0)a.x=i;else{let e=i*o(i);a.x=Math.abs(e)<Math.abs(i)?e:i}}(Math.abs(a.x)>0||Math.abs(a.y)>0)&&R(!0),(t=z.current)==null||t.style.setProperty(`--swipe-amount-x`,`${a.x}px`),(n=z.current)==null||n.style.setProperty(`--swipe-amount-y`,`${a.y}px`)}},we&&!n.jsx&&B!==`loading`?g.createElement(`button`,{"aria-label":ie,"data-disabled":Pe,"data-close-button":!0,onClick:Pe||!V?()=>{}:()=>{W(),n.onDismiss==null||n.onDismiss.call(n,n)},className:I(C?.closeButton,n?.classNames?.closeButton)},T?.close??re):null,(B||n.icon||n.promise)&&n.icon!==null&&(T?.[B]!==null||n.icon)?g.createElement(`div`,{"data-icon":``,className:I(C?.icon,n?.classNames?.icon)},B===`loading`?n.icon||Fe():n.promise?Fe():null,B===`loading`?null:Ie):null,g.createElement(`div`,{"data-content":``,className:I(C?.content,n?.classNames?.content)},g.createElement(`div`,{"data-title":``,className:I(C?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?g.createElement(`div`,{"data-description":``,className:I(_,Se,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),g.isValidElement(n.cancel)?n.cancel:n.cancel&&A(n.cancel)?g.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||m,onClick:e=>{A(n.cancel)&&V&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),W())},className:I(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,g.isValidElement(n.action)?n.action:n.action&&A(n.action)?g.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||h,onClick:e=>{A(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&W())},className:I(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function ue(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function de(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?se:j;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var R=g.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:ee,visibleToasts:m=oe,toastOptions:h,dir:_=ue(),gap:v=P,icons:y,customAriaLabel:ne,containerAriaLabel:b=`Notifications`}=e,[x,S]=g.useState([]),C=g.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),re=g.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[w,T]=g.useState([]),[ie,E]=g.useState(!1),[O,ae]=g.useState(!1),[k,A]=g.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),j=g.useRef(null),se=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),M=g.useRef(null),F=g.useRef(!1),ce=g.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||D.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return g.useEffect(()=>D.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{te.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[]),g.useEffect(()=>{if(d!==`system`){A(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?A(`dark`):A(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{A(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{A(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),g.useEffect(()=>{x.length<=1&&E(!1)},[x]),g.useEffect(()=>{let e=e=>{if(a.length>0&&a.every(t=>e[t]||e.code===t)){var t;E(!0),(t=j.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===j.current||j.current?.contains(document.activeElement))&&E(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),g.useEffect(()=>{if(j.current)return()=>{M.current&&(M.current.focus({preventScroll:!0}),M.current=null,F.current=!1)}},[j.current]),g.createElement(`section`,{ref:t,"aria-label":ne??`${b} ${se}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0,"data-react-aria-top-layer":!0},re.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?g.createElement(`ol`,{key:t,dir:_===`auto`?ue():_,tabIndex:-1,ref:j,className:c,"data-sonner-toaster":!0,"data-sonner-theme":k,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${w[0]?.height||0}px`,"--width":`${N}px`,"--gap":`${v}px`,...ee,...de(l,u)},onBlur:e=>{F.current&&!e.currentTarget.contains(e.relatedTarget)&&(F.current=!1,M.current&&=(M.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||F.current||(F.current=!0,M.current=e.relatedTarget)},onMouseEnter:()=>E(!0),onMouseMove:()=>E(!0),onMouseLeave:()=>{O||E(!1)},onDragEnd:()=>E(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||ae(!0)},onPointerUp:()=>ae(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>g.createElement(L,{key:n.id,icons:y,index:i,toast:n,defaultRichColors:f,duration:h?.duration??p,className:h?.className,descriptionClassName:h?.descriptionClassName,invert:r,visibleToasts:m,closeButton:h?.closeButton??s,interacting:O,position:t,style:h?.style,unstyled:h?.unstyled,classNames:h?.classNames,cancelButtonStyle:h?.cancelButtonStyle,actionButtonStyle:h?.actionButtonStyle,closeButtonAriaLabel:h?.closeButtonAriaLabel,removeToast:ce,toasts:C.filter(e=>e.position==n.position),heights:w.filter(e=>e.position==n.position),setHeights:T,expandByDefault:o,gap:v,expanded:ie,swipeDirections:e.swipeDirections}))):null}))});function fe(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=fe(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function pe(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=fe(e))&&(r&&(r+=` `),r+=t);return r}var me=(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},he=(e,t)=>({classGroupId:e,validator:t}),ge=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),_e=`-`,z=[],ve=`arbitrary..`,ye=e=>{let t=V(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return be(e);let n=e.split(_e);return B(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?me(i,t):t:i||z}return n[e]||z}}},B=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=B(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(_e):e.slice(t).join(_e),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},be=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?ve+r:void 0})(),V=e=>{let{theme:t,classGroups:n}=e;return xe(n,t)},xe=(e,t)=>{let n=ge();for(let r in e){let i=e[r];Se(i,n,r,t)}return n},Se=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Ce(i,t,n,r)}},Ce=(e,t,n,r)=>{if(typeof e==`string`){we(e,t,n);return}if(typeof e==`function`){Te(e,t,n,r);return}Ee(e,t,n,r)},we=(e,t,n)=>{let r=e===``?t:H(t,e);r.classGroupId=n},Te=(e,t,n,r)=>{if(De(e)){Se(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(he(n,e))},Ee=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Se(o,H(t,a),n,r)}},H=(e,t)=>{let n=e,r=t.split(_e),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=ge(),n.nextPart.set(t,i)),n=i}return n},De=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Oe=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)}}},ke=`!`,Ae=`:`,je=[],Me=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),U=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===Ae){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(ke)?(c=s.slice(0,-1),l=!0):s.startsWith(ke)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Me(t,l,c,u)};if(t){let e=t+Ae,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Me(je,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Ne=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}},Pe=e=>({cache:Oe(e.cacheSize),parseClassName:U(e),sortModifiers:Ne(e),postfixLookupClassGroupIds:W(e),...ye(e)}),W=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},Fe=/\s+/,Ie=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(Fe),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:ee}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let m=!!ee,h;if(m){h=r(p.substring(0,ee));let e=h&&o[h]?r(p):void 0;e&&e!==h&&(h=e,m=!1)}else h=r(p);if(!h){if(!m){l=t+(l.length>0?` `+l:l);continue}if(h=r(p),!h){l=t+(l.length>0?` `+l:l);continue}m=!1}let g=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),te=f?g+ke:g,_=te+h;if(s.indexOf(_)>-1)continue;s.push(_);let v=i(h,m);for(let e=0;e<v.length;++e){let t=v[e];s.push(te+t)}l=t+(l.length>0?` `+l:l)}return l},Le=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Re(n))&&(i&&(i+=` `),i+=r);return i},Re=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Re(e[r]))&&(n&&(n+=` `),n+=t);return n},ze=(e,...t)=>{let n,r,i,a,o=o=>(n=Pe(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=Ie(e,n);return i(e,a),a};return a=o,(...e)=>a(Le(...e))},Be=[],G=e=>{let t=t=>t[e]||Be;return t.isThemeGetter=!0,t.themeKey=e,t},Ve=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,He=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ue=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,We=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ge=/\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$/,Ke=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,qe=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Je=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,K=e=>Ue.test(e),q=e=>!!e&&!Number.isNaN(Number(e)),J=e=>!!e&&Number.isInteger(Number(e)),Ye=e=>e.endsWith(`%`)&&q(e.slice(0,-1)),Y=e=>We.test(e),Xe=()=>!0,Ze=e=>Ge.test(e)&&!Ke.test(e),Qe=()=>!1,$e=e=>qe.test(e),et=e=>Je.test(e),tt=e=>!X(e)&&!Q(e),nt=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)),rt=e=>$(e,bt,Qe),X=e=>Ve.test(e),Z=e=>$(e,xt,Ze),it=e=>$(e,St,q),at=e=>$(e,wt,Xe),ot=e=>$(e,Ct,Qe),st=e=>$(e,vt,Qe),ct=e=>$(e,yt,et),lt=e=>$(e,Tt,$e),Q=e=>He.test(e),ut=e=>_t(e,xt),dt=e=>_t(e,Ct),ft=e=>_t(e,vt),pt=e=>_t(e,bt),mt=e=>_t(e,yt),ht=e=>_t(e,Tt,!0),gt=e=>_t(e,wt,!0),$=(e,t,n)=>{let r=Ve.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},_t=(e,t,n=!1)=>{let r=He.exec(e);return r?r[1]?t(r[1]):n:!1},vt=e=>e===`position`||e===`percentage`,yt=e=>e===`image`||e===`url`,bt=e=>e===`length`||e===`size`||e===`bg-size`,xt=e=>e===`length`,St=e=>e===`number`,Ct=e=>e===`family-name`,wt=e=>e===`number`||e===`weight`,Tt=e=>e===`shadow`,Et=()=>{let e=G(`color`),t=G(`font`),n=G(`text`),r=G(`font-weight`),i=G(`tracking`),a=G(`leading`),o=G(`breakpoint`),s=G(`container`),c=G(`spacing`),l=G(`radius`),u=G(`shadow`),d=G(`inset-shadow`),f=G(`text-shadow`),p=G(`drop-shadow`),ee=G(`blur`),m=G(`perspective`),h=G(`aspect`),g=G(`ease`),te=G(`animate`),_=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],v=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],y=()=>[...v(),Q,X],ne=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],b=()=>[`auto`,`contain`,`none`],x=()=>[Q,X,c],S=()=>[K,`full`,`auto`,...x()],C=()=>[J,`none`,`subgrid`,Q,X],re=()=>[`auto`,{span:[`full`,J,Q,X]},J,Q,X],w=()=>[J,`auto`,Q,X],T=()=>[`auto`,`min`,`max`,`fr`,Q,X],ie=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],E=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],D=()=>[`auto`,...x()],O=()=>[K,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...x()],ae=()=>[s,K,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...x()],k=()=>[K,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...x()],A=()=>[e,Q,X],oe=()=>[...v(),ft,st,{position:[Q,X]}],j=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],se=()=>[`auto`,`cover`,`contain`,pt,rt,{size:[Q,X]}],M=()=>[Ye,ut,Z],N=()=>[``,`none`,`full`,l,Q,X],P=()=>[``,q,ut,Z],F=()=>[`solid`,`dashed`,`dotted`,`double`],ce=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],I=()=>[q,Ye,ft,st],le=()=>[``,`none`,ee,Q,X],L=()=>[`none`,q,Q,X],ue=()=>[`none`,q,Q,X],de=()=>[q,Q,X],R=()=>[K,`full`,...x()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[Y],breakpoint:[Y],color:[Xe],container:[Y],"drop-shadow":[Y],ease:[`in`,`out`,`in-out`],font:[tt],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[Y],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[Y],shadow:[Y],spacing:[`px`,q],text:[Y],"text-shadow":[Y],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,K,X,Q,h]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Q,X]}],"container-named":[nt],columns:[{columns:[q,`auto`,X,Q,s]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"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:y()}],overflow:[{overflow:ne()}],"overflow-x":[{"overflow-x":ne()}],"overflow-y":[{"overflow-y":ne()}],overscroll:[{overscroll:b()}],"overscroll-x":[{"overscroll-x":b()}],"overscroll-y":[{"overscroll-y":b()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{"inset-s":S(),start:S()}],end:[{"inset-e":S(),end:S()}],"inset-bs":[{"inset-bs":S()}],"inset-be":[{"inset-be":S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[J,`auto`,Q,X]}],basis:[{basis:[K,`full`,`auto`,s,...x()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[q,K,`auto`,`initial`,`none`,X]}],grow:[{grow:[``,q,Q,X]}],shrink:[{shrink:[``,q,Q,X]}],order:[{order:[J,`first`,`last`,`none`,Q,X]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:re()}],"col-start":[{"col-start":w()}],"col-end":[{"col-end":w()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:re()}],"row-start":[{"row-start":w()}],"row-end":[{"row-end":w()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":T()}],"auto-rows":[{"auto-rows":T()}],gap:[{gap:x()}],"gap-x":[{"gap-x":x()}],"gap-y":[{"gap-y":x()}],"justify-content":[{justify:[...ie(),`normal`]}],"justify-items":[{"justify-items":[...E(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...E()]}],"align-content":[{content:[`normal`,...ie()]}],"align-items":[{items:[...E(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...E(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":ie()}],"place-items":[{"place-items":[...E(),`baseline`]}],"place-self":[{"place-self":[`auto`,...E()]}],p:[{p:x()}],px:[{px:x()}],py:[{py:x()}],ps:[{ps:x()}],pe:[{pe:x()}],pbs:[{pbs:x()}],pbe:[{pbe:x()}],pt:[{pt:x()}],pr:[{pr:x()}],pb:[{pb:x()}],pl:[{pl:x()}],m:[{m:D()}],mx:[{mx:D()}],my:[{my:D()}],ms:[{ms:D()}],me:[{me:D()}],mbs:[{mbs:D()}],mbe:[{mbe:D()}],mt:[{mt:D()}],mr:[{mr:D()}],mb:[{mb:D()}],ml:[{ml:D()}],"space-x":[{"space-x":x()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":x()}],"space-y-reverse":[`space-y-reverse`],size:[{size:O()}],"inline-size":[{inline:[`auto`,...ae()]}],"min-inline-size":[{"min-inline":[`auto`,...ae()]}],"max-inline-size":[{"max-inline":[`none`,...ae()]}],"block-size":[{block:[`auto`,...k()]}],"min-block-size":[{"min-block":[`auto`,...k()]}],"max-block-size":[{"max-block":[`none`,...k()]}],w:[{w:[s,`screen`,...O()]}],"min-w":[{"min-w":[s,`screen`,`none`,...O()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...O()]}],h:[{h:[`screen`,`lh`,...O()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...O()]}],"max-h":[{"max-h":[`screen`,`lh`,`none`,...O()]}],"font-size":[{text:[`base`,n,ut,Z]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,gt,at]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Ye,X]}],"font-family":[{font:[dt,ot,t]}],"font-features":[{"font-features":[X]}],"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,Q,X]}],"line-clamp":[{"line-clamp":[q,`none`,Q,it]}],leading:[{leading:[`none`,a,...x()]}],"list-image":[{"list-image":[`none`,Q,X]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Q,X]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:A()}],"text-color":[{text:A()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...F(),`wavy`]}],"text-decoration-thickness":[{decoration:[q,`from-font`,`auto`,Q,Z]}],"text-decoration-color":[{decoration:A()}],"underline-offset":[{"underline-offset":[q,`auto`,Q,X]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:x()}],"tab-size":[{tab:[J,Q,X]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Q,X]}],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`,Q,X]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:j()}],"bg-size":[{bg:se()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},J,Q,X],radial:[``,Q,X],conic:[``,J,Q,X]},mt,ct]}],"bg-color":[{bg:A()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:A()}],"gradient-via":[{via:A()}],"gradient-to":[{to:A()}],rounded:[{rounded:N()}],"rounded-s":[{"rounded-s":N()}],"rounded-e":[{"rounded-e":N()}],"rounded-t":[{"rounded-t":N()}],"rounded-r":[{"rounded-r":N()}],"rounded-b":[{"rounded-b":N()}],"rounded-l":[{"rounded-l":N()}],"rounded-ss":[{"rounded-ss":N()}],"rounded-se":[{"rounded-se":N()}],"rounded-ee":[{"rounded-ee":N()}],"rounded-es":[{"rounded-es":N()}],"rounded-tl":[{"rounded-tl":N()}],"rounded-tr":[{"rounded-tr":N()}],"rounded-br":[{"rounded-br":N()}],"rounded-bl":[{"rounded-bl":N()}],"border-w":[{border:P()}],"border-w-x":[{"border-x":P()}],"border-w-y":[{"border-y":P()}],"border-w-s":[{"border-s":P()}],"border-w-e":[{"border-e":P()}],"border-w-bs":[{"border-bs":P()}],"border-w-be":[{"border-be":P()}],"border-w-t":[{"border-t":P()}],"border-w-r":[{"border-r":P()}],"border-w-b":[{"border-b":P()}],"border-w-l":[{"border-l":P()}],"divide-x":[{"divide-x":P()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":P()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...F(),`hidden`,`none`]}],"divide-style":[{divide:[...F(),`hidden`,`none`]}],"border-color":[{border:A()}],"border-color-x":[{"border-x":A()}],"border-color-y":[{"border-y":A()}],"border-color-s":[{"border-s":A()}],"border-color-e":[{"border-e":A()}],"border-color-bs":[{"border-bs":A()}],"border-color-be":[{"border-be":A()}],"border-color-t":[{"border-t":A()}],"border-color-r":[{"border-r":A()}],"border-color-b":[{"border-b":A()}],"border-color-l":[{"border-l":A()}],"divide-color":[{divide:A()}],"outline-style":[{outline:[...F(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[q,Q,X]}],"outline-w":[{outline:[``,q,ut,Z]}],"outline-color":[{outline:A()}],shadow:[{shadow:[``,`inner`,`none`,u,ht,lt]}],"shadow-color":[{shadow:A()}],"inset-shadow":[{"inset-shadow":[`none`,d,ht,lt]}],"inset-shadow-color":[{"inset-shadow":A()}],"ring-w":[{ring:P()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:A()}],"ring-offset-w":[{"ring-offset":[q,Z]}],"ring-offset-color":[{"ring-offset":A()}],"inset-ring-w":[{"inset-ring":P()}],"inset-ring-color":[{"inset-ring":A()}],"text-shadow":[{"text-shadow":[`none`,f,ht,lt]}],"text-shadow-color":[{"text-shadow":A()}],opacity:[{opacity:[q,Q,X]}],"mix-blend":[{"mix-blend":[...ce(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ce()}],"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":[q]}],"mask-image-linear-from-pos":[{"mask-linear-from":I()}],"mask-image-linear-to-pos":[{"mask-linear-to":I()}],"mask-image-linear-from-color":[{"mask-linear-from":A()}],"mask-image-linear-to-color":[{"mask-linear-to":A()}],"mask-image-t-from-pos":[{"mask-t-from":I()}],"mask-image-t-to-pos":[{"mask-t-to":I()}],"mask-image-t-from-color":[{"mask-t-from":A()}],"mask-image-t-to-color":[{"mask-t-to":A()}],"mask-image-r-from-pos":[{"mask-r-from":I()}],"mask-image-r-to-pos":[{"mask-r-to":I()}],"mask-image-r-from-color":[{"mask-r-from":A()}],"mask-image-r-to-color":[{"mask-r-to":A()}],"mask-image-b-from-pos":[{"mask-b-from":I()}],"mask-image-b-to-pos":[{"mask-b-to":I()}],"mask-image-b-from-color":[{"mask-b-from":A()}],"mask-image-b-to-color":[{"mask-b-to":A()}],"mask-image-l-from-pos":[{"mask-l-from":I()}],"mask-image-l-to-pos":[{"mask-l-to":I()}],"mask-image-l-from-color":[{"mask-l-from":A()}],"mask-image-l-to-color":[{"mask-l-to":A()}],"mask-image-x-from-pos":[{"mask-x-from":I()}],"mask-image-x-to-pos":[{"mask-x-to":I()}],"mask-image-x-from-color":[{"mask-x-from":A()}],"mask-image-x-to-color":[{"mask-x-to":A()}],"mask-image-y-from-pos":[{"mask-y-from":I()}],"mask-image-y-to-pos":[{"mask-y-to":I()}],"mask-image-y-from-color":[{"mask-y-from":A()}],"mask-image-y-to-color":[{"mask-y-to":A()}],"mask-image-radial":[{"mask-radial":[Q,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":I()}],"mask-image-radial-to-pos":[{"mask-radial-to":I()}],"mask-image-radial-from-color":[{"mask-radial-from":A()}],"mask-image-radial-to-color":[{"mask-radial-to":A()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[q]}],"mask-image-conic-from-pos":[{"mask-conic-from":I()}],"mask-image-conic-to-pos":[{"mask-conic-to":I()}],"mask-image-conic-from-color":[{"mask-conic-from":A()}],"mask-image-conic-to-color":[{"mask-conic-to":A()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:j()}],"mask-size":[{mask:se()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Q,X]}],filter:[{filter:[``,`none`,Q,X]}],blur:[{blur:le()}],brightness:[{brightness:[q,Q,X]}],contrast:[{contrast:[q,Q,X]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,ht,lt]}],"drop-shadow-color":[{"drop-shadow":A()}],grayscale:[{grayscale:[``,q,Q,X]}],"hue-rotate":[{"hue-rotate":[q,Q,X]}],invert:[{invert:[``,q,Q,X]}],saturate:[{saturate:[q,Q,X]}],sepia:[{sepia:[``,q,Q,X]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Q,X]}],"backdrop-blur":[{"backdrop-blur":le()}],"backdrop-brightness":[{"backdrop-brightness":[q,Q,X]}],"backdrop-contrast":[{"backdrop-contrast":[q,Q,X]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,q,Q,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[q,Q,X]}],"backdrop-invert":[{"backdrop-invert":[``,q,Q,X]}],"backdrop-opacity":[{"backdrop-opacity":[q,Q,X]}],"backdrop-saturate":[{"backdrop-saturate":[q,Q,X]}],"backdrop-sepia":[{"backdrop-sepia":[``,q,Q,X]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":x()}],"border-spacing-x":[{"border-spacing-x":x()}],"border-spacing-y":[{"border-spacing-y":x()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Q,X]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[q,`initial`,Q,X]}],ease:[{ease:[`linear`,`initial`,g,Q,X]}],delay:[{delay:[q,Q,X]}],animate:[{animate:[`none`,te,Q,X]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[m,Q,X]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:L()}],"rotate-x":[{"rotate-x":L()}],"rotate-y":[{"rotate-y":L()}],"rotate-z":[{"rotate-z":L()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":[`scale-3d`],skew:[{skew:de()}],"skew-x":[{"skew-x":de()}],"skew-y":[{"skew-y":de()}],transform:[{transform:[Q,X,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:R()}],"translate-x":[{"translate-x":R()}],"translate-y":[{"translate-y":R()}],"translate-z":[{"translate-z":R()}],"translate-none":[`translate-none`],zoom:[{zoom:[J,Q,X]}],accent:[{accent:A()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:A()}],"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`,Q,X]}],"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":A()}],"scrollbar-track-color":[{"scrollbar-track":A()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":x()}],"scroll-mx":[{"scroll-mx":x()}],"scroll-my":[{"scroll-my":x()}],"scroll-ms":[{"scroll-ms":x()}],"scroll-me":[{"scroll-me":x()}],"scroll-mbs":[{"scroll-mbs":x()}],"scroll-mbe":[{"scroll-mbe":x()}],"scroll-mt":[{"scroll-mt":x()}],"scroll-mr":[{"scroll-mr":x()}],"scroll-mb":[{"scroll-mb":x()}],"scroll-ml":[{"scroll-ml":x()}],"scroll-p":[{"scroll-p":x()}],"scroll-px":[{"scroll-px":x()}],"scroll-py":[{"scroll-py":x()}],"scroll-ps":[{"scroll-ps":x()}],"scroll-pe":[{"scroll-pe":x()}],"scroll-pbs":[{"scroll-pbs":x()}],"scroll-pbe":[{"scroll-pbe":x()}],"scroll-pt":[{"scroll-pt":x()}],"scroll-pr":[{"scroll-pr":x()}],"scroll-pb":[{"scroll-pb":x()}],"scroll-pl":[{"scroll-pl":x()}],"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`,Q,X]}],fill:[{fill:[`none`,...A()]}],"stroke-w":[{stroke:[q,ut,Z,it]}],stroke:[{stroke:[`none`,...A()]}],"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`]}},Dt=(e,{cacheSize:t,prefix:n,experimentalParseClassName:r,extend:i={},override:a={}})=>(Ot(e,`cacheSize`,t),Ot(e,`prefix`,n),Ot(e,`experimentalParseClassName`,r),kt(e.theme,a.theme),kt(e.classGroups,a.classGroups),kt(e.conflictingClassGroups,a.conflictingClassGroups),kt(e.conflictingClassGroupModifiers,a.conflictingClassGroupModifiers),Ot(e,`postfixLookupClassGroups`,a.postfixLookupClassGroups),Ot(e,`orderSensitiveModifiers`,a.orderSensitiveModifiers),At(e.theme,i.theme),At(e.classGroups,i.classGroups),At(e.conflictingClassGroups,i.conflictingClassGroups),At(e.conflictingClassGroupModifiers,i.conflictingClassGroupModifiers),jt(e,i,`postfixLookupClassGroups`),jt(e,i,`orderSensitiveModifiers`),e),Ot=(e,t,n)=>{n!==void 0&&(e[t]=n)},kt=(e,t)=>{if(t)for(let n in t)Ot(e,n,t[n])},At=(e,t)=>{if(t)for(let n in t)jt(e,t,n)},jt=(e,t,n)=>{let r=t[n];r!==void 0&&(e[n]=e[n]?e[n].concat(r):r)},Mt=((e,...t)=>typeof e==`function`?ze(Et,e,...t):ze(()=>Dt(Et(),e),...t))({extend:{classGroups:{"font-size":[{text:[`micro`,`badge`,`caption`,`body`,`body-lg`,`lead`,`title`,`display`,`hero`]}]}}});function Nt(...e){return Mt(pe(e))}var Pt=`console-theme`;function Ft(e){return e===`light`||e===`dark`?e:`dark`}function It(e=`dark`){if(typeof window>`u`||!window.localStorage)return e;try{return Ft(window.localStorage.getItem(`console-theme`)??e)}catch{return e}}function Lt(e){return e===`dark`}function Rt(e){typeof document>`u`||(document.documentElement.dataset.theme=Lt(e)?`dark`:`light`)}function zt(e){if(typeof window<`u`)try{window.localStorage.setItem(Pt,e)}catch{}Rt(e)}var Bt={primary:`btn-primary bg-accent text-accent-foreground hover:bg-accent-hover`,secondary:`btn-secondary border border-inner-border bg-hover text-text-primary hover:bg-active-pill hover:border-border-strong`,ghost:`btn-ghost text-text-secondary hover:bg-hover hover:text-text-primary`,danger:`btn-danger bg-red text-white hover:opacity-90`},Vt={sm:`btn-sm h-15 px-5 text-badge [&_svg]:size-6.5`,md:``,lg:``,icon:`btn-icon size-17 p-0 grid place-items-center [&_svg]:size-7.5`};function Ht({variant:e=`secondary`,size:t=`md`,className:n}={}){return Nt(`btn inline-flex items-center justify-center gap-3.5 rounded-control font-semibold text-caption px-7 py-2 transition-all active:scale-[0.97]`,Bt[e],Vt[t],n)}var Ut=(0,g.forwardRef)(({className:e=``,variant:t=`secondary`,size:n=`md`,icon:r,label:i,loading:a=!1,children:o,type:s=`button`,...c},l)=>{let u=n===`icon`&&i!==void 0,d=a?(0,h.jsx)(f,{size:14,className:`animate-spin`}):r;return(0,h.jsxs)(`button`,{ref:l,type:s,className:Ht({variant:t,size:u?`md`:n,className:u?Nt(`btn-labeled h-15 px-5 gap-3 text-badge [&_svg]:size-6.5`,e):e}),"aria-busy":a||void 0,...c,children:[d?(0,h.jsx)(`span`,{className:`btn-icon-wrapper inline-flex items-center`,"aria-hidden":`true`,children:d}):null,u?(0,h.jsx)(`span`,{className:`btn-label`,children:i}):o]})});Ut.displayName=`Button`;function Wt(){let[e,t]=(0,g.useState)(!0),n=(0,g.useRef)(document.hidden);return(0,g.useEffect)(()=>{let e=()=>{let e=!document.hidden;n.current!==e&&(n.current=e,t(e))};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]),e}var Gt=2e3,Kt=6e4,qt=400;function Jt(e){let t=Wt(),{url:n,enabled:r=!0}=e,i=(0,g.useRef)(e);i.current=e;let a=e.events?.join(`,`)??``;(0,g.useEffect)(()=>{if(!t||!r)return;let e=!0,o=0,s,c,l=Gt,u=()=>{c!==void 0&&(clearTimeout(c),c=void 0)},d=()=>{if(!e||c!==void 0)return;let t=Math.floor(Math.random()*qt),n=Math.min(l+t,Kt);c=setTimeout(()=>{c=void 0,f()},n)},f=async()=>{if(!e)return;let t=++o;try{await i.current.preflight?.()}catch{e&&t===o&&d();return}if(!e||t!==o)return;let r=new EventSource(n);s=r,r.onopen=()=>{e&&t===o&&(l=Gt,i.current.onOpen?.())},r.onerror=()=>{e&&t===o&&(r.close(),s===r&&(s=void 0),i.current.onClose?.(),d())};for(let n of a?a.split(`,`):[])r.addEventListener(n,r=>{if(!e||t!==o)return;let a=r;typeof a.data==`string`&&i.current.onEvent?.(n,a.data)})};return f(),()=>{e=!1,o+=1,u(),s?.close()}},[r,a,n,t])}function Yt(e,t){let n=[e,t].filter(e=>!!e).join(`
|
|
2
|
-
`);return{...t?{description:t}:{},action:{label:`Copy`,onClick:()=>{if(!navigator.clipboard){k.error(`Clipboard unavailable`);return}navigator.clipboard.writeText(n).then(()=>k.success(`Toast content copied`,{duration:2e3}),()=>k.error(`Copy failed`,{duration:2e3}))}}}}var Xt={success:(e,t)=>k.success(e,Yt(e,t)),successRich:(e,t,n)=>k.success(e,{description:t,action:{label:`Copy`,onClick:()=>{if(!navigator.clipboard){k.error(`Clipboard unavailable`);return}navigator.clipboard.writeText(`${e}\n${n}`).then(()=>k.success(`Toast content copied`,{duration:2e3}),()=>k.error(`Copy failed`,{duration:2e3}))}}}),error:(e,t)=>k.error(e,Yt(e,t)),warning:(e,t)=>k.warning(e,Yt(e,t)),dismiss:e=>k.dismiss(e)};function Zt(e){if(e==null||!Number.isFinite(e))return`—`;if(e<0)return`${Math.round(e)} B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;let i=r===0?0:1;return`${n.toFixed(i)} ${t[r]}`}function Qt(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(1)}s`}function $t(e){return e==null||!Number.isFinite(e)?`—`:e<1e3?`${Math.round(e)} ms`:`${(e/1e3).toFixed(1)} s`}function en(e){if(e==null||!Number.isFinite(e))return`—`;let t=Math.max(0,Math.floor(e)),n=Math.floor(t/86400),r=Math.floor(t%86400/3600),i=Math.floor(t%3600/60),a=t%60;return n>0?`${n}d ${r}h`:r>0?`${r}h ${i}m`:i>0?`${i}m ${a}s`:`${a}s`}function tn(e,t){return e==null||!Number.isFinite(e)?`—`:Math.round(e).toLocaleString(t)}function nn(e,t){return e==null||!Number.isFinite(e)?`—`:e.toLocaleString(t,{maximumFractionDigits:2})}export{d as C,s as D,c as E,o as O,f as S,l as T,R as _,Qt as a,ee as b,Jt as c,Rt as d,Lt as f,pe as g,Nt as h,tn as i,a as k,Ut as l,zt as m,nn as n,en as o,It as p,$t as r,Xt as s,Zt as t,Ht as u,k as v,u as w,p as x,m as y};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' role='img'>
|
|
2
|
-
<defs><linearGradient id='g' x1='0%' y1='0%' x2='100%' y2='100%'><stop offset='0%' stop-color='#7c3aed'/><stop offset='100%' stop-color='#ec4899'/></linearGradient></defs>
|
|
3
|
-
<rect width='64' height='64' rx='14' fill='url(#g)'/>
|
|
4
|
-
<text x='50%' y='54%' dominant-baseline='middle' text-anchor='middle' font-family='Inter, system-ui, sans-serif' font-size='22' font-weight='800' fill='white' letter-spacing='-0.5'>ZC</text>
|
|
5
|
-
<title>Z.AI Code</title>
|
|
6
|
-
</svg>
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e){let t=Date.now();return e.resetsAt&&(e.modelIds?.length||e.recurring===!1)&&new Date(e.resetsAt).getTime()<=t?`expired`:e.startsAt&&new Date(e.startsAt).getTime()>t?`future`:`current`}function t(e,t=!0){if(!e)return``;let n=new Date(e).getTime()-Date.now();if(!Number.isFinite(n)||n<=0)return t?`Resetting soon`:`Expired`;let r=t?`Resets in`:`Expires in`,i=Math.ceil(n/6e4);if(i<60)return`${r} ${i}mins`;let a=Math.floor(i/60),o=i%60;if(a<24)return`${r} ${a}h${o>0?` ${o}mins`:``}`;let s=Math.floor(a/24),c=a%24,l=`${c>0?` ${c}h`:``}${o>0?` ${o}mins`:``}`;if(s>=365){let e=Math.floor(s/365),t=s%365;return`${r} ${e}y${t>0?` ${t}d`:``}${l}`}if(s>=30){let e=Math.floor(s/30),t=s%30;return`${r} ${e}mo${t>0?` ${t}d`:``}${l}`}return`${r} ${s}d${l}`}function n(e){let t=/^(\d+)\s*hour$/i.exec(e.trim());if(!t)return e;let n=Number(t[1]);if(!Number.isFinite(n)||n<=0)return e;if(n===24)return`Daily`;if(n===168)return`Weekly`;if(n===720)return`Monthly`;if(n===8760)return`Yearly`;if(n>=8760){let e=Math.floor(n%8760/24);return`${Math.floor(n/8760)}y${e>0?` ${e}d`:``}`}if(n>=720){let e=Math.floor(n%720/24);return`${Math.floor(n/720)}mo${e>0?` ${e}d`:``}`}return n>=24?`${Math.floor(n/24)}d${n%24>0?` ${n%24}h`:``}`:`${n}h`}function r(e){if(!e)return``;let t=new Date(e);return Number.isFinite(t.getTime())?`Last refreshed: ${t.toLocaleString([],{dateStyle:`medium`,timeStyle:`short`})}`:``}function i(t){let n=0,r=0,i=!1,o=!1,s=null,c=new Map,l=!1,u=!1;for(let a of t){let t=e(a);if(a.modelIds?.length&&(l=!0),t!==`future`){if(t===`expired`&&(u=!0),a.modelIds?.length){let e=t===`expired`?0:a.remainingPercent??a.remaining??(a.limit!=null&&a.used!=null?a.limit-a.used:null),n=typeof e==`number`&&Number.isFinite(e)?e:null;for(let e of a.modelIds){let t=c.get(e);c.set(e,t===void 0?n:t!==null&&t>0?Math.max(t,n??0):n!==null&&n>0?n:t===null||n===null?null:Math.max(t,n))}continue}if(t!==`expired`){if(a.accounting===`pooled`){let e=typeof a.limit==`number`&&Number.isFinite(a.limit)?a.limit:null,t=null;typeof a.remaining==`number`&&Number.isFinite(a.remaining)?t=a.remaining:e!==null&&typeof a.used==`number`&&Number.isFinite(a.used)&&(t=e-a.used),t!==null&&(n+=Math.max(0,t),e===null?o=!0:r+=e,i=!0);continue}if(typeof a.remainingPercent==`number`&&Number.isFinite(a.remainingPercent)){let e=Math.min(100,Math.max(0,a.remainingPercent));s=s===null?e:Math.min(s,e)}}}}let d=null,f=[...c.values()].filter(e=>e!==null&&e>0).length,p=i&&n<=0||s!==null&&s<=0,m=!p&&(l?f>0:n>0||s!==null&&s>0),h=p||(l?c.size>0&&[...c.values()].every(e=>e!==null&&e<=0):u&&!i&&s===null);if(i?d=r>0&&!o?`${a(n)} of ${a(r)}`:`${a(n)} left`:!l&&s!==null&&(d=`${Math.round(s)}% left`),c.size>0){let e=`${p?0:f} of ${c.size} models available`;d=d?`${d} · ${e}`:e,s!==null&&(d+=` · ${Math.round(s)}% account limit left`)}return{remaining:n,total:r,hasCredits:i,lowestPercent:s,text:d,low:h||(s??100)<=10,available:m,empty:h}}function a(e){return e.toLocaleString(void 0,{maximumFractionDigits:1})}function o(e){if(!e)return null;let t=e.toLowerCase();return t.includes(`invalidated`)||t.includes(`reauthorization`)||t.includes(`refresh token revoked`)?`OAuth account invalidated — re-login required`:t.includes(`endpoint is not available`)||t===`not available`?`Quota tracking is not supported for this provider`:t.includes(`overloaded`)||t.includes(`capacity`)||t.includes(`temporarily unavailable`)?`Provider capacity unavailable — retry after the indicated time`:t.includes(`usage limit`)||t.includes(`quota`)||t.includes(`rate limit`)?`Quota exhausted or rate limited — wait for reset`:t.includes(`http 500`)||t.includes(`internal server error`)?`Provider temporarily unavailable — retry in a moment`:t.includes(`http 429`)||t.includes(`too many requests`)?`Rate limited — slow down requests`:t.includes(`http 401`)||t.includes(`unauthorized`)||t.includes(`invalid`)?`Credential expired — re-login or refresh token`:t.includes(`http 403`)||t.includes(`forbidden`)?`Access denied — check account permissions`:t.includes(`http 402`)||t.includes(`payment`)?`Payment required — top up account balance`:t.includes(`connect`)||t.includes(`network`)||t.includes(`timeout`)?`Network error — check connection and retry`:`Provider error — inspect account health details`}function s(e){return e===null?{bar:`var(--text-tertiary)`,text:`var(--text-tertiary)`}:e<20?{bar:`var(--red)`,text:`var(--red)`}:e<50?{bar:`var(--orange)`,text:`var(--orange)`}:{bar:`var(--green)`,text:`var(--green)`}}function c(e,t){let n=Math.ceil(e.length/4),r=Math.max(0,n-1),i=Math.min(Math.max(0,Number.isFinite(t)?Math.trunc(t):0),r),a=i*4;return{items:e.slice(a,a+4),page:i,pageCount:n,startIndex:a}}function l(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function u(e){return e.startsWith(`eyJ`)||e.startsWith(`sk-`)||e.startsWith(`…`)}function d(e,t){return e.startsWith(`eyJ`)||e===`—`?t:e}var f=new Set([`oauth`,`api_key`,`none`]);function p(e,t){let n=t.trim()||`Unnamed account`,r=d(e,n).trim(),i=r&&r!==`—`&&!f.has(r.toLowerCase())?r:null,a=[i,n].find(e=>e!==null&&l(e))??null;return a===null?{primary:n,secondary:i!==null&&i!==n&&!u(i)?i:null}:{primary:a,secondary:[n,i].find(e=>e!==null&&e!==a&&!u(e))??null}}export{o as a,i as c,t as i,e as l,r as n,c as o,n as r,s,p as t};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import type {} from "../contracts";
|
|
2
|
-
import { homeDir, isLocalEndpoint, readJsonFile, stripV1Suffix, writeJsonFile } from "../fs-ops";
|
|
3
|
-
import type { InjectorSpec } from "../contracts";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
// Cline injector spec.
|
|
7
|
-
interface ClineGlobalState {
|
|
8
|
-
actModeApiProvider?: string;
|
|
9
|
-
planModeApiProvider?: string;
|
|
10
|
-
openAiBaseUrl?: string;
|
|
11
|
-
openAiModelId?: string;
|
|
12
|
-
planModeOpenAiModelId?: string;
|
|
13
|
-
[key: string]: unknown;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
interface ClineSecrets {
|
|
17
|
-
openAiApiKey?: string;
|
|
18
|
-
[key: string]: unknown;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const clineSecretsPath = () => `${homeDir()}/.cline/data/secrets.json`;
|
|
22
|
-
|
|
23
|
-
export const clineSpec: InjectorSpec = {
|
|
24
|
-
toolId: "cline",
|
|
25
|
-
displayName: "Cline",
|
|
26
|
-
binary: "cline",
|
|
27
|
-
resolvePath: () => `${homeDir()}/.cline/data/globalState.json`,
|
|
28
|
-
resolveDir: () => `${homeDir()}/.cline/data`,
|
|
29
|
-
|
|
30
|
-
async readStatus(path) {
|
|
31
|
-
const state = (await readJsonFile(path)) as ClineGlobalState | null;
|
|
32
|
-
const secrets = (await readJsonFile(clineSecretsPath())) as ClineSecrets | null;
|
|
33
|
-
const endpoint = state?.openAiBaseUrl ?? null;
|
|
34
|
-
const models = [state?.openAiModelId, state?.planModeOpenAiModelId].filter(
|
|
35
|
-
(m): m is string => typeof m === "string",
|
|
36
|
-
);
|
|
37
|
-
const configured = state?.actModeApiProvider === "openai" && isLocalEndpoint(endpoint);
|
|
38
|
-
return {
|
|
39
|
-
configured,
|
|
40
|
-
currentEndpoint: endpoint,
|
|
41
|
-
rawApiKey: secrets?.openAiApiKey ?? null,
|
|
42
|
-
currentModels: models.length > 0 ? models : null,
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
async apply(input, path) {
|
|
47
|
-
const model = input.activeModel ?? input.modelIds[0] ?? "";
|
|
48
|
-
const baseUrl = stripV1Suffix(input.endpoint);
|
|
49
|
-
|
|
50
|
-
const state = ((await readJsonFile(path)) as ClineGlobalState | null) ?? {};
|
|
51
|
-
state.actModeApiProvider = "openai";
|
|
52
|
-
state.planModeApiProvider = "openai";
|
|
53
|
-
state.openAiBaseUrl = baseUrl;
|
|
54
|
-
state.openAiModelId = model;
|
|
55
|
-
state.planModeOpenAiModelId = model;
|
|
56
|
-
await writeJsonFile(path, state);
|
|
57
|
-
|
|
58
|
-
const secrets = ((await readJsonFile(clineSecretsPath())) as ClineSecrets | null) ?? {};
|
|
59
|
-
secrets.openAiApiKey = input.apiKey;
|
|
60
|
-
await writeJsonFile(clineSecretsPath(), secrets);
|
|
61
|
-
},
|
|
62
|
-
|
|
63
|
-
async reset(path) {
|
|
64
|
-
const state = (await readJsonFile(path)) as ClineGlobalState | null;
|
|
65
|
-
if (!state) return false;
|
|
66
|
-
|
|
67
|
-
if (state.actModeApiProvider === "openai") {
|
|
68
|
-
delete state.openAiBaseUrl;
|
|
69
|
-
delete state.openAiModelId;
|
|
70
|
-
delete state.planModeOpenAiModelId;
|
|
71
|
-
state.actModeApiProvider = "cline";
|
|
72
|
-
state.planModeApiProvider = "cline";
|
|
73
|
-
}
|
|
74
|
-
await writeJsonFile(path, state);
|
|
75
|
-
|
|
76
|
-
const secrets = (await readJsonFile(clineSecretsPath())) as ClineSecrets | null;
|
|
77
|
-
if (secrets?.openAiApiKey) {
|
|
78
|
-
delete secrets.openAiApiKey;
|
|
79
|
-
await writeJsonFile(clineSecretsPath(), secrets);
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
download(input) {
|
|
84
|
-
const model = input.activeModel ?? input.modelIds[0] ?? "";
|
|
85
|
-
const baseUrl = stripV1Suffix(input.endpoint);
|
|
86
|
-
const globalState = JSON.stringify(
|
|
87
|
-
{
|
|
88
|
-
actModeApiProvider: "openai",
|
|
89
|
-
planModeApiProvider: "openai",
|
|
90
|
-
openAiBaseUrl: baseUrl,
|
|
91
|
-
openAiModelId: model,
|
|
92
|
-
planModeOpenAiModelId: model,
|
|
93
|
-
},
|
|
94
|
-
null,
|
|
95
|
-
2,
|
|
96
|
-
);
|
|
97
|
-
const secrets = JSON.stringify({ openAiApiKey: input.apiKey }, null, 2);
|
|
98
|
-
return {
|
|
99
|
-
content: `# ~/.cline/data/globalState.json\n${globalState}\n\n# ~/.cline/data/secrets.json\n${secrets}\n`,
|
|
100
|
-
filename: "cline-config.txt",
|
|
101
|
-
mimeType: "text/plain",
|
|
102
|
-
};
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
messages: {
|
|
106
|
-
applied: "Cline settings applied successfully",
|
|
107
|
-
reset: "Cartethyia settings removed from Cline",
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { platform } from "node:os";
|
|
2
|
-
import type { ApplyInput } from "../contracts";
|
|
3
|
-
import { ensureV1Suffix, fileExists, homeDir, join, readJsonFile, writeJsonFile } from "../fs-ops";
|
|
4
|
-
import type { InjectorSpec } from "../contracts";
|
|
5
|
-
|
|
6
|
-
const IS_WIN = platform() === "win32";
|
|
7
|
-
const IS_MAC = platform() === "darwin";
|
|
8
|
-
|
|
9
|
-
// GitHub Copilot injector spec.
|
|
10
|
-
interface CopilotModel {
|
|
11
|
-
id: string;
|
|
12
|
-
name: string;
|
|
13
|
-
url: string;
|
|
14
|
-
toolCalling: boolean;
|
|
15
|
-
vision: boolean;
|
|
16
|
-
maxInputTokens: number;
|
|
17
|
-
maxOutputTokens: number;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
interface CopilotEntry {
|
|
21
|
-
name: string;
|
|
22
|
-
vendor: string;
|
|
23
|
-
apiKey: string;
|
|
24
|
-
models: CopilotModel[];
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function buildCopilotEntry(input: ApplyInput): CopilotEntry {
|
|
28
|
-
const url = `${ensureV1Suffix(input.endpoint)}/chat/completions#models.ai.azure.com`;
|
|
29
|
-
return {
|
|
30
|
-
name: "Cartethyia",
|
|
31
|
-
vendor: "azure",
|
|
32
|
-
apiKey: input.apiKey,
|
|
33
|
-
models: input.modelIds.map((id) => ({
|
|
34
|
-
id,
|
|
35
|
-
name: id,
|
|
36
|
-
url,
|
|
37
|
-
toolCalling: true,
|
|
38
|
-
vision: false,
|
|
39
|
-
maxInputTokens: 128000,
|
|
40
|
-
maxOutputTokens: 16000,
|
|
41
|
-
})),
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const copilotSpec: InjectorSpec = {
|
|
46
|
-
toolId: "copilot",
|
|
47
|
-
displayName: "Copilot",
|
|
48
|
-
checkInstalled: (path) => fileExists(path),
|
|
49
|
-
resolvePath: () => {
|
|
50
|
-
const home = homeDir();
|
|
51
|
-
if (IS_WIN) return join(process.env.APPDATA ?? home, "Code", "User", "chatLanguageModels.json");
|
|
52
|
-
if (IS_MAC)
|
|
53
|
-
return join(
|
|
54
|
-
home,
|
|
55
|
-
"Library",
|
|
56
|
-
"Application Support",
|
|
57
|
-
"Code",
|
|
58
|
-
"User",
|
|
59
|
-
"chatLanguageModels.json",
|
|
60
|
-
);
|
|
61
|
-
return join(home, ".config", "Code", "User", "chatLanguageModels.json");
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
async readStatus(path) {
|
|
65
|
-
const config = await readJsonFile(path);
|
|
66
|
-
const entry = Array.isArray(config)
|
|
67
|
-
? ((config as CopilotEntry[]).find((e) => e?.name === "Cartethyia") ?? null)
|
|
68
|
-
: null;
|
|
69
|
-
return {
|
|
70
|
-
configured: entry !== null,
|
|
71
|
-
currentEndpoint: entry?.models?.[0]?.url ?? null,
|
|
72
|
-
rawApiKey: entry?.apiKey ?? null,
|
|
73
|
-
currentModels: entry?.models?.map((m) => m.id) ?? null,
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
async apply(input, path) {
|
|
78
|
-
const existing = await readJsonFile(path);
|
|
79
|
-
const config = Array.isArray(existing) ? [...(existing as CopilotEntry[])] : [];
|
|
80
|
-
const entry = buildCopilotEntry(input);
|
|
81
|
-
const idx = config.findIndex((e) => e?.name === "Cartethyia");
|
|
82
|
-
if (idx >= 0) config[idx] = entry;
|
|
83
|
-
else config.push(entry);
|
|
84
|
-
await writeJsonFile(path, config);
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
async reset(path) {
|
|
88
|
-
const existing = await readJsonFile(path);
|
|
89
|
-
if (!existing || !Array.isArray(existing)) return false;
|
|
90
|
-
const config = (existing as CopilotEntry[]).filter((e) => e?.name !== "Cartethyia");
|
|
91
|
-
await writeJsonFile(path, config);
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
download(input) {
|
|
95
|
-
return {
|
|
96
|
-
content: JSON.stringify([buildCopilotEntry(input)], null, 2),
|
|
97
|
-
filename: "chatLanguageModels.json",
|
|
98
|
-
mimeType: "application/json",
|
|
99
|
-
};
|
|
100
|
-
},
|
|
101
|
-
|
|
102
|
-
messages: {
|
|
103
|
-
applied: "Copilot settings applied — reload VS Code to take effect",
|
|
104
|
-
reset: "Cartethyia removed from Copilot config",
|
|
105
|
-
resetMissing: "No config file to reset",
|
|
106
|
-
},
|
|
107
|
-
};
|
|
108
|
-
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { platform } from "node:os";
|
|
2
|
-
import type {} from "../contracts";
|
|
3
|
-
import { jsonDownload } from "../contracts";
|
|
4
|
-
import { fileExists, homeDir, join, readJsonFile, writeJsonFile } from "../fs-ops";
|
|
5
|
-
import type { InjectorSpec } from "../contracts";
|
|
6
|
-
|
|
7
|
-
const IS_WIN = platform() === "win32";
|
|
8
|
-
const IS_MAC = platform() === "darwin";
|
|
9
|
-
|
|
10
|
-
// Claude Cowork injector spec.
|
|
11
|
-
function coworkConfigDir(): string {
|
|
12
|
-
if (IS_WIN) return join(process.env.APPDATA ?? homeDir(), "Claude", "configLibrary");
|
|
13
|
-
if (IS_MAC) return join(homeDir(), "Library", "Application Support", "Claude", "configLibrary");
|
|
14
|
-
return join(homeDir(), ".config", "Claude", "configLibrary");
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const coworkSpec: InjectorSpec = {
|
|
18
|
-
toolId: "cowork",
|
|
19
|
-
displayName: "Claude Cowork",
|
|
20
|
-
checkInstalled: (path) => fileExists(path),
|
|
21
|
-
resolveDir: coworkConfigDir,
|
|
22
|
-
resolvePath: () => join(coworkConfigDir(), "_meta.json"),
|
|
23
|
-
|
|
24
|
-
async readStatus(path) {
|
|
25
|
-
// Claude Cowork has no MCP bridge yet (the /mcp surface arrives in P3-2).
|
|
26
|
-
// Report unconfigured instead of a phantom `cartethyia` managed server.
|
|
27
|
-
void path;
|
|
28
|
-
return {
|
|
29
|
-
configured: false,
|
|
30
|
-
currentEndpoint: null,
|
|
31
|
-
rawApiKey: null,
|
|
32
|
-
currentModels: null,
|
|
33
|
-
};
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
async apply(input, path) {
|
|
37
|
-
// Remove any previously-injected phantom `cartethyia` managed server. No
|
|
38
|
-
// MCP bridge exists yet, so `apply` only cleans the stale key.
|
|
39
|
-
void input;
|
|
40
|
-
const meta = ((await readJsonFile(path)) as Record<string, unknown> | null) ?? {};
|
|
41
|
-
if (typeof meta.managedServers === "object" && meta.managedServers !== null) {
|
|
42
|
-
delete (meta.managedServers as Record<string, unknown>).cartethyia;
|
|
43
|
-
}
|
|
44
|
-
await writeJsonFile(path, meta);
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
async reset(path) {
|
|
48
|
-
const meta = (await readJsonFile(path)) as { managedServers?: Record<string, unknown> } | null;
|
|
49
|
-
if (!meta?.managedServers) return false;
|
|
50
|
-
delete meta.managedServers.cartethyia;
|
|
51
|
-
await writeJsonFile(path, meta);
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
download(input) {
|
|
55
|
-
void input;
|
|
56
|
-
return jsonDownload({ managedServers: {} }, { filename: "_meta.json" });
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
messages: {
|
|
60
|
-
applied: "Claude Cowork settings applied",
|
|
61
|
-
reset: "Cartethyia settings removed from Claude Cowork",
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import type {} from "../contracts";
|
|
2
|
-
import { resolveApplyTarget } from "../contracts";
|
|
3
|
-
import { ensureV1Suffix, homeDir, isLocalEndpoint, readTextFile, textGet, textHas, textRemove, textUpsert, writeTextFile } from "../fs-ops";
|
|
4
|
-
import type { InjectorSpec } from "../contracts";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// DeepSeek TUI injector spec.
|
|
8
|
-
export const deepseekTuiSpec: InjectorSpec = {
|
|
9
|
-
toolId: "deepseek-tui",
|
|
10
|
-
displayName: "DeepSeek TUI",
|
|
11
|
-
binary: "deepseek",
|
|
12
|
-
resolvePath: () => `${homeDir()}/.deepseek/config.toml`,
|
|
13
|
-
|
|
14
|
-
async readStatus(path) {
|
|
15
|
-
const text = await readTextFile(path);
|
|
16
|
-
if (!text) {
|
|
17
|
-
return { configured: false, currentEndpoint: null, rawApiKey: null, currentModels: null };
|
|
18
|
-
}
|
|
19
|
-
const provider = textGet(text, { kind: "flat", key: "provider" });
|
|
20
|
-
// `base_url`, `api_key` and `model` are written inside `[providers.openai]`
|
|
21
|
-
// by `apply` below, so they must be read from that section. Reading them as
|
|
22
|
-
// root keys returned null for a config this injector had just written,
|
|
23
|
-
// leaving the dashboard's endpoint and key fields blank.
|
|
24
|
-
const baseUrl = textGet(text, {
|
|
25
|
-
kind: "sectionKey",
|
|
26
|
-
section: "providers.openai",
|
|
27
|
-
key: "base_url",
|
|
28
|
-
});
|
|
29
|
-
const model = textGet(text, { kind: "sectionKey", section: "providers.openai", key: "model" });
|
|
30
|
-
const configured =
|
|
31
|
-
provider === "openai" &&
|
|
32
|
-
textHas(text, { kind: "section", section: "providers.openai" }) &&
|
|
33
|
-
isLocalEndpoint(baseUrl);
|
|
34
|
-
return {
|
|
35
|
-
configured,
|
|
36
|
-
currentEndpoint: baseUrl,
|
|
37
|
-
rawApiKey: textGet(text, { kind: "sectionKey", section: "providers.openai", key: "api_key" }),
|
|
38
|
-
currentModels: model ? [model] : null,
|
|
39
|
-
};
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
async apply(input, path) {
|
|
43
|
-
const model = input.activeModel ?? input.modelIds[0] ?? "";
|
|
44
|
-
const baseUrl = ensureV1Suffix(input.endpoint);
|
|
45
|
-
let text = (await readTextFile(path)) ?? "";
|
|
46
|
-
text = textUpsert(text, { kind: "flat", key: "provider" }, "openai");
|
|
47
|
-
text = textUpsert(
|
|
48
|
-
text,
|
|
49
|
-
{ kind: "section", section: "providers.openai" },
|
|
50
|
-
[` base_url = "${baseUrl}"`, ` api_key = "${input.apiKey}"`, ` model = "${model}"`].join(
|
|
51
|
-
"\n",
|
|
52
|
-
),
|
|
53
|
-
);
|
|
54
|
-
await writeTextFile(path, text);
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
async reset(path) {
|
|
58
|
-
let text = await readTextFile(path);
|
|
59
|
-
if (!text) return false;
|
|
60
|
-
text = textRemove(text, { kind: "section", section: "providers.openai" });
|
|
61
|
-
text = textUpsert(text, { kind: "flat", key: "provider" }, "deepseek");
|
|
62
|
-
await writeTextFile(path, text);
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
download(input) {
|
|
66
|
-
const { model, baseUrl } = resolveApplyTarget(input);
|
|
67
|
-
const content = [
|
|
68
|
-
`provider = "openai"`,
|
|
69
|
-
"",
|
|
70
|
-
"[providers.openai]",
|
|
71
|
-
` base_url = "${baseUrl}"`,
|
|
72
|
-
` api_key = "${input.apiKey}"`,
|
|
73
|
-
` model = "${model}"`,
|
|
74
|
-
"",
|
|
75
|
-
].join("\n");
|
|
76
|
-
return { content, filename: "config.toml", mimeType: "text/plain" };
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
messages: {
|
|
80
|
-
applied: "DeepSeek TUI settings applied",
|
|
81
|
-
reset: "Cartethyia settings removed from DeepSeek TUI",
|
|
82
|
-
resetMissing: "No config file to reset",
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
|