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.
Files changed (360) hide show
  1. package/bin/agentstudio.js +44 -4
  2. package/bin/agentstudio.js.map +1 -1
  3. package/bin/serviceManager.d.ts.map +1 -1
  4. package/bin/serviceManager.js +312 -28
  5. package/bin/serviceManager.js.map +1 -1
  6. package/config/engineConfig.d.ts +96 -0
  7. package/config/engineConfig.d.ts.map +1 -0
  8. package/config/engineConfig.js +429 -0
  9. package/config/engineConfig.js.map +1 -0
  10. package/engines/claude/__tests__/supportedModels.test.d.ts +10 -0
  11. package/engines/claude/__tests__/supportedModels.test.d.ts.map +1 -0
  12. package/engines/claude/__tests__/supportedModels.test.js +89 -0
  13. package/engines/claude/__tests__/supportedModels.test.js.map +1 -0
  14. package/engines/claude/aguiAdapter.d.ts +101 -0
  15. package/engines/claude/aguiAdapter.d.ts.map +1 -0
  16. package/engines/claude/aguiAdapter.js +382 -0
  17. package/engines/claude/aguiAdapter.js.map +1 -0
  18. package/engines/claude/claudeEngine.d.ts +42 -0
  19. package/engines/claude/claudeEngine.d.ts.map +1 -0
  20. package/engines/claude/claudeEngine.js +325 -0
  21. package/engines/claude/claudeEngine.js.map +1 -0
  22. package/engines/claude/index.d.ts +8 -0
  23. package/engines/claude/index.d.ts.map +1 -0
  24. package/engines/claude/index.js +14 -0
  25. package/engines/claude/index.js.map +1 -0
  26. package/engines/cursor/__tests__/a2aAdapter.test.d.ts +6 -0
  27. package/engines/cursor/__tests__/a2aAdapter.test.d.ts.map +1 -0
  28. package/engines/cursor/__tests__/a2aAdapter.test.js +376 -0
  29. package/engines/cursor/__tests__/a2aAdapter.test.js.map +1 -0
  30. package/engines/cursor/a2aAdapter.d.ts +180 -0
  31. package/engines/cursor/a2aAdapter.d.ts.map +1 -0
  32. package/engines/cursor/a2aAdapter.js +405 -0
  33. package/engines/cursor/a2aAdapter.js.map +1 -0
  34. package/engines/cursor/aguiAdapter.d.ts +97 -0
  35. package/engines/cursor/aguiAdapter.d.ts.map +1 -0
  36. package/engines/cursor/aguiAdapter.js +507 -0
  37. package/engines/cursor/aguiAdapter.js.map +1 -0
  38. package/engines/cursor/cursorEngine.d.ts +68 -0
  39. package/engines/cursor/cursorEngine.d.ts.map +1 -0
  40. package/engines/cursor/cursorEngine.js +465 -0
  41. package/engines/cursor/cursorEngine.js.map +1 -0
  42. package/engines/cursor/index.d.ts +11 -0
  43. package/engines/cursor/index.d.ts.map +1 -0
  44. package/engines/cursor/index.js +21 -0
  45. package/engines/cursor/index.js.map +1 -0
  46. package/engines/engineManager.d.ts +80 -0
  47. package/engines/engineManager.d.ts.map +1 -0
  48. package/engines/engineManager.js +137 -0
  49. package/engines/engineManager.js.map +1 -0
  50. package/engines/index.d.ts +26 -0
  51. package/engines/index.d.ts.map +1 -0
  52. package/engines/index.js +81 -0
  53. package/engines/index.js.map +1 -0
  54. package/engines/types.d.ts +319 -0
  55. package/engines/types.d.ts.map +1 -0
  56. package/engines/types.js +69 -0
  57. package/engines/types.js.map +1 -0
  58. package/index.d.ts.map +1 -1
  59. package/index.js +139 -16
  60. package/index.js.map +1 -1
  61. package/middleware/auth.d.ts.map +1 -1
  62. package/middleware/auth.js +4 -0
  63. package/middleware/auth.js.map +1 -1
  64. package/package.json +7 -1
  65. package/public/assets/AgentsPage-D462iGRy.js +10 -0
  66. package/public/assets/{Button-BoiVlafj.js → Button-B_6lGF64.js} +1 -1
  67. package/public/assets/ChatPage-NjuRQPaL.js +478 -0
  68. package/public/assets/{CommandForm-Se4iemMp.js → CommandForm-DwGvE9A_.js} +1 -1
  69. package/public/assets/CommandsPage-DeUS8fhJ.js +1 -0
  70. package/public/assets/CursorConfigPage-Bl1Blrbr.js +1 -0
  71. package/public/assets/{DashboardPage-DbCVzPKz.js → DashboardPage-DH-2iuqf.js} +1 -1
  72. package/public/assets/EngineGate-DxTYx9wb.js +1 -0
  73. package/public/assets/{FileBrowser-DcoBWzKK.js → FileBrowser-CeGsJnUL.js} +5 -5
  74. package/public/assets/{FileExplorer-B41BB0LM.js → FileExplorer-x5R0Tcmk.js} +1 -1
  75. package/public/assets/GeneralSettingsPage-lhNEJQD_.js +1 -0
  76. package/public/assets/HooksPage-9fingjdz.js +1 -0
  77. package/public/assets/LandingPage-BAzi8PDo.js +1 -0
  78. package/public/assets/LoginPage-kQ_NWy8p.js +16 -0
  79. package/public/assets/McpAdminSettingsPage-DQHpWHRC.js +7 -0
  80. package/public/assets/McpPage-DLHfmhSJ.js +20 -0
  81. package/public/assets/{MemorySettingsPage-DYSuz-hU.js → MemorySettingsPage-CRIPja9X.js} +1 -1
  82. package/public/assets/ModelsPage-Bb5vSsuc.js +1 -0
  83. package/public/assets/PluginsPage-BhKM7gV7.js +12 -0
  84. package/public/assets/ProjectSelector-Cbct6pnn.js +1 -0
  85. package/public/assets/ProjectsPage-lQo7-7dt.js +21 -0
  86. package/public/assets/RulesPage-BRnB7__3.js +1 -0
  87. package/public/assets/ScheduledTasksPage-CZiABTSb.js +1 -0
  88. package/public/assets/SettingsLayout-BfG7ftoT.js +1 -0
  89. package/public/assets/SkillsPage-CL6MKxQ9.js +18 -0
  90. package/public/assets/{SubagentForm-C0R084ja.js → SubagentForm-BzzeWg0W.js} +2 -2
  91. package/public/assets/{SubagentsPage-BKFNmqxg.js → SubagentsPage-DhFP2kDE.js} +1 -1
  92. package/public/assets/SystemInfoPage-CFHUN3j8.js +1 -0
  93. package/public/assets/{TelemetrySettingsPage-Ck2btMol.js → TelemetrySettingsPage-BcZFVBXN.js} +1 -1
  94. package/public/assets/{ToastTestPage-B79DFhqI.js → ToastTestPage-BtGnZdyk.js} +1 -1
  95. package/public/assets/{ToolsList-Kfxwp80g.js → ToolsList-CTsQr53G.js} +1 -1
  96. package/public/assets/{UnifiedToolSelector-CkafUbz3.js → UnifiedToolSelector-BP6fuyzG.js} +1 -1
  97. package/public/assets/VersionSettingsPage-DjOjyL3X.js +5 -0
  98. package/public/assets/VoiceSettingsPage-d3l9AWBn.js +1 -0
  99. package/public/assets/WebSocketTunnelPage-CfHtJR9r.js +1 -0
  100. package/public/assets/_basePickBy-Bac3af5O.js +1 -0
  101. package/public/assets/{_baseUniq-COj5YnAO.js → _baseUniq-Dvh9sZ-T.js} +1 -1
  102. package/public/assets/{agents-3mB536QF.js → agents-KlPdWQ8K.js} +1 -1
  103. package/public/assets/arc-CRR5EPpK.js +1 -0
  104. package/public/assets/{architectureDiagram-VXUJARFQ-DD1BwT1T.js → architectureDiagram-VXUJARFQ-Ct1p8kmV.js} +1 -1
  105. package/public/assets/{blockDiagram-VD42YOAC-DFKUIZc6.js → blockDiagram-VD42YOAC-CX_8YiYn.js} +1 -1
  106. package/public/assets/{c4Diagram-YG6GDRKO-B0VVIIvh.js → c4Diagram-YG6GDRKO-BIBVWIY4.js} +1 -1
  107. package/public/assets/channel-CPs-2Y_m.js +1 -0
  108. package/public/assets/{chunk-4BX2VUAB-DM8J7YO9.js → chunk-4BX2VUAB-CQNNXsb5.js} +1 -1
  109. package/public/assets/{chunk-55IACEB6-BjhdmGlM.js → chunk-55IACEB6-N_ZrGhOu.js} +1 -1
  110. package/public/assets/{chunk-B4BG7PRW-1RJ6n2xv.js → chunk-B4BG7PRW-CI6DkhbM.js} +1 -1
  111. package/public/assets/{chunk-DI55MBZ5-1-EHSO67.js → chunk-DI55MBZ5-Dgj-Eo9U.js} +1 -1
  112. package/public/assets/{chunk-FMBD7UC4-DV3SMJK_.js → chunk-FMBD7UC4-o4B0HzSK.js} +1 -1
  113. package/public/assets/{chunk-QN33PNHL-IlsCTdDq.js → chunk-QN33PNHL-DXlfdPIk.js} +1 -1
  114. package/public/assets/{chunk-QZHKN3VN-DJXs-Fqo.js → chunk-QZHKN3VN-ZCBUGD7e.js} +1 -1
  115. package/public/assets/{chunk-TZMSLE5B-BxHO9wa1.js → chunk-TZMSLE5B-N3lZ106d.js} +1 -1
  116. package/public/assets/classDiagram-2ON5EDUG-DCwNRxvC.js +1 -0
  117. package/public/assets/classDiagram-v2-WZHVMYZB-DCwNRxvC.js +1 -0
  118. package/public/assets/clone-C3DcKvhB.js +1 -0
  119. package/public/assets/{cose-bilkent-S5V4N54A-BVJXoW_K.js → cose-bilkent-S5V4N54A-Crc39J9q.js} +1 -1
  120. package/public/assets/{dagre-6UL2VRFP-DHDnVshA.js → dagre-6UL2VRFP-nC3WLCf7.js} +1 -1
  121. package/public/assets/{diagram-PSM6KHXK-40qGxDeg.js → diagram-PSM6KHXK-B5DQIDQ3.js} +1 -1
  122. package/public/assets/diagram-QEK2KX5R-BccDOQuz.js +43 -0
  123. package/public/assets/{diagram-S2PKOQOG-D7AX72a5.js → diagram-S2PKOQOG-D-Cv16WE.js} +1 -1
  124. package/public/assets/{erDiagram-Q2GNP2WA-BHsgeBpL.js → erDiagram-Q2GNP2WA-Dr0ZgvnS.js} +1 -1
  125. package/public/assets/{flowDiagram-NV44I4VS-BYqChOSE.js → flowDiagram-NV44I4VS-DGbbfVi5.js} +1 -1
  126. package/public/assets/{ganttDiagram-LVOFAZNH-CZFFSLKX.js → ganttDiagram-LVOFAZNH-C-3Wnf96.js} +1 -1
  127. package/public/assets/{gitGraphDiagram-NY62KEGX-C5Bgrf0J.js → gitGraphDiagram-NY62KEGX--Q8whT5z.js} +1 -1
  128. package/public/assets/{graph-BP5lFRBg.js → graph-CO1DMS2E.js} +1 -1
  129. package/public/assets/{index-BEPv9Bqe.js → index-B5hSSnK3.js} +58 -58
  130. package/public/assets/index-gbHlIp96.css +1 -0
  131. package/public/assets/infoDiagram-F6ZHWCRC-DSR9cM2B.js +2 -0
  132. package/public/assets/{journeyDiagram-XKPGCS4Q--abC1RHz.js → journeyDiagram-XKPGCS4Q-Cc00zHNt.js} +1 -1
  133. package/public/assets/{kanban-definition-3W4ZIXB7-BJeChfWu.js → kanban-definition-3W4ZIXB7-BF_gHshF.js} +6 -6
  134. package/public/assets/{layout-DjAix4WK.js → layout-BxoLV88o.js} +1 -1
  135. package/public/assets/{linear-Cw0z8VNY.js → linear-Y8e2e012.js} +1 -1
  136. package/public/assets/{mindmap-definition-VGOIOE7T-U_T9xIUk.js → mindmap-definition-VGOIOE7T-CzpuQA4p.js} +1 -1
  137. package/public/assets/{pieDiagram-ADFJNKIX-B0mT9OgH.js → pieDiagram-ADFJNKIX-B22MhIcy.js} +2 -2
  138. package/public/assets/{quadrantDiagram-AYHSOK5B-BWdlgO0u.js → quadrantDiagram-AYHSOK5B-CTT9bIA8.js} +1 -1
  139. package/public/assets/{requirementDiagram-UZGBJVZJ-B-8LxsGB.js → requirementDiagram-UZGBJVZJ-B_vjXDH9.js} +1 -1
  140. package/public/assets/{sankeyDiagram-TZEHDZUN-OXuxkgGA.js → sankeyDiagram-TZEHDZUN-CKfZ4633.js} +1 -1
  141. package/public/assets/{sequenceDiagram-WL72ISMW-Bt5twlzi.js → sequenceDiagram-WL72ISMW-BmTPN6j6.js} +1 -1
  142. package/public/assets/{stateDiagram-FKZM4ZOC-Dmph7TeW.js → stateDiagram-FKZM4ZOC-y2fQE1C7.js} +1 -1
  143. package/public/assets/stateDiagram-v2-4FDKWEC3-C4CM6z52.js +1 -0
  144. package/public/assets/{table-DjMdAdjH.js → table-BJUz-ck5.js} +1 -1
  145. package/public/assets/{timeline-definition-IT6M3QCI-CcV8nyIH.js → timeline-definition-IT6M3QCI-DsXlR68n.js} +1 -1
  146. package/public/assets/{tools-BAI9XHGS.js → tools-BZTR2NP1.js} +1 -1
  147. package/public/assets/{treemap-KMMF4GRG-DBuwkj4f.js → treemap-KMMF4GRG-Cecs9uxX.js} +1 -1
  148. package/public/assets/{ui-components-DaGtjl0g.js → ui-components-DjgDPiqV.js} +153 -128
  149. package/public/assets/useAgents-8KXN6U61.js +2 -0
  150. package/public/assets/{useClaudeVersions-Cy71v4HE.js → useClaudeVersions-DicHLV6A.js} +1 -1
  151. package/public/assets/useCommands-DbSH48ba.js +1 -0
  152. package/public/assets/{useProjects-XgfgISgV.js → useProjects-Bbh6hJMM.js} +1 -1
  153. package/public/assets/{useSessions-CQgq4d84.js → useSessions-DOa4-xiB.js} +1 -1
  154. package/public/assets/{xychartDiagram-PRI3JC2R-Bo9K-U2S.js → xychartDiagram-PRI3JC2R-C2IWhyM7.js} +1 -1
  155. package/public/index.html +5 -5
  156. package/public/wechat-qr-code.png +0 -0
  157. package/routes/a2a.d.ts +7 -0
  158. package/routes/a2a.d.ts.map +1 -1
  159. package/routes/a2a.js +193 -21
  160. package/routes/a2a.js.map +1 -1
  161. package/routes/agents.d.ts.map +1 -1
  162. package/routes/agents.js +45 -2
  163. package/routes/agents.js.map +1 -1
  164. package/routes/agui.d.ts +16 -0
  165. package/routes/agui.d.ts.map +1 -0
  166. package/routes/agui.js +520 -0
  167. package/routes/agui.js.map +1 -0
  168. package/routes/commands.d.ts.map +1 -1
  169. package/routes/commands.js +35 -3
  170. package/routes/commands.js.map +1 -1
  171. package/routes/cursorA2a.d.ts +18 -0
  172. package/routes/cursorA2a.d.ts.map +1 -0
  173. package/routes/cursorA2a.js +393 -0
  174. package/routes/cursorA2a.js.map +1 -0
  175. package/routes/engine.d.ts +12 -0
  176. package/routes/engine.d.ts.map +1 -0
  177. package/routes/engine.js +178 -0
  178. package/routes/engine.js.map +1 -0
  179. package/routes/gitVersions.d.ts +10 -0
  180. package/routes/gitVersions.d.ts.map +1 -0
  181. package/routes/gitVersions.js +147 -0
  182. package/routes/gitVersions.js.map +1 -0
  183. package/routes/hooks.d.ts +11 -0
  184. package/routes/hooks.d.ts.map +1 -0
  185. package/routes/hooks.js +303 -0
  186. package/routes/hooks.js.map +1 -0
  187. package/routes/mcp.d.ts.map +1 -1
  188. package/routes/mcp.js +28 -3
  189. package/routes/mcp.js.map +1 -1
  190. package/routes/plugins.d.ts.map +1 -1
  191. package/routes/plugins.js +317 -4
  192. package/routes/plugins.js.map +1 -1
  193. package/routes/rules.d.ts +9 -0
  194. package/routes/rules.d.ts.map +1 -0
  195. package/routes/rules.js +470 -0
  196. package/routes/rules.js.map +1 -0
  197. package/routes/sessions.d.ts.map +1 -1
  198. package/routes/sessions.js +64 -30
  199. package/routes/sessions.js.map +1 -1
  200. package/routes/speechToText.d.ts +8 -0
  201. package/routes/speechToText.d.ts.map +1 -0
  202. package/routes/speechToText.js +216 -0
  203. package/routes/speechToText.js.map +1 -0
  204. package/schemas/a2a.d.ts +2 -2
  205. package/services/__tests__/agentImporter.test.d.ts +5 -0
  206. package/services/__tests__/agentImporter.test.d.ts.map +1 -0
  207. package/services/__tests__/agentImporter.test.js +379 -0
  208. package/services/__tests__/agentImporter.test.js.map +1 -0
  209. package/services/__tests__/marketplaceUpdateService.test.d.ts +5 -0
  210. package/services/__tests__/marketplaceUpdateService.test.d.ts.map +1 -0
  211. package/services/__tests__/marketplaceUpdateService.test.js +227 -0
  212. package/services/__tests__/marketplaceUpdateService.test.js.map +1 -0
  213. package/services/__tests__/pluginInstaller.test.js +172 -0
  214. package/services/__tests__/pluginInstaller.test.js.map +1 -1
  215. package/services/a2a/__tests__/agentCardService.test.js +224 -0
  216. package/services/a2a/__tests__/agentCardService.test.js.map +1 -1
  217. package/services/a2a/__tests__/cursorA2aService.test.d.ts +6 -0
  218. package/services/a2a/__tests__/cursorA2aService.test.d.ts.map +1 -0
  219. package/services/a2a/__tests__/cursorA2aService.test.js +359 -0
  220. package/services/a2a/__tests__/cursorA2aService.test.js.map +1 -0
  221. package/services/a2a/agentCardService.d.ts +22 -0
  222. package/services/a2a/agentCardService.d.ts.map +1 -1
  223. package/services/a2a/agentCardService.js +246 -0
  224. package/services/a2a/agentCardService.js.map +1 -1
  225. package/services/a2a/cursorA2aService.d.ts +126 -0
  226. package/services/a2a/cursorA2aService.d.ts.map +1 -0
  227. package/services/a2a/cursorA2aService.js +336 -0
  228. package/services/a2a/cursorA2aService.js.map +1 -0
  229. package/services/agentImporter.d.ts +62 -0
  230. package/services/agentImporter.d.ts.map +1 -0
  231. package/services/agentImporter.js +335 -0
  232. package/services/agentImporter.js.map +1 -0
  233. package/services/cursorConfigService.d.ts +75 -0
  234. package/services/cursorConfigService.d.ts.map +1 -0
  235. package/services/cursorConfigService.js +538 -0
  236. package/services/cursorConfigService.js.map +1 -0
  237. package/services/gitVersionService.d.ts +52 -0
  238. package/services/gitVersionService.d.ts.map +1 -0
  239. package/services/gitVersionService.js +377 -0
  240. package/services/gitVersionService.js.map +1 -0
  241. package/services/marketplaceUpdateService.d.ts +66 -0
  242. package/services/marketplaceUpdateService.d.ts.map +1 -0
  243. package/services/marketplaceUpdateService.js +364 -0
  244. package/services/marketplaceUpdateService.js.map +1 -0
  245. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.d.ts +5 -0
  246. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.d.ts.map +1 -0
  247. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.js +429 -0
  248. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.js.map +1 -0
  249. package/services/mcpAdmin/tools/index.d.ts +1 -0
  250. package/services/mcpAdmin/tools/index.d.ts.map +1 -1
  251. package/services/mcpAdmin/tools/index.js +5 -1
  252. package/services/mcpAdmin/tools/index.js.map +1 -1
  253. package/services/mcpAdmin/tools/scheduledTaskTools.d.ts +64 -0
  254. package/services/mcpAdmin/tools/scheduledTaskTools.d.ts.map +1 -0
  255. package/services/mcpAdmin/tools/scheduledTaskTools.js +1002 -0
  256. package/services/mcpAdmin/tools/scheduledTaskTools.js.map +1 -0
  257. package/services/mcpAdmin/types.d.ts +1 -1
  258. package/services/mcpAdmin/types.d.ts.map +1 -1
  259. package/services/pluginInstaller.d.ts +55 -1
  260. package/services/pluginInstaller.d.ts.map +1 -1
  261. package/services/pluginInstaller.js +437 -13
  262. package/services/pluginInstaller.js.map +1 -1
  263. package/services/sessionEventBus.d.ts +67 -0
  264. package/services/sessionEventBus.d.ts.map +1 -0
  265. package/services/sessionEventBus.js +106 -0
  266. package/services/sessionEventBus.js.map +1 -0
  267. package/services/speechToText/__tests__/speechToText.test.d.ts +5 -0
  268. package/services/speechToText/__tests__/speechToText.test.d.ts.map +1 -0
  269. package/services/speechToText/__tests__/speechToText.test.js +208 -0
  270. package/services/speechToText/__tests__/speechToText.test.js.map +1 -0
  271. package/services/speechToText/index.d.ts +25 -0
  272. package/services/speechToText/index.d.ts.map +1 -0
  273. package/services/speechToText/index.js +228 -0
  274. package/services/speechToText/index.js.map +1 -0
  275. package/services/speechToText/providers/aliyun.d.ts +22 -0
  276. package/services/speechToText/providers/aliyun.d.ts.map +1 -0
  277. package/services/speechToText/providers/aliyun.js +185 -0
  278. package/services/speechToText/providers/aliyun.js.map +1 -0
  279. package/services/speechToText/providers/google.d.ts +24 -0
  280. package/services/speechToText/providers/google.d.ts.map +1 -0
  281. package/services/speechToText/providers/google.js +205 -0
  282. package/services/speechToText/providers/google.js.map +1 -0
  283. package/services/speechToText/providers/openaiCompatible.d.ts +22 -0
  284. package/services/speechToText/providers/openaiCompatible.d.ts.map +1 -0
  285. package/services/speechToText/providers/openaiCompatible.js +198 -0
  286. package/services/speechToText/providers/openaiCompatible.js.map +1 -0
  287. package/services/speechToText/providers/tencent.d.ts +23 -0
  288. package/services/speechToText/providers/tencent.d.ts.map +1 -0
  289. package/services/speechToText/providers/tencent.js +215 -0
  290. package/services/speechToText/providers/tencent.js.map +1 -0
  291. package/services/speechToText/types.d.ts +102 -0
  292. package/services/speechToText/types.d.ts.map +1 -0
  293. package/services/speechToText/types.js +43 -0
  294. package/services/speechToText/types.js.map +1 -0
  295. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts +8 -2
  296. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts.map +1 -1
  297. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js +215 -72
  298. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js.map +1 -1
  299. package/services/taskExecutor/taskWorker.js +9 -1
  300. package/services/taskExecutor/taskWorker.js.map +1 -1
  301. package/services/telemetry.js +1 -1
  302. package/types/a2a.d.ts +20 -0
  303. package/types/a2a.d.ts.map +1 -1
  304. package/types/engine.d.ts +314 -0
  305. package/types/engine.d.ts.map +1 -0
  306. package/types/engine.js +14 -0
  307. package/types/engine.js.map +1 -0
  308. package/types/hooks.d.ts +45 -0
  309. package/types/hooks.d.ts.map +1 -0
  310. package/types/hooks.js +9 -0
  311. package/types/hooks.js.map +1 -0
  312. package/types/plugins.d.ts +86 -2
  313. package/types/plugins.d.ts.map +1 -1
  314. package/types/plugins.js +1 -0
  315. package/types/plugins.js.map +1 -1
  316. package/types/rules.d.ts +51 -0
  317. package/types/rules.d.ts.map +1 -0
  318. package/types/rules.js +9 -0
  319. package/types/rules.js.map +1 -0
  320. package/utils/__tests__/cursorIdeAgentParser.test.d.ts +7 -0
  321. package/utils/__tests__/cursorIdeAgentParser.test.d.ts.map +1 -0
  322. package/utils/__tests__/cursorIdeAgentParser.test.js +289 -0
  323. package/utils/__tests__/cursorIdeAgentParser.test.js.map +1 -0
  324. package/utils/cursorCliHistoryParser.d.ts +58 -0
  325. package/utils/cursorCliHistoryParser.d.ts.map +1 -0
  326. package/utils/cursorCliHistoryParser.js +664 -0
  327. package/utils/cursorCliHistoryParser.js.map +1 -0
  328. package/utils/cursorIdeAgentParser.d.ts +49 -0
  329. package/utils/cursorIdeAgentParser.d.ts.map +1 -0
  330. package/utils/cursorIdeAgentParser.js +332 -0
  331. package/utils/cursorIdeAgentParser.js.map +1 -0
  332. package/public/assets/AgentsPage-gSnkPp2k.js +0 -10
  333. package/public/assets/ChatPage-BMrfVkpt.js +0 -471
  334. package/public/assets/CommandsPage-B6u4IO7L.js +0 -1
  335. package/public/assets/GeneralSettingsPage-BbEbWJUQ.js +0 -1
  336. package/public/assets/LandingPage-DFPm2d4Y.js +0 -1
  337. package/public/assets/LoginPage-D5kZJqhk.js +0 -16
  338. package/public/assets/McpAdminSettingsPage-D32iUEjH.js +0 -7
  339. package/public/assets/McpPage-QT4qs391.js +0 -20
  340. package/public/assets/PluginsPage-BotzuK9f.js +0 -1
  341. package/public/assets/ProjectSelector-DujNObqr.js +0 -1
  342. package/public/assets/ProjectsPage-CRWe6HPl.js +0 -21
  343. package/public/assets/ScheduledTasksPage-Beeurg-w.js +0 -1
  344. package/public/assets/SettingsLayout-BfkBUyI_.js +0 -1
  345. package/public/assets/SkillsPage-B59bAr6W.js +0 -18
  346. package/public/assets/SystemInfoPage-D89s7PjE.js +0 -1
  347. package/public/assets/VersionSettingsPage-CaB4PH6h.js +0 -5
  348. package/public/assets/WebSocketTunnelPage-Cbru_-hL.js +0 -1
  349. package/public/assets/_basePickBy-5fAM04Ra.js +0 -1
  350. package/public/assets/arc-C2gTU2ZR.js +0 -1
  351. package/public/assets/channel-DcVTcy-S.js +0 -1
  352. package/public/assets/classDiagram-2ON5EDUG-BXVT6Q7h.js +0 -1
  353. package/public/assets/classDiagram-v2-WZHVMYZB-BXVT6Q7h.js +0 -1
  354. package/public/assets/clone-Bp6orjIq.js +0 -1
  355. package/public/assets/diagram-QEK2KX5R-BfMGeeRo.js +0 -43
  356. package/public/assets/index-BgR-BTTw.css +0 -1
  357. package/public/assets/infoDiagram-F6ZHWCRC-C6OApgqf.js +0 -2
  358. package/public/assets/stateDiagram-v2-4FDKWEC3-DyE8O3Kx.js +0 -1
  359. package/public/assets/useAgents-D5EDAc_E.js +0 -2
  360. 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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"}