claude-code-workflow 7.2.19 → 7.2.20
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/.claude/commands/workflow/analyze-with-file.md +33 -8
- package/.codex/skills/analyze-with-file/SKILL.md +55 -8
- package/ccw/frontend/dist/assets/{AlertDialog-zDuLRyN3.js → AlertDialog-Cukb0xv2.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-zDuLRyN3.js.map → AlertDialog-Cukb0xv2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-DGCGwIZY.js → AnalysisPage-Ddmv0J4x.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-DGCGwIZY.js.map → AnalysisPage-Ddmv0J4x.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CgclCqmv.js → ApiSettingsPage-DMkrTZDX.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CgclCqmv.js.map → ApiSettingsPage-DMkrTZDX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-CbGH7qO4.js → CliModeToggle-DXenjpbe.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-CbGH7qO4.js.map → CliModeToggle-DXenjpbe.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-CJGlwyDw.js → CliSessionSharePage-B-ZIMqmX.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-CJGlwyDw.js.map → CliSessionSharePage-B-ZIMqmX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-D-MHYyDt.js → CliViewerPage-9YxGyLxh.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-D-MHYyDt.js.map → CliViewerPage-9YxGyLxh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-z6miX68P.js → CodexLensPage-B_uv5wdn.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-z6miX68P.js.map → CodexLensPage-B_uv5wdn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-D5zS2wef.js → Collapsible-C2qk3yV0.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-D5zS2wef.js.map → Collapsible-C2qk3yV0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChcTwmAn.js → CommandsManagerPage-DBtaWxLB.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChcTwmAn.js.map → CommandsManagerPage-DBtaWxLB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-Cv5LifSi.js → DeepWikiPage-d9K4_TgG.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-Cv5LifSi.js.map → DeepWikiPage-d9K4_TgG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-BcyNmqIa.js → EndpointsPage-DhW6hYrI.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-BcyNmqIa.js.map → EndpointsPage-DhW6hYrI.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-DfHtqeQM.js → ExplorerPage-DYYpCvtB.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-DfHtqeQM.js.map → ExplorerPage-DYYpCvtB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CbvZApeF.js → FixSessionPage-CSmiT5SE.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CbvZApeF.js.map → FixSessionPage-CSmiT5SE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-DLz85cw9.js → FloatingFileBrowser-DvMsXLdP.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-DLz85cw9.js.map → FloatingFileBrowser-DvMsXLdP.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-DrUTmgtV.js → FloatingPanel-sqezhSI8.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-DrUTmgtV.js.map → FloatingPanel-sqezhSI8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-C439yLvH.js → GraphExplorerPage-DS8ghMFM.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-C439yLvH.js.map → GraphExplorerPage-DS8ghMFM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-BClJJMEy.js → HistoryPage-B-x1RyHu.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-BClJJMEy.js.map → HistoryPage-B-x1RyHu.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-DI-2QDLJ.js → HookManagerPage-BbxpDb68.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-DI-2QDLJ.js.map → HookManagerPage-BbxpDb68.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-DKlz1ypL.js → InstallationsPage-3bShz_Ai.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-DKlz1ypL.js.map → InstallationsPage-3bShz_Ai.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage--6DduN4j.js → IssueHubPage-BQY_Hh3e.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage--6DduN4j.js.map → IssueHubPage-BQY_Hh3e.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-39j6xEeL.js → LiteTasksPage-vD_8fQcR.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-39j6xEeL.js.map → LiteTasksPage-vD_8fQcR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-D00C9RVN.js → McpManagerPage-CI5ZzB8A.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-D00C9RVN.js.map → McpManagerPage-CI5ZzB8A.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-BXWKdTyM.js → MemoryPage-CNuj2eNg.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-BXWKdTyM.js.map → MemoryPage-CNuj2eNg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-h5o3I7cF.js → NotFoundPage-BrnAXkb1.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-h5o3I7cF.js.map → NotFoundPage-BrnAXkb1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-jkyjmiI1.js → OrchestratorPage-CH81PGt4.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-jkyjmiI1.js.map → OrchestratorPage-CH81PGt4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-C2bE5eb2.js → ProjectOverviewPage-dwiEXl2O.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-C2bE5eb2.js.map → ProjectOverviewPage-dwiEXl2O.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-DzmPK4GZ.js → PromptHistoryPage-CabgLjJU.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-DzmPK4GZ.js.map → PromptHistoryPage-CabgLjJU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-CVMH1K6G.js → ReviewSessionPage-DAMrNFn8.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-CVMH1K6G.js.map → ReviewSessionPage-DAMrNFn8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-BDZco-r2.js → RulesManagerPage-4jzmxPn0.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-BDZco-r2.js.map → RulesManagerPage-4jzmxPn0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-D5cM-8Kk.js → SessionDetailPage-C5Btktmp.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-D5cM-8Kk.js.map → SessionDetailPage-C5Btktmp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-BFy74ye3.js → SessionsPage-CQIB4E8m.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-BFy74ye3.js.map → SessionsPage-CQIB4E8m.js.map} +1 -1
- package/ccw/frontend/dist/assets/SettingsPage-Yi9UAfm7.js +150 -0
- package/ccw/frontend/dist/assets/SettingsPage-Yi9UAfm7.js.map +1 -0
- package/ccw/frontend/dist/assets/{SkillsManagerPage-8Dsq4AUD.js → SkillsManagerPage-BqfvYSkT.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-8Dsq4AUD.js.map → SkillsManagerPage-BqfvYSkT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CG77iAYQ.js → SpecsSettingsPage-BdVPM5R6.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CG77iAYQ.js.map → SpecsSettingsPage-BdVPM5R6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BbuvVsX-.js → Switch-BG929kV0.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BbuvVsX-.js.map → Switch-BG929kV0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-SGJhC8-P.js → TabsNavigation-Bol1y09b.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-SGJhC8-P.js.map → TabsNavigation-Bol1y09b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-p51jeScU.js → TaskDrawer-Dwutrn8_.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-p51jeScU.js.map → TaskDrawer-Dwutrn8_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-CvZBThbr.js → TeamPage-CpCSwpxD.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-CvZBThbr.js.map → TeamPage-CpCSwpxD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-uhM7kGKI.js → TerminalDashboardPage-DODKjOeK.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-uhM7kGKI.js.map → TerminalDashboardPage-DODKjOeK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-D6ySrtHC.js → archive-CQw634kD.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-D6ySrtHC.js.map → archive-CQw634kD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-C1uI-5TY.js → archive-restore-B-_EG6wE.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-C1uI-5TY.js.map → archive-restore-B-_EG6wE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-qE5-FMG8.js → arrow-right-CcQtxBrU.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-qE5-FMG8.js.map → arrow-right-CcQtxBrU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-DL4iL38T.js → bookmark-plus-Cl-BbcpR.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-DL4iL38T.js.map → bookmark-plus-Cl-BbcpR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-CZzIeEkg.js → bot-CLSNSkW_.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-CZzIeEkg.js.map → bot-CLSNSkW_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-MEPRT2LN.js → braces-DWwkaDS6.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-MEPRT2LN.js.map → braces-DWwkaDS6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-GQcecSUg.js → circle-stop-DiS7e6ma.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-GQcecSUg.js.map → circle-stop-DiS7e6ma.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-CzxYMs1Y.js → cpu-CuvHUVXO.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-CzxYMs1Y.js.map → cpu-CuvHUVXO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DZMfiFKo.js → ellipsis-vertical-BoVlINSw.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DZMfiFKo.js.map → ellipsis-vertical-BoVlINSw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-BXfPoClW.js → eye-BEMOdcAN.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-BXfPoClW.js.map → eye-BEMOdcAN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-CyaKXmAk.js → eye-off-C5HS4Ytm.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-CyaKXmAk.js.map → eye-off-C5HS4Ytm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-B4LbFfTU.js → file-json-DQ9XLq0B.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-B4LbFfTU.js.map → file-json-DQ9XLq0B.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-CIWG7Xgj.js → file-text-TGs_qCbw.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-CIWG7Xgj.js.map → file-text-TGs_qCbw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-CNBjjvBX.js → filter-CIuCqnDB.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-CNBjjvBX.js.map → filter-CIuCqnDB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-DT_XOYw9.js → folder-BkivHBwn.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-DT_XOYw9.js.map → folder-BkivHBwn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-mvQWOG3S.js → gauge-CtM68fVY.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-mvQWOG3S.js.map → gauge-CtM68fVY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-B25jraBz.js → globe-DpnrINqP.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-B25jraBz.js.map → globe-DpnrINqP.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-CptugI_Z.js → grid-3x3-SjX0a5JH.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-CptugI_Z.js.map → grid-3x3-SjX0a5JH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-BUK9Wcoz.js → hard-drive-ByAmnoEg.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-BUK9Wcoz.js.map → hard-drive-ByAmnoEg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-dddMDYK7.js → hash-DbLc3VOZ.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-dddMDYK7.js.map → hash-DbLc3VOZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-BdDj8MtC.js → history-Botz5Z5d.js} +2 -2
- package/ccw/frontend/dist/assets/{history-BdDj8MtC.js.map → history-Botz5Z5d.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CcxBnbbQ.js → index-BGvyf4-9.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CcxBnbbQ.js.map → index-BGvyf4-9.js.map} +1 -1
- package/ccw/frontend/dist/assets/index-BoqylFO4.css +39 -0
- package/ccw/frontend/dist/assets/{index-DZGHdspr.js → index-DP_mTJI8.js} +3 -3
- package/ccw/frontend/dist/assets/{index-DZGHdspr.js.map → index-DP_mTJI8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B6UfIzhR.js → index-MkgdhX7a.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B6UfIzhR.js.map → index-MkgdhX7a.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-EFcT7h67.js → index-ni-tG9rm.js} +2 -2
- package/ccw/frontend/dist/assets/{index-EFcT7h67.js.map → index-ni-tG9rm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-BVlT1oI7.js → layout-grid-11E4bGJz.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-BVlT1oI7.js.map → layout-grid-11E4bGJz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-Mt3Tlwh4.js → lightbulb-8KrKY82b.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-Mt3Tlwh4.js.map → lightbulb-8KrKY82b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-DXqT64qo.js → link-2-BUn6RILb.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-DXqT64qo.js.map → link-2-BUn6RILb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-CBMtrpcI.js → link-CmP254Ai.js} +2 -2
- package/ccw/frontend/dist/assets/{link-CBMtrpcI.js.map → link-CmP254Ai.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-DDyEM4AO.js → list-BAwzl4a2.js} +2 -2
- package/ccw/frontend/dist/assets/{list-DDyEM4AO.js.map → list-BAwzl4a2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-B2FxBKfk.js → map-pin-gi342rqk.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-B2FxBKfk.js.map → map-pin-gi342rqk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-zJfTY9pq.js → messages-square-C1Lh8q8b.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-zJfTY9pq.js.map → messages-square-C1Lh8q8b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-DnhGZj79.js → minimize-2-OgWNLKdq.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-DnhGZj79.js.map → minimize-2-OgWNLKdq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-DYzAybhU.js → package-Djsvs5qp.js} +2 -2
- package/ccw/frontend/dist/assets/{package-DYzAybhU.js.map → package-Djsvs5qp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-B3kKHsu1.js → plug-DvSZP2cp.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-B3kKHsu1.js.map → plug-DvSZP2cp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-BPNNZgLy.js → power-BY7vTLmU.js} +2 -2
- package/ccw/frontend/dist/assets/{power-BPNNZgLy.js.map → power-BY7vTLmU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-Cwry93p-.js → save-DXfqv84T.js} +2 -2
- package/ccw/frontend/dist/assets/{save-Cwry93p-.js.map → save-DXfqv84T.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-DuWWy2J8.js → send-E2o2LZSX.js} +2 -2
- package/ccw/frontend/dist/assets/{send-DuWWy2J8.js.map → send-E2o2LZSX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2-C3U1eSK6.js → settings-2-ChD1LFHH.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2-C3U1eSK6.js.map → settings-2-ChD1LFHH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-CrG1ejFB.js → square-check-big-CBymuqmD.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-CrG1ejFB.js.map → square-check-big-CBymuqmD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-eLWlCgZ5.js → square-pen-BfaiJgOX.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-eLWlCgZ5.js.map → square-pen-BfaiJgOX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-sveo4KRn.js → star-DHMWqZ09.js} +2 -2
- package/ccw/frontend/dist/assets/{star-sveo4KRn.js.map → star-DHMWqZ09.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-CRdAX7Cu.js → style-wvcOEAiM.js} +2 -2
- package/ccw/frontend/dist/assets/{style-CRdAX7Cu.js.map → style-wvcOEAiM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-Oz1-z8Zu.js → target-B8AMmf_N.js} +2 -2
- package/ccw/frontend/dist/assets/{target-Oz1-z8Zu.js.map → target-B8AMmf_N.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-BozkZKD6.js → test-tube-BpDeTJi1.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-BozkZKD6.js.map → test-tube-BpDeTJi1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-CTlUsxyh.js → upload-pflkdIDG.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-CTlUsxyh.js.map → upload-pflkdIDG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D6WfgFYj.js → useApiSettings-BPx4DyKT.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D6WfgFYj.js.map → useApiSettings-BPx4DyKT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-CgGVNN5I.js → useCli-D1jfH3XA.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-CgGVNN5I.js.map → useCli-D1jfH3XA.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-o5CKv-10.js → useCommands-DhR71vpa.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-o5CKv-10.js.map → useCommands-DhR71vpa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-rKo_bCBK.js → useDebounce-a6Yyer3m.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-rKo_bCBK.js.map → useDebounce-a6Yyer3m.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-WeE4t9Hg.js → useFileExplorer-B8W2JTj2.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-WeE4t9Hg.js.map → useFileExplorer-B8W2JTj2.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-BS0tTC-_.js → useLocale-aMHdQIL_.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-BS0tTC-_.js.map → useLocale-aMHdQIL_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-BUgAhw6r.js → useSkills-BHpc2LtN.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-BUgAhw6r.js.map → useSkills-BHpc2LtN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-CLhmINg1.js → useSystemSettings-BFD0SvEF.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-CLhmINg1.js.map → useSystemSettings-BFD0SvEF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-BUHKJH1X.js → wand-sparkles-dYtI2IKM.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-BUHKJH1X.js.map → wand-sparkles-dYtI2IKM.js.map} +1 -1
- package/ccw/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/ccw/frontend/dist/assets/SettingsPage-Qj0fFDjX.js +0 -150
- package/ccw/frontend/dist/assets/SettingsPage-Qj0fFDjX.js.map +0 -1
- package/ccw/frontend/dist/assets/index-nU0QYi1y.css +0 -39
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{O as Ae,aF as ae,a9 as xe,aa as pe,ab as fe,aH as te,cY as Os,cZ as As,c_ as dt,c$ as mt,d0 as xt,d1 as pt,d2 as Je,d3 as Ze,d4 as Ks,d5 as ut,d6 as ht,u as G,r as h,j as e,c as $,al as He,d7 as de,d8 as me,x as ts,y as as,z as ns,A as rs,e as D,aq as Ve,ar as $e,as as _e,at as Re,au as he,I as X,aP as gt,B as Q,G as cs,T as Me,a7 as Qe,d9 as zs,C as Y,da as De,cy as Qs,ap as os,S as we,aw as Ie,ao as Is,bq as Ls,aU as Le,an as Ke,db as ft,dc as Hs,dd as jt,de as vt,df as Ye,dg as Xe,ck as Vs,b as Oe,am as ls,af as yt,dh as Nt,di as bt,dj as ks,dk as wt,dl as Ct,U as $s,bu as Ts,N as Te,cH as St,a0 as kt,Z as Tt,M as _s,K as Mt,k as Pt,m as Ft,bf as Ms,J as Et,dm as Rs,l as Dt,b5 as qt,R as es,dn as Ot,dp as At,dq as Kt,dr as zt,ds as Qt}from"./index-
|
|
1
|
+
import{O as Ae,aF as ae,a9 as xe,aa as pe,ab as fe,aH as te,cY as Os,cZ as As,c_ as dt,c$ as mt,d0 as xt,d1 as pt,d2 as Je,d3 as Ze,d4 as Ks,d5 as ut,d6 as ht,u as G,r as h,j as e,c as $,al as He,d7 as de,d8 as me,x as ts,y as as,z as ns,A as rs,e as D,aq as Ve,ar as $e,as as _e,at as Re,au as he,I as X,aP as gt,B as Q,G as cs,T as Me,a7 as Qe,d9 as zs,C as Y,da as De,cy as Qs,ap as os,S as we,aw as Ie,ao as Is,bq as Ls,aU as Le,an as Ke,db as ft,dc as Hs,dd as jt,de as vt,df as Ye,dg as Xe,ck as Vs,b as Oe,am as ls,af as yt,dh as Nt,di as bt,dj as ks,dk as wt,dl as Ct,U as $s,bu as Ts,N as Te,cH as St,a0 as kt,Z as Tt,M as _s,K as Mt,k as Pt,m as Ft,bf as Ms,J as Et,dm as Rs,l as Dt,b5 as qt,R as es,dn as Ot,dp as At,dq as Kt,dr as zt,ds as Qt}from"./index-DP_mTJI8.js";import{A as is,a as ds,b as ms,c as xs,d as ps,e as us,f as hs,g as gs,h as It}from"./AlertDialog-Cukb0xv2.js";import{G as je}from"./globe-DpnrINqP.js";import{E as fs}from"./eye-off-C5HS4Ytm.js";import{E as js}from"./eye-BEMOdcAN.js";import{L as Ps,C as Lt}from"./CliModeToggle-DXenjpbe.js";import{L as Ws}from"./link-CmP254Ai.js";import{P as ke,a as ss}from"./power-BY7vTLmU.js";import{F as Ht}from"./FloatingFileBrowser-DvMsXLdP.js";import{F as Ne}from"./folder-BkivHBwn.js";import{H as Vt}from"./hard-drive-ByAmnoEg.js";import{S as $t}from"./save-DXfqv84T.js";import{M as _t}from"./messages-square-C1Lh8q8b.js";import{F as Rt}from"./file-text-TGs_qCbw.js";import{F as Wt}from"./filter-CIuCqnDB.js";import{A as Ut}from"./arrow-right-CcQtxBrU.js";import{f as Bt}from"./formatDistanceToNow-DXTjigy3.js";import{T as Gt}from"./TabsNavigation-Bol1y09b.js";import{B as Jt}from"./bookmark-plus-Cl-BbcpR.js";import{S as Zt}from"./square-pen-BfaiJgOX.js";import"./cpu-CuvHUVXO.js";import"./FloatingPanel-sqezhSI8.js";import"./useFileExplorer-B8W2JTj2.js";/**
|
|
2
2
|
* @license lucide-react v0.460.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -42,4 +42,4 @@ import{O as Ae,aF as ae,a9 as xe,aa as pe,ab as fe,aH as te,cY as Os,cZ as As,c_
|
|
|
42
42
|
`)),[T,P]=h.useState({});h.useEffect(()=>{s&&(d(l||""),m(""),y(""),b(c||""),k((n||[]).join(", ")),M(Object.entries(w||{}).map(([x,E])=>`${x}=${E}`).join(`
|
|
43
43
|
`)),P({}))},[s,l,c,n,w]);const r=()=>{const x={};if(f.trim()||(x.name=u({id:"mcp.templates.saveDialog.validation.nameRequired"})),p.trim()||(x.command=u({id:"mcp.dialog.validation.commandRequired"})),Object.keys(x).length>0){P(x);return}const E=v.split(",").map(V=>V.trim()).filter(V=>V.length>0),O={};for(const V of j.split(`
|
|
44
44
|
`)){const _=V.trim();if(_&&_.includes("=")){const[W,...J]=_.split("=");W&&(O[W.trim()]=J.join("=").trim())}}t(f.trim(),S.trim(),g.trim(),{command:p.trim(),args:E,env:O})};return e.jsx(ts,{open:s,onOpenChange:a,children:e.jsxs(as,{className:"max-w-md max-h-[85vh] overflow-y-auto",children:[e.jsx(ns,{children:e.jsx(rs,{children:u({id:"mcp.templates.saveDialog.title"})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("label",{className:"text-sm font-medium text-foreground",children:[u({id:"mcp.templates.saveDialog.name"}),e.jsx("span",{className:"text-destructive ml-1",children:"*"})]}),e.jsx(X,{value:f,onChange:x=>{d(x.target.value),T.name&&P(E=>({...E,name:void 0}))},placeholder:u({id:"mcp.templates.saveDialog.namePlaceholder"}),error:!!T.name}),T.name&&e.jsx("p",{className:"text-sm text-destructive",children:T.name})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("label",{className:"text-sm font-medium text-foreground",children:[u({id:"mcp.dialog.form.command"}),e.jsx("span",{className:"text-destructive ml-1",children:"*"})]}),e.jsx(X,{value:p,onChange:x=>{b(x.target.value),T.command&&P(E=>({...E,command:void 0}))},placeholder:u({id:"mcp.dialog.form.commandPlaceholder"}),error:!!T.command}),T.command&&e.jsx("p",{className:"text-sm text-destructive",children:T.command})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:u({id:"mcp.dialog.form.args"})}),e.jsx(X,{value:v,onChange:x=>k(x.target.value),placeholder:u({id:"mcp.dialog.form.argsPlaceholder"})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:u({id:"mcp.dialog.form.argsHint"})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:u({id:"mcp.dialog.form.env"})}),e.jsx("textarea",{value:j,onChange:x=>M(x.target.value),placeholder:u({id:"mcp.dialog.form.envPlaceholder"}),className:"flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm font-mono ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:u({id:"mcp.templates.saveDialog.category"})}),e.jsxs(Ve,{value:S,onValueChange:m,children:[e.jsx($e,{className:"w-full",children:e.jsx(_e,{placeholder:u({id:"mcp.templates.saveDialog.categoryPlaceholder"})})}),e.jsxs(Re,{children:[e.jsx(he,{value:"stdio",children:"STDIO"}),e.jsx(he,{value:"sse",children:"SSE"}),e.jsx(he,{value:"language",children:"Language"}),e.jsx(he,{value:"official",children:"Official"}),e.jsx(he,{value:"custom",children:"Custom"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-foreground",children:u({id:"mcp.templates.saveDialog.description"})}),e.jsx("textarea",{value:g,onChange:x=>y(x.target.value),placeholder:u({id:"mcp.templates.saveDialog.descriptionPlaceholder"}),className:"flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"})]})]}),e.jsxs(cs,{children:[e.jsx(D,{variant:"outline",onClick:a,children:u({id:"mcp.templates.saveDialog.cancel"})}),e.jsx(D,{onClick:r,children:u({id:"mcp.templates.saveDialog.save"})})]})]})})}function Na({onInstallTemplate:s,onSaveAsTemplate:a}){const{formatMessage:t}=G(),[l,c]=h.useState(""),[n,w]=h.useState(""),[u,f]=h.useState("all"),[d,S]=h.useState(!1),[m,g]=h.useState(!1),[y,p]=h.useState(null),{data:b=[],isLoading:v}=fe({queryKey:ge.categories(),queryFn:Nt,staleTime:600*1e3}),k=la(),j=ia();h.useEffect(()=>{const O=setTimeout(()=>{w(l)},va);return()=>clearTimeout(O)},[l]);const{data:M=[],isLoading:T}=fe({queryKey:ge.list(u==="all"?void 0:u),queryFn:async()=>{if(n.trim())return bt(n.trim());if(u==="all"){const O=[];for(const V of b){const _=await ks(V);O.push(..._)}return O}else return ks(u)},staleTime:300*1e3,enabled:!v}),P=h.useCallback(O=>{s==null||s(O)},[s]),r=h.useCallback(O=>{p(O),g(!0)},[]),x=h.useCallback(async()=>{if(!y)return;(await k.deleteTemplate(y)).success&&(g(!1),p(null))},[y,k]),E=h.useCallback((O,V,_,W)=>{a==null||a(O,V,_,W),S(!1)},[a]);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[e.jsxs("div",{className:"relative flex-1 max-w-md",children:[e.jsx(Oe,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(X,{value:l,onChange:O=>c(O.target.value),placeholder:t({id:"mcp.templates.searchPlaceholder"}),className:"pl-9"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Wt,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Ve,{value:u,onValueChange:f,children:[e.jsx($e,{className:"w-[150px]",children:e.jsx(_e,{})}),e.jsxs(Re,{children:[e.jsx(he,{value:"all",children:t({id:"mcp.templates.filter.allCategories"})}),b.map(O=>e.jsx(he,{value:O,children:O},O))]})]})]})]}),e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>S(!0),children:[e.jsx(Qe,{className:"w-4 h-4 mr-1"}),t({id:"mcp.templates.actions.saveAsTemplate"})]})]}),T?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:t({id:"mcp.templates.loading"})})}):M.length===0?e.jsxs(Y,{className:"p-12 text-center",children:[e.jsx(ls,{className:"w-12 h-12 mx-auto text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:t({id:"mcp.templates.empty.title"})}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:t({id:"mcp.templates.empty.message"})}),e.jsxs(D,{onClick:()=>S(!0),children:[e.jsx(Qe,{className:"w-4 h-4 mr-1"}),t({id:"mcp.templates.empty.createFirst"})]})]}):e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:M.map(O=>e.jsx(ya,{template:O,onInstall:P,onDelete:r,isInstalling:j.isInstalling,isDeleting:k.isDeleting},O.name))}),e.jsx(Ys,{open:d,onClose:()=>S(!1),onSave:E}),e.jsx(is,{open:m,onOpenChange:g,children:e.jsxs(ds,{children:[e.jsxs(ms,{children:[e.jsx(xs,{children:t({id:"mcp.templates.deleteDialog.title"})}),e.jsx(ps,{children:t({id:"mcp.templates.deleteDialog.message"},{name:y})})]}),e.jsxs(us,{children:[e.jsx(hs,{children:t({id:"mcp.templates.deleteDialog.cancel"})}),e.jsx(gs,{onClick:x,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:k.isDeleting?t({id:"mcp.templates.deleteDialog.deleting"}):t({id:"mcp.templates.deleteDialog.delete"})})]})]})})]})}const ba={"search-code":Oe,chrome:je,"globe-2":$s,"code-2":we};function wa({open:s,onClose:a,mcpDefinition:t,onInstallComplete:l}){const{formatMessage:c}=G(),n=ae(),{success:w,error:u}=He(),f=xe(pe),[d,S]=h.useState({}),[m,g]=h.useState("global"),y=()=>{if(!t)return;const r={};for(const x of t.fields)x.default!==void 0?r[x.key]=x.default:x.type==="multi-select"?r[x.key]=[]:r[x.key]="";S(r)},p=r=>{r&&t?y():(S({}),a())},b=te({mutationFn:async()=>{if(!t)throw new Error("No MCP definition");const r=t.buildConfig(d);if(m==="global")return wt(t.id,r);if(!f)throw new Error("Project path is required to install to project scope");return Ct(t.id,r,f)},onSuccess:r=>{r.success?(n.invalidateQueries({queryKey:B.all}),w(c({id:"mcp.wizard.installSuccess"}),c({id:t.nameKey})),p(!1),l==null||l()):u(c({id:"mcp.wizard.installError"}),r.error||"Unknown error")},onError:r=>{u(c({id:"mcp.wizard.installError"}),r.message)}}),v=(r,x)=>{S(E=>({...E,[r]:x}))},k=(r,x)=>{const E=d[r]||[],O=E.includes(x)?E.filter(V=>V!==x):[...E,x];v(r,O)},j=()=>{if(!t)return!1;for(const r of t.fields)if(r.required){const x=d[r.key];if(r.type==="multi-select"){if(!x||x.length===0)return!1}else if(!x||x.trim()==="")return!1}return!0},M=()=>{if(!j()){u(c({id:"mcp.wizard.validation"}),c({id:"mcp.wizard.requiredFields"}));return}b.mutate()};if(!t)return null;const T=t.fields.length>0,P=ba[t.icon]||we;return e.jsx(ts,{open:s,onOpenChange:p,children:e.jsxs(as,{className:"max-w-lg max-h-[90vh] overflow-y-auto",children:[e.jsx(ns,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center",children:e.jsx(P,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{children:[e.jsxs(rs,{children:[c({id:"mcp.wizard.install"})," ",c({id:t.nameKey})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:c({id:t.descKey})})]})]})}),e.jsxs("div",{className:"space-y-4 py-4",children:[T&&e.jsx("div",{className:"space-y-3",children:t.fields.map(r=>e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs(Ts,{className:"flex items-center gap-1.5 text-sm font-medium",children:[c({id:r.labelKey}),r.required&&e.jsx("span",{className:"text-destructive",children:"*"})]}),r.descKey&&e.jsx("p",{className:"text-xs text-muted-foreground",children:c({id:r.descKey})}),(r.type==="text"||r.type==="password")&&e.jsx(X,{type:r.type,value:d[r.key]||"",onChange:x=>v(r.key,x.target.value),placeholder:r.placeholder,className:"font-mono text-sm"}),r.type==="multi-select"&&r.options&&e.jsx("div",{className:"space-y-2 p-2 bg-muted/30 border border-border rounded-lg max-h-48 overflow-y-auto",children:r.options.map(x=>{const E=(d[r.key]||[]).includes(x.value);return e.jsxs("div",{className:$("flex items-start gap-2 p-2 rounded transition-colors cursor-pointer",E?"bg-primary/10":"hover:bg-muted/50"),onClick:()=>k(r.key,x.value),children:[e.jsx("input",{type:"checkbox",checked:E,onChange:()=>{},className:"mt-0.5 w-4 h-4"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:x.label}),x.desc&&e.jsx("div",{className:"text-xs text-muted-foreground",children:x.desc})]})]},x.value)})})]},r.key))}),e.jsxs("div",{className:"space-y-2 pt-3 border-t border-border",children:[e.jsx(Ts,{className:"text-sm font-medium",children:c({id:"mcp.wizard.scope"})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(D,{variant:m==="global"?"default":"outline",size:"sm",onClick:()=>g("global"),className:"flex-1",children:c({id:"mcp.wizard.scope.global"})}),e.jsx(D,{variant:m==="project"?"default":"outline",size:"sm",onClick:()=>g("project"),className:"flex-1",children:c({id:"mcp.wizard.scope.project"})})]})]}),!T&&e.jsx("div",{className:"p-3 bg-success/10 border border-success/20 rounded-lg text-sm text-success",children:c({id:"mcp.noConfigNeeded"})})]}),e.jsxs(cs,{children:[e.jsx(D,{variant:"outline",onClick:()=>p(!1),disabled:b.isPending,children:c({id:"mcp.dialog.actions.cancel"})}),e.jsx(D,{onClick:M,disabled:b.isPending,children:b.isPending?e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"w-4 h-4 mr-1 animate-spin"}),c({id:"mcp.wizard.installing"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ke,{className:"w-4 h-4 mr-1"}),c({id:"mcp.wizard.install"})]})})]})]})})}var qs;const Ca=typeof navigator<"u"&&((qs=navigator.platform)==null?void 0:qs.toLowerCase().includes("win"));function Ge(s,a=[],t={}){const{env:l,type:c}=t,u=Ca&&["npx","npm","node","python","python3","pip","pip3","pnpm","yarn","bun"].includes(s.toLowerCase())?{command:"cmd",args:["/c",s,...a]}:{command:s,args:a};return c&&(u.type=c),l&&Object.keys(l).length>0&&(u.env=l),u}const Sa=[{id:"ace-tool",nameKey:"mcp.ace-tool.name",descKey:"mcp.ace-tool.desc",icon:"search-code",category:"search",fields:[{key:"baseUrl",labelKey:"mcp.ace-tool.field.baseUrl",type:"text",default:"https://acemcp.heroman.wtf/relay/",placeholder:"https://acemcp.heroman.wtf/relay/",required:!0,descKey:"mcp.ace-tool.field.baseUrl.desc"},{key:"token",labelKey:"mcp.ace-tool.field.token",type:"password",default:"",placeholder:"ace_xxxxxxxxxxxxxxxx",required:!0,descKey:"mcp.ace-tool.field.token.desc"}],buildConfig:s=>Ge("npx",["ace-tool","--base-url",s.baseUrl||"https://acemcp.heroman.wtf/relay/","--token",s.token])},{id:"chrome-devtools",nameKey:"mcp.chrome-devtools.name",descKey:"mcp.chrome-devtools.desc",icon:"chrome",category:"browser",fields:[],buildConfig:()=>Ge("npx",["chrome-devtools-mcp@latest"],{type:"stdio"})},{id:"exa",nameKey:"mcp.exa.name",descKey:"mcp.exa.desc",icon:"globe-2",category:"search",fields:[{key:"apiKey",labelKey:"mcp.exa.field.apiKey",type:"password",default:"",placeholder:"your-exa-api-key",required:!1,descKey:"mcp.exa.field.apiKey.desc"}],buildConfig:s=>{const a="https://mcp.exa.ai/mcp",t=s.apiKey?`${a}?exaApiKey=${s.apiKey}`:a;return Ge("npx",["-y","mcp-remote",t])}}],ka={"search-code":Oe,chrome:je,"globe-2":$s,"code-2":kt};function Ta({definition:s,isInstalled:a,onInstall:t}){const{formatMessage:l}=G(),c=ka[s.icon]||we,n=s.fields.length>0;return e.jsx(Y,{className:"p-4 hover:shadow-md transition-shadow",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:$("p-2.5 rounded-lg",a?"bg-primary/20":"bg-muted"),children:e.jsx(c,{className:$("w-5 h-5",a?"text-primary":"text-muted-foreground")})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground truncate",children:l({id:s.nameKey})}),a&&e.jsx(Q,{variant:"default",className:"text-xs",children:l({id:"mcp.recommended.actions.installed"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground line-clamp-2 mb-3",children:l({id:s.descKey})}),e.jsxs("div",{className:"flex items-center justify-between",children:[n?e.jsxs("span",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(ea,{className:"w-3 h-3"}),s.fields.length," ",l({id:"mcp.configRequired"})]}):e.jsxs("span",{className:"text-xs text-green-600 dark:text-green-400 flex items-center gap-1",children:[e.jsx(Tt,{className:"w-3 h-3"}),l({id:"mcp.noConfigNeeded"})]}),e.jsx(D,{variant:a?"outline":"default",size:"sm",onClick:()=>t(s),children:a?e.jsxs(e.Fragment,{children:[e.jsx(we,{className:"w-3.5 h-3.5 mr-1"}),l({id:"mcp.reconfigure"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ke,{className:"w-3.5 h-3.5 mr-1"}),l({id:"mcp.recommended.actions.install"})]})})]})]})]})})}function Ma({onInstallComplete:s}){const{formatMessage:a}=G(),[t,l]=h.useState(!1),[c,n]=h.useState(null),[w,u]=h.useState(new Set),f=async()=>{var g;try{const y=await St(),p=new Set,b=y.globalServers||{},v=y.userServers||{};for(const j of Object.keys(b))p.add(j);for(const j of Object.keys(v))p.add(j);const k=y.projects||{};for(const j of Object.values(k)){const M=j.mcpServers||{};for(const T of Object.keys(M))p.add(T)}if((g=y.codex)!=null&&g.servers)for(const j of Object.keys(y.codex.servers))p.add(j);u(p)}catch{}};h.useEffect(()=>{f()},[]);const d=g=>{n(g),l(!0)},S=()=>{l(!1),n(null)},m=()=>{f(),s==null||s()};return e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:a({id:"mcp.recommended.title"})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a({id:"mcp.recommended.description"})})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:Sa.map(g=>e.jsx(Ta,{definition:g,isInstalled:w.has(g.id),onInstall:d},g.id))})]}),e.jsx(wa,{open:t,onClose:S,mcpDefinition:c,onInstallComplete:m})]})}const Pa=[{name:"npm",installUrl:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm"},{name:"node",installUrl:"https://nodejs.org/"},{name:"python",installUrl:"https://www.python.org/downloads/"},{name:"npx",installUrl:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm"}];function Fa(s){return Pa.some(a=>a.name===s)}async function Ea(s){const a=await fetch("/api/mcp/detect-commands",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:s})});if(!a.ok)throw new Error("Failed to detect commands");return a.json()}async function Da(s){const a=await fetch("/api/mcp/apply-windows-fix",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectPath:s})});if(!a.ok)throw new Error("Failed to apply Windows fix");return a.json()}function qa({commands:s}){const{formatMessage:a}=G();return e.jsx("div",{className:"space-y-2 mt-3",children:s.map(t=>e.jsxs("div",{className:$("flex items-center gap-2 text-sm p-2 rounded-md",t.available?"bg-success/10":"bg-destructive/10"),children:[t.available?e.jsx(_s,{className:"w-4 h-4 text-success"}):e.jsx(Mt,{className:"w-4 h-4 text-destructive"}),e.jsx("code",{className:"font-mono flex-1",children:t.command}),!t.available&&t.installUrl&&e.jsxs("a",{href:t.installUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline flex items-center gap-1",children:[e.jsx(Ke,{className:"w-3 h-3"}),a({id:"mcp.windows.install"})]})]},t.command))})}function Oa({projectPath:s,onComplete:a}){const{formatMessage:t}=G(),l=ae(),[c,n]=h.useState(null),[w,u]=h.useState(!1),[f,d]=h.useState(!1),S=typeof window<"u"&&window.navigator.platform.toLowerCase().includes("win"),m=te({mutationFn:()=>Da(s),onSuccess:()=>{l.invalidateQueries({queryKey:["mcpServers"]}),a&&c&&a({...c,canAutoFix:!1})}});if(h.useEffect(()=>{if(!S||f)return;(async()=>{u(!0);try{const b=await Ea(s),v=b.filter(M=>!M.available).map(M=>M.command),k=v.length>0&&v.every(Fa),j={isWindows:!0,missingCommands:v,commands:b,canAutoFix:k};n(j),a&&a(j)}catch(b){console.error("Failed to check Windows compatibility:",b)}finally{u(!1)}})()},[S,f,s,a]),!S||f||w&&!c||c&&c.missingCommands.length===0)return null;const g=async()=>{m.mutate()},y=()=>{d(!0)};return e.jsx("div",{className:"border border-warning/50 bg-warning/5 rounded-lg p-4 mb-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ie,{className:"w-5 h-5 text-warning flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground",children:t({id:"mcp.windows.title"})}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t({id:"mcp.windows.description"})})]}),e.jsx(D,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:y,children:"×"})]}),c&&e.jsxs(e.Fragment,{children:[c.missingCommands.length>0&&e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(Q,{variant:"warning",className:"text-xs",children:t({id:"mcp.windows.missingCount"},{count:c.missingCommands.length})})}),e.jsx(qa,{commands:c.commands}),c.canAutoFix&&e.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t border-warning/20",children:[e.jsx(D,{variant:"outline",size:"sm",onClick:g,disabled:m.isPending,className:"text-xs",children:m.isPending?e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"w-3 h-3 mr-1 animate-spin"}),t({id:"mcp.windows.fixing"})]}):e.jsxs(e.Fragment,{children:[e.jsx(_s,{className:"w-3 h-3 mr-1"}),t({id:"mcp.windows.autoFix"})]})}),e.jsx("span",{className:"text-xs text-muted-foreground",children:t({id:"mcp.windows.autoFixHint"})})]})]}),w&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Te,{className:"w-4 h-4 animate-spin"}),t({id:"mcp.windows.checking"})]})]})]})})}function Aa({onSuccess:s,className:a}){const{formatMessage:t}=G(),l=xe(pe),{servers:c}=Us(),[n,w]=h.useState(new Set),[u,f]=h.useState([]),[d,S]=h.useState(new Set),[m,g]=h.useState(!1),[y,p]=h.useState(null),[b,v]=h.useState(!1),[k,j]=h.useState({type:null,copied:0,failed:0});h.useEffect(()=>{(async()=>{g(!0),p(null);try{const L=await Rs();f((L.servers??[]).map(A=>({name:A.name,displayText:de(A)?A.url:me(A)?A.command:"",enabled:A.enabled,selected:!1})))}catch(L){console.error("Failed to load Codex MCP servers:",L),p(t({id:"mcp.sync.codexLoadError"})),f([])}finally{g(!1)}})()},[t]);const M=N=>{w(L=>{const A=new Set(L);return A.has(N)?A.delete(N):A.add(N),A})},T=()=>{w(new Set(c.map(N=>N.name)))},P=()=>{w(new Set)},r=N=>{S(L=>{const A=new Set(L);return A.has(N)?A.delete(N):A.add(N),A}),f(L=>L.map(A=>A.name===N?{...A,selected:!A.selected}:A))},x=()=>{const N=u.map(L=>L.name);S(new Set(N)),f(L=>L.map(A=>({...A,selected:!0})))},E=()=>{S(new Set),f(N=>N.map(L=>({...L,selected:!1})))},O=async()=>{if(n.size!==0){v(!0),j({type:null,copied:0,failed:0});try{const N=await Je({source:"claude",target:"codex",serverNames:Array.from(n),projectPath:l??void 0});if(N.success){const L=N.failed.length,A=N.copied.length;j({type:L>0?"partial":"success",copied:A,failed:L}),s==null||s(A,"to-codex"),w(new Set),setTimeout(()=>{j({type:null,copied:0,failed:0})},3e3)}}catch(N){console.error("Failed to copy to Codex:",N),j({type:"partial",copied:0,failed:n.size})}finally{v(!1)}}},V=async()=>{if(!(d.size===0||!l)){v(!0),j({type:null,copied:0,failed:0});try{const N=await Je({source:"codex",target:"claude",serverNames:Array.from(d),projectPath:l});if(N.success){const L=N.failed.length,A=N.copied.length;j({type:L>0?"partial":"success",copied:A,failed:L}),s==null||s(A,"from-codex"),S(new Set),f(ce=>ce.map(oe=>({...oe,selected:!1}))),setTimeout(()=>{j({type:null,copied:0,failed:0})},3e3)}}catch(N){console.error("Failed to copy from Codex:",N),j({type:"partial",copied:0,failed:d.size})}finally{v(!1)}}},_=c.length,W=n.size,J=u.length,U=d.size;return e.jsxs("div",{className:$("space-y-4",a),children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"text-base font-semibold text-foreground",children:t({id:"mcp.sync.title"})}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:t({id:"mcp.sync.description"})})]}),k.type!==null&&e.jsxs("div",{className:$("flex items-center gap-2 p-3 rounded-lg border",k.type==="success"?"bg-success/10 border-success/30 text-success":"bg-warning/10 border-warning/30 text-warning"),children:[k.type==="success"?e.jsx(Pt,{className:"w-4 h-4 flex-shrink-0"}):e.jsx(Ft,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:"text-sm",children:k.type==="success"?t({id:"mcp.sync.copySuccess"},{count:k.copied}):t({id:"mcp.sync.copyPartial"},{copied:k.copied,failed:k.failed})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"bg-muted/50 px-4 py-3 border-b border-border",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:t({id:"mcp.sync.claudeColumn"})}),e.jsx(Q,{variant:"outline",className:"text-xs",children:t({id:"mcp.sync.selectedCount"},{count:W,total:_})})]})}),e.jsx("div",{className:"p-2 max-h-64 overflow-y-auto",children:_===0?e.jsx("div",{className:"py-8 text-center text-sm text-muted-foreground",children:t({id:"mcp.sync.noServers"})}):e.jsx("div",{className:"space-y-1",children:c.map(N=>e.jsxs("div",{className:$("flex items-start gap-2 p-2 rounded cursor-pointer transition-colors",n.has(N.name)?"bg-primary/10":"hover:bg-muted/50"),onClick:()=>M(N.name),children:[e.jsx(Ms,{id:`claude-${N.name}`,checked:n.has(N.name),onChange:()=>M(N.name),className:"w-4 h-4 mt-0.5"}),e.jsxs("label",{htmlFor:`claude-${N.name}`,className:"flex-1 min-w-0 cursor-pointer",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:N.name}),N.enabled&&e.jsx(Q,{variant:"success",className:"text-xs",children:t({id:"mcp.status.enabled"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground font-mono truncate",children:de(N)?N.url:me(N)?N.command:""})]})]},N.name))})}),_>0&&e.jsxs("div",{className:"px-2 py-2 bg-muted/30 border-t border-border flex gap-1",children:[e.jsx(D,{variant:"ghost",size:"sm",onClick:T,className:"flex-1 text-xs",children:t({id:"mcp.sync.selectAll"})}),e.jsx(D,{variant:"ghost",size:"sm",onClick:P,className:"flex-1 text-xs",disabled:W===0,children:t({id:"mcp.sync.clearAll"})})]})]}),e.jsxs("div",{className:"border border-border rounded-lg overflow-hidden",children:[e.jsx("div",{className:"bg-muted/50 px-4 py-3 border-b border-border",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h4",{className:"text-sm font-medium text-foreground",children:t({id:"mcp.sync.codexColumn"})}),e.jsx(Q,{variant:"outline",className:"text-xs",children:t({id:"mcp.sync.selectedCount"},{count:U,total:J})})]})}),e.jsx("div",{className:"p-2 max-h-64 overflow-y-auto",children:m?e.jsx("div",{className:"py-8 flex items-center justify-center",children:e.jsx(Te,{className:"w-5 h-5 animate-spin text-muted-foreground"})}):y?e.jsx("div",{className:"py-8 text-center text-sm text-destructive",children:y}):J===0?e.jsx("div",{className:"py-8 text-center text-sm text-muted-foreground",children:t({id:"mcp.sync.noServers"})}):e.jsx("div",{className:"space-y-1",children:u.map(N=>e.jsxs("div",{className:$("flex items-start gap-2 p-2 rounded cursor-pointer transition-colors",N.selected?"bg-primary/10":"hover:bg-muted/50"),onClick:()=>r(N.name),children:[e.jsx(Ms,{id:`codex-${N.name}`,checked:N.selected,onChange:()=>r(N.name),className:"w-4 h-4 mt-0.5"}),e.jsxs("label",{htmlFor:`codex-${N.name}`,className:"flex-1 min-w-0 cursor-pointer",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:N.name}),N.enabled&&e.jsx(Q,{variant:"success",className:"text-xs",children:t({id:"mcp.status.enabled"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground font-mono truncate",children:N.displayText})]})]},N.name))})}),J>0&&e.jsxs("div",{className:"px-2 py-2 bg-muted/30 border-t border-border flex gap-1",children:[e.jsx(D,{variant:"ghost",size:"sm",onClick:x,className:"flex-1 text-xs",children:t({id:"mcp.sync.selectAll"})}),e.jsx(D,{variant:"ghost",size:"sm",onClick:E,className:"flex-1 text-xs",disabled:U===0,children:t({id:"mcp.sync.clearAll"})})]})]})]}),e.jsxs("div",{className:"flex items-center justify-center gap-3",children:[e.jsx(D,{onClick:O,disabled:W===0||b,variant:"default",className:"min-w-40",children:b?e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"w-4 h-4 mr-2 animate-spin"}),t({id:"mcp.sync.syncInProgress"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ut,{className:"w-4 h-4 mr-2"}),t({id:"mcp.sync.copyToCodex"},{count:W})]})}),e.jsx(D,{onClick:V,disabled:U===0||b||!l,variant:"default",className:"min-w-40",children:b?e.jsxs(e.Fragment,{children:[e.jsx(Te,{className:"w-4 h-4 mr-2 animate-spin"}),t({id:"mcp.sync.syncInProgress"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Et,{className:"w-4 h-4 mr-2"}),t({id:"mcp.sync.copyFromCodex"},{count:U})]})})]})]})}function Ka({onProjectClick:s,onOpenNewWindow:a,className:t,maxProjects:l,projectPaths:c}){const{formatMessage:n}=G(),[w,u]=h.useState("lastModified"),[f,d]=h.useState("desc"),[S,m]=h.useState([]),[g,y]=h.useState(!1),{projects:p,currentProject:b,isLoading:v}=Gs(),k=h.useMemo(()=>{const r=c??p;return l?r.slice(0,l):r},[c,p,l]);h.useEffect(()=>{(async()=>{if(k.length===0){m([]);return}y(!0);try{const x=await Ze(k),E=k.map(O=>{const V=O===b,_=O.split(/[/\\]/).filter(Boolean).pop()||O,W=x.servers[O]??[];return{name:_,path:O,serverCount:W.length,enabledCount:W.filter(J=>J.enabled).length,lastModified:void 0,isCurrent:V}});m(E)}catch(x){console.error("Failed to fetch project server stats:",x),m(k.map(E=>({name:E.split(/[/\\]/).filter(Boolean).pop()||E,path:E,serverCount:0,enabledCount:0,isCurrent:E===b})))}finally{y(!1)}})()},[k,b]);const j=[...S].sort((r,x)=>{let E=0;switch(w){case"name":E=r.name.localeCompare(x.name);break;case"serverCount":E=r.serverCount-x.serverCount;break;case"lastModified":E=r.lastModified&&x.lastModified?new Date(r.lastModified).getTime()-new Date(x.lastModified).getTime():0;break}return f==="asc"?E:-E}),M=r=>{w===r?d(x=>x==="asc"?"desc":"asc"):(u(r),d("desc"))},T=r=>{s==null||s(r)},P=(r,x)=>{r.stopPropagation(),a==null||a(x)};return v||g?e.jsx(Y,{className:$("p-8",t),children:e.jsxs("div",{className:"flex items-center justify-center",children:[e.jsx("div",{className:"animate-spin text-muted-foreground",children:"-"}),e.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:n({id:"common.actions.loading"})})]})}):j.length===0?e.jsx(Y,{className:$("p-8",t),children:e.jsxs("div",{className:"text-center",children:[e.jsx(Ne,{className:"w-12 h-12 mx-auto text-muted-foreground/50 mb-3"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:n({id:"mcp.allProjects.empty"})})]})}):e.jsxs(Y,{className:$("overflow-hidden",t),children:[e.jsxs("div",{className:"grid grid-cols-12 gap-2 px-4 py-3 bg-muted/50 border-b border-border text-xs font-medium text-muted-foreground uppercase",children:[e.jsx("div",{className:"col-span-4",children:e.jsxs("button",{onClick:()=>M("name"),className:"flex items-center gap-1 hover:text-foreground transition-colors",children:[n({id:"mcp.allProjects.name"}),w==="name"&&e.jsx("span",{className:"text-foreground",children:f==="asc"?"↑":"↓"})]})}),e.jsx("div",{className:"col-span-3",children:e.jsxs("button",{onClick:()=>M("serverCount"),className:"flex items-center gap-1 hover:text-foreground transition-colors",children:[n({id:"mcp.allProjects.servers"}),w==="serverCount"&&e.jsx("span",{className:"text-foreground",children:f==="asc"?"↑":"↓"})]})}),e.jsx("div",{className:"col-span-3",children:e.jsxs("button",{onClick:()=>M("lastModified"),className:"flex items-center gap-1 hover:text-foreground transition-colors",children:[n({id:"mcp.allProjects.lastModified"}),w==="lastModified"&&e.jsx("span",{className:"text-foreground",children:f==="asc"?"↑":"↓"})]})}),e.jsx("div",{className:"col-span-2 text-right",children:n({id:"mcp.allProjects.actions"})})]}),e.jsx("div",{className:"divide-y divide-border",children:j.map(r=>e.jsxs("div",{onClick:()=>T(r.path),className:$("grid grid-cols-12 gap-2 px-4 py-3 items-center transition-colors cursor-pointer hover:bg-muted/50",r.isCurrent&&"bg-primary/5 hover:bg-primary/10"),children:[e.jsx("div",{className:"col-span-4 min-w-0",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ne,{className:"w-4 h-4 text-muted-foreground flex-shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:r.name}),r.isCurrent&&e.jsx(Q,{variant:"default",className:"text-xs",children:n({id:"mcp.allProjects.current"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground font-mono truncate",children:r.path})]})]})}),e.jsx("div",{className:"col-span-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Vs,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs("span",{className:"text-sm text-foreground",children:[r.serverCount," ",n({id:"mcp.allProjects.servers"})]}),e.jsxs(Q,{variant:"outline",className:$("text-xs",r.enabledCount>0?"text-success border-success/30":"text-muted-foreground"),children:[r.enabledCount," ",n({id:"mcp.status.enabled"})]})]})}),e.jsx("div",{className:"col-span-3",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Dt,{className:"w-4 h-4"}),e.jsx("span",{children:r.lastModified?Bt(new Date(r.lastModified),{addSuffix:!0}):"-"})]})}),e.jsx("div",{className:"col-span-2 flex justify-end gap-1",children:e.jsx("button",{onClick:x=>P(x,r.path),className:"p-1.5 rounded hover:bg-muted transition-colors",title:n({id:"mcp.allProjects.openNewWindow"}),children:e.jsx(qt,{className:"w-4 h-4 text-muted-foreground"})})})]},r.path))}),e.jsx("div",{className:"px-4 py-2 bg-muted/30 border-t border-border text-xs text-muted-foreground",children:n({id:"mcp.allProjects.summary"},{count:j.length})})]})}function za({onImportSuccess:s,className:a}){const{formatMessage:t}=G(),[l,c]=h.useState(null),[n,w]=h.useState([]),[u,f]=h.useState(!1),{projects:d,currentProject:S,fetchOtherServers:m,isFetchingServers:g}=Gs(),{createServer:y,isCreating:p}=Bs(),b=d.filter(T=>T!==S),v=async T=>{c(T),f(!0);try{const P=await m([T]),r=[];for(const[x,E]of Object.entries(P.servers)){const O=x.split(/[/\\]/).filter(Boolean).pop()||x;for(const V of E)r.push({name:V.name,enabled:V.enabled,displayText:de(V)?V.url:me(V)?V.command:"",transport:V.transport,projectPath:x,projectName:O,originalServer:V})}w(r)}catch(P){console.error("Failed to fetch other projects servers:",P),w([])}finally{f(!1)}},k=async T=>{try{const P=`${T.projectName}-${T.name}`.toLowerCase().replace(/\s+/g,"-"),r={...T.originalServer,name:P,scope:"project"};await y(r),s==null||s(P,T.projectPath)}catch(P){console.error("Failed to import server:",P)}},j=u||g||p,M=l?l.split(/[/\\]/).filter(Boolean).pop():null;return e.jsxs(Y,{className:$("p-4",a),children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Le,{className:"w-5 h-5 text-primary"}),e.jsx("h3",{className:"text-sm font-medium text-foreground",children:t({id:"mcp.otherProjects.title"})})]}),e.jsx(D,{variant:"ghost",size:"sm",onClick:()=>l&&v(l),disabled:!l||j,className:"h-8",children:e.jsx(es,{className:$("w-4 h-4",j&&"animate-spin")})})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:t({id:"mcp.otherProjects.description"})}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{className:"text-sm font-medium text-foreground mb-2 block",children:t({id:"mcp.otherProjects.selectProject"})}),e.jsxs(Ve,{value:l??"",onValueChange:v,children:[e.jsx($e,{className:"w-full",children:e.jsx(_e,{placeholder:t({id:"mcp.otherProjects.selectProjectPlaceholder"})})}),e.jsx(Re,{children:b.length===0?e.jsx("div",{className:"p-2 text-sm text-muted-foreground text-center",children:t({id:"mcp.otherProjects.noProjects"})}):b.map(T=>{const P=T.split(/[/\\]/).filter(Boolean).pop()||T;return e.jsx(he,{value:T,children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Le,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("span",{className:"truncate",children:P})]})},T)})})]})]}),l&&e.jsx("div",{className:"space-y-2",children:u?e.jsxs("div",{className:"flex items-center justify-center py-8",children:[e.jsx("div",{className:"animate-spin text-muted-foreground",children:"-"}),e.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:t({id:"common.actions.loading"})})]}):n.length===0?e.jsx("div",{className:"p-4 text-center text-sm text-muted-foreground border border-dashed rounded-lg",children:t({id:"mcp.otherProjects.noServers"},{project:M})}):e.jsx("div",{className:"space-y-2 max-h-60 overflow-y-auto",children:n.map(T=>e.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-lg bg-muted/30 hover:bg-muted/50 transition-colors",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-foreground truncate",children:T.name}),T.enabled&&e.jsx(Q,{variant:"success",className:"text-xs",children:t({id:"mcp.status.enabled"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground font-mono truncate",children:T.displayText}),e.jsxs("p",{className:"text-xs text-muted-foreground truncate",children:[e.jsx("span",{className:"font-medium",children:T.projectName}),e.jsx(Is,{className:"inline w-3 h-3 mx-1"}),e.jsx("span",{className:"font-mono",children:T.projectPath})]})]}),e.jsxs(D,{variant:"outline",size:"sm",onClick:()=>k(T),disabled:p,className:"flex-shrink-0",children:[e.jsx(ls,{className:"w-4 h-4 mr-1"}),t({id:"mcp.otherProjects.import"})]})]},`${T.projectPath}-${T.name}`))})}),l&&n.length>0&&e.jsx("p",{className:"text-xs text-muted-foreground mt-3",children:t({id:"mcp.otherProjects.hint"})})]})}function Qa(s){return!s||s.length<=4?"****":s.substring(0,4)+"****"}function Ia({server:s,isExpanded:a,onToggleExpand:t,onToggle:l,onEdit:c,onDelete:n,onSaveAsTemplate:w,conflictInfo:u}){const{formatMessage:f}=G(),[d,S]=h.useState({}),m=de(s),g=me(s),y=()=>{var v;return m?s.url:`${s.command} ${((v=s.args)==null?void 0:v.join(" "))||""}`.trim()},p=()=>{if(!m)return[];const v=[];return s.headers&&Object.entries(s.headers).forEach(([k,j])=>{v.push({name:k,value:j})}),s.httpHeaders&&Object.entries(s.httpHeaders).forEach(([k,j])=>{v.push({name:k,value:j})}),s.bearerTokenEnvVar&&v.push({name:"Authorization",value:`Bearer $${s.bearerTokenEnvVar}`,isEnvVar:!0}),v},b=v=>{S(k=>({...k,[v]:!k[v]}))};return e.jsxs(Y,{className:$("overflow-hidden",!s.enabled&&"opacity-60"),children:[e.jsx("div",{className:"p-4 cursor-pointer hover:bg-muted/50 transition-colors",onClick:t,children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:$("p-2 rounded-lg",s.enabled?"bg-primary/10":"bg-muted"),children:e.jsx(De,{className:$("w-5 h-5",s.enabled?"text-primary":"text-muted-foreground")})}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium text-foreground",children:s.name}),m&&e.jsxs(Q,{variant:"outline",className:"text-xs text-blue-600 border-blue-300",children:[e.jsx(Ws,{className:"w-3 h-3 mr-1"}),f({id:"mcp.transport.http"})]}),e.jsx(Q,{variant:s.scope==="global"?"default":"secondary",className:"text-xs",children:s.scope==="global"?e.jsxs(e.Fragment,{children:[e.jsx(je,{className:"w-3 h-3 mr-1"}),f({id:"mcp.scope.global"})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ne,{className:"w-3 h-3 mr-1"}),f({id:"mcp.scope.project"})]})}),u&&e.jsxs(Q,{variant:"outline",className:"text-xs text-orange-500 border-orange-300",children:[e.jsx(Ie,{className:"w-3 h-3 mr-1"}),f({id:"mcp.conflict.badge"})]}),s.enabled&&e.jsx(Q,{variant:"outline",className:"text-xs text-green-600",children:f({id:"mcp.status.enabled"})})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1 font-mono truncate max-w-md",title:y(),children:y()})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:v=>{v.stopPropagation(),l(s.name,!s.enabled)},children:s.enabled?e.jsx(ke,{className:"w-4 h-4 text-green-600"}):e.jsx(ss,{className:"w-4 h-4"})}),e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:v=>{v.stopPropagation(),w(s)},title:f({id:"mcp.templates.actions.saveAsTemplate"}),children:e.jsx(Jt,{className:"w-4 h-4 text-primary"})}),e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:v=>{v.stopPropagation(),c(s)},children:e.jsx(Zt,{className:"w-4 h-4"})}),e.jsx(D,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:v=>{v.stopPropagation(),n(s)},children:e.jsx(Me,{className:"w-4 h-4 text-destructive"})}),a?e.jsx(Qs,{className:"w-5 h-5 text-muted-foreground"}):e.jsx(os,{className:"w-5 h-5 text-muted-foreground"})]})]})}),a&&e.jsxs("div",{className:"border-t border-border p-4 space-y-3 bg-muted/30",children:[m&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:f({id:"mcp.http.url"})}),e.jsx("code",{className:"text-sm bg-background px-2 py-1 rounded block overflow-x-auto break-all",children:s.url})]}),p().length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:f({id:"mcp.http.headers"})}),e.jsx("div",{className:"space-y-1",children:p().map(v=>e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Q,{variant:"secondary",className:"font-mono",children:v.name}),e.jsx("span",{className:"text-muted-foreground",children:"="}),e.jsx("code",{className:"text-xs bg-background px-2 py-1 rounded flex-1 overflow-x-auto",children:d[v.name]?v.value:Qa(v.value)}),e.jsx(D,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>b(v.name),title:d[v.name]?f({id:"mcp.http.hideValue"}):f({id:"mcp.http.showValue"}),children:d[v.name]?e.jsx(fs,{className:"w-3 h-3 text-muted-foreground"}):e.jsx(js,{className:"w-3 h-3 text-muted-foreground"})}),v.isEnvVar&&e.jsx(Q,{variant:"outline",className:"text-xs text-blue-500",children:f({id:"mcp.http.envVar"})})]},v.name))})]})]}),g&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:f({id:"mcp.command"})}),e.jsx("code",{className:"text-sm bg-background px-2 py-1 rounded block overflow-x-auto",children:s.command})]}),s.args&&s.args.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:f({id:"mcp.args"})}),e.jsx("div",{className:"flex flex-wrap gap-1",children:s.args.map((v,k)=>e.jsx(Q,{variant:"outline",className:"font-mono text-xs",children:v},k))})]}),s.env&&Object.keys(s.env).length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:f({id:"mcp.env"})}),e.jsx("div",{className:"space-y-1",children:Object.entries(s.env).map(([v,k])=>e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[e.jsx(Q,{variant:"secondary",className:"font-mono",children:v}),e.jsx("span",{className:"text-muted-foreground",children:"="}),e.jsx("code",{className:"text-xs bg-background px-2 py-1 rounded flex-1 overflow-x-auto",children:k})]},v))})]})]}),u&&e.jsxs("div",{className:"p-3 bg-orange-50 dark:bg-orange-950/30 border border-orange-200 dark:border-orange-800 rounded-lg space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 text-orange-700 dark:text-orange-400",children:[e.jsx(Ie,{className:"w-4 h-4"}),e.jsx("span",{className:"text-sm font-medium",children:f({id:"mcp.conflict.title"})})]}),e.jsx("p",{className:"text-xs text-orange-600 dark:text-orange-400/80",children:f({id:"mcp.conflict.description"},{scope:f({id:`mcp.scope.${u.effectiveScope}`})})}),e.jsx("p",{className:"text-xs text-orange-600 dark:text-orange-400/80",children:f({id:"mcp.conflict.resolution"})})]})]})]})}function dn(){var Cs,Ss;const{formatMessage:s}=G(),[a,t]=h.useState("servers"),[l,c]=h.useState(""),[n,w]=h.useState("all"),[u,f]=h.useState(new Set),[d,S]=h.useState(!1),[m,g]=h.useState(void 0),[y,p]=h.useState("claude"),[b,v]=h.useState(new Set),[k,j]=h.useState(!1),[M,T]=h.useState(void 0),P=ae(),r=He(),{servers:x,projectServers:E,globalServers:O,conflicts:V,totalCount:_,enabledCount:W,isLoading:J,isFetching:U,refetch:N}=Us({scope:n==="all"?void 0:n}),L=fe({queryKey:["codexMcpServers"],queryFn:Rs,enabled:y==="codex",staleTime:120*1e3}),A=xe(pe),ce=fe({queryKey:["ccwMcpConfig",A],queryFn:()=>zt(A??void 0),enabled:y==="claude",staleTime:300*1e3}),oe=fe({queryKey:["ccwMcpConfigCodex"],queryFn:Qt,enabled:y==="codex",staleTime:300*1e3}),{toggleServer:Ce,deleteServer:ve}=Bs(),Pe=i=>{f(C=>{const I=new Set(C);return I.has(i)?I.delete(i):I.add(i),I})},le=i=>{v(C=>{const I=new Set(C);return I.has(i)?I.delete(i):I.add(i),I})},ye=(i,C)=>{Ce(i,C)},q=async i=>{if(confirm(s({id:"mcp.deleteConfirm"},{name:i.name})))try{await ve(i.name,i.scope),r.success(s({id:"mcp.actions.delete"}),i.name),N()}catch(C){console.error("Failed to delete MCP server:",C),r.error(s({id:"mcp.actions.delete"}),C instanceof Error?C.message:String(C))}},ne=i=>{g(i),S(!0)},Se=()=>{g(void 0),S(!0)},Fe=()=>{S(!1),g(void 0)},We=()=>{S(!1),g(void 0),N()},Ue=i=>{p(i)},re=ce.data??{isInstalled:!1,enabledTools:[],projectRoot:void 0,allowedDirs:void 0,enableSandbox:void 0,installedScopes:[]},o=["ccwMcpConfig",A],F=async(i,C)=>{const I=P.getQueryData(o)??re,z=I.enabledTools,Z=P.getQueryData(o),ie=C?z.includes(i)?z:[...z,i]:z.filter(R=>R!==i);P.setQueryData(o,R=>R&&{...R,enabledTools:ie});try{await Xe({...I,enabledTools:ie})}catch(R){r.error(s({id:"mcp.actions.toggle.error"}),R instanceof Error?R.message:String(R)),console.error("Failed to toggle CCW tool:",R),P.setQueryData(o,Z)}ce.refetch()},K=async i=>{const C=P.getQueryData(o);P.setQueryData(o,z=>z&&{...z,...i});const I=P.getQueryData(o)??re;try{await Xe({enabledTools:I.enabledTools,projectRoot:I.projectRoot,allowedDirs:I.allowedDirs,enableSandbox:I.enableSandbox})}catch(z){r.error(s({id:"mcp.actions.update.error"}),z instanceof Error?z.message:String(z)),console.error("Failed to update CCW config:",z),P.setQueryData(o,C)}ce.refetch()},H=()=>{ce.refetch()},ee=h.useMemo(()=>{const i=new Map;for(const C of V)i.set(C.name,C);return i},[V]),ue=async i=>{try{await Hs(i,i==="project"?A??void 0:void 0),ce.refetch()}catch(C){r.error(s({id:"mcp.actions.install.error"}),C instanceof Error?C.message:String(C)),console.error("Failed to install CCW MCP to scope:",C)}},Ee=async i=>{try{await Ot(i,i==="project"?A??void 0:void 0),ce.refetch(),P.invalidateQueries({queryKey:["mcpServers"]})}catch(C){r.error(s({id:"mcp.actions.uninstall.error"}),C instanceof Error?C.message:String(C)),console.error("Failed to uninstall CCW MCP from scope:",C)}},se=oe.data??{isInstalled:!1,enabledTools:[],projectRoot:void 0,allowedDirs:void 0,enableSandbox:void 0,installedScopes:[]},be=async(i,C)=>{const I=P.getQueryData(["ccwMcpConfigCodex"])??se,z=I.enabledTools,Z=P.getQueryData(["ccwMcpConfigCodex"]),ie=C?z.includes(i)?z:[...z,i]:z.filter(R=>R!==i);P.setQueryData(["ccwMcpConfigCodex"],R=>R&&{...R,enabledTools:ie});try{await Ye({...I,enabledTools:ie})}catch(R){r.error(s({id:"mcp.actions.toggle.error"}),R instanceof Error?R.message:String(R)),console.error("Failed to toggle CCW tool (Codex):",R),P.setQueryData(["ccwMcpConfigCodex"],Z)}oe.refetch()},Be=async i=>{const C=P.getQueryData(["ccwMcpConfigCodex"])??se,I=P.getQueryData(["ccwMcpConfigCodex"]);P.setQueryData(["ccwMcpConfigCodex"],z=>z&&{...z,...i});try{await Ye({...C,...i})}catch(z){r.error(s({id:"mcp.actions.update.error"}),z instanceof Error?z.message:String(z)),console.error("Failed to update CCW config (Codex):",z),P.setQueryData(["ccwMcpConfigCodex"],I)}oe.refetch()},Xs=()=>{oe.refetch()},et=i=>{const C=(i==null?void 0:i.serverConfig)??{},I=C.type==="http"||C.transport==="http"||typeof C.url=="string";g(I?{name:i.name,transport:"http",url:C.url??"",scope:"project",enabled:!0}:{name:i.name,transport:"stdio",command:C.command,args:C.args||[],env:C.env,scope:"project",enabled:!0}),S(!0)},st=i=>{T(i),j(!0)},vs=async(i,C,I,z)=>{try{const Z=await zs({name:i,description:I||void 0,category:C||"custom",serverConfig:{command:z.command,args:z.args.length>0?z.args:void 0,env:Object.keys(z.env).length>0?z.env:void 0}});Z.success?(r.success(s({id:"mcp.templates.feedback.saveSuccess"}),i),j(!1),T(void 0)):r.error(s({id:"mcp.templates.feedback.saveError"}),Z.error||"")}catch(Z){r.error(s({id:"mcp.templates.feedback.saveError"}),Z instanceof Error?Z.message:String(Z))}},tt=async i=>{try{await Kt(i),r.success(s({id:"mcp.actions.delete"}),i),L.refetch()}catch(C){console.error("Failed to remove Codex MCP server:",C),r.error(s({id:"mcp.actions.delete"}),C instanceof Error?C.message:String(C))}},at=async(i,C)=>{try{await At(i,C),L.refetch()}catch(I){r.error(s({id:"mcp.actions.toggle.error"}),I instanceof Error?I.message:String(I)),console.error("Failed to toggle Codex MCP server:",I)}},nt=x.filter(i=>{var Z,ie;const C=l.toLowerCase(),I=i.name.toLowerCase().includes(C),z=de(i)?(Z=i.url)==null?void 0:Z.toLowerCase().includes(C):(ie=i.command)==null?void 0:ie.toLowerCase().includes(C);return I||z}),rt=((Cs=L.data)==null?void 0:Cs.servers)??[],ct=((Ss=L.data)==null?void 0:Ss.configPath)??"",ot=rt.filter(i=>{var Z,ie;const C=l.toLowerCase(),I=i.name.toLowerCase().includes(C),z=de(i)?(Z=i.url)==null?void 0:Z.toLowerCase().includes(C):(ie=i.command)==null?void 0:ie.toLowerCase().includes(C);return I||z}),ys=y==="codex"?ot:nt,Ns=y==="codex"?b:u,bs=y==="codex"?le:Pe,lt=y==="codex"?L.isLoading:J,ws=y==="codex"?L.isFetching:U,it=y==="codex"?(()=>L.refetch()):N;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-foreground flex items-center gap-2",children:[e.jsx(De,{className:"w-6 h-6 text-primary"}),s({id:"mcp.title"})]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:s({id:"mcp.description"})})]}),e.jsx("div",{className:"ml-3 flex-shrink-0",children:e.jsx(Lt,{currentMode:y,onModeChange:Ue,codexConfigPath:ct})})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(D,{variant:"outline",onClick:()=>it(),disabled:ws,children:[e.jsx(es,{className:$("w-4 h-4 mr-2",ws&&"animate-spin")}),s({id:"common.actions.refresh"})]}),y==="claude"&&e.jsxs(D,{onClick:Se,children:[e.jsx(Qe,{className:"w-4 h-4 mr-2"}),s({id:"mcp.actions.add"})]})]})]}),e.jsx(Gt,{value:a,onValueChange:i=>t(i),tabs:[{value:"templates",label:s({id:"mcp.tabs.templates"})},{value:"servers",label:s({id:"mcp.tabs.servers"})},{value:"cross-cli",label:s({id:"mcp.tabs.crossCli"})}]}),a==="templates"&&e.jsxs("div",{className:"mt-4 space-y-4",children:[e.jsx(Ma,{onInstallComplete:()=>N()}),e.jsx(Na,{onInstallTemplate:et,onSaveAsTemplate:vs})]}),a==="servers"&&e.jsxs("div",{className:"mt-4 space-y-4",children:[e.jsx(Oa,{}),y==="claude"&&e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[e.jsxs(Y,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(De,{className:"w-5 h-5 text-primary"}),e.jsx("span",{className:"text-2xl font-bold",children:_})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s({id:"mcp.stats.total"})})]}),e.jsxs(Y,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ke,{className:"w-5 h-5 text-green-600"}),e.jsx("span",{className:"text-2xl font-bold",children:W})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s({id:"mcp.stats.enabled"})})]}),e.jsxs(Y,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(je,{className:"w-5 h-5 text-info"}),e.jsx("span",{className:"text-2xl font-bold",children:O.length})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s({id:"mcp.stats.global"})})]}),e.jsxs(Y,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ne,{className:"w-5 h-5 text-warning"}),e.jsx("span",{className:"text-2xl font-bold",children:E.length})]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s({id:"mcp.stats.project"})})]})]}),y==="claude"&&e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(Oe,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(X,{placeholder:s({id:"mcp.filters.searchPlaceholder"}),value:l,onChange:i=>c(i.target.value),className:"pl-9"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(D,{variant:n==="all"?"default":"outline",size:"sm",onClick:()=>w("all"),children:s({id:"mcp.filters.all"})}),e.jsxs(D,{variant:n==="global"?"default":"outline",size:"sm",onClick:()=>w("global"),children:[e.jsx(je,{className:"w-4 h-4 mr-1"}),s({id:"mcp.scope.global"})]}),e.jsxs(D,{variant:n==="project"?"default":"outline",size:"sm",onClick:()=>w("project"),children:[e.jsx(Ne,{className:"w-4 h-4 mr-1"}),s({id:"mcp.scope.project"})]})]})]}),y==="codex"&&e.jsxs("div",{className:"relative flex-1",children:[e.jsx(Oe,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(X,{placeholder:s({id:"mcp.filters.searchPlaceholder"}),value:l,onChange:i=>c(i.target.value),className:"pl-9"})]}),y==="claude"&&e.jsx(Ds,{isInstalled:re.isInstalled,enabledTools:re.enabledTools,projectRoot:re.projectRoot,allowedDirs:re.allowedDirs,enableSandbox:re.enableSandbox,onToggleTool:F,onUpdateConfig:K,onInstall:H,installedScopes:re.installedScopes,onInstallToScope:ue,onUninstallScope:Ee}),y==="codex"&&e.jsx(Ds,{target:"codex",isInstalled:se.isInstalled,enabledTools:se.enabledTools,projectRoot:se.projectRoot,allowedDirs:se.allowedDirs,enableSandbox:se.enableSandbox,onToggleTool:be,onUpdateConfig:Be,onInstall:Xs}),lt?e.jsx("div",{className:"space-y-3",children:[1,2,3,4].map(i=>e.jsx("div",{className:"h-24 bg-muted animate-pulse rounded-lg"},i))}):ys.length===0?e.jsxs(Y,{className:"p-8 text-center",children:[e.jsx(De,{className:"w-12 h-12 mx-auto text-muted-foreground/50"}),e.jsx("h3",{className:"mt-4 text-lg font-medium text-foreground",children:s({id:"mcp.emptyState.title"})}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:s({id:"mcp.emptyState.message"})})]}):e.jsx("div",{className:"space-y-3",children:ys.map(i=>y==="codex"?e.jsx(fa,{server:i,enabled:i.enabled,isExpanded:Ns.has(i.name),onToggleExpand:()=>bs(i.name),isEditable:!0,onRemove:tt,onToggle:at},`${i.name}-${i.scope}`):e.jsx(Ia,{server:i,isExpanded:Ns.has(`${i.name}-${i.scope}`),onToggleExpand:()=>bs(`${i.name}-${i.scope}`),onToggle:ye,onEdit:ne,onDelete:q,onSaveAsTemplate:st,conflictInfo:ee.get(i.name)},`${i.name}-${i.scope}`))})]}),a==="cross-cli"&&e.jsxs("div",{className:"mt-4 space-y-6",children:[e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(es,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("h3",{className:"text-sm font-medium text-foreground",children:s({id:"mcp.sync.title"})})]}),e.jsx(Y,{className:"p-4",children:e.jsx(Aa,{onSuccess:()=>N()})})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(Ne,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("h3",{className:"text-sm font-medium text-foreground",children:s({id:"mcp.projects.title"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:s({id:"mcp.projects.description"})}),e.jsx(Ka,{maxProjects:10,onProjectClick:i=>console.log("Open project:",i),onOpenNewWindow:i=>window.open(`/?project=${encodeURIComponent(i)}`,"_blank")})]}),e.jsxs("section",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(je,{className:"w-4 h-4 text-muted-foreground"}),e.jsx("h3",{className:"text-sm font-medium text-foreground",children:s({id:"mcp.crossProject.title"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-3",children:s({id:"mcp.crossProject.description"})}),e.jsx(za,{onImportSuccess:(i,C)=>{console.log("Imported server:",i,"from:",C),N()}})]})]}),y==="claude"&&e.jsx(ha,{mode:m?"edit":"add",server:m,open:d,onClose:Fe,onSave:We}),e.jsx(Ys,{open:k,onClose:()=>{j(!1),T(void 0)},onSave:vs,defaultName:M==null?void 0:M.name,defaultCommand:M&&me(M)?M.command:void 0,defaultArgs:M&&me(M)?M.args:void 0,defaultEnv:M&&me(M)?M.env:void 0})]})}export{dn as McpManagerPage,dn as default};
|
|
45
|
-
//# sourceMappingURL=McpManagerPage-
|
|
45
|
+
//# sourceMappingURL=McpManagerPage-CI5ZzB8A.js.map
|