@mastra/code-sdk 0.0.0-livekit-beta-v3-20260709031728

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 (460) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/LICENSE.md +30 -0
  3. package/README.md +50 -0
  4. package/dist/acp/agent.d.ts +35 -0
  5. package/dist/acp/agent.d.ts.map +1 -0
  6. package/dist/acp/agent.js +173 -0
  7. package/dist/acp/agent.js.map +1 -0
  8. package/dist/acp/event-mapper.d.ts +22 -0
  9. package/dist/acp/event-mapper.d.ts.map +1 -0
  10. package/dist/acp/event-mapper.js +166 -0
  11. package/dist/acp/event-mapper.js.map +1 -0
  12. package/dist/acp/index.d.ts +8 -0
  13. package/dist/acp/index.d.ts.map +1 -0
  14. package/dist/acp/index.js +54 -0
  15. package/dist/acp/index.js.map +1 -0
  16. package/dist/acp/server.d.ts +7 -0
  17. package/dist/acp/server.d.ts.map +1 -0
  18. package/dist/acp/server.js +34 -0
  19. package/dist/acp/server.js.map +1 -0
  20. package/dist/acp.d.ts +2 -0
  21. package/dist/acp.d.ts.map +1 -0
  22. package/dist/acp.js +5 -0
  23. package/dist/acp.js.map +1 -0
  24. package/dist/agents/instructions.d.ts +6 -0
  25. package/dist/agents/instructions.d.ts.map +1 -0
  26. package/dist/agents/instructions.js +41 -0
  27. package/dist/agents/instructions.js.map +1 -0
  28. package/dist/agents/mastracode-gateway.d.ts +65 -0
  29. package/dist/agents/mastracode-gateway.d.ts.map +1 -0
  30. package/dist/agents/mastracode-gateway.js +442 -0
  31. package/dist/agents/mastracode-gateway.js.map +1 -0
  32. package/dist/agents/memory.d.ts +13 -0
  33. package/dist/agents/memory.d.ts.map +1 -0
  34. package/dist/agents/memory.js +107 -0
  35. package/dist/agents/memory.js.map +1 -0
  36. package/dist/agents/model.d.ts +55 -0
  37. package/dist/agents/model.d.ts.map +1 -0
  38. package/dist/agents/model.js +115 -0
  39. package/dist/agents/model.js.map +1 -0
  40. package/dist/agents/modes/build.d.ts +10 -0
  41. package/dist/agents/modes/build.d.ts.map +1 -0
  42. package/dist/agents/modes/build.js +45 -0
  43. package/dist/agents/modes/build.js.map +1 -0
  44. package/dist/agents/modes/explore.d.ts +10 -0
  45. package/dist/agents/modes/explore.d.ts.map +1 -0
  46. package/dist/agents/modes/explore.js +38 -0
  47. package/dist/agents/modes/explore.js.map +1 -0
  48. package/dist/agents/modes/plan.d.ts +6 -0
  49. package/dist/agents/modes/plan.d.ts.map +1 -0
  50. package/dist/agents/modes/plan.js +38 -0
  51. package/dist/agents/modes/plan.js.map +1 -0
  52. package/dist/agents/prompts/agent-instructions.d.ts +20 -0
  53. package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
  54. package/dist/agents/prompts/agent-instructions.js +82 -0
  55. package/dist/agents/prompts/agent-instructions.js.map +1 -0
  56. package/dist/agents/prompts/build.d.ts +12 -0
  57. package/dist/agents/prompts/build.d.ts.map +1 -0
  58. package/dist/agents/prompts/build.js +73 -0
  59. package/dist/agents/prompts/build.js.map +1 -0
  60. package/dist/agents/prompts/fast.d.ts +5 -0
  61. package/dist/agents/prompts/fast.d.ts.map +1 -0
  62. package/dist/agents/prompts/fast.js +22 -0
  63. package/dist/agents/prompts/fast.js.map +1 -0
  64. package/dist/agents/prompts/index.d.ts +19 -0
  65. package/dist/agents/prompts/index.d.ts.map +1 -0
  66. package/dist/agents/prompts/index.js +57 -0
  67. package/dist/agents/prompts/index.js.map +1 -0
  68. package/dist/agents/prompts/model.d.ts +5 -0
  69. package/dist/agents/prompts/model.d.ts.map +1 -0
  70. package/dist/agents/prompts/model.js +22 -0
  71. package/dist/agents/prompts/model.js.map +1 -0
  72. package/dist/agents/prompts/plan.d.ts +6 -0
  73. package/dist/agents/prompts/plan.d.ts.map +1 -0
  74. package/dist/agents/prompts/plan.js +107 -0
  75. package/dist/agents/prompts/plan.js.map +1 -0
  76. package/dist/agents/prompts/tool-guidance.d.ts +13 -0
  77. package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
  78. package/dist/agents/prompts/tool-guidance.js +181 -0
  79. package/dist/agents/prompts/tool-guidance.js.map +1 -0
  80. package/dist/agents/sandbox-filesystem.d.ts +89 -0
  81. package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
  82. package/dist/agents/sandbox-filesystem.js +268 -0
  83. package/dist/agents/sandbox-filesystem.js.map +1 -0
  84. package/dist/agents/sandbox-reattach.d.ts +19 -0
  85. package/dist/agents/sandbox-reattach.d.ts.map +1 -0
  86. package/dist/agents/sandbox-reattach.js +17 -0
  87. package/dist/agents/sandbox-reattach.js.map +1 -0
  88. package/dist/agents/thread-caveman-state.d.ts +17 -0
  89. package/dist/agents/thread-caveman-state.d.ts.map +1 -0
  90. package/dist/agents/thread-caveman-state.js +96 -0
  91. package/dist/agents/thread-caveman-state.js.map +1 -0
  92. package/dist/agents/tool-availability.d.ts +10 -0
  93. package/dist/agents/tool-availability.d.ts.map +1 -0
  94. package/dist/agents/tool-availability.js +105 -0
  95. package/dist/agents/tool-availability.js.map +1 -0
  96. package/dist/agents/tools.d.ts +18 -0
  97. package/dist/agents/tools.d.ts.map +1 -0
  98. package/dist/agents/tools.js +126 -0
  99. package/dist/agents/tools.js.map +1 -0
  100. package/dist/agents/workspace.d.ts +22 -0
  101. package/dist/agents/workspace.d.ts.map +1 -0
  102. package/dist/agents/workspace.js +194 -0
  103. package/dist/agents/workspace.js.map +1 -0
  104. package/dist/analytics.d.ts +18 -0
  105. package/dist/analytics.d.ts.map +1 -0
  106. package/dist/analytics.js +152 -0
  107. package/dist/analytics.js.map +1 -0
  108. package/dist/auth/index.d.ts +9 -0
  109. package/dist/auth/index.d.ts.map +1 -0
  110. package/dist/auth/index.js +11 -0
  111. package/dist/auth/index.js.map +1 -0
  112. package/dist/auth/pkce.d.ts +13 -0
  113. package/dist/auth/pkce.d.ts.map +1 -0
  114. package/dist/auth/pkce.js +21 -0
  115. package/dist/auth/pkce.js.map +1 -0
  116. package/dist/auth/providers/anthropic.d.ts +17 -0
  117. package/dist/auth/providers/anthropic.d.ts.map +1 -0
  118. package/dist/auth/providers/anthropic.js +94 -0
  119. package/dist/auth/providers/anthropic.js.map +1 -0
  120. package/dist/auth/providers/github-copilot.d.ts +100 -0
  121. package/dist/auth/providers/github-copilot.d.ts.map +1 -0
  122. package/dist/auth/providers/github-copilot.js +302 -0
  123. package/dist/auth/providers/github-copilot.js.map +1 -0
  124. package/dist/auth/providers/openai-codex.d.ts +95 -0
  125. package/dist/auth/providers/openai-codex.d.ts.map +1 -0
  126. package/dist/auth/providers/openai-codex.js +527 -0
  127. package/dist/auth/providers/openai-codex.js.map +1 -0
  128. package/dist/auth/storage.d.ts +91 -0
  129. package/dist/auth/storage.d.ts.map +1 -0
  130. package/dist/auth/storage.js +187 -0
  131. package/dist/auth/storage.js.map +1 -0
  132. package/dist/auth/types.d.ts +68 -0
  133. package/dist/auth/types.d.ts.map +1 -0
  134. package/dist/auth/types.js +1 -0
  135. package/dist/auth/types.js.map +1 -0
  136. package/dist/clipboard/index.d.ts +26 -0
  137. package/dist/clipboard/index.d.ts.map +1 -0
  138. package/dist/clipboard/index.js +192 -0
  139. package/dist/clipboard/index.js.map +1 -0
  140. package/dist/constants.d.ts +10 -0
  141. package/dist/constants.d.ts.map +1 -0
  142. package/dist/constants.js +23 -0
  143. package/dist/constants.js.map +1 -0
  144. package/dist/error-classification.d.ts +10 -0
  145. package/dist/error-classification.d.ts.map +1 -0
  146. package/dist/error-classification.js +14 -0
  147. package/dist/error-classification.js.map +1 -0
  148. package/dist/evals/context-builder.d.ts +41 -0
  149. package/dist/evals/context-builder.d.ts.map +1 -0
  150. package/dist/evals/context-builder.js +120 -0
  151. package/dist/evals/context-builder.js.map +1 -0
  152. package/dist/evals/index.d.ts +4 -0
  153. package/dist/evals/index.d.ts.map +1 -0
  154. package/dist/evals/index.js +8 -0
  155. package/dist/evals/index.js.map +1 -0
  156. package/dist/evals/scorers/classify-command.d.ts +31 -0
  157. package/dist/evals/scorers/classify-command.d.ts.map +1 -0
  158. package/dist/evals/scorers/classify-command.js +52 -0
  159. package/dist/evals/scorers/classify-command.js.map +1 -0
  160. package/dist/evals/scorers/efficiency.d.ts +44 -0
  161. package/dist/evals/scorers/efficiency.d.ts.map +1 -0
  162. package/dist/evals/scorers/efficiency.js +201 -0
  163. package/dist/evals/scorers/efficiency.js.map +1 -0
  164. package/dist/evals/scorers/extract-tools.d.ts +25 -0
  165. package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
  166. package/dist/evals/scorers/extract-tools.js +56 -0
  167. package/dist/evals/scorers/extract-tools.js.map +1 -0
  168. package/dist/evals/scorers/index.d.ts +3 -0
  169. package/dist/evals/scorers/index.d.ts.map +1 -0
  170. package/dist/evals/scorers/index.js +7 -0
  171. package/dist/evals/scorers/index.js.map +1 -0
  172. package/dist/evals/scorers/outcome.d.ts +49 -0
  173. package/dist/evals/scorers/outcome.d.ts.map +1 -0
  174. package/dist/evals/scorers/outcome.js +238 -0
  175. package/dist/evals/scorers/outcome.js.map +1 -0
  176. package/dist/headless/cli.d.ts +42 -0
  177. package/dist/headless/cli.d.ts.map +1 -0
  178. package/dist/headless/cli.js +196 -0
  179. package/dist/headless/cli.js.map +1 -0
  180. package/dist/headless/flags.d.ts +33 -0
  181. package/dist/headless/flags.d.ts.map +1 -0
  182. package/dist/headless/flags.js +188 -0
  183. package/dist/headless/flags.js.map +1 -0
  184. package/dist/headless/format.d.ts +38 -0
  185. package/dist/headless/format.d.ts.map +1 -0
  186. package/dist/headless/format.js +85 -0
  187. package/dist/headless/format.js.map +1 -0
  188. package/dist/headless/index.d.ts +25 -0
  189. package/dist/headless/index.d.ts.map +1 -0
  190. package/dist/headless/index.js +32 -0
  191. package/dist/headless/index.js.map +1 -0
  192. package/dist/headless/policy.d.ts +17 -0
  193. package/dist/headless/policy.d.ts.map +1 -0
  194. package/dist/headless/policy.js +38 -0
  195. package/dist/headless/policy.js.map +1 -0
  196. package/dist/headless/run-mc.d.ts +7 -0
  197. package/dist/headless/run-mc.d.ts.map +1 -0
  198. package/dist/headless/run-mc.js +296 -0
  199. package/dist/headless/run-mc.js.map +1 -0
  200. package/dist/headless/types.d.ts +134 -0
  201. package/dist/headless/types.d.ts.map +1 -0
  202. package/dist/headless/types.js +9 -0
  203. package/dist/headless/types.js.map +1 -0
  204. package/dist/hooks/config.d.ts +11 -0
  205. package/dist/hooks/config.d.ts.map +1 -0
  206. package/dist/hooks/config.js +78 -0
  207. package/dist/hooks/config.js.map +1 -0
  208. package/dist/hooks/executor.d.ts +13 -0
  209. package/dist/hooks/executor.d.ts.map +1 -0
  210. package/dist/hooks/executor.js +125 -0
  211. package/dist/hooks/executor.js.map +1 -0
  212. package/dist/hooks/index.d.ts +6 -0
  213. package/dist/hooks/index.d.ts.map +1 -0
  214. package/dist/hooks/index.js +16 -0
  215. package/dist/hooks/index.js.map +1 -0
  216. package/dist/hooks/manager.d.ts +47 -0
  217. package/dist/hooks/manager.d.ts.map +1 -0
  218. package/dist/hooks/manager.js +284 -0
  219. package/dist/hooks/manager.js.map +1 -0
  220. package/dist/hooks/types.d.ts +152 -0
  221. package/dist/hooks/types.d.ts.map +1 -0
  222. package/dist/hooks/types.js +7 -0
  223. package/dist/hooks/types.js.map +1 -0
  224. package/dist/index.d.ts +241 -0
  225. package/dist/index.d.ts.map +1 -0
  226. package/dist/index.js +712 -0
  227. package/dist/index.js.map +1 -0
  228. package/dist/ipc/ipc-reporter.d.ts +14 -0
  229. package/dist/ipc/ipc-reporter.d.ts.map +1 -0
  230. package/dist/ipc/ipc-reporter.js +24 -0
  231. package/dist/ipc/ipc-reporter.js.map +1 -0
  232. package/dist/lsp/client.d.ts +56 -0
  233. package/dist/lsp/client.d.ts.map +1 -0
  234. package/dist/lsp/client.js +309 -0
  235. package/dist/lsp/client.js.map +1 -0
  236. package/dist/lsp/index.d.ts +4 -0
  237. package/dist/lsp/index.d.ts.map +1 -0
  238. package/dist/lsp/index.js +9 -0
  239. package/dist/lsp/index.js.map +1 -0
  240. package/dist/lsp/language.d.ts +9 -0
  241. package/dist/lsp/language.d.ts.map +1 -0
  242. package/dist/lsp/language.js +48 -0
  243. package/dist/lsp/language.js.map +1 -0
  244. package/dist/lsp/manager.d.ts +34 -0
  245. package/dist/lsp/manager.d.ts.map +1 -0
  246. package/dist/lsp/manager.js +97 -0
  247. package/dist/lsp/manager.js.map +1 -0
  248. package/dist/lsp/server.d.ts +27 -0
  249. package/dist/lsp/server.d.ts.map +1 -0
  250. package/dist/lsp/server.js +128 -0
  251. package/dist/lsp/server.js.map +1 -0
  252. package/dist/lsp/workspace.d.ts +9 -0
  253. package/dist/lsp/workspace.d.ts.map +1 -0
  254. package/dist/lsp/workspace.js +52 -0
  255. package/dist/lsp/workspace.js.map +1 -0
  256. package/dist/mcp/config.d.ts +34 -0
  257. package/dist/mcp/config.d.ts.map +1 -0
  258. package/dist/mcp/config.js +205 -0
  259. package/dist/mcp/config.js.map +1 -0
  260. package/dist/mcp/index.d.ts +5 -0
  261. package/dist/mcp/index.d.ts.map +1 -0
  262. package/dist/mcp/index.js +10 -0
  263. package/dist/mcp/index.js.map +1 -0
  264. package/dist/mcp/manager.d.ts +49 -0
  265. package/dist/mcp/manager.d.ts.map +1 -0
  266. package/dist/mcp/manager.js +374 -0
  267. package/dist/mcp/manager.js.map +1 -0
  268. package/dist/mcp/types.d.ts +85 -0
  269. package/dist/mcp/types.d.ts.map +1 -0
  270. package/dist/mcp/types.js +1 -0
  271. package/dist/mcp/types.js.map +1 -0
  272. package/dist/onboarding/custom-packs.d.ts +7 -0
  273. package/dist/onboarding/custom-packs.d.ts.map +1 -0
  274. package/dist/onboarding/custom-packs.js +20 -0
  275. package/dist/onboarding/custom-packs.js.map +1 -0
  276. package/dist/onboarding/custom-providers.d.ts +4 -0
  277. package/dist/onboarding/custom-providers.d.ts.map +1 -0
  278. package/dist/onboarding/custom-providers.js +28 -0
  279. package/dist/onboarding/custom-providers.js.map +1 -0
  280. package/dist/onboarding/index.d.ts +5 -0
  281. package/dist/onboarding/index.d.ts.map +1 -0
  282. package/dist/onboarding/index.js +21 -0
  283. package/dist/onboarding/index.js.map +1 -0
  284. package/dist/onboarding/om-settings.d.ts +20 -0
  285. package/dist/onboarding/om-settings.d.ts.map +1 -0
  286. package/dist/onboarding/om-settings.js +26 -0
  287. package/dist/onboarding/om-settings.js.map +1 -0
  288. package/dist/onboarding/packs.d.ts +48 -0
  289. package/dist/onboarding/packs.d.ts.map +1 -0
  290. package/dist/onboarding/packs.js +111 -0
  291. package/dist/onboarding/packs.js.map +1 -0
  292. package/dist/onboarding/settings.d.ts +323 -0
  293. package/dist/onboarding/settings.d.ts.map +1 -0
  294. package/dist/onboarding/settings.js +594 -0
  295. package/dist/onboarding/settings.js.map +1 -0
  296. package/dist/permissions.d.ts +55 -0
  297. package/dist/permissions.d.ts.map +1 -0
  298. package/dist/permissions.js +119 -0
  299. package/dist/permissions.js.map +1 -0
  300. package/dist/plugin.d.ts +81 -0
  301. package/dist/plugin.d.ts.map +1 -0
  302. package/dist/plugin.js +30 -0
  303. package/dist/plugin.js.map +1 -0
  304. package/dist/plugins/dependencies.d.ts +9 -0
  305. package/dist/plugins/dependencies.d.ts.map +1 -0
  306. package/dist/plugins/dependencies.js +141 -0
  307. package/dist/plugins/dependencies.js.map +1 -0
  308. package/dist/plugins/install.d.ts +21 -0
  309. package/dist/plugins/install.d.ts.map +1 -0
  310. package/dist/plugins/install.js +200 -0
  311. package/dist/plugins/install.js.map +1 -0
  312. package/dist/plugins/loader.d.ts +15 -0
  313. package/dist/plugins/loader.d.ts.map +1 -0
  314. package/dist/plugins/loader.js +221 -0
  315. package/dist/plugins/loader.js.map +1 -0
  316. package/dist/plugins/manager.d.ts +60 -0
  317. package/dist/plugins/manager.d.ts.map +1 -0
  318. package/dist/plugins/manager.js +378 -0
  319. package/dist/plugins/manager.js.map +1 -0
  320. package/dist/plugins/manifest.d.ts +14 -0
  321. package/dist/plugins/manifest.d.ts.map +1 -0
  322. package/dist/plugins/manifest.js +75 -0
  323. package/dist/plugins/manifest.js.map +1 -0
  324. package/dist/plugins/package-link.d.ts +3 -0
  325. package/dist/plugins/package-link.d.ts.map +1 -0
  326. package/dist/plugins/package-link.js +77 -0
  327. package/dist/plugins/package-link.js.map +1 -0
  328. package/dist/plugins/paths.d.ts +10 -0
  329. package/dist/plugins/paths.d.ts.map +1 -0
  330. package/dist/plugins/paths.js +26 -0
  331. package/dist/plugins/paths.js.map +1 -0
  332. package/dist/plugins/registry.d.ts +8 -0
  333. package/dist/plugins/registry.d.ts.map +1 -0
  334. package/dist/plugins/registry.js +96 -0
  335. package/dist/plugins/registry.js.map +1 -0
  336. package/dist/plugins/scaffold.d.ts +10 -0
  337. package/dist/plugins/scaffold.d.ts.map +1 -0
  338. package/dist/plugins/scaffold.js +152 -0
  339. package/dist/plugins/scaffold.js.map +1 -0
  340. package/dist/plugins/types.d.ts +45 -0
  341. package/dist/plugins/types.d.ts.map +1 -0
  342. package/dist/plugins/types.js +1 -0
  343. package/dist/plugins/types.js.map +1 -0
  344. package/dist/processors/plan-rejection-abort.d.ts +12 -0
  345. package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
  346. package/dist/processors/plan-rejection-abort.js +53 -0
  347. package/dist/processors/plan-rejection-abort.js.map +1 -0
  348. package/dist/providers/amazon-bedrock-gateway.d.ts +40 -0
  349. package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
  350. package/dist/providers/amazon-bedrock-gateway.js +79 -0
  351. package/dist/providers/amazon-bedrock-gateway.js.map +1 -0
  352. package/dist/providers/amazon-bedrock.d.ts +28 -0
  353. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  354. package/dist/providers/amazon-bedrock.js +62 -0
  355. package/dist/providers/amazon-bedrock.js.map +1 -0
  356. package/dist/providers/claude-max.d.ts +50 -0
  357. package/dist/providers/claude-max.d.ts.map +1 -0
  358. package/dist/providers/claude-max.js +151 -0
  359. package/dist/providers/claude-max.js.map +1 -0
  360. package/dist/providers/github-copilot.d.ts +58 -0
  361. package/dist/providers/github-copilot.d.ts.map +1 -0
  362. package/dist/providers/github-copilot.js +263 -0
  363. package/dist/providers/github-copilot.js.map +1 -0
  364. package/dist/providers/openai-codex.d.ts +70 -0
  365. package/dist/providers/openai-codex.d.ts.map +1 -0
  366. package/dist/providers/openai-codex.js +291 -0
  367. package/dist/providers/openai-codex.js.map +1 -0
  368. package/dist/schema.d.ts +167 -0
  369. package/dist/schema.d.ts.map +1 -0
  370. package/dist/schema.js +92 -0
  371. package/dist/schema.js.map +1 -0
  372. package/dist/theme-palette.d.ts +17 -0
  373. package/dist/theme-palette.d.ts.map +1 -0
  374. package/dist/theme-palette.js +17 -0
  375. package/dist/theme-palette.js.map +1 -0
  376. package/dist/tool-names.d.ts +73 -0
  377. package/dist/tool-names.d.ts.map +1 -0
  378. package/dist/tool-names.js +43 -0
  379. package/dist/tool-names.js.map +1 -0
  380. package/dist/tools/index.d.ts +6 -0
  381. package/dist/tools/index.d.ts.map +1 -0
  382. package/dist/tools/index.js +9 -0
  383. package/dist/tools/index.js.map +1 -0
  384. package/dist/tools/request-sandbox-access.d.ts +6 -0
  385. package/dist/tools/request-sandbox-access.d.ts.map +1 -0
  386. package/dist/tools/request-sandbox-access.js +88 -0
  387. package/dist/tools/request-sandbox-access.js.map +1 -0
  388. package/dist/tools/utils.d.ts +20 -0
  389. package/dist/tools/utils.d.ts.map +1 -0
  390. package/dist/tools/utils.js +22 -0
  391. package/dist/tools/utils.js.map +1 -0
  392. package/dist/tools/web-search.d.ts +35 -0
  393. package/dist/tools/web-search.d.ts.map +1 -0
  394. package/dist/tools/web-search.js +65 -0
  395. package/dist/tools/web-search.js.map +1 -0
  396. package/dist/utils/binaries.d.ts +7 -0
  397. package/dist/utils/binaries.d.ts.map +1 -0
  398. package/dist/utils/binaries.js +74 -0
  399. package/dist/utils/binaries.js.map +1 -0
  400. package/dist/utils/debug-log.d.ts +12 -0
  401. package/dist/utils/debug-log.d.ts.map +1 -0
  402. package/dist/utils/debug-log.js +55 -0
  403. package/dist/utils/debug-log.js.map +1 -0
  404. package/dist/utils/errors.d.ts +36 -0
  405. package/dist/utils/errors.d.ts.map +1 -0
  406. package/dist/utils/errors.js +207 -0
  407. package/dist/utils/errors.js.map +1 -0
  408. package/dist/utils/gateway-sync.d.ts +26 -0
  409. package/dist/utils/gateway-sync.d.ts.map +1 -0
  410. package/dist/utils/gateway-sync.js +49 -0
  411. package/dist/utils/gateway-sync.js.map +1 -0
  412. package/dist/utils/plan-diff.d.ts +25 -0
  413. package/dist/utils/plan-diff.d.ts.map +1 -0
  414. package/dist/utils/plan-diff.js +43 -0
  415. package/dist/utils/plan-diff.js.map +1 -0
  416. package/dist/utils/plans.d.ts +56 -0
  417. package/dist/utils/plans.d.ts.map +1 -0
  418. package/dist/utils/plans.js +99 -0
  419. package/dist/utils/plans.js.map +1 -0
  420. package/dist/utils/project.d.ts +161 -0
  421. package/dist/utils/project.d.ts.map +1 -0
  422. package/dist/utils/project.js +302 -0
  423. package/dist/utils/project.js.map +1 -0
  424. package/dist/utils/signals-pubsub.d.ts +41 -0
  425. package/dist/utils/signals-pubsub.d.ts.map +1 -0
  426. package/dist/utils/signals-pubsub.js +104 -0
  427. package/dist/utils/signals-pubsub.js.map +1 -0
  428. package/dist/utils/slash-command-loader.d.ts +48 -0
  429. package/dist/utils/slash-command-loader.d.ts.map +1 -0
  430. package/dist/utils/slash-command-loader.js +155 -0
  431. package/dist/utils/slash-command-loader.js.map +1 -0
  432. package/dist/utils/slash-command-processor.d.ts +14 -0
  433. package/dist/utils/slash-command-processor.d.ts.map +1 -0
  434. package/dist/utils/slash-command-processor.js +96 -0
  435. package/dist/utils/slash-command-processor.js.map +1 -0
  436. package/dist/utils/stdin-pipe.d.ts +33 -0
  437. package/dist/utils/stdin-pipe.d.ts.map +1 -0
  438. package/dist/utils/stdin-pipe.js +72 -0
  439. package/dist/utils/stdin-pipe.js.map +1 -0
  440. package/dist/utils/storage-factory.d.ts +50 -0
  441. package/dist/utils/storage-factory.d.ts.map +1 -0
  442. package/dist/utils/storage-factory.js +98 -0
  443. package/dist/utils/storage-factory.js.map +1 -0
  444. package/dist/utils/thread-lock.d.ts +26 -0
  445. package/dist/utils/thread-lock.d.ts.map +1 -0
  446. package/dist/utils/thread-lock.js +108 -0
  447. package/dist/utils/thread-lock.js.map +1 -0
  448. package/dist/utils/token-estimator.d.ts +3 -0
  449. package/dist/utils/token-estimator.d.ts.map +1 -0
  450. package/dist/utils/token-estimator.js +21 -0
  451. package/dist/utils/token-estimator.js.map +1 -0
  452. package/dist/utils/update-check.d.ts +52 -0
  453. package/dist/utils/update-check.d.ts.map +1 -0
  454. package/dist/utils/update-check.js +177 -0
  455. package/dist/utils/update-check.js.map +1 -0
  456. package/dist/voice/stt-registry.d.ts +64 -0
  457. package/dist/voice/stt-registry.d.ts.map +1 -0
  458. package/dist/voice/stt-registry.js +126 -0
  459. package/dist/voice/stt-registry.js.map +1 -0
  460. package/package.json +92 -0
@@ -0,0 +1,205 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { DEFAULT_CONFIG_DIR } from "../constants.js";
5
+ function loadMcpConfig(projectDir, configDirName = DEFAULT_CONFIG_DIR) {
6
+ const claudeConfig = loadClaudeSettings(projectDir);
7
+ const globalConfig = loadSingleConfig(getGlobalMcpPath(configDirName));
8
+ const rootConfig = loadSingleConfig(getRootMcpPath(projectDir));
9
+ const projectConfig = loadSingleConfig(getProjectMcpPath(projectDir, configDirName));
10
+ return mergeConfigs(claudeConfig, globalConfig, rootConfig, projectConfig);
11
+ }
12
+ function getProjectMcpPath(projectDir, configDirName = DEFAULT_CONFIG_DIR) {
13
+ return path.join(projectDir, configDirName, "mcp.json");
14
+ }
15
+ function getRootMcpPath(projectDir) {
16
+ return path.join(projectDir, ".mcp.json");
17
+ }
18
+ function getGlobalMcpPath(configDirName = DEFAULT_CONFIG_DIR) {
19
+ return path.join(os.homedir(), configDirName, "mcp.json");
20
+ }
21
+ function getClaudeSettingsPath(projectDir) {
22
+ return path.join(projectDir, ".claude", "settings.local.json");
23
+ }
24
+ function loadSingleConfig(filePath) {
25
+ try {
26
+ if (!fs.existsSync(filePath)) return {};
27
+ const raw = fs.readFileSync(filePath, "utf-8");
28
+ return validateConfig(JSON.parse(raw));
29
+ } catch {
30
+ return {};
31
+ }
32
+ }
33
+ function loadClaudeSettings(projectDir) {
34
+ try {
35
+ const filePath = getClaudeSettingsPath(projectDir);
36
+ if (!fs.existsSync(filePath)) return {};
37
+ const raw = fs.readFileSync(filePath, "utf-8");
38
+ const parsed = JSON.parse(raw);
39
+ if (parsed?.mcpServers && typeof parsed.mcpServers === "object") {
40
+ return validateConfig({ mcpServers: parsed.mcpServers });
41
+ }
42
+ return {};
43
+ } catch {
44
+ return {};
45
+ }
46
+ }
47
+ function expandEnvVars(value, env = process.env) {
48
+ return value.replace(
49
+ /\$\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\}|\$([A-Za-z_][A-Za-z0-9_]*)/g,
50
+ (_match, bracedName, fallback, bareName) => {
51
+ const name = bracedName ?? bareName;
52
+ const resolved = env[name];
53
+ if (resolved !== void 0 && resolved !== "") return resolved;
54
+ return fallback ?? "";
55
+ }
56
+ );
57
+ }
58
+ function expandHeaderEnvVars(headers) {
59
+ const expanded = {};
60
+ for (const [key, value] of Object.entries(headers)) {
61
+ if (typeof value === "string") expanded[key] = expandEnvVars(value);
62
+ }
63
+ return expanded;
64
+ }
65
+ function expandEnvValues(env) {
66
+ const expanded = {};
67
+ for (const [key, value] of Object.entries(env)) {
68
+ if (typeof value === "string") expanded[key] = expandEnvVars(value);
69
+ }
70
+ return expanded;
71
+ }
72
+ function classifyServerEntry(raw) {
73
+ if (!raw || typeof raw !== "object") {
74
+ return { kind: "skip", reason: "Invalid entry: expected an object" };
75
+ }
76
+ const obj = raw;
77
+ const hasCommand = typeof obj.command === "string";
78
+ const hasUrl = typeof obj.url === "string";
79
+ if (hasCommand && hasUrl) {
80
+ return { kind: "skip", reason: 'Cannot specify both "command" and "url"' };
81
+ }
82
+ if (hasCommand) {
83
+ return { kind: "stdio" };
84
+ }
85
+ if (hasUrl) {
86
+ try {
87
+ new URL(expandEnvVars(obj.url));
88
+ } catch {
89
+ return { kind: "skip", reason: `Invalid URL: "${obj.url}"` };
90
+ }
91
+ return { kind: "http" };
92
+ }
93
+ return { kind: "skip", reason: 'Missing required field: "command" (stdio) or "url" (http)' };
94
+ }
95
+ function validateConfig(raw) {
96
+ if (!raw || typeof raw !== "object") return {};
97
+ const obj = raw;
98
+ if (!obj.mcpServers || typeof obj.mcpServers !== "object") return {};
99
+ const servers = {};
100
+ const skippedServers = [];
101
+ const rawServers = obj.mcpServers;
102
+ for (const [name, entry] of Object.entries(rawServers)) {
103
+ const classification = classifyServerEntry(entry);
104
+ if (classification.kind === "stdio") {
105
+ const e = entry;
106
+ servers[name] = {
107
+ command: e.command,
108
+ args: Array.isArray(e.args) ? e.args : void 0,
109
+ env: typeof e.env === "object" && e.env !== null ? expandEnvValues(e.env) : void 0
110
+ };
111
+ } else if (classification.kind === "http") {
112
+ const e = entry;
113
+ const oauthResult = parseOAuthConfig(e.oauth);
114
+ if (oauthResult.reason) {
115
+ skippedServers.push({ name, reason: oauthResult.reason });
116
+ continue;
117
+ }
118
+ servers[name] = {
119
+ url: expandEnvVars(e.url),
120
+ headers: typeof e.headers === "object" && e.headers !== null ? expandHeaderEnvVars(e.headers) : void 0,
121
+ oauth: oauthResult.config
122
+ };
123
+ } else {
124
+ skippedServers.push({ name, reason: classification.reason });
125
+ }
126
+ }
127
+ const result = {};
128
+ if (Object.keys(servers).length > 0) {
129
+ result.mcpServers = servers;
130
+ }
131
+ if (skippedServers.length > 0) {
132
+ result.skippedServers = skippedServers;
133
+ }
134
+ return result;
135
+ }
136
+ function parseOAuthConfig(raw) {
137
+ if (raw === void 0) return {};
138
+ if (!raw || typeof raw !== "object") {
139
+ return { reason: "Invalid OAuth config: expected an object" };
140
+ }
141
+ const obj = raw;
142
+ if (typeof obj.redirectUrl !== "string") {
143
+ return { reason: 'Invalid OAuth config: missing required field "redirectUrl"' };
144
+ }
145
+ try {
146
+ const redirectUrl = new URL(obj.redirectUrl);
147
+ const isLoopback = redirectUrl.hostname === "localhost" || redirectUrl.hostname.startsWith("127.") || redirectUrl.hostname === "[::1]";
148
+ if (redirectUrl.protocol !== "https:" && !(redirectUrl.protocol === "http:" && isLoopback)) {
149
+ return { reason: "Invalid OAuth redirectUrl: must use HTTPS unless it is a loopback HTTP URL" };
150
+ }
151
+ } catch {
152
+ return { reason: `Invalid OAuth redirectUrl: "${obj.redirectUrl}"` };
153
+ }
154
+ if (obj.scopes !== void 0 && (!Array.isArray(obj.scopes) || obj.scopes.some((scope) => typeof scope !== "string"))) {
155
+ return { reason: 'Invalid OAuth config: "scopes" must be an array of strings' };
156
+ }
157
+ return {
158
+ config: {
159
+ redirectUrl: obj.redirectUrl,
160
+ clientName: typeof obj.clientName === "string" ? obj.clientName : void 0,
161
+ scopes: obj.scopes,
162
+ clientId: typeof obj.clientId === "string" ? obj.clientId : void 0,
163
+ clientSecret: typeof obj.clientSecret === "string" ? obj.clientSecret : void 0
164
+ }
165
+ };
166
+ }
167
+ function mergeConfigs(...configs) {
168
+ const merged = {};
169
+ const allSkipped = [];
170
+ for (const config of configs) {
171
+ if (config.mcpServers) {
172
+ for (const [name, server] of Object.entries(config.mcpServers)) {
173
+ merged[name] = server;
174
+ }
175
+ }
176
+ if (config.skippedServers) {
177
+ allSkipped.push(...config.skippedServers);
178
+ }
179
+ }
180
+ const validNames = new Set(Object.keys(merged));
181
+ const filteredSkipped = allSkipped.filter((s) => !validNames.has(s.name));
182
+ const skippedMap = /* @__PURE__ */ new Map();
183
+ for (const s of filteredSkipped) {
184
+ skippedMap.set(s.name, s);
185
+ }
186
+ const result = {};
187
+ if (Object.keys(merged).length > 0) {
188
+ result.mcpServers = merged;
189
+ }
190
+ if (skippedMap.size > 0) {
191
+ result.skippedServers = Array.from(skippedMap.values());
192
+ }
193
+ return result;
194
+ }
195
+ export {
196
+ classifyServerEntry,
197
+ expandEnvVars,
198
+ getClaudeSettingsPath,
199
+ getGlobalMcpPath,
200
+ getProjectMcpPath,
201
+ getRootMcpPath,
202
+ loadMcpConfig,
203
+ validateConfig
204
+ };
205
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mcp/config.ts"],"sourcesContent":["/**\n * MCP server configuration loading from filesystem.\n * Loads from:\n * 1. .claude/settings.local.json (Claude Code compat — lowest priority)\n * 2. ~/.mastracode/mcp.json (global)\n * 3. .mcp.json (project root — Claude Code compatible)\n * 4. .mastracode/mcp.json (project — highest priority)\n *\n * Higher-priority configs override lower ones by server name. The project root\n * `.mcp.json` is read so a project that already keeps MCP servers there for\n * Claude Code does not need to duplicate them under `.mastracode/`.\n */\n\nimport * as fs from 'node:fs';\nimport * as os from 'node:os';\nimport * as path from 'node:path';\nimport { DEFAULT_CONFIG_DIR } from '../constants.js';\nimport type { McpConfig, McpHttpOAuthConfig, McpServerConfig, McpSkippedServer } from './types.js';\n\nexport function loadMcpConfig(projectDir: string, configDirName = DEFAULT_CONFIG_DIR): McpConfig {\n const claudeConfig = loadClaudeSettings(projectDir);\n const globalConfig = loadSingleConfig(getGlobalMcpPath(configDirName));\n const rootConfig = loadSingleConfig(getRootMcpPath(projectDir));\n const projectConfig = loadSingleConfig(getProjectMcpPath(projectDir, configDirName));\n\n return mergeConfigs(claudeConfig, globalConfig, rootConfig, projectConfig);\n}\n\nexport function getProjectMcpPath(projectDir: string, configDirName = DEFAULT_CONFIG_DIR): string {\n return path.join(projectDir, configDirName, 'mcp.json');\n}\n\nexport function getRootMcpPath(projectDir: string): string {\n return path.join(projectDir, '.mcp.json');\n}\n\nexport function getGlobalMcpPath(configDirName = DEFAULT_CONFIG_DIR): string {\n return path.join(os.homedir(), configDirName, 'mcp.json');\n}\n\nexport function getClaudeSettingsPath(projectDir: string): string {\n return path.join(projectDir, '.claude', 'settings.local.json');\n}\n\nfunction loadSingleConfig(filePath: string): McpConfig {\n try {\n if (!fs.existsSync(filePath)) return {};\n const raw = fs.readFileSync(filePath, 'utf-8');\n return validateConfig(JSON.parse(raw));\n } catch {\n return {};\n }\n}\n\nfunction loadClaudeSettings(projectDir: string): McpConfig {\n try {\n const filePath = getClaudeSettingsPath(projectDir);\n if (!fs.existsSync(filePath)) return {};\n const raw = fs.readFileSync(filePath, 'utf-8');\n const parsed = JSON.parse(raw);\n // Claude Code stores mcpServers at the top level of settings\n if (parsed?.mcpServers && typeof parsed.mcpServers === 'object') {\n return validateConfig({ mcpServers: parsed.mcpServers });\n }\n return {};\n } catch {\n return {};\n }\n}\n\n/**\n * Expand `${VAR}` and `${VAR:-default}` references in a string from the\n * environment, matching how Claude Code resolves values in `.mcp.json`.\n * A referenced variable that is unset or empty falls back to its default,\n * or to an empty string when no default is given.\n */\nexport function expandEnvVars(value: string, env: NodeJS.ProcessEnv = process.env): string {\n return value.replace(\n /\\$\\{([A-Za-z_][A-Za-z0-9_]*)(?::-([^}]*))?\\}|\\$([A-Za-z_][A-Za-z0-9_]*)/g,\n (_match, bracedName, fallback, bareName) => {\n const name = bracedName ?? bareName;\n const resolved = env[name];\n if (resolved !== undefined && resolved !== '') return resolved;\n return fallback ?? '';\n },\n );\n}\n\n/**\n * Expand `${VAR}` and `$VAR` references in every string-valued HTTP header so that\n * secrets like API keys can be referenced from the environment instead of\n * being hardcoded in `mcp.json`.\n */\nfunction expandHeaderEnvVars(headers: Record<string, unknown>): Record<string, string> {\n const expanded: Record<string, string> = {};\n for (const [key, value] of Object.entries(headers)) {\n if (typeof value === 'string') expanded[key] = expandEnvVars(value);\n }\n return expanded;\n}\n\n/**\n * Expand `${VAR}` and `$VAR` references in every string-valued environment\n * variable passed to a stdio server, so that secrets can be referenced from the\n * host environment instead of being hardcoded in `mcp.json`.\n */\nfunction expandEnvValues(env: Record<string, unknown>): Record<string, string> {\n const expanded: Record<string, string> = {};\n for (const [key, value] of Object.entries(env)) {\n if (typeof value === 'string') expanded[key] = expandEnvVars(value);\n }\n return expanded;\n}\n\n/**\n * Classify a raw server entry as stdio, http, or skip (with reason).\n */\nexport function classifyServerEntry(raw: unknown): { kind: 'stdio' | 'http' | 'skip'; reason?: string } {\n if (!raw || typeof raw !== 'object') {\n return { kind: 'skip', reason: 'Invalid entry: expected an object' };\n }\n\n const obj = raw as Record<string, unknown>;\n const hasCommand = typeof obj.command === 'string';\n const hasUrl = typeof obj.url === 'string';\n\n if (hasCommand && hasUrl) {\n return { kind: 'skip', reason: 'Cannot specify both \"command\" and \"url\"' };\n }\n\n if (hasCommand) {\n return { kind: 'stdio' };\n }\n\n if (hasUrl) {\n try {\n new URL(expandEnvVars(obj.url as string));\n } catch {\n return { kind: 'skip', reason: `Invalid URL: \"${obj.url}\"` };\n }\n return { kind: 'http' };\n }\n\n return { kind: 'skip', reason: 'Missing required field: \"command\" (stdio) or \"url\" (http)' };\n}\n\nexport function validateConfig(raw: unknown): McpConfig {\n if (!raw || typeof raw !== 'object') return {};\n const obj = raw as Record<string, unknown>;\n\n if (!obj.mcpServers || typeof obj.mcpServers !== 'object') return {};\n\n const servers: Record<string, McpServerConfig> = {};\n const skippedServers: McpSkippedServer[] = [];\n const rawServers = obj.mcpServers as Record<string, unknown>;\n\n for (const [name, entry] of Object.entries(rawServers)) {\n const classification = classifyServerEntry(entry);\n\n if (classification.kind === 'stdio') {\n const e = entry as Record<string, unknown>;\n servers[name] = {\n command: e.command as string,\n args: Array.isArray(e.args) ? (e.args as string[]) : undefined,\n env:\n typeof e.env === 'object' && e.env !== null ? expandEnvValues(e.env as Record<string, unknown>) : undefined,\n };\n } else if (classification.kind === 'http') {\n const e = entry as Record<string, unknown>;\n const oauthResult = parseOAuthConfig(e.oauth);\n if (oauthResult.reason) {\n skippedServers.push({ name, reason: oauthResult.reason });\n continue;\n }\n servers[name] = {\n url: expandEnvVars(e.url as string),\n headers:\n typeof e.headers === 'object' && e.headers !== null\n ? expandHeaderEnvVars(e.headers as Record<string, unknown>)\n : undefined,\n oauth: oauthResult.config,\n };\n } else {\n skippedServers.push({ name, reason: classification.reason! });\n }\n }\n\n const result: McpConfig = {};\n if (Object.keys(servers).length > 0) {\n result.mcpServers = servers;\n }\n if (skippedServers.length > 0) {\n result.skippedServers = skippedServers;\n }\n return result;\n}\n\nfunction parseOAuthConfig(raw: unknown): { config?: McpHttpOAuthConfig; reason?: string } {\n if (raw === undefined) return {};\n if (!raw || typeof raw !== 'object') {\n return { reason: 'Invalid OAuth config: expected an object' };\n }\n\n const obj = raw as Record<string, unknown>;\n if (typeof obj.redirectUrl !== 'string') {\n return { reason: 'Invalid OAuth config: missing required field \"redirectUrl\"' };\n }\n try {\n const redirectUrl = new URL(obj.redirectUrl);\n const isLoopback =\n redirectUrl.hostname === 'localhost' ||\n redirectUrl.hostname.startsWith('127.') ||\n redirectUrl.hostname === '[::1]';\n if (redirectUrl.protocol !== 'https:' && !(redirectUrl.protocol === 'http:' && isLoopback)) {\n return { reason: 'Invalid OAuth redirectUrl: must use HTTPS unless it is a loopback HTTP URL' };\n }\n } catch {\n return { reason: `Invalid OAuth redirectUrl: \"${obj.redirectUrl}\"` };\n }\n\n if (obj.scopes !== undefined && (!Array.isArray(obj.scopes) || obj.scopes.some(scope => typeof scope !== 'string'))) {\n return { reason: 'Invalid OAuth config: \"scopes\" must be an array of strings' };\n }\n\n return {\n config: {\n redirectUrl: obj.redirectUrl,\n clientName: typeof obj.clientName === 'string' ? obj.clientName : undefined,\n scopes: obj.scopes as string[] | undefined,\n clientId: typeof obj.clientId === 'string' ? obj.clientId : undefined,\n clientSecret: typeof obj.clientSecret === 'string' ? obj.clientSecret : undefined,\n },\n };\n}\n\n/**\n * Merge configs: claude (lowest priority) < global < project (highest).\n * Later configs override earlier by server name.\n * Skipped entries are accumulated, but if a higher-priority config provides\n * a valid entry for a skipped name, the skip is removed.\n */\nfunction mergeConfigs(...configs: McpConfig[]): McpConfig {\n const merged: Record<string, McpServerConfig> = {};\n const allSkipped: McpSkippedServer[] = [];\n\n for (const config of configs) {\n if (config.mcpServers) {\n for (const [name, server] of Object.entries(config.mcpServers)) {\n merged[name] = server;\n }\n }\n if (config.skippedServers) {\n allSkipped.push(...config.skippedServers);\n }\n }\n\n // Remove skipped entries that were resolved by a valid config at any priority\n const validNames = new Set(Object.keys(merged));\n const filteredSkipped = allSkipped.filter(s => !validNames.has(s.name));\n\n // Deduplicate skipped entries by name (keep last occurrence — highest priority reason)\n const skippedMap = new Map<string, McpSkippedServer>();\n for (const s of filteredSkipped) {\n skippedMap.set(s.name, s);\n }\n\n const result: McpConfig = {};\n if (Object.keys(merged).length > 0) {\n result.mcpServers = merged;\n }\n if (skippedMap.size > 0) {\n result.skippedServers = Array.from(skippedMap.values());\n }\n return result;\n}\n"],"mappings":"AAaA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,0BAA0B;AAG5B,SAAS,cAAc,YAAoB,gBAAgB,oBAA+B;AAC/F,QAAM,eAAe,mBAAmB,UAAU;AAClD,QAAM,eAAe,iBAAiB,iBAAiB,aAAa,CAAC;AACrE,QAAM,aAAa,iBAAiB,eAAe,UAAU,CAAC;AAC9D,QAAM,gBAAgB,iBAAiB,kBAAkB,YAAY,aAAa,CAAC;AAEnF,SAAO,aAAa,cAAc,cAAc,YAAY,aAAa;AAC3E;AAEO,SAAS,kBAAkB,YAAoB,gBAAgB,oBAA4B;AAChG,SAAO,KAAK,KAAK,YAAY,eAAe,UAAU;AACxD;AAEO,SAAS,eAAe,YAA4B;AACzD,SAAO,KAAK,KAAK,YAAY,WAAW;AAC1C;AAEO,SAAS,iBAAiB,gBAAgB,oBAA4B;AAC3E,SAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,eAAe,UAAU;AAC1D;AAEO,SAAS,sBAAsB,YAA4B;AAChE,SAAO,KAAK,KAAK,YAAY,WAAW,qBAAqB;AAC/D;AAEA,SAAS,iBAAiB,UAA6B;AACrD,MAAI;AACF,QAAI,CAAC,GAAG,WAAW,QAAQ,EAAG,QAAO,CAAC;AACtC,UAAM,MAAM,GAAG,aAAa,UAAU,OAAO;AAC7C,WAAO,eAAe,KAAK,MAAM,GAAG,CAAC;AAAA,EACvC,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAEA,SAAS,mBAAmB,YAA+B;AACzD,MAAI;AACF,UAAM,WAAW,sBAAsB,UAAU;AACjD,QAAI,CAAC,GAAG,WAAW,QAAQ,EAAG,QAAO,CAAC;AACtC,UAAM,MAAM,GAAG,aAAa,UAAU,OAAO;AAC7C,UAAM,SAAS,KAAK,MAAM,GAAG;AAE7B,QAAI,QAAQ,cAAc,OAAO,OAAO,eAAe,UAAU;AAC/D,aAAO,eAAe,EAAE,YAAY,OAAO,WAAW,CAAC;AAAA,IACzD;AACA,WAAO,CAAC;AAAA,EACV,QAAQ;AACN,WAAO,CAAC;AAAA,EACV;AACF;AAQO,SAAS,cAAc,OAAe,MAAyB,QAAQ,KAAa;AACzF,SAAO,MAAM;AAAA,IACX;AAAA,IACA,CAAC,QAAQ,YAAY,UAAU,aAAa;AAC1C,YAAM,OAAO,cAAc;AAC3B,YAAM,WAAW,IAAI,IAAI;AACzB,UAAI,aAAa,UAAa,aAAa,GAAI,QAAO;AACtD,aAAO,YAAY;AAAA,IACrB;AAAA,EACF;AACF;AAOA,SAAS,oBAAoB,SAA0D;AACrF,QAAM,WAAmC,CAAC;AAC1C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,QAAI,OAAO,UAAU,SAAU,UAAS,GAAG,IAAI,cAAc,KAAK;AAAA,EACpE;AACA,SAAO;AACT;AAOA,SAAS,gBAAgB,KAAsD;AAC7E,QAAM,WAAmC,CAAC;AAC1C,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,OAAO,UAAU,SAAU,UAAS,GAAG,IAAI,cAAc,KAAK;AAAA,EACpE;AACA,SAAO;AACT;AAKO,SAAS,oBAAoB,KAAoE;AACtG,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO,EAAE,MAAM,QAAQ,QAAQ,oCAAoC;AAAA,EACrE;AAEA,QAAM,MAAM;AACZ,QAAM,aAAa,OAAO,IAAI,YAAY;AAC1C,QAAM,SAAS,OAAO,IAAI,QAAQ;AAElC,MAAI,cAAc,QAAQ;AACxB,WAAO,EAAE,MAAM,QAAQ,QAAQ,0CAA0C;AAAA,EAC3E;AAEA,MAAI,YAAY;AACd,WAAO,EAAE,MAAM,QAAQ;AAAA,EACzB;AAEA,MAAI,QAAQ;AACV,QAAI;AACF,UAAI,IAAI,cAAc,IAAI,GAAa,CAAC;AAAA,IAC1C,QAAQ;AACN,aAAO,EAAE,MAAM,QAAQ,QAAQ,iBAAiB,IAAI,GAAG,IAAI;AAAA,IAC7D;AACA,WAAO,EAAE,MAAM,OAAO;AAAA,EACxB;AAEA,SAAO,EAAE,MAAM,QAAQ,QAAQ,4DAA4D;AAC7F;AAEO,SAAS,eAAe,KAAyB;AACtD,MAAI,CAAC,OAAO,OAAO,QAAQ,SAAU,QAAO,CAAC;AAC7C,QAAM,MAAM;AAEZ,MAAI,CAAC,IAAI,cAAc,OAAO,IAAI,eAAe,SAAU,QAAO,CAAC;AAEnE,QAAM,UAA2C,CAAC;AAClD,QAAM,iBAAqC,CAAC;AAC5C,QAAM,aAAa,IAAI;AAEvB,aAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,UAAU,GAAG;AACtD,UAAM,iBAAiB,oBAAoB,KAAK;AAEhD,QAAI,eAAe,SAAS,SAAS;AACnC,YAAM,IAAI;AACV,cAAQ,IAAI,IAAI;AAAA,QACd,SAAS,EAAE;AAAA,QACX,MAAM,MAAM,QAAQ,EAAE,IAAI,IAAK,EAAE,OAAoB;AAAA,QACrD,KACE,OAAO,EAAE,QAAQ,YAAY,EAAE,QAAQ,OAAO,gBAAgB,EAAE,GAA8B,IAAI;AAAA,MACtG;AAAA,IACF,WAAW,eAAe,SAAS,QAAQ;AACzC,YAAM,IAAI;AACV,YAAM,cAAc,iBAAiB,EAAE,KAAK;AAC5C,UAAI,YAAY,QAAQ;AACtB,uBAAe,KAAK,EAAE,MAAM,QAAQ,YAAY,OAAO,CAAC;AACxD;AAAA,MACF;AACA,cAAQ,IAAI,IAAI;AAAA,QACd,KAAK,cAAc,EAAE,GAAa;AAAA,QAClC,SACE,OAAO,EAAE,YAAY,YAAY,EAAE,YAAY,OAC3C,oBAAoB,EAAE,OAAkC,IACxD;AAAA,QACN,OAAO,YAAY;AAAA,MACrB;AAAA,IACF,OAAO;AACL,qBAAe,KAAK,EAAE,MAAM,QAAQ,eAAe,OAAQ,CAAC;AAAA,IAC9D;AAAA,EACF;AAEA,QAAM,SAAoB,CAAC;AAC3B,MAAI,OAAO,KAAK,OAAO,EAAE,SAAS,GAAG;AACnC,WAAO,aAAa;AAAA,EACtB;AACA,MAAI,eAAe,SAAS,GAAG;AAC7B,WAAO,iBAAiB;AAAA,EAC1B;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,KAAgE;AACxF,MAAI,QAAQ,OAAW,QAAO,CAAC;AAC/B,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,WAAO,EAAE,QAAQ,2CAA2C;AAAA,EAC9D;AAEA,QAAM,MAAM;AACZ,MAAI,OAAO,IAAI,gBAAgB,UAAU;AACvC,WAAO,EAAE,QAAQ,6DAA6D;AAAA,EAChF;AACA,MAAI;AACF,UAAM,cAAc,IAAI,IAAI,IAAI,WAAW;AAC3C,UAAM,aACJ,YAAY,aAAa,eACzB,YAAY,SAAS,WAAW,MAAM,KACtC,YAAY,aAAa;AAC3B,QAAI,YAAY,aAAa,YAAY,EAAE,YAAY,aAAa,WAAW,aAAa;AAC1F,aAAO,EAAE,QAAQ,6EAA6E;AAAA,IAChG;AAAA,EACF,QAAQ;AACN,WAAO,EAAE,QAAQ,+BAA+B,IAAI,WAAW,IAAI;AAAA,EACrE;AAEA,MAAI,IAAI,WAAW,WAAc,CAAC,MAAM,QAAQ,IAAI,MAAM,KAAK,IAAI,OAAO,KAAK,WAAS,OAAO,UAAU,QAAQ,IAAI;AACnH,WAAO,EAAE,QAAQ,6DAA6D;AAAA,EAChF;AAEA,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,aAAa,IAAI;AAAA,MACjB,YAAY,OAAO,IAAI,eAAe,WAAW,IAAI,aAAa;AAAA,MAClE,QAAQ,IAAI;AAAA,MACZ,UAAU,OAAO,IAAI,aAAa,WAAW,IAAI,WAAW;AAAA,MAC5D,cAAc,OAAO,IAAI,iBAAiB,WAAW,IAAI,eAAe;AAAA,IAC1E;AAAA,EACF;AACF;AAQA,SAAS,gBAAgB,SAAiC;AACxD,QAAM,SAA0C,CAAC;AACjD,QAAM,aAAiC,CAAC;AAExC,aAAW,UAAU,SAAS;AAC5B,QAAI,OAAO,YAAY;AACrB,iBAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,OAAO,UAAU,GAAG;AAC9D,eAAO,IAAI,IAAI;AAAA,MACjB;AAAA,IACF;AACA,QAAI,OAAO,gBAAgB;AACzB,iBAAW,KAAK,GAAG,OAAO,cAAc;AAAA,IAC1C;AAAA,EACF;AAGA,QAAM,aAAa,IAAI,IAAI,OAAO,KAAK,MAAM,CAAC;AAC9C,QAAM,kBAAkB,WAAW,OAAO,OAAK,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC;AAGtE,QAAM,aAAa,oBAAI,IAA8B;AACrD,aAAW,KAAK,iBAAiB;AAC/B,eAAW,IAAI,EAAE,MAAM,CAAC;AAAA,EAC1B;AAEA,QAAM,SAAoB,CAAC;AAC3B,MAAI,OAAO,KAAK,MAAM,EAAE,SAAS,GAAG;AAClC,WAAO,aAAa;AAAA,EACtB;AACA,MAAI,WAAW,OAAO,GAAG;AACvB,WAAO,iBAAiB,MAAM,KAAK,WAAW,OAAO,CAAC;AAAA,EACxD;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,5 @@
1
+ export { createMcpManager } from './manager.js';
2
+ export type { McpManager, McpInitResult } from './manager.js';
3
+ export { loadMcpConfig, getProjectMcpPath, getGlobalMcpPath, getClaudeSettingsPath } from './config.js';
4
+ export type { McpConfig, McpServerConfig, McpStdioServerConfig, McpHttpServerConfig, McpSkippedServer, McpServerStatus, } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxG,YAAY,EACV,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { createMcpManager } from "./manager.js";
2
+ import { loadMcpConfig, getProjectMcpPath, getGlobalMcpPath, getClaudeSettingsPath } from "./config.js";
3
+ export {
4
+ createMcpManager,
5
+ getClaudeSettingsPath,
6
+ getGlobalMcpPath,
7
+ getProjectMcpPath,
8
+ loadMcpConfig
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/mcp/index.ts"],"sourcesContent":["export { createMcpManager } from './manager.js';\nexport type { McpManager, McpInitResult } from './manager.js';\nexport { loadMcpConfig, getProjectMcpPath, getGlobalMcpPath, getClaudeSettingsPath } from './config.js';\nexport type {\n McpConfig,\n McpServerConfig,\n McpStdioServerConfig,\n McpHttpServerConfig,\n McpSkippedServer,\n McpServerStatus,\n} from './types.js';\n"],"mappings":"AAAA,SAAS,wBAAwB;AAEjC,SAAS,eAAe,mBAAmB,kBAAkB,6BAA6B;","names":[]}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * MCP manager — orchestrates MCP server connections using MCPClient directly.
3
+ * Created once at startup, provides tools from connected MCP servers.
4
+ */
5
+ import type { McpConfig, McpServerConfig, McpServerStatus, McpSkippedServer } from './types.js';
6
+ /** Summary of MCP initialization result. */
7
+ export interface McpInitResult {
8
+ connected: McpServerStatus[];
9
+ failed: McpServerStatus[];
10
+ skipped: McpSkippedServer[];
11
+ totalTools: number;
12
+ }
13
+ /** Public interface for the MCP manager returned by createMcpManager(). */
14
+ export interface McpManager {
15
+ /** Connect to all configured MCP servers and collect their tools. */
16
+ init(): Promise<void>;
17
+ /** Start init in the background. Returns a promise that resolves with status when done. */
18
+ initInBackground(): Promise<McpInitResult>;
19
+ /** Disconnect all servers, reload config from disk, reconnect. */
20
+ reload(): Promise<void>;
21
+ /** Reconnect a single server by name. Returns updated status. */
22
+ reconnectServer(name: string): Promise<McpServerStatus>;
23
+ /** Disconnect from all MCP servers and clean up. */
24
+ disconnect(): Promise<void>;
25
+ /** Get all tools from connected MCP servers (namespaced as serverName_toolName). */
26
+ getTools(): Record<string, any>;
27
+ /** Check if any MCP servers are configured (or skipped). */
28
+ hasServers(): boolean;
29
+ /** Get status of all servers. */
30
+ getServerStatuses(): McpServerStatus[];
31
+ /** Get servers that were skipped during config loading. */
32
+ getSkippedServers(): McpSkippedServer[];
33
+ /** Get config file paths for display. */
34
+ getConfigPaths(): {
35
+ project: string;
36
+ global: string;
37
+ claude: string;
38
+ };
39
+ /** Get the merged config. */
40
+ getConfig(): McpConfig;
41
+ /** Get captured stderr logs for a server. */
42
+ getServerLogs(name: string): string[];
43
+ }
44
+ /**
45
+ * Create an MCP manager that wraps MCPClient with config-file discovery
46
+ * and per-server status tracking.
47
+ */
48
+ export declare function createMcpManager(projectDir: string, configDirName?: string, extraServers?: Record<string, McpServerConfig>): McpManager;
49
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,SAAS,EAAuB,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIrH,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,qEAAqE;IACrE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,2FAA2F;IAC3F,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,kEAAkE;IAClE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,iEAAiE;IACjE,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,oDAAoD;IACpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,4DAA4D;IAC5D,UAAU,IAAI,OAAO,CAAC;IACtB,iCAAiC;IACjC,iBAAiB,IAAI,eAAe,EAAE,CAAC;IACvC,2DAA2D;IAC3D,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;IACxC,yCAAyC;IACzC,cAAc,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,6BAA6B;IAC7B,SAAS,IAAI,SAAS,CAAC;IACvB,6CAA6C;IAC7C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACvC;AAkED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,aAAa,SAAqB,EAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC7C,UAAU,CAwWZ"}