agentstudio 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/agentstudio.js +44 -4
- package/bin/agentstudio.js.map +1 -1
- package/bin/serviceManager.d.ts.map +1 -1
- package/bin/serviceManager.js +312 -28
- package/bin/serviceManager.js.map +1 -1
- package/config/engineConfig.d.ts +96 -0
- package/config/engineConfig.d.ts.map +1 -0
- package/config/engineConfig.js +429 -0
- package/config/engineConfig.js.map +1 -0
- package/engines/claude/__tests__/supportedModels.test.d.ts +10 -0
- package/engines/claude/__tests__/supportedModels.test.d.ts.map +1 -0
- package/engines/claude/__tests__/supportedModels.test.js +89 -0
- package/engines/claude/__tests__/supportedModels.test.js.map +1 -0
- package/engines/claude/aguiAdapter.d.ts +101 -0
- package/engines/claude/aguiAdapter.d.ts.map +1 -0
- package/engines/claude/aguiAdapter.js +382 -0
- package/engines/claude/aguiAdapter.js.map +1 -0
- package/engines/claude/claudeEngine.d.ts +42 -0
- package/engines/claude/claudeEngine.d.ts.map +1 -0
- package/engines/claude/claudeEngine.js +325 -0
- package/engines/claude/claudeEngine.js.map +1 -0
- package/engines/claude/index.d.ts +8 -0
- package/engines/claude/index.d.ts.map +1 -0
- package/engines/claude/index.js +14 -0
- package/engines/claude/index.js.map +1 -0
- package/engines/cursor/__tests__/a2aAdapter.test.d.ts +6 -0
- package/engines/cursor/__tests__/a2aAdapter.test.d.ts.map +1 -0
- package/engines/cursor/__tests__/a2aAdapter.test.js +376 -0
- package/engines/cursor/__tests__/a2aAdapter.test.js.map +1 -0
- package/engines/cursor/a2aAdapter.d.ts +180 -0
- package/engines/cursor/a2aAdapter.d.ts.map +1 -0
- package/engines/cursor/a2aAdapter.js +405 -0
- package/engines/cursor/a2aAdapter.js.map +1 -0
- package/engines/cursor/aguiAdapter.d.ts +97 -0
- package/engines/cursor/aguiAdapter.d.ts.map +1 -0
- package/engines/cursor/aguiAdapter.js +507 -0
- package/engines/cursor/aguiAdapter.js.map +1 -0
- package/engines/cursor/cursorEngine.d.ts +68 -0
- package/engines/cursor/cursorEngine.d.ts.map +1 -0
- package/engines/cursor/cursorEngine.js +465 -0
- package/engines/cursor/cursorEngine.js.map +1 -0
- package/engines/cursor/index.d.ts +11 -0
- package/engines/cursor/index.d.ts.map +1 -0
- package/engines/cursor/index.js +21 -0
- package/engines/cursor/index.js.map +1 -0
- package/engines/engineManager.d.ts +80 -0
- package/engines/engineManager.d.ts.map +1 -0
- package/engines/engineManager.js +137 -0
- package/engines/engineManager.js.map +1 -0
- package/engines/index.d.ts +26 -0
- package/engines/index.d.ts.map +1 -0
- package/engines/index.js +81 -0
- package/engines/index.js.map +1 -0
- package/engines/types.d.ts +319 -0
- package/engines/types.d.ts.map +1 -0
- package/engines/types.js +69 -0
- package/engines/types.js.map +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +139 -16
- package/index.js.map +1 -1
- package/middleware/auth.d.ts.map +1 -1
- package/middleware/auth.js +4 -0
- package/middleware/auth.js.map +1 -1
- package/package.json +7 -1
- package/public/assets/AgentsPage-D462iGRy.js +10 -0
- package/public/assets/{Button-BoiVlafj.js → Button-B_6lGF64.js} +1 -1
- package/public/assets/ChatPage-NjuRQPaL.js +478 -0
- package/public/assets/{CommandForm-Se4iemMp.js → CommandForm-DwGvE9A_.js} +1 -1
- package/public/assets/CommandsPage-DeUS8fhJ.js +1 -0
- package/public/assets/CursorConfigPage-Bl1Blrbr.js +1 -0
- package/public/assets/{DashboardPage-DbCVzPKz.js → DashboardPage-DH-2iuqf.js} +1 -1
- package/public/assets/EngineGate-DxTYx9wb.js +1 -0
- package/public/assets/{FileBrowser-DcoBWzKK.js → FileBrowser-CeGsJnUL.js} +5 -5
- package/public/assets/{FileExplorer-B41BB0LM.js → FileExplorer-x5R0Tcmk.js} +1 -1
- package/public/assets/GeneralSettingsPage-lhNEJQD_.js +1 -0
- package/public/assets/HooksPage-9fingjdz.js +1 -0
- package/public/assets/LandingPage-BAzi8PDo.js +1 -0
- package/public/assets/LoginPage-kQ_NWy8p.js +16 -0
- package/public/assets/McpAdminSettingsPage-DQHpWHRC.js +7 -0
- package/public/assets/McpPage-DLHfmhSJ.js +20 -0
- package/public/assets/{MemorySettingsPage-DYSuz-hU.js → MemorySettingsPage-CRIPja9X.js} +1 -1
- package/public/assets/ModelsPage-Bb5vSsuc.js +1 -0
- package/public/assets/PluginsPage-BhKM7gV7.js +12 -0
- package/public/assets/ProjectSelector-Cbct6pnn.js +1 -0
- package/public/assets/ProjectsPage-lQo7-7dt.js +21 -0
- package/public/assets/RulesPage-BRnB7__3.js +1 -0
- package/public/assets/ScheduledTasksPage-CZiABTSb.js +1 -0
- package/public/assets/SettingsLayout-BfG7ftoT.js +1 -0
- package/public/assets/SkillsPage-CL6MKxQ9.js +18 -0
- package/public/assets/{SubagentForm-C0R084ja.js → SubagentForm-BzzeWg0W.js} +2 -2
- package/public/assets/{SubagentsPage-BKFNmqxg.js → SubagentsPage-DhFP2kDE.js} +1 -1
- package/public/assets/SystemInfoPage-CFHUN3j8.js +1 -0
- package/public/assets/{TelemetrySettingsPage-Ck2btMol.js → TelemetrySettingsPage-BcZFVBXN.js} +1 -1
- package/public/assets/{ToastTestPage-B79DFhqI.js → ToastTestPage-BtGnZdyk.js} +1 -1
- package/public/assets/{ToolsList-Kfxwp80g.js → ToolsList-CTsQr53G.js} +1 -1
- package/public/assets/{UnifiedToolSelector-CkafUbz3.js → UnifiedToolSelector-BP6fuyzG.js} +1 -1
- package/public/assets/VersionSettingsPage-DjOjyL3X.js +5 -0
- package/public/assets/VoiceSettingsPage-d3l9AWBn.js +1 -0
- package/public/assets/WebSocketTunnelPage-CfHtJR9r.js +1 -0
- package/public/assets/_basePickBy-Bac3af5O.js +1 -0
- package/public/assets/{_baseUniq-COj5YnAO.js → _baseUniq-Dvh9sZ-T.js} +1 -1
- package/public/assets/{agents-3mB536QF.js → agents-KlPdWQ8K.js} +1 -1
- package/public/assets/arc-CRR5EPpK.js +1 -0
- package/public/assets/{architectureDiagram-VXUJARFQ-DD1BwT1T.js → architectureDiagram-VXUJARFQ-Ct1p8kmV.js} +1 -1
- package/public/assets/{blockDiagram-VD42YOAC-DFKUIZc6.js → blockDiagram-VD42YOAC-CX_8YiYn.js} +1 -1
- package/public/assets/{c4Diagram-YG6GDRKO-B0VVIIvh.js → c4Diagram-YG6GDRKO-BIBVWIY4.js} +1 -1
- package/public/assets/channel-CPs-2Y_m.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-DM8J7YO9.js → chunk-4BX2VUAB-CQNNXsb5.js} +1 -1
- package/public/assets/{chunk-55IACEB6-BjhdmGlM.js → chunk-55IACEB6-N_ZrGhOu.js} +1 -1
- package/public/assets/{chunk-B4BG7PRW-1RJ6n2xv.js → chunk-B4BG7PRW-CI6DkhbM.js} +1 -1
- package/public/assets/{chunk-DI55MBZ5-1-EHSO67.js → chunk-DI55MBZ5-Dgj-Eo9U.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-DV3SMJK_.js → chunk-FMBD7UC4-o4B0HzSK.js} +1 -1
- package/public/assets/{chunk-QN33PNHL-IlsCTdDq.js → chunk-QN33PNHL-DXlfdPIk.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-DJXs-Fqo.js → chunk-QZHKN3VN-ZCBUGD7e.js} +1 -1
- package/public/assets/{chunk-TZMSLE5B-BxHO9wa1.js → chunk-TZMSLE5B-N3lZ106d.js} +1 -1
- package/public/assets/classDiagram-2ON5EDUG-DCwNRxvC.js +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-DCwNRxvC.js +1 -0
- package/public/assets/clone-C3DcKvhB.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-BVJXoW_K.js → cose-bilkent-S5V4N54A-Crc39J9q.js} +1 -1
- package/public/assets/{dagre-6UL2VRFP-DHDnVshA.js → dagre-6UL2VRFP-nC3WLCf7.js} +1 -1
- package/public/assets/{diagram-PSM6KHXK-40qGxDeg.js → diagram-PSM6KHXK-B5DQIDQ3.js} +1 -1
- package/public/assets/diagram-QEK2KX5R-BccDOQuz.js +43 -0
- package/public/assets/{diagram-S2PKOQOG-D7AX72a5.js → diagram-S2PKOQOG-D-Cv16WE.js} +1 -1
- package/public/assets/{erDiagram-Q2GNP2WA-BHsgeBpL.js → erDiagram-Q2GNP2WA-Dr0ZgvnS.js} +1 -1
- package/public/assets/{flowDiagram-NV44I4VS-BYqChOSE.js → flowDiagram-NV44I4VS-DGbbfVi5.js} +1 -1
- package/public/assets/{ganttDiagram-LVOFAZNH-CZFFSLKX.js → ganttDiagram-LVOFAZNH-C-3Wnf96.js} +1 -1
- package/public/assets/{gitGraphDiagram-NY62KEGX-C5Bgrf0J.js → gitGraphDiagram-NY62KEGX--Q8whT5z.js} +1 -1
- package/public/assets/{graph-BP5lFRBg.js → graph-CO1DMS2E.js} +1 -1
- package/public/assets/{index-BEPv9Bqe.js → index-B5hSSnK3.js} +58 -58
- package/public/assets/index-gbHlIp96.css +1 -0
- package/public/assets/infoDiagram-F6ZHWCRC-DSR9cM2B.js +2 -0
- package/public/assets/{journeyDiagram-XKPGCS4Q--abC1RHz.js → journeyDiagram-XKPGCS4Q-Cc00zHNt.js} +1 -1
- package/public/assets/{kanban-definition-3W4ZIXB7-BJeChfWu.js → kanban-definition-3W4ZIXB7-BF_gHshF.js} +6 -6
- package/public/assets/{layout-DjAix4WK.js → layout-BxoLV88o.js} +1 -1
- package/public/assets/{linear-Cw0z8VNY.js → linear-Y8e2e012.js} +1 -1
- package/public/assets/{mindmap-definition-VGOIOE7T-U_T9xIUk.js → mindmap-definition-VGOIOE7T-CzpuQA4p.js} +1 -1
- package/public/assets/{pieDiagram-ADFJNKIX-B0mT9OgH.js → pieDiagram-ADFJNKIX-B22MhIcy.js} +2 -2
- package/public/assets/{quadrantDiagram-AYHSOK5B-BWdlgO0u.js → quadrantDiagram-AYHSOK5B-CTT9bIA8.js} +1 -1
- package/public/assets/{requirementDiagram-UZGBJVZJ-B-8LxsGB.js → requirementDiagram-UZGBJVZJ-B_vjXDH9.js} +1 -1
- package/public/assets/{sankeyDiagram-TZEHDZUN-OXuxkgGA.js → sankeyDiagram-TZEHDZUN-CKfZ4633.js} +1 -1
- package/public/assets/{sequenceDiagram-WL72ISMW-Bt5twlzi.js → sequenceDiagram-WL72ISMW-BmTPN6j6.js} +1 -1
- package/public/assets/{stateDiagram-FKZM4ZOC-Dmph7TeW.js → stateDiagram-FKZM4ZOC-y2fQE1C7.js} +1 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-C4CM6z52.js +1 -0
- package/public/assets/{table-DjMdAdjH.js → table-BJUz-ck5.js} +1 -1
- package/public/assets/{timeline-definition-IT6M3QCI-CcV8nyIH.js → timeline-definition-IT6M3QCI-DsXlR68n.js} +1 -1
- package/public/assets/{tools-BAI9XHGS.js → tools-BZTR2NP1.js} +1 -1
- package/public/assets/{treemap-KMMF4GRG-DBuwkj4f.js → treemap-KMMF4GRG-Cecs9uxX.js} +1 -1
- package/public/assets/{ui-components-DaGtjl0g.js → ui-components-DjgDPiqV.js} +153 -128
- package/public/assets/useAgents-8KXN6U61.js +2 -0
- package/public/assets/{useClaudeVersions-Cy71v4HE.js → useClaudeVersions-DicHLV6A.js} +1 -1
- package/public/assets/useCommands-DbSH48ba.js +1 -0
- package/public/assets/{useProjects-XgfgISgV.js → useProjects-Bbh6hJMM.js} +1 -1
- package/public/assets/{useSessions-CQgq4d84.js → useSessions-DOa4-xiB.js} +1 -1
- package/public/assets/{xychartDiagram-PRI3JC2R-Bo9K-U2S.js → xychartDiagram-PRI3JC2R-C2IWhyM7.js} +1 -1
- package/public/index.html +5 -5
- package/public/wechat-qr-code.png +0 -0
- package/routes/a2a.d.ts +7 -0
- package/routes/a2a.d.ts.map +1 -1
- package/routes/a2a.js +193 -21
- package/routes/a2a.js.map +1 -1
- package/routes/agents.d.ts.map +1 -1
- package/routes/agents.js +45 -2
- package/routes/agents.js.map +1 -1
- package/routes/agui.d.ts +16 -0
- package/routes/agui.d.ts.map +1 -0
- package/routes/agui.js +520 -0
- package/routes/agui.js.map +1 -0
- package/routes/commands.d.ts.map +1 -1
- package/routes/commands.js +35 -3
- package/routes/commands.js.map +1 -1
- package/routes/cursorA2a.d.ts +18 -0
- package/routes/cursorA2a.d.ts.map +1 -0
- package/routes/cursorA2a.js +393 -0
- package/routes/cursorA2a.js.map +1 -0
- package/routes/engine.d.ts +12 -0
- package/routes/engine.d.ts.map +1 -0
- package/routes/engine.js +178 -0
- package/routes/engine.js.map +1 -0
- package/routes/gitVersions.d.ts +10 -0
- package/routes/gitVersions.d.ts.map +1 -0
- package/routes/gitVersions.js +147 -0
- package/routes/gitVersions.js.map +1 -0
- package/routes/hooks.d.ts +11 -0
- package/routes/hooks.d.ts.map +1 -0
- package/routes/hooks.js +303 -0
- package/routes/hooks.js.map +1 -0
- package/routes/mcp.d.ts.map +1 -1
- package/routes/mcp.js +28 -3
- package/routes/mcp.js.map +1 -1
- package/routes/plugins.d.ts.map +1 -1
- package/routes/plugins.js +317 -4
- package/routes/plugins.js.map +1 -1
- package/routes/rules.d.ts +9 -0
- package/routes/rules.d.ts.map +1 -0
- package/routes/rules.js +470 -0
- package/routes/rules.js.map +1 -0
- package/routes/sessions.d.ts.map +1 -1
- package/routes/sessions.js +64 -30
- package/routes/sessions.js.map +1 -1
- package/routes/speechToText.d.ts +8 -0
- package/routes/speechToText.d.ts.map +1 -0
- package/routes/speechToText.js +216 -0
- package/routes/speechToText.js.map +1 -0
- package/schemas/a2a.d.ts +2 -2
- package/services/__tests__/agentImporter.test.d.ts +5 -0
- package/services/__tests__/agentImporter.test.d.ts.map +1 -0
- package/services/__tests__/agentImporter.test.js +379 -0
- package/services/__tests__/agentImporter.test.js.map +1 -0
- package/services/__tests__/marketplaceUpdateService.test.d.ts +5 -0
- package/services/__tests__/marketplaceUpdateService.test.d.ts.map +1 -0
- package/services/__tests__/marketplaceUpdateService.test.js +227 -0
- package/services/__tests__/marketplaceUpdateService.test.js.map +1 -0
- package/services/__tests__/pluginInstaller.test.js +172 -0
- package/services/__tests__/pluginInstaller.test.js.map +1 -1
- package/services/a2a/__tests__/agentCardService.test.js +224 -0
- package/services/a2a/__tests__/agentCardService.test.js.map +1 -1
- package/services/a2a/__tests__/cursorA2aService.test.d.ts +6 -0
- package/services/a2a/__tests__/cursorA2aService.test.d.ts.map +1 -0
- package/services/a2a/__tests__/cursorA2aService.test.js +359 -0
- package/services/a2a/__tests__/cursorA2aService.test.js.map +1 -0
- package/services/a2a/agentCardService.d.ts +22 -0
- package/services/a2a/agentCardService.d.ts.map +1 -1
- package/services/a2a/agentCardService.js +246 -0
- package/services/a2a/agentCardService.js.map +1 -1
- package/services/a2a/cursorA2aService.d.ts +126 -0
- package/services/a2a/cursorA2aService.d.ts.map +1 -0
- package/services/a2a/cursorA2aService.js +336 -0
- package/services/a2a/cursorA2aService.js.map +1 -0
- package/services/agentImporter.d.ts +62 -0
- package/services/agentImporter.d.ts.map +1 -0
- package/services/agentImporter.js +335 -0
- package/services/agentImporter.js.map +1 -0
- package/services/cursorConfigService.d.ts +75 -0
- package/services/cursorConfigService.d.ts.map +1 -0
- package/services/cursorConfigService.js +538 -0
- package/services/cursorConfigService.js.map +1 -0
- package/services/gitVersionService.d.ts +52 -0
- package/services/gitVersionService.d.ts.map +1 -0
- package/services/gitVersionService.js +377 -0
- package/services/gitVersionService.js.map +1 -0
- package/services/marketplaceUpdateService.d.ts +66 -0
- package/services/marketplaceUpdateService.d.ts.map +1 -0
- package/services/marketplaceUpdateService.js +364 -0
- package/services/marketplaceUpdateService.js.map +1 -0
- package/services/mcpAdmin/__tests__/scheduledTaskTools.test.d.ts +5 -0
- package/services/mcpAdmin/__tests__/scheduledTaskTools.test.d.ts.map +1 -0
- package/services/mcpAdmin/__tests__/scheduledTaskTools.test.js +429 -0
- package/services/mcpAdmin/__tests__/scheduledTaskTools.test.js.map +1 -0
- package/services/mcpAdmin/tools/index.d.ts +1 -0
- package/services/mcpAdmin/tools/index.d.ts.map +1 -1
- package/services/mcpAdmin/tools/index.js +5 -1
- package/services/mcpAdmin/tools/index.js.map +1 -1
- package/services/mcpAdmin/tools/scheduledTaskTools.d.ts +64 -0
- package/services/mcpAdmin/tools/scheduledTaskTools.d.ts.map +1 -0
- package/services/mcpAdmin/tools/scheduledTaskTools.js +1002 -0
- package/services/mcpAdmin/tools/scheduledTaskTools.js.map +1 -0
- package/services/mcpAdmin/types.d.ts +1 -1
- package/services/mcpAdmin/types.d.ts.map +1 -1
- package/services/pluginInstaller.d.ts +55 -1
- package/services/pluginInstaller.d.ts.map +1 -1
- package/services/pluginInstaller.js +437 -13
- package/services/pluginInstaller.js.map +1 -1
- package/services/sessionEventBus.d.ts +67 -0
- package/services/sessionEventBus.d.ts.map +1 -0
- package/services/sessionEventBus.js +106 -0
- package/services/sessionEventBus.js.map +1 -0
- package/services/speechToText/__tests__/speechToText.test.d.ts +5 -0
- package/services/speechToText/__tests__/speechToText.test.d.ts.map +1 -0
- package/services/speechToText/__tests__/speechToText.test.js +208 -0
- package/services/speechToText/__tests__/speechToText.test.js.map +1 -0
- package/services/speechToText/index.d.ts +25 -0
- package/services/speechToText/index.d.ts.map +1 -0
- package/services/speechToText/index.js +228 -0
- package/services/speechToText/index.js.map +1 -0
- package/services/speechToText/providers/aliyun.d.ts +22 -0
- package/services/speechToText/providers/aliyun.d.ts.map +1 -0
- package/services/speechToText/providers/aliyun.js +185 -0
- package/services/speechToText/providers/aliyun.js.map +1 -0
- package/services/speechToText/providers/google.d.ts +24 -0
- package/services/speechToText/providers/google.d.ts.map +1 -0
- package/services/speechToText/providers/google.js +205 -0
- package/services/speechToText/providers/google.js.map +1 -0
- package/services/speechToText/providers/openaiCompatible.d.ts +22 -0
- package/services/speechToText/providers/openaiCompatible.d.ts.map +1 -0
- package/services/speechToText/providers/openaiCompatible.js +198 -0
- package/services/speechToText/providers/openaiCompatible.js.map +1 -0
- package/services/speechToText/providers/tencent.d.ts +23 -0
- package/services/speechToText/providers/tencent.d.ts.map +1 -0
- package/services/speechToText/providers/tencent.js +215 -0
- package/services/speechToText/providers/tencent.js.map +1 -0
- package/services/speechToText/types.d.ts +102 -0
- package/services/speechToText/types.d.ts.map +1 -0
- package/services/speechToText/types.js +43 -0
- package/services/speechToText/types.js.map +1 -0
- package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts +8 -2
- package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts.map +1 -1
- package/services/taskExecutor/__tests__/mcp-tools-integration.test.js +215 -72
- package/services/taskExecutor/__tests__/mcp-tools-integration.test.js.map +1 -1
- package/services/taskExecutor/taskWorker.js +9 -1
- package/services/taskExecutor/taskWorker.js.map +1 -1
- package/services/telemetry.js +1 -1
- package/types/a2a.d.ts +20 -0
- package/types/a2a.d.ts.map +1 -1
- package/types/engine.d.ts +314 -0
- package/types/engine.d.ts.map +1 -0
- package/types/engine.js +14 -0
- package/types/engine.js.map +1 -0
- package/types/hooks.d.ts +45 -0
- package/types/hooks.d.ts.map +1 -0
- package/types/hooks.js +9 -0
- package/types/hooks.js.map +1 -0
- package/types/plugins.d.ts +86 -2
- package/types/plugins.d.ts.map +1 -1
- package/types/plugins.js +1 -0
- package/types/plugins.js.map +1 -1
- package/types/rules.d.ts +51 -0
- package/types/rules.d.ts.map +1 -0
- package/types/rules.js +9 -0
- package/types/rules.js.map +1 -0
- package/utils/__tests__/cursorIdeAgentParser.test.d.ts +7 -0
- package/utils/__tests__/cursorIdeAgentParser.test.d.ts.map +1 -0
- package/utils/__tests__/cursorIdeAgentParser.test.js +289 -0
- package/utils/__tests__/cursorIdeAgentParser.test.js.map +1 -0
- package/utils/cursorCliHistoryParser.d.ts +58 -0
- package/utils/cursorCliHistoryParser.d.ts.map +1 -0
- package/utils/cursorCliHistoryParser.js +664 -0
- package/utils/cursorCliHistoryParser.js.map +1 -0
- package/utils/cursorIdeAgentParser.d.ts +49 -0
- package/utils/cursorIdeAgentParser.d.ts.map +1 -0
- package/utils/cursorIdeAgentParser.js +332 -0
- package/utils/cursorIdeAgentParser.js.map +1 -0
- package/public/assets/AgentsPage-gSnkPp2k.js +0 -10
- package/public/assets/ChatPage-BMrfVkpt.js +0 -471
- package/public/assets/CommandsPage-B6u4IO7L.js +0 -1
- package/public/assets/GeneralSettingsPage-BbEbWJUQ.js +0 -1
- package/public/assets/LandingPage-DFPm2d4Y.js +0 -1
- package/public/assets/LoginPage-D5kZJqhk.js +0 -16
- package/public/assets/McpAdminSettingsPage-D32iUEjH.js +0 -7
- package/public/assets/McpPage-QT4qs391.js +0 -20
- package/public/assets/PluginsPage-BotzuK9f.js +0 -1
- package/public/assets/ProjectSelector-DujNObqr.js +0 -1
- package/public/assets/ProjectsPage-CRWe6HPl.js +0 -21
- package/public/assets/ScheduledTasksPage-Beeurg-w.js +0 -1
- package/public/assets/SettingsLayout-BfkBUyI_.js +0 -1
- package/public/assets/SkillsPage-B59bAr6W.js +0 -18
- package/public/assets/SystemInfoPage-D89s7PjE.js +0 -1
- package/public/assets/VersionSettingsPage-CaB4PH6h.js +0 -5
- package/public/assets/WebSocketTunnelPage-Cbru_-hL.js +0 -1
- package/public/assets/_basePickBy-5fAM04Ra.js +0 -1
- package/public/assets/arc-C2gTU2ZR.js +0 -1
- package/public/assets/channel-DcVTcy-S.js +0 -1
- package/public/assets/classDiagram-2ON5EDUG-BXVT6Q7h.js +0 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-BXVT6Q7h.js +0 -1
- package/public/assets/clone-Bp6orjIq.js +0 -1
- package/public/assets/diagram-QEK2KX5R-BfMGeeRo.js +0 -43
- package/public/assets/index-BgR-BTTw.css +0 -1
- package/public/assets/infoDiagram-F6ZHWCRC-C6OApgqf.js +0 -2
- package/public/assets/stateDiagram-v2-4FDKWEC3-DyE8O3Kx.js +0 -1
- package/public/assets/useAgents-D5EDAc_E.js +0 -2
- package/public/assets/useCommands-BgoCfyuu.js +0 -1
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cursor Configuration Service
|
|
4
|
+
*
|
|
5
|
+
* Provides read access to Cursor CLI configuration files:
|
|
6
|
+
* - MCP servers: ~/.cursor/mcp.json
|
|
7
|
+
* - Rules: ~/.cursor/rules/*.mdc
|
|
8
|
+
* - Commands: ~/.cursor/commands/*.md
|
|
9
|
+
* - Skills: ~/.cursor/skills/ and ~/.cursor/skills-cursor/
|
|
10
|
+
* - Plugins: ~/.cursor/plugins/
|
|
11
|
+
* - Project data: ~/.cursor/projects/<hash>/
|
|
12
|
+
*
|
|
13
|
+
* This service is read-only for Cursor configurations.
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
+
var ownKeys = function(o) {
|
|
33
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
+
var ar = [];
|
|
35
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
return ownKeys(o);
|
|
39
|
+
};
|
|
40
|
+
return function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
})();
|
|
48
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
49
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
50
|
+
};
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.readMcpConfig = readMcpConfig;
|
|
53
|
+
exports.getMcpServers = getMcpServers;
|
|
54
|
+
exports.getRules = getRules;
|
|
55
|
+
exports.getProjectRules = getProjectRules;
|
|
56
|
+
exports.getCommands = getCommands;
|
|
57
|
+
exports.getProjectCommands = getProjectCommands;
|
|
58
|
+
exports.getSkills = getSkills;
|
|
59
|
+
exports.getProjectSkills = getProjectSkills;
|
|
60
|
+
exports.getPluginsConfig = getPluginsConfig;
|
|
61
|
+
exports.getMarketplacesConfig = getMarketplacesConfig;
|
|
62
|
+
exports.getProjectMcpTools = getProjectMcpTools;
|
|
63
|
+
exports.getProjectDataSummary = getProjectDataSummary;
|
|
64
|
+
exports.getAllCursorConfig = getAllCursorConfig;
|
|
65
|
+
const fs = __importStar(require("fs/promises"));
|
|
66
|
+
const path = __importStar(require("path"));
|
|
67
|
+
const fs_1 = require("fs");
|
|
68
|
+
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
69
|
+
const engineConfig_js_1 = require("../config/engineConfig.js");
|
|
70
|
+
// =============================================================================
|
|
71
|
+
// MCP Configuration
|
|
72
|
+
// =============================================================================
|
|
73
|
+
/**
|
|
74
|
+
* Read MCP configuration from ~/.cursor/mcp.json
|
|
75
|
+
*/
|
|
76
|
+
async function readMcpConfig() {
|
|
77
|
+
const paths = (0, engineConfig_js_1.getEnginePaths)();
|
|
78
|
+
const mcpPath = paths.mcpConfigPath;
|
|
79
|
+
try {
|
|
80
|
+
if (!(0, fs_1.existsSync)(mcpPath)) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
const content = await fs.readFile(mcpPath, 'utf-8');
|
|
84
|
+
return JSON.parse(content);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('Error reading MCP config:', error);
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get list of MCP servers
|
|
93
|
+
*/
|
|
94
|
+
async function getMcpServers() {
|
|
95
|
+
const config = await readMcpConfig();
|
|
96
|
+
if (!config?.mcpServers) {
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
return Object.entries(config.mcpServers).map(([name, server]) => ({
|
|
100
|
+
name,
|
|
101
|
+
...server,
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
// =============================================================================
|
|
105
|
+
// Rules Configuration
|
|
106
|
+
// =============================================================================
|
|
107
|
+
/**
|
|
108
|
+
* Parse rule frontmatter from .mdc file content
|
|
109
|
+
*/
|
|
110
|
+
function parseRuleFrontmatter(content) {
|
|
111
|
+
try {
|
|
112
|
+
const parsed = (0, gray_matter_1.default)(content);
|
|
113
|
+
return {
|
|
114
|
+
frontmatter: {
|
|
115
|
+
description: parsed.data.description,
|
|
116
|
+
alwaysApply: parsed.data.alwaysApply,
|
|
117
|
+
globs: parsed.data.globs,
|
|
118
|
+
},
|
|
119
|
+
body: parsed.content,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return {
|
|
124
|
+
frontmatter: {},
|
|
125
|
+
body: content,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Read all rules from a directory
|
|
131
|
+
*/
|
|
132
|
+
async function readRulesFromDir(dirPath, scope) {
|
|
133
|
+
const rules = [];
|
|
134
|
+
try {
|
|
135
|
+
if (!(0, fs_1.existsSync)(dirPath)) {
|
|
136
|
+
return rules;
|
|
137
|
+
}
|
|
138
|
+
const files = await fs.readdir(dirPath);
|
|
139
|
+
for (const file of files) {
|
|
140
|
+
if (!file.endsWith('.mdc') && !file.endsWith('.md')) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
const filePath = path.join(dirPath, file);
|
|
144
|
+
const stat = await fs.stat(filePath);
|
|
145
|
+
if (!stat.isFile()) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
149
|
+
const { frontmatter, body } = parseRuleFrontmatter(content);
|
|
150
|
+
const name = file.replace(/\.(mdc|md)$/, '');
|
|
151
|
+
rules.push({
|
|
152
|
+
name,
|
|
153
|
+
path: filePath,
|
|
154
|
+
scope,
|
|
155
|
+
frontmatter,
|
|
156
|
+
content: body,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
console.error(`Error reading rules from ${dirPath}:`, error);
|
|
162
|
+
}
|
|
163
|
+
return rules;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get all rules (global scope only for Cursor)
|
|
167
|
+
*/
|
|
168
|
+
async function getRules() {
|
|
169
|
+
const paths = (0, engineConfig_js_1.getEnginePaths)();
|
|
170
|
+
return readRulesFromDir(paths.rulesDir, 'global');
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get rules for a specific project (reads from .cursor/rules in project)
|
|
174
|
+
*/
|
|
175
|
+
async function getProjectRules(projectPath) {
|
|
176
|
+
const projectRulesDir = path.join(projectPath, '.cursor', 'rules');
|
|
177
|
+
return readRulesFromDir(projectRulesDir, 'project');
|
|
178
|
+
}
|
|
179
|
+
// =============================================================================
|
|
180
|
+
// Commands Configuration
|
|
181
|
+
// =============================================================================
|
|
182
|
+
/**
|
|
183
|
+
* Read all commands from a directory
|
|
184
|
+
*/
|
|
185
|
+
async function readCommandsFromDir(dirPath, scope) {
|
|
186
|
+
const commands = [];
|
|
187
|
+
try {
|
|
188
|
+
if (!(0, fs_1.existsSync)(dirPath)) {
|
|
189
|
+
return commands;
|
|
190
|
+
}
|
|
191
|
+
const files = await fs.readdir(dirPath);
|
|
192
|
+
for (const file of files) {
|
|
193
|
+
if (!file.endsWith('.md')) {
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
const filePath = path.join(dirPath, file);
|
|
197
|
+
const stat = await fs.stat(filePath);
|
|
198
|
+
if (!stat.isFile()) {
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
202
|
+
const name = file.replace(/\.md$/, '');
|
|
203
|
+
commands.push({
|
|
204
|
+
name,
|
|
205
|
+
path: filePath,
|
|
206
|
+
scope,
|
|
207
|
+
content,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
console.error(`Error reading commands from ${dirPath}:`, error);
|
|
213
|
+
}
|
|
214
|
+
return commands;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Get all commands (global scope)
|
|
218
|
+
*/
|
|
219
|
+
async function getCommands() {
|
|
220
|
+
const paths = (0, engineConfig_js_1.getEnginePaths)();
|
|
221
|
+
return readCommandsFromDir(paths.commandsDir, 'global');
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get commands for a specific project
|
|
225
|
+
*/
|
|
226
|
+
async function getProjectCommands(projectPath) {
|
|
227
|
+
const projectCommandsDir = path.join(projectPath, '.cursor', 'commands');
|
|
228
|
+
return readCommandsFromDir(projectCommandsDir, 'project');
|
|
229
|
+
}
|
|
230
|
+
// =============================================================================
|
|
231
|
+
// Skills Configuration
|
|
232
|
+
// =============================================================================
|
|
233
|
+
/**
|
|
234
|
+
* Parse skill SKILL.md frontmatter
|
|
235
|
+
*/
|
|
236
|
+
function parseSkillFrontmatter(content) {
|
|
237
|
+
try {
|
|
238
|
+
const parsed = (0, gray_matter_1.default)(content);
|
|
239
|
+
return {
|
|
240
|
+
frontmatter: {
|
|
241
|
+
name: parsed.data.name || '',
|
|
242
|
+
description: parsed.data.description || '',
|
|
243
|
+
},
|
|
244
|
+
body: parsed.content,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
return {
|
|
249
|
+
frontmatter: { name: '', description: '' },
|
|
250
|
+
body: content,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Read skills from a directory
|
|
256
|
+
*/
|
|
257
|
+
async function readSkillsFromDir(dirPath, scope, isBuiltin = false) {
|
|
258
|
+
const skills = [];
|
|
259
|
+
try {
|
|
260
|
+
if (!(0, fs_1.existsSync)(dirPath)) {
|
|
261
|
+
return skills;
|
|
262
|
+
}
|
|
263
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
264
|
+
for (const entry of entries) {
|
|
265
|
+
if (!entry.isDirectory()) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
const skillDir = path.join(dirPath, entry.name);
|
|
269
|
+
const skillMdPath = path.join(skillDir, 'SKILL.md');
|
|
270
|
+
if (!(0, fs_1.existsSync)(skillMdPath)) {
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
const content = await fs.readFile(skillMdPath, 'utf-8');
|
|
274
|
+
const { frontmatter, body } = parseSkillFrontmatter(content);
|
|
275
|
+
// Get supporting files
|
|
276
|
+
const allFiles = await fs.readdir(skillDir);
|
|
277
|
+
const supportingFiles = allFiles.filter(f => f !== 'SKILL.md');
|
|
278
|
+
skills.push({
|
|
279
|
+
name: frontmatter.name || entry.name,
|
|
280
|
+
path: skillDir,
|
|
281
|
+
scope,
|
|
282
|
+
isBuiltin,
|
|
283
|
+
frontmatter,
|
|
284
|
+
content: body,
|
|
285
|
+
supportingFiles: supportingFiles.length > 0 ? supportingFiles : undefined,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
console.error(`Error reading skills from ${dirPath}:`, error);
|
|
291
|
+
}
|
|
292
|
+
return skills;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Get all skills (user-created and built-in)
|
|
296
|
+
*/
|
|
297
|
+
async function getSkills() {
|
|
298
|
+
const paths = (0, engineConfig_js_1.getEnginePaths)();
|
|
299
|
+
const skills = [];
|
|
300
|
+
// User-created skills
|
|
301
|
+
const userSkills = await readSkillsFromDir(paths.skillsDir, 'user', false);
|
|
302
|
+
skills.push(...userSkills);
|
|
303
|
+
// Built-in skills (skills-cursor directory)
|
|
304
|
+
if (paths.builtinSkillsDir) {
|
|
305
|
+
const builtinSkills = await readSkillsFromDir(paths.builtinSkillsDir, 'user', true);
|
|
306
|
+
skills.push(...builtinSkills);
|
|
307
|
+
}
|
|
308
|
+
return skills;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get project-level skills
|
|
312
|
+
*/
|
|
313
|
+
async function getProjectSkills(projectPath) {
|
|
314
|
+
const projectSkillsDir = path.join(projectPath, '.cursor', 'skills');
|
|
315
|
+
return readSkillsFromDir(projectSkillsDir, 'project', false);
|
|
316
|
+
}
|
|
317
|
+
// =============================================================================
|
|
318
|
+
// Plugins Configuration
|
|
319
|
+
// =============================================================================
|
|
320
|
+
/**
|
|
321
|
+
* Read plugins configuration
|
|
322
|
+
*/
|
|
323
|
+
async function getPluginsConfig() {
|
|
324
|
+
const paths = (0, engineConfig_js_1.getEnginePaths)();
|
|
325
|
+
if (!paths.pluginsDir) {
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
const installedPath = path.join(paths.pluginsDir, 'installed.json');
|
|
329
|
+
try {
|
|
330
|
+
if (!(0, fs_1.existsSync)(installedPath)) {
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
const content = await fs.readFile(installedPath, 'utf-8');
|
|
334
|
+
return JSON.parse(content);
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
console.error('Error reading plugins config:', error);
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Read marketplaces configuration
|
|
343
|
+
*/
|
|
344
|
+
async function getMarketplacesConfig() {
|
|
345
|
+
const paths = (0, engineConfig_js_1.getEnginePaths)();
|
|
346
|
+
if (!paths.pluginsDir) {
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
const marketplacesPath = path.join(paths.pluginsDir, 'marketplaces.json');
|
|
350
|
+
try {
|
|
351
|
+
if (!(0, fs_1.existsSync)(marketplacesPath)) {
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
const content = await fs.readFile(marketplacesPath, 'utf-8');
|
|
355
|
+
return JSON.parse(content);
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
console.error('Error reading marketplaces config:', error);
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
// =============================================================================
|
|
363
|
+
// Project Data
|
|
364
|
+
// =============================================================================
|
|
365
|
+
/**
|
|
366
|
+
* Get project MCP tools from ~/.cursor/projects/<hash>/mcps/
|
|
367
|
+
*/
|
|
368
|
+
async function getProjectMcpTools(projectPath) {
|
|
369
|
+
const projectDataDir = (0, engineConfig_js_1.getProjectDataDir)(projectPath);
|
|
370
|
+
const mcpsDir = path.join(projectDataDir, 'mcps');
|
|
371
|
+
const servers = [];
|
|
372
|
+
try {
|
|
373
|
+
if (!(0, fs_1.existsSync)(mcpsDir)) {
|
|
374
|
+
return servers;
|
|
375
|
+
}
|
|
376
|
+
const serverDirs = await fs.readdir(mcpsDir, { withFileTypes: true });
|
|
377
|
+
for (const serverDir of serverDirs) {
|
|
378
|
+
if (!serverDir.isDirectory()) {
|
|
379
|
+
continue;
|
|
380
|
+
}
|
|
381
|
+
const serverPath = path.join(mcpsDir, serverDir.name);
|
|
382
|
+
const metadataPath = path.join(serverPath, 'SERVER_METADATA.json');
|
|
383
|
+
const toolsDir = path.join(serverPath, 'tools');
|
|
384
|
+
let serverIdentifier = serverDir.name;
|
|
385
|
+
let serverName = serverDir.name;
|
|
386
|
+
let instructions;
|
|
387
|
+
let status;
|
|
388
|
+
// Read server metadata
|
|
389
|
+
if ((0, fs_1.existsSync)(metadataPath)) {
|
|
390
|
+
try {
|
|
391
|
+
const metadataContent = await fs.readFile(metadataPath, 'utf-8');
|
|
392
|
+
const metadata = JSON.parse(metadataContent);
|
|
393
|
+
serverIdentifier = metadata.serverIdentifier || serverDir.name;
|
|
394
|
+
serverName = metadata.serverName || serverDir.name;
|
|
395
|
+
}
|
|
396
|
+
catch {
|
|
397
|
+
// Ignore metadata read errors
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
// Read instructions
|
|
401
|
+
const instructionsPath = path.join(serverPath, 'INSTRUCTIONS.md');
|
|
402
|
+
if ((0, fs_1.existsSync)(instructionsPath)) {
|
|
403
|
+
try {
|
|
404
|
+
instructions = await fs.readFile(instructionsPath, 'utf-8');
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
// Ignore read errors
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
// Read status
|
|
411
|
+
const statusPath = path.join(serverPath, 'STATUS.md');
|
|
412
|
+
if ((0, fs_1.existsSync)(statusPath)) {
|
|
413
|
+
try {
|
|
414
|
+
status = await fs.readFile(statusPath, 'utf-8');
|
|
415
|
+
}
|
|
416
|
+
catch {
|
|
417
|
+
// Ignore read errors
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
// Read tools
|
|
421
|
+
const tools = [];
|
|
422
|
+
if ((0, fs_1.existsSync)(toolsDir)) {
|
|
423
|
+
const toolFiles = await fs.readdir(toolsDir);
|
|
424
|
+
for (const toolFile of toolFiles) {
|
|
425
|
+
if (!toolFile.endsWith('.json')) {
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
428
|
+
try {
|
|
429
|
+
const toolContent = await fs.readFile(path.join(toolsDir, toolFile), 'utf-8');
|
|
430
|
+
const tool = JSON.parse(toolContent);
|
|
431
|
+
tools.push(tool);
|
|
432
|
+
}
|
|
433
|
+
catch {
|
|
434
|
+
// Ignore tool read errors
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
servers.push({
|
|
439
|
+
serverIdentifier,
|
|
440
|
+
serverName,
|
|
441
|
+
instructions,
|
|
442
|
+
status,
|
|
443
|
+
tools,
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
console.error(`Error reading project MCP tools for ${projectPath}:`, error);
|
|
449
|
+
}
|
|
450
|
+
return servers;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Get project data summary
|
|
454
|
+
*/
|
|
455
|
+
async function getProjectDataSummary(projectPath) {
|
|
456
|
+
const hash = (0, engineConfig_js_1.projectPathToHash)(projectPath);
|
|
457
|
+
const projectDataDir = (0, engineConfig_js_1.getProjectDataDir)(projectPath);
|
|
458
|
+
if (!(0, fs_1.existsSync)(projectDataDir)) {
|
|
459
|
+
return null;
|
|
460
|
+
}
|
|
461
|
+
const transcriptsDir = path.join(projectDataDir, 'agent-transcripts');
|
|
462
|
+
const terminalsDir = path.join(projectDataDir, 'terminals');
|
|
463
|
+
const assetsDir = path.join(projectDataDir, 'assets');
|
|
464
|
+
const transcripts = [];
|
|
465
|
+
const terminals = [];
|
|
466
|
+
const assets = [];
|
|
467
|
+
try {
|
|
468
|
+
if ((0, fs_1.existsSync)(transcriptsDir)) {
|
|
469
|
+
const files = await fs.readdir(transcriptsDir);
|
|
470
|
+
transcripts.push(...files.filter(f => f.endsWith('.txt')));
|
|
471
|
+
}
|
|
472
|
+
if ((0, fs_1.existsSync)(terminalsDir)) {
|
|
473
|
+
const files = await fs.readdir(terminalsDir);
|
|
474
|
+
terminals.push(...files.filter(f => f.endsWith('.txt')));
|
|
475
|
+
}
|
|
476
|
+
if ((0, fs_1.existsSync)(assetsDir)) {
|
|
477
|
+
const files = await fs.readdir(assetsDir);
|
|
478
|
+
assets.push(...files);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
catch (error) {
|
|
482
|
+
console.error(`Error reading project data for ${projectPath}:`, error);
|
|
483
|
+
}
|
|
484
|
+
const mcpTools = await getProjectMcpTools(projectPath);
|
|
485
|
+
const mcpToolsRecord = {};
|
|
486
|
+
for (const server of mcpTools) {
|
|
487
|
+
mcpToolsRecord[server.serverIdentifier] = server;
|
|
488
|
+
}
|
|
489
|
+
return {
|
|
490
|
+
hash,
|
|
491
|
+
projectPath,
|
|
492
|
+
mcpTools: mcpToolsRecord,
|
|
493
|
+
transcripts,
|
|
494
|
+
terminals,
|
|
495
|
+
assets,
|
|
496
|
+
};
|
|
497
|
+
}
|
|
498
|
+
// =============================================================================
|
|
499
|
+
// Convenience Functions
|
|
500
|
+
// =============================================================================
|
|
501
|
+
/**
|
|
502
|
+
* Get all configuration for display
|
|
503
|
+
*/
|
|
504
|
+
async function getAllCursorConfig(projectPath) {
|
|
505
|
+
const [mcp, globalRules, globalCommands, skills, plugins, marketplaces] = await Promise.all([
|
|
506
|
+
getMcpServers(),
|
|
507
|
+
getRules(),
|
|
508
|
+
getCommands(),
|
|
509
|
+
getSkills(),
|
|
510
|
+
getPluginsConfig(),
|
|
511
|
+
getMarketplacesConfig(),
|
|
512
|
+
]);
|
|
513
|
+
let rules = globalRules;
|
|
514
|
+
let commands = globalCommands;
|
|
515
|
+
let projectData = null;
|
|
516
|
+
if (projectPath) {
|
|
517
|
+
const [projectRules, projectCommands, projectSkills, projData] = await Promise.all([
|
|
518
|
+
getProjectRules(projectPath),
|
|
519
|
+
getProjectCommands(projectPath),
|
|
520
|
+
getProjectSkills(projectPath),
|
|
521
|
+
getProjectDataSummary(projectPath),
|
|
522
|
+
]);
|
|
523
|
+
rules = [...globalRules, ...projectRules];
|
|
524
|
+
commands = [...globalCommands, ...projectCommands];
|
|
525
|
+
skills.push(...projectSkills);
|
|
526
|
+
projectData = projData;
|
|
527
|
+
}
|
|
528
|
+
return {
|
|
529
|
+
mcp,
|
|
530
|
+
rules,
|
|
531
|
+
commands,
|
|
532
|
+
skills,
|
|
533
|
+
plugins,
|
|
534
|
+
marketplaces,
|
|
535
|
+
projectData,
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
//# sourceMappingURL=cursorConfigService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursorConfigService.js","sourceRoot":"","sources":["../../src/services/cursorConfigService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git Version Service
|
|
3
|
+
*
|
|
4
|
+
* Provides Git-based version management for AgentStudio projects.
|
|
5
|
+
* Each project gets its own Git repository (lazy-initialized on first version save).
|
|
6
|
+
* Versions are stored as Git tags (v1, v2, ...) with user-provided descriptions as commit messages.
|
|
7
|
+
*/
|
|
8
|
+
export interface VersionInfo {
|
|
9
|
+
tag: string;
|
|
10
|
+
message: string;
|
|
11
|
+
date: string;
|
|
12
|
+
hash: string;
|
|
13
|
+
isCurrent: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface VersionStatus {
|
|
16
|
+
initialized: boolean;
|
|
17
|
+
currentVersion: string | null;
|
|
18
|
+
isDirty: boolean;
|
|
19
|
+
untrackedFiles: number;
|
|
20
|
+
modifiedFiles: number;
|
|
21
|
+
totalVersions: number;
|
|
22
|
+
}
|
|
23
|
+
export interface CreateVersionResult {
|
|
24
|
+
tag: string;
|
|
25
|
+
hash: string;
|
|
26
|
+
message: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if a directory is a git repository
|
|
30
|
+
*/
|
|
31
|
+
export declare function isGitInitialized(projectPath: string): Promise<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Create a new version (git add + commit + tag)
|
|
34
|
+
*/
|
|
35
|
+
export declare function createVersion(projectPath: string, message: string): Promise<CreateVersionResult>;
|
|
36
|
+
/**
|
|
37
|
+
* List all versions (tags) for a project
|
|
38
|
+
*/
|
|
39
|
+
export declare function listVersions(projectPath: string): Promise<VersionInfo[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the current version status of a project
|
|
42
|
+
*/
|
|
43
|
+
export declare function getVersionStatus(projectPath: string): Promise<VersionStatus>;
|
|
44
|
+
/**
|
|
45
|
+
* Checkout a specific version
|
|
46
|
+
*/
|
|
47
|
+
export declare function checkoutVersion(projectPath: string, tag: string, force?: boolean): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Delete a version tag (does not delete the commit)
|
|
50
|
+
*/
|
|
51
|
+
export declare function deleteVersion(projectPath: string, tag: string): Promise<void>;
|
|
52
|
+
//# sourceMappingURL=gitVersionService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitVersionService.d.ts","sourceRoot":"","sources":["../../src/services/gitVersionService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AA2BD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5E;AAuCD;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAgD9B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA0D9E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA2DlF;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|