@compass-ai/nova 1.0.74 → 1.0.76

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 (973) hide show
  1. package/dist/cli.js +557 -555
  2. package/dist/index.js +10 -8
  3. package/package.json +1 -1
  4. package/dist/acp/agent.d.ts +0 -318
  5. package/dist/acp/agent.d.ts.map +0 -1
  6. package/dist/acp/agent.js +0 -795
  7. package/dist/acp/agent.js.map +0 -1
  8. package/dist/acp/backpressure-writer.d.ts +0 -49
  9. package/dist/acp/backpressure-writer.d.ts.map +0 -1
  10. package/dist/acp/backpressure-writer.js +0 -153
  11. package/dist/acp/backpressure-writer.js.map +0 -1
  12. package/dist/acp/event-adapter.d.ts +0 -242
  13. package/dist/acp/event-adapter.d.ts.map +0 -1
  14. package/dist/acp/event-adapter.js +0 -456
  15. package/dist/acp/event-adapter.js.map +0 -1
  16. package/dist/acp/index.d.ts +0 -30
  17. package/dist/acp/index.d.ts.map +0 -1
  18. package/dist/acp/index.js +0 -36
  19. package/dist/acp/index.js.map +0 -1
  20. package/dist/acp/modes.d.ts +0 -56
  21. package/dist/acp/modes.d.ts.map +0 -1
  22. package/dist/acp/modes.js +0 -135
  23. package/dist/acp/modes.js.map +0 -1
  24. package/dist/acp/session-manager.d.ts +0 -170
  25. package/dist/acp/session-manager.d.ts.map +0 -1
  26. package/dist/acp/session-manager.js +0 -381
  27. package/dist/acp/session-manager.js.map +0 -1
  28. package/dist/acp/text-coalescer.d.ts +0 -45
  29. package/dist/acp/text-coalescer.d.ts.map +0 -1
  30. package/dist/acp/text-coalescer.js +0 -110
  31. package/dist/acp/text-coalescer.js.map +0 -1
  32. package/dist/acp/tool-bridge.d.ts +0 -156
  33. package/dist/acp/tool-bridge.d.ts.map +0 -1
  34. package/dist/acp/tool-bridge.js +0 -381
  35. package/dist/acp/tool-bridge.js.map +0 -1
  36. package/dist/acp/types.d.ts +0 -314
  37. package/dist/acp/types.d.ts.map +0 -1
  38. package/dist/acp/types.js +0 -8
  39. package/dist/acp/types.js.map +0 -1
  40. package/dist/cli.d.ts +0 -9
  41. package/dist/cli.d.ts.map +0 -1
  42. package/dist/cli.js.map +0 -1
  43. package/dist/commands/acp.d.ts +0 -26
  44. package/dist/commands/acp.d.ts.map +0 -1
  45. package/dist/commands/acp.js +0 -492
  46. package/dist/commands/acp.js.map +0 -1
  47. package/dist/commands/cache.d.ts +0 -33
  48. package/dist/commands/cache.d.ts.map +0 -1
  49. package/dist/commands/cache.js +0 -537
  50. package/dist/commands/cache.js.map +0 -1
  51. package/dist/commands/config.d.ts +0 -10
  52. package/dist/commands/config.d.ts.map +0 -1
  53. package/dist/commands/config.js +0 -367
  54. package/dist/commands/config.js.map +0 -1
  55. package/dist/commands/consent.d.ts +0 -21
  56. package/dist/commands/consent.d.ts.map +0 -1
  57. package/dist/commands/consent.js +0 -334
  58. package/dist/commands/consent.js.map +0 -1
  59. package/dist/commands/data.d.ts +0 -24
  60. package/dist/commands/data.d.ts.map +0 -1
  61. package/dist/commands/data.js +0 -586
  62. package/dist/commands/data.js.map +0 -1
  63. package/dist/commands/index.d.ts +0 -145
  64. package/dist/commands/index.d.ts.map +0 -1
  65. package/dist/commands/index.js +0 -210
  66. package/dist/commands/index.js.map +0 -1
  67. package/dist/commands/init.d.ts +0 -106
  68. package/dist/commands/init.d.ts.map +0 -1
  69. package/dist/commands/init.js +0 -349
  70. package/dist/commands/init.js.map +0 -1
  71. package/dist/commands/logs.d.ts +0 -13
  72. package/dist/commands/logs.d.ts.map +0 -1
  73. package/dist/commands/logs.js +0 -359
  74. package/dist/commands/logs.js.map +0 -1
  75. package/dist/commands/mcp.d.ts +0 -20
  76. package/dist/commands/mcp.d.ts.map +0 -1
  77. package/dist/commands/mcp.js +0 -687
  78. package/dist/commands/mcp.js.map +0 -1
  79. package/dist/commands/reset.d.ts +0 -20
  80. package/dist/commands/reset.d.ts.map +0 -1
  81. package/dist/commands/reset.js +0 -372
  82. package/dist/commands/reset.js.map +0 -1
  83. package/dist/commands/setup.d.ts +0 -74
  84. package/dist/commands/setup.d.ts.map +0 -1
  85. package/dist/commands/setup.js +0 -863
  86. package/dist/commands/setup.js.map +0 -1
  87. package/dist/commands/slash/agents.d.ts +0 -40
  88. package/dist/commands/slash/agents.d.ts.map +0 -1
  89. package/dist/commands/slash/agents.js +0 -519
  90. package/dist/commands/slash/agents.js.map +0 -1
  91. package/dist/commands/slash/approve.d.ts +0 -46
  92. package/dist/commands/slash/approve.d.ts.map +0 -1
  93. package/dist/commands/slash/approve.js +0 -239
  94. package/dist/commands/slash/approve.js.map +0 -1
  95. package/dist/commands/slash/attach.d.ts +0 -70
  96. package/dist/commands/slash/attach.d.ts.map +0 -1
  97. package/dist/commands/slash/attach.js +0 -333
  98. package/dist/commands/slash/attach.js.map +0 -1
  99. package/dist/commands/slash/clear.d.ts +0 -47
  100. package/dist/commands/slash/clear.d.ts.map +0 -1
  101. package/dist/commands/slash/clear.js +0 -261
  102. package/dist/commands/slash/clear.js.map +0 -1
  103. package/dist/commands/slash/commit.d.ts +0 -40
  104. package/dist/commands/slash/commit.d.ts.map +0 -1
  105. package/dist/commands/slash/commit.js +0 -337
  106. package/dist/commands/slash/commit.js.map +0 -1
  107. package/dist/commands/slash/compact.d.ts +0 -48
  108. package/dist/commands/slash/compact.d.ts.map +0 -1
  109. package/dist/commands/slash/compact.js +0 -288
  110. package/dist/commands/slash/compact.js.map +0 -1
  111. package/dist/commands/slash/config.d.ts +0 -20
  112. package/dist/commands/slash/config.d.ts.map +0 -1
  113. package/dist/commands/slash/config.js +0 -136
  114. package/dist/commands/slash/config.js.map +0 -1
  115. package/dist/commands/slash/context.d.ts +0 -49
  116. package/dist/commands/slash/context.d.ts.map +0 -1
  117. package/dist/commands/slash/context.js +0 -430
  118. package/dist/commands/slash/context.js.map +0 -1
  119. package/dist/commands/slash/cost.d.ts +0 -34
  120. package/dist/commands/slash/cost.d.ts.map +0 -1
  121. package/dist/commands/slash/cost.js +0 -312
  122. package/dist/commands/slash/cost.js.map +0 -1
  123. package/dist/commands/slash/custom.d.ts +0 -41
  124. package/dist/commands/slash/custom.d.ts.map +0 -1
  125. package/dist/commands/slash/custom.js +0 -126
  126. package/dist/commands/slash/custom.js.map +0 -1
  127. package/dist/commands/slash/exit.d.ts +0 -25
  128. package/dist/commands/slash/exit.d.ts.map +0 -1
  129. package/dist/commands/slash/exit.js +0 -186
  130. package/dist/commands/slash/exit.js.map +0 -1
  131. package/dist/commands/slash/export.d.ts +0 -27
  132. package/dist/commands/slash/export.d.ts.map +0 -1
  133. package/dist/commands/slash/export.js +0 -318
  134. package/dist/commands/slash/export.js.map +0 -1
  135. package/dist/commands/slash/files.d.ts +0 -47
  136. package/dist/commands/slash/files.d.ts.map +0 -1
  137. package/dist/commands/slash/files.js +0 -521
  138. package/dist/commands/slash/files.js.map +0 -1
  139. package/dist/commands/slash/help.d.ts +0 -50
  140. package/dist/commands/slash/help.d.ts.map +0 -1
  141. package/dist/commands/slash/help.js +0 -282
  142. package/dist/commands/slash/help.js.map +0 -1
  143. package/dist/commands/slash/index-cmd.d.ts +0 -41
  144. package/dist/commands/slash/index-cmd.d.ts.map +0 -1
  145. package/dist/commands/slash/index-cmd.js +0 -349
  146. package/dist/commands/slash/index-cmd.js.map +0 -1
  147. package/dist/commands/slash/index.d.ts +0 -97
  148. package/dist/commands/slash/index.d.ts.map +0 -1
  149. package/dist/commands/slash/index.js +0 -251
  150. package/dist/commands/slash/index.js.map +0 -1
  151. package/dist/commands/slash/login.d.ts +0 -23
  152. package/dist/commands/slash/login.d.ts.map +0 -1
  153. package/dist/commands/slash/login.js +0 -175
  154. package/dist/commands/slash/login.js.map +0 -1
  155. package/dist/commands/slash/logout.d.ts +0 -23
  156. package/dist/commands/slash/logout.d.ts.map +0 -1
  157. package/dist/commands/slash/logout.js +0 -153
  158. package/dist/commands/slash/logout.js.map +0 -1
  159. package/dist/commands/slash/logs.d.ts +0 -29
  160. package/dist/commands/slash/logs.d.ts.map +0 -1
  161. package/dist/commands/slash/logs.js +0 -423
  162. package/dist/commands/slash/logs.js.map +0 -1
  163. package/dist/commands/slash/mcp.d.ts +0 -29
  164. package/dist/commands/slash/mcp.d.ts.map +0 -1
  165. package/dist/commands/slash/mcp.js +0 -1026
  166. package/dist/commands/slash/mcp.js.map +0 -1
  167. package/dist/commands/slash/model.d.ts +0 -60
  168. package/dist/commands/slash/model.d.ts.map +0 -1
  169. package/dist/commands/slash/model.js +0 -466
  170. package/dist/commands/slash/model.js.map +0 -1
  171. package/dist/commands/slash/personality.d.ts +0 -40
  172. package/dist/commands/slash/personality.d.ts.map +0 -1
  173. package/dist/commands/slash/personality.js +0 -272
  174. package/dist/commands/slash/personality.js.map +0 -1
  175. package/dist/commands/slash/purge.d.ts +0 -42
  176. package/dist/commands/slash/purge.d.ts.map +0 -1
  177. package/dist/commands/slash/purge.js +0 -233
  178. package/dist/commands/slash/purge.js.map +0 -1
  179. package/dist/commands/slash/reset.d.ts +0 -44
  180. package/dist/commands/slash/reset.d.ts.map +0 -1
  181. package/dist/commands/slash/reset.js +0 -326
  182. package/dist/commands/slash/reset.js.map +0 -1
  183. package/dist/commands/slash/skills.d.ts +0 -40
  184. package/dist/commands/slash/skills.d.ts.map +0 -1
  185. package/dist/commands/slash/skills.js +0 -207
  186. package/dist/commands/slash/skills.js.map +0 -1
  187. package/dist/commands/slash/tokens.d.ts +0 -34
  188. package/dist/commands/slash/tokens.d.ts.map +0 -1
  189. package/dist/commands/slash/tokens.js +0 -205
  190. package/dist/commands/slash/tokens.js.map +0 -1
  191. package/dist/commands/slash/unleash.d.ts +0 -50
  192. package/dist/commands/slash/unleash.d.ts.map +0 -1
  193. package/dist/commands/slash/unleash.js +0 -262
  194. package/dist/commands/slash/unleash.js.map +0 -1
  195. package/dist/commands/slash/update.d.ts +0 -34
  196. package/dist/commands/slash/update.d.ts.map +0 -1
  197. package/dist/commands/slash/update.js +0 -364
  198. package/dist/commands/slash/update.js.map +0 -1
  199. package/dist/commands/slash/wrap.d.ts +0 -18
  200. package/dist/commands/slash/wrap.d.ts.map +0 -1
  201. package/dist/commands/slash/wrap.js +0 -21
  202. package/dist/commands/slash/wrap.js.map +0 -1
  203. package/dist/commands/tokens.d.ts +0 -26
  204. package/dist/commands/tokens.d.ts.map +0 -1
  205. package/dist/commands/tokens.js +0 -245
  206. package/dist/commands/tokens.js.map +0 -1
  207. package/dist/constants/builtin-agents.d.ts +0 -27
  208. package/dist/constants/builtin-agents.d.ts.map +0 -1
  209. package/dist/constants/builtin-agents.js +0 -710
  210. package/dist/constants/builtin-agents.js.map +0 -1
  211. package/dist/constants/builtin-skills.d.ts +0 -32
  212. package/dist/constants/builtin-skills.d.ts.map +0 -1
  213. package/dist/constants/builtin-skills.js +0 -389
  214. package/dist/constants/builtin-skills.js.map +0 -1
  215. package/dist/constants/defaults.d.ts +0 -448
  216. package/dist/constants/defaults.d.ts.map +0 -1
  217. package/dist/constants/defaults.js +0 -829
  218. package/dist/constants/defaults.js.map +0 -1
  219. package/dist/constants/index.d.ts +0 -27
  220. package/dist/constants/index.d.ts.map +0 -1
  221. package/dist/constants/index.js +0 -85
  222. package/dist/constants/index.js.map +0 -1
  223. package/dist/constants/install-hints.d.ts +0 -7
  224. package/dist/constants/install-hints.d.ts.map +0 -1
  225. package/dist/constants/install-hints.js +0 -123
  226. package/dist/constants/install-hints.js.map +0 -1
  227. package/dist/constants/models.d.ts +0 -255
  228. package/dist/constants/models.d.ts.map +0 -1
  229. package/dist/constants/models.js +0 -596
  230. package/dist/constants/models.js.map +0 -1
  231. package/dist/constants/schedule.d.ts +0 -43
  232. package/dist/constants/schedule.d.ts.map +0 -1
  233. package/dist/constants/schedule.js +0 -110
  234. package/dist/constants/schedule.js.map +0 -1
  235. package/dist/constants/system-utilities.d.ts +0 -57
  236. package/dist/constants/system-utilities.d.ts.map +0 -1
  237. package/dist/constants/system-utilities.js +0 -421
  238. package/dist/constants/system-utilities.js.map +0 -1
  239. package/dist/constants/token-limits.d.ts +0 -102
  240. package/dist/constants/token-limits.d.ts.map +0 -1
  241. package/dist/constants/token-limits.js +0 -286
  242. package/dist/constants/token-limits.js.map +0 -1
  243. package/dist/core/autocomplete.d.ts +0 -132
  244. package/dist/core/autocomplete.d.ts.map +0 -1
  245. package/dist/core/autocomplete.js +0 -653
  246. package/dist/core/autocomplete.js.map +0 -1
  247. package/dist/core/command-parser.d.ts +0 -301
  248. package/dist/core/command-parser.d.ts.map +0 -1
  249. package/dist/core/command-parser.js +0 -526
  250. package/dist/core/command-parser.js.map +0 -1
  251. package/dist/core/context-builder.d.ts +0 -264
  252. package/dist/core/context-builder.d.ts.map +0 -1
  253. package/dist/core/context-builder.js +0 -1018
  254. package/dist/core/context-builder.js.map +0 -1
  255. package/dist/core/event-emitter.d.ts +0 -411
  256. package/dist/core/event-emitter.d.ts.map +0 -1
  257. package/dist/core/event-emitter.js +0 -138
  258. package/dist/core/event-emitter.js.map +0 -1
  259. package/dist/core/history-manager.d.ts +0 -62
  260. package/dist/core/history-manager.d.ts.map +0 -1
  261. package/dist/core/history-manager.js +0 -151
  262. package/dist/core/history-manager.js.map +0 -1
  263. package/dist/core/slash-command-handler.d.ts +0 -352
  264. package/dist/core/slash-command-handler.d.ts.map +0 -1
  265. package/dist/core/slash-command-handler.js +0 -563
  266. package/dist/core/slash-command-handler.js.map +0 -1
  267. package/dist/core/task-processor.d.ts +0 -179
  268. package/dist/core/task-processor.d.ts.map +0 -1
  269. package/dist/core/task-processor.js +0 -519
  270. package/dist/core/task-processor.js.map +0 -1
  271. package/dist/index.d.ts +0 -90
  272. package/dist/index.d.ts.map +0 -1
  273. package/dist/index.js.map +0 -1
  274. package/dist/prompts/agent-prompt-generator.d.ts +0 -26
  275. package/dist/prompts/agent-prompt-generator.d.ts.map +0 -1
  276. package/dist/prompts/agent-prompt-generator.js +0 -244
  277. package/dist/prompts/agent-prompt-generator.js.map +0 -1
  278. package/dist/prompts/commit-message.d.ts +0 -35
  279. package/dist/prompts/commit-message.d.ts.map +0 -1
  280. package/dist/prompts/commit-message.js +0 -187
  281. package/dist/prompts/commit-message.js.map +0 -1
  282. package/dist/prompts/conversation.d.ts +0 -51
  283. package/dist/prompts/conversation.d.ts.map +0 -1
  284. package/dist/prompts/conversation.js +0 -115
  285. package/dist/prompts/conversation.js.map +0 -1
  286. package/dist/prompts/index.d.ts +0 -39
  287. package/dist/prompts/index.d.ts.map +0 -1
  288. package/dist/prompts/index.js +0 -74
  289. package/dist/prompts/index.js.map +0 -1
  290. package/dist/prompts/memory.d.ts +0 -6
  291. package/dist/prompts/memory.d.ts.map +0 -1
  292. package/dist/prompts/memory.js +0 -29
  293. package/dist/prompts/memory.js.map +0 -1
  294. package/dist/prompts/personality.d.ts +0 -77
  295. package/dist/prompts/personality.d.ts.map +0 -1
  296. package/dist/prompts/personality.js +0 -393
  297. package/dist/prompts/personality.js.map +0 -1
  298. package/dist/prompts/plan-generator.d.ts +0 -144
  299. package/dist/prompts/plan-generator.d.ts.map +0 -1
  300. package/dist/prompts/plan-generator.js +0 -553
  301. package/dist/prompts/plan-generator.js.map +0 -1
  302. package/dist/prompts/system.d.ts +0 -95
  303. package/dist/prompts/system.d.ts.map +0 -1
  304. package/dist/prompts/system.js +0 -461
  305. package/dist/prompts/system.js.map +0 -1
  306. package/dist/prompts/task-processor.d.ts +0 -94
  307. package/dist/prompts/task-processor.d.ts.map +0 -1
  308. package/dist/prompts/task-processor.js +0 -554
  309. package/dist/prompts/task-processor.js.map +0 -1
  310. package/dist/prompts/unguarded.d.ts +0 -78
  311. package/dist/prompts/unguarded.d.ts.map +0 -1
  312. package/dist/prompts/unguarded.js +0 -418
  313. package/dist/prompts/unguarded.js.map +0 -1
  314. package/dist/prompts/utils.d.ts +0 -73
  315. package/dist/prompts/utils.d.ts.map +0 -1
  316. package/dist/prompts/utils.js +0 -114
  317. package/dist/prompts/utils.js.map +0 -1
  318. package/dist/prompts/workflow.d.ts +0 -241
  319. package/dist/prompts/workflow.d.ts.map +0 -1
  320. package/dist/prompts/workflow.js +0 -608
  321. package/dist/prompts/workflow.js.map +0 -1
  322. package/dist/services/action-logger.d.ts +0 -383
  323. package/dist/services/action-logger.d.ts.map +0 -1
  324. package/dist/services/action-logger.js +0 -544
  325. package/dist/services/action-logger.js.map +0 -1
  326. package/dist/services/agent-budget-allocator.d.ts +0 -111
  327. package/dist/services/agent-budget-allocator.d.ts.map +0 -1
  328. package/dist/services/agent-budget-allocator.js +0 -278
  329. package/dist/services/agent-budget-allocator.js.map +0 -1
  330. package/dist/services/agent-manager.d.ts +0 -181
  331. package/dist/services/agent-manager.d.ts.map +0 -1
  332. package/dist/services/agent-manager.js +0 -749
  333. package/dist/services/agent-manager.js.map +0 -1
  334. package/dist/services/agent-spawner.d.ts +0 -138
  335. package/dist/services/agent-spawner.d.ts.map +0 -1
  336. package/dist/services/agent-spawner.js +0 -748
  337. package/dist/services/agent-spawner.js.map +0 -1
  338. package/dist/services/agent-state-service.d.ts +0 -145
  339. package/dist/services/agent-state-service.d.ts.map +0 -1
  340. package/dist/services/agent-state-service.js +0 -247
  341. package/dist/services/agent-state-service.js.map +0 -1
  342. package/dist/services/anthropic-client.d.ts +0 -357
  343. package/dist/services/anthropic-client.d.ts.map +0 -1
  344. package/dist/services/anthropic-client.js +0 -1451
  345. package/dist/services/anthropic-client.js.map +0 -1
  346. package/dist/services/approval-manager.d.ts +0 -385
  347. package/dist/services/approval-manager.d.ts.map +0 -1
  348. package/dist/services/approval-manager.js +0 -1044
  349. package/dist/services/approval-manager.js.map +0 -1
  350. package/dist/services/audit-logger.d.ts +0 -245
  351. package/dist/services/audit-logger.d.ts.map +0 -1
  352. package/dist/services/audit-logger.js +0 -324
  353. package/dist/services/audit-logger.js.map +0 -1
  354. package/dist/services/backup-manager.d.ts +0 -136
  355. package/dist/services/backup-manager.d.ts.map +0 -1
  356. package/dist/services/backup-manager.js +0 -260
  357. package/dist/services/backup-manager.js.map +0 -1
  358. package/dist/services/cache-service.d.ts +0 -247
  359. package/dist/services/cache-service.d.ts.map +0 -1
  360. package/dist/services/cache-service.js +0 -558
  361. package/dist/services/cache-service.js.map +0 -1
  362. package/dist/services/chat-archival-service.d.ts +0 -108
  363. package/dist/services/chat-archival-service.d.ts.map +0 -1
  364. package/dist/services/chat-archival-service.js +0 -465
  365. package/dist/services/chat-archival-service.js.map +0 -1
  366. package/dist/services/codebase-indexer.d.ts +0 -272
  367. package/dist/services/codebase-indexer.d.ts.map +0 -1
  368. package/dist/services/codebase-indexer.js +0 -863
  369. package/dist/services/codebase-indexer.js.map +0 -1
  370. package/dist/services/compass-auth-service.d.ts +0 -204
  371. package/dist/services/compass-auth-service.d.ts.map +0 -1
  372. package/dist/services/compass-auth-service.js +0 -391
  373. package/dist/services/compass-auth-service.js.map +0 -1
  374. package/dist/services/complexity-classifier.d.ts +0 -208
  375. package/dist/services/complexity-classifier.d.ts.map +0 -1
  376. package/dist/services/complexity-classifier.js +0 -1410
  377. package/dist/services/complexity-classifier.js.map +0 -1
  378. package/dist/services/config-manager.d.ts +0 -278
  379. package/dist/services/config-manager.d.ts.map +0 -1
  380. package/dist/services/config-manager.js +0 -651
  381. package/dist/services/config-manager.js.map +0 -1
  382. package/dist/services/consent-manager.d.ts +0 -239
  383. package/dist/services/consent-manager.d.ts.map +0 -1
  384. package/dist/services/consent-manager.js +0 -516
  385. package/dist/services/consent-manager.js.map +0 -1
  386. package/dist/services/conversation-compactor.d.ts +0 -223
  387. package/dist/services/conversation-compactor.d.ts.map +0 -1
  388. package/dist/services/conversation-compactor.js +0 -750
  389. package/dist/services/conversation-compactor.js.map +0 -1
  390. package/dist/services/cost-tracker.d.ts +0 -167
  391. package/dist/services/cost-tracker.d.ts.map +0 -1
  392. package/dist/services/cost-tracker.js +0 -199
  393. package/dist/services/cost-tracker.js.map +0 -1
  394. package/dist/services/credential-store.d.ts +0 -273
  395. package/dist/services/credential-store.d.ts.map +0 -1
  396. package/dist/services/credential-store.js +0 -877
  397. package/dist/services/credential-store.js.map +0 -1
  398. package/dist/services/custom-command-service.d.ts +0 -112
  399. package/dist/services/custom-command-service.d.ts.map +0 -1
  400. package/dist/services/custom-command-service.js +0 -464
  401. package/dist/services/custom-command-service.js.map +0 -1
  402. package/dist/services/default-statusline-renderer.d.ts +0 -60
  403. package/dist/services/default-statusline-renderer.d.ts.map +0 -1
  404. package/dist/services/default-statusline-renderer.js +0 -110
  405. package/dist/services/default-statusline-renderer.js.map +0 -1
  406. package/dist/services/enhanced-context-gatherer.d.ts +0 -116
  407. package/dist/services/enhanced-context-gatherer.d.ts.map +0 -1
  408. package/dist/services/enhanced-context-gatherer.js +0 -605
  409. package/dist/services/enhanced-context-gatherer.js.map +0 -1
  410. package/dist/services/file-hash-tracker.d.ts +0 -95
  411. package/dist/services/file-hash-tracker.d.ts.map +0 -1
  412. package/dist/services/file-hash-tracker.js +0 -199
  413. package/dist/services/file-hash-tracker.js.map +0 -1
  414. package/dist/services/file-service.d.ts +0 -274
  415. package/dist/services/file-service.d.ts.map +0 -1
  416. package/dist/services/file-service.js +0 -876
  417. package/dist/services/file-service.js.map +0 -1
  418. package/dist/services/git-service.d.ts +0 -536
  419. package/dist/services/git-service.d.ts.map +0 -1
  420. package/dist/services/git-service.js +0 -1215
  421. package/dist/services/git-service.js.map +0 -1
  422. package/dist/services/hook-service.d.ts +0 -148
  423. package/dist/services/hook-service.d.ts.map +0 -1
  424. package/dist/services/hook-service.js +0 -705
  425. package/dist/services/hook-service.js.map +0 -1
  426. package/dist/services/ide-state-service.d.ts +0 -114
  427. package/dist/services/ide-state-service.d.ts.map +0 -1
  428. package/dist/services/ide-state-service.js +0 -204
  429. package/dist/services/ide-state-service.js.map +0 -1
  430. package/dist/services/interactive-clarifier.d.ts +0 -90
  431. package/dist/services/interactive-clarifier.d.ts.map +0 -1
  432. package/dist/services/interactive-clarifier.js +0 -446
  433. package/dist/services/interactive-clarifier.js.map +0 -1
  434. package/dist/services/iteration-scoper.d.ts +0 -225
  435. package/dist/services/iteration-scoper.d.ts.map +0 -1
  436. package/dist/services/iteration-scoper.js +0 -387
  437. package/dist/services/iteration-scoper.js.map +0 -1
  438. package/dist/services/llm-plan-generator.d.ts +0 -44
  439. package/dist/services/llm-plan-generator.d.ts.map +0 -1
  440. package/dist/services/llm-plan-generator.js +0 -863
  441. package/dist/services/llm-plan-generator.js.map +0 -1
  442. package/dist/services/llm-system-prompt-generator.d.ts +0 -85
  443. package/dist/services/llm-system-prompt-generator.d.ts.map +0 -1
  444. package/dist/services/llm-system-prompt-generator.js +0 -257
  445. package/dist/services/llm-system-prompt-generator.js.map +0 -1
  446. package/dist/services/log-interpreter.d.ts +0 -190
  447. package/dist/services/log-interpreter.d.ts.map +0 -1
  448. package/dist/services/log-interpreter.js +0 -520
  449. package/dist/services/log-interpreter.js.map +0 -1
  450. package/dist/services/mcp-config-manager.d.ts +0 -141
  451. package/dist/services/mcp-config-manager.d.ts.map +0 -1
  452. package/dist/services/mcp-config-manager.js +0 -678
  453. package/dist/services/mcp-config-manager.js.map +0 -1
  454. package/dist/services/mcp-oauth-service.d.ts +0 -170
  455. package/dist/services/mcp-oauth-service.d.ts.map +0 -1
  456. package/dist/services/mcp-oauth-service.js +0 -892
  457. package/dist/services/mcp-oauth-service.js.map +0 -1
  458. package/dist/services/mcp-plugin-support.d.ts +0 -81
  459. package/dist/services/mcp-plugin-support.d.ts.map +0 -1
  460. package/dist/services/mcp-plugin-support.js +0 -305
  461. package/dist/services/mcp-plugin-support.js.map +0 -1
  462. package/dist/services/mcp-server-manager.d.ts +0 -134
  463. package/dist/services/mcp-server-manager.d.ts.map +0 -1
  464. package/dist/services/mcp-server-manager.js +0 -613
  465. package/dist/services/mcp-server-manager.js.map +0 -1
  466. package/dist/services/mcp-tool-integration.d.ts +0 -119
  467. package/dist/services/mcp-tool-integration.d.ts.map +0 -1
  468. package/dist/services/mcp-tool-integration.js +0 -381
  469. package/dist/services/mcp-tool-integration.js.map +0 -1
  470. package/dist/services/mcp-transport.d.ts +0 -105
  471. package/dist/services/mcp-transport.d.ts.map +0 -1
  472. package/dist/services/mcp-transport.js +0 -1316
  473. package/dist/services/mcp-transport.js.map +0 -1
  474. package/dist/services/memory-service.d.ts +0 -55
  475. package/dist/services/memory-service.d.ts.map +0 -1
  476. package/dist/services/memory-service.js +0 -251
  477. package/dist/services/memory-service.js.map +0 -1
  478. package/dist/services/model-availability.d.ts +0 -64
  479. package/dist/services/model-availability.d.ts.map +0 -1
  480. package/dist/services/model-availability.js +0 -114
  481. package/dist/services/model-availability.js.map +0 -1
  482. package/dist/services/plan-generator.d.ts +0 -98
  483. package/dist/services/plan-generator.d.ts.map +0 -1
  484. package/dist/services/plan-generator.js +0 -658
  485. package/dist/services/plan-generator.js.map +0 -1
  486. package/dist/services/plan-mode-fallback.d.ts +0 -80
  487. package/dist/services/plan-mode-fallback.d.ts.map +0 -1
  488. package/dist/services/plan-mode-fallback.js +0 -307
  489. package/dist/services/plan-mode-fallback.js.map +0 -1
  490. package/dist/services/plan-mode-handler.d.ts +0 -42
  491. package/dist/services/plan-mode-handler.d.ts.map +0 -1
  492. package/dist/services/plan-mode-handler.js +0 -388
  493. package/dist/services/plan-mode-handler.js.map +0 -1
  494. package/dist/services/plan-persistence.d.ts +0 -203
  495. package/dist/services/plan-persistence.d.ts.map +0 -1
  496. package/dist/services/plan-persistence.js +0 -538
  497. package/dist/services/plan-persistence.js.map +0 -1
  498. package/dist/services/prompt-preprocessor.d.ts +0 -73
  499. package/dist/services/prompt-preprocessor.d.ts.map +0 -1
  500. package/dist/services/prompt-preprocessor.js +0 -146
  501. package/dist/services/prompt-preprocessor.js.map +0 -1
  502. package/dist/services/rating-service.d.ts +0 -84
  503. package/dist/services/rating-service.d.ts.map +0 -1
  504. package/dist/services/rating-service.js +0 -171
  505. package/dist/services/rating-service.js.map +0 -1
  506. package/dist/services/rating-state-manager.d.ts +0 -131
  507. package/dist/services/rating-state-manager.d.ts.map +0 -1
  508. package/dist/services/rating-state-manager.js +0 -270
  509. package/dist/services/rating-state-manager.js.map +0 -1
  510. package/dist/services/sdk-runner.d.ts +0 -113
  511. package/dist/services/sdk-runner.d.ts.map +0 -1
  512. package/dist/services/sdk-runner.js +0 -1424
  513. package/dist/services/sdk-runner.js.map +0 -1
  514. package/dist/services/session-manager.d.ts +0 -528
  515. package/dist/services/session-manager.d.ts.map +0 -1
  516. package/dist/services/session-manager.js +0 -1184
  517. package/dist/services/session-manager.js.map +0 -1
  518. package/dist/services/shell-executor.d.ts +0 -337
  519. package/dist/services/shell-executor.d.ts.map +0 -1
  520. package/dist/services/shell-executor.js +0 -1201
  521. package/dist/services/shell-executor.js.map +0 -1
  522. package/dist/services/skill-service.d.ts +0 -149
  523. package/dist/services/skill-service.d.ts.map +0 -1
  524. package/dist/services/skill-service.js +0 -594
  525. package/dist/services/skill-service.js.map +0 -1
  526. package/dist/services/statusline-executor.d.ts +0 -102
  527. package/dist/services/statusline-executor.d.ts.map +0 -1
  528. package/dist/services/statusline-executor.js +0 -305
  529. package/dist/services/statusline-executor.js.map +0 -1
  530. package/dist/services/step-tracker.d.ts +0 -356
  531. package/dist/services/step-tracker.d.ts.map +0 -1
  532. package/dist/services/step-tracker.js +0 -634
  533. package/dist/services/step-tracker.js.map +0 -1
  534. package/dist/services/system-event-logger.d.ts +0 -473
  535. package/dist/services/system-event-logger.d.ts.map +0 -1
  536. package/dist/services/system-event-logger.js +0 -790
  537. package/dist/services/system-event-logger.js.map +0 -1
  538. package/dist/services/system-utility-detector.d.ts +0 -91
  539. package/dist/services/system-utility-detector.d.ts.map +0 -1
  540. package/dist/services/system-utility-detector.js +0 -238
  541. package/dist/services/system-utility-detector.js.map +0 -1
  542. package/dist/services/team-context-store.d.ts +0 -100
  543. package/dist/services/team-context-store.d.ts.map +0 -1
  544. package/dist/services/team-context-store.js +0 -513
  545. package/dist/services/team-context-store.js.map +0 -1
  546. package/dist/services/temp-file-service.d.ts +0 -164
  547. package/dist/services/temp-file-service.d.ts.map +0 -1
  548. package/dist/services/temp-file-service.js +0 -303
  549. package/dist/services/temp-file-service.js.map +0 -1
  550. package/dist/services/token-limit-enforcer.d.ts +0 -53
  551. package/dist/services/token-limit-enforcer.d.ts.map +0 -1
  552. package/dist/services/token-limit-enforcer.js +0 -90
  553. package/dist/services/token-limit-enforcer.js.map +0 -1
  554. package/dist/services/token-limit-store.d.ts +0 -105
  555. package/dist/services/token-limit-store.d.ts.map +0 -1
  556. package/dist/services/token-limit-store.js +0 -288
  557. package/dist/services/token-limit-store.js.map +0 -1
  558. package/dist/services/token-tracker.d.ts +0 -290
  559. package/dist/services/token-tracker.d.ts.map +0 -1
  560. package/dist/services/token-tracker.js +0 -751
  561. package/dist/services/token-tracker.js.map +0 -1
  562. package/dist/services/tool-registry.d.ts +0 -302
  563. package/dist/services/tool-registry.d.ts.map +0 -1
  564. package/dist/services/tool-registry.js +0 -606
  565. package/dist/services/tool-registry.js.map +0 -1
  566. package/dist/services/tools-logger.d.ts +0 -152
  567. package/dist/services/tools-logger.d.ts.map +0 -1
  568. package/dist/services/tools-logger.js +0 -222
  569. package/dist/services/tools-logger.js.map +0 -1
  570. package/dist/services/update-plan-handler.d.ts +0 -56
  571. package/dist/services/update-plan-handler.d.ts.map +0 -1
  572. package/dist/services/update-plan-handler.js +0 -372
  573. package/dist/services/update-plan-handler.js.map +0 -1
  574. package/dist/services/update-service.d.ts +0 -197
  575. package/dist/services/update-service.d.ts.map +0 -1
  576. package/dist/services/update-service.js +0 -749
  577. package/dist/services/update-service.js.map +0 -1
  578. package/dist/services/verifier.d.ts +0 -113
  579. package/dist/services/verifier.d.ts.map +0 -1
  580. package/dist/services/verifier.js +0 -541
  581. package/dist/services/verifier.js.map +0 -1
  582. package/dist/services/workflow-manager.d.ts +0 -277
  583. package/dist/services/workflow-manager.d.ts.map +0 -1
  584. package/dist/services/workflow-manager.js +0 -616
  585. package/dist/services/workflow-manager.js.map +0 -1
  586. package/dist/services/workflow-orchestrator.d.ts +0 -148
  587. package/dist/services/workflow-orchestrator.d.ts.map +0 -1
  588. package/dist/services/workflow-orchestrator.js +0 -617
  589. package/dist/services/workflow-orchestrator.js.map +0 -1
  590. package/dist/services/worktree-manager.d.ts +0 -36
  591. package/dist/services/worktree-manager.d.ts.map +0 -1
  592. package/dist/services/worktree-manager.js +0 -185
  593. package/dist/services/worktree-manager.js.map +0 -1
  594. package/dist/templates/ascii-art.d.ts +0 -136
  595. package/dist/templates/ascii-art.d.ts.map +0 -1
  596. package/dist/templates/ascii-art.js +0 -286
  597. package/dist/templates/ascii-art.js.map +0 -1
  598. package/dist/templates/help.d.ts +0 -186
  599. package/dist/templates/help.d.ts.map +0 -1
  600. package/dist/templates/help.js +0 -588
  601. package/dist/templates/help.js.map +0 -1
  602. package/dist/templates/prompts/workflow-prompts.d.ts +0 -9
  603. package/dist/templates/prompts/workflow-prompts.d.ts.map +0 -1
  604. package/dist/templates/prompts/workflow-prompts.js +0 -9
  605. package/dist/templates/prompts/workflow-prompts.js.map +0 -1
  606. package/dist/tools/agent-tools.d.ts +0 -9
  607. package/dist/tools/agent-tools.d.ts.map +0 -1
  608. package/dist/tools/agent-tools.js +0 -349
  609. package/dist/tools/agent-tools.js.map +0 -1
  610. package/dist/tools/edit-replacers.d.ts +0 -90
  611. package/dist/tools/edit-replacers.d.ts.map +0 -1
  612. package/dist/tools/edit-replacers.js +0 -553
  613. package/dist/tools/edit-replacers.js.map +0 -1
  614. package/dist/tools/file-tools.d.ts +0 -13
  615. package/dist/tools/file-tools.d.ts.map +0 -1
  616. package/dist/tools/file-tools.js +0 -954
  617. package/dist/tools/file-tools.js.map +0 -1
  618. package/dist/tools/git-tools.d.ts +0 -9
  619. package/dist/tools/git-tools.d.ts.map +0 -1
  620. package/dist/tools/git-tools.js +0 -261
  621. package/dist/tools/git-tools.js.map +0 -1
  622. package/dist/tools/index.d.ts +0 -13
  623. package/dist/tools/index.d.ts.map +0 -1
  624. package/dist/tools/index.js +0 -70
  625. package/dist/tools/index.js.map +0 -1
  626. package/dist/tools/network-tools.d.ts +0 -8
  627. package/dist/tools/network-tools.d.ts.map +0 -1
  628. package/dist/tools/network-tools.js +0 -261
  629. package/dist/tools/network-tools.js.map +0 -1
  630. package/dist/tools/openai-tools.d.ts +0 -16
  631. package/dist/tools/openai-tools.d.ts.map +0 -1
  632. package/dist/tools/openai-tools.js +0 -385
  633. package/dist/tools/openai-tools.js.map +0 -1
  634. package/dist/tools/plan-tools.d.ts +0 -9
  635. package/dist/tools/plan-tools.d.ts.map +0 -1
  636. package/dist/tools/plan-tools.js +0 -223
  637. package/dist/tools/plan-tools.js.map +0 -1
  638. package/dist/tools/schedule-tools.d.ts +0 -9
  639. package/dist/tools/schedule-tools.d.ts.map +0 -1
  640. package/dist/tools/schedule-tools.js +0 -405
  641. package/dist/tools/schedule-tools.js.map +0 -1
  642. package/dist/tools/search-tools.d.ts +0 -8
  643. package/dist/tools/search-tools.d.ts.map +0 -1
  644. package/dist/tools/search-tools.js +0 -357
  645. package/dist/tools/search-tools.js.map +0 -1
  646. package/dist/tools/shared-utils.d.ts +0 -91
  647. package/dist/tools/shared-utils.d.ts.map +0 -1
  648. package/dist/tools/shared-utils.js +0 -385
  649. package/dist/tools/shared-utils.js.map +0 -1
  650. package/dist/tools/shell-tools.d.ts +0 -9
  651. package/dist/tools/shell-tools.d.ts.map +0 -1
  652. package/dist/tools/shell-tools.js +0 -409
  653. package/dist/tools/shell-tools.js.map +0 -1
  654. package/dist/tools/skill-tools.d.ts +0 -13
  655. package/dist/tools/skill-tools.d.ts.map +0 -1
  656. package/dist/tools/skill-tools.js +0 -244
  657. package/dist/tools/skill-tools.js.map +0 -1
  658. package/dist/tools/swarm-tools.d.ts +0 -9
  659. package/dist/tools/swarm-tools.d.ts.map +0 -1
  660. package/dist/tools/swarm-tools.js +0 -422
  661. package/dist/tools/swarm-tools.js.map +0 -1
  662. package/dist/tools/user-tools.d.ts +0 -13
  663. package/dist/tools/user-tools.d.ts.map +0 -1
  664. package/dist/tools/user-tools.js +0 -232
  665. package/dist/tools/user-tools.js.map +0 -1
  666. package/dist/types/agent-process.d.ts +0 -244
  667. package/dist/types/agent-process.d.ts.map +0 -1
  668. package/dist/types/agent-process.js +0 -93
  669. package/dist/types/agent-process.js.map +0 -1
  670. package/dist/types/agent.d.ts +0 -358
  671. package/dist/types/agent.d.ts.map +0 -1
  672. package/dist/types/agent.js +0 -171
  673. package/dist/types/agent.js.map +0 -1
  674. package/dist/types/anthropic.d.ts +0 -438
  675. package/dist/types/anthropic.d.ts.map +0 -1
  676. package/dist/types/anthropic.js +0 -9
  677. package/dist/types/anthropic.js.map +0 -1
  678. package/dist/types/approval.d.ts +0 -332
  679. package/dist/types/approval.d.ts.map +0 -1
  680. package/dist/types/approval.js +0 -44
  681. package/dist/types/approval.js.map +0 -1
  682. package/dist/types/autocomplete.d.ts +0 -57
  683. package/dist/types/autocomplete.d.ts.map +0 -1
  684. package/dist/types/autocomplete.js +0 -7
  685. package/dist/types/autocomplete.js.map +0 -1
  686. package/dist/types/chat-archive.d.ts +0 -161
  687. package/dist/types/chat-archive.d.ts.map +0 -1
  688. package/dist/types/chat-archive.js +0 -36
  689. package/dist/types/chat-archive.js.map +0 -1
  690. package/dist/types/config.d.ts +0 -268
  691. package/dist/types/config.d.ts.map +0 -1
  692. package/dist/types/config.js +0 -188
  693. package/dist/types/config.js.map +0 -1
  694. package/dist/types/consent.d.ts +0 -191
  695. package/dist/types/consent.d.ts.map +0 -1
  696. package/dist/types/consent.js +0 -119
  697. package/dist/types/consent.js.map +0 -1
  698. package/dist/types/custom-command.d.ts +0 -139
  699. package/dist/types/custom-command.d.ts.map +0 -1
  700. package/dist/types/custom-command.js +0 -7
  701. package/dist/types/custom-command.js.map +0 -1
  702. package/dist/types/git.d.ts +0 -20
  703. package/dist/types/git.d.ts.map +0 -1
  704. package/dist/types/git.js +0 -2
  705. package/dist/types/git.js.map +0 -1
  706. package/dist/types/hook.d.ts +0 -342
  707. package/dist/types/hook.d.ts.map +0 -1
  708. package/dist/types/hook.js +0 -84
  709. package/dist/types/hook.js.map +0 -1
  710. package/dist/types/index.d.ts +0 -86
  711. package/dist/types/index.d.ts.map +0 -1
  712. package/dist/types/index.js +0 -71
  713. package/dist/types/index.js.map +0 -1
  714. package/dist/types/mcp.d.ts +0 -456
  715. package/dist/types/mcp.d.ts.map +0 -1
  716. package/dist/types/mcp.js +0 -94
  717. package/dist/types/mcp.js.map +0 -1
  718. package/dist/types/rating.d.ts +0 -110
  719. package/dist/types/rating.d.ts.map +0 -1
  720. package/dist/types/rating.js +0 -53
  721. package/dist/types/rating.js.map +0 -1
  722. package/dist/types/schedule.d.ts +0 -91
  723. package/dist/types/schedule.d.ts.map +0 -1
  724. package/dist/types/schedule.js +0 -8
  725. package/dist/types/schedule.js.map +0 -1
  726. package/dist/types/session.d.ts +0 -361
  727. package/dist/types/session.d.ts.map +0 -1
  728. package/dist/types/session.js +0 -9
  729. package/dist/types/session.js.map +0 -1
  730. package/dist/types/skill.d.ts +0 -258
  731. package/dist/types/skill.d.ts.map +0 -1
  732. package/dist/types/skill.js +0 -79
  733. package/dist/types/skill.js.map +0 -1
  734. package/dist/types/statusline.d.ts +0 -212
  735. package/dist/types/statusline.d.ts.map +0 -1
  736. package/dist/types/statusline.js +0 -8
  737. package/dist/types/statusline.js.map +0 -1
  738. package/dist/types/stream.d.ts +0 -61
  739. package/dist/types/stream.d.ts.map +0 -1
  740. package/dist/types/stream.js +0 -17
  741. package/dist/types/stream.js.map +0 -1
  742. package/dist/types/swarm.d.ts +0 -132
  743. package/dist/types/swarm.d.ts.map +0 -1
  744. package/dist/types/swarm.js +0 -21
  745. package/dist/types/swarm.js.map +0 -1
  746. package/dist/types/token-limits.d.ts +0 -107
  747. package/dist/types/token-limits.d.ts.map +0 -1
  748. package/dist/types/token-limits.js +0 -57
  749. package/dist/types/token-limits.js.map +0 -1
  750. package/dist/types/token.d.ts +0 -329
  751. package/dist/types/token.d.ts.map +0 -1
  752. package/dist/types/token.js +0 -9
  753. package/dist/types/token.js.map +0 -1
  754. package/dist/types/update.d.ts +0 -189
  755. package/dist/types/update.d.ts.map +0 -1
  756. package/dist/types/update.js +0 -55
  757. package/dist/types/update.js.map +0 -1
  758. package/dist/types/workflow.d.ts +0 -396
  759. package/dist/types/workflow.d.ts.map +0 -1
  760. package/dist/types/workflow.js +0 -46
  761. package/dist/types/workflow.js.map +0 -1
  762. package/dist/ui/App.d.ts +0 -62
  763. package/dist/ui/App.d.ts.map +0 -1
  764. package/dist/ui/App.js +0 -511
  765. package/dist/ui/App.js.map +0 -1
  766. package/dist/ui/InteractiveSession.d.ts +0 -34
  767. package/dist/ui/InteractiveSession.d.ts.map +0 -1
  768. package/dist/ui/InteractiveSession.js +0 -3611
  769. package/dist/ui/InteractiveSession.js.map +0 -1
  770. package/dist/ui/MCPApprovalPrompt.d.ts +0 -27
  771. package/dist/ui/MCPApprovalPrompt.d.ts.map +0 -1
  772. package/dist/ui/MCPApprovalPrompt.js +0 -51
  773. package/dist/ui/MCPApprovalPrompt.js.map +0 -1
  774. package/dist/ui/SetupWizard.d.ts +0 -26
  775. package/dist/ui/SetupWizard.d.ts.map +0 -1
  776. package/dist/ui/SetupWizard.js +0 -396
  777. package/dist/ui/SetupWizard.js.map +0 -1
  778. package/dist/ui/components/AgentCreationWizard.d.ts +0 -36
  779. package/dist/ui/components/AgentCreationWizard.d.ts.map +0 -1
  780. package/dist/ui/components/AgentCreationWizard.js +0 -619
  781. package/dist/ui/components/AgentCreationWizard.js.map +0 -1
  782. package/dist/ui/components/AgentManager.d.ts +0 -41
  783. package/dist/ui/components/AgentManager.d.ts.map +0 -1
  784. package/dist/ui/components/AgentManager.js +0 -343
  785. package/dist/ui/components/AgentManager.js.map +0 -1
  786. package/dist/ui/components/ApprovalDialog.d.ts +0 -18
  787. package/dist/ui/components/ApprovalDialog.d.ts.map +0 -1
  788. package/dist/ui/components/ApprovalDialog.js +0 -439
  789. package/dist/ui/components/ApprovalDialog.js.map +0 -1
  790. package/dist/ui/components/AsciiArt.d.ts +0 -54
  791. package/dist/ui/components/AsciiArt.d.ts.map +0 -1
  792. package/dist/ui/components/AsciiArt.js +0 -89
  793. package/dist/ui/components/AsciiArt.js.map +0 -1
  794. package/dist/ui/components/ClarificationWizard.d.ts +0 -36
  795. package/dist/ui/components/ClarificationWizard.d.ts.map +0 -1
  796. package/dist/ui/components/ClarificationWizard.js +0 -407
  797. package/dist/ui/components/ClarificationWizard.js.map +0 -1
  798. package/dist/ui/components/CompassSpinner.d.ts +0 -15
  799. package/dist/ui/components/CompassSpinner.d.ts.map +0 -1
  800. package/dist/ui/components/CompassSpinner.js +0 -50
  801. package/dist/ui/components/CompassSpinner.js.map +0 -1
  802. package/dist/ui/components/ConfirmationSelector.d.ts +0 -45
  803. package/dist/ui/components/ConfirmationSelector.d.ts.map +0 -1
  804. package/dist/ui/components/ConfirmationSelector.js +0 -106
  805. package/dist/ui/components/ConfirmationSelector.js.map +0 -1
  806. package/dist/ui/components/ContextUsage.d.ts +0 -76
  807. package/dist/ui/components/ContextUsage.d.ts.map +0 -1
  808. package/dist/ui/components/ContextUsage.js +0 -188
  809. package/dist/ui/components/ContextUsage.js.map +0 -1
  810. package/dist/ui/components/DiffPreview.d.ts +0 -13
  811. package/dist/ui/components/DiffPreview.d.ts.map +0 -1
  812. package/dist/ui/components/DiffPreview.js +0 -30
  813. package/dist/ui/components/DiffPreview.js.map +0 -1
  814. package/dist/ui/components/ExecutionModeSelector.d.ts +0 -45
  815. package/dist/ui/components/ExecutionModeSelector.d.ts.map +0 -1
  816. package/dist/ui/components/ExecutionModeSelector.js +0 -120
  817. package/dist/ui/components/ExecutionModeSelector.js.map +0 -1
  818. package/dist/ui/components/FileTree.d.ts +0 -47
  819. package/dist/ui/components/FileTree.d.ts.map +0 -1
  820. package/dist/ui/components/FileTree.js +0 -258
  821. package/dist/ui/components/FileTree.js.map +0 -1
  822. package/dist/ui/components/HelpMenu.d.ts +0 -49
  823. package/dist/ui/components/HelpMenu.d.ts.map +0 -1
  824. package/dist/ui/components/HelpMenu.js +0 -91
  825. package/dist/ui/components/HelpMenu.js.map +0 -1
  826. package/dist/ui/components/InterleavedStream.d.ts +0 -42
  827. package/dist/ui/components/InterleavedStream.d.ts.map +0 -1
  828. package/dist/ui/components/InterleavedStream.js +0 -1500
  829. package/dist/ui/components/InterleavedStream.js.map +0 -1
  830. package/dist/ui/components/ModelSelector.d.ts +0 -81
  831. package/dist/ui/components/ModelSelector.d.ts.map +0 -1
  832. package/dist/ui/components/ModelSelector.js +0 -305
  833. package/dist/ui/components/ModelSelector.js.map +0 -1
  834. package/dist/ui/components/PlanApprovalDialog.d.ts +0 -21
  835. package/dist/ui/components/PlanApprovalDialog.d.ts.map +0 -1
  836. package/dist/ui/components/PlanApprovalDialog.js +0 -189
  837. package/dist/ui/components/PlanApprovalDialog.js.map +0 -1
  838. package/dist/ui/components/PlanExecutionTracker.d.ts +0 -53
  839. package/dist/ui/components/PlanExecutionTracker.d.ts.map +0 -1
  840. package/dist/ui/components/PlanExecutionTracker.js +0 -113
  841. package/dist/ui/components/PlanExecutionTracker.js.map +0 -1
  842. package/dist/ui/components/ProgressIndicator.d.ts +0 -151
  843. package/dist/ui/components/ProgressIndicator.d.ts.map +0 -1
  844. package/dist/ui/components/ProgressIndicator.js +0 -171
  845. package/dist/ui/components/ProgressIndicator.js.map +0 -1
  846. package/dist/ui/components/Prompt.d.ts +0 -47
  847. package/dist/ui/components/Prompt.d.ts.map +0 -1
  848. package/dist/ui/components/Prompt.js +0 -632
  849. package/dist/ui/components/Prompt.js.map +0 -1
  850. package/dist/ui/components/RatingPanel.d.ts +0 -45
  851. package/dist/ui/components/RatingPanel.d.ts.map +0 -1
  852. package/dist/ui/components/RatingPanel.js +0 -119
  853. package/dist/ui/components/RatingPanel.js.map +0 -1
  854. package/dist/ui/components/StatusLine.d.ts +0 -43
  855. package/dist/ui/components/StatusLine.d.ts.map +0 -1
  856. package/dist/ui/components/StatusLine.js +0 -44
  857. package/dist/ui/components/StatusLine.js.map +0 -1
  858. package/dist/ui/components/StreamingResponse.d.ts +0 -45
  859. package/dist/ui/components/StreamingResponse.d.ts.map +0 -1
  860. package/dist/ui/components/StreamingResponse.js +0 -56
  861. package/dist/ui/components/StreamingResponse.js.map +0 -1
  862. package/dist/ui/components/TokenUsage.d.ts +0 -89
  863. package/dist/ui/components/TokenUsage.d.ts.map +0 -1
  864. package/dist/ui/components/TokenUsage.js +0 -99
  865. package/dist/ui/components/TokenUsage.js.map +0 -1
  866. package/dist/ui/components/ToolSummary.d.ts +0 -77
  867. package/dist/ui/components/ToolSummary.d.ts.map +0 -1
  868. package/dist/ui/components/ToolSummary.js +0 -162
  869. package/dist/ui/components/ToolSummary.js.map +0 -1
  870. package/dist/ui/components/UpdateNotification.d.ts +0 -65
  871. package/dist/ui/components/UpdateNotification.d.ts.map +0 -1
  872. package/dist/ui/components/UpdateNotification.js +0 -166
  873. package/dist/ui/components/UpdateNotification.js.map +0 -1
  874. package/dist/ui/diff-renderer.d.ts +0 -18
  875. package/dist/ui/diff-renderer.d.ts.map +0 -1
  876. package/dist/ui/diff-renderer.js +0 -206
  877. package/dist/ui/diff-renderer.js.map +0 -1
  878. package/dist/ui/themes/markdown-theme.d.ts +0 -48
  879. package/dist/ui/themes/markdown-theme.d.ts.map +0 -1
  880. package/dist/ui/themes/markdown-theme.js +0 -79
  881. package/dist/ui/themes/markdown-theme.js.map +0 -1
  882. package/dist/ui/themes/ui-theme.d.ts +0 -301
  883. package/dist/ui/themes/ui-theme.d.ts.map +0 -1
  884. package/dist/ui/themes/ui-theme.js +0 -204
  885. package/dist/ui/themes/ui-theme.js.map +0 -1
  886. package/dist/utils/attachment-handler.d.ts +0 -129
  887. package/dist/utils/attachment-handler.d.ts.map +0 -1
  888. package/dist/utils/attachment-handler.js +0 -280
  889. package/dist/utils/attachment-handler.js.map +0 -1
  890. package/dist/utils/backup-cleanup.d.ts +0 -28
  891. package/dist/utils/backup-cleanup.d.ts.map +0 -1
  892. package/dist/utils/backup-cleanup.js +0 -99
  893. package/dist/utils/backup-cleanup.js.map +0 -1
  894. package/dist/utils/clipboard-handler.d.ts +0 -82
  895. package/dist/utils/clipboard-handler.d.ts.map +0 -1
  896. package/dist/utils/clipboard-handler.js +0 -311
  897. package/dist/utils/clipboard-handler.js.map +0 -1
  898. package/dist/utils/cloud-detection.d.ts +0 -14
  899. package/dist/utils/cloud-detection.d.ts.map +0 -1
  900. package/dist/utils/cloud-detection.js +0 -92
  901. package/dist/utils/cloud-detection.js.map +0 -1
  902. package/dist/utils/command-parser.d.ts +0 -56
  903. package/dist/utils/command-parser.d.ts.map +0 -1
  904. package/dist/utils/command-parser.js +0 -206
  905. package/dist/utils/command-parser.js.map +0 -1
  906. package/dist/utils/console-capture.d.ts +0 -30
  907. package/dist/utils/console-capture.d.ts.map +0 -1
  908. package/dist/utils/console-capture.js +0 -88
  909. package/dist/utils/console-capture.js.map +0 -1
  910. package/dist/utils/cron-parser.d.ts +0 -52
  911. package/dist/utils/cron-parser.d.ts.map +0 -1
  912. package/dist/utils/cron-parser.js +0 -455
  913. package/dist/utils/cron-parser.js.map +0 -1
  914. package/dist/utils/crypto.d.ts +0 -351
  915. package/dist/utils/crypto.d.ts.map +0 -1
  916. package/dist/utils/crypto.js +0 -615
  917. package/dist/utils/crypto.js.map +0 -1
  918. package/dist/utils/diff.d.ts +0 -311
  919. package/dist/utils/diff.d.ts.map +0 -1
  920. package/dist/utils/diff.js +0 -566
  921. package/dist/utils/diff.js.map +0 -1
  922. package/dist/utils/editor.d.ts +0 -12
  923. package/dist/utils/editor.d.ts.map +0 -1
  924. package/dist/utils/editor.js +0 -30
  925. package/dist/utils/editor.js.map +0 -1
  926. package/dist/utils/file-system.d.ts +0 -512
  927. package/dist/utils/file-system.d.ts.map +0 -1
  928. package/dist/utils/file-system.js +0 -798
  929. package/dist/utils/file-system.js.map +0 -1
  930. package/dist/utils/format.d.ts +0 -318
  931. package/dist/utils/format.d.ts.map +0 -1
  932. package/dist/utils/format.js +0 -587
  933. package/dist/utils/format.js.map +0 -1
  934. package/dist/utils/ignore-patterns.d.ts +0 -93
  935. package/dist/utils/ignore-patterns.d.ts.map +0 -1
  936. package/dist/utils/ignore-patterns.js +0 -710
  937. package/dist/utils/ignore-patterns.js.map +0 -1
  938. package/dist/utils/log-cleanup.d.ts +0 -16
  939. package/dist/utils/log-cleanup.d.ts.map +0 -1
  940. package/dist/utils/log-cleanup.js +0 -51
  941. package/dist/utils/log-cleanup.js.map +0 -1
  942. package/dist/utils/logger.d.ts +0 -305
  943. package/dist/utils/logger.d.ts.map +0 -1
  944. package/dist/utils/logger.js +0 -447
  945. package/dist/utils/logger.js.map +0 -1
  946. package/dist/utils/path.d.ts +0 -406
  947. package/dist/utils/path.d.ts.map +0 -1
  948. package/dist/utils/path.js +0 -549
  949. package/dist/utils/path.js.map +0 -1
  950. package/dist/utils/schedule-file.d.ts +0 -63
  951. package/dist/utils/schedule-file.d.ts.map +0 -1
  952. package/dist/utils/schedule-file.js +0 -244
  953. package/dist/utils/schedule-file.js.map +0 -1
  954. package/dist/utils/task-id.d.ts +0 -29
  955. package/dist/utils/task-id.d.ts.map +0 -1
  956. package/dist/utils/task-id.js +0 -53
  957. package/dist/utils/task-id.js.map +0 -1
  958. package/dist/utils/temp-cleanup.d.ts +0 -46
  959. package/dist/utils/temp-cleanup.d.ts.map +0 -1
  960. package/dist/utils/temp-cleanup.js +0 -95
  961. package/dist/utils/temp-cleanup.js.map +0 -1
  962. package/dist/utils/terminal-output.d.ts +0 -34
  963. package/dist/utils/terminal-output.d.ts.map +0 -1
  964. package/dist/utils/terminal-output.js +0 -40
  965. package/dist/utils/terminal-output.js.map +0 -1
  966. package/dist/utils/token-counter.d.ts +0 -224
  967. package/dist/utils/token-counter.d.ts.map +0 -1
  968. package/dist/utils/token-counter.js +0 -332
  969. package/dist/utils/token-counter.js.map +0 -1
  970. package/dist/utils/tool-mapper.d.ts +0 -70
  971. package/dist/utils/tool-mapper.d.ts.map +0 -1
  972. package/dist/utils/tool-mapper.js +0 -234
  973. package/dist/utils/tool-mapper.js.map +0 -1
@@ -1,1316 +0,0 @@
1
- /**
2
- * MCP Transport Services.
3
- *
4
- * This module provides transport layer implementations for connecting to MCP servers
5
- * using different protocols: HTTP, SSE (Server-Sent Events), and stdio (local processes).
6
- */
7
- import { spawn } from 'child_process';
8
- import { logger } from '../utils/logger.js';
9
- import { getMCPOAuthService } from './mcp-oauth-service.js';
10
- import { DEFAULT_MCP_TIMEOUT, isMCPHttpConfig, isMCPSseConfig, isMCPStdioConfig, normalizeServerConfig, } from '../types/mcp.js';
11
- /**
12
- * Error thrown when MCP server requires authentication (HTTP 401).
13
- */
14
- export class AuthenticationRequiredError extends Error {
15
- serverName;
16
- serverUrl;
17
- constructor(serverName, serverUrl) {
18
- super(`Authentication required for MCP server '${serverName}'`);
19
- this.name = 'AuthenticationRequiredError';
20
- this.serverName = serverName;
21
- this.serverUrl = serverUrl;
22
- }
23
- }
24
- /**
25
- * Creates a simple HTTP-based MCP client.
26
- */
27
- class SimpleMCPClient {
28
- url;
29
- headers;
30
- connected = false;
31
- capabilities = {};
32
- requestTimeout;
33
- serverName;
34
- constructor(url, headers = {}, timeout = 30000, serverName = 'unknown') {
35
- this.url = url;
36
- this.serverName = serverName;
37
- this.headers = {
38
- 'Content-Type': 'application/json',
39
- 'Accept': 'application/json, text/event-stream',
40
- ...headers,
41
- };
42
- this.requestTimeout = timeout;
43
- }
44
- /**
45
- * Parses a JSON-RPC response from either a plain JSON body or an SSE stream.
46
- * MCP Streamable HTTP servers may respond with text/event-stream containing
47
- * SSE-formatted JSON-RPC messages.
48
- */
49
- async parseResponse(response) {
50
- const contentType = response.headers.get('content-type') || '';
51
- if (contentType.includes('text/event-stream')) {
52
- const text = await response.text();
53
- // Parse SSE: find "data:" lines and extract JSON from the last message event
54
- const lines = text.split('\n');
55
- let lastData = '';
56
- for (const line of lines) {
57
- if (line.startsWith('data:')) {
58
- const data = line.slice(5).trim();
59
- if (data) {
60
- lastData = data;
61
- }
62
- }
63
- }
64
- if (!lastData) {
65
- throw new Error('No data found in SSE response');
66
- }
67
- return JSON.parse(lastData);
68
- }
69
- return (await response.json());
70
- }
71
- async connect() {
72
- // Attempt to connect and get server info
73
- try {
74
- const abortController = new AbortController();
75
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
76
- const response = await fetch(this.url, {
77
- method: 'POST',
78
- headers: this.headers,
79
- body: JSON.stringify({
80
- jsonrpc: '2.0',
81
- id: 1,
82
- method: 'initialize',
83
- params: {
84
- protocolVersion: '2024-11-05',
85
- capabilities: {},
86
- clientInfo: { name: 'compass-cli', version: '1.0.0' },
87
- },
88
- }),
89
- signal: abortController.signal,
90
- });
91
- clearTimeout(timeoutId);
92
- if (response.ok) {
93
- const result = await this.parseResponse(response);
94
- if (result.result?.capabilities) {
95
- this.capabilities = {
96
- tools: !!result.result.capabilities.tools,
97
- resources: !!result.result.capabilities.resources,
98
- prompts: !!result.result.capabilities.prompts,
99
- logging: !!result.result.capabilities.logging,
100
- };
101
- }
102
- this.connected = true;
103
- }
104
- else if (response.status === 401) {
105
- // Authentication required - log response details for debugging
106
- const responseText = await response.text().catch(() => '');
107
- const wwwAuth = response.headers.get('WWW-Authenticate') || '';
108
- logger.debug(`401 response from ${this.serverName}: body=${responseText.slice(0, 200)}, WWW-Authenticate=${wwwAuth}`);
109
- throw new AuthenticationRequiredError(this.serverName, this.url);
110
- }
111
- else {
112
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
113
- }
114
- }
115
- catch (error) {
116
- // Rethrow AuthenticationRequiredError as-is for OAuth flow handling
117
- if (error instanceof AuthenticationRequiredError) {
118
- throw error;
119
- }
120
- if (error.name === 'AbortError') {
121
- throw new Error('Connection timeout');
122
- }
123
- const msg = error instanceof Error ? error.message : String(error);
124
- throw new Error(`Failed to connect: ${msg}`);
125
- }
126
- }
127
- async close() {
128
- this.connected = false;
129
- }
130
- async listTools() {
131
- if (!this.connected) {
132
- return { tools: [] };
133
- }
134
- try {
135
- const abortController = new AbortController();
136
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
137
- const response = await fetch(this.url, {
138
- method: 'POST',
139
- headers: this.headers,
140
- body: JSON.stringify({
141
- jsonrpc: '2.0',
142
- id: 2,
143
- method: 'tools/list',
144
- params: {},
145
- }),
146
- signal: abortController.signal,
147
- });
148
- clearTimeout(timeoutId);
149
- if (response.ok) {
150
- const result = await this.parseResponse(response);
151
- return { tools: result.result?.tools || [] };
152
- }
153
- }
154
- catch (error) {
155
- logger.warn('Failed to list tools:', error);
156
- }
157
- return { tools: [] };
158
- }
159
- async listResources() {
160
- if (!this.connected) {
161
- return { resources: [] };
162
- }
163
- try {
164
- const abortController = new AbortController();
165
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
166
- const response = await fetch(this.url, {
167
- method: 'POST',
168
- headers: this.headers,
169
- body: JSON.stringify({
170
- jsonrpc: '2.0',
171
- id: 3,
172
- method: 'resources/list',
173
- params: {},
174
- }),
175
- signal: abortController.signal,
176
- });
177
- clearTimeout(timeoutId);
178
- if (response.ok) {
179
- const result = await this.parseResponse(response);
180
- return { resources: result.result?.resources || [] };
181
- }
182
- }
183
- catch (error) {
184
- logger.warn('Failed to list resources:', error);
185
- }
186
- return { resources: [] };
187
- }
188
- async listPrompts() {
189
- if (!this.connected) {
190
- return { prompts: [] };
191
- }
192
- try {
193
- const abortController = new AbortController();
194
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
195
- const response = await fetch(this.url, {
196
- method: 'POST',
197
- headers: this.headers,
198
- body: JSON.stringify({
199
- jsonrpc: '2.0',
200
- id: 4,
201
- method: 'prompts/list',
202
- params: {},
203
- }),
204
- signal: abortController.signal,
205
- });
206
- clearTimeout(timeoutId);
207
- if (response.ok) {
208
- const result = await this.parseResponse(response);
209
- return { prompts: result.result?.prompts || [] };
210
- }
211
- }
212
- catch (error) {
213
- logger.warn('Failed to list prompts:', error);
214
- }
215
- return { prompts: [] };
216
- }
217
- async callTool(params) {
218
- if (!this.connected) {
219
- return { success: false, error: 'Not connected' };
220
- }
221
- try {
222
- const abortController = new AbortController();
223
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
224
- const response = await fetch(this.url, {
225
- method: 'POST',
226
- headers: this.headers,
227
- body: JSON.stringify({
228
- jsonrpc: '2.0',
229
- id: 5,
230
- method: 'tools/call',
231
- params: {
232
- name: params.name,
233
- arguments: params.arguments,
234
- },
235
- }),
236
- signal: abortController.signal,
237
- });
238
- clearTimeout(timeoutId);
239
- if (response.ok) {
240
- const result = await this.parseResponse(response);
241
- if (result.error) {
242
- return { success: false, error: result.error.message };
243
- }
244
- return {
245
- success: true,
246
- content: result.result?.content || [],
247
- isError: result.result?.isError,
248
- };
249
- }
250
- return { success: false, error: `HTTP ${response.status}` };
251
- }
252
- catch (error) {
253
- const msg = error instanceof Error ? error.message : String(error);
254
- return { success: false, error: msg };
255
- }
256
- }
257
- async readResource(params) {
258
- if (!this.connected) {
259
- return { contents: [] };
260
- }
261
- try {
262
- const abortController = new AbortController();
263
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
264
- const response = await fetch(this.url, {
265
- method: 'POST',
266
- headers: this.headers,
267
- body: JSON.stringify({
268
- jsonrpc: '2.0',
269
- id: 6,
270
- method: 'resources/read',
271
- params: { uri: params.uri },
272
- }),
273
- signal: abortController.signal,
274
- });
275
- clearTimeout(timeoutId);
276
- if (response.ok) {
277
- const result = await this.parseResponse(response);
278
- return { contents: result.result?.contents || [] };
279
- }
280
- }
281
- catch (error) {
282
- logger.warn('Failed to read resource:', error);
283
- }
284
- return { contents: [] };
285
- }
286
- async getPrompt(params) {
287
- if (!this.connected) {
288
- return { messages: [] };
289
- }
290
- try {
291
- const abortController = new AbortController();
292
- const timeoutId = setTimeout(() => abortController.abort(), this.requestTimeout);
293
- const response = await fetch(this.url, {
294
- method: 'POST',
295
- headers: this.headers,
296
- body: JSON.stringify({
297
- jsonrpc: '2.0',
298
- id: 7,
299
- method: 'prompts/get',
300
- params,
301
- }),
302
- signal: abortController.signal,
303
- });
304
- clearTimeout(timeoutId);
305
- if (response.ok) {
306
- const result = await this.parseResponse(response);
307
- const messages = (result.result?.messages || []).map((msg) => ({
308
- role: msg.role,
309
- content: typeof msg.content === 'string' ? msg.content : msg.content.text || '',
310
- }));
311
- return { messages };
312
- }
313
- }
314
- catch (error) {
315
- logger.warn('Failed to get prompt:', error);
316
- }
317
- return { messages: [] };
318
- }
319
- getServerCapabilities() {
320
- return this.connected ? this.capabilities : null;
321
- }
322
- }
323
- /**
324
- * Creates an MCP client that communicates via SSE (Server-Sent Events).
325
- * Uses GET to establish SSE stream, POST to send messages to server-provided endpoint.
326
- *
327
- * Per MCP spec: https://modelcontextprotocol.io/docs/concepts/transports#server-sent-events-sse
328
- * 1. Client opens GET request to SSE endpoint
329
- * 2. Server sends 'endpoint' event with URL for posting messages
330
- * 3. Client sends JSON-RPC via POST to that endpoint
331
- * 4. Server sends responses back via SSE stream
332
- */
333
- class SseMCPClient {
334
- sseUrl;
335
- headers;
336
- connected = false;
337
- capabilities = {};
338
- messageEndpoint = null;
339
- requestId = 0;
340
- pendingRequests = new Map();
341
- abortController = null;
342
- connectionTimeout;
343
- constructor(url, headers = {}, timeout = 30000) {
344
- this.sseUrl = url;
345
- this.headers = headers;
346
- this.connectionTimeout = timeout;
347
- }
348
- async connect() {
349
- return new Promise((resolve, reject) => {
350
- const timeoutId = setTimeout(() => {
351
- this.abortController?.abort();
352
- reject(new Error('SSE connection timeout'));
353
- }, this.connectionTimeout);
354
- this.establishSseConnection()
355
- .then(async () => {
356
- clearTimeout(timeoutId);
357
- // Wait for endpoint to be received (with timeout)
358
- const endpointTimeout = setTimeout(() => {
359
- reject(new Error('Timeout waiting for endpoint event from SSE server'));
360
- }, 10000);
361
- // Poll for endpoint (it should arrive via SSE event)
362
- const checkEndpoint = async () => {
363
- if (this.messageEndpoint) {
364
- clearTimeout(endpointTimeout);
365
- // Now send initialize request
366
- try {
367
- const result = await this.sendRequest('initialize', {
368
- protocolVersion: '2024-11-05',
369
- capabilities: {},
370
- clientInfo: { name: 'compass-cli', version: '1.0.0' },
371
- });
372
- if (result.result?.capabilities) {
373
- this.capabilities = {
374
- tools: !!result.result.capabilities.tools,
375
- resources: !!result.result.capabilities.resources,
376
- prompts: !!result.result.capabilities.prompts,
377
- logging: !!result.result.capabilities.logging,
378
- };
379
- }
380
- // Send initialized notification
381
- await this.sendNotification('notifications/initialized', {});
382
- this.connected = true;
383
- resolve();
384
- }
385
- catch (initError) {
386
- reject(initError);
387
- }
388
- }
389
- else {
390
- setTimeout(checkEndpoint, 100);
391
- }
392
- };
393
- checkEndpoint();
394
- })
395
- .catch((err) => {
396
- clearTimeout(timeoutId);
397
- reject(err);
398
- });
399
- });
400
- }
401
- async establishSseConnection() {
402
- this.abortController = new AbortController();
403
- try {
404
- const response = await fetch(this.sseUrl, {
405
- method: 'GET',
406
- headers: {
407
- 'Accept': 'text/event-stream',
408
- 'Cache-Control': 'no-cache',
409
- ...this.headers,
410
- },
411
- signal: this.abortController.signal,
412
- });
413
- if (!response.ok) {
414
- throw new Error(`SSE connection failed: HTTP ${response.status} ${response.statusText}`);
415
- }
416
- if (!response.body) {
417
- throw new Error('SSE response has no body');
418
- }
419
- // Start reading the SSE stream in the background
420
- this.readSseStream(response.body);
421
- }
422
- catch (error) {
423
- if (error.name === 'AbortError') {
424
- throw new Error('SSE connection aborted');
425
- }
426
- throw error;
427
- }
428
- }
429
- async readSseStream(body) {
430
- const reader = body.getReader();
431
- const decoder = new TextDecoder();
432
- let buffer = '';
433
- let currentEvent = '';
434
- let currentData = '';
435
- try {
436
- // eslint-disable-next-line no-constant-condition
437
- while (true) {
438
- const { done, value } = await reader.read();
439
- if (done) {
440
- logger.debug('SSE stream ended');
441
- this.connected = false;
442
- break;
443
- }
444
- buffer += decoder.decode(value, { stream: true });
445
- const lines = buffer.split(/\r?\n/); // Handle both \n and \r\n line endings
446
- buffer = lines.pop() || ''; // Keep incomplete line in buffer
447
- for (const line of lines) {
448
- const trimmedLine = line.trim(); // Trim to handle any extra whitespace
449
- if (trimmedLine.startsWith('event:')) {
450
- currentEvent = trimmedLine.slice(6).trim();
451
- }
452
- else if (trimmedLine.startsWith('data:')) {
453
- currentData += trimmedLine.slice(5).trim();
454
- }
455
- else if (trimmedLine === '') {
456
- // Empty line = end of event
457
- if (currentEvent || currentData) {
458
- this.handleSseEvent(currentEvent, currentData);
459
- currentEvent = '';
460
- currentData = '';
461
- }
462
- }
463
- }
464
- }
465
- }
466
- catch (error) {
467
- if (error.name !== 'AbortError') {
468
- logger.error('SSE stream error:', error);
469
- }
470
- this.connected = false;
471
- // Reject all pending requests
472
- for (const [id, pending] of this.pendingRequests) {
473
- pending.reject(new Error('SSE connection closed'));
474
- this.pendingRequests.delete(id);
475
- }
476
- }
477
- }
478
- handleSseEvent(event, data) {
479
- logger.debug(`SSE event received: ${event || 'message'}, data: ${data.substring(0, 100)}...`);
480
- if (event === 'endpoint') {
481
- // Server is telling us where to POST messages
482
- // The data might be a relative or absolute URL
483
- try {
484
- // Check if it's an absolute URL
485
- if (data.startsWith('http://') || data.startsWith('https://')) {
486
- this.messageEndpoint = data;
487
- }
488
- else {
489
- // It's relative, resolve against the SSE URL
490
- const baseUrl = new URL(this.sseUrl);
491
- this.messageEndpoint = new URL(data, baseUrl).toString();
492
- }
493
- logger.debug(`SSE message endpoint set to: ${this.messageEndpoint}`);
494
- }
495
- catch (urlError) {
496
- logger.error('Failed to parse endpoint URL:', urlError);
497
- }
498
- }
499
- else if (event === 'message' || event === '') {
500
- // JSON-RPC response from server
501
- if (data) {
502
- try {
503
- const response = JSON.parse(data);
504
- this.handleJsonRpcResponse(response);
505
- }
506
- catch (parseError) {
507
- logger.debug(`Failed to parse SSE message data: ${data}`);
508
- }
509
- }
510
- }
511
- }
512
- handleJsonRpcResponse(response) {
513
- if (response.id !== undefined && response.id !== null) {
514
- const pending = this.pendingRequests.get(response.id);
515
- if (pending) {
516
- this.pendingRequests.delete(response.id);
517
- pending.resolve(response);
518
- }
519
- }
520
- // Notifications (no id) are logged but not handled for now
521
- }
522
- async sendRequest(method, params) {
523
- if (!this.messageEndpoint) {
524
- throw new Error('Message endpoint not available - SSE connection may not be established');
525
- }
526
- const id = ++this.requestId;
527
- const request = {
528
- jsonrpc: '2.0',
529
- id,
530
- method,
531
- params,
532
- };
533
- return new Promise((resolve, reject) => {
534
- this.pendingRequests.set(id, { resolve, reject });
535
- // Set timeout for request
536
- const timeoutId = setTimeout(() => {
537
- if (this.pendingRequests.has(id)) {
538
- this.pendingRequests.delete(id);
539
- reject(new Error(`Request timeout: ${method}`));
540
- }
541
- }, this.connectionTimeout);
542
- // Send via POST to message endpoint
543
- fetch(this.messageEndpoint, {
544
- method: 'POST',
545
- headers: {
546
- 'Content-Type': 'application/json',
547
- ...this.headers,
548
- },
549
- body: JSON.stringify(request),
550
- })
551
- .then((response) => {
552
- if (!response.ok) {
553
- clearTimeout(timeoutId);
554
- this.pendingRequests.delete(id);
555
- reject(new Error(`HTTP ${response.status}: ${response.statusText}`));
556
- }
557
- // Response will come via SSE stream, not HTTP response body
558
- // Some servers may return 202 Accepted or similar
559
- })
560
- .catch((error) => {
561
- clearTimeout(timeoutId);
562
- this.pendingRequests.delete(id);
563
- reject(error);
564
- });
565
- });
566
- }
567
- async sendNotification(method, params) {
568
- if (!this.messageEndpoint) {
569
- return;
570
- }
571
- const notification = {
572
- jsonrpc: '2.0',
573
- method,
574
- params,
575
- };
576
- try {
577
- await fetch(this.messageEndpoint, {
578
- method: 'POST',
579
- headers: {
580
- 'Content-Type': 'application/json',
581
- ...this.headers,
582
- },
583
- body: JSON.stringify(notification),
584
- });
585
- }
586
- catch (error) {
587
- logger.debug('Failed to send notification:', error);
588
- }
589
- }
590
- async close() {
591
- this.connected = false;
592
- this.abortController?.abort();
593
- this.abortController = null;
594
- this.messageEndpoint = null;
595
- // Clear pending requests
596
- for (const [id, pending] of this.pendingRequests) {
597
- pending.reject(new Error('Client closed'));
598
- this.pendingRequests.delete(id);
599
- }
600
- }
601
- async listTools() {
602
- if (!this.connected) {
603
- return { tools: [] };
604
- }
605
- try {
606
- const result = await this.sendRequest('tools/list', {});
607
- return { tools: result.result?.tools || [] };
608
- }
609
- catch (error) {
610
- logger.warn('Failed to list tools:', error);
611
- return { tools: [] };
612
- }
613
- }
614
- async listResources() {
615
- if (!this.connected) {
616
- return { resources: [] };
617
- }
618
- try {
619
- const result = await this.sendRequest('resources/list', {});
620
- return { resources: result.result?.resources || [] };
621
- }
622
- catch (error) {
623
- logger.warn('Failed to list resources:', error);
624
- return { resources: [] };
625
- }
626
- }
627
- async listPrompts() {
628
- if (!this.connected) {
629
- return { prompts: [] };
630
- }
631
- try {
632
- const result = await this.sendRequest('prompts/list', {});
633
- return { prompts: result.result?.prompts || [] };
634
- }
635
- catch (error) {
636
- logger.warn('Failed to list prompts:', error);
637
- return { prompts: [] };
638
- }
639
- }
640
- async callTool(params) {
641
- if (!this.connected) {
642
- return { success: false, error: 'Not connected' };
643
- }
644
- try {
645
- const result = await this.sendRequest('tools/call', {
646
- name: params.name,
647
- arguments: params.arguments,
648
- });
649
- if (result.error) {
650
- return { success: false, error: result.error.message };
651
- }
652
- return {
653
- success: true,
654
- content: result.result?.content || [],
655
- isError: result.result?.isError,
656
- };
657
- }
658
- catch (error) {
659
- const msg = error instanceof Error ? error.message : String(error);
660
- return { success: false, error: msg };
661
- }
662
- }
663
- async readResource(params) {
664
- if (!this.connected) {
665
- return { contents: [] };
666
- }
667
- try {
668
- const result = await this.sendRequest('resources/read', { uri: params.uri });
669
- return { contents: result.result?.contents || [] };
670
- }
671
- catch (error) {
672
- logger.warn('Failed to read resource:', error);
673
- return { contents: [] };
674
- }
675
- }
676
- async getPrompt(params) {
677
- if (!this.connected) {
678
- return { messages: [] };
679
- }
680
- try {
681
- const result = await this.sendRequest('prompts/get', params);
682
- const messages = (result.result?.messages || []).map((msg) => ({
683
- role: msg.role,
684
- content: typeof msg.content === 'string' ? msg.content : msg.content.text || '',
685
- }));
686
- return { messages };
687
- }
688
- catch (error) {
689
- logger.warn('Failed to get prompt:', error);
690
- return { messages: [] };
691
- }
692
- }
693
- getServerCapabilities() {
694
- return this.connected ? this.capabilities : null;
695
- }
696
- }
697
- /**
698
- * Creates an MCP client that communicates via stdio (stdin/stdout).
699
- * Spawns a child process and uses JSON-RPC 2.0 over newline-delimited JSON.
700
- */
701
- class StdioMCPClient {
702
- command;
703
- args;
704
- cwd;
705
- env;
706
- requestTimeout;
707
- process = null;
708
- connected = false;
709
- capabilities = {};
710
- requestId = 0;
711
- pendingRequests = new Map();
712
- buffer = '';
713
- /** Captures the last critical error from stderr for better error reporting */
714
- lastStderrError = null;
715
- constructor(command, args = [], cwd, env, requestTimeout = 30000) {
716
- this.command = command;
717
- this.args = args;
718
- this.cwd = cwd;
719
- this.env = env;
720
- this.requestTimeout = requestTimeout;
721
- }
722
- async connect() {
723
- return new Promise((resolve, reject) => {
724
- // Track whether we've already settled the promise
725
- let settled = false;
726
- const safeReject = (error) => {
727
- if (!settled) {
728
- settled = true;
729
- reject(error);
730
- }
731
- };
732
- const safeResolve = () => {
733
- if (!settled) {
734
- settled = true;
735
- resolve();
736
- }
737
- };
738
- try {
739
- // Merge environment variables
740
- const processEnv = {
741
- ...process.env,
742
- ...this.env,
743
- };
744
- logger.debug(`Spawning stdio MCP server: ${this.command} ${this.args.join(' ')}`);
745
- this.process = spawn(this.command, this.args, {
746
- cwd: this.cwd || process.cwd(),
747
- env: processEnv,
748
- stdio: ['pipe', 'pipe', 'pipe'],
749
- shell: true,
750
- });
751
- if (!this.process.stdout || !this.process.stdin) {
752
- safeReject(new Error('Failed to create stdio streams'));
753
- return;
754
- }
755
- // Handle stdout (responses from server)
756
- this.process.stdout.on('data', (data) => {
757
- this.handleStdoutData(data);
758
- });
759
- // Handle stderr (logging from server)
760
- this.process.stderr?.on('data', (data) => {
761
- const message = data.toString().trim();
762
- if (message) {
763
- // All MCP server stderr goes to debug level
764
- logger.debug(`[MCP Server stderr]: ${message}`);
765
- // Capture critical errors for better error reporting
766
- if (message.includes('EADDRINUSE')) {
767
- // Extract port number from error message if present
768
- const portMatch = message.match(/port[:\s]*(\d+)|:(\d+)/i);
769
- const port = portMatch?.[1] || portMatch?.[2] || 'unknown';
770
- this.lastStderrError = `Port ${port} is already in use. A previous MCP server process may still be running. ` +
771
- `Try killing the process using this port or wait for it to terminate.`;
772
- }
773
- else if (message.includes('ECONNREFUSED')) {
774
- this.lastStderrError = 'Connection refused. The target server may not be running.';
775
- }
776
- else if (message.includes('ETIMEDOUT') || message.includes('timeout')) {
777
- this.lastStderrError = 'Connection timed out while trying to reach the server.';
778
- }
779
- else if (message.includes('ENOTFOUND')) {
780
- this.lastStderrError = 'Server hostname not found. Please check the URL.';
781
- }
782
- else if (message.includes('Error:') && !this.lastStderrError) {
783
- // Capture generic errors if no specific error captured yet
784
- const errorMatch = message.match(/Error:\s*(.+?)(?:\n|$)/);
785
- if (errorMatch) {
786
- this.lastStderrError = errorMatch[1].trim();
787
- }
788
- }
789
- }
790
- });
791
- // Handle process exit
792
- this.process.on('exit', (code, signal) => {
793
- logger.debug(`MCP server process exited with code ${code}, signal ${signal}`);
794
- this.connected = false;
795
- this.process = null;
796
- // Build error message - prefer captured stderr error over generic exit code
797
- let errorMessage;
798
- if (this.lastStderrError) {
799
- errorMessage = this.lastStderrError;
800
- // Log the detailed error at error level for visibility
801
- logger.error(`MCP server failed: ${errorMessage}`);
802
- }
803
- else if (code !== 0) {
804
- errorMessage = `Process exited with code ${code}`;
805
- }
806
- else if (signal) {
807
- errorMessage = `Process terminated by signal ${signal}`;
808
- }
809
- else {
810
- errorMessage = 'Process exited unexpectedly';
811
- }
812
- // Reject all pending requests with the detailed error
813
- for (const [id, pending] of this.pendingRequests) {
814
- pending.reject(new Error(errorMessage));
815
- this.pendingRequests.delete(id);
816
- }
817
- // Also reject the connect promise if it hasn't been resolved yet
818
- // This handles the case where the process exits before initialization completes
819
- safeReject(new Error(errorMessage));
820
- });
821
- this.process.on('error', (error) => {
822
- logger.error('MCP server process error:', error);
823
- this.connected = false;
824
- safeReject(error);
825
- });
826
- // Give the process a moment to start, then send initialize
827
- setTimeout(async () => {
828
- // Check if process is still running before trying to initialize
829
- if (!this.process || settled) {
830
- return; // Process already exited or promise already settled
831
- }
832
- try {
833
- const result = await this.sendRequest('initialize', {
834
- protocolVersion: '2024-11-05',
835
- capabilities: {},
836
- clientInfo: { name: 'compass-cli', version: '1.0.0' },
837
- });
838
- if (result.result?.capabilities) {
839
- this.capabilities = {
840
- tools: !!result.result.capabilities.tools,
841
- resources: !!result.result.capabilities.resources,
842
- prompts: !!result.result.capabilities.prompts,
843
- logging: !!result.result.capabilities.logging,
844
- };
845
- }
846
- // Send initialized notification
847
- this.sendNotification('notifications/initialized', {});
848
- this.connected = true;
849
- logger.debug(`Stdio MCP server connected: ${this.command}`);
850
- safeResolve();
851
- }
852
- catch (initError) {
853
- safeReject(initError instanceof Error ? initError : new Error(String(initError)));
854
- }
855
- }, 100);
856
- }
857
- catch (error) {
858
- safeReject(error instanceof Error ? error : new Error(String(error)));
859
- }
860
- });
861
- }
862
- handleStdoutData(data) {
863
- this.buffer += data.toString();
864
- // Process complete lines (newline-delimited JSON)
865
- let newlineIndex;
866
- while ((newlineIndex = this.buffer.indexOf('\n')) !== -1) {
867
- const line = this.buffer.substring(0, newlineIndex).trim();
868
- this.buffer = this.buffer.substring(newlineIndex + 1);
869
- if (line) {
870
- try {
871
- const response = JSON.parse(line);
872
- this.handleResponse(response);
873
- }
874
- catch (parseError) {
875
- logger.debug(`Failed to parse MCP response: ${line}`);
876
- }
877
- }
878
- }
879
- }
880
- handleResponse(response) {
881
- if (response.id !== undefined && response.id !== null) {
882
- const pending = this.pendingRequests.get(response.id);
883
- if (pending) {
884
- this.pendingRequests.delete(response.id);
885
- pending.resolve(response);
886
- }
887
- }
888
- // Notifications (no id) are logged but not handled
889
- }
890
- sendRequest(method, params) {
891
- return new Promise((resolve, reject) => {
892
- if (!this.process?.stdin) {
893
- reject(new Error('Process not running'));
894
- return;
895
- }
896
- const id = ++this.requestId;
897
- const request = {
898
- jsonrpc: '2.0',
899
- id,
900
- method,
901
- params,
902
- };
903
- this.pendingRequests.set(id, { resolve, reject });
904
- const requestStr = JSON.stringify(request) + '\n';
905
- this.process.stdin.write(requestStr, (error) => {
906
- if (error) {
907
- this.pendingRequests.delete(id);
908
- reject(error);
909
- }
910
- });
911
- // Timeout after configured duration (default 30 seconds, extended for npx)
912
- setTimeout(() => {
913
- if (this.pendingRequests.has(id)) {
914
- this.pendingRequests.delete(id);
915
- reject(new Error(`Request timeout: ${method}`));
916
- }
917
- }, this.requestTimeout);
918
- });
919
- }
920
- sendNotification(method, params) {
921
- if (!this.process?.stdin) {
922
- return;
923
- }
924
- const notification = {
925
- jsonrpc: '2.0',
926
- method,
927
- params,
928
- };
929
- const notificationStr = JSON.stringify(notification) + '\n';
930
- this.process.stdin.write(notificationStr);
931
- }
932
- async close() {
933
- this.connected = false;
934
- if (this.process) {
935
- // Send shutdown request
936
- try {
937
- this.sendNotification('notifications/cancelled', { reason: 'Client closing' });
938
- }
939
- catch {
940
- // Ignore errors during shutdown
941
- }
942
- // Kill the process
943
- this.process.kill('SIGTERM');
944
- // Force kill after 2 seconds if still running
945
- setTimeout(() => {
946
- if (this.process && !this.process.killed) {
947
- this.process.kill('SIGKILL');
948
- }
949
- }, 2000);
950
- this.process = null;
951
- }
952
- // Clear pending requests
953
- for (const [id, pending] of this.pendingRequests) {
954
- pending.reject(new Error('Client closed'));
955
- this.pendingRequests.delete(id);
956
- }
957
- }
958
- async listTools() {
959
- if (!this.connected) {
960
- return { tools: [] };
961
- }
962
- try {
963
- const result = await this.sendRequest('tools/list', {});
964
- return { tools: result.result?.tools || [] };
965
- }
966
- catch (error) {
967
- logger.warn('Failed to list tools:', error);
968
- return { tools: [] };
969
- }
970
- }
971
- async listResources() {
972
- if (!this.connected) {
973
- return { resources: [] };
974
- }
975
- try {
976
- const result = await this.sendRequest('resources/list', {});
977
- return { resources: result.result?.resources || [] };
978
- }
979
- catch (error) {
980
- logger.warn('Failed to list resources:', error);
981
- return { resources: [] };
982
- }
983
- }
984
- async listPrompts() {
985
- if (!this.connected) {
986
- return { prompts: [] };
987
- }
988
- try {
989
- const result = await this.sendRequest('prompts/list', {});
990
- return { prompts: result.result?.prompts || [] };
991
- }
992
- catch (error) {
993
- logger.warn('Failed to list prompts:', error);
994
- return { prompts: [] };
995
- }
996
- }
997
- async callTool(params) {
998
- if (!this.connected) {
999
- return { success: false, error: 'Not connected' };
1000
- }
1001
- try {
1002
- const result = await this.sendRequest('tools/call', {
1003
- name: params.name,
1004
- arguments: params.arguments,
1005
- });
1006
- if (result.error) {
1007
- return { success: false, error: result.error.message };
1008
- }
1009
- return {
1010
- success: true,
1011
- content: result.result?.content || [],
1012
- isError: result.result?.isError,
1013
- };
1014
- }
1015
- catch (error) {
1016
- const msg = error instanceof Error ? error.message : String(error);
1017
- return { success: false, error: msg };
1018
- }
1019
- }
1020
- async readResource(params) {
1021
- if (!this.connected) {
1022
- return { contents: [] };
1023
- }
1024
- try {
1025
- const result = await this.sendRequest('resources/read', { uri: params.uri });
1026
- return { contents: result.result?.contents || [] };
1027
- }
1028
- catch (error) {
1029
- logger.warn('Failed to read resource:', error);
1030
- return { contents: [] };
1031
- }
1032
- }
1033
- async getPrompt(params) {
1034
- if (!this.connected) {
1035
- return { messages: [] };
1036
- }
1037
- try {
1038
- const result = await this.sendRequest('prompts/get', params);
1039
- const messages = (result.result?.messages || []).map((msg) => ({
1040
- role: msg.role,
1041
- content: typeof msg.content === 'string' ? msg.content : msg.content.text || '',
1042
- }));
1043
- return { messages };
1044
- }
1045
- catch (error) {
1046
- logger.warn('Failed to get prompt:', error);
1047
- return { messages: [] };
1048
- }
1049
- }
1050
- getServerCapabilities() {
1051
- return this.connected ? this.capabilities : null;
1052
- }
1053
- isConnected() {
1054
- return this.connected && this.process !== null;
1055
- }
1056
- }
1057
- /**
1058
- * Creates and connects to an MCP server using the appropriate transport.
1059
- */
1060
- export async function createTransportConnection(config, timeout) {
1061
- // Priority: function parameter > config.timeout > environment variable > default
1062
- const configTimeout = config.timeout;
1063
- const connectionTimeout = timeout || configTimeout || parseInt(process.env.MCP_TIMEOUT || '') || DEFAULT_MCP_TIMEOUT;
1064
- // Normalize config to infer missing type field
1065
- const normalizedConfig = normalizeServerConfig(config);
1066
- // Log if type was inferred
1067
- if (!config.type && normalizedConfig.type) {
1068
- logger.debug(`Inferred transport type '${normalizedConfig.type}' for server '${normalizedConfig.name}' (missing 'type' field in config)`);
1069
- }
1070
- if (isMCPHttpConfig(normalizedConfig)) {
1071
- return createHttpConnection(normalizedConfig, connectionTimeout);
1072
- }
1073
- if (isMCPSseConfig(normalizedConfig)) {
1074
- return createSseConnection(normalizedConfig, connectionTimeout);
1075
- }
1076
- if (isMCPStdioConfig(normalizedConfig)) {
1077
- return createStdioConnection(normalizedConfig, connectionTimeout);
1078
- }
1079
- const serverName = normalizedConfig?.name || 'unknown';
1080
- throw new Error(`Unknown transport type for server: ${serverName}. ` +
1081
- `Config must have 'type' field set to 'http', 'sse', or 'stdio', ` +
1082
- `or have 'url' (for sse) or 'command' (for stdio) fields to infer the type.`);
1083
- }
1084
- /**
1085
- * Creates an HTTP transport connection.
1086
- */
1087
- async function createHttpConnection(config, timeout) {
1088
- logger.debug(`Creating HTTP connection to ${config.name} at ${config.url}`);
1089
- // Check for existing OAuth tokens and inject Authorization header
1090
- const oauthService = await getMCPOAuthService();
1091
- const authHeader = oauthService.getAuthHeader(config.name);
1092
- const headers = {
1093
- ...config.headers,
1094
- ...(authHeader ? { 'Authorization': authHeader } : {}),
1095
- };
1096
- logger.debug(`HTTP connection headers for ${config.name}: Authorization=${authHeader ? 'Bearer ***' + authHeader.slice(-8) : 'none'}`);
1097
- const client = new SimpleMCPClient(config.url, headers, timeout, config.name);
1098
- let status = 'connecting';
1099
- let error;
1100
- try {
1101
- await client.connect();
1102
- status = 'connected';
1103
- logger.info(`Connected to HTTP MCP server: ${config.name}`);
1104
- return {
1105
- client,
1106
- close: async () => {
1107
- await client.close();
1108
- },
1109
- status,
1110
- };
1111
- }
1112
- catch (err) {
1113
- // Rethrow AuthenticationRequiredError for server manager to handle OAuth flow
1114
- if (err instanceof AuthenticationRequiredError) {
1115
- throw err;
1116
- }
1117
- error = err instanceof Error ? err.message : String(err);
1118
- status = 'error';
1119
- logger.error(`Failed to connect to HTTP MCP server ${config.name}:`, err);
1120
- return {
1121
- client,
1122
- close: async () => {
1123
- try {
1124
- await client.close();
1125
- }
1126
- catch {
1127
- // Ignore close errors
1128
- }
1129
- },
1130
- status,
1131
- error,
1132
- };
1133
- }
1134
- }
1135
- /**
1136
- * Creates an SSE transport connection.
1137
- * Uses proper SSE protocol: GET for event stream, POST for sending messages.
1138
- */
1139
- async function createSseConnection(config, timeout) {
1140
- logger.debug(`Creating SSE connection to ${config.name} at ${config.url}`);
1141
- const client = new SseMCPClient(config.url, config.headers, timeout);
1142
- let status = 'connecting';
1143
- let error;
1144
- try {
1145
- await client.connect();
1146
- status = 'connected';
1147
- logger.info(`Connected to SSE MCP server: ${config.name}`);
1148
- return {
1149
- client,
1150
- close: async () => {
1151
- await client.close();
1152
- },
1153
- status,
1154
- };
1155
- }
1156
- catch (err) {
1157
- error = err instanceof Error ? err.message : String(err);
1158
- status = 'error';
1159
- logger.error(`Failed to connect to SSE MCP server ${config.name}:`, err);
1160
- return {
1161
- client,
1162
- close: async () => {
1163
- try {
1164
- await client.close();
1165
- }
1166
- catch {
1167
- // Ignore close errors
1168
- }
1169
- },
1170
- status,
1171
- error,
1172
- };
1173
- }
1174
- }
1175
- /**
1176
- * Creates a stdio transport connection.
1177
- * Spawns a child process and communicates via JSON-RPC over stdin/stdout.
1178
- */
1179
- async function createStdioConnection(config, timeout) {
1180
- logger.debug(`Creating stdio connection to ${config.name} with command: ${config.command}`);
1181
- // Use longer timeout for npx commands (they may need to download packages)
1182
- const effectiveTimeout = config.command === 'npx' ? Math.max(timeout, 60000) : timeout;
1183
- if (config.command === 'npx' && effectiveTimeout > timeout) {
1184
- logger.debug(`Using extended timeout (60s) for npx command - first run may download packages`);
1185
- }
1186
- const client = new StdioMCPClient(config.command, config.args || [], config.cwd, config.env, effectiveTimeout);
1187
- let status = 'connecting';
1188
- let error;
1189
- try {
1190
- await Promise.race([
1191
- client.connect(),
1192
- new Promise((_, reject) => setTimeout(() => reject(new Error('Connection timeout')), effectiveTimeout)),
1193
- ]);
1194
- status = 'connected';
1195
- logger.debug(`Connected to stdio MCP server: ${config.name}`);
1196
- return {
1197
- client,
1198
- close: async () => {
1199
- await client.close();
1200
- },
1201
- status,
1202
- };
1203
- }
1204
- catch (err) {
1205
- error = err instanceof Error ? err.message : String(err);
1206
- status = 'error';
1207
- logger.error(`Failed to connect to stdio MCP server ${config.name}:`, err);
1208
- return {
1209
- client,
1210
- close: async () => {
1211
- try {
1212
- await client.close();
1213
- }
1214
- catch {
1215
- // Ignore close errors
1216
- }
1217
- },
1218
- status,
1219
- error,
1220
- };
1221
- }
1222
- }
1223
- /**
1224
- * Fetches available tools from an MCP server.
1225
- */
1226
- export async function fetchServerTools(client) {
1227
- try {
1228
- const result = await client.listTools();
1229
- return result.tools || [];
1230
- }
1231
- catch (error) {
1232
- logger.error('Failed to fetch MCP tools:', error);
1233
- return [];
1234
- }
1235
- }
1236
- /**
1237
- * Fetches available resources from an MCP server.
1238
- */
1239
- export async function fetchServerResources(client) {
1240
- try {
1241
- const result = await client.listResources();
1242
- return result.resources || [];
1243
- }
1244
- catch (error) {
1245
- logger.error('Failed to fetch MCP resources:', error);
1246
- return [];
1247
- }
1248
- }
1249
- /**
1250
- * Fetches available prompts from an MCP server.
1251
- */
1252
- export async function fetchServerPrompts(client) {
1253
- try {
1254
- const result = await client.listPrompts();
1255
- return result.prompts || [];
1256
- }
1257
- catch (error) {
1258
- logger.error('Failed to fetch MCP prompts:', error);
1259
- return [];
1260
- }
1261
- }
1262
- /**
1263
- * Fetches server capabilities.
1264
- */
1265
- export async function fetchServerCapabilities(client) {
1266
- try {
1267
- const capabilities = client.getServerCapabilities();
1268
- return capabilities || {};
1269
- }
1270
- catch (error) {
1271
- logger.error('Failed to fetch MCP server capabilities:', error);
1272
- return {};
1273
- }
1274
- }
1275
- /**
1276
- * Calls a tool on an MCP server.
1277
- */
1278
- export async function callMCPTool(client, toolName, args) {
1279
- try {
1280
- return await client.callTool({ name: toolName, arguments: args });
1281
- }
1282
- catch (error) {
1283
- const errorMessage = error instanceof Error ? error.message : String(error);
1284
- logger.error(`Failed to call MCP tool ${toolName}:`, error);
1285
- return { success: false, error: errorMessage };
1286
- }
1287
- }
1288
- /**
1289
- * Reads a resource from an MCP server.
1290
- */
1291
- export async function readMCPResource(client, uri) {
1292
- try {
1293
- const result = await client.readResource({ uri });
1294
- return { content: result.contents || [] };
1295
- }
1296
- catch (error) {
1297
- const errorMessage = error instanceof Error ? error.message : String(error);
1298
- logger.error(`Failed to read MCP resource ${uri}:`, error);
1299
- return { content: [], error: errorMessage };
1300
- }
1301
- }
1302
- /**
1303
- * Gets a prompt from an MCP server.
1304
- */
1305
- export async function getMCPPrompt(client, name, args) {
1306
- try {
1307
- const result = await client.getPrompt({ name, arguments: args });
1308
- return { messages: result.messages || [] };
1309
- }
1310
- catch (error) {
1311
- const errorMessage = error instanceof Error ? error.message : String(error);
1312
- logger.error(`Failed to get MCP prompt ${name}:`, error);
1313
- return { messages: [], error: errorMessage };
1314
- }
1315
- }
1316
- //# sourceMappingURL=mcp-transport.js.map