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,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service-Level Engine Configuration
|
|
3
|
+
*
|
|
4
|
+
* This module provides a unified engine configuration system that determines
|
|
5
|
+
* which AI engine backend the service uses. The engine type is set at service
|
|
6
|
+
* startup via environment variable or command line argument.
|
|
7
|
+
*
|
|
8
|
+
* Supported engines:
|
|
9
|
+
* - cursor-cli: Uses Cursor CLI, reads from ~/.cursor/
|
|
10
|
+
* - claude-sdk: Uses Claude Agent SDK, reads from ~/.claude/
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* - Environment variable: ENGINE=cursor-cli
|
|
14
|
+
* - Command line argument: --engine=cursor-cli
|
|
15
|
+
* - Default: claude-sdk
|
|
16
|
+
*/
|
|
17
|
+
import type { ServiceEngineType, ServiceEngineConfig, ServiceEngineCapabilities, EnginePathConfig } from '../types/engine.js';
|
|
18
|
+
/**
|
|
19
|
+
* Initialize engine configuration
|
|
20
|
+
* Called once at service startup
|
|
21
|
+
*/
|
|
22
|
+
export declare function initializeEngine(): ServiceEngineConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Get current engine configuration
|
|
25
|
+
* Throws if engine not initialized
|
|
26
|
+
*/
|
|
27
|
+
export declare function getEngineConfig(): ServiceEngineConfig;
|
|
28
|
+
/**
|
|
29
|
+
* Get engine type
|
|
30
|
+
*/
|
|
31
|
+
export declare function getEngineType(): ServiceEngineType;
|
|
32
|
+
/**
|
|
33
|
+
* Check if current engine is Cursor CLI
|
|
34
|
+
*/
|
|
35
|
+
export declare function isCursorEngine(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Check if current engine is Claude SDK
|
|
38
|
+
*/
|
|
39
|
+
export declare function isClaudeEngine(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Check if a feature is supported by current engine
|
|
42
|
+
*/
|
|
43
|
+
export declare function isFeatureSupported(feature: keyof ServiceEngineCapabilities['features']): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Get engine paths
|
|
46
|
+
*/
|
|
47
|
+
export declare function getEnginePaths(): EnginePathConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Log engine configuration at startup
|
|
50
|
+
*/
|
|
51
|
+
export declare function logEngineConfig(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Convert a project path to Cursor-style hash
|
|
54
|
+
* e.g., /Users/kongjie/projects/foo -> Users-kongjie-projects-foo
|
|
55
|
+
*/
|
|
56
|
+
export declare function projectPathToHash(projectPath: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get project data directory path
|
|
59
|
+
*/
|
|
60
|
+
export declare function getProjectDataDir(projectPath: string): string;
|
|
61
|
+
/**
|
|
62
|
+
* Get project MCP tools directory
|
|
63
|
+
*/
|
|
64
|
+
export declare function getProjectMcpDir(projectPath: string): string;
|
|
65
|
+
export { getEngineType as SDK_ENGINE_TYPE };
|
|
66
|
+
/**
|
|
67
|
+
* Get SDK directory name (backward compatible)
|
|
68
|
+
* @deprecated Use getEnginePaths().userConfigDir instead
|
|
69
|
+
*/
|
|
70
|
+
export declare function getSdkDirName(): string;
|
|
71
|
+
/**
|
|
72
|
+
* Get SDK directory path (backward compatible)
|
|
73
|
+
* @deprecated Use getEnginePaths().userConfigDir instead
|
|
74
|
+
*/
|
|
75
|
+
export declare function getSdkDir(): string;
|
|
76
|
+
/**
|
|
77
|
+
* Get projects directory (backward compatible)
|
|
78
|
+
* @deprecated Use getEnginePaths().projectsDataDir instead
|
|
79
|
+
*/
|
|
80
|
+
export declare function getProjectsDir(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Get commands directory (backward compatible)
|
|
83
|
+
* @deprecated Use getEnginePaths().commandsDir instead
|
|
84
|
+
*/
|
|
85
|
+
export declare function getCommandsDir(): string;
|
|
86
|
+
/**
|
|
87
|
+
* Get skills directory (backward compatible)
|
|
88
|
+
* @deprecated Use getEnginePaths().skillsDir instead
|
|
89
|
+
*/
|
|
90
|
+
export declare function getSkillsDir(): string;
|
|
91
|
+
/**
|
|
92
|
+
* Get plugins directory (backward compatible)
|
|
93
|
+
* @deprecated Use getEnginePaths().pluginsDir instead
|
|
94
|
+
*/
|
|
95
|
+
export declare function getPluginsDir(): string | undefined;
|
|
96
|
+
//# sourceMappingURL=engineConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engineConfig.d.ts","sourceRoot":"","sources":["../../src/config/engineConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAoO5B;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,mBAAmB,CAwBtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,mBAAmB,CAKrD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,iBAAiB,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,yBAAyB,CAAC,UAAU,CAAC,GAAG,OAAO,CAEhG;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAWtC;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAOD,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD"}
|
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Service-Level Engine Configuration
|
|
4
|
+
*
|
|
5
|
+
* This module provides a unified engine configuration system that determines
|
|
6
|
+
* which AI engine backend the service uses. The engine type is set at service
|
|
7
|
+
* startup via environment variable or command line argument.
|
|
8
|
+
*
|
|
9
|
+
* Supported engines:
|
|
10
|
+
* - cursor-cli: Uses Cursor CLI, reads from ~/.cursor/
|
|
11
|
+
* - claude-sdk: Uses Claude Agent SDK, reads from ~/.claude/
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* - Environment variable: ENGINE=cursor-cli
|
|
15
|
+
* - Command line argument: --engine=cursor-cli
|
|
16
|
+
* - Default: claude-sdk
|
|
17
|
+
*/
|
|
18
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
21
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
22
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(o, k2, desc);
|
|
25
|
+
}) : (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
o[k2] = m[k];
|
|
28
|
+
}));
|
|
29
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
30
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
31
|
+
}) : function(o, v) {
|
|
32
|
+
o["default"] = v;
|
|
33
|
+
});
|
|
34
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
35
|
+
var ownKeys = function(o) {
|
|
36
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
37
|
+
var ar = [];
|
|
38
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
return ownKeys(o);
|
|
42
|
+
};
|
|
43
|
+
return function (mod) {
|
|
44
|
+
if (mod && mod.__esModule) return mod;
|
|
45
|
+
var result = {};
|
|
46
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
47
|
+
__setModuleDefault(result, mod);
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
})();
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.initializeEngine = initializeEngine;
|
|
53
|
+
exports.getEngineConfig = getEngineConfig;
|
|
54
|
+
exports.getEngineType = getEngineType;
|
|
55
|
+
exports.SDK_ENGINE_TYPE = getEngineType;
|
|
56
|
+
exports.isCursorEngine = isCursorEngine;
|
|
57
|
+
exports.isClaudeEngine = isClaudeEngine;
|
|
58
|
+
exports.isFeatureSupported = isFeatureSupported;
|
|
59
|
+
exports.getEnginePaths = getEnginePaths;
|
|
60
|
+
exports.logEngineConfig = logEngineConfig;
|
|
61
|
+
exports.projectPathToHash = projectPathToHash;
|
|
62
|
+
exports.getProjectDataDir = getProjectDataDir;
|
|
63
|
+
exports.getProjectMcpDir = getProjectMcpDir;
|
|
64
|
+
exports.getSdkDirName = getSdkDirName;
|
|
65
|
+
exports.getSdkDir = getSdkDir;
|
|
66
|
+
exports.getProjectsDir = getProjectsDir;
|
|
67
|
+
exports.getCommandsDir = getCommandsDir;
|
|
68
|
+
exports.getSkillsDir = getSkillsDir;
|
|
69
|
+
exports.getPluginsDir = getPluginsDir;
|
|
70
|
+
const path = __importStar(require("path"));
|
|
71
|
+
const os = __importStar(require("os"));
|
|
72
|
+
// =============================================================================
|
|
73
|
+
// Engine Detection and Configuration
|
|
74
|
+
// =============================================================================
|
|
75
|
+
/**
|
|
76
|
+
* Parse command line arguments for --engine flag
|
|
77
|
+
*/
|
|
78
|
+
function parseEngineFromArgs() {
|
|
79
|
+
const args = process.argv;
|
|
80
|
+
for (const arg of args) {
|
|
81
|
+
if (arg.startsWith('--engine=')) {
|
|
82
|
+
return arg.split('=')[1];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get engine type from environment or command line
|
|
89
|
+
*/
|
|
90
|
+
function detectEngineType() {
|
|
91
|
+
// Priority: command line > environment variable > default
|
|
92
|
+
const fromArgs = parseEngineFromArgs();
|
|
93
|
+
if (fromArgs)
|
|
94
|
+
return fromArgs;
|
|
95
|
+
const fromEnv = process.env.ENGINE;
|
|
96
|
+
if (fromEnv)
|
|
97
|
+
return fromEnv;
|
|
98
|
+
// Check legacy AGENT_SDK environment variable for backward compatibility
|
|
99
|
+
const legacySdk = process.env.AGENT_SDK;
|
|
100
|
+
if (legacySdk) {
|
|
101
|
+
if (legacySdk === 'cursor' || legacySdk === 'cursor-cli') {
|
|
102
|
+
return 'cursor-cli';
|
|
103
|
+
}
|
|
104
|
+
return 'claude-sdk';
|
|
105
|
+
}
|
|
106
|
+
return 'claude-sdk'; // Default
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Validate and normalize engine type
|
|
110
|
+
* Supports case-insensitive matching and common aliases
|
|
111
|
+
*/
|
|
112
|
+
function validateEngineType(engine) {
|
|
113
|
+
const validEngines = ['cursor-cli', 'claude-sdk'];
|
|
114
|
+
const normalized = engine.trim().toLowerCase();
|
|
115
|
+
// 直接匹配
|
|
116
|
+
if (validEngines.includes(normalized)) {
|
|
117
|
+
return normalized;
|
|
118
|
+
}
|
|
119
|
+
// 常见别名映射
|
|
120
|
+
const aliasMap = {
|
|
121
|
+
'cursor': 'cursor-cli',
|
|
122
|
+
'cursor_cli': 'cursor-cli',
|
|
123
|
+
'cursorcli': 'cursor-cli',
|
|
124
|
+
'claude': 'claude-sdk',
|
|
125
|
+
'claude_sdk': 'claude-sdk',
|
|
126
|
+
'claudesdk': 'claude-sdk',
|
|
127
|
+
'claude-code': 'claude-sdk',
|
|
128
|
+
};
|
|
129
|
+
const mapped = aliasMap[normalized];
|
|
130
|
+
if (mapped) {
|
|
131
|
+
console.log(`🔧 Engine alias "${engine}" resolved to "${mapped}"`);
|
|
132
|
+
return mapped;
|
|
133
|
+
}
|
|
134
|
+
console.warn(`⚠️ Invalid ENGINE="${engine}", falling back to "claude-sdk"`);
|
|
135
|
+
console.warn(`⚠️ Supported engines: ${validEngines.join(', ')}`);
|
|
136
|
+
return 'claude-sdk';
|
|
137
|
+
}
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// Engine Capabilities
|
|
140
|
+
// =============================================================================
|
|
141
|
+
/**
|
|
142
|
+
* Claude SDK engine capabilities
|
|
143
|
+
*/
|
|
144
|
+
const CLAUDE_SDK_CAPABILITIES = {
|
|
145
|
+
mcp: {
|
|
146
|
+
supported: true,
|
|
147
|
+
scopes: ['global', 'project'],
|
|
148
|
+
canRead: true,
|
|
149
|
+
canWrite: true,
|
|
150
|
+
},
|
|
151
|
+
rules: {
|
|
152
|
+
supported: true,
|
|
153
|
+
scopes: ['global', 'project'],
|
|
154
|
+
canRead: true,
|
|
155
|
+
canWrite: true,
|
|
156
|
+
},
|
|
157
|
+
commands: {
|
|
158
|
+
supported: true,
|
|
159
|
+
scopes: ['global', 'project'],
|
|
160
|
+
canRead: true,
|
|
161
|
+
canWrite: true,
|
|
162
|
+
},
|
|
163
|
+
skills: {
|
|
164
|
+
supported: true,
|
|
165
|
+
scopes: ['user', 'project'],
|
|
166
|
+
canRead: true,
|
|
167
|
+
canWrite: true,
|
|
168
|
+
},
|
|
169
|
+
plugins: {
|
|
170
|
+
supported: true,
|
|
171
|
+
scopes: ['user', 'project'],
|
|
172
|
+
canRead: true,
|
|
173
|
+
canWrite: true,
|
|
174
|
+
},
|
|
175
|
+
hooks: {
|
|
176
|
+
supported: true,
|
|
177
|
+
scopes: ['global', 'project'],
|
|
178
|
+
canRead: true,
|
|
179
|
+
canWrite: true,
|
|
180
|
+
},
|
|
181
|
+
features: {
|
|
182
|
+
provider: true,
|
|
183
|
+
subagents: true,
|
|
184
|
+
a2a: true,
|
|
185
|
+
scheduledTasks: true,
|
|
186
|
+
mcpAdmin: true,
|
|
187
|
+
voice: true,
|
|
188
|
+
vision: true,
|
|
189
|
+
hooks: true,
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Cursor CLI engine capabilities
|
|
194
|
+
*/
|
|
195
|
+
const CURSOR_CLI_CAPABILITIES = {
|
|
196
|
+
mcp: {
|
|
197
|
+
supported: true,
|
|
198
|
+
scopes: ['global'],
|
|
199
|
+
canRead: true,
|
|
200
|
+
canWrite: false, // Read-only for now
|
|
201
|
+
},
|
|
202
|
+
rules: {
|
|
203
|
+
supported: true,
|
|
204
|
+
scopes: ['global', 'project'],
|
|
205
|
+
canRead: true,
|
|
206
|
+
canWrite: false,
|
|
207
|
+
},
|
|
208
|
+
commands: {
|
|
209
|
+
supported: true,
|
|
210
|
+
scopes: ['global', 'project'],
|
|
211
|
+
canRead: true,
|
|
212
|
+
canWrite: false,
|
|
213
|
+
},
|
|
214
|
+
skills: {
|
|
215
|
+
supported: true,
|
|
216
|
+
scopes: ['user', 'project'],
|
|
217
|
+
canRead: true,
|
|
218
|
+
canWrite: false,
|
|
219
|
+
},
|
|
220
|
+
plugins: {
|
|
221
|
+
supported: true,
|
|
222
|
+
scopes: ['user'],
|
|
223
|
+
canRead: true,
|
|
224
|
+
canWrite: false,
|
|
225
|
+
},
|
|
226
|
+
hooks: {
|
|
227
|
+
supported: false, // Cursor doesn't have hooks
|
|
228
|
+
scopes: [],
|
|
229
|
+
canRead: false,
|
|
230
|
+
canWrite: false,
|
|
231
|
+
},
|
|
232
|
+
features: {
|
|
233
|
+
provider: false, // Cursor doesn't have provider concept
|
|
234
|
+
subagents: false,
|
|
235
|
+
a2a: false,
|
|
236
|
+
scheduledTasks: true, // Cursor can use scheduled tasks
|
|
237
|
+
mcpAdmin: true, // MCP Admin is useful for Cursor too
|
|
238
|
+
voice: true, // Voice input works with Cursor
|
|
239
|
+
vision: true,
|
|
240
|
+
hooks: false, // Cursor doesn't support hooks
|
|
241
|
+
},
|
|
242
|
+
};
|
|
243
|
+
// =============================================================================
|
|
244
|
+
// Engine Path Configurations
|
|
245
|
+
// =============================================================================
|
|
246
|
+
/**
|
|
247
|
+
* Get Claude SDK paths
|
|
248
|
+
*/
|
|
249
|
+
function getClaudeSdkPaths() {
|
|
250
|
+
const sdkDir = path.join(os.homedir(), '.claude');
|
|
251
|
+
return {
|
|
252
|
+
userConfigDir: sdkDir,
|
|
253
|
+
mcpConfigPath: path.join(sdkDir, 'mcp.json'),
|
|
254
|
+
rulesDir: path.join(sdkDir, 'rules'),
|
|
255
|
+
commandsDir: path.join(sdkDir, 'commands'),
|
|
256
|
+
skillsDir: path.join(sdkDir, 'skills'),
|
|
257
|
+
pluginsDir: path.join(sdkDir, 'plugins'),
|
|
258
|
+
projectsDataDir: path.join(sdkDir, 'projects'),
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Get Cursor CLI paths
|
|
263
|
+
*/
|
|
264
|
+
function getCursorCliPaths() {
|
|
265
|
+
const cursorDir = path.join(os.homedir(), '.cursor');
|
|
266
|
+
return {
|
|
267
|
+
userConfigDir: cursorDir,
|
|
268
|
+
mcpConfigPath: path.join(cursorDir, 'mcp.json'),
|
|
269
|
+
rulesDir: path.join(cursorDir, 'rules'),
|
|
270
|
+
commandsDir: path.join(cursorDir, 'commands'),
|
|
271
|
+
skillsDir: path.join(cursorDir, 'skills'),
|
|
272
|
+
builtinSkillsDir: path.join(cursorDir, 'skills-cursor'),
|
|
273
|
+
pluginsDir: path.join(cursorDir, 'plugins'),
|
|
274
|
+
projectsDataDir: path.join(cursorDir, 'projects'),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
// =============================================================================
|
|
278
|
+
// Engine Configuration Singleton
|
|
279
|
+
// =============================================================================
|
|
280
|
+
let _engineConfig = null;
|
|
281
|
+
/**
|
|
282
|
+
* Initialize engine configuration
|
|
283
|
+
* Called once at service startup
|
|
284
|
+
*/
|
|
285
|
+
function initializeEngine() {
|
|
286
|
+
if (_engineConfig) {
|
|
287
|
+
return _engineConfig;
|
|
288
|
+
}
|
|
289
|
+
const engineType = validateEngineType(detectEngineType());
|
|
290
|
+
if (engineType === 'cursor-cli') {
|
|
291
|
+
_engineConfig = {
|
|
292
|
+
engine: 'cursor-cli',
|
|
293
|
+
name: 'Cursor CLI',
|
|
294
|
+
capabilities: CURSOR_CLI_CAPABILITIES,
|
|
295
|
+
paths: getCursorCliPaths(),
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
_engineConfig = {
|
|
300
|
+
engine: 'claude-sdk',
|
|
301
|
+
name: 'Claude Agent SDK',
|
|
302
|
+
capabilities: CLAUDE_SDK_CAPABILITIES,
|
|
303
|
+
paths: getClaudeSdkPaths(),
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
return _engineConfig;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Get current engine configuration
|
|
310
|
+
* Throws if engine not initialized
|
|
311
|
+
*/
|
|
312
|
+
function getEngineConfig() {
|
|
313
|
+
if (!_engineConfig) {
|
|
314
|
+
return initializeEngine();
|
|
315
|
+
}
|
|
316
|
+
return _engineConfig;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Get engine type
|
|
320
|
+
*/
|
|
321
|
+
function getEngineType() {
|
|
322
|
+
return getEngineConfig().engine;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Check if current engine is Cursor CLI
|
|
326
|
+
*/
|
|
327
|
+
function isCursorEngine() {
|
|
328
|
+
return getEngineType() === 'cursor-cli';
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Check if current engine is Claude SDK
|
|
332
|
+
*/
|
|
333
|
+
function isClaudeEngine() {
|
|
334
|
+
return getEngineType() === 'claude-sdk';
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Check if a feature is supported by current engine
|
|
338
|
+
*/
|
|
339
|
+
function isFeatureSupported(feature) {
|
|
340
|
+
return getEngineConfig().capabilities.features[feature];
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Get engine paths
|
|
344
|
+
*/
|
|
345
|
+
function getEnginePaths() {
|
|
346
|
+
return getEngineConfig().paths;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Log engine configuration at startup
|
|
350
|
+
*/
|
|
351
|
+
function logEngineConfig() {
|
|
352
|
+
const config = getEngineConfig();
|
|
353
|
+
console.log('🔧 Engine Configuration:');
|
|
354
|
+
console.log(` Engine: ${config.engine}`);
|
|
355
|
+
console.log(` Name: ${config.name}`);
|
|
356
|
+
console.log(` Config Directory: ${config.paths.userConfigDir}`);
|
|
357
|
+
console.log(` Projects Data: ${config.paths.projectsDataDir}`);
|
|
358
|
+
console.log(` Features:`);
|
|
359
|
+
Object.entries(config.capabilities.features).forEach(([key, value]) => {
|
|
360
|
+
console.log(` - ${key}: ${value ? '✓' : '✗'}`);
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
// =============================================================================
|
|
364
|
+
// Project Path Utilities
|
|
365
|
+
// =============================================================================
|
|
366
|
+
/**
|
|
367
|
+
* Convert a project path to Cursor-style hash
|
|
368
|
+
* e.g., /Users/kongjie/projects/foo -> Users-kongjie-projects-foo
|
|
369
|
+
*/
|
|
370
|
+
function projectPathToHash(projectPath) {
|
|
371
|
+
// Remove leading slash and replace remaining slashes with dashes
|
|
372
|
+
return projectPath.replace(/^\//, '').replace(/\//g, '-');
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Get project data directory path
|
|
376
|
+
*/
|
|
377
|
+
function getProjectDataDir(projectPath) {
|
|
378
|
+
const hash = projectPathToHash(projectPath);
|
|
379
|
+
return path.join(getEnginePaths().projectsDataDir, hash);
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get project MCP tools directory
|
|
383
|
+
*/
|
|
384
|
+
function getProjectMcpDir(projectPath) {
|
|
385
|
+
return path.join(getProjectDataDir(projectPath), 'mcps');
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Get SDK directory name (backward compatible)
|
|
389
|
+
* @deprecated Use getEnginePaths().userConfigDir instead
|
|
390
|
+
*/
|
|
391
|
+
function getSdkDirName() {
|
|
392
|
+
return isCursorEngine() ? '.cursor' : '.claude';
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Get SDK directory path (backward compatible)
|
|
396
|
+
* @deprecated Use getEnginePaths().userConfigDir instead
|
|
397
|
+
*/
|
|
398
|
+
function getSdkDir() {
|
|
399
|
+
return getEnginePaths().userConfigDir;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Get projects directory (backward compatible)
|
|
403
|
+
* @deprecated Use getEnginePaths().projectsDataDir instead
|
|
404
|
+
*/
|
|
405
|
+
function getProjectsDir() {
|
|
406
|
+
return getEnginePaths().projectsDataDir;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Get commands directory (backward compatible)
|
|
410
|
+
* @deprecated Use getEnginePaths().commandsDir instead
|
|
411
|
+
*/
|
|
412
|
+
function getCommandsDir() {
|
|
413
|
+
return getEnginePaths().commandsDir;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Get skills directory (backward compatible)
|
|
417
|
+
* @deprecated Use getEnginePaths().skillsDir instead
|
|
418
|
+
*/
|
|
419
|
+
function getSkillsDir() {
|
|
420
|
+
return getEnginePaths().skillsDir;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Get plugins directory (backward compatible)
|
|
424
|
+
* @deprecated Use getEnginePaths().pluginsDir instead
|
|
425
|
+
*/
|
|
426
|
+
function getPluginsDir() {
|
|
427
|
+
return getEnginePaths().pluginsDir;
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=engineConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engineConfig.js","sourceRoot":"","sources":["../../src/config/engineConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration test: verify we can get supported models via Claude Agent SDK's
|
|
3
|
+
* Query.supportedModels(). Requires SDK to initialize a session (minimal query)
|
|
4
|
+
* then we call supportedModels() and abort.
|
|
5
|
+
*
|
|
6
|
+
* Run with API key to verify live: ANTHROPIC_API_KEY=sk-... pnpm test:run src/engines/claude/__tests__/supportedModels.test.ts
|
|
7
|
+
* Or put ANTHROPIC_API_KEY in backend/.env (dotenv is loaded below).
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=supportedModels.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportedModels.test.d.ts","sourceRoot":"","sources":["../../../../src/engines/claude/__tests__/supportedModels.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Integration test: verify we can get supported models via Claude Agent SDK's
|
|
4
|
+
* Query.supportedModels(). Requires SDK to initialize a session (minimal query)
|
|
5
|
+
* then we call supportedModels() and abort.
|
|
6
|
+
*
|
|
7
|
+
* Run with API key to verify live: ANTHROPIC_API_KEY=sk-... pnpm test:run src/engines/claude/__tests__/supportedModels.test.ts
|
|
8
|
+
* Or put ANTHROPIC_API_KEY in backend/.env (dotenv is loaded below).
|
|
9
|
+
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const dotenv_1 = require("dotenv");
|
|
16
|
+
(0, dotenv_1.config)({ path: path_1.default.resolve(process.cwd(), '.env') });
|
|
17
|
+
const vitest_1 = require("vitest");
|
|
18
|
+
const claude_agent_sdk_1 = require("@anthropic-ai/claude-agent-sdk");
|
|
19
|
+
(0, vitest_1.describe)('Claude Agent SDK supportedModels()', () => {
|
|
20
|
+
const hasApiKey = !!(process.env.ANTHROPIC_API_KEY ||
|
|
21
|
+
process.env.ANTHROPIC_AUTH_TOKEN);
|
|
22
|
+
(0, vitest_1.beforeAll)(() => {
|
|
23
|
+
if (!hasApiKey) {
|
|
24
|
+
console.warn('[supportedModels.test] No ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN – skipping live SDK test');
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.it)('should return model list from SDK Query.supportedModels() when API key is set', async () => {
|
|
28
|
+
if (!hasApiKey) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const abortController = new AbortController();
|
|
32
|
+
const timeoutMs = 25_000;
|
|
33
|
+
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('supportedModels() timeout')), timeoutMs));
|
|
34
|
+
const q = (0, claude_agent_sdk_1.query)({
|
|
35
|
+
prompt: '.',
|
|
36
|
+
options: {
|
|
37
|
+
abortController,
|
|
38
|
+
cwd: process.cwd(),
|
|
39
|
+
allowedTools: ['Read'],
|
|
40
|
+
maxTurns: 1,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
// supportedModels() waits on Query's internal "initialization" promise.
|
|
44
|
+
// Initialization is triggered when the session starts (first iteration).
|
|
45
|
+
const modelsPromise = q.supportedModels();
|
|
46
|
+
// Start iteration so the SDK starts the CLI and sends init; then we get models.
|
|
47
|
+
const iter = q[Symbol.asyncIterator]();
|
|
48
|
+
const firstResultPromise = iter.next();
|
|
49
|
+
const models = await Promise.race([
|
|
50
|
+
Promise.all([modelsPromise, firstResultPromise]).then(([models]) => models),
|
|
51
|
+
timeoutPromise,
|
|
52
|
+
]);
|
|
53
|
+
abortController.abort();
|
|
54
|
+
(0, vitest_1.expect)(Array.isArray(models)).toBe(true);
|
|
55
|
+
(0, vitest_1.expect)(models.length).toBeGreaterThan(0);
|
|
56
|
+
for (const m of models) {
|
|
57
|
+
(0, vitest_1.expect)(m).toHaveProperty('value');
|
|
58
|
+
(0, vitest_1.expect)(m).toHaveProperty('displayName');
|
|
59
|
+
(0, vitest_1.expect)(m).toHaveProperty('description');
|
|
60
|
+
(0, vitest_1.expect)(typeof m.value).toBe('string');
|
|
61
|
+
(0, vitest_1.expect)(typeof m.displayName).toBe('string');
|
|
62
|
+
}
|
|
63
|
+
console.log(`[supportedModels.test] Got ${models.length} models:`, models.map((m) => ({ value: m.value, displayName: m.displayName })));
|
|
64
|
+
}, { timeout: 30_000 });
|
|
65
|
+
(0, vitest_1.it)('should map SDK ModelInfo to engine ModelInfo shape', () => {
|
|
66
|
+
const sdkModels = [
|
|
67
|
+
{ value: 'claude-sonnet-4-20250514', displayName: 'Claude 4 Sonnet', description: 'Balanced' },
|
|
68
|
+
{ value: 'claude-opus-4-20250514', displayName: 'Claude 4 Opus', description: 'Most capable' },
|
|
69
|
+
];
|
|
70
|
+
const toEngineModel = (m) => ({
|
|
71
|
+
id: m.value,
|
|
72
|
+
name: m.displayName,
|
|
73
|
+
isVision: true,
|
|
74
|
+
isThinking: (m.displayName.toLowerCase().includes('thinking')),
|
|
75
|
+
description: m.description,
|
|
76
|
+
});
|
|
77
|
+
const engineModels = sdkModels.map(toEngineModel);
|
|
78
|
+
(0, vitest_1.expect)(engineModels).toHaveLength(2);
|
|
79
|
+
(0, vitest_1.expect)(engineModels[0]).toEqual({
|
|
80
|
+
id: 'claude-sonnet-4-20250514',
|
|
81
|
+
name: 'Claude 4 Sonnet',
|
|
82
|
+
isVision: true,
|
|
83
|
+
isThinking: false,
|
|
84
|
+
description: 'Balanced',
|
|
85
|
+
});
|
|
86
|
+
(0, vitest_1.expect)(engineModels[1].name).toBe('Claude 4 Opus');
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=supportedModels.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportedModels.test.js","sourceRoot":"","sources":["../../../../src/engines/claude/__tests__/supportedModels.test.ts"],"names":[],"mappings":"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"}
|