agentstudio 0.3.3 → 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 (371) 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 +178 -25
  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/routes/a2a.d.ts +7 -0
  157. package/routes/a2a.d.ts.map +1 -1
  158. package/routes/a2a.js +193 -21
  159. package/routes/a2a.js.map +1 -1
  160. package/routes/agents.d.ts.map +1 -1
  161. package/routes/agents.js +45 -2
  162. package/routes/agents.js.map +1 -1
  163. package/routes/agui.d.ts +16 -0
  164. package/routes/agui.d.ts.map +1 -0
  165. package/routes/agui.js +520 -0
  166. package/routes/agui.js.map +1 -0
  167. package/routes/commands.d.ts.map +1 -1
  168. package/routes/commands.js +35 -3
  169. package/routes/commands.js.map +1 -1
  170. package/routes/cursorA2a.d.ts +18 -0
  171. package/routes/cursorA2a.d.ts.map +1 -0
  172. package/routes/cursorA2a.js +393 -0
  173. package/routes/cursorA2a.js.map +1 -0
  174. package/routes/engine.d.ts +12 -0
  175. package/routes/engine.d.ts.map +1 -0
  176. package/routes/engine.js +178 -0
  177. package/routes/engine.js.map +1 -0
  178. package/routes/gitVersions.d.ts +10 -0
  179. package/routes/gitVersions.d.ts.map +1 -0
  180. package/routes/gitVersions.js +147 -0
  181. package/routes/gitVersions.js.map +1 -0
  182. package/routes/hooks.d.ts +11 -0
  183. package/routes/hooks.d.ts.map +1 -0
  184. package/routes/hooks.js +303 -0
  185. package/routes/hooks.js.map +1 -0
  186. package/routes/mcp.d.ts.map +1 -1
  187. package/routes/mcp.js +28 -3
  188. package/routes/mcp.js.map +1 -1
  189. package/routes/plugins.d.ts.map +1 -1
  190. package/routes/plugins.js +317 -4
  191. package/routes/plugins.js.map +1 -1
  192. package/routes/rules.d.ts +9 -0
  193. package/routes/rules.d.ts.map +1 -0
  194. package/routes/rules.js +470 -0
  195. package/routes/rules.js.map +1 -0
  196. package/routes/sessions.d.ts.map +1 -1
  197. package/routes/sessions.js +68 -32
  198. package/routes/sessions.js.map +1 -1
  199. package/routes/speechToText.d.ts +8 -0
  200. package/routes/speechToText.d.ts.map +1 -0
  201. package/routes/speechToText.js +216 -0
  202. package/routes/speechToText.js.map +1 -0
  203. package/schemas/a2a.d.ts +2 -2
  204. package/services/__tests__/agentImporter.test.d.ts +5 -0
  205. package/services/__tests__/agentImporter.test.d.ts.map +1 -0
  206. package/services/__tests__/agentImporter.test.js +379 -0
  207. package/services/__tests__/agentImporter.test.js.map +1 -0
  208. package/services/__tests__/marketplaceUpdateService.test.d.ts +5 -0
  209. package/services/__tests__/marketplaceUpdateService.test.d.ts.map +1 -0
  210. package/services/__tests__/marketplaceUpdateService.test.js +227 -0
  211. package/services/__tests__/marketplaceUpdateService.test.js.map +1 -0
  212. package/services/__tests__/pluginInstaller.test.js +172 -0
  213. package/services/__tests__/pluginInstaller.test.js.map +1 -1
  214. package/services/__tests__/projectMetadataStorage.test.js +19 -4
  215. package/services/__tests__/projectMetadataStorage.test.js.map +1 -1
  216. package/services/a2a/__tests__/agentCardService.test.js +224 -0
  217. package/services/a2a/__tests__/agentCardService.test.js.map +1 -1
  218. package/services/a2a/__tests__/cursorA2aService.test.d.ts +6 -0
  219. package/services/a2a/__tests__/cursorA2aService.test.d.ts.map +1 -0
  220. package/services/a2a/__tests__/cursorA2aService.test.js +359 -0
  221. package/services/a2a/__tests__/cursorA2aService.test.js.map +1 -0
  222. package/services/a2a/agentCardService.d.ts +22 -0
  223. package/services/a2a/agentCardService.d.ts.map +1 -1
  224. package/services/a2a/agentCardService.js +246 -0
  225. package/services/a2a/agentCardService.js.map +1 -1
  226. package/services/a2a/cursorA2aService.d.ts +126 -0
  227. package/services/a2a/cursorA2aService.d.ts.map +1 -0
  228. package/services/a2a/cursorA2aService.js +336 -0
  229. package/services/a2a/cursorA2aService.js.map +1 -0
  230. package/services/agentImporter.d.ts +62 -0
  231. package/services/agentImporter.d.ts.map +1 -0
  232. package/services/agentImporter.js +335 -0
  233. package/services/agentImporter.js.map +1 -0
  234. package/services/cursorConfigService.d.ts +75 -0
  235. package/services/cursorConfigService.d.ts.map +1 -0
  236. package/services/cursorConfigService.js +538 -0
  237. package/services/cursorConfigService.js.map +1 -0
  238. package/services/gitVersionService.d.ts +52 -0
  239. package/services/gitVersionService.d.ts.map +1 -0
  240. package/services/gitVersionService.js +377 -0
  241. package/services/gitVersionService.js.map +1 -0
  242. package/services/marketplaceUpdateService.d.ts +66 -0
  243. package/services/marketplaceUpdateService.d.ts.map +1 -0
  244. package/services/marketplaceUpdateService.js +364 -0
  245. package/services/marketplaceUpdateService.js.map +1 -0
  246. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.d.ts +5 -0
  247. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.d.ts.map +1 -0
  248. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.js +429 -0
  249. package/services/mcpAdmin/__tests__/scheduledTaskTools.test.js.map +1 -0
  250. package/services/mcpAdmin/tools/index.d.ts +1 -0
  251. package/services/mcpAdmin/tools/index.d.ts.map +1 -1
  252. package/services/mcpAdmin/tools/index.js +5 -1
  253. package/services/mcpAdmin/tools/index.js.map +1 -1
  254. package/services/mcpAdmin/tools/scheduledTaskTools.d.ts +64 -0
  255. package/services/mcpAdmin/tools/scheduledTaskTools.d.ts.map +1 -0
  256. package/services/mcpAdmin/tools/scheduledTaskTools.js +1002 -0
  257. package/services/mcpAdmin/tools/scheduledTaskTools.js.map +1 -0
  258. package/services/mcpAdmin/types.d.ts +1 -1
  259. package/services/mcpAdmin/types.d.ts.map +1 -1
  260. package/services/pluginInstaller.d.ts +55 -1
  261. package/services/pluginInstaller.d.ts.map +1 -1
  262. package/services/pluginInstaller.js +437 -13
  263. package/services/pluginInstaller.js.map +1 -1
  264. package/services/projectMetadataStorage.d.ts.map +1 -1
  265. package/services/projectMetadataStorage.js +4 -2
  266. package/services/projectMetadataStorage.js.map +1 -1
  267. package/services/sessionEventBus.d.ts +67 -0
  268. package/services/sessionEventBus.d.ts.map +1 -0
  269. package/services/sessionEventBus.js +106 -0
  270. package/services/sessionEventBus.js.map +1 -0
  271. package/services/sessionManager.d.ts.map +1 -1
  272. package/services/sessionManager.js +4 -2
  273. package/services/sessionManager.js.map +1 -1
  274. package/services/speechToText/__tests__/speechToText.test.d.ts +5 -0
  275. package/services/speechToText/__tests__/speechToText.test.d.ts.map +1 -0
  276. package/services/speechToText/__tests__/speechToText.test.js +208 -0
  277. package/services/speechToText/__tests__/speechToText.test.js.map +1 -0
  278. package/services/speechToText/index.d.ts +25 -0
  279. package/services/speechToText/index.d.ts.map +1 -0
  280. package/services/speechToText/index.js +228 -0
  281. package/services/speechToText/index.js.map +1 -0
  282. package/services/speechToText/providers/aliyun.d.ts +22 -0
  283. package/services/speechToText/providers/aliyun.d.ts.map +1 -0
  284. package/services/speechToText/providers/aliyun.js +185 -0
  285. package/services/speechToText/providers/aliyun.js.map +1 -0
  286. package/services/speechToText/providers/google.d.ts +24 -0
  287. package/services/speechToText/providers/google.d.ts.map +1 -0
  288. package/services/speechToText/providers/google.js +205 -0
  289. package/services/speechToText/providers/google.js.map +1 -0
  290. package/services/speechToText/providers/openaiCompatible.d.ts +22 -0
  291. package/services/speechToText/providers/openaiCompatible.d.ts.map +1 -0
  292. package/services/speechToText/providers/openaiCompatible.js +198 -0
  293. package/services/speechToText/providers/openaiCompatible.js.map +1 -0
  294. package/services/speechToText/providers/tencent.d.ts +23 -0
  295. package/services/speechToText/providers/tencent.d.ts.map +1 -0
  296. package/services/speechToText/providers/tencent.js +215 -0
  297. package/services/speechToText/providers/tencent.js.map +1 -0
  298. package/services/speechToText/types.d.ts +102 -0
  299. package/services/speechToText/types.d.ts.map +1 -0
  300. package/services/speechToText/types.js +43 -0
  301. package/services/speechToText/types.js.map +1 -0
  302. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts +8 -2
  303. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts.map +1 -1
  304. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js +215 -72
  305. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js.map +1 -1
  306. package/services/taskExecutor/taskWorker.js +9 -1
  307. package/services/taskExecutor/taskWorker.js.map +1 -1
  308. package/services/telemetry.js +1 -1
  309. package/types/a2a.d.ts +20 -0
  310. package/types/a2a.d.ts.map +1 -1
  311. package/types/engine.d.ts +314 -0
  312. package/types/engine.d.ts.map +1 -0
  313. package/types/engine.js +14 -0
  314. package/types/engine.js.map +1 -0
  315. package/types/hooks.d.ts +45 -0
  316. package/types/hooks.d.ts.map +1 -0
  317. package/types/hooks.js +9 -0
  318. package/types/hooks.js.map +1 -0
  319. package/types/plugins.d.ts +86 -2
  320. package/types/plugins.d.ts.map +1 -1
  321. package/types/plugins.js +1 -0
  322. package/types/plugins.js.map +1 -1
  323. package/types/rules.d.ts +51 -0
  324. package/types/rules.d.ts.map +1 -0
  325. package/types/rules.js +9 -0
  326. package/types/rules.js.map +1 -0
  327. package/utils/__tests__/cursorIdeAgentParser.test.d.ts +7 -0
  328. package/utils/__tests__/cursorIdeAgentParser.test.d.ts.map +1 -0
  329. package/utils/__tests__/cursorIdeAgentParser.test.js +289 -0
  330. package/utils/__tests__/cursorIdeAgentParser.test.js.map +1 -0
  331. package/utils/claudeUtils.d.ts +3 -1
  332. package/utils/claudeUtils.d.ts.map +1 -1
  333. package/utils/claudeUtils.js +26 -12
  334. package/utils/claudeUtils.js.map +1 -1
  335. package/utils/cursorCliHistoryParser.d.ts +58 -0
  336. package/utils/cursorCliHistoryParser.d.ts.map +1 -0
  337. package/utils/cursorCliHistoryParser.js +664 -0
  338. package/utils/cursorCliHistoryParser.js.map +1 -0
  339. package/utils/cursorIdeAgentParser.d.ts +49 -0
  340. package/utils/cursorIdeAgentParser.d.ts.map +1 -0
  341. package/utils/cursorIdeAgentParser.js +332 -0
  342. package/utils/cursorIdeAgentParser.js.map +1 -0
  343. package/public/assets/AgentsPage-gSnkPp2k.js +0 -10
  344. package/public/assets/ChatPage-BMrfVkpt.js +0 -471
  345. package/public/assets/CommandsPage-B6u4IO7L.js +0 -1
  346. package/public/assets/GeneralSettingsPage-BbEbWJUQ.js +0 -1
  347. package/public/assets/LandingPage-DFPm2d4Y.js +0 -1
  348. package/public/assets/LoginPage-D5kZJqhk.js +0 -16
  349. package/public/assets/McpAdminSettingsPage-D32iUEjH.js +0 -7
  350. package/public/assets/McpPage-QT4qs391.js +0 -20
  351. package/public/assets/PluginsPage-BotzuK9f.js +0 -1
  352. package/public/assets/ProjectSelector-DujNObqr.js +0 -1
  353. package/public/assets/ProjectsPage-CRWe6HPl.js +0 -21
  354. package/public/assets/ScheduledTasksPage-Beeurg-w.js +0 -1
  355. package/public/assets/SettingsLayout-BfkBUyI_.js +0 -1
  356. package/public/assets/SkillsPage-B59bAr6W.js +0 -18
  357. package/public/assets/SystemInfoPage-D89s7PjE.js +0 -1
  358. package/public/assets/VersionSettingsPage-CaB4PH6h.js +0 -5
  359. package/public/assets/WebSocketTunnelPage-Cbru_-hL.js +0 -1
  360. package/public/assets/_basePickBy-5fAM04Ra.js +0 -1
  361. package/public/assets/arc-C2gTU2ZR.js +0 -1
  362. package/public/assets/channel-DcVTcy-S.js +0 -1
  363. package/public/assets/classDiagram-2ON5EDUG-BXVT6Q7h.js +0 -1
  364. package/public/assets/classDiagram-v2-WZHVMYZB-BXVT6Q7h.js +0 -1
  365. package/public/assets/clone-Bp6orjIq.js +0 -1
  366. package/public/assets/diagram-QEK2KX5R-BfMGeeRo.js +0 -43
  367. package/public/assets/index-BgR-BTTw.css +0 -1
  368. package/public/assets/infoDiagram-F6ZHWCRC-C6OApgqf.js +0 -2
  369. package/public/assets/stateDiagram-v2-4FDKWEC3-DyE8O3Kx.js +0 -1
  370. package/public/assets/useAgents-D5EDAc_E.js +0 -2
  371. package/public/assets/useCommands-BgoCfyuu.js +0 -1
@@ -0,0 +1,465 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Engine Implementation
4
+ *
5
+ * Wraps Cursor CLI and outputs standardized AGUI events.
6
+ * Uses `cursor agent --print --output-format json` command.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.cursorEngine = exports.CursorEngine = void 0;
10
+ const child_process_1 = require("child_process");
11
+ const fs_1 = require("fs");
12
+ const uuid_1 = require("uuid");
13
+ const aguiAdapter_js_1 = require("./aguiAdapter.js");
14
+ const sessionUtils_js_1 = require("../../utils/sessionUtils.js");
15
+ // Cache for Cursor models
16
+ let cachedModels = null;
17
+ let modelsCacheTime = 0;
18
+ const MODEL_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
19
+ /**
20
+ * Find cursor command path
21
+ */
22
+ function findCursorCommand() {
23
+ const possiblePaths = [
24
+ process.env.CURSOR_CLI_PATH,
25
+ `${process.env.HOME}/.local/bin/cursor`, // Cursor Agent CLI default location
26
+ `${process.env.HOME}/.local/bin/agent`, // Direct agent binary
27
+ '/Applications/Cursor.app/Contents/Resources/app/bin/cursor',
28
+ '/usr/local/bin/cursor',
29
+ ];
30
+ for (const path of possiblePaths) {
31
+ if (!path)
32
+ continue;
33
+ if ((0, fs_1.existsSync)(path)) {
34
+ console.log(`[CursorEngine] Found cursor at: ${path}`);
35
+ return path;
36
+ }
37
+ }
38
+ // Try to find in PATH using which
39
+ try {
40
+ const result = (0, child_process_1.execSync)('which agent', { stdio: 'pipe' }).toString().trim();
41
+ if (result) {
42
+ console.log(`[CursorEngine] Found cursor in PATH: ${result}`);
43
+ return result;
44
+ }
45
+ }
46
+ catch {
47
+ // cursor not in PATH
48
+ }
49
+ console.warn('[CursorEngine] Cursor command not found, using default "agent"');
50
+ return 'agent';
51
+ }
52
+ /**
53
+ * Cursor Engine - Implements IAgentEngine for Cursor CLI
54
+ */
55
+ class CursorEngine {
56
+ type = 'cursor';
57
+ capabilities = {
58
+ mcp: {
59
+ supported: false, // Cursor uses its own tool system
60
+ },
61
+ skills: {
62
+ supported: true,
63
+ skillsPath: '.cursor/rules',
64
+ ruleFormat: 'markdown',
65
+ },
66
+ features: {
67
+ multiTurn: true,
68
+ thinking: true, // Depends on model
69
+ vision: true, // Via image URL in message
70
+ streaming: true,
71
+ subagents: false, // Cursor doesn't support Task tool
72
+ codeExecution: true,
73
+ },
74
+ permissionModes: ['bypassPermissions'], // --force only
75
+ ui: {
76
+ showMcpToolSelector: false, // Cursor uses its own tool system
77
+ showImageUpload: true, // Supported via image URL in message
78
+ showPermissionSelector: false, // Only bypassPermissions (--force)
79
+ showProviderSelector: false, // Cursor doesn't need provider selection
80
+ showModelSelector: true, // Models can be fetched via --list-models
81
+ showEnvVars: false, // Not supported
82
+ },
83
+ };
84
+ activeSessions = new Map();
85
+ /**
86
+ * Get supported models for Cursor engine
87
+ * Fetches from CLI cache or executes `cursor agent --list-models`
88
+ */
89
+ async getSupportedModels() {
90
+ return this.getSupportedModelsSync();
91
+ }
92
+ getSupportedModelsSync() {
93
+ // Check cache first
94
+ const now = Date.now();
95
+ if (cachedModels && (now - modelsCacheTime) < MODEL_CACHE_TTL) {
96
+ return cachedModels;
97
+ }
98
+ // Try to fetch from CLI
99
+ try {
100
+ const cursorCmd = findCursorCommand();
101
+ const output = (0, child_process_1.execSync)(`${cursorCmd} agent --list-models`, {
102
+ encoding: 'utf8',
103
+ timeout: 10000, // 10 second timeout
104
+ stdio: ['pipe', 'pipe', 'pipe'],
105
+ });
106
+ const models = this.parseModelList(output);
107
+ if (models.length > 0) {
108
+ cachedModels = models;
109
+ modelsCacheTime = now;
110
+ console.log(`[CursorEngine] Fetched ${models.length} models from CLI`);
111
+ return models;
112
+ }
113
+ }
114
+ catch (error) {
115
+ console.warn(`[CursorEngine] Failed to fetch models from CLI:`, error);
116
+ }
117
+ // Return cached or fallback models
118
+ if (cachedModels) {
119
+ return cachedModels;
120
+ }
121
+ // Fallback to hardcoded models
122
+ return this.getFallbackModels();
123
+ }
124
+ /**
125
+ * Parse model list from CLI output
126
+ */
127
+ parseModelList(output) {
128
+ const models = [];
129
+ const lines = output.split('\n');
130
+ // Skip header lines until we find model entries
131
+ // Format: "model-id - Model Name" or "model-id - Model Name (default)" or "(current)"
132
+ // Note: Model IDs can contain dots (e.g., gpt-5.2-codex), and (default)/(current) are separated by 2+ spaces
133
+ const modelLineRegex = /^([a-z0-9.-]+)\s+-\s+(.+?)(?:\s{2,}\((default|current)\))?$/i;
134
+ for (const line of lines) {
135
+ const trimmed = line.trim();
136
+ const match = trimmed.match(modelLineRegex);
137
+ if (match) {
138
+ const [, id, name] = match;
139
+ const cleanName = name.trim();
140
+ const isThinking = cleanName.toLowerCase().includes('thinking');
141
+ const isVision = !cleanName.toLowerCase().includes('codex'); // Codex models are typically code-only
142
+ models.push({
143
+ id,
144
+ name: cleanName,
145
+ isVision,
146
+ isThinking,
147
+ });
148
+ }
149
+ }
150
+ return models;
151
+ }
152
+ /**
153
+ * Fallback models when CLI is unavailable
154
+ */
155
+ getFallbackModels() {
156
+ return [
157
+ { id: 'auto', name: 'Auto', isVision: true },
158
+ { id: 'sonnet-4.5', name: 'Claude 4.5 Sonnet', isVision: true },
159
+ { id: 'sonnet-4.5-thinking', name: 'Claude 4.5 Sonnet (Thinking)', isVision: true, isThinking: true },
160
+ { id: 'opus-4.5', name: 'Claude 4.5 Opus', isVision: true },
161
+ { id: 'opus-4.5-thinking', name: 'Claude 4.5 Opus (Thinking)', isVision: true, isThinking: true },
162
+ { id: 'gpt-5.2', name: 'GPT 5.2', isVision: true },
163
+ { id: 'gemini-3-pro', name: 'Gemini 3 Pro', isVision: true },
164
+ { id: 'gemini-3-flash', name: 'Gemini 3 Flash', isVision: true },
165
+ ];
166
+ }
167
+ /**
168
+ * Force refresh models from CLI (bypasses cache)
169
+ */
170
+ async refreshModels() {
171
+ cachedModels = null;
172
+ modelsCacheTime = 0;
173
+ return this.getSupportedModels();
174
+ }
175
+ /**
176
+ * Get active session count
177
+ */
178
+ getActiveSessionCount() {
179
+ return this.activeSessions.size;
180
+ }
181
+ /**
182
+ * Process images for Cursor CLI
183
+ * Since Cursor CLI doesn't support direct image input via stdin,
184
+ * we save images to a hidden directory and replace placeholders with @path references
185
+ *
186
+ * @param message - Original message with [imageN] placeholders
187
+ * @param images - Array of image data
188
+ * @param workspace - Working directory
189
+ * @returns Processed message with @path references
190
+ */
191
+ processImagesForCursor(message, images, workspace) {
192
+ if (!images || images.length === 0) {
193
+ return message;
194
+ }
195
+ console.log(`[CursorEngine] Processing ${images.length} images for Cursor CLI`);
196
+ let processedMessage = message;
197
+ for (let i = 0; i < images.length; i++) {
198
+ const image = images[i];
199
+ const imageIndex = i + 1;
200
+ const placeholder = `[image${imageIndex}]`;
201
+ try {
202
+ // Save image to hidden directory and get relative path
203
+ const imagePath = (0, sessionUtils_js_1.saveImageToHiddenDir)(image.data, image.mediaType, imageIndex, workspace);
204
+ console.log(`[CursorEngine] Saved image ${imageIndex} to: ${imagePath}`);
205
+ // Replace placeholder with @path reference
206
+ // This allows Cursor's model to read the file
207
+ processedMessage = processedMessage.replace(placeholder, `@${imagePath}`);
208
+ }
209
+ catch (error) {
210
+ console.error(`[CursorEngine] Failed to save image ${imageIndex}:`, error);
211
+ // If save fails, keep the placeholder
212
+ }
213
+ }
214
+ return processedMessage;
215
+ }
216
+ /**
217
+ * Send a message using Cursor CLI
218
+ */
219
+ async sendMessage(message, config, onAguiEvent) {
220
+ const { workspace, sessionId: existingSessionId, model, images, } = config;
221
+ // Timeout: only when explicitly set via config.timeout or env CURSOR_CHAT_TIMEOUT_MS. Default: no timeout.
222
+ const envTimeout = typeof process.env.CURSOR_CHAT_TIMEOUT_MS === 'string'
223
+ ? parseInt(process.env.CURSOR_CHAT_TIMEOUT_MS, 10)
224
+ : NaN;
225
+ const timeoutMs = typeof config.timeout === 'number' && config.timeout > 0
226
+ ? config.timeout
227
+ : Number.isNaN(envTimeout) || envTimeout <= 0
228
+ ? undefined
229
+ : envTimeout;
230
+ // Process images: save to hidden directory and replace placeholders with @path
231
+ const processedMessage = this.processImagesForCursor(message, images, workspace);
232
+ // Try with --resume first if sessionId provided
233
+ if (existingSessionId) {
234
+ try {
235
+ const result = await this.executeCursorCommand(processedMessage, workspace, model, images, timeoutMs, existingSessionId, true, // useResume
236
+ onAguiEvent);
237
+ return result;
238
+ }
239
+ catch (error) {
240
+ // Check if this is a resume failure (session not found)
241
+ const errorMessage = error instanceof Error ? error.message : String(error);
242
+ if (errorMessage.includes('exited with code') || errorMessage.includes('resume')) {
243
+ console.log(`[CursorEngine] Resume failed for session ${existingSessionId}, retrying without --resume`);
244
+ // Retry without --resume - create a new session
245
+ const result = await this.executeCursorCommand(processedMessage, workspace, model, images, timeoutMs, undefined, // No sessionId = new session
246
+ false, // Don't use resume
247
+ onAguiEvent);
248
+ return result;
249
+ }
250
+ // Re-throw other errors
251
+ throw error;
252
+ }
253
+ }
254
+ // No existing session, create new one
255
+ return this.executeCursorCommand(processedMessage, workspace, model, images, timeoutMs, undefined, false, onAguiEvent);
256
+ }
257
+ /**
258
+ * Execute Cursor CLI command (internal implementation)
259
+ */
260
+ executeCursorCommand(processedMessage, workspace, model, images, timeoutMs, existingSessionId, useResume, onAguiEvent) {
261
+ // Create session ID (temporary; will be replaced by CLI's real session_id from system.init)
262
+ const sessionId = existingSessionId || (0, uuid_1.v4)();
263
+ // Create AGUI adapter
264
+ const adapter = new aguiAdapter_js_1.CursorAguiAdapter(sessionId);
265
+ // Send RUN_STARTED event
266
+ onAguiEvent(adapter.createRunStarted({ message: processedMessage, workspace, model }));
267
+ return new Promise((resolve, reject) => {
268
+ // Find cursor command
269
+ const cursorCmd = findCursorCommand();
270
+ // Build command arguments
271
+ // Use stream-json with --stream-partial-output for real-time streaming
272
+ const args = [
273
+ 'agent',
274
+ '--print',
275
+ '--output-format', 'stream-json',
276
+ '--stream-partial-output',
277
+ '--workspace', workspace,
278
+ '--force', // Equivalent to bypassPermissions
279
+ '--approve-mcps', // Auto-approve MCP tools
280
+ ];
281
+ // Only add --model if explicitly specified and not 'auto'
282
+ // This allows CLI to use its internal model settings
283
+ console.log(`[CursorEngine] Model parameter received: "${model}" (type: ${typeof model})`);
284
+ if (model && model !== 'auto') {
285
+ args.push('--model', model);
286
+ console.log(`[CursorEngine] Adding --model ${model} to args`);
287
+ }
288
+ else {
289
+ console.log(`[CursorEngine] NOT adding --model, letting CLI use internal settings`);
290
+ }
291
+ // Add session resume if continuing conversation and useResume is true
292
+ if (existingSessionId && useResume) {
293
+ // Strip 'cursor-' prefix if present (backward compatibility with old session IDs)
294
+ const actualSessionId = existingSessionId.startsWith('cursor-') ? existingSessionId.slice(7) : existingSessionId;
295
+ args.push('--resume', actualSessionId);
296
+ console.log(`[CursorEngine] Attempting to resume session: ${actualSessionId}`);
297
+ }
298
+ console.log(`[CursorEngine] Executing: ${cursorCmd} ${args.join(' ')}`);
299
+ console.log(`[CursorEngine] Working directory: ${workspace}`);
300
+ if (images && images.length > 0) {
301
+ console.log(`[CursorEngine] Processed ${images.length} images, message placeholders replaced with @path references`);
302
+ }
303
+ // Spawn cursor process
304
+ const cursorProcess = (0, child_process_1.spawn)(cursorCmd, args, {
305
+ cwd: workspace,
306
+ env: {
307
+ ...process.env,
308
+ CURSOR_API_KEY: process.env.CURSOR_API_KEY,
309
+ },
310
+ stdio: ['pipe', 'pipe', 'pipe'],
311
+ });
312
+ // Handle spawn errors
313
+ cursorProcess.on('error', (error) => {
314
+ console.error(`[CursorEngine] Spawn error:`, error);
315
+ onAguiEvent(adapter.createRunError(`Failed to start cursor: ${error.message}`, 'SPAWN_ERROR'));
316
+ const finalEvents = adapter.finalize();
317
+ for (const event of finalEvents) {
318
+ onAguiEvent(event);
319
+ }
320
+ reject(error);
321
+ });
322
+ // Track session
323
+ const session = {
324
+ id: sessionId,
325
+ process: cursorProcess,
326
+ workspace,
327
+ startedAt: new Date(),
328
+ };
329
+ this.activeSessions.set(sessionId, session);
330
+ // Set up timeout only when explicitly configured; default is no timeout
331
+ let timeoutId;
332
+ if (timeoutMs !== undefined) {
333
+ console.log(`[CursorEngine] Session ${sessionId} timeout set to ${timeoutMs}ms (${timeoutMs / 60000} min)`);
334
+ timeoutId = setTimeout(() => {
335
+ console.log(`[CursorEngine] Session ${sessionId} timed out after ${timeoutMs}ms`);
336
+ cursorProcess.kill('SIGTERM');
337
+ this.activeSessions.delete(sessionId);
338
+ onAguiEvent(adapter.createRunError('Cursor command timed out', 'TIMEOUT'));
339
+ const finalEvents = adapter.finalize();
340
+ for (const event of finalEvents) {
341
+ onAguiEvent(event);
342
+ }
343
+ reject(new Error('Cursor command timed out'));
344
+ }, timeoutMs);
345
+ }
346
+ else {
347
+ console.log(`[CursorEngine] Session ${sessionId} no timeout (run until process exits)`);
348
+ }
349
+ // Write processed message (with @path references) to stdin
350
+ cursorProcess.stdin?.write(processedMessage + '\n');
351
+ cursorProcess.stdin?.end();
352
+ console.log(`[CursorEngine] Message written to stdin for session ${sessionId}`);
353
+ let buffer = '';
354
+ let hasError = false;
355
+ let hasOutput = false;
356
+ // Process stdout line by line
357
+ cursorProcess.stdout?.on('data', (data) => {
358
+ hasOutput = true;
359
+ buffer += data.toString();
360
+ const lines = buffer.split('\n');
361
+ buffer = lines.pop() || ''; // Keep incomplete line in buffer
362
+ for (const line of lines) {
363
+ if (!line.trim())
364
+ continue;
365
+ // Parse and convert to AGUI events
366
+ const events = adapter.parseStreamLine(line);
367
+ for (const event of events) {
368
+ onAguiEvent(event);
369
+ }
370
+ }
371
+ });
372
+ // Process stderr
373
+ cursorProcess.stderr?.on('data', (data) => {
374
+ const text = data.toString().trim();
375
+ console.log(`[CursorEngine] stderr: ${text}`);
376
+ // Only treat actual errors as errors
377
+ if (text.toLowerCase().includes('error')) {
378
+ hasError = true;
379
+ onAguiEvent(adapter.createRunError(text, 'CURSOR_ERROR'));
380
+ }
381
+ });
382
+ // Handle process exit
383
+ cursorProcess.on('close', (code, signal) => {
384
+ if (timeoutId)
385
+ clearTimeout(timeoutId);
386
+ this.activeSessions.delete(sessionId);
387
+ console.log(`[CursorEngine] Process exited with code ${code}, signal ${signal}, hasOutput: ${hasOutput}`);
388
+ // Process any remaining buffer
389
+ if (buffer.trim()) {
390
+ hasOutput = true;
391
+ const events = adapter.parseStreamLine(buffer);
392
+ for (const event of events) {
393
+ onAguiEvent(event);
394
+ }
395
+ }
396
+ // Finalize
397
+ const finalEvents = adapter.finalize();
398
+ for (const event of finalEvents) {
399
+ onAguiEvent(event);
400
+ }
401
+ // If we used --resume and got no output with non-zero exit code,
402
+ // this is likely a session-not-found error - let the caller retry
403
+ if (code !== 0 && useResume && !hasOutput) {
404
+ console.log(`[CursorEngine] Resume failed with no output, session may not exist`);
405
+ reject(new Error(`Cursor agent exited with code ${code} (resume may have failed)`));
406
+ return;
407
+ }
408
+ if (code === 0 || !hasError) {
409
+ // Use the real session_id from Cursor CLI if available
410
+ // adapter.getThreadId() will have the CLI's session_id if it was provided in system.init
411
+ const actualSessionId = adapter.getThreadId();
412
+ console.log(`[CursorEngine] Returning session_id: ${actualSessionId} (original: ${sessionId})`);
413
+ resolve({ sessionId: actualSessionId });
414
+ }
415
+ else {
416
+ reject(new Error(`Cursor agent exited with code ${code}`));
417
+ }
418
+ });
419
+ // Handle process errors
420
+ cursorProcess.on('error', (error) => {
421
+ if (timeoutId)
422
+ clearTimeout(timeoutId);
423
+ this.activeSessions.delete(sessionId);
424
+ console.error('[CursorEngine] Process error:', error);
425
+ onAguiEvent(adapter.createRunError(error.message, 'PROCESS_ERROR'));
426
+ const finalEvents = adapter.finalize();
427
+ for (const event of finalEvents) {
428
+ onAguiEvent(event);
429
+ }
430
+ reject(error);
431
+ });
432
+ });
433
+ }
434
+ /**
435
+ * Interrupt a session
436
+ */
437
+ async interruptSession(sessionId) {
438
+ const session = this.activeSessions.get(sessionId);
439
+ if (!session) {
440
+ throw new Error(`Session not found: ${sessionId}`);
441
+ }
442
+ console.log(`[CursorEngine] Interrupting session: ${sessionId}`);
443
+ // Kill the process
444
+ session.process.kill('SIGTERM');
445
+ this.activeSessions.delete(sessionId);
446
+ }
447
+ /**
448
+ * Clean up stale sessions (called periodically)
449
+ */
450
+ cleanupStaleSessions(maxAgeMs = 30 * 60 * 1000) {
451
+ const now = new Date();
452
+ for (const [sessionId, session] of this.activeSessions) {
453
+ const age = now.getTime() - session.startedAt.getTime();
454
+ if (age > maxAgeMs) {
455
+ console.log(`[CursorEngine] Cleaning up stale session: ${sessionId}`);
456
+ session.process.kill('SIGTERM');
457
+ this.activeSessions.delete(sessionId);
458
+ }
459
+ }
460
+ }
461
+ }
462
+ exports.CursorEngine = CursorEngine;
463
+ // Export singleton instance
464
+ exports.cursorEngine = new CursorEngine();
465
+ //# sourceMappingURL=cursorEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursorEngine.js","sourceRoot":"","sources":["../../../src/engines/cursor/cursorEngine.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iDAAmE;AACnE,2BAAgC;AAChC,+BAAoC;AAUpC,qDAAqD;AACrD,iEAAmE;AAEnE,0BAA0B;AAC1B,IAAI,YAAY,GAAuB,IAAI,CAAC;AAC5C,IAAI,eAAe,GAAW,CAAC,CAAC;AAChC,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAEnD;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,aAAa,GAAG;QACpB,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,oBAAoB,EAAE,oCAAoC;QAC7E,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,mBAAmB,EAAG,sBAAsB;QAC/D,4DAA4D;QAC5D,uBAAuB;KACxB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAC/E,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD;;GAEG;AACH,MAAa,YAAY;IACd,IAAI,GAAe,QAAQ,CAAC;IAE5B,YAAY,GAAuB;QAC1C,GAAG,EAAE;YACH,SAAS,EAAE,KAAK,EAAE,kCAAkC;SACrD;QACD,MAAM,EAAE;YACN,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,eAAe;YAC3B,UAAU,EAAE,UAAU;SACvB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI,EAAE,mBAAmB;YACnC,MAAM,EAAE,IAAI,EAAE,2BAA2B;YACzC,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,KAAK,EAAE,mCAAmC;YACrD,aAAa,EAAE,IAAI;SACpB;QACD,eAAe,EAAE,CAAC,mBAAmB,CAAC,EAAE,eAAe;QACvD,EAAE,EAAE;YACF,mBAAmB,EAAE,KAAK,EAAE,kCAAkC;YAC9D,eAAe,EAAE,IAAI,EAAE,qCAAqC;YAC5D,sBAAsB,EAAE,KAAK,EAAE,mCAAmC;YAClE,oBAAoB,EAAE,KAAK,EAAE,yCAAyC;YACtE,iBAAiB,EAAE,IAAI,EAAE,0CAA0C;YACnE,WAAW,EAAE,KAAK,EAAE,gBAAgB;SACrC;KACF,CAAC;IAEM,cAAc,GAA+B,IAAI,GAAG,EAAE,CAAC;IAE/D;;;OAGG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;IAEO,sBAAsB;QAC5B,oBAAoB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,GAAG,eAAe,EAAE,CAAC;YAC9D,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,GAAG,SAAS,sBAAsB,EAAE;gBAC1D,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK,EAAE,oBAAoB;gBACpC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,YAAY,GAAG,MAAM,CAAC;gBACtB,eAAe,GAAG,GAAG,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC;QAED,mCAAmC;QACnC,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,+BAA+B;QAC/B,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAAc;QACnC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,gDAAgD;QAChD,uFAAuF;QACvF,6GAA6G;QAC7G,MAAM,cAAc,GAAG,8DAA8D,CAAC;QAEtF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAE5C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAChE,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC;gBAEpG,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE;oBACF,IAAI,EAAE,SAAS;oBACf,QAAQ;oBACR,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO;YACL,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5C,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC/D,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACrG,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC3D,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,4BAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;YACjG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5D,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,YAAY,GAAG,IAAI,CAAC;QACpB,eAAe,GAAG,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;IAClC,CAAC;IAED;;;;;;;;;OASG;IACK,sBAAsB,CAC5B,OAAe,EACf,MAAqC,EACrC,SAAiB;QAEjB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAC;QAChF,IAAI,gBAAgB,GAAG,OAAO,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,SAAS,UAAU,GAAG,CAAC;YAE3C,IAAI,CAAC;gBACH,uDAAuD;gBACvD,MAAM,SAAS,GAAG,IAAA,sCAAoB,EACpC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,EACf,UAAU,EACV,SAAS,CACV,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,QAAQ,SAAS,EAAE,CAAC,CAAC;gBAEzE,2CAA2C;gBAC3C,8CAA8C;gBAC9C,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3E,sCAAsC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAoB,EACpB,WAAuC;QAEvC,MAAM,EACJ,SAAS,EACT,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EACL,MAAM,GACP,GAAG,MAAM,CAAC;QAEX,2GAA2G;QAC3G,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,QAAQ;YACvE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,CAAC;YAClD,CAAC,CAAC,GAAG,CAAC;QACR,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC;YACtD,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC;gBAC3C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC;QAEnB,+EAA+E;QAC/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjF,gDAAgD;QAChD,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC5C,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,IAAI,EAAE,YAAY;gBAClB,WAAW,CACZ,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wDAAwD;gBACxD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjF,OAAO,CAAC,GAAG,CAAC,4CAA4C,iBAAiB,6BAA6B,CAAC,CAAC;oBACxG,gDAAgD;oBAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC5C,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EAAE,6BAA6B;oBACxC,KAAK,EAAE,mBAAmB;oBAC1B,WAAW,CACZ,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,wBAAwB;gBACxB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,OAAO,IAAI,CAAC,oBAAoB,CAC9B,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,KAAK,EACL,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,gBAAwB,EACxB,SAAiB,EACjB,KAAyB,EACzB,MAAqC,EACrC,SAA6B,EAC7B,iBAAqC,EACrC,SAAkB,EAClB,WAAuC;QAEvC,4FAA4F;QAC5F,MAAM,SAAS,GAAG,iBAAiB,IAAI,IAAA,SAAM,GAAE,CAAC;QAEhD,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,kCAAiB,CAAC,SAAS,CAAC,CAAC;QAEjD,yBAAyB;QACzB,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,sBAAsB;YACtB,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;YAEtC,0BAA0B;YAC1B,uEAAuE;YACvE,MAAM,IAAI,GAAG;gBACX,OAAO;gBACP,SAAS;gBACT,iBAAiB,EAAE,aAAa;gBAChC,yBAAyB;gBACzB,aAAa,EAAE,SAAS;gBACxB,SAAS,EAAE,kCAAkC;gBAC7C,gBAAgB,EAAE,yBAAyB;aAC5C,CAAC;YAEF,0DAA0D;YAC1D,qDAAqD;YACrD,OAAO,CAAC,GAAG,CAAC,6CAA6C,KAAK,YAAY,OAAO,KAAK,GAAG,CAAC,CAAC;YAC3F,IAAI,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,iCAAiC,KAAK,UAAU,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;YACtF,CAAC;YAED,sEAAsE;YACtE,IAAI,iBAAiB,IAAI,SAAS,EAAE,CAAC;gBACnC,kFAAkF;gBAClF,MAAM,eAAe,GAAG,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;gBACjH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,gDAAgD,eAAe,EAAE,CAAC,CAAC;YACjF,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAC;YAC9D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,MAAM,8DAA8D,CAAC,CAAC;YACvH,CAAC;YAED,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAA,qBAAK,EAAC,SAAS,EAAE,IAAI,EAAE;gBAC3C,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;iBAC3C;gBACD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAChC,CAAC,CAAC;YAEH,sBAAsB;YACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBACpD,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC/F,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,gBAAgB;YAChB,MAAM,OAAO,GAAkB;gBAC7B,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,aAAa;gBACtB,SAAS;gBACT,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5C,wEAAwE;YACxE,IAAI,SAAqC,CAAC;YAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,mBAAmB,SAAS,OAAO,SAAS,GAAG,KAAK,OAAO,CAAC,CAAC;gBAC5G,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC1B,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,oBAAoB,SAAS,IAAI,CAAC,CAAC;oBAClF,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC,CAAC;oBAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACvC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;wBAChC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;oBACD,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBAChD,CAAC,EAAE,SAAS,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,uCAAuC,CAAC,CAAC;YAC1F,CAAC;YAED,2DAA2D;YAC3D,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YACpD,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,uDAAuD,SAAS,EAAE,CAAC,CAAC;YAEhF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,8BAA8B;YAC9B,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBAChD,SAAS,GAAG,IAAI,CAAC;gBACjB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,iCAAiC;gBAE7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;wBAAE,SAAS;oBAE3B,mCAAmC;oBACnC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,iBAAiB;YACjB,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;gBAE9C,qCAAqC;gBACrC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzC,QAAQ,GAAG,IAAI,CAAC;oBAChB,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACzC,IAAI,SAAS;oBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEtC,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,YAAY,MAAM,gBAAgB,SAAS,EAAE,CAAC,CAAC;gBAE1G,+BAA+B;gBAC/B,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBAClB,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,WAAW,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAED,WAAW;gBACX,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBAED,iEAAiE;gBACjE,kEAAkE;gBAClE,IAAI,IAAI,KAAK,CAAC,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;oBAClF,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,IAAI,2BAA2B,CAAC,CAAC,CAAC;oBACpF,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC5B,uDAAuD;oBACvD,yFAAyF;oBACzF,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,wCAAwC,eAAe,eAAe,SAAS,GAAG,CAAC,CAAC;oBAChG,OAAO,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,wBAAwB;YACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,SAAS;oBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEtC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;gBACtD,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;gBAEpE,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;oBAChC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;QAEjE,mBAAmB;QACnB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,WAAmB,EAAE,GAAG,EAAE,GAAG,IAAI;QACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAExD,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAjgBD,oCAigBC;AAED,4BAA4B;AACf,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Cursor Engine Module
3
+ *
4
+ * Exports the Cursor engine implementation and its adapters.
5
+ * - AGUI Adapter: Converts Cursor CLI output to AGUI events
6
+ * - A2A Adapter: Converts AGUI events to A2A protocol format
7
+ */
8
+ export { CursorEngine, cursorEngine } from './cursorEngine.js';
9
+ export { CursorAguiAdapter } from './aguiAdapter.js';
10
+ export { CursorA2AAdapter, convertAGUIEventsToA2A, createA2AErrorResponse, A2A_ERROR_CODES, type A2AStreamingResponse, type A2ATask, type A2AMessage, type A2ATaskState, type A2ATaskStatus, type A2AArtifact, type A2APart, type A2ATextPart, type A2AFilePart, type A2ADataPart, type A2ATaskStatusUpdateEvent, type A2ATaskArtifactUpdateEvent, } from './a2aAdapter.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/cursor/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Cursor Engine Module
4
+ *
5
+ * Exports the Cursor engine implementation and its adapters.
6
+ * - AGUI Adapter: Converts Cursor CLI output to AGUI events
7
+ * - A2A Adapter: Converts AGUI events to A2A protocol format
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.A2A_ERROR_CODES = exports.createA2AErrorResponse = exports.convertAGUIEventsToA2A = exports.CursorA2AAdapter = exports.CursorAguiAdapter = exports.cursorEngine = exports.CursorEngine = void 0;
11
+ var cursorEngine_js_1 = require("./cursorEngine.js");
12
+ Object.defineProperty(exports, "CursorEngine", { enumerable: true, get: function () { return cursorEngine_js_1.CursorEngine; } });
13
+ Object.defineProperty(exports, "cursorEngine", { enumerable: true, get: function () { return cursorEngine_js_1.cursorEngine; } });
14
+ var aguiAdapter_js_1 = require("./aguiAdapter.js");
15
+ Object.defineProperty(exports, "CursorAguiAdapter", { enumerable: true, get: function () { return aguiAdapter_js_1.CursorAguiAdapter; } });
16
+ var a2aAdapter_js_1 = require("./a2aAdapter.js");
17
+ Object.defineProperty(exports, "CursorA2AAdapter", { enumerable: true, get: function () { return a2aAdapter_js_1.CursorA2AAdapter; } });
18
+ Object.defineProperty(exports, "convertAGUIEventsToA2A", { enumerable: true, get: function () { return a2aAdapter_js_1.convertAGUIEventsToA2A; } });
19
+ Object.defineProperty(exports, "createA2AErrorResponse", { enumerable: true, get: function () { return a2aAdapter_js_1.createA2AErrorResponse; } });
20
+ Object.defineProperty(exports, "A2A_ERROR_CODES", { enumerable: true, get: function () { return a2aAdapter_js_1.A2A_ERROR_CODES; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/cursor/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,qDAA+D;AAAtD,+GAAA,YAAY,OAAA;AAAE,+GAAA,YAAY,OAAA;AACnC,mDAAqD;AAA5C,mHAAA,iBAAiB,OAAA;AAC1B,iDAiByB;AAhBvB,iHAAA,gBAAgB,OAAA;AAChB,uHAAA,sBAAsB,OAAA;AACtB,uHAAA,sBAAsB,OAAA;AACtB,gHAAA,eAAe,OAAA"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Engine Manager
3
+ *
4
+ * Central manager for all agent engines. Handles engine registration,
5
+ * selection, and provides a unified interface for the routes layer.
6
+ */
7
+ import type { EngineType, IAgentEngine, EngineConfig, AGUIEvent, ModelInfo, EngineCapabilities } from './types.js';
8
+ /**
9
+ * Engine Manager singleton
10
+ */
11
+ declare class EngineManager {
12
+ private engines;
13
+ private defaultEngine;
14
+ /**
15
+ * Register an engine
16
+ */
17
+ registerEngine(engine: IAgentEngine): void;
18
+ /**
19
+ * Get an engine by type
20
+ */
21
+ getEngine(type: EngineType): IAgentEngine;
22
+ /**
23
+ * Check if an engine is registered
24
+ */
25
+ hasEngine(type: EngineType): boolean;
26
+ /**
27
+ * Get all registered engine types
28
+ */
29
+ getRegisteredEngines(): EngineType[];
30
+ /**
31
+ * Get the default engine type
32
+ */
33
+ getDefaultEngineType(): EngineType;
34
+ /**
35
+ * Set the default engine type
36
+ */
37
+ setDefaultEngineType(type: EngineType): void;
38
+ /**
39
+ * Get engine capabilities
40
+ */
41
+ getEngineCapabilities(type: EngineType): EngineCapabilities;
42
+ /**
43
+ * Get all engines' capabilities
44
+ */
45
+ getAllEngineCapabilities(): Record<EngineType, EngineCapabilities>;
46
+ /**
47
+ * Get supported models for an engine
48
+ */
49
+ getSupportedModels(type: EngineType): Promise<ModelInfo[]>;
50
+ /**
51
+ * Send a message using the specified engine
52
+ */
53
+ sendMessage(engineType: EngineType, message: string, config: EngineConfig, onAguiEvent: (event: AGUIEvent) => void): Promise<{
54
+ sessionId: string;
55
+ }>;
56
+ /**
57
+ * Interrupt a session on the specified engine
58
+ */
59
+ interruptSession(engineType: EngineType, sessionId: string): Promise<void>;
60
+ /**
61
+ * Get total active session count across all engines
62
+ */
63
+ getTotalActiveSessionCount(): number;
64
+ /**
65
+ * Get active session count by engine
66
+ */
67
+ getActiveSessionCountByEngine(): Record<EngineType, number>;
68
+ /**
69
+ * Get engine status summary
70
+ */
71
+ getStatus(): {
72
+ registeredEngines: EngineType[];
73
+ defaultEngine: EngineType;
74
+ activeSessions: Record<EngineType, number>;
75
+ totalActiveSessions: number;
76
+ };
77
+ }
78
+ export declare const engineManager: EngineManager;
79
+ export { EngineManager };
80
+ //# sourceMappingURL=engineManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engineManager.d.ts","sourceRoot":"","sources":["../../src/engines/engineManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEnH;;GAEG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,aAAa,CAAwB;IAE7C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAK1C;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY;IAQzC;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIpC;;OAEG;IACH,oBAAoB,IAAI,UAAU,EAAE;IAIpC;;OAEG;IACH,oBAAoB,IAAI,UAAU;IAIlC;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAO5C;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB;IAK3D;;OAEG;IACH,wBAAwB,IAAI,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAQlE;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhE;;OAEG;IACG,WAAW,CACf,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GACtC,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAUjC;;OAEG;IACG,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhF;;OAEG;IACH,0BAA0B,IAAI,MAAM;IAQpC;;OAEG;IACH,6BAA6B,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;IAQ3D;;OAEG;IACH,SAAS,IAAI;QACX,iBAAiB,EAAE,UAAU,EAAE,CAAC;QAChC,aAAa,EAAE,UAAU,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3C,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAQF;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,CAAC"}