agentstudio 0.4.2 → 0.4.3
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/config/engineConfig.d.ts +15 -0
- package/config/engineConfig.d.ts.map +1 -1
- package/config/engineConfig.js +30 -0
- package/config/engineConfig.js.map +1 -1
- package/config/index.d.ts.map +1 -1
- package/config/index.js +14 -0
- package/config/index.js.map +1 -1
- package/config/paths.d.ts +5 -0
- package/config/paths.d.ts.map +1 -1
- package/config/paths.js +6 -1
- package/config/paths.js.map +1 -1
- package/engines/claude/__tests__/supportedModels.test.d.ts +6 -4
- package/engines/claude/__tests__/supportedModels.test.d.ts.map +1 -1
- package/engines/claude/__tests__/supportedModels.test.js +55 -13
- package/engines/claude/__tests__/supportedModels.test.js.map +1 -1
- package/engines/claude/aguiAdapter.d.ts.map +1 -1
- package/engines/claude/aguiAdapter.js +8 -0
- package/engines/claude/aguiAdapter.js.map +1 -1
- package/engines/claude/claudeEngine.d.ts +36 -3
- package/engines/claude/claudeEngine.d.ts.map +1 -1
- package/engines/claude/claudeEngine.js +132 -13
- package/engines/claude/claudeEngine.js.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +29 -2
- package/index.js.map +1 -1
- package/middleware/callChain.d.ts +10 -0
- package/middleware/callChain.d.ts.map +1 -0
- package/middleware/callChain.js +24 -0
- package/middleware/callChain.js.map +1 -0
- package/middleware/requestId.d.ts +8 -0
- package/middleware/requestId.d.ts.map +1 -0
- package/middleware/requestId.js +18 -0
- package/middleware/requestId.js.map +1 -0
- package/package.json +1 -1
- package/prompts/gameDevSystemPrompt.d.ts +15 -0
- package/prompts/gameDevSystemPrompt.d.ts.map +1 -0
- package/prompts/gameDevSystemPrompt.js +37 -0
- package/prompts/gameDevSystemPrompt.js.map +1 -0
- package/prompts/vibeGamingPrompt.d.ts +13 -0
- package/prompts/vibeGamingPrompt.d.ts.map +1 -0
- package/prompts/vibeGamingPrompt.js +125 -0
- package/prompts/vibeGamingPrompt.js.map +1 -0
- package/public/assets/{AgentsPage-BsZdkqzM.js → AgentsPage-CHee5mUh.js} +1 -1
- package/public/assets/{Button-CMTSYiKV.js → Button-D5qiS7CR.js} +1 -1
- package/public/assets/ChatPage-B7-rn9mH.js +478 -0
- package/public/assets/{CommandForm-DwGvE9A_.js → CommandForm-CMfgHNm5.js} +1 -1
- package/public/assets/{CommandsPage-qDWzq8xp.js → CommandsPage-B4rjtVWk.js} +1 -1
- package/public/assets/{CursorConfigPage-DpUdJzRi.js → CursorConfigPage-DQ-3b3ti.js} +1 -1
- package/public/assets/{DashboardPage-BhqKOzob.js → DashboardPage-BowdW2Xj.js} +1 -1
- package/public/assets/{EngineGate-BjHJu955.js → EngineGate-DYNvEEbW.js} +1 -1
- package/public/assets/{FileBrowser-DboOOM_v.js → FileBrowser-DHyCacM6.js} +1 -1
- package/public/assets/{FileExplorer-x5R0Tcmk.js → FileExplorer-BprfeAH_.js} +1 -1
- package/public/assets/GeneralSettingsPage-C6hJ_zTw.js +1 -0
- package/public/assets/{HooksPage-DDGc0GGV.js → HooksPage-BwE2Zm3X.js} +1 -1
- package/public/assets/{LandingPage-CvY4n9Rh.js → LandingPage-DKvwbGX1.js} +1 -1
- package/public/assets/{LoginPage-C-PZfjYC.js → LoginPage-BpZhqRAN.js} +1 -1
- package/public/assets/{McpAdminSettingsPage-CIILVzB8.js → McpAdminSettingsPage-DuvsM5TX.js} +1 -1
- package/public/assets/{McpPage-B4nQUJag.js → McpPage-Hu8vyMhX.js} +1 -1
- package/public/assets/{MemorySettingsPage-eu6tsuUh.js → MemorySettingsPage-gIWSsrES.js} +1 -1
- package/public/assets/{ModelsPage-Bb5vSsuc.js → ModelsPage-Cosb3hHI.js} +1 -1
- package/public/assets/PluginsPage-CuNui9NV.js +12 -0
- package/public/assets/{ProjectSelector-CybrDbBY.js → ProjectSelector-CyBlHb2H.js} +1 -1
- package/public/assets/{ProjectsPage-DRl-0B4G.js → ProjectsPage-DYhCvH07.js} +1 -1
- package/public/assets/{RulesPage-DUt33RkX.js → RulesPage-C32P_Aqz.js} +1 -1
- package/public/assets/{ScheduledTasksPage-CTDYYRIN.js → ScheduledTasksPage-ixn5qoiD.js} +1 -1
- package/public/assets/SettingsLayout-C_7jR0Te.js +1 -0
- package/public/assets/{SkillsPage-Lzw8I9vR.js → SkillsPage-C-WS4N1Y.js} +1 -1
- package/public/assets/{SubagentForm-BzzeWg0W.js → SubagentForm-BbxljQUp.js} +1 -1
- package/public/assets/{SubagentsPage-bX2XWdJ0.js → SubagentsPage-D66TBaeN.js} +1 -1
- package/public/assets/{SystemInfoPage-nEIQbtwG.js → SystemInfoPage-DXVUncTe.js} +1 -1
- package/public/assets/{TelemetrySettingsPage-q167I4G9.js → TelemetrySettingsPage-Cp3vOu7X.js} +1 -1
- package/public/assets/{ToastTestPage-j224d3QR.js → ToastTestPage-03up9yZR.js} +1 -1
- package/public/assets/{ToolsList-CTsQr53G.js → ToolsList-BZFBEuvQ.js} +1 -1
- package/public/assets/UnifiedToolSelector-DJN7ASu1.js +1 -0
- package/public/assets/{VersionSettingsPage-BwpwiLyl.js → VersionSettingsPage-DppWaX--.js} +1 -1
- package/public/assets/{VoiceSettingsPage-d3l9AWBn.js → VoiceSettingsPage-BWJLeedX.js} +1 -1
- package/public/assets/{WebSocketTunnelPage-BqEUE7mr.js → WebSocketTunnelPage-BPeSTgEZ.js} +1 -1
- package/public/assets/{_basePickBy-DHabY031.js → _basePickBy-0UeYrifO.js} +1 -1
- package/public/assets/{_baseUniq-B1lmu3qr.js → _baseUniq-Q0NUbuSr.js} +1 -1
- package/public/assets/{agents-KlPdWQ8K.js → agents-DR9EZMs5.js} +1 -1
- package/public/assets/{arc-6sRLTBcr.js → arc-BV8erW1-.js} +1 -1
- package/public/assets/{architectureDiagram-VXUJARFQ-kwdTmjuB.js → architectureDiagram-VXUJARFQ-BIodTu6s.js} +1 -1
- package/public/assets/{blockDiagram-VD42YOAC-CYO9EYkJ.js → blockDiagram-VD42YOAC-4H3KjsGf.js} +1 -1
- package/public/assets/{c4Diagram-YG6GDRKO-gAp3--Ee.js → c4Diagram-YG6GDRKO-J2ovCYEr.js} +1 -1
- package/public/assets/channel-gveiJv4S.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-DQVsL-J6.js → chunk-4BX2VUAB-D7Mc44O6.js} +1 -1
- package/public/assets/{chunk-55IACEB6-DVsfnY5X.js → chunk-55IACEB6-CMASo37Z.js} +1 -1
- package/public/assets/{chunk-B4BG7PRW-BNmOvuIn.js → chunk-B4BG7PRW-2T3W2IB6.js} +1 -1
- package/public/assets/{chunk-DI55MBZ5-BkucWe8Y.js → chunk-DI55MBZ5-FR9qswmO.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-BsvfEdnB.js → chunk-FMBD7UC4-Bz2LO9q3.js} +1 -1
- package/public/assets/{chunk-QN33PNHL-DSecsNtM.js → chunk-QN33PNHL-D7mfK9Pm.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-DhvrZSqy.js → chunk-QZHKN3VN-AkuNbqQU.js} +1 -1
- package/public/assets/{chunk-TZMSLE5B-BqQ674GC.js → chunk-TZMSLE5B-DtY3rhWy.js} +1 -1
- package/public/assets/classDiagram-2ON5EDUG-f-lJUj27.js +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-f-lJUj27.js +1 -0
- package/public/assets/clone-D5-Tsf9e.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-D9ZC6LmB.js → cose-bilkent-S5V4N54A-BuEw-qDX.js} +1 -1
- package/public/assets/{dagre-6UL2VRFP-s7YD2ZcY.js → dagre-6UL2VRFP-D-NrLBGh.js} +1 -1
- package/public/assets/{diagram-PSM6KHXK-C7jhP5tx.js → diagram-PSM6KHXK-BFjWOHNz.js} +1 -1
- package/public/assets/{diagram-QEK2KX5R-B348GmS1.js → diagram-QEK2KX5R-C0YlDb8t.js} +1 -1
- package/public/assets/{diagram-S2PKOQOG-Cu-zjwc9.js → diagram-S2PKOQOG-BLKbR12g.js} +1 -1
- package/public/assets/{erDiagram-Q2GNP2WA-tM4HKBpy.js → erDiagram-Q2GNP2WA-Cov6xnUk.js} +1 -1
- package/public/assets/{flowDiagram-NV44I4VS-DjCIshpi.js → flowDiagram-NV44I4VS-DTMKSJI1.js} +1 -1
- package/public/assets/{ganttDiagram-LVOFAZNH-Q6plkI5G.js → ganttDiagram-LVOFAZNH-DR0bcfHY.js} +1 -1
- package/public/assets/{gitGraphDiagram-NY62KEGX-B3Uw90Yt.js → gitGraphDiagram-NY62KEGX-CvxYSabY.js} +1 -1
- package/public/assets/{graph-Bp0jlxBT.js → graph-BYXvelIL.js} +1 -1
- package/public/assets/{index-f67nhEoX.js → index-BIGPvi1D.js} +44 -44
- package/public/assets/infoDiagram-F6ZHWCRC-CL9g-UgS.js +2 -0
- package/public/assets/{journeyDiagram-XKPGCS4Q-CgQogtHU.js → journeyDiagram-XKPGCS4Q-Df8G0pW8.js} +1 -1
- package/public/assets/{kanban-definition-3W4ZIXB7-Cv7kVxyy.js → kanban-definition-3W4ZIXB7-DhoP7TG_.js} +1 -1
- package/public/assets/{layout-6bkH32V1.js → layout-CgO4Vp_y.js} +1 -1
- package/public/assets/{linear-DWoZ6Tbm.js → linear-CaY74pOB.js} +1 -1
- package/public/assets/{mindmap-definition-VGOIOE7T-D5wd9HsH.js → mindmap-definition-VGOIOE7T-CVK2y0WQ.js} +1 -1
- package/public/assets/{pieDiagram-ADFJNKIX-8vPxErLm.js → pieDiagram-ADFJNKIX-BQt_waQk.js} +1 -1
- package/public/assets/{quadrantDiagram-AYHSOK5B-Pn0NZ9k7.js → quadrantDiagram-AYHSOK5B-DvLFoDeH.js} +1 -1
- package/public/assets/{requirementDiagram-UZGBJVZJ-C7u8MiN1.js → requirementDiagram-UZGBJVZJ-C4lqjEUP.js} +1 -1
- package/public/assets/{sankeyDiagram-TZEHDZUN-C660O4mw.js → sankeyDiagram-TZEHDZUN-BKIDyl6M.js} +1 -1
- package/public/assets/{sequenceDiagram-WL72ISMW-pXBA2_3B.js → sequenceDiagram-WL72ISMW-BeyhJ61U.js} +1 -1
- package/public/assets/{stateDiagram-FKZM4ZOC-CxZMM1Lf.js → stateDiagram-FKZM4ZOC-CKyn6eKl.js} +1 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-DogBVcJE.js +1 -0
- package/public/assets/{table-Clz57edU.js → table-BgVewkB5.js} +1 -1
- package/public/assets/{timeline-definition-IT6M3QCI-Crg44TaP.js → timeline-definition-IT6M3QCI-Cm5SIAmT.js} +1 -1
- package/public/assets/tools-crrPnehB.js +1 -0
- package/public/assets/{treemap-KMMF4GRG-bFxwBWXw.js → treemap-KMMF4GRG-CUMeoVWM.js} +1 -1
- package/public/assets/{ui-components-DjgDPiqV.js → ui-components-D1pZO0y-.js} +1 -1
- package/public/assets/{useAgents-8KXN6U61.js → useAgents-M4lcWvy0.js} +1 -1
- package/public/assets/{useClaudeVersions-DicHLV6A.js → useClaudeVersions-CKT_fq1t.js} +1 -1
- package/public/assets/{useCommands-DbSH48ba.js → useCommands-vaoVPEDI.js} +1 -1
- package/public/assets/{useProjects-Bbh6hJMM.js → useProjects-D1ElB-WS.js} +1 -1
- package/public/assets/{useSessions-DOa4-xiB.js → useSessions-Dp1kUl43.js} +1 -1
- package/public/assets/{xychartDiagram-PRI3JC2R-DG3KmjD-.js → xychartDiagram-PRI3JC2R-Cy-SHDyX.js} +1 -1
- package/public/index.html +4 -4
- package/routes/a2a.d.ts.map +1 -1
- package/routes/a2a.js +27 -7
- package/routes/a2a.js.map +1 -1
- package/routes/agents.d.ts.map +1 -1
- package/routes/agents.js +234 -38
- package/routes/agents.js.map +1 -1
- package/routes/agui.d.ts.map +1 -1
- package/routes/agui.js +44 -1
- package/routes/agui.js.map +1 -1
- package/routes/gitVersions.d.ts.map +1 -1
- package/routes/gitVersions.js +80 -1
- package/routes/gitVersions.js.map +1 -1
- package/routes/marketplaceSkills.d.ts +18 -0
- package/routes/marketplaceSkills.d.ts.map +1 -0
- package/routes/marketplaceSkills.js +190 -0
- package/routes/marketplaceSkills.js.map +1 -0
- package/routes/plugins.d.ts.map +1 -1
- package/routes/plugins.js +48 -7
- package/routes/plugins.js.map +1 -1
- package/routes/projects.d.ts.map +1 -1
- package/routes/projects.js +34 -0
- package/routes/projects.js.map +1 -1
- package/schemas/a2a.d.ts +35 -4
- package/schemas/a2a.d.ts.map +1 -1
- package/schemas/a2a.js +9 -1
- package/schemas/a2a.js.map +1 -1
- package/services/__tests__/agentImporter.test.js +197 -0
- package/services/__tests__/agentImporter.test.js.map +1 -1
- package/services/__tests__/pluginInstaller.test.js +2 -1
- package/services/__tests__/pluginInstaller.test.js.map +1 -1
- package/services/agentImporter.d.ts +7 -0
- package/services/agentImporter.d.ts.map +1 -1
- package/services/agentImporter.js +57 -4
- package/services/agentImporter.js.map +1 -1
- package/services/builtinMarketplaceService.d.ts +56 -0
- package/services/builtinMarketplaceService.d.ts.map +1 -0
- package/services/builtinMarketplaceService.js +328 -0
- package/services/builtinMarketplaceService.js.map +1 -0
- package/services/claudeSession.d.ts.map +1 -1
- package/services/claudeSession.js +15 -4
- package/services/claudeSession.js.map +1 -1
- package/services/claudeVersionStorage.js +6 -6
- package/services/claudeVersionStorage.js.map +1 -1
- package/services/gitVersionService.d.ts +22 -0
- package/services/gitVersionService.d.ts.map +1 -1
- package/services/gitVersionService.js +117 -19
- package/services/gitVersionService.js.map +1 -1
- package/services/marketplaceSkillService.d.ts +129 -0
- package/services/marketplaceSkillService.d.ts.map +1 -0
- package/services/marketplaceSkillService.js +358 -0
- package/services/marketplaceSkillService.js.map +1 -0
- package/services/marketplaceUpdateService.d.ts.map +1 -1
- package/services/marketplaceUpdateService.js +29 -2
- package/services/marketplaceUpdateService.js.map +1 -1
- package/services/pluginCopyInstall.d.ts +60 -0
- package/services/pluginCopyInstall.d.ts.map +1 -0
- package/services/pluginCopyInstall.js +290 -0
- package/services/pluginCopyInstall.js.map +1 -0
- package/services/pluginInstallStrategy.d.ts +39 -0
- package/services/pluginInstallStrategy.d.ts.map +1 -0
- package/services/pluginInstallStrategy.js +50 -0
- package/services/pluginInstallStrategy.js.map +1 -0
- package/services/pluginInstaller.d.ts +10 -0
- package/services/pluginInstaller.d.ts.map +1 -1
- package/services/pluginInstaller.js +70 -20
- package/services/pluginInstaller.js.map +1 -1
- package/services/pluginParser.d.ts +17 -1
- package/services/pluginParser.d.ts.map +1 -1
- package/services/pluginParser.js +161 -84
- package/services/pluginParser.js.map +1 -1
- package/services/pluginPaths.d.ts +3 -3
- package/services/pluginPaths.d.ts.map +1 -1
- package/services/pluginPaths.js +33 -14
- package/services/pluginPaths.js.map +1 -1
- package/services/pluginScanner.js +2 -2
- package/services/pluginScanner.js.map +1 -1
- package/services/pluginSymlink.d.ts +10 -0
- package/services/pluginSymlink.d.ts.map +1 -1
- package/services/pluginSymlink.js +117 -1
- package/services/pluginSymlink.js.map +1 -1
- package/services/preSendGuard/__tests__/preSendGuard.test.d.ts +2 -0
- package/services/preSendGuard/__tests__/preSendGuard.test.d.ts.map +1 -0
- package/services/preSendGuard/__tests__/preSendGuard.test.js +102 -0
- package/services/preSendGuard/__tests__/preSendGuard.test.js.map +1 -0
- package/services/preSendGuard/configResolver.d.ts +8 -0
- package/services/preSendGuard/configResolver.d.ts.map +1 -0
- package/services/preSendGuard/configResolver.js +181 -0
- package/services/preSendGuard/configResolver.js.map +1 -0
- package/services/preSendGuard/index.d.ts +9 -0
- package/services/preSendGuard/index.d.ts.map +1 -0
- package/services/preSendGuard/index.js +165 -0
- package/services/preSendGuard/index.js.map +1 -0
- package/services/preSendGuard/providers/httpAuditProvider.d.ts +3 -0
- package/services/preSendGuard/providers/httpAuditProvider.d.ts.map +1 -0
- package/services/preSendGuard/providers/httpAuditProvider.js +98 -0
- package/services/preSendGuard/providers/httpAuditProvider.js.map +1 -0
- package/services/preSendGuard/providers/noopProvider.d.ts +3 -0
- package/services/preSendGuard/providers/noopProvider.d.ts.map +1 -0
- package/services/preSendGuard/providers/noopProvider.js +13 -0
- package/services/preSendGuard/providers/noopProvider.js.map +1 -0
- package/services/runFinishedHooks.d.ts +29 -0
- package/services/runFinishedHooks.d.ts.map +1 -0
- package/services/runFinishedHooks.js +57 -0
- package/services/runFinishedHooks.js.map +1 -0
- package/testing/index.d.ts +18 -0
- package/testing/index.d.ts.map +1 -0
- package/testing/index.js +25 -0
- package/testing/index.js.map +1 -0
- package/testing/mockSdkQuery.d.ts +49 -0
- package/testing/mockSdkQuery.d.ts.map +1 -0
- package/testing/mockSdkQuery.js +209 -0
- package/testing/mockSdkQuery.js.map +1 -0
- package/testing/scenarioLoader.d.ts +71 -0
- package/testing/scenarioLoader.d.ts.map +1 -0
- package/testing/scenarioLoader.js +224 -0
- package/testing/scenarioLoader.js.map +1 -0
- package/types/a2a.d.ts +5 -0
- package/types/a2a.d.ts.map +1 -1
- package/types/agents.d.ts +32 -0
- package/types/agents.d.ts.map +1 -1
- package/types/agents.js +1 -0
- package/types/agents.js.map +1 -1
- package/types/engine.d.ts +6 -0
- package/types/engine.d.ts.map +1 -1
- package/types/plugins.d.ts +12 -2
- package/types/plugins.d.ts.map +1 -1
- package/types/preSendGuard.d.ts +51 -0
- package/types/preSendGuard.d.ts.map +1 -0
- package/types/preSendGuard.js +3 -0
- package/types/preSendGuard.js.map +1 -0
- package/utils/__tests__/claudeUtils.test.js +89 -1
- package/utils/__tests__/claudeUtils.test.js.map +1 -1
- package/utils/claudeUtils.d.ts +1 -1
- package/utils/claudeUtils.d.ts.map +1 -1
- package/utils/claudeUtils.js +92 -37
- package/utils/claudeUtils.js.map +1 -1
- package/public/assets/ChatPage-D8buVhfb.js +0 -478
- package/public/assets/GeneralSettingsPage-DYdwai51.js +0 -1
- package/public/assets/PluginsPage-DD92Xk6X.js +0 -12
- package/public/assets/SettingsLayout-LGC-0pQl.js +0 -1
- package/public/assets/UnifiedToolSelector-BP6fuyzG.js +0 -1
- package/public/assets/channel-D9wyZF1L.js +0 -1
- package/public/assets/classDiagram-2ON5EDUG-DwEqkkEb.js +0 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-DwEqkkEb.js +0 -1
- package/public/assets/clone-3wFPaI2j.js +0 -1
- package/public/assets/infoDiagram-F6ZHWCRC-HUfwv_JT.js +0 -2
- package/public/assets/stateDiagram-v2-4FDKWEC3-CmurzrWf.js +0 -1
- package/public/assets/tools-BZTR2NP1.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./data-structures-ChC1tqVg.js";import{r as n}from"./monaco-editor-BWfQfpij.js";import{b as G,e as M,f as O,g as P,i as R,h as W}from"./index-f67nhEoX.js";import{u as _}from"./tools-BZTR2NP1.js";import{r as y,K as F,M as K,N as p,O as H,Q,G as z,R as q,U as B,V as Y,Y as c,_ as J,$ as X,a0 as Z,d as ee,a1 as k,a2 as j,a3 as se,j as f}from"./ui-components-DjgDPiqV.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-KlPdWQ8K.js";const ce=()=>{const{t:s,i18n:d}=_("pages"),{isMobile:a}=G(),{isCursorEngine:g,isLoading:o}=M(),[i,N]=n.useState(()=>localStorage.getItem("theme")||"auto"),[v,x]=n.useState(d.language),[w,m]=n.useState(()=>localStorage.getItem("agentstudio:chat-version")||"original");n.useEffect(()=>{o||localStorage.getItem("agentstudio:chat-version")||m(g?"agui":"original")},[o,g]);const{currentVersion:h,latestVersion:b,hasUpdate:C,forceCheck:$,isChecking:u,dismissUpdate:S,showUpdateNotification:E}=O(),{systemInfo:r,refetch:I}=P(),[l,V]=n.useState(R());n.useEffect(()=>{x(d.language)},[d.language]),n.useEffect(()=>{(()=>{i==="dark"?document.documentElement.classList.add("dark"):i==="light"?document.documentElement.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")})(),localStorage.setItem("theme",i),window.dispatchEvent(new Event("themechange"))},[i]);const T=t=>{x(t),d.changeLanguage(t)},A=t=>{m(t),localStorage.setItem("agentstudio:chat-version",t)},D=()=>{$(),I()},U=()=>{const t=!l;W(t),V(t)};return e.jsxs("div",{className:`${a?"space-y-4":"space-y-6"}`,children:[e.jsxs("div",{children:[e.jsxs("h1",{className:`${a?"text-xl":"text-2xl"} font-bold text-gray-900 dark:text-white mb-2 flex items-center gap-2`,children:[e.jsx(y,{className:"w-6 h-6"}),s("settings.general.title")]}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:s("settings.general.description")})]}),E&&b&&e.jsx("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/30 dark:to-indigo-900/30 border border-blue-200 dark:border-blue-800 rounded-xl p-4",children:e.jsx("div",{className:"flex items-start justify-between",children:e.jsxs("div",{className:"flex items-start space-x-3",children:[e.jsx("div",{className:"p-2 bg-blue-100 dark:bg-blue-800 rounded-full",children:e.jsx(F,{className:"w-6 h-6 text-blue-600 dark:text-blue-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-blue-900 dark:text-blue-100",children:s("settings.systemInfo.updateAvailable")}),e.jsx("p",{className:"text-sm text-blue-700 dark:text-blue-300 mt-1",children:s("version.newVersionAvailable",{version:b})}),e.jsxs("div",{className:"mt-3 flex space-x-2",children:[e.jsxs("a",{href:"https://github.com/okguitar/agentstudio/releases",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-3 py-1.5 bg-blue-600 text-white text-sm rounded-lg hover:bg-blue-700",children:[e.jsx(K,{className:"w-3 h-3 mr-1"}),s("settings.systemInfo.viewReleases")]}),e.jsx("button",{onClick:S,className:"px-3 py-1.5 text-blue-700 dark:text-blue-300 text-sm bg-blue-100 dark:bg-blue-800 hover:bg-blue-200 dark:hover:bg-blue-700 rounded-lg",children:s("version.dismiss")})]})]})]})})}),e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 ${a?"p-4":"p-6"}`,children:[e.jsxs("h2",{className:`${a?"text-base":"text-lg"} font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2`,children:[e.jsx(p,{className:"w-5 h-5"}),s("settings.general.interfaceSettings")]}),e.jsxs("div",{className:`${a?"space-y-4":"space-y-6"}`,children:[e.jsxs("div",{children:[e.jsx("label",{className:"block font-medium text-gray-900 dark:text-white mb-2",children:s("settings.general.theme.label")}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mb-3",children:s("settings.general.theme.description")}),e.jsx("div",{className:`${a?"grid grid-cols-1 gap-2":"grid grid-cols-3 gap-3"}`,children:[{value:"auto",label:s("settings.general.theme.auto"),icon:p},{value:"light",label:s("settings.general.theme.light"),icon:H},{value:"dark",label:s("settings.general.theme.dark"),icon:Q}].map(t=>e.jsxs("button",{onClick:()=>N(t.value),className:`${a?"p-3":"p-4"} border-2 rounded-lg flex items-center ${a?"flex-row space-x-3":"flex-col space-y-2"} transition-all ${i===t.value?"border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300":"border-gray-200 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-600 dark:text-gray-300 hover:border-gray-300 dark:hover:border-gray-500"}`,children:[e.jsx(t.icon,{className:`${a?"w-5 h-5":"w-6 h-6"}`}),e.jsx("span",{className:"text-sm font-medium",children:t.label})]},t.value))})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"block font-medium text-gray-900 dark:text-white mb-2 flex items-center space-x-2",children:[e.jsx(z,{className:`${a?"w-4 h-4":"w-5 h-5"}`}),e.jsx("span",{children:s("settings.general.language.label")})]}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mb-3",children:s("settings.general.language.description")}),e.jsx("div",{className:`${a?"grid grid-cols-1 gap-2":"grid grid-cols-2 gap-3"}`,children:[{value:"zh-CN",label:"中文简体",flag:"🇨🇳"},{value:"en-US",label:"English",flag:"🇺🇸"}].map(t=>e.jsxs("button",{onClick:()=>T(t.value),className:`${a?"p-3":"p-4"} border-2 rounded-lg flex items-center space-x-3 transition-all ${v===t.value?"border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300":"border-gray-200 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-600 dark:text-gray-300 hover:border-gray-300 dark:hover:border-gray-500"}`,children:[e.jsx("span",{className:`${a?"text-xl":"text-2xl"}`,children:t.flag}),e.jsx("span",{className:"text-sm font-medium",children:t.label})]},t.value))})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"block font-medium text-gray-900 dark:text-white mb-2 flex items-center space-x-2",children:[e.jsx(q,{className:`${a?"w-4 h-4":"w-5 h-5"}`}),e.jsx("span",{children:s("settings.general.chatVersion.label","Chat Panel Version")})]}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mb-3",children:s("settings.general.chatVersion.description","Choose which chat panel implementation to use")}),e.jsx("div",{className:`${a?"grid grid-cols-1 gap-2":"grid grid-cols-2 gap-3"}`,children:[{value:"original",label:s("settings.general.chatVersion.original","Original"),icon:"💬",description:s("settings.general.chatVersion.originalDesc","Classic chat interface")},{value:"agui",label:s("settings.general.chatVersion.agui","AGUI (Experimental)"),icon:"🚀",description:s("settings.general.chatVersion.aguiDesc","TDesign-based with AGUI protocol")}].map(t=>e.jsxs("button",{onClick:()=>A(t.value),className:`${a?"p-3":"p-4"} border-2 rounded-lg flex items-start space-x-3 transition-all text-left ${w===t.value?"border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300":"border-gray-200 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-600 dark:text-gray-300 hover:border-gray-300 dark:hover:border-gray-500"}`,children:[e.jsx("span",{className:`${a?"text-xl":"text-2xl"}`,children:t.icon}),e.jsxs("div",{children:[e.jsx("span",{className:"text-sm font-medium block",children:t.label}),e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:t.description})]})]},t.value))})]})]})]}),e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 ${a?"p-4":"p-6"}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:`${a?"text-base":"text-lg"} font-semibold text-gray-900 dark:text-white flex items-center gap-2`,children:[e.jsx(B,{className:"w-5 h-5"}),s("settings.systemInfo.title")]}),e.jsxs("button",{onClick:D,disabled:u,className:"inline-flex items-center px-3 py-1.5 bg-blue-600 text-white text-sm rounded-lg hover:bg-blue-700 disabled:opacity-50",children:[e.jsx(Y,{className:`w-3 h-3 mr-1 ${u?"animate-spin":""}`}),s("settings.systemInfo.checkUpdate")]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(c,{className:"w-4 h-4"}),s("settings.systemInfo.currentVersion")]}),e.jsxs("div",{className:"flex items-center",children:[e.jsxs("span",{className:"font-mono text-gray-900 dark:text-white",children:["v",h||r?.app.version||"-"]}),!C&&h&&e.jsxs("span",{className:"ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",children:[e.jsx(J,{className:"w-3 h-3 mr-1"}),s("settings.systemInfo.upToDate")]})]})]}),e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(X,{className:"w-4 h-4"}),"Node.js"]}),e.jsx("p",{className:"font-mono text-gray-900 dark:text-white",children:r?.runtime.nodeVersion||"-"})]}),e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-4",children:[e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 mb-1",children:s("settings.systemInfo.platform")}),e.jsxs("p",{className:"text-gray-900 dark:text-white capitalize",children:[r?.runtime.platform||"-"," (",r?.runtime.arch||"-",")"]})]})]}),r?.sdk&&e.jsxs("div",{className:"bg-gradient-to-br from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:[e.jsxs("h3",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-3 flex items-center gap-2",children:[e.jsx(y,{className:"w-4 h-4"}),"Agent SDK Configuration"]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-blue-700 dark:text-blue-300 mb-1",children:"SDK Engine"}),e.jsxs("div",{className:"font-mono text-sm text-blue-900 dark:text-blue-100 font-medium",children:[r.sdk.engine==="claude-code"&&"🤖 Claude Code (Default)",r.sdk.engine==="claude-internal"&&"🔒 Claude Internal",r.sdk.engine==="code-buddy"&&"🤝 Code Buddy (Coming Soon)",!["claude-code","claude-internal","code-buddy"].includes(r.sdk.engine)&&r.sdk.engine]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-blue-700 dark:text-blue-300 mb-1",children:"SDK Directory"}),e.jsx("div",{className:"font-mono text-xs text-blue-900 dark:text-blue-100 break-all",children:r.sdk.directory})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2",children:[e.jsxs("a",{href:r?.links.github||"https://github.com/okguitar/agentstudio",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 p-3 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors text-sm",children:[e.jsx(Z,{className:"w-4 h-4 text-gray-700 dark:text-gray-300"}),e.jsx("span",{className:"text-gray-900 dark:text-white",children:"GitHub"})]}),e.jsxs("a",{href:r?.links.releases||"https://github.com/okguitar/agentstudio/releases",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 p-3 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors text-sm",children:[e.jsx(c,{className:"w-4 h-4 text-gray-700 dark:text-gray-300"}),e.jsx("span",{className:"text-gray-900 dark:text-white",children:"Releases"})]}),e.jsxs("a",{href:r?.links.changelog||"https://github.com/okguitar/agentstudio/blob/main/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 p-3 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors text-sm",children:[e.jsx(ee,{className:"w-4 h-4 text-gray-700 dark:text-gray-300"}),e.jsx("span",{className:"text-gray-900 dark:text-white",children:"Changelog"})]}),e.jsxs("a",{href:r?.links.npm||"https://www.npmjs.com/package/agentstudio",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 p-3 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors text-sm",children:[e.jsx(c,{className:"w-4 h-4 text-red-600 dark:text-red-400"}),e.jsx("span",{className:"text-gray-900 dark:text-white",children:"npm"})]})]})]})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden",children:[e.jsxs("div",{className:`${a?"p-4":"p-6"}`,children:[e.jsxs("h2",{className:`${a?"text-base":"text-lg"} font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2`,children:[e.jsx(k,{className:"w-5 h-5"}),s("settings.telemetry.title","Telemetry & Analytics")]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`p-2 rounded-lg ${l?"bg-blue-100 dark:bg-blue-900/30":"bg-gray-100 dark:bg-gray-700"}`,children:e.jsx(k,{className:`w-5 h-5 ${l?"text-blue-600 dark:text-blue-400":"text-gray-500"}`})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-medium text-gray-900 dark:text-white",children:s("settings.telemetry.enableTelemetry","Enable Anonymous Telemetry")}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.telemetry.enableDescription","Help improve AgentStudio by sharing anonymous usage data")})]})]}),e.jsx("button",{onClick:U,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${l?"bg-blue-600":"bg-gray-300 dark:bg-gray-600"}`,children:e.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${l?"translate-x-6":"translate-x-1"}`})})]})]}),e.jsx("div",{className:`px-4 py-2 border-t ${l?"bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800":"bg-gray-50 dark:bg-gray-700/50 border-gray-200 dark:border-gray-700"}`,children:e.jsx("div",{className:"flex items-center gap-2 text-sm",children:l?e.jsxs(e.Fragment,{children:[e.jsx(j,{className:"w-4 h-4 text-green-600 dark:text-green-400"}),e.jsx("span",{className:"text-green-700 dark:text-green-400",children:s("settings.telemetry.statusEnabled","Telemetry is enabled. Thank you for helping improve AgentStudio!")})]}):e.jsxs(e.Fragment,{children:[e.jsx(se,{className:"w-4 h-4 text-gray-500"}),e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:s("settings.telemetry.statusDisabled","Telemetry is disabled. No data is being collected.")})]})})}),e.jsxs("details",{className:"border-t border-gray-200 dark:border-gray-700",children:[e.jsxs("summary",{className:"px-4 py-3 cursor-pointer text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 flex items-center gap-2",children:[e.jsx(f,{className:"w-4 h-4"}),s("settings.telemetry.privacyDetails","Privacy & Data Collection Details")]}),e.jsxs("div",{className:"px-4 pb-4 space-y-4",children:[e.jsxs("div",{children:[e.jsxs("h4",{className:"font-medium text-gray-900 dark:text-white mb-2 flex items-center gap-2 text-sm",children:[e.jsx(j,{className:"w-4 h-4 text-green-500"}),s("settings.telemetry.whatWeCollect","What We Collect")]}),e.jsxs("ul",{className:"space-y-1 text-xs text-gray-600 dark:text-gray-300",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-500",children:"✓"}),s("settings.telemetry.collect.installId","Anonymous Installation ID")]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-500",children:"✓"}),s("settings.telemetry.collect.version","App Version & OS")]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-500",children:"✓"}),s("settings.telemetry.collect.features","Feature Usage")]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-green-500",children:"✓"}),s("settings.telemetry.collect.errors","Error Reports")]})]})]}),e.jsxs("div",{children:[e.jsxs("h4",{className:"font-medium text-gray-900 dark:text-white mb-2 flex items-center gap-2 text-sm",children:[e.jsx(f,{className:"w-4 h-4 text-red-500"}),s("settings.telemetry.whatWeNeverCollect","What We Never Collect")]}),e.jsxs("ul",{className:"space-y-1 text-xs text-gray-600 dark:text-gray-300",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-red-500",children:"✗"}),s("settings.telemetry.neverCollect.files","File contents, code, or project data")]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-red-500",children:"✗"}),s("settings.telemetry.neverCollect.keys","API keys, passwords, or credentials")]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-red-500",children:"✗"}),s("settings.telemetry.neverCollect.pii","Personal identifying information")]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-red-500",children:"✗"}),s("settings.telemetry.neverCollect.conversations","Chat conversations or AI responses")]})]})]})]})]})]})]})};export{ce as GeneralSettingsPage};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./data-structures-ChC1tqVg.js";import{r as d,W as Q}from"./monaco-editor-BWfQfpij.js";import{u as Z,b as I,c as $,a as C,A as S}from"./agents-KlPdWQ8K.js";import{a as F,s as L,d as J,b as z,c as Y}from"./index-f67nhEoX.js";import{u as T}from"./tools-BZTR2NP1.js";import{c as ge,B as v}from"./Button-CMTSYiKV.js";import{aW as pe,aX as he,e as V,aP as _,a0 as A,V as ee,S as se,v as X,y as ae,X as ye,E as te,d as be,$ as fe,al as je,Z as ke,t as ve,o as we,Y as Ne,C as Ce,az as Se}from"./ui-components-DjgDPiqV.js";import{F as Pe}from"./FileExplorer-x5R0Tcmk.js";import"./syntax-highlighting-DGbNjS3S.js";const re=d.createContext(void 0),le=()=>{const a=d.useContext(re);if(!a)throw new Error("Tabs compound components must be used within Tabs");return a},ne=d.forwardRef(({value:a,onValueChange:t,defaultValue:l,className:i,children:n},s)=>{const[g,x]=d.useState(a||l||"");d.useEffect(()=>{a!==void 0&&x(a)},[a]);const f=d.useCallback(r=>{x(r),t?.(r)},[t]);return e.jsx(re.Provider,{value:{value:g,onValueChange:f},children:e.jsx("div",{ref:s,className:i,children:n})})});ne.displayName="Tabs";const ie=d.forwardRef(({className:a,children:t,...l},i)=>e.jsx("div",{ref:i,className:`inline-flex h-10 items-center justify-center rounded-md bg-gray-100 dark:bg-gray-800 p-1 text-gray-500 dark:text-gray-400 ${a||""}`,...l,children:t}));ie.displayName="TabsList";const U=d.forwardRef(({className:a,value:t,children:l,...i},n)=>{const{value:s,onValueChange:g}=le(),x=s===t;return e.jsx("button",{ref:n,type:"button",role:"tab","aria-selected":x,onClick:()=>g?.(t),className:`inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 ${x?"bg-white dark:bg-gray-950 text-gray-950 dark:text-gray-50 shadow-sm":"hover:bg-gray-200/50 dark:hover:bg-gray-700/50"} ${a||""}`,...i,children:l})});U.displayName="TabsTrigger";const K=d.forwardRef(({className:a,value:t,children:l,...i},n)=>{const{value:s}=le();return s!==t?null:e.jsx("div",{ref:n,role:"tabpanel",className:`mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 ${a||""}`,...i,children:l})});K.displayName="TabsContent";const Ee=()=>{const a=Z(),{t}=T("pages"),{data:l=[],isLoading:i,error:n,refetch:s}=I({queryKey:["plugin-marketplaces"],queryFn:async()=>{const r=await C(`${S}/plugins/marketplaces`);if(!r.ok)throw new Error("Failed to fetch marketplaces");return(await r.json()).marketplaces}}),g=$({mutationFn:async r=>{const u=await C(`${S}/plugins/marketplaces`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!u.ok){const m=await u.json();throw new Error(m.error||"Failed to add marketplace")}return u.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugin-marketplaces"]}),a.invalidateQueries({queryKey:["plugins-available"]}),L(t("plugins.messages.marketplaceAddSuccess"))},onError:r=>{F(t("plugins.messages.marketplaceAddError"),r.message)}}),x=$({mutationFn:async r=>{const u=await C(`${S}/plugins/marketplaces/${r}/sync`,{method:"POST"});if(!u.ok){const m=await u.json();throw new Error(m.error||"Failed to sync marketplace")}return u.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugin-marketplaces"]}),a.invalidateQueries({queryKey:["plugins-available"]}),L(t("plugins.messages.marketplaceSyncSuccess"))},onError:r=>{F(t("plugins.messages.marketplaceSyncError"),r.message)}}),f=$({mutationFn:async r=>{const u=await C(`${S}/plugins/marketplaces/${r}`,{method:"DELETE"});if(!u.ok){const m=await u.json();throw new Error(m.error||"Failed to remove marketplace")}return u.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugin-marketplaces"]}),a.invalidateQueries({queryKey:["plugins-available"]}),a.invalidateQueries({queryKey:["plugins-installed"]}),L(t("plugins.messages.marketplaceRemoveSuccess"))},onError:r=>{F(t("plugins.messages.marketplaceRemoveError"),r.message)}});return{marketplaces:l,isLoading:i,error:n,refetch:s,addMarketplace:g.mutate,isAddingMarketplace:g.isPending,syncMarketplace:x.mutate,isSyncingMarketplace:x.isPending,removeMarketplace:f.mutate,isRemovingMarketplace:f.isPending}},Me=()=>{const a=Z(),{t}=T("pages"),{data:l=[],isLoading:i,error:n,refetch:s}=I({queryKey:["plugins-available"],queryFn:async()=>{const p=await C(`${S}/plugins/available`);if(!p.ok)throw new Error("Failed to fetch available plugins");return(await p.json()).plugins}}),{data:g=[],isLoading:x,error:f,refetch:r}=I({queryKey:["plugins-installed"],queryFn:async()=>{const p=await C(`${S}/plugins/installed`);if(!p.ok)throw new Error("Failed to fetch installed plugins");return(await p.json()).plugins}}),u=$({mutationFn:async p=>{const j=await C(`${S}/plugins/install`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p)});if(!j.ok){const b=await j.json();throw new Error(b.error||"Failed to install plugin")}return j.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugins-available"]}),a.invalidateQueries({queryKey:["plugins-installed"]}),J(t("plugins.messages.installSuccess"))},onError:p=>{F(t("plugins.messages.installError"),p.message)}}),m=$({mutationFn:async({marketplaceName:p,pluginName:j})=>{const b=await C(`${S}/plugins/${p}/${j}/enable`,{method:"POST"});if(!b.ok){const N=await b.json();throw new Error(N.error||"Failed to enable plugin")}return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugins-available"]}),a.invalidateQueries({queryKey:["plugins-installed"]}),J(t("plugins.messages.enableSuccess"))},onError:p=>{F(t("plugins.messages.enableError"),p.message)}}),y=$({mutationFn:async({marketplaceName:p,pluginName:j})=>{const b=await C(`${S}/plugins/${p}/${j}/disable`,{method:"POST"});if(!b.ok){const N=await b.json();throw new Error(N.error||"Failed to disable plugin")}return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugins-available"]}),a.invalidateQueries({queryKey:["plugins-installed"]}),L(t("plugins.messages.disableSuccess"))},onError:p=>{F(t("plugins.messages.disableError"),p.message)}}),w=$({mutationFn:async({marketplaceName:p,pluginName:j})=>{const b=await C(`${S}/plugins/${p}/${j}`,{method:"DELETE"});if(!b.ok){const N=await b.json();throw new Error(N.error||"Failed to uninstall plugin")}return b.json()},onSuccess:()=>{a.invalidateQueries({queryKey:["plugins-available"]}),a.invalidateQueries({queryKey:["plugins-installed"]}),L(t("plugins.messages.uninstallSuccess"))},onError:p=>{F(t("plugins.messages.uninstallError"),p.message)}});return{availablePlugins:l,isLoadingAvailable:i,availableError:n,refetchAvailable:s,installedPlugins:g,isLoadingInstalled:x,installedError:f,refetchInstalled:r,installPlugin:u.mutate,isInstallingPlugin:u.isPending,enablePlugin:m.mutate,isEnablingPlugin:m.isPending,disablePlugin:y.mutate,isDisablingPlugin:y.isPending,uninstallPlugin:w.mutate,isUninstallingPlugin:w.isPending}},$e=(a,t)=>I({queryKey:["plugin-detail",a,t],queryFn:async()=>{if(!a||!t)return null;const l=await C(`${S}/plugins/${a}/${t}`);if(!l.ok)throw new Error("Failed to fetch plugin details");return await l.json()},enabled:!!a&&!!t}),Fe=(a,t,l)=>I({queryKey:["plugin-file-content",a,t,l],queryFn:async()=>{if(!a||!t||!l)return null;const i=await C(`${S}/plugins/${a}/${t}/files/${l}`);if(!i.ok)throw new Error("Failed to fetch file content");return await i.json()},enabled:!!a&&!!t&&!!l}),M=Q.forwardRef(({className:a,type:t,...l},i)=>e.jsx("input",{type:t,className:ge("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",a),ref:i,...l}));M.displayName="Input";const E=d.forwardRef(({className:a,...t},l)=>e.jsx("label",{ref:l,className:`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 ${a||""}`,...t}));E.displayName="Label";const ce=d.forwardRef(({className:a,checked:t,onCheckedChange:l,disabled:i,...n},s)=>{const g=x=>{l?.(x.target.checked)};return e.jsxs("label",{className:`relative inline-flex items-center cursor-pointer ${i?"cursor-not-allowed opacity-50":""}`,children:[e.jsx("input",{type:"checkbox",ref:s,checked:t,onChange:g,disabled:i,className:"sr-only peer",...n}),e.jsx("div",{className:`
|
|
2
|
-
w-11 h-6 bg-gray-200 dark:bg-gray-700
|
|
3
|
-
peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-blue-500 peer-focus:ring-offset-2
|
|
4
|
-
dark:peer-focus:ring-offset-gray-800
|
|
5
|
-
rounded-full peer
|
|
6
|
-
peer-checked:after:translate-x-full peer-checked:after:border-white
|
|
7
|
-
after:content-[''] after:absolute after:top-[2px] after:left-[2px]
|
|
8
|
-
after:bg-white after:border-gray-300 after:border after:rounded-full
|
|
9
|
-
after:h-5 after:w-5 after:transition-all
|
|
10
|
-
peer-checked:bg-blue-600 dark:peer-checked:bg-blue-500
|
|
11
|
-
${a||""}
|
|
12
|
-
`})]})});ce.displayName="Switch";const oe=({open:a,onOpenChange:t,children:l})=>(d.useEffect(()=>{const i=n=>{n.key==="Escape"&&a&&t&&t(!1)};return a&&(document.addEventListener("keydown",i),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",i),document.body.style.overflow=""}},[a,t]),a?e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[e.jsx("div",{className:"fixed inset-0 bg-black/50",onClick:()=>t&&t(!1)}),e.jsx("div",{className:"relative z-50 w-full flex items-center justify-center",children:l})]}):null),O=d.forwardRef(({className:a,children:t,...l},i)=>e.jsx("div",{ref:i,className:`relative bg-white dark:bg-gray-800 rounded-lg shadow-xl p-6 ${a||""}`,...l,children:t}));O.displayName="DialogContent";const de=({className:a,children:t,...l})=>e.jsx("div",{className:`mb-4 ${a||""}`,...l,children:t}),B=d.forwardRef(({className:a,children:t,...l},i)=>e.jsx("h2",{ref:i,className:`text-lg font-semibold text-gray-900 dark:text-white ${a||""}`,...l,children:t}));B.displayName="DialogTitle";const Te=({className:a,children:t,...l})=>e.jsx("div",{className:`flex justify-end space-x-2 ${a||""}`,...l,children:t}),G=d.forwardRef(({children:a,value:t,onValueChange:l,...i},n)=>{const[s,g]=d.useState(!1),[x,f]=d.useState(t||"");d.useEffect(()=>{t!==void 0&&f(t)},[t]);const r=u=>{f(u),l&&l(u),g(!1)};return e.jsx("div",{ref:n,className:"relative",...i,children:d.Children.map(a,u=>d.isValidElement(u)?d.cloneElement(u,{selectedValue:x,isOpen:s,setIsOpen:g,onSelect:r}):u)})});G.displayName="Select";const W=d.forwardRef(({children:a,selectedValue:t,isOpen:l,setIsOpen:i,className:n,...s},g)=>e.jsxs("button",{ref:g,type:"button",onClick:()=>i&&i(!l),className:`flex h-10 w-full items-center justify-between rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 ${n||""}`,...s,children:[e.jsx("div",{className:"flex-1 text-left flex items-center",children:a}),e.jsx("svg",{className:"h-4 w-4 opacity-50 ml-2 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}));W.displayName="SelectTrigger";const ue=d.forwardRef(({placeholder:a,selectedValue:t,children:l},i)=>l?e.jsx("span",{ref:i,children:l}):e.jsx("span",{ref:i,children:t||a}));ue.displayName="SelectValue";const H=d.forwardRef(({children:a,isOpen:t,onSelect:l,...i},n)=>t?e.jsx("div",{ref:n,className:"absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 shadow-lg",...i,children:d.Children.map(a,s=>d.isValidElement(s)?d.cloneElement(s,{onSelect:l}):s)}):null);H.displayName="SelectContent";const R=d.forwardRef(({value:a,children:t,onSelect:l,...i},n)=>e.jsx("div",{ref:n,onClick:()=>l&&l(a),className:"relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-gray-100 dark:hover:bg-gray-700 text-gray-900 dark:text-gray-100",...i,children:t}));R.displayName="SelectItem";const q={github:{icon:A,label:"GitHub"},git:{icon:_,label:"Git Repository"},local:{icon:V,label:"Local Directory"},cos:{icon:he,label:"COS (Tencent Cloud)"},archive:{icon:pe,label:"Archive URL"}},Le=({isOpen:a,onClose:t,onAdd:l,isAdding:i})=>{const{t:n}=T("pages"),[s,g]=d.useState({name:"",type:"github",source:"",description:"",branch:"main",autoUpdate:{enabled:!1,checkInterval:60}}),x=m=>{m.preventDefault();const y={name:s.name,type:s.type,source:s.source,description:s.description};(s.type==="git"||s.type==="github")&&(y.branch=s.branch),s.autoUpdate?.enabled&&(y.autoUpdate=s.autoUpdate),l(y),f()},f=()=>{g({name:"",type:"github",source:"",description:"",branch:"main",autoUpdate:{enabled:!1,checkInterval:60}}),t()},r=()=>{switch(s.type){case"local":return n("plugins.marketplaces.addModal.sourcePlaceholderLocal","/path/to/marketplace");case"github":return n("plugins.marketplaces.addModal.sourcePlaceholderGithub","owner/repo");case"git":return n("plugins.marketplaces.addModal.sourcePlaceholderGit","https://git.example.com/repo.git");case"cos":return"https://bucket.cos.region.myqcloud.com/prefix";case"archive":return"https://example.com/marketplace.tar.gz";default:return""}},u=q[s.type]?.icon||A;return e.jsx(oe,{open:a,onOpenChange:f,children:e.jsxs(O,{className:"max-w-[600px] w-full max-h-[90vh] overflow-y-auto",children:[e.jsx(de,{children:e.jsx(B,{children:n("plugins.marketplaces.addModal.title")})}),e.jsxs("form",{onSubmit:x,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(E,{htmlFor:"name",children:n("plugins.marketplaces.addModal.name")}),e.jsx(M,{id:"name",value:s.name,onChange:m=>g({...s,name:m.target.value}),placeholder:n("plugins.marketplaces.addModal.namePlaceholder"),required:!0})]}),e.jsxs("div",{children:[e.jsx(E,{htmlFor:"type",children:n("plugins.marketplaces.addModal.type")}),e.jsxs(G,{value:s.type,onValueChange:m=>g({...s,type:m}),children:[e.jsx(W,{children:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(u,{className:"w-4 h-4"}),e.jsx("span",{children:q[s.type]?.label})]})}),e.jsx(H,{children:Object.keys(q).map(m=>{const y=q[m],w=y.icon;return e.jsx(R,{value:m,children:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(w,{className:"w-4 h-4"}),e.jsx("span",{children:y.label})]})},m)})})]})]}),e.jsxs("div",{children:[e.jsx(E,{htmlFor:"source",children:n("plugins.marketplaces.addModal.source")}),e.jsx(M,{id:"source",value:s.source,onChange:m=>g({...s,source:m.target.value}),placeholder:r(),required:!0}),s.type==="cos"&&e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"COS URL 支持公开访问的存储桶地址,或包含 marketplace.tar.gz 的目录"}),s.type==="archive"&&e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"支持 .tar.gz, .tgz, .zip 格式的压缩包 URL"})]}),(s.type==="git"||s.type==="github")&&e.jsxs("div",{children:[e.jsx(E,{htmlFor:"branch",children:n("plugins.marketplaces.addModal.branch")}),e.jsx(M,{id:"branch",value:s.branch,onChange:m=>g({...s,branch:m.target.value}),placeholder:n("plugins.marketplaces.addModal.branchPlaceholder","main")})]}),e.jsxs("div",{children:[e.jsx(E,{htmlFor:"description",children:n("plugins.marketplaces.addModal.description")}),e.jsx(M,{id:"description",value:s.description,onChange:m=>g({...s,description:m.target.value}),placeholder:n("plugins.marketplaces.addModal.descriptionPlaceholder")})]}),s.type!=="local"&&e.jsxs("div",{className:"space-y-3 pt-2 border-t",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(ee,{className:"w-4 h-4 text-muted-foreground"}),e.jsx(E,{htmlFor:"autoUpdate",className:"font-normal",children:"自动检查更新"})]}),e.jsx(ce,{id:"autoUpdate",checked:s.autoUpdate?.enabled||!1,onCheckedChange:m=>g({...s,autoUpdate:{...s.autoUpdate,enabled:m,checkInterval:s.autoUpdate?.checkInterval||60}})})]}),s.autoUpdate?.enabled&&e.jsxs("div",{children:[e.jsx(E,{htmlFor:"checkInterval",children:"检查间隔(分钟)"}),e.jsx(M,{id:"checkInterval",type:"number",min:"5",value:s.autoUpdate?.checkInterval||60,onChange:m=>g({...s,autoUpdate:{...s.autoUpdate,enabled:!0,checkInterval:parseInt(m.target.value)||60}})})]})]})]}),e.jsxs(Te,{className:"mt-6",children:[e.jsx(v,{type:"button",variant:"outline",onClick:f,disabled:i,children:n("plugins.marketplaces.addModal.cancel")}),e.jsx(v,{type:"submit",disabled:i,children:n(i?"plugins.marketplaces.addModal.adding":"plugins.marketplaces.addModal.add")})]})]})]})})},Ie=({marketplaces:a,isLoading:t,onAddMarketplace:l,isAdding:i,onSyncMarketplace:n,isSyncing:s,onRemoveMarketplace:g,isRemoving:x,onMarketplaceClick:f})=>{const{t:r}=T("pages"),{isMobile:u}=z(),m=Y(),[y,w]=d.useState(""),[p,j]=d.useState(!1),b=a.filter(h=>h.displayName.toLowerCase().includes(y.toLowerCase())||h.source.toLowerCase().includes(y.toLowerCase())),N=async(h,k)=>{await m({title:r("plugins.marketplaces.confirmDeleteTitle","确认删除"),message:r("plugins.marketplaces.confirmDelete",{name:k}),confirmText:r("plugins.marketplaces.delete","删除"),cancelText:r("plugins.marketplaces.cancel","取消"),variant:"danger"})&&g(h)};return t?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:"Loading..."})]})}):e.jsxs("div",{children:[e.jsxs("div",{className:`${u?"space-y-3":"flex items-center justify-between"} mb-6`,children:[e.jsxs("div",{className:`${u?"":"flex-1 max-w-md"} relative`,children:[e.jsx(se,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5"}),e.jsx(M,{type:"text",placeholder:r("plugins.marketplaces.searchPlaceholder"),value:y,onChange:h=>w(h.target.value),className:"pl-10"})]}),e.jsxs(v,{onClick:()=>j(!0),className:u?"w-full":"",children:[e.jsx(X,{className:"w-4 h-4 mr-2"}),r("plugins.marketplaces.addButton")]})]}),b.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"text-6xl mb-4",children:"📦"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:r(y?"plugins.marketplaces.noResults":"plugins.marketplaces.noMarketplaces")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:r("plugins.marketplaces.addFirst")}),!y&&e.jsxs(v,{onClick:()=>j(!0),children:[e.jsx(X,{className:"w-4 h-4 mr-2"}),r("plugins.marketplaces.addButton")]})]}):e.jsx("div",{className:"space-y-4",children:b.map(h=>e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6 hover:shadow-md transition-shadow",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1 cursor-pointer",onClick:()=>f?.(h.id),children:[e.jsxs("div",{className:"flex items-center space-x-3 mb-2",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white hover:text-blue-600 dark:hover:text-blue-400",children:h.displayName}),e.jsxs("span",{className:"px-2 py-1 text-xs font-medium rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300 flex items-center space-x-1",children:[h.type==="github"&&e.jsx(A,{className:"w-3 h-3"}),h.type==="git"&&e.jsx(_,{className:"w-3 h-3"}),h.type==="local"&&e.jsx(V,{className:"w-3 h-3"}),e.jsx("span",{children:r(`plugins.marketplaces.types.${h.type}`)})]})]}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-3",children:h.source}),e.jsxs("div",{className:"flex items-center space-x-4 text-sm text-gray-500 dark:text-gray-400",children:[e.jsxs("span",{children:[h.pluginCount," plugins"]}),h.lastSync&&e.jsxs("span",{children:["Last sync: ",new Date(h.lastSync).toLocaleDateString()]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2 ml-4",children:[e.jsx(v,{variant:"outline",size:"sm",onClick:()=>n(h.id),disabled:s,className:"border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700",title:r("plugins.marketplaces.actions.sync"),children:e.jsx(ee,{className:`w-4 h-4 text-green-600 dark:text-green-400 ${s?"animate-spin":""}`})}),e.jsx(v,{variant:"outline",size:"sm",onClick:()=>N(h.id,h.displayName),disabled:x,className:"border-red-300 dark:border-red-700 hover:bg-red-50 dark:hover:bg-red-900/30",title:r("plugins.marketplaces.actions.delete"),children:e.jsx(ae,{className:"w-4 h-4 text-red-600 dark:text-red-400"})})]})]})},h.id))}),e.jsx(Le,{isOpen:p,onClose:()=>j(!1),onAdd:l,isAdding:i})]})},De=({isOpen:a,onClose:t,marketplaceName:l,pluginName:i})=>{const{t:n}=T("pages"),{data:s,isLoading:g}=$e(a?l:null,a?i:null),[x,f]=d.useState("overview");Q.useEffect(()=>{s&&console.log("Plugin Detail Data:",s)},[s]);const[r,u]=d.useState(null),[m,y]=d.useState(null),{data:w}=Fe(r?l:null,r?i:null,r),p=o=>{u(o.relativePath),f("file")},j=o=>{const P=o.relativePath.includes("/")?o.relativePath.substring(0,o.relativePath.lastIndexOf("/")):"";y(P),f("directory")},b=()=>{f("overview"),u(null),y(null)},N=o=>{switch(o){case"command":return e.jsx(we,{className:"w-4 h-4 text-purple-600 dark:text-purple-400"});case"agent":return e.jsx(ve,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"});case"skill":return e.jsx(ke,{className:"w-4 h-4 text-green-600 dark:text-green-400"});case"hook":return e.jsx(je,{className:"w-4 h-4 text-orange-600 dark:text-orange-400"});case"mcp":return e.jsx(fe,{className:"w-4 h-4 text-red-600 dark:text-red-400"});default:return e.jsx(be,{className:"w-4 h-4 text-gray-600 dark:text-gray-400"})}},h=o=>{const P=`plugins.detail.componentTypes.${o}`;return n(P,{defaultValue:o})};if(!a)return null;const k=[];return s?.components&&(s.components.commands?.forEach(o=>k.push({...o,typeLabel:"command"})),s.components.agents?.forEach(o=>k.push({...o,typeLabel:"agent"})),s.components.skills?.forEach(o=>k.push({...o,typeLabel:"skill"})),s.components.hooks?.forEach(o=>k.push({...o,typeLabel:"hook"})),s.components.mcpServers?.forEach(o=>k.push({...o,typeLabel:"mcp"}))),e.jsx(oe,{open:a,onOpenChange:t,children:e.jsxs(O,{className:"max-w-[1200px] w-full h-[90vh] overflow-hidden flex flex-col",children:[e.jsx(de,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(B,{children:[x==="overview"&&(s?.manifest?.name||i),x==="file"&&e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs(v,{variant:"ghost",size:"sm",onClick:b,children:["← ",n("plugins.detail.back")]}),e.jsx("span",{className:"text-base",children:r})]}),x==="directory"&&e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs(v,{variant:"ghost",size:"sm",onClick:b,children:["← ",n("plugins.detail.back")]}),e.jsx("span",{className:"text-base",children:m||n("plugins.detail.root")})]})]}),e.jsx(v,{variant:"ghost",size:"sm",onClick:t,children:e.jsx(ye,{className:"w-4 h-4"})})]})}),g?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600"})}):s?e.jsxs("div",{className:"flex-1 overflow-hidden min-h-0",children:[x==="overview"&&e.jsxs("div",{className:"h-full overflow-y-auto p-6 space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:s?.manifest?.name||i}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:s?.manifest?.description||s?.plugin?.manifest?.description||n("plugins.detail.noDescription")})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:n("plugins.detail.version")}),e.jsx("p",{className:"text-gray-900 dark:text-white",children:s?.manifest?.version||s?.plugin?.manifest?.version||"-"})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:n("plugins.detail.author")}),e.jsx("p",{className:"text-gray-900 dark:text-white",children:(()=>{const o=s?.manifest?.author||s?.plugin?.manifest?.author;return o?typeof o=="string"?o:o.name:"-"})()})]}),(s?.manifest?.license||s?.plugin?.manifest?.license)&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:n("plugins.detail.license")}),e.jsx("p",{className:"text-gray-900 dark:text-white",children:s?.manifest?.license||s?.plugin?.manifest?.license})]})]})]}),e.jsxs("div",{children:[e.jsxs("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-4",children:[n("plugins.detail.components")," (",k.length,")"]}),k.length>0?e.jsx("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-800",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:n("plugins.detail.type")}),e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:n("plugins.detail.name")}),e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:n("plugins.detail.description")}),e.jsx("th",{className:"px-4 py-3 text-right text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:n("plugins.detail.actions")})]})}),e.jsx("tbody",{className:"bg-white dark:bg-gray-900 divide-y divide-gray-200 dark:divide-gray-700",children:k.map((o,P)=>e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-800",children:[e.jsx("td",{className:"px-4 py-3 whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center space-x-2",children:[N(o.type),e.jsx("span",{className:"text-sm text-gray-900 dark:text-white",children:h(o.type)})]})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:"text-sm font-mono text-gray-900 dark:text-white",children:o.name})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:o.description||"-"})}),e.jsxs("td",{className:"px-4 py-3 text-right space-x-2",children:[e.jsx(v,{variant:"ghost",size:"sm",onClick:()=>p(o),title:n("plugins.detail.viewEntryFile"),className:"text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30",children:e.jsx(te,{className:"w-4 h-4"})}),o.type==="skill"&&e.jsx(v,{variant:"ghost",size:"sm",onClick:()=>j(o),title:n("plugins.detail.browseDirectory"),className:"text-purple-600 dark:text-purple-400 hover:bg-purple-50 dark:hover:bg-purple-900/30",children:e.jsx(V,{className:"w-4 h-4"})})]})]},P))})]})}):e.jsx("div",{className:"text-center py-8 text-gray-500 dark:text-gray-400",children:n("plugins.detail.noComponents")})]})]}),x==="file"&&e.jsx("div",{className:"h-full overflow-y-auto p-6",children:w?e.jsx("pre",{className:"whitespace-pre-wrap text-sm bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-gray-100 p-4 rounded-lg font-mono",children:w.content}):e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"})})}),x==="directory"&&s?.plugin?.installPath&&e.jsx(Pe,{projectPath:m?`${s.plugin.installPath}/${m}`:s.plugin.installPath,onFileSelect:o=>{console.log("Selected file:",o)},className:"h-full"})]}):e.jsx("div",{className:"text-center py-12 text-gray-500",children:n("plugins.detail.loadFailed")})]})})},qe=({plugins:a,isLoading:t,marketplaces:l,onInstallPlugin:i,isInstalling:n,onUninstallPlugin:s,isUninstalling:g,selectedMarketplace:x,onMarketplaceChange:f})=>{const{t:r}=T("pages"),{isMobile:u}=z(),m=Y(),[y,w]=d.useState(""),[p,j]=d.useState(null),[b,N]=d.useState(!1),h=a.filter(c=>{const D=c.name.toLowerCase().includes(y.toLowerCase())||c.description.toLowerCase().includes(y.toLowerCase()),me=!x||c.marketplaceId===x,xe=!b||c.installed;return D&&me&&xe}),k=Q.useMemo(()=>x?l.find(D=>D.id===x)?.displayName||x:r("plugins.browse.filters.allMarketplaces"),[x,l,r]),o=c=>{i({pluginName:c.name,marketplaceName:c.marketplaceName,marketplaceId:c.marketplaceId})},P=async c=>{await m({title:r("plugins.browse.confirmUninstallTitle","确认卸载"),message:r("plugins.browse.confirmUninstall",{name:c.name}),confirmText:r("plugins.browse.uninstall","卸载"),cancelText:r("plugins.browse.cancel","取消"),variant:"danger"})&&s({marketplaceName:c.marketplaceName,pluginName:c.name})};return t?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:"Loading..."})]})}):l.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"text-6xl mb-4",children:"📦"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:r("plugins.browse.noMarketplaces")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:r("plugins.browse.goAddMarketplace")})]}):e.jsxs("div",{children:[e.jsxs("div",{className:`${u?"space-y-3":"flex items-center gap-4"} mb-6`,children:[e.jsxs("div",{className:`${u?"":"flex-1 max-w-md"} relative`,children:[e.jsx(se,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5"}),e.jsx(M,{type:"text",placeholder:r("plugins.browse.searchPlaceholder"),value:y,onChange:c=>w(c.target.value),className:"pl-10"})]}),e.jsx("div",{className:`${u?"":"w-64"}`,children:e.jsxs(G,{value:x??"all",onValueChange:c=>f(c==="all"?null:c),children:[e.jsx(W,{className:"text-gray-900 dark:text-gray-100",children:e.jsx(ue,{children:k})}),e.jsxs(H,{children:[e.jsx(R,{value:"all",children:r("plugins.browse.filters.allMarketplaces")}),l.map(c=>e.jsx(R,{value:c.id,children:c.displayName},c.id))]})]})}),e.jsxs("div",{className:" flex items-center space-x-2",children:[e.jsx("input",{type:"checkbox",id:"showOnlyInstalled",checked:b,onChange:c=>N(c.target.checked),className:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"}),e.jsx("label",{htmlFor:"showOnlyInstalled",className:"text-sm font-medium text-gray-900 dark:text-gray-300 cursor-pointer whitespace-nowrap",children:r("plugins.browse.filters.showOnlyInstalled")})]})]}),h.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"text-6xl mb-4",children:"🔍"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:r("plugins.browse.noResults")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:r("plugins.browse.adjustSearch")})]}):e.jsx("div",{className:"space-y-4",children:h.map(c=>e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center space-x-3 mb-2",children:[e.jsx(Ne,{className:"w-5 h-5 text-blue-600 dark:text-blue-400"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:c.name}),c.installed&&e.jsxs("span",{className:"px-2 py-1 text-xs font-medium rounded-full bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300 flex items-center space-x-1",children:[e.jsx(Ce,{className:"w-3 h-3"}),e.jsx("span",{children:r("plugins.browse.card.installed")})]})]}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-3",children:c.description}),e.jsxs("div",{className:"flex flex-wrap gap-2 text-sm text-gray-500 dark:text-gray-400",children:[e.jsxs("span",{children:[r("plugins.browse.card.from")," ",c.marketplace]}),e.jsx("span",{children:"•"}),e.jsx("span",{children:r("plugins.browse.card.version",{version:c.version})}),c.components.commands>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:r("plugins.browse.components.commands",{count:c.components.commands})})]}),c.components.skills>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:r("plugins.browse.components.skills",{count:c.components.skills})})]}),c.components.agents>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"•"}),e.jsx("span",{children:r("plugins.browse.components.agents",{count:c.components.agents})})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2 ml-4",children:[e.jsxs(v,{variant:"outline",size:"sm",onClick:()=>j({marketplace:c.marketplaceName,name:c.name}),className:"border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700",children:[e.jsx(te,{className:"w-4 h-4 mr-1 text-gray-700 dark:text-gray-300"}),e.jsx("span",{className:"text-gray-700 dark:text-gray-300",children:r("plugins.browse.actions.details")})]}),c.installed?e.jsxs(v,{variant:"outline",size:"sm",onClick:()=>P(c),disabled:g,className:"border-red-300 dark:border-red-700 hover:bg-red-50 dark:hover:bg-red-900/30",children:[e.jsx(ae,{className:"w-4 h-4 text-red-600 dark:text-red-400"}),e.jsx("span",{className:"ml-1 text-red-600 dark:text-red-400",children:r("plugins.browse.actions.uninstall")})]}):e.jsxs(v,{variant:"outline",size:"sm",disabled:n,onClick:()=>o(c),className:"border-blue-300 dark:border-blue-700 hover:bg-blue-50 dark:hover:bg-blue-900/30",children:[e.jsx(Se,{className:"w-4 h-4 mr-1 text-blue-600 dark:text-blue-400"}),e.jsx("span",{className:"text-blue-600 dark:text-blue-400",children:r("plugins.browse.actions.install")})]})]})]})},`${c.name}@${c.marketplace}`))}),p&&e.jsx(De,{isOpen:!!p,onClose:()=>j(null),marketplaceName:p.marketplace,pluginName:p.name})]})},Ge=()=>{const{t:a}=T("pages"),{isMobile:t}=z(),[l,i]=d.useState("marketplaces"),[n,s]=d.useState(null),g=P=>{s(P),i("browse")},{marketplaces:x,isLoading:f,addMarketplace:r,isAddingMarketplace:u,syncMarketplace:m,isSyncingMarketplace:y,removeMarketplace:w,isRemovingMarketplace:p}=Ee(),{availablePlugins:j,isLoadingAvailable:b,installPlugin:N,isInstallingPlugin:h,uninstallPlugin:k,isUninstallingPlugin:o}=Me();return e.jsxs("div",{className:`${t?"p-4":"p-8"}`,children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h1",{className:`${t?"text-2xl":"text-3xl"} font-bold text-gray-900 dark:text-white`,children:a("plugins.title")}),e.jsx("p",{className:"mt-2 text-gray-600 dark:text-gray-400",children:a("plugins.subtitle")})]}),e.jsxs(ne,{value:l,onValueChange:i,className:"w-full",children:[e.jsxs(ie,{className:`grid w-full ${t?"grid-cols-2":"grid-cols-2 max-w-xl"}`,children:[e.jsx(U,{value:"marketplaces",children:a("plugins.tabs.marketplaces")}),e.jsx(U,{value:"browse",children:a("plugins.tabs.browse")})]}),e.jsx(K,{value:"marketplaces",className:"mt-6",children:e.jsx(Ie,{marketplaces:x,isLoading:f,onAddMarketplace:r,isAdding:u,onSyncMarketplace:m,isSyncing:y,onRemoveMarketplace:w,isRemoving:p,onMarketplaceClick:g})}),e.jsx(K,{value:"browse",className:"mt-6",children:e.jsx(qe,{plugins:j,isLoading:b,marketplaces:x,onInstallPlugin:N,isInstalling:h,onUninstallPlugin:k,isUninstalling:o,selectedMarketplace:n,onMarketplaceChange:s})})]})]})};export{Ge as PluginsPage,Ge as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./data-structures-ChC1tqVg.js";import{b as i,O as r}from"./index-f67nhEoX.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-KlPdWQ8K.js";import"./tools-BZTR2NP1.js";import"./ui-components-DjgDPiqV.js";const l=()=>{const{isMobile:o}=i();return t.jsx("div",{className:o?"p-4":"p-8",children:t.jsx("div",{children:t.jsx(r,{})})})};export{l as SettingsLayout};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as t}from"./data-structures-ChC1tqVg.js";import{r as g}from"./monaco-editor-BWfQfpij.js";import{a as Q,A as Z}from"./agents-KlPdWQ8K.js";import{u as M}from"./tools-BZTR2NP1.js";import{X as R,ac as ee,at as te,_ as N,au as O,av as E,V as re,j as D,k as se,l as ae}from"./ui-components-DjgDPiqV.js";const I={Bash:"终端命令",BashOutput:"终端命令输出",KillBash:"杀死终端命令",Edit:"文件编辑",Read:"读取文件",Write:"写入文件",Glob:"文件搜索",Grep:"文本搜索",NotebookEdit:"笔记本编辑",WebFetch:"网页获取",WebSearch:"网络搜索",TodoWrite:"任务管理",Task:"任务执行",ExitPlanMode:"退出计划模式",Skill:"技能调用"},ne={Bash:"执行命令行操作",BashOutput:"获取终端命令输出",KillBash:"杀死终端命令",Edit:"编辑文件内容",Read:"读取文件内容",Write:"创建或覆盖文件",Glob:"使用通配符搜索文件",Grep:"在文件中搜索文本",NotebookEdit:"编辑Jupyter笔记本",WebFetch:"获取网页内容",WebSearch:"搜索网络信息",TodoWrite:"创建和管理待办事项",Task:"执行复杂任务",ExitPlanMode:"退出计划模式",Skill:"调用预定义的技能"};function F(d){return I[d]||d}function ie(d){return ne[d]||""}function le(){const d=new Set([...Object.keys(I)]);return Array.from(d).map(m=>({name:m,label:F(m),description:ie(m)}))}const b=le(),ge=({isOpen:d,onClose:m,selectedRegularTools:i,onRegularToolsChange:f,selectedMcpTools:l,onMcpToolsChange:h,mcpToolsEnabled:G,onMcpEnabledChange:U,presetTools:y=[],readonly:P=!1})=>{const{t:c}=M("components"),[u,K]=g.useState([]),[v,A]=g.useState(!1),[p,T]=g.useState(null),[C,V]=g.useState(new Set),[S,W]=g.useState("regular");g.useEffect(()=>{d&&q()},[d]);const q=async()=>{A(!0),T(null);try{const e=await Q(`${Z}/mcp`);if(!e.ok)throw new Error("Failed to fetch MCP configurations");const r=await e.json();K(r.servers||[])}catch(e){console.error("Failed to fetch MCP servers:",e),T(e instanceof Error?e.message:"Unknown error")}finally{A(!1)}},L=e=>y.some(r=>r.name===e&&r.enabled),j=e=>{if(y.some(s=>s.name===e&&s.enabled))return!0;const r=e.split("__");if(r.length===3&&r[0]==="mcp"){const s=`${r[1]}.${r[2]}`;if(y.some(x=>x.name===s&&x.enabled))return!0;const a=`mcp__${r[1]}__${r[2]}`;if(y.some(x=>x.name===a&&x.enabled))return!0}return!1},z=e=>{L(e)&&i.includes(e)||(i.includes(e)?f(i.filter(r=>r!==e)):f([...i,e]))},H=e=>{j(e)&&l.includes(e)||(l.includes(e)?h(l.filter(r=>r!==e)):h([...l,e]))},J=e=>{const r=new Set(C);r.has(e)?r.delete(e):r.add(e),V(r)},B=e=>{const r=u.find(s=>s.name===e);return!r||!r.tools?!1:r.tools.some(s=>{const a=`mcp__${e}__${s}`;return j(a)})},X=(e,r)=>{const s=u.find(n=>n.name===e);if(!s||!s.tools)return;const a=s.tools.map(n=>`mcp__${e}__${n}`),x=B(e);if(r)if(x){const n=a.filter(o=>!j(o));h(l.filter(o=>!n.includes(o)))}else h(l.filter(n=>!a.includes(n)));else{const n=[...l];a.forEach(o=>{n.includes(o)||n.push(o)}),h(n)}},Y=e=>{const r=u.find(a=>a.name===e);return!r||!r.tools?!1:r.tools.map(a=>`mcp__${e}__${a}`).every(a=>l.includes(a))};return d?t.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[60]",onClick:m,children:t.jsxs("div",{className:"unified-tool-selector-popup w-96 max-h-[500px] bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg flex flex-col",onClick:e=>e.stopPropagation(),children:[t.jsxs("div",{className:"p-4 flex-shrink-0",children:[t.jsxs("div",{className:"flex items-center justify-between mb-4",children:[t.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-white",children:c("unifiedToolSelector.title")}),t.jsx("button",{type:"button",onClick:m,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",children:t.jsx(R,{className:"w-5 h-5"})})]}),t.jsxs("div",{className:"flex space-x-1 mb-2 bg-gray-100 dark:bg-gray-700 rounded-lg p-1",children:[t.jsxs("button",{type:"button",onClick:()=>W("regular"),className:`flex-1 flex items-center justify-center space-x-2 px-3 py-2 rounded-md text-sm font-medium transition-colors ${S==="regular"?"bg-white dark:bg-gray-800 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`,children:[t.jsx(ee,{className:"w-4 h-4"}),t.jsx("span",{children:c("unifiedToolSelector.tabs.regular")}),i.length>0&&t.jsx("span",{className:"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 text-xs rounded-full px-2 py-0.5 min-w-[20px] text-center",children:i.length})]}),t.jsxs("button",{type:"button",onClick:()=>W("mcp"),className:`flex-1 flex items-center justify-center space-x-2 px-3 py-2 rounded-md text-sm font-medium transition-colors ${S==="mcp"?"bg-white dark:bg-gray-800 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`,children:[t.jsx(te,{className:"w-4 h-4"}),t.jsx("span",{children:c("unifiedToolSelector.tabs.mcp")}),l.length>0&&t.jsx("span",{className:"bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400 text-xs rounded-full px-2 py-0.5 min-w-[20px] text-center",children:l.filter(e=>e.startsWith("mcp__")&&e.split("__").length===3).length})]})]})]}),t.jsx("div",{className:"px-4 pb-4 overflow-y-auto flex-1",children:S==="regular"?t.jsx("div",{className:"space-y-2",children:t.jsxs("div",{className:"space-y-2",children:[t.jsx("div",{className:"flex items-center justify-end p-2 hover:bg-gray-50 dark:hover:bg-gray-700 rounded",children:t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300 font-medium",children:c("unifiedToolSelector.selectAll")}),t.jsx("button",{type:"button",onClick:()=>{i.length===b.length?f([]):f(b.map(e=>e.name))},className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${i.length===b.length||i.length>0?"bg-blue-600 border-blue-600 text-white":"border-gray-300 dark:border-gray-600 hover:border-blue-500"}`,children:i.length===b.length?t.jsx(N,{className:"w-3 h-3"}):i.length>0?t.jsx(O,{className:"w-3 h-3"}):null})]})}),b.map(e=>{const r=i.includes(e.name),s=L(e.name),a=P||s&&r;return t.jsx("div",{className:`flex items-center justify-between p-2 rounded ${a?"bg-gray-50 dark:bg-gray-700":"hover:bg-gray-50 dark:hover:bg-gray-700"}`,children:t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("button",{type:"button",onClick:()=>z(e.name),disabled:a,className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${r?s?"bg-orange-500 border-orange-500 text-white cursor-not-allowed":"bg-blue-600 border-blue-600 text-white":a?"border-gray-200 dark:border-gray-600 cursor-not-allowed":"border-gray-300 dark:border-gray-600 hover:border-blue-500"}`,children:r&&(s?t.jsx(E,{className:"w-3 h-3"}):t.jsx(N,{className:"w-3 h-3"}))}),t.jsxs("span",{className:`text-sm ${a?"text-gray-400 dark:text-gray-500":"text-gray-700 dark:text-gray-300"}`,children:[F(e.name)," (",e.name,")",s&&t.jsxs("span",{className:"ml-1 text-xs text-orange-600 dark:text-orange-400",children:["[",c("unifiedToolSelector.preset"),"]"]})]})]})},e.name)})]})}):t.jsxs("div",{className:"space-y-4",children:[t.jsx("div",{className:"flex items-center justify-end p-2",children:t.jsxs("label",{className:"flex items-center space-x-2",children:[t.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:c("unifiedToolSelector.enableMcpTools")}),t.jsx("input",{type:"checkbox",checked:G,onChange:e=>U(e.target.checked),className:"w-4 h-4 text-green-600 border-gray-300 dark:border-gray-600 rounded focus:ring-green-500"})]})}),v&&t.jsxs("div",{className:"flex items-center justify-center py-4",children:[t.jsx(re,{className:"w-4 h-4 text-gray-400 animate-spin mr-2"}),t.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:c("unifiedToolSelector.loading")})]}),p&&t.jsxs("div",{className:"flex items-center justify-center py-4 text-red-600 dark:text-red-400",children:[t.jsx(D,{className:"w-4 h-4 mr-2"}),t.jsx("span",{className:"text-sm",children:p})]}),!v&&!p&&u.length===0&&t.jsx("div",{className:"text-center py-4 text-gray-500 dark:text-gray-400",children:t.jsx("span",{className:"text-sm",children:c("unifiedToolSelector.noMcpServers")})}),!v&&!p&&u.map(e=>{const r=C.has(e.name),s=e.status==="active",a=Y(e.name),x=e.tools?.some(o=>l.includes(`mcp__${e.name}__${o}`)),n=B(e.name);return t.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg",children:[t.jsxs("div",{className:"flex items-center justify-between p-3",children:[t.jsxs("button",{type:"button",onClick:()=>J(e.name),className:"flex items-center space-x-2 flex-1 text-left hover:bg-gray-50 dark:hover:bg-gray-700 -m-1 p-1 rounded transition-colors",disabled:!s,children:[r?t.jsx(se,{className:"w-4 h-4 text-gray-400"}):t.jsx(ae,{className:"w-4 h-4 text-gray-400"}),t.jsx("div",{className:`w-2 h-2 rounded-full ${s?"bg-green-500":"bg-red-500"}`}),t.jsx("span",{className:`font-medium ${s?"text-gray-900 dark:text-white":"text-gray-500 dark:text-gray-400"}`,children:e.name}),t.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:c("unifiedToolSelector.toolsCount",{count:e.tools?.length||0})})]}),s&&e.tools&&e.tools.length>0&&t.jsx("button",{type:"button",onClick:()=>X(e.name,a),className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${a?n?"bg-orange-500 border-orange-500 text-white":"bg-green-600 border-green-600 text-white":x?n?"bg-orange-400 border-orange-400 text-white":"bg-blue-600 border-blue-600 text-white":"border-gray-300 dark:border-gray-600 hover:border-green-500"}`,children:a?n?t.jsx(E,{className:"w-3 h-3"}):t.jsx(N,{className:"w-3 h-3"}):x?t.jsx(O,{className:"w-3 h-3"}):null})]}),r&&s&&e.tools&&t.jsx("div",{className:"border-t border-gray-200 dark:border-gray-700 p-3 space-y-2",children:e.tools.map(o=>{const _=`mcp__${e.name}__${o}`,$=l.includes(_),k=j(_),w=P||k&&$;return t.jsx("div",{className:`flex items-center justify-between p-2 rounded ${w?"bg-gray-50 dark:bg-gray-700":"hover:bg-gray-50 dark:hover:bg-gray-700"}`,children:t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("button",{type:"button",onClick:()=>H(_),disabled:w,className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${$?k?"bg-orange-500 border-orange-500 text-white cursor-not-allowed":"bg-green-600 border-green-600 text-white":w?"border-gray-200 dark:border-gray-600 cursor-not-allowed":"border-gray-300 dark:border-gray-600 hover:border-green-500"}`,children:$&&(k?t.jsx(E,{className:"w-3 h-3"}):t.jsx(N,{className:"w-3 h-3"}))}),t.jsxs("span",{className:`text-sm ${w?"text-gray-400 dark:text-gray-500":"text-gray-700 dark:text-gray-300"}`,children:[o,k&&t.jsxs("span",{className:"ml-1 text-xs text-orange-600 dark:text-orange-400",children:["[",c("unifiedToolSelector.preset"),"]"]})]})]})},o)})}),!s&&t.jsx("div",{className:"border-t border-gray-200 dark:border-gray-700 p-3",children:t.jsxs("div",{className:"flex items-center text-red-600 dark:text-red-400",children:[t.jsx(D,{className:"w-4 h-4 mr-2"}),t.jsx("span",{className:"text-sm",children:e.error||c("unifiedToolSelector.serverUnavailable")})]})})]},e.name)})]})})]})}):null};export{ge as U,F as g};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,I as n}from"./ChatPage-D8buVhfb.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as t,c as i,a as o,C as a}from"./chunk-B4BG7PRW-BNmOvuIn.js";import{_ as m}from"./ChatPage-D8buVhfb.js";import"./chunk-FMBD7UC4-BsvfEdnB.js";import"./chunk-55IACEB6-DVsfnY5X.js";import"./chunk-QN33PNHL-DSecsNtM.js";import"./data-structures-ChC1tqVg.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-KlPdWQ8K.js";import"./tools-BZTR2NP1.js";import"./ui-components-DjgDPiqV.js";import"./useAgents-8KXN6U61.js";import"./useSessions-DOa4-xiB.js";import"./index-f67nhEoX.js";import"./useCommands-DbSH48ba.js";import"./useClaudeVersions-DicHLV6A.js";import"./FileExplorer-x5R0Tcmk.js";import"./UnifiedToolSelector-BP6fuyzG.js";import"./FileBrowser-DboOOM_v.js";import"./ProjectSelector-CybrDbBY.js";var x={parser:o,get db(){return new a},renderer:i,styles:t,init:m(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{x as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as t,c as i,a as o,C as a}from"./chunk-B4BG7PRW-BNmOvuIn.js";import{_ as m}from"./ChatPage-D8buVhfb.js";import"./chunk-FMBD7UC4-BsvfEdnB.js";import"./chunk-55IACEB6-DVsfnY5X.js";import"./chunk-QN33PNHL-DSecsNtM.js";import"./data-structures-ChC1tqVg.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-KlPdWQ8K.js";import"./tools-BZTR2NP1.js";import"./ui-components-DjgDPiqV.js";import"./useAgents-8KXN6U61.js";import"./useSessions-DOa4-xiB.js";import"./index-f67nhEoX.js";import"./useCommands-DbSH48ba.js";import"./useClaudeVersions-DicHLV6A.js";import"./FileExplorer-x5R0Tcmk.js";import"./UnifiedToolSelector-BP6fuyzG.js";import"./FileBrowser-DboOOM_v.js";import"./ProjectSelector-CybrDbBY.js";var x={parser:o,get db(){return new a},renderer:i,styles:t,init:m(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{x as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./_baseUniq-B1lmu3qr.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{_ as o,l as e,K as p,e as m,L as s}from"./ChatPage-D8buVhfb.js";import{p as n}from"./treemap-KMMF4GRG-bFxwBWXw.js";import"./data-structures-ChC1tqVg.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-KlPdWQ8K.js";import"./tools-BZTR2NP1.js";import"./ui-components-DjgDPiqV.js";import"./useAgents-8KXN6U61.js";import"./useSessions-DOa4-xiB.js";import"./index-f67nhEoX.js";import"./useCommands-DbSH48ba.js";import"./useClaudeVersions-DicHLV6A.js";import"./FileExplorer-x5R0Tcmk.js";import"./UnifiedToolSelector-BP6fuyzG.js";import"./FileBrowser-DboOOM_v.js";import"./ProjectSelector-CybrDbBY.js";import"./_baseUniq-B1lmu3qr.js";import"./_basePickBy-DHabY031.js";import"./clone-3wFPaI2j.js";var g={parse:o(async r=>{const t=await n("info",r);e.debug(t)},"parse")},v={version:s.version+""},d=o(()=>v.version,"getVersion"),c={getVersion:d},l=o((r,t,i)=>{e.debug(`rendering info diagram
|
|
2
|
-
`+r);const a=p(t);m(a,100,400,!0),a.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${i}`)},"draw"),f={draw:l},T={parser:g,db:c,renderer:f};export{T as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a as i,S as a}from"./chunk-DI55MBZ5-BkucWe8Y.js";import{_ as o}from"./ChatPage-D8buVhfb.js";import"./chunk-55IACEB6-DVsfnY5X.js";import"./chunk-QN33PNHL-DSecsNtM.js";import"./data-structures-ChC1tqVg.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-KlPdWQ8K.js";import"./tools-BZTR2NP1.js";import"./ui-components-DjgDPiqV.js";import"./useAgents-8KXN6U61.js";import"./useSessions-DOa4-xiB.js";import"./index-f67nhEoX.js";import"./useCommands-DbSH48ba.js";import"./useClaudeVersions-DicHLV6A.js";import"./FileExplorer-x5R0Tcmk.js";import"./UnifiedToolSelector-BP6fuyzG.js";import"./FileBrowser-DboOOM_v.js";import"./ProjectSelector-CybrDbBY.js";var x={parser:i,get db(){return new a(2)},renderer:e,styles:r,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{x as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as P}from"./monaco-editor-BWfQfpij.js";import{j as f}from"./data-structures-ChC1tqVg.js";import{P as ne,S as te,G as se,a as xe,T as H,F as be,b as ae,c as ye,d as ke,e as Se,f as We,B as Je,g as Ge,h as Ye,i as Qe,C as X,A as Ze,W as qe,L as Xe,j as z,k as et,l as tt,m as Ke,n as st,Z as rt}from"./ui-components-DjgDPiqV.js";const p=n=>typeof n=="string",B=()=>{let n,e;const t=new Promise((r,s)=>{n=r,e=s});return t.resolve=n,t.reject=e,t},Ne=n=>n==null?"":""+n,it=(n,e,t)=>{n.forEach(r=>{e[r]&&(t[r]=e[r])})},nt=/###/g,we=n=>n&&n.indexOf("###")>-1?n.replace(nt,"."):n,Oe=n=>!n||p(n),M=(n,e,t)=>{const r=p(e)?e.split("."):e;let s=0;for(;s<r.length-1;){if(Oe(n))return{};const i=we(r[s]);!n[i]&&t&&(n[i]=new t),Object.prototype.hasOwnProperty.call(n,i)?n=n[i]:n={},++s}return Oe(n)?{}:{obj:n,k:we(r[s])}},Ce=(n,e,t)=>{const{obj:r,k:s}=M(n,e,Object);if(r!==void 0||e.length===1){r[s]=t;return}let i=e[e.length-1],a=e.slice(0,e.length-1),o=M(n,a,Object);for(;o.obj===void 0&&a.length;)i=`${a[a.length-1]}.${i}`,a=a.slice(0,a.length-1),o=M(n,a,Object),o?.obj&&typeof o.obj[`${o.k}.${i}`]<"u"&&(o.obj=void 0);o.obj[`${o.k}.${i}`]=t},at=(n,e,t,r)=>{const{obj:s,k:i}=M(n,e,Object);s[i]=s[i]||[],s[i].push(t)},Q=(n,e)=>{const{obj:t,k:r}=M(n,e);if(t&&Object.prototype.hasOwnProperty.call(t,r))return t[r]},ot=(n,e,t)=>{const r=Q(n,t);return r!==void 0?r:Q(e,t)},Ae=(n,e,t)=>{for(const r in e)r!=="__proto__"&&r!=="constructor"&&(r in n?p(n[r])||n[r]instanceof String||p(e[r])||e[r]instanceof String?t&&(n[r]=e[r]):Ae(n[r],e[r],t):n[r]=e[r]);return n},A=n=>n.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var lt={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const ut=n=>p(n)?n.replace(/[&<>"'\/]/g,e=>lt[e]):n;class dt{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const r=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,r),this.regExpQueue.push(e),r}}const ct=[" ",",","?","!",";"],ft=new dt(20),ht=(n,e,t)=>{e=e||"",t=t||"";const r=ct.filter(a=>e.indexOf(a)<0&&t.indexOf(a)<0);if(r.length===0)return!0;const s=ft.getRegExp(`(${r.map(a=>a==="?"?"\\?":a).join("|")})`);let i=!s.test(n);if(!i){const a=n.indexOf(t);a>0&&!s.test(n.substring(0,a))&&(i=!0)}return i},oe=(n,e,t=".")=>{if(!n)return;if(n[e])return Object.prototype.hasOwnProperty.call(n,e)?n[e]:void 0;const r=e.split(t);let s=n;for(let i=0;i<r.length;){if(!s||typeof s!="object")return;let a,o="";for(let u=i;u<r.length;++u)if(u!==i&&(o+=t),o+=r[u],a=s[o],a!==void 0){if(["string","number","boolean"].indexOf(typeof a)>-1&&u<r.length-1)continue;i+=u-i+1;break}s=a}return s},_=n=>n?.replace("_","-"),gt={type:"logger",log(n){this.output("log",n)},warn(n){this.output("warn",n)},error(n){this.output("error",n)},output(n,e){console?.[n]?.apply?.(console,e)}};class Z{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||gt,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,r,s){return s&&!this.debug?null:(p(e[0])&&(e[0]=`${r}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new Z(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new Z(this.logger,e)}}var E=new Z;class ee{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(r=>{this.observers[r]||(this.observers[r]=new Map);const s=this.observers[r].get(t)||0;this.observers[r].set(t,s+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([s,i])=>{for(let a=0;a<i;a++)s(...t)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([s,i])=>{for(let a=0;a<i;a++)s.apply(s,[e,...t])})}}class Le extends ee{constructor(e,t={ns:["translation"],defaultNS:"translation"}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,r,s={}){const i=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,a=s.ignoreJSONStructure!==void 0?s.ignoreJSONStructure:this.options.ignoreJSONStructure;let o;e.indexOf(".")>-1?o=e.split("."):(o=[e,t],r&&(Array.isArray(r)?o.push(...r):p(r)&&i?o.push(...r.split(i)):o.push(r)));const u=Q(this.data,o);return!u&&!t&&!r&&e.indexOf(".")>-1&&(e=o[0],t=o[1],r=o.slice(2).join(".")),u||!a||!p(r)?u:oe(this.data?.[e]?.[t],r,i)}addResource(e,t,r,s,i={silent:!1}){const a=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let o=[e,t];r&&(o=o.concat(a?r.split(a):r)),e.indexOf(".")>-1&&(o=e.split("."),s=t,t=o[1]),this.addNamespaces(t),Ce(this.data,o,s),i.silent||this.emit("added",e,t,r,s)}addResources(e,t,r,s={silent:!1}){for(const i in r)(p(r[i])||Array.isArray(r[i]))&&this.addResource(e,t,i,r[i],{silent:!0});s.silent||this.emit("added",e,t,r)}addResourceBundle(e,t,r,s,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.indexOf(".")>-1&&(o=e.split("."),s=r,r=t,t=o[1]),this.addNamespaces(t);let u=Q(this.data,o)||{};a.skipCopy||(r=JSON.parse(JSON.stringify(r))),s?Ae(u,r,i):u={...u,...r},Ce(this.data,o,u),a.silent||this.emit("added",e,t,r)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(s=>t[s]&&Object.keys(t[s]).length>0)}toJSON(){return this.data}}var Ue={processors:{},addPostProcessor(n){this.processors[n.name]=n},handle(n,e,t,r,s){return n.forEach(i=>{e=this.processors[i]?.process(e,t,r,s)??e}),e}};const Ve=Symbol("i18next/PATH_KEY");function pt(){const n=[],e=Object.create(null);let t;return e.get=(r,s)=>(t?.revoke?.(),s===Ve?n:(n.push(s),t=Proxy.revocable(r,e),t.proxy)),Proxy.revocable(Object.create(null),e).proxy}function le(n,e){const{[Ve]:t}=n(pt());return t.join(e?.keySeparator??".")}const ve={},re=n=>!p(n)&&typeof n!="boolean"&&typeof n!="number";class q extends ee{constructor(e,t={}){super(),it(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=E.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const r={...t};if(e==null)return!1;const s=this.resolve(e,r);if(s?.res===void 0)return!1;const i=re(s.res);return!(r.returnObjects===!1&&i)}extractFromKey(e,t){let r=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const s=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let i=t.ns||this.options.defaultNS||[];const a=r&&e.indexOf(r)>-1,o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!ht(e,r,s);if(a&&!o){const u=e.match(this.interpolator.nestingRegexp);if(u&&u.length>0)return{key:e,namespaces:p(i)?[i]:i};const l=e.split(r);(r!==s||r===s&&this.options.ns.indexOf(l[0])>-1)&&(i=l.shift()),e=l.join(s)}return{key:e,namespaces:p(i)?[i]:i}}translate(e,t,r){let s=typeof t=="object"?{...t}:t;if(typeof s!="object"&&this.options.overloadTranslationOptionHandler&&(s=this.options.overloadTranslationOptionHandler(arguments)),typeof s=="object"&&(s={...s}),s||(s={}),e==null)return"";typeof e=="function"&&(e=le(e,{...this.options,...s})),Array.isArray(e)||(e=[String(e)]);const i=s.returnDetails!==void 0?s.returnDetails:this.options.returnDetails,a=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,{key:o,namespaces:u}=this.extractFromKey(e[e.length-1],s),l=u[u.length-1];let d=s.nsSeparator!==void 0?s.nsSeparator:this.options.nsSeparator;d===void 0&&(d=":");const c=s.lng||this.language,m=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c?.toLowerCase()==="cimode")return m?i?{res:`${l}${d}${o}`,usedKey:o,exactUsedKey:o,usedLng:c,usedNS:l,usedParams:this.getUsedParamsDetails(s)}:`${l}${d}${o}`:i?{res:o,usedKey:o,exactUsedKey:o,usedLng:c,usedNS:l,usedParams:this.getUsedParamsDetails(s)}:o;const h=this.resolve(e,s);let g=h?.res;const y=h?.usedKey||o,k=h?.exactUsedKey||o,C=["[object Number]","[object Function]","[object RegExp]"],b=s.joinArrays!==void 0?s.joinArrays:this.options.joinArrays,L=!this.i18nFormat||this.i18nFormat.handleAsObject,x=s.count!==void 0&&!p(s.count),S=q.hasDefaultValue(s),N=x?this.pluralResolver.getSuffix(c,s.count,s):"",w=s.ordinal&&x?this.pluralResolver.getSuffix(c,s.count,{ordinal:!1}):"",he=x&&!s.ordinal&&s.count===0,I=he&&s[`defaultValue${this.options.pluralSeparator}zero`]||s[`defaultValue${N}`]||s[`defaultValue${w}`]||s.defaultValue;let R=g;L&&!g&&S&&(R=I);const ze=re(R),_e=Object.prototype.toString.apply(R);if(L&&R&&ze&&C.indexOf(_e)<0&&!(p(b)&&Array.isArray(R))){if(!s.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const T=this.options.returnedObjectHandler?this.options.returnedObjectHandler(y,R,{...s,ns:u}):`key '${o} (${this.language})' returned an object instead of string.`;return i?(h.res=T,h.usedParams=this.getUsedParamsDetails(s),h):T}if(a){const T=Array.isArray(R),j=T?[]:{},ge=T?k:y;for(const $ in R)if(Object.prototype.hasOwnProperty.call(R,$)){const F=`${ge}${a}${$}`;S&&!g?j[$]=this.translate(F,{...s,defaultValue:re(I)?I[$]:void 0,joinArrays:!1,ns:u}):j[$]=this.translate(F,{...s,joinArrays:!1,ns:u}),j[$]===F&&(j[$]=R[$])}g=j}}else if(L&&p(b)&&Array.isArray(g))g=g.join(b),g&&(g=this.extendTranslation(g,e,s,r));else{let T=!1,j=!1;!this.isValidLookup(g)&&S&&(T=!0,g=I),this.isValidLookup(g)||(j=!0,g=o);const $=(s.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&j?void 0:g,F=S&&I!==g&&this.options.updateMissing;if(j||T||F){if(this.logger.log(F?"updateKey":"missingKey",c,l,o,F?I:g),a){const v=this.resolve(o,{...s,keySeparator:!1});v&&v.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let U=[];const G=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if(this.options.saveMissingTo==="fallback"&&G&&G[0])for(let v=0;v<G.length;v++)U.push(G[v]);else this.options.saveMissingTo==="all"?U=this.languageUtils.toResolveHierarchy(s.lng||this.language):U.push(s.lng||this.language);const pe=(v,D,V)=>{const me=S&&V!==g?V:$;this.options.missingKeyHandler?this.options.missingKeyHandler(v,l,D,me,F,s):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(v,l,D,me,F,s),this.emit("missingKey",v,l,D,g)};this.options.saveMissing&&(this.options.saveMissingPlurals&&x?U.forEach(v=>{const D=this.pluralResolver.getSuffixes(v,s);he&&s[`defaultValue${this.options.pluralSeparator}zero`]&&D.indexOf(`${this.options.pluralSeparator}zero`)<0&&D.push(`${this.options.pluralSeparator}zero`),D.forEach(V=>{pe([v],o+V,s[`defaultValue${V}`]||I)})}):pe(U,o,I))}g=this.extendTranslation(g,e,s,h,r),j&&g===o&&this.options.appendNamespaceToMissingKey&&(g=`${l}${d}${o}`),(j||T)&&this.options.parseMissingKeyHandler&&(g=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${d}${o}`:o,T?g:void 0,s))}return i?(h.res=g,h.usedParams=this.getUsedParamsDetails(s),h):g}extendTranslation(e,t,r,s,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||s.usedLng,s.usedNS,s.usedKey,{resolved:s});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const u=p(e)&&(r?.interpolation?.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let l;if(u){const c=e.match(this.interpolator.nestingRegexp);l=c&&c.length}let d=r.replace&&!p(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(d={...this.options.interpolation.defaultVariables,...d}),e=this.interpolator.interpolate(e,d,r.lng||this.language||s.usedLng,r),u){const c=e.match(this.interpolator.nestingRegexp),m=c&&c.length;l<m&&(r.nest=!1)}!r.lng&&s&&s.res&&(r.lng=this.language||s.usedLng),r.nest!==!1&&(e=this.interpolator.nest(e,(...c)=>i?.[0]===c[0]&&!r.context?(this.logger.warn(`It seems you are nesting recursively key: ${c[0]} in key: ${t[0]}`),null):this.translate(...c,t),r)),r.interpolation&&this.interpolator.reset()}const a=r.postProcess||this.options.postProcess,o=p(a)?[a]:a;return e!=null&&o?.length&&r.applyPostProcessor!==!1&&(e=Ue.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...s,usedParams:this.getUsedParamsDetails(r)},...r}:r,this)),e}resolve(e,t={}){let r,s,i,a,o;return p(e)&&(e=[e]),e.forEach(u=>{if(this.isValidLookup(r))return;const l=this.extractFromKey(u,t),d=l.key;s=d;let c=l.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const m=t.count!==void 0&&!p(t.count),h=m&&!t.ordinal&&t.count===0,g=t.context!==void 0&&(p(t.context)||typeof t.context=="number")&&t.context!=="",y=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);c.forEach(k=>{this.isValidLookup(r)||(o=k,!ve[`${y[0]}-${k}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&(ve[`${y[0]}-${k}`]=!0,this.logger.warn(`key "${s}" for languages "${y.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),y.forEach(C=>{if(this.isValidLookup(r))return;a=C;const b=[d];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(b,d,C,k,t);else{let x;m&&(x=this.pluralResolver.getSuffix(C,t.count,t));const S=`${this.options.pluralSeparator}zero`,N=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(t.ordinal&&x.indexOf(N)===0&&b.push(d+x.replace(N,this.options.pluralSeparator)),b.push(d+x),h&&b.push(d+S)),g){const w=`${d}${this.options.contextSeparator||"_"}${t.context}`;b.push(w),m&&(t.ordinal&&x.indexOf(N)===0&&b.push(w+x.replace(N,this.options.pluralSeparator)),b.push(w+x),h&&b.push(w+S))}}let L;for(;L=b.pop();)this.isValidLookup(r)||(i=L,r=this.getResource(C,k,L,t))}))})}),{res:r,usedKey:s,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,r,s={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,r,s):this.resourceStore.getResource(e,t,r,s)}getUsedParamsDetails(e={}){const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=e.replace&&!p(e.replace);let s=r?e.replace:e;if(r&&typeof e.count<"u"&&(s.count=e.count),this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),!r){s={...s};for(const i of t)delete s[i]}return s}static hasDefaultValue(e){const t="defaultValue";for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&t===r.substring(0,t.length)&&e[r]!==void 0)return!0;return!1}}class je{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=E.create("languageUtils")}getScriptPartFromCode(e){if(e=_(e),!e||e.indexOf("-")<0)return null;const t=e.split("-");return t.length===2||(t.pop(),t[t.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(t.join("-"))}getLanguagePartFromCode(e){if(e=_(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(p(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(r=>{if(t)return;const s=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(s))&&(t=s)}),!t&&this.options.supportedLngs&&e.forEach(r=>{if(t)return;const s=this.getScriptPartFromCode(r);if(this.isSupportedCode(s))return t=s;const i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return t=i;t=this.options.supportedLngs.find(a=>{if(a===i)return a;if(!(a.indexOf("-")<0&&i.indexOf("-")<0)&&(a.indexOf("-")>0&&i.indexOf("-")<0&&a.substring(0,a.indexOf("-"))===i||a.indexOf(i)===0&&i.length>1))return a})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),p(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let r=e[t];return r||(r=e[this.getScriptPartFromCode(t)]),r||(r=e[this.formatLanguageCode(t)]),r||(r=e[this.getLanguagePartFromCode(t)]),r||(r=e.default),r||[]}toResolveHierarchy(e,t){const r=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),s=[],i=a=>{a&&(this.isSupportedCode(a)?s.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return p(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(e))):p(e)&&i(this.formatLanguageCode(e)),r.forEach(a=>{s.indexOf(a)<0&&i(this.formatLanguageCode(a))}),s}}const Re={zero:0,one:1,two:2,few:3,many:4,other:5},Te={select:n=>n===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class mt{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=E.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const r=_(e==="dev"?"en":e),s=t.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:r,type:s});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(r,{type:s})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Te;if(!e.match(/-|_/))return Te;const u=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(u,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,r={}){return this.getSuffixes(e,r).map(s=>`${t}${s}`)}getSuffixes(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?r.resolvedOptions().pluralCategories.sort((s,i)=>Re[s]-Re[i]).map(s=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${s}`):[]}getSuffix(e,t,r={}){const s=this.getRule(e,r);return s?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${s.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,r))}}const $e=(n,e,t,r=".",s=!0)=>{let i=ot(n,e,t);return!i&&s&&p(t)&&(i=oe(n,t,r),i===void 0&&(i=oe(e,t,r))),i},ie=n=>n.replace(/\$/g,"$$$$");class xt{constructor(e={}){this.logger=E.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(t=>t),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:r,useRawValueToEscape:s,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:u,formatSeparator:l,unescapeSuffix:d,unescapePrefix:c,nestingPrefix:m,nestingPrefixEscaped:h,nestingSuffix:g,nestingSuffixEscaped:y,nestingOptionsSeparator:k,maxReplaces:C,alwaysFormat:b}=e.interpolation;this.escape=t!==void 0?t:ut,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=s!==void 0?s:!1,this.prefix=i?A(i):a||"{{",this.suffix=o?A(o):u||"}}",this.formatSeparator=l||",",this.unescapePrefix=d?"":c||"-",this.unescapeSuffix=this.unescapePrefix?"":d||"",this.nestingPrefix=m?A(m):h||A("$t("),this.nestingSuffix=g?A(g):y||A(")"),this.nestingOptionsSeparator=k||",",this.maxReplaces=C||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,r)=>t?.source===r?(t.lastIndex=0,t):new RegExp(r,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,r,s){let i,a,o;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},l=h=>{if(h.indexOf(this.formatSeparator)<0){const C=$e(t,u,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(C,void 0,r,{...s,...t,interpolationkey:h}):C}const g=h.split(this.formatSeparator),y=g.shift().trim(),k=g.join(this.formatSeparator).trim();return this.format($e(t,u,y,this.options.keySeparator,this.options.ignoreJSONStructure),k,r,{...s,...t,interpolationkey:y})};this.resetRegExp();const d=s?.missingInterpolationHandler||this.options.missingInterpolationHandler,c=s?.interpolation?.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>ie(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?ie(this.escape(h)):ie(h)}].forEach(h=>{for(o=0;i=h.regex.exec(e);){const g=i[1].trim();if(a=l(g),a===void 0)if(typeof d=="function"){const k=d(e,i,s);a=p(k)?k:""}else if(s&&Object.prototype.hasOwnProperty.call(s,g))a="";else if(c){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${g} for interpolating ${e}`),a="";else!p(a)&&!this.useRawValueToEscape&&(a=Ne(a));const y=h.safeValue(a);if(e=e.replace(i[0],y),c?(h.regex.lastIndex+=a.length,h.regex.lastIndex-=i[0].length):h.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,r={}){let s,i,a;const o=(u,l)=>{const d=this.nestingOptionsSeparator;if(u.indexOf(d)<0)return u;const c=u.split(new RegExp(`${d}[ ]*{`));let m=`{${c[1]}`;u=c[0],m=this.interpolate(m,a);const h=m.match(/'/g),g=m.match(/"/g);((h?.length??0)%2===0&&!g||g.length%2!==0)&&(m=m.replace(/'/g,'"'));try{a=JSON.parse(m),l&&(a={...l,...a})}catch(y){return this.logger.warn(`failed parsing options string in nesting for key ${u}`,y),`${u}${d}${m}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,u};for(;s=this.nestingRegexp.exec(e);){let u=[];a={...r},a=a.replace&&!p(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;const l=/{.*}/.test(s[1])?s[1].lastIndexOf("}")+1:s[1].indexOf(this.formatSeparator);if(l!==-1&&(u=s[1].slice(l).split(this.formatSeparator).map(d=>d.trim()).filter(Boolean),s[1]=s[1].slice(0,l)),i=t(o.call(this,s[1].trim(),a),a),i&&s[0]===e&&!p(i))return i;p(i)||(i=Ne(i)),i||(this.logger.warn(`missed to resolve ${s[1]} for nesting ${e}`),i=""),u.length&&(i=u.reduce((d,c)=>this.format(d,c,r.lng,{...r,interpolationkey:s[1].trim()}),i.trim())),e=e.replace(s[0],i),this.regexp.lastIndex=0}return e}}const bt=n=>{let e=n.toLowerCase().trim();const t={};if(n.indexOf("(")>-1){const r=n.split("(");e=r[0].toLowerCase().trim();const s=r[1].substring(0,r[1].length-1);e==="currency"&&s.indexOf(":")<0?t.currency||(t.currency=s.trim()):e==="relativetime"&&s.indexOf(":")<0?t.range||(t.range=s.trim()):s.split(";").forEach(a=>{if(a){const[o,...u]=a.split(":"),l=u.join(":").trim().replace(/^'+|'+$/g,""),d=o.trim();t[d]||(t[d]=l),l==="false"&&(t[d]=!1),l==="true"&&(t[d]=!0),isNaN(l)||(t[d]=parseInt(l,10))}})}return{formatName:e,formatOptions:t}},Pe=n=>{const e={};return(t,r,s)=>{let i=s;s&&s.interpolationkey&&s.formatParams&&s.formatParams[s.interpolationkey]&&s[s.interpolationkey]&&(i={...i,[s.interpolationkey]:void 0});const a=r+JSON.stringify(i);let o=e[a];return o||(o=n(_(r),s),e[a]=o),o(t)}},yt=n=>(e,t,r)=>n(_(t),r)(e);class kt{constructor(e={}){this.logger=E.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const r=t.cacheInBuiltFormats?Pe:yt;this.formats={number:r((s,i)=>{const a=new Intl.NumberFormat(s,{...i});return o=>a.format(o)}),currency:r((s,i)=>{const a=new Intl.NumberFormat(s,{...i,style:"currency"});return o=>a.format(o)}),datetime:r((s,i)=>{const a=new Intl.DateTimeFormat(s,{...i});return o=>a.format(o)}),relativetime:r((s,i)=>{const a=new Intl.RelativeTimeFormat(s,{...i});return o=>a.format(o,i.range||"day")}),list:r((s,i)=>{const a=new Intl.ListFormat(s,{...i});return o=>a.format(o)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=Pe(t)}format(e,t,r,s={}){const i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(o=>o.indexOf(")")>-1)){const o=i.findIndex(u=>u.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,o)].join(this.formatSeparator)}return i.reduce((o,u)=>{const{formatName:l,formatOptions:d}=bt(u);if(this.formats[l]){let c=o;try{const m=s?.formatParams?.[s.interpolationkey]||{},h=m.locale||m.lng||s.locale||s.lng||r;c=this.formats[l](o,h,{...d,...s,...m})}catch(m){this.logger.warn(m)}return c}else this.logger.warn(`there was no format function for ${l}`);return o},e)}}const St=(n,e)=>{n.pending[e]!==void 0&&(delete n.pending[e],n.pendingCount--)};class Nt extends ee{constructor(e,t,r,s={}){super(),this.backend=e,this.store=t,this.services=r,this.languageUtils=r.languageUtils,this.options=s,this.logger=E.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=s.maxParallelReads||10,this.readingCalls=0,this.maxRetries=s.maxRetries>=0?s.maxRetries:5,this.retryTimeout=s.retryTimeout>=1?s.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(r,s.backend,s)}queueLoad(e,t,r,s){const i={},a={},o={},u={};return e.forEach(l=>{let d=!0;t.forEach(c=>{const m=`${l}|${c}`;!r.reload&&this.store.hasResourceBundle(l,c)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?a[m]===void 0&&(a[m]=!0):(this.state[m]=1,d=!1,a[m]===void 0&&(a[m]=!0),i[m]===void 0&&(i[m]=!0),u[c]===void 0&&(u[c]=!0)))}),d||(o[l]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:s}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(u)}}loaded(e,t,r){const s=e.split("|"),i=s[0],a=s[1];t&&this.emit("failedLoading",i,a,t),!t&&r&&this.store.addResourceBundle(i,a,r,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&r&&(this.state[e]=0);const o={};this.queue.forEach(u=>{at(u.loaded,[i],a),St(u,e),t&&u.errors.push(t),u.pendingCount===0&&!u.done&&(Object.keys(u.loaded).forEach(l=>{o[l]||(o[l]={});const d=u.loaded[l];d.length&&d.forEach(c=>{o[l][c]===void 0&&(o[l][c]=!0)})}),u.done=!0,u.errors.length?u.callback(u.errors):u.callback())}),this.emit("loaded",o),this.queue=this.queue.filter(u=>!u.done)}read(e,t,r,s=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:r,tried:s,wait:i,callback:a});return}this.readingCalls++;const o=(l,d)=>{if(this.readingCalls--,this.waitingReads.length>0){const c=this.waitingReads.shift();this.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}if(l&&d&&s<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,r,s+1,i*2,a)},i);return}a(l,d)},u=this.backend[r].bind(this.backend);if(u.length===2){try{const l=u(e,t);l&&typeof l.then=="function"?l.then(d=>o(null,d)).catch(o):o(null,l)}catch(l){o(l)}return}return u(e,t,o)}prepareLoading(e,t,r={},s){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),s&&s();p(e)&&(e=this.languageUtils.toResolveHierarchy(e)),p(t)&&(t=[t]);const i=this.queueLoad(e,t,r,s);if(!i.toLoad.length)return i.pending.length||s(),null;i.toLoad.forEach(a=>{this.loadOne(a)})}load(e,t,r){this.prepareLoading(e,t,{},r)}reload(e,t,r){this.prepareLoading(e,t,{reload:!0},r)}loadOne(e,t=""){const r=e.split("|"),s=r[0],i=r[1];this.read(s,i,"read",void 0,void 0,(a,o)=>{a&&this.logger.warn(`${t}loading namespace ${i} for language ${s} failed`,a),!a&&o&&this.logger.log(`${t}loaded namespace ${i} for language ${s}`,o),this.loaded(e,a,o)})}saveMissing(e,t,r,s,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${r}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend?.create){const u={...a,isUpdate:i},l=this.backend.create.bind(this.backend);if(l.length<6)try{let d;l.length===5?d=l(e,t,r,s,u):d=l(e,t,r,s),d&&typeof d.then=="function"?d.then(c=>o(null,c)).catch(o):o(null,d)}catch(d){o(d)}else l(e,t,r,s,o,u)}!e||!e[0]||this.store.addResource(e[0],t,r,s)}}}const Ee=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:n=>{let e={};if(typeof n[1]=="object"&&(e=n[1]),p(n[1])&&(e.defaultValue=n[1]),p(n[2])&&(e.tDescription=n[2]),typeof n[2]=="object"||typeof n[3]=="object"){const t=n[3]||n[2];Object.keys(t).forEach(r=>{e[r]=t[r]})}return e},interpolation:{escapeValue:!0,format:n=>n,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Fe=n=>(p(n.ns)&&(n.ns=[n.ns]),p(n.fallbackLng)&&(n.fallbackLng=[n.fallbackLng]),p(n.fallbackNS)&&(n.fallbackNS=[n.fallbackNS]),n.supportedLngs?.indexOf?.("cimode")<0&&(n.supportedLngs=n.supportedLngs.concat(["cimode"])),typeof n.initImmediate=="boolean"&&(n.initAsync=n.initImmediate),n),Y=()=>{},wt=n=>{Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(t=>{typeof n[t]=="function"&&(n[t]=n[t].bind(n))})};class W extends ee{constructor(e={},t){if(super(),this.options=Fe(e),this.services={},this.logger=E,this.modules={external:[]},wt(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e=="function"&&(t=e,e={}),e.defaultNS==null&&e.ns&&(p(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const r=Ee();this.options={...r,...this.options,...Fe(e)},this.options.interpolation={...r.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);const s=l=>l?typeof l=="function"?new l:l:null;if(!this.options.isClone){this.modules.logger?E.init(s(this.modules.logger),this.options):E.init(null,this.options);let l;this.modules.formatter?l=this.modules.formatter:l=kt;const d=new je(this.options);this.store=new Le(this.options.resources,this.options);const c=this.services;c.logger=E,c.resourceStore=this.store,c.languageUtils=d,c.pluralResolver=new mt(d,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),l&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(c.formatter=s(l),c.formatter.init&&c.formatter.init(c,this.options),this.options.interpolation.format=c.formatter.format.bind(c.formatter)),c.interpolator=new xt(this.options),c.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},c.backendConnector=new Nt(s(this.modules.backend),c.resourceStore,c,this.options),c.backendConnector.on("*",(h,...g)=>{this.emit(h,...g)}),this.modules.languageDetector&&(c.languageDetector=s(this.modules.languageDetector),c.languageDetector.init&&c.languageDetector.init(c,this.options.detection,this.options)),this.modules.i18nFormat&&(c.i18nFormat=s(this.modules.i18nFormat),c.i18nFormat.init&&c.i18nFormat.init(this)),this.translator=new q(this.services,this.options),this.translator.on("*",(h,...g)=>{this.emit(h,...g)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,t||(t=Y),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length>0&&l[0]!=="dev"&&(this.options.lng=l[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(l=>{this[l]=(...d)=>this.store[l](...d)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(l=>{this[l]=(...d)=>(this.store[l](...d),this)});const o=B(),u=()=>{const l=(d,c)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),o.resolve(c),t(d,c)};if(this.languages&&!this.isInitialized)return l(null,this.t.bind(this));this.changeLanguage(this.options.lng,l)};return this.options.resources||!this.options.initAsync?u():setTimeout(u,0),o}loadResources(e,t=Y){let r=t;const s=p(e)?e:this.language;if(typeof e=="function"&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if(s?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const i=[],a=o=>{if(!o||o==="cimode")return;this.services.languageUtils.toResolveHierarchy(o).forEach(l=>{l!=="cimode"&&i.indexOf(l)<0&&i.push(l)})};s?a(s):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(u=>a(u)),this.options.preload?.forEach?.(o=>a(o)),this.services.backendConnector.load(i,this.options.ns,o=>{!o&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(o)})}else r(null)}reloadResources(e,t,r){const s=B();return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),r||(r=Y),this.services.backendConnector.reload(e,t,i=>{s.resolve(),r(i)}),s}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Ue.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1)){for(let t=0;t<this.languages.length;t++){const r=this.languages[t];if(!(["cimode","dev"].indexOf(r)>-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;const r=B();this.emit("languageChanging",e);const s=o=>{this.language=o,this.languages=this.services.languageUtils.toResolveHierarchy(o),this.resolvedLanguage=void 0,this.setResolvedLanguage(o)},i=(o,u)=>{u?this.isLanguageChangingTo===e&&(s(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,r.resolve((...l)=>this.t(...l)),t&&t(o,(...l)=>this.t(...l))},a=o=>{!e&&!o&&this.services.languageDetector&&(o=[]);const u=p(o)?o:o&&o[0],l=this.store.hasLanguageSomeTranslations(u)?u:this.services.languageUtils.getBestMatchFromCodes(p(o)?[o]:o);l&&(this.language||s(l),this.translator.language||this.translator.changeLanguage(l),this.services.languageDetector?.cacheUserLanguage?.(l)),this.loadResources(l,d=>{i(d,l)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),r}getFixedT(e,t,r){const s=(i,a,...o)=>{let u;typeof a!="object"?u=this.options.overloadTranslationOptionHandler([i,a].concat(o)):u={...a},u.lng=u.lng||s.lng,u.lngs=u.lngs||s.lngs,u.ns=u.ns||s.ns,u.keyPrefix!==""&&(u.keyPrefix=u.keyPrefix||r||s.keyPrefix);const l=this.options.keySeparator||".";let d;return u.keyPrefix&&Array.isArray(i)?d=i.map(c=>(typeof c=="function"&&(c=le(c,{...this.options,...a})),`${u.keyPrefix}${l}${c}`)):(typeof i=="function"&&(i=le(i,{...this.options,...a})),d=u.keyPrefix?`${u.keyPrefix}${l}${i}`:i),this.t(d,u)};return p(e)?s.lng=e:s.lngs=e,s.ns=t,s.keyPrefix=r,s}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=t.lng||this.resolvedLanguage||this.languages[0],s=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const a=(o,u)=>{const l=this.services.backendConnector.state[`${o}|${u}`];return l===-1||l===0||l===2};if(t.precheck){const o=t.precheck(this,a);if(o!==void 0)return o}return!!(this.hasResourceBundle(r,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,e)&&(!s||a(i,e)))}loadNamespaces(e,t){const r=B();return this.options.ns?(p(e)&&(e=[e]),e.forEach(s=>{this.options.ns.indexOf(s)<0&&this.options.ns.push(s)}),this.loadResources(s=>{r.resolve(),t&&t(s)}),r):(t&&t(),Promise.resolve())}loadLanguages(e,t){const r=B();p(e)&&(e=[e]);const s=this.options.preload||[],i=e.filter(a=>s.indexOf(a)<0&&this.services.languageUtils.isSupportedCode(a));return i.length?(this.options.preload=s.concat(i),this.loadResources(a=>{r.resolve(),t&&t(a)}),r):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const s=new Intl.Locale(e);if(s&&s.getTextInfo){const i=s.getTextInfo();if(i&&i.direction)return i.direction}}catch{}const t=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services?.languageUtils||new je(Ee());return e.toLowerCase().indexOf("-latn")>1?"ltr":t.indexOf(r.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){return new W(e,t)}cloneInstance(e={},t=Y){const r=e.forkResourceStore;r&&delete e.forkResourceStore;const s={...this.options,...e,isClone:!0},i=new W(s);if((e.debug!==void 0||e.prefix!==void 0)&&(i.logger=i.logger.clone(e)),["store","services","language"].forEach(o=>{i[o]=this[o]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},r){const o=Object.keys(this.store.data).reduce((u,l)=>(u[l]={...this.store.data[l]},u[l]=Object.keys(u[l]).reduce((d,c)=>(d[c]={...u[l][c]},d),u[l]),u),{});i.store=new Le(o,s),i.services.resourceStore=i.store}return i.translator=new q(i.services,s),i.translator.on("*",(o,...u)=>{i.emit(o,...u)}),i.init(s,t),i.translator.options=s,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const O=W.createInstance();O.createInstance=W.createInstance;O.createInstance;O.dir;O.init;O.loadResources;O.reloadResources;O.use;O.changeLanguage;O.getFixedT;O.t;O.exists;O.setDefaultNamespace;O.hasLoadedNamespace;O.loadNamespaces;O.loadLanguages;const Ot=(n,e,t,r)=>{const s=[t,{code:e,...r||{}}];if(n?.services?.logger?.forward)return n.services.logger.forward(s,"warn","react-i18next::",!0);K(s[0])&&(s[0]=`react-i18next:: ${s[0]}`),n?.services?.logger?.warn?n.services.logger.warn(...s):console?.warn&&console.warn(...s)},Ie={},ue=(n,e,t,r)=>{K(t)&&Ie[t]||(K(t)&&(Ie[t]=new Date),Ot(n,e,t,r))},Be=(n,e)=>()=>{if(n.isInitialized)e();else{const t=()=>{setTimeout(()=>{n.off("initialized",t)},0),e()};n.on("initialized",t)}},de=(n,e,t)=>{n.loadNamespaces(e,Be(n,t))},De=(n,e,t,r)=>{if(K(t)&&(t=[t]),n.options.preload&&n.options.preload.indexOf(e)>-1)return de(n,t,r);t.forEach(s=>{n.options.ns.indexOf(s)<0&&n.options.ns.push(s)}),n.loadLanguages(e,Be(n,r))},Ct=(n,e,t={})=>!e.languages||!e.languages.length?(ue(e,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:e.languages}),!0):e.hasLoadedNamespace(n,{lng:t.lng,precheck:(r,s)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!s(r.isLanguageChangingTo,n))return!1}}),K=n=>typeof n=="string",Lt=n=>typeof n=="object"&&n!==null,vt=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,jt={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},Rt=n=>jt[n],Tt=n=>n.replace(vt,Rt);let ce={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:Tt};const $t=(n={})=>{ce={...ce,...n}},Pt=()=>ce;let Me;const Et=n=>{Me=n},Ft=()=>Me,_t={type:"3rdParty",init(n){$t(n.options.react),Et(n)}},It=P.createContext();class Dt{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const Kt=(n,e)=>{const t=P.useRef();return P.useEffect(()=>{t.current=n},[n,e]),t.current},He=(n,e,t,r)=>n.getFixedT(e,t,r),At=(n,e,t,r)=>P.useCallback(He(n,e,t,r),[n,e,t,r]),J=(n,e={})=>{const{i18n:t}=e,{i18n:r,defaultNS:s}=P.useContext(It)||{},i=t||r||Ft();if(i&&!i.reportNamespaces&&(i.reportNamespaces=new Dt),!i){ue(i,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const x=(N,w)=>K(w)?w:Lt(w)&&K(w.defaultValue)?w.defaultValue:Array.isArray(N)?N[N.length-1]:N,S=[x,{},!1];return S.t=x,S.i18n={},S.ready=!1,S}i.options.react?.wait&&ue(i,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const a={...Pt(),...i.options.react,...e},{useSuspense:o,keyPrefix:u}=a;let l=n||s||i.options?.defaultNS;l=K(l)?[l]:l||["translation"],i.reportNamespaces.addUsedNamespaces?.(l);const d=(i.isInitialized||i.initializedStoreOnce)&&l.every(x=>Ct(x,i,a)),c=At(i,e.lng||null,a.nsMode==="fallback"?l:l[0],u),m=()=>c,h=()=>He(i,e.lng||null,a.nsMode==="fallback"?l:l[0],u),[g,y]=P.useState(m);let k=l.join();e.lng&&(k=`${e.lng}${k}`);const C=Kt(k),b=P.useRef(!0);P.useEffect(()=>{const{bindI18n:x,bindI18nStore:S}=a;b.current=!0,!d&&!o&&(e.lng?De(i,e.lng,l,()=>{b.current&&y(h)}):de(i,l,()=>{b.current&&y(h)})),d&&C&&C!==k&&b.current&&y(h);const N=()=>{b.current&&y(h)};return x&&i?.on(x,N),S&&i?.store.on(S,N),()=>{b.current=!1,i&&x&&x?.split(" ").forEach(w=>i.off(w,N)),S&&i&&S.split(" ").forEach(w=>i.store.off(w,N))}},[i,k]),P.useEffect(()=>{b.current&&d&&y(m)},[i,u,d]);const L=[g,i,d];if(L.t=g,L.i18n=i,L.ready=d,d||!d&&!o)return L;throw new Promise(x=>{e.lng?De(i,e.lng,l,()=>x()):de(i,l,()=>x())})},Ut={Task:qe,Bash:H,BashOutput:Ze,KillBash:ae,Glob:be,Grep:te,LS:Se,exit_plan_mode:X,Read:ke,Edit:ye,MultiEdit:Qe,Write:Ye,NotebookRead:Ge,NotebookEdit:Je,WebFetch:se,TodoWrite:xe,WebSearch:se,Skill:We,lsToolCall:Se,readToolCall:ke,editToolCall:ye,deleteToolCall:ae,globToolCall:be,grepToolCall:te,shellToolCall:H,updateTodosToolCall:xe,listMcpResourcesToolCall:ne,webFetchToolCall:se,semSearchToolCall:te,mcpToolCall:ne},Vt={Task:"text-purple-600 dark:text-purple-400 bg-purple-100 dark:bg-purple-900/30",Bash:"text-gray-800 dark:text-gray-300 bg-gray-100 dark:bg-gray-700",BashOutput:"text-blue-700 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30",KillBash:"text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/30",Glob:"text-blue-600 dark:text-blue-400 bg-blue-100 dark:bg-blue-900/30",Grep:"text-green-600 dark:text-green-400 bg-green-100 dark:bg-green-900/30",LS:"text-yellow-600 dark:text-yellow-400 bg-yellow-100 dark:bg-yellow-900/30",exit_plan_mode:"text-emerald-600 dark:text-emerald-400 bg-emerald-100 dark:bg-emerald-900/30",Read:"text-indigo-600 dark:text-indigo-400 bg-indigo-100 dark:bg-indigo-900/30",Edit:"text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/30",MultiEdit:"text-red-600 dark:text-red-400 bg-red-100 dark:bg-red-900/30",Write:"text-cyan-600 dark:text-cyan-400 bg-cyan-100 dark:bg-cyan-900/30",NotebookRead:"text-pink-600 dark:text-pink-400 bg-pink-100 dark:bg-pink-900/30",NotebookEdit:"text-rose-600 dark:text-rose-400 bg-rose-100 dark:bg-rose-900/30",WebFetch:"text-teal-600 dark:text-teal-400 bg-teal-100 dark:bg-teal-900/30",TodoWrite:"text-violet-600 dark:text-violet-400 bg-violet-100 dark:bg-violet-900/30",WebSearch:"text-sky-600 dark:text-sky-400 bg-sky-100 dark:bg-sky-900/30",Skill:"text-fuchsia-600 dark:text-fuchsia-400 bg-fuchsia-100 dark:bg-fuchsia-900/30",lsToolCall:"text-yellow-600 dark:text-yellow-400 bg-yellow-100 dark:bg-yellow-900/30",readToolCall:"text-indigo-600 dark:text-indigo-400 bg-indigo-100 dark:bg-indigo-900/30",editToolCall:"text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/30",deleteToolCall:"text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/30",globToolCall:"text-blue-600 dark:text-blue-400 bg-blue-100 dark:bg-blue-900/30",grepToolCall:"text-green-600 dark:text-green-400 bg-green-100 dark:bg-green-900/30",shellToolCall:"text-gray-800 dark:text-gray-300 bg-gray-100 dark:bg-gray-700",updateTodosToolCall:"text-violet-600 dark:text-violet-400 bg-violet-100 dark:bg-violet-900/30",listMcpResourcesToolCall:"text-blue-600 dark:text-blue-400 bg-blue-100 dark:bg-blue-900/30",webFetchToolCall:"text-teal-600 dark:text-teal-400 bg-teal-100 dark:bg-teal-900/30",semSearchToolCall:"text-amber-600 dark:text-amber-400 bg-amber-100 dark:bg-amber-900/30",mcpToolCall:"text-purple-600 dark:text-purple-400 bg-purple-100 dark:bg-purple-900/30"},fe=({execution:n,children:e,subtitle:t,showResult:r=!0,isMcpTool:s=!1,hideToolName:i=!0,customIcon:a,overrideToolName:o,defaultExpanded:u=!1})=>{const{t:l}=J(),[d,c]=P.useState(u),m=s?ne:Ut[n.toolName]||H,h=s?"text-blue-600 dark:text-blue-400 bg-blue-100 dark:bg-blue-900/30":Vt[n.toolName]||"text-gray-600 dark:text-gray-400 bg-gray-100 dark:bg-gray-700";return f.jsx(f.Fragment,{children:f.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg bg-gray-50 dark:bg-gray-800 max-w-full",children:[f.jsxs("div",{className:`flex items-center justify-between cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors ${i?"px-2 py-1":"px-3 py-1.5"}`,onClick:()=>c(!d),children:[f.jsxs("div",{className:"flex items-center space-x-2 flex-1 min-w-0",children:[f.jsx("div",{className:`${i?"p-1.5":"p-2"} rounded-full ${n.isInterrupted?"text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/30":h}`,children:n.isExecuting?f.jsx(Xe,{className:"w-4 h-4 animate-spin"}):n.isInterrupted?f.jsx(z,{className:"w-4 h-4"}):a||f.jsx(m,{className:"w-4 h-4"})}),f.jsxs("div",{className:"min-w-0 flex-1",children:[!i&&f.jsx("h4",{className:"text-sm font-semibold text-gray-800 dark:text-gray-200",children:o||n.toolName}),t&&f.jsx("p",{className:`text-xs truncate ${n.isInterrupted?"text-orange-600 dark:text-orange-400":"text-gray-500 dark:text-gray-400"}`,children:n.isInterrupted?l("baseToolComponent.interrupted"):t})]})]}),f.jsx("div",{className:"flex items-center shrink-0",children:d?f.jsx(et,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"}):f.jsx(tt,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"})})]}),d&&f.jsx("div",{className:"px-4 pb-4 border-t border-gray-200 dark:border-gray-700",children:f.jsxs("div",{className:"pt-3",children:[e,r&&n.toolResult&&!n.isError&&f.jsx(Bt,{result:n.toolResult})]})})]})})},Wt=({label:n,value:e,className:t="",isCode:r=!1})=>{if(e==null||e==="")return null;const s=typeof e=="object"?JSON.stringify(e,null,2):String(e);return f.jsxs("div",{className:`mb-2 ${t}`,children:[f.jsxs("span",{className:"text-xs font-medium text-gray-600 dark:text-gray-400",children:[n,":"]}),f.jsx("div",{className:`mt-1 ${r?"font-mono bg-gray-100 dark:bg-gray-700 p-2 rounded text-sm text-gray-800 dark:text-gray-200":"text-sm text-gray-800 dark:text-gray-200"}`,children:r?f.jsx("pre",{className:"whitespace-pre-wrap break-words",children:s}):f.jsx("span",{className:"break-words",children:s})})]})},Bt=({result:n,isError:e=!1,className:t=""})=>{const{t:r}=J("components");return n?f.jsxs("div",{className:`mt-3 ${t}`,children:[f.jsx("p",{className:"text-xs font-medium text-gray-600 dark:text-gray-400 mb-2",children:r("baseToolComponent.executionResult")}),f.jsx("div",{className:`p-3 rounded-md border text-sm font-mono whitespace-pre-wrap break-words ${e?"bg-red-50 dark:bg-red-900/30 border-red-200 dark:border-red-800 text-red-700 dark:text-red-300":"bg-green-50 dark:bg-green-900/30 border-green-200 dark:border-green-800 text-green-700 dark:text-green-300"}`,children:n})]}):null},Jt=({execution:n})=>{const{t:e}=J("components"),t=n.toolInput;console.log("🐚 [BashOutputTool] Rendering with execution:",{isExecuting:n.isExecuting,hasToolUseResult:!!n.toolUseResult,toolUseResultType:typeof n.toolUseResult,toolUseResult:n.toolUseResult,input:t});const s=(()=>{if(!n.toolUseResult)return console.log("🐚 [BashOutputTool] No toolUseResult, returning null"),null;if(typeof n.toolUseResult=="object")return n.toolUseResult;if(typeof n.toolUseResult=="string")try{return JSON.parse(n.toolUseResult)}catch{const o=n.toolUseResult.trim(),u=o.includes("running")?"running":o.includes("completed")?"completed":o.includes("killed")?"killed":o.includes("failed")?"failed":"running";return{shellId:t.bash_id,command:"",status:u,exitCode:null,stdout:"",stderr:"",stdoutLines:0,stderrLines:0,timestamp:new Date().toISOString()}}return null})(),i=()=>{const o=s?.shellId||t.bash_id;if(!o)return;let u=`${e("bashOutputTool.shellPrefix")} ${o}`;return s?.status&&(u+=` • ${s.status}`),u},a=o=>{switch(o){case"running":return{icon:f.jsx(H,{className:"w-4 h-4"}),className:"bg-blue-100 text-blue-800 border-blue-200",text:e("bashOutputTool.status.running")};case"completed":return{icon:f.jsx(X,{className:"w-4 h-4"}),className:"bg-green-100 text-green-800 border-green-200",text:e("bashOutputTool.status.completed")};case"killed":return{icon:f.jsx(st,{className:"w-4 h-4"}),className:"bg-red-100 text-red-800 border-red-200",text:e("bashOutputTool.status.killed")};case"failed":return{icon:f.jsx(z,{className:"w-4 h-4"}),className:"bg-orange-100 text-orange-800 border-orange-200",text:e("bashOutputTool.status.failed")};default:return{icon:f.jsx(Ke,{className:"w-4 h-4"}),className:"bg-gray-100 text-gray-800 border-gray-200",text:o}}};return f.jsx(fe,{execution:n,subtitle:i(),showResult:!1,hideToolName:!1,children:f.jsxs("div",{className:"space-y-4",children:[s&&f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"bg-gray-50 rounded-lg p-3 space-y-3",children:[f.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full border text-sm font-medium ${a(s.status||"unknown").className}`,children:[a(s.status||"unknown").icon,a(s.status||"unknown").text]}),s.command&&f.jsxs("div",{className:"bg-white border rounded px-3 py-2 text-sm font-mono text-gray-800",children:[f.jsx("span",{className:"text-gray-500 mr-2",children:">"}),f.jsx("span",{className:"break-all",children:s.command})]}),(s.filterPattern||t.filter)&&f.jsxs("div",{className:"bg-white border rounded px-3 py-2 text-sm font-mono text-gray-800",children:[f.jsx("span",{className:"text-gray-500 mr-2",children:"filter:"}),f.jsx("span",{className:"break-all",children:s.filterPattern||t.filter})]}),f.jsxs("div",{className:"flex gap-4 text-xs text-gray-500 pt-2 border-t border-gray-200",children:[s.exitCode!==void 0&&s.exitCode!==null&&f.jsxs("span",{children:[e("bashOutputTool.exitCode"),": ",s.exitCode]}),s.timestamp&&f.jsx("span",{children:new Date(s.timestamp).toLocaleTimeString()})]})]}),s.stdout&&f.jsxs("div",{children:[f.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-gray-700 mb-2",children:[f.jsx(H,{className:"w-4 h-4"}),e("bashOutputTool.stdout")]}),f.jsx("pre",{className:"bg-gray-900 text-green-400 rounded-lg px-3 py-2 text-sm font-mono overflow-x-auto whitespace-pre-wrap border",children:s.stdout.trim()})]}),s.stderr&&f.jsxs("div",{children:[f.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-red-700 mb-2",children:[f.jsx(z,{className:"w-4 h-4"}),e("bashOutputTool.stderr")]}),f.jsx("pre",{className:"bg-red-50 text-red-800 border border-red-200 rounded-lg px-3 py-2 text-sm font-mono overflow-x-auto whitespace-pre-wrap",children:s.stderr.trim()})]})]}),!s&&f.jsxs("div",{className:"text-sm text-gray-600",children:[e("bashOutputTool.fetchingOutput",{shellId:t.bash_id}),t.filter&&f.jsxs("div",{className:"mt-1 text-xs text-gray-500",children:[e("bashOutputTool.filterCondition"),": ",f.jsx("code",{className:"bg-gray-100 px-1 rounded",children:t.filter})]})]})]})})},Gt=({execution:n})=>{const{t:e}=J("components"),t=n.toolInput,s=(()=>{if(!n.toolResult)return null;try{return JSON.parse(n.toolResult)}catch{return{message:n.toolResult}}})(),i=()=>{if(!t.shell_id)return;const o=s?.message?.match(/\(([^)]+)\)/)?.[1]||"";return o?e("killBashTool.subtitleWithProcess",{shellId:t.shell_id,processName:o}):e("killBashTool.subtitle",{shellId:t.shell_id})},a=()=>n.isError?!1:!!(s?.success===!0||s?.message?.includes("killed")||s?.message?.includes("Successfully"));return f.jsx(fe,{execution:n,subtitle:i(),showResult:!1,hideToolName:!1,children:f.jsxs("div",{className:"space-y-3",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("div",{className:`p-2 rounded-full ${n.isExecuting?"bg-yellow-100":a()?"bg-green-100":n.isError?"bg-red-100":"bg-gray-100"}`,children:n.isExecuting?f.jsx(rt,{className:"w-5 h-5 text-yellow-600 animate-pulse"}):a()?f.jsx(X,{className:"w-5 h-5 text-green-600"}):n.isError?f.jsx(z,{className:"w-5 h-5 text-red-600"}):f.jsx(ae,{className:"w-5 h-5 text-gray-600"})}),f.jsxs("div",{children:[f.jsx("div",{className:`font-medium ${n.isExecuting?"text-yellow-800":a()?"text-green-800":n.isError?"text-red-800":"text-gray-800"}`,children:n.isExecuting?e("killBashTool.status.terminating"):a()?e("killBashTool.status.success"):n.isError?e("killBashTool.status.failed"):e("killBashTool.status.ready")}),f.jsxs("div",{className:"text-sm text-gray-600 mt-1",children:[e("killBashTool.shellId"),": ",f.jsx("code",{className:"bg-gray-100 px-2 py-0.5 rounded text-xs",children:t.shell_id})]})]})]}),s&&s.message&&f.jsx("div",{className:`p-3 rounded-md text-sm font-mono ${a()?"bg-green-100 text-green-800 border border-green-200":n.isError?"bg-red-100 text-red-800 border border-red-200":"bg-gray-100 text-gray-800 border border-gray-200"}`,children:s.message})]})})},Yt=({execution:n})=>{const{t:e}=J("components"),t=n.toolInput,r=Array.isArray(t?.todos)?t.todos:[],s=l=>{switch(l){case"completed":return f.jsx(X,{className:"w-3 h-3 text-green-600 dark:text-green-400"});case"in_progress":return f.jsx(Ke,{className:"w-3 h-3 text-blue-600 dark:text-blue-400"});default:return f.jsx(z,{className:"w-3 h-3 text-gray-400 dark:text-gray-500"})}},i=r.filter(l=>l.status==="completed").length,a=r.length,o=r.find(l=>l.status==="in_progress")?.content,u=()=>i===a&&a>0?e("todoWriteTool.allTasksCompleted"):o?e("todoWriteTool.currentTaskProgress",{completed:i+1,total:a,task:o}):e("todoWriteTool.pendingTasks",{completed:i,total:a});return f.jsx(fe,{execution:n,subtitle:u(),showResult:!1,hideToolName:!1,children:f.jsxs("div",{className:"space-y-1",children:[r.map((l,d)=>f.jsxs("div",{className:"flex items-center gap-2 text-sm py-1",children:[s(l.status),f.jsx("span",{className:`flex-1 ${l.status==="completed"?"text-gray-500 dark:text-gray-400 line-through":l.status==="in_progress"?"text-blue-700 dark:text-blue-300 font-medium":"text-gray-700 dark:text-gray-200"}`,children:l.content})]},d)),f.jsxs("div",{className:"flex gap-3 text-xs text-gray-500 dark:text-gray-400 pt-2 border-t border-gray-200 dark:border-gray-700 mt-2",children:[f.jsx("span",{children:e("todoWriteTool.completedCount",{count:r.filter(l=>l.status==="completed").length})}),f.jsx("span",{children:e("todoWriteTool.inProgressCount",{count:r.filter(l=>l.status==="in_progress").length})}),f.jsx("span",{children:e("todoWriteTool.pendingCount",{count:r.filter(l=>l.status==="pending").length})})]})]})})};export{fe as B,Gt as K,Wt as T,_t as a,Yt as b,Jt as c,O as i,J as u};
|