@mastra/code-sdk 0.0.0-esbuild-bundle-worker-20260807173433

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 (491) hide show
  1. package/CHANGELOG.md +1349 -0
  2. package/LICENSE.md +30 -0
  3. package/README.md +70 -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 +161 -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 +214 -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 +65 -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 +35 -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 +2 -0
  23. package/dist/agents/credential-resolver.d.ts +51 -0
  24. package/dist/agents/credential-resolver.d.ts.map +1 -0
  25. package/dist/agents/credential-resolver.js +52 -0
  26. package/dist/agents/credential-resolver.js.map +1 -0
  27. package/dist/agents/custom-provider-source.d.ts +35 -0
  28. package/dist/agents/custom-provider-source.d.ts.map +1 -0
  29. package/dist/agents/custom-provider-source.js +25 -0
  30. package/dist/agents/custom-provider-source.js.map +1 -0
  31. package/dist/agents/instructions.d.ts +6 -0
  32. package/dist/agents/instructions.d.ts.map +1 -0
  33. package/dist/agents/instructions.js +32 -0
  34. package/dist/agents/instructions.js.map +1 -0
  35. package/dist/agents/mastracode-gateway.d.ts +74 -0
  36. package/dist/agents/mastracode-gateway.d.ts.map +1 -0
  37. package/dist/agents/mastracode-gateway.js +400 -0
  38. package/dist/agents/mastracode-gateway.js.map +1 -0
  39. package/dist/agents/memory.d.ts +13 -0
  40. package/dist/agents/memory.d.ts.map +1 -0
  41. package/dist/agents/memory.js +116 -0
  42. package/dist/agents/memory.js.map +1 -0
  43. package/dist/agents/model.d.ts +59 -0
  44. package/dist/agents/model.d.ts.map +1 -0
  45. package/dist/agents/model.js +132 -0
  46. package/dist/agents/model.js.map +1 -0
  47. package/dist/agents/modes/build.d.ts +10 -0
  48. package/dist/agents/modes/build.d.ts.map +1 -0
  49. package/dist/agents/modes/build.js +44 -0
  50. package/dist/agents/modes/build.js.map +1 -0
  51. package/dist/agents/modes/explore.d.ts +10 -0
  52. package/dist/agents/modes/explore.d.ts.map +1 -0
  53. package/dist/agents/modes/explore.js +39 -0
  54. package/dist/agents/modes/explore.js.map +1 -0
  55. package/dist/agents/modes/plan.d.ts +6 -0
  56. package/dist/agents/modes/plan.d.ts.map +1 -0
  57. package/dist/agents/modes/plan.js +37 -0
  58. package/dist/agents/modes/plan.js.map +1 -0
  59. package/dist/agents/prompts/agent-instructions.d.ts +61 -0
  60. package/dist/agents/prompts/agent-instructions.d.ts.map +1 -0
  61. package/dist/agents/prompts/agent-instructions.js +201 -0
  62. package/dist/agents/prompts/agent-instructions.js.map +1 -0
  63. package/dist/agents/prompts/build.d.ts +12 -0
  64. package/dist/agents/prompts/build.d.ts.map +1 -0
  65. package/dist/agents/prompts/build.js +76 -0
  66. package/dist/agents/prompts/build.js.map +1 -0
  67. package/dist/agents/prompts/fast.d.ts +5 -0
  68. package/dist/agents/prompts/fast.d.ts.map +1 -0
  69. package/dist/agents/prompts/fast.js +26 -0
  70. package/dist/agents/prompts/fast.js.map +1 -0
  71. package/dist/agents/prompts/index.d.ts +19 -0
  72. package/dist/agents/prompts/index.d.ts.map +1 -0
  73. package/dist/agents/prompts/index.js +65 -0
  74. package/dist/agents/prompts/index.js.map +1 -0
  75. package/dist/agents/prompts/model.d.ts +5 -0
  76. package/dist/agents/prompts/model.d.ts.map +1 -0
  77. package/dist/agents/prompts/model.js +23 -0
  78. package/dist/agents/prompts/model.js.map +1 -0
  79. package/dist/agents/prompts/plan.d.ts +6 -0
  80. package/dist/agents/prompts/plan.d.ts.map +1 -0
  81. package/dist/agents/prompts/plan.js +111 -0
  82. package/dist/agents/prompts/plan.js.map +1 -0
  83. package/dist/agents/prompts/tool-guidance.d.ts +13 -0
  84. package/dist/agents/prompts/tool-guidance.d.ts.map +1 -0
  85. package/dist/agents/prompts/tool-guidance.js +149 -0
  86. package/dist/agents/prompts/tool-guidance.js.map +1 -0
  87. package/dist/agents/sandbox-filesystem.d.ts +99 -0
  88. package/dist/agents/sandbox-filesystem.d.ts.map +1 -0
  89. package/dist/agents/sandbox-filesystem.js +328 -0
  90. package/dist/agents/sandbox-filesystem.js.map +1 -0
  91. package/dist/agents/sandbox-reattach.d.ts +19 -0
  92. package/dist/agents/sandbox-reattach.d.ts.map +1 -0
  93. package/dist/agents/sandbox-reattach.js +15 -0
  94. package/dist/agents/sandbox-reattach.js.map +1 -0
  95. package/dist/agents/thread-caveman-state.d.ts +17 -0
  96. package/dist/agents/thread-caveman-state.d.ts.map +1 -0
  97. package/dist/agents/thread-caveman-state.js +107 -0
  98. package/dist/agents/thread-caveman-state.js.map +1 -0
  99. package/dist/agents/tool-availability.d.ts +10 -0
  100. package/dist/agents/tool-availability.d.ts.map +1 -0
  101. package/dist/agents/tool-availability.js +87 -0
  102. package/dist/agents/tool-availability.js.map +1 -0
  103. package/dist/agents/tools.d.ts +19 -0
  104. package/dist/agents/tools.d.ts.map +1 -0
  105. package/dist/agents/tools.js +105 -0
  106. package/dist/agents/tools.js.map +1 -0
  107. package/dist/agents/workspace.d.ts +32 -0
  108. package/dist/agents/workspace.d.ts.map +1 -0
  109. package/dist/agents/workspace.js +251 -0
  110. package/dist/agents/workspace.js.map +1 -0
  111. package/dist/analytics.d.ts +18 -0
  112. package/dist/analytics.d.ts.map +1 -0
  113. package/dist/analytics.js +163 -0
  114. package/dist/analytics.js.map +1 -0
  115. package/dist/auth/authorization-input.d.ts +16 -0
  116. package/dist/auth/authorization-input.d.ts.map +1 -0
  117. package/dist/auth/authorization-input.js +42 -0
  118. package/dist/auth/authorization-input.js.map +1 -0
  119. package/dist/auth/device-code.d.ts +93 -0
  120. package/dist/auth/device-code.d.ts.map +1 -0
  121. package/dist/auth/device-code.js +129 -0
  122. package/dist/auth/device-code.js.map +1 -0
  123. package/dist/auth/index.d.ts +10 -0
  124. package/dist/auth/index.d.ts.map +1 -0
  125. package/dist/auth/index.js +6 -0
  126. package/dist/auth/pkce.d.ts +13 -0
  127. package/dist/auth/pkce.d.ts.map +1 -0
  128. package/dist/auth/pkce.js +32 -0
  129. package/dist/auth/pkce.js.map +1 -0
  130. package/dist/auth/providers/anthropic.d.ts +40 -0
  131. package/dist/auth/providers/anthropic.d.ts.map +1 -0
  132. package/dist/auth/providers/anthropic.js +126 -0
  133. package/dist/auth/providers/anthropic.js.map +1 -0
  134. package/dist/auth/providers/github-copilot.d.ts +154 -0
  135. package/dist/auth/providers/github-copilot.d.ts.map +1 -0
  136. package/dist/auth/providers/github-copilot.js +340 -0
  137. package/dist/auth/providers/github-copilot.js.map +1 -0
  138. package/dist/auth/providers/openai-codex.d.ts +139 -0
  139. package/dist/auth/providers/openai-codex.d.ts.map +1 -0
  140. package/dist/auth/providers/openai-codex.js +519 -0
  141. package/dist/auth/providers/openai-codex.js.map +1 -0
  142. package/dist/auth/providers/xai.d.ts +64 -0
  143. package/dist/auth/providers/xai.d.ts.map +1 -0
  144. package/dist/auth/providers/xai.js +205 -0
  145. package/dist/auth/providers/xai.js.map +1 -0
  146. package/dist/auth/storage.d.ts +91 -0
  147. package/dist/auth/storage.d.ts.map +1 -0
  148. package/dist/auth/storage.js +197 -0
  149. package/dist/auth/storage.js.map +1 -0
  150. package/dist/auth/types.d.ts +89 -0
  151. package/dist/auth/types.d.ts.map +1 -0
  152. package/dist/auth/types.js +1 -0
  153. package/dist/clipboard/index.d.ts +26 -0
  154. package/dist/clipboard/index.d.ts.map +1 -0
  155. package/dist/clipboard/index.js +226 -0
  156. package/dist/clipboard/index.js.map +1 -0
  157. package/dist/constants.d.ts +10 -0
  158. package/dist/constants.d.ts.map +1 -0
  159. package/dist/constants.js +18 -0
  160. package/dist/constants.js.map +1 -0
  161. package/dist/error-classification.d.ts +10 -0
  162. package/dist/error-classification.d.ts.map +1 -0
  163. package/dist/error-classification.js +22 -0
  164. package/dist/error-classification.js.map +1 -0
  165. package/dist/evals/context-builder.d.ts +41 -0
  166. package/dist/evals/context-builder.d.ts.map +1 -0
  167. package/dist/evals/context-builder.js +161 -0
  168. package/dist/evals/context-builder.js.map +1 -0
  169. package/dist/evals/index.d.ts +4 -0
  170. package/dist/evals/index.d.ts.map +1 -0
  171. package/dist/evals/index.js +5 -0
  172. package/dist/evals/scorers/classify-command.d.ts +31 -0
  173. package/dist/evals/scorers/classify-command.d.ts.map +1 -0
  174. package/dist/evals/scorers/classify-command.js +73 -0
  175. package/dist/evals/scorers/classify-command.js.map +1 -0
  176. package/dist/evals/scorers/efficiency.d.ts +44 -0
  177. package/dist/evals/scorers/efficiency.d.ts.map +1 -0
  178. package/dist/evals/scorers/efficiency.js +259 -0
  179. package/dist/evals/scorers/efficiency.js.map +1 -0
  180. package/dist/evals/scorers/extract-tools.d.ts +25 -0
  181. package/dist/evals/scorers/extract-tools.d.ts.map +1 -0
  182. package/dist/evals/scorers/extract-tools.js +60 -0
  183. package/dist/evals/scorers/extract-tools.js.map +1 -0
  184. package/dist/evals/scorers/index.d.ts +3 -0
  185. package/dist/evals/scorers/index.d.ts.map +1 -0
  186. package/dist/evals/scorers/index.js +3 -0
  187. package/dist/evals/scorers/outcome.d.ts +49 -0
  188. package/dist/evals/scorers/outcome.d.ts.map +1 -0
  189. package/dist/evals/scorers/outcome.js +347 -0
  190. package/dist/evals/scorers/outcome.js.map +1 -0
  191. package/dist/goal-manager.d.ts +78 -0
  192. package/dist/goal-manager.d.ts.map +1 -0
  193. package/dist/goal-manager.js +273 -0
  194. package/dist/goal-manager.js.map +1 -0
  195. package/dist/goal-signal.d.ts +14 -0
  196. package/dist/goal-signal.d.ts.map +1 -0
  197. package/dist/goal-signal.js +17 -0
  198. package/dist/goal-signal.js.map +1 -0
  199. package/dist/headless/cli.d.ts +42 -0
  200. package/dist/headless/cli.d.ts.map +1 -0
  201. package/dist/headless/cli.js +195 -0
  202. package/dist/headless/cli.js.map +1 -0
  203. package/dist/headless/flags.d.ts +33 -0
  204. package/dist/headless/flags.d.ts.map +1 -0
  205. package/dist/headless/flags.js +190 -0
  206. package/dist/headless/flags.js.map +1 -0
  207. package/dist/headless/format.d.ts +38 -0
  208. package/dist/headless/format.d.ts.map +1 -0
  209. package/dist/headless/format.js +89 -0
  210. package/dist/headless/format.js.map +1 -0
  211. package/dist/headless/index.d.ts +25 -0
  212. package/dist/headless/index.d.ts.map +1 -0
  213. package/dist/headless/index.js +6 -0
  214. package/dist/headless/policy.d.ts +17 -0
  215. package/dist/headless/policy.d.ts.map +1 -0
  216. package/dist/headless/policy.js +42 -0
  217. package/dist/headless/policy.js.map +1 -0
  218. package/dist/headless/run-mc.d.ts +7 -0
  219. package/dist/headless/run-mc.d.ts.map +1 -0
  220. package/dist/headless/run-mc.js +346 -0
  221. package/dist/headless/run-mc.js.map +1 -0
  222. package/dist/headless/types.d.ts +158 -0
  223. package/dist/headless/types.d.ts.map +1 -0
  224. package/dist/headless/types.js +18 -0
  225. package/dist/headless/types.js.map +1 -0
  226. package/dist/hooks/config.d.ts +11 -0
  227. package/dist/hooks/config.d.ts.map +1 -0
  228. package/dist/hooks/config.js +73 -0
  229. package/dist/hooks/config.js.map +1 -0
  230. package/dist/hooks/executor.d.ts +13 -0
  231. package/dist/hooks/executor.d.ts.map +1 -0
  232. package/dist/hooks/executor.js +128 -0
  233. package/dist/hooks/executor.js.map +1 -0
  234. package/dist/hooks/index.d.ts +6 -0
  235. package/dist/hooks/index.d.ts.map +1 -0
  236. package/dist/hooks/index.js +5 -0
  237. package/dist/hooks/manager.d.ts +47 -0
  238. package/dist/hooks/manager.d.ts.map +1 -0
  239. package/dist/hooks/manager.js +225 -0
  240. package/dist/hooks/manager.js.map +1 -0
  241. package/dist/hooks/types.d.ts +152 -0
  242. package/dist/hooks/types.d.ts.map +1 -0
  243. package/dist/hooks/types.js +8 -0
  244. package/dist/hooks/types.js.map +1 -0
  245. package/dist/index.d.ts +258 -0
  246. package/dist/index.d.ts.map +1 -0
  247. package/dist/index.js +740 -0
  248. package/dist/index.js.map +1 -0
  249. package/dist/ipc/ipc-reporter.d.ts +14 -0
  250. package/dist/ipc/ipc-reporter.d.ts.map +1 -0
  251. package/dist/ipc/ipc-reporter.js +21 -0
  252. package/dist/ipc/ipc-reporter.js.map +1 -0
  253. package/dist/lsp/client.d.ts +56 -0
  254. package/dist/lsp/client.d.ts.map +1 -0
  255. package/dist/lsp/client.js +251 -0
  256. package/dist/lsp/client.js.map +1 -0
  257. package/dist/lsp/index.d.ts +4 -0
  258. package/dist/lsp/index.d.ts.map +1 -0
  259. package/dist/lsp/index.js +4 -0
  260. package/dist/lsp/language.d.ts +9 -0
  261. package/dist/lsp/language.d.ts.map +1 -0
  262. package/dist/lsp/language.js +44 -0
  263. package/dist/lsp/language.js.map +1 -0
  264. package/dist/lsp/manager.d.ts +34 -0
  265. package/dist/lsp/manager.d.ts.map +1 -0
  266. package/dist/lsp/manager.js +82 -0
  267. package/dist/lsp/manager.js.map +1 -0
  268. package/dist/lsp/server.d.ts +27 -0
  269. package/dist/lsp/server.d.ts.map +1 -0
  270. package/dist/lsp/server.js +159 -0
  271. package/dist/lsp/server.js.map +1 -0
  272. package/dist/lsp/workspace.d.ts +9 -0
  273. package/dist/lsp/workspace.d.ts.map +1 -0
  274. package/dist/lsp/workspace.js +55 -0
  275. package/dist/lsp/workspace.js.map +1 -0
  276. package/dist/mcp/config.d.ts +54 -0
  277. package/dist/mcp/config.d.ts.map +1 -0
  278. package/dist/mcp/config.js +240 -0
  279. package/dist/mcp/config.js.map +1 -0
  280. package/dist/mcp/index.d.ts +5 -0
  281. package/dist/mcp/index.d.ts.map +1 -0
  282. package/dist/mcp/index.js +3 -0
  283. package/dist/mcp/manager.d.ts +98 -0
  284. package/dist/mcp/manager.d.ts.map +1 -0
  285. package/dist/mcp/manager.js +612 -0
  286. package/dist/mcp/manager.js.map +1 -0
  287. package/dist/mcp/state.d.ts +33 -0
  288. package/dist/mcp/state.d.ts.map +1 -0
  289. package/dist/mcp/state.js +88 -0
  290. package/dist/mcp/state.js.map +1 -0
  291. package/dist/mcp/types.d.ts +120 -0
  292. package/dist/mcp/types.d.ts.map +1 -0
  293. package/dist/mcp/types.js +1 -0
  294. package/dist/onboarding/custom-packs.d.ts +7 -0
  295. package/dist/onboarding/custom-packs.d.ts.map +1 -0
  296. package/dist/onboarding/custom-packs.js +17 -0
  297. package/dist/onboarding/custom-packs.js.map +1 -0
  298. package/dist/onboarding/custom-providers.d.ts +4 -0
  299. package/dist/onboarding/custom-providers.d.ts.map +1 -0
  300. package/dist/onboarding/custom-providers.js +30 -0
  301. package/dist/onboarding/custom-providers.js.map +1 -0
  302. package/dist/onboarding/index.d.ts +5 -0
  303. package/dist/onboarding/index.d.ts.map +1 -0
  304. package/dist/onboarding/index.js +3 -0
  305. package/dist/onboarding/om-settings.d.ts +25 -0
  306. package/dist/onboarding/om-settings.d.ts.map +1 -0
  307. package/dist/onboarding/om-settings.js +47 -0
  308. package/dist/onboarding/om-settings.js.map +1 -0
  309. package/dist/onboarding/packs.d.ts +46 -0
  310. package/dist/onboarding/packs.d.ts.map +1 -0
  311. package/dist/onboarding/packs.js +160 -0
  312. package/dist/onboarding/packs.js.map +1 -0
  313. package/dist/onboarding/settings.d.ts +338 -0
  314. package/dist/onboarding/settings.d.ts.map +1 -0
  315. package/dist/onboarding/settings.js +673 -0
  316. package/dist/onboarding/settings.js.map +1 -0
  317. package/dist/permissions.d.ts +55 -0
  318. package/dist/permissions.d.ts.map +1 -0
  319. package/dist/permissions.js +132 -0
  320. package/dist/permissions.js.map +1 -0
  321. package/dist/plugin.d.ts +81 -0
  322. package/dist/plugin.d.ts.map +1 -0
  323. package/dist/plugin.js +28 -0
  324. package/dist/plugin.js.map +1 -0
  325. package/dist/plugins/dependencies.d.ts +9 -0
  326. package/dist/plugins/dependencies.d.ts.map +1 -0
  327. package/dist/plugins/dependencies.js +88 -0
  328. package/dist/plugins/dependencies.js.map +1 -0
  329. package/dist/plugins/install.d.ts +21 -0
  330. package/dist/plugins/install.d.ts.map +1 -0
  331. package/dist/plugins/install.js +190 -0
  332. package/dist/plugins/install.js.map +1 -0
  333. package/dist/plugins/loader.d.ts +15 -0
  334. package/dist/plugins/loader.d.ts.map +1 -0
  335. package/dist/plugins/loader.js +206 -0
  336. package/dist/plugins/loader.js.map +1 -0
  337. package/dist/plugins/manager.d.ts +64 -0
  338. package/dist/plugins/manager.d.ts.map +1 -0
  339. package/dist/plugins/manager.js +384 -0
  340. package/dist/plugins/manager.js.map +1 -0
  341. package/dist/plugins/manifest.d.ts +14 -0
  342. package/dist/plugins/manifest.d.ts.map +1 -0
  343. package/dist/plugins/manifest.js +50 -0
  344. package/dist/plugins/manifest.js.map +1 -0
  345. package/dist/plugins/package-link.d.ts +3 -0
  346. package/dist/plugins/package-link.d.ts.map +1 -0
  347. package/dist/plugins/package-link.js +61 -0
  348. package/dist/plugins/package-link.js.map +1 -0
  349. package/dist/plugins/paths.d.ts +10 -0
  350. package/dist/plugins/paths.d.ts.map +1 -0
  351. package/dist/plugins/paths.js +25 -0
  352. package/dist/plugins/paths.js.map +1 -0
  353. package/dist/plugins/registry.d.ts +8 -0
  354. package/dist/plugins/registry.d.ts.map +1 -0
  355. package/dist/plugins/registry.js +112 -0
  356. package/dist/plugins/registry.js.map +1 -0
  357. package/dist/plugins/scaffold.d.ts +10 -0
  358. package/dist/plugins/scaffold.d.ts.map +1 -0
  359. package/dist/plugins/scaffold.js +116 -0
  360. package/dist/plugins/scaffold.js.map +1 -0
  361. package/dist/plugins/types.d.ts +45 -0
  362. package/dist/plugins/types.d.ts.map +1 -0
  363. package/dist/plugins/types.js +1 -0
  364. package/dist/processors/plan-rejection-abort.d.ts +12 -0
  365. package/dist/processors/plan-rejection-abort.d.ts.map +1 -0
  366. package/dist/processors/plan-rejection-abort.js +54 -0
  367. package/dist/processors/plan-rejection-abort.js.map +1 -0
  368. package/dist/providers/amazon-bedrock-gateway.d.ts +47 -0
  369. package/dist/providers/amazon-bedrock-gateway.d.ts.map +1 -0
  370. package/dist/providers/amazon-bedrock-gateway.js +152 -0
  371. package/dist/providers/amazon-bedrock-gateway.js.map +1 -0
  372. package/dist/providers/amazon-bedrock.d.ts +28 -0
  373. package/dist/providers/amazon-bedrock.d.ts.map +1 -0
  374. package/dist/providers/amazon-bedrock.js +83 -0
  375. package/dist/providers/amazon-bedrock.js.map +1 -0
  376. package/dist/providers/claude-max.d.ts +52 -0
  377. package/dist/providers/claude-max.d.ts.map +1 -0
  378. package/dist/providers/claude-max.js +171 -0
  379. package/dist/providers/claude-max.js.map +1 -0
  380. package/dist/providers/github-copilot.d.ts +60 -0
  381. package/dist/providers/github-copilot.d.ts.map +1 -0
  382. package/dist/providers/github-copilot.js +265 -0
  383. package/dist/providers/github-copilot.js.map +1 -0
  384. package/dist/providers/openai-codex.d.ts +72 -0
  385. package/dist/providers/openai-codex.d.ts.map +1 -0
  386. package/dist/providers/openai-codex.js +302 -0
  387. package/dist/providers/openai-codex.js.map +1 -0
  388. package/dist/providers/xai.d.ts +33 -0
  389. package/dist/providers/xai.d.ts.map +1 -0
  390. package/dist/providers/xai.js +70 -0
  391. package/dist/providers/xai.js.map +1 -0
  392. package/dist/schema.d.ts +192 -0
  393. package/dist/schema.d.ts.map +1 -0
  394. package/dist/schema.js +98 -0
  395. package/dist/schema.js.map +1 -0
  396. package/dist/theme-palette.d.ts +17 -0
  397. package/dist/theme-palette.d.ts.map +1 -0
  398. package/dist/theme-palette.js +21 -0
  399. package/dist/theme-palette.js.map +1 -0
  400. package/dist/tool-names.d.ts +73 -0
  401. package/dist/tool-names.d.ts.map +1 -0
  402. package/dist/tool-names.js +52 -0
  403. package/dist/tool-names.js.map +1 -0
  404. package/dist/tools/index.d.ts +6 -0
  405. package/dist/tools/index.d.ts.map +1 -0
  406. package/dist/tools/index.js +3 -0
  407. package/dist/tools/request-sandbox-access.d.ts +6 -0
  408. package/dist/tools/request-sandbox-access.d.ts.map +1 -0
  409. package/dist/tools/request-sandbox-access.js +79 -0
  410. package/dist/tools/request-sandbox-access.js.map +1 -0
  411. package/dist/tools/utils.d.ts +20 -0
  412. package/dist/tools/utils.d.ts.map +1 -0
  413. package/dist/tools/utils.js +32 -0
  414. package/dist/tools/utils.js.map +1 -0
  415. package/dist/tools/web-search.d.ts +35 -0
  416. package/dist/tools/web-search.d.ts.map +1 -0
  417. package/dist/tools/web-search.js +61 -0
  418. package/dist/tools/web-search.js.map +1 -0
  419. package/dist/utils/binaries.d.ts +7 -0
  420. package/dist/utils/binaries.d.ts.map +1 -0
  421. package/dist/utils/binaries.js +78 -0
  422. package/dist/utils/binaries.js.map +1 -0
  423. package/dist/utils/debug-log.d.ts +12 -0
  424. package/dist/utils/debug-log.d.ts.map +1 -0
  425. package/dist/utils/debug-log.js +59 -0
  426. package/dist/utils/debug-log.js.map +1 -0
  427. package/dist/utils/errors.d.ts +36 -0
  428. package/dist/utils/errors.d.ts.map +1 -0
  429. package/dist/utils/errors.js +172 -0
  430. package/dist/utils/errors.js.map +1 -0
  431. package/dist/utils/gateway-sync.d.ts +26 -0
  432. package/dist/utils/gateway-sync.d.ts.map +1 -0
  433. package/dist/utils/gateway-sync.js +61 -0
  434. package/dist/utils/gateway-sync.js.map +1 -0
  435. package/dist/utils/path-security.d.ts +2 -0
  436. package/dist/utils/path-security.d.ts.map +1 -0
  437. package/dist/utils/path-security.js +10 -0
  438. package/dist/utils/path-security.js.map +1 -0
  439. package/dist/utils/plan-diff.d.ts +25 -0
  440. package/dist/utils/plan-diff.d.ts.map +1 -0
  441. package/dist/utils/plan-diff.js +62 -0
  442. package/dist/utils/plan-diff.js.map +1 -0
  443. package/dist/utils/plans.d.ts +56 -0
  444. package/dist/utils/plans.d.ts.map +1 -0
  445. package/dist/utils/plans.js +117 -0
  446. package/dist/utils/plans.js.map +1 -0
  447. package/dist/utils/project.d.ts +160 -0
  448. package/dist/utils/project.d.ts.map +1 -0
  449. package/dist/utils/project.js +364 -0
  450. package/dist/utils/project.js.map +1 -0
  451. package/dist/utils/signals-pubsub.d.ts +41 -0
  452. package/dist/utils/signals-pubsub.d.ts.map +1 -0
  453. package/dist/utils/signals-pubsub.js +122 -0
  454. package/dist/utils/signals-pubsub.js.map +1 -0
  455. package/dist/utils/slash-command-loader.d.ts +52 -0
  456. package/dist/utils/slash-command-loader.d.ts.map +1 -0
  457. package/dist/utils/slash-command-loader.js +141 -0
  458. package/dist/utils/slash-command-loader.js.map +1 -0
  459. package/dist/utils/slash-command-processor.d.ts +14 -0
  460. package/dist/utils/slash-command-processor.d.ts.map +1 -0
  461. package/dist/utils/slash-command-processor.js +105 -0
  462. package/dist/utils/slash-command-processor.js.map +1 -0
  463. package/dist/utils/stdin-pipe.d.ts +33 -0
  464. package/dist/utils/stdin-pipe.d.ts.map +1 -0
  465. package/dist/utils/stdin-pipe.js +96 -0
  466. package/dist/utils/stdin-pipe.js.map +1 -0
  467. package/dist/utils/storage-factory.d.ts +50 -0
  468. package/dist/utils/storage-factory.d.ts.map +1 -0
  469. package/dist/utils/storage-factory.js +121 -0
  470. package/dist/utils/storage-factory.js.map +1 -0
  471. package/dist/utils/storage-maintenance.d.ts +103 -0
  472. package/dist/utils/storage-maintenance.d.ts.map +1 -0
  473. package/dist/utils/storage-maintenance.js +274 -0
  474. package/dist/utils/storage-maintenance.js.map +1 -0
  475. package/dist/utils/thread-lock.d.ts +26 -0
  476. package/dist/utils/thread-lock.d.ts.map +1 -0
  477. package/dist/utils/thread-lock.js +112 -0
  478. package/dist/utils/thread-lock.js.map +1 -0
  479. package/dist/utils/token-estimator.d.ts +3 -0
  480. package/dist/utils/token-estimator.d.ts.map +1 -0
  481. package/dist/utils/token-estimator.js +21 -0
  482. package/dist/utils/token-estimator.js.map +1 -0
  483. package/dist/utils/update-check.d.ts +101 -0
  484. package/dist/utils/update-check.d.ts.map +1 -0
  485. package/dist/utils/update-check.js +383 -0
  486. package/dist/utils/update-check.js.map +1 -0
  487. package/dist/voice/stt-registry.d.ts +64 -0
  488. package/dist/voice/stt-registry.d.ts.map +1 -0
  489. package/dist/voice/stt-registry.js +144 -0
  490. package/dist/voice/stt-registry.js.map +1 -0
  491. package/package.json +96 -0
@@ -0,0 +1,612 @@
1
+ import { DEFAULT_CONFIG_DIR } from "../constants.js";
2
+ import { getAppDataDir } from "../utils/project.js";
3
+ import { DEFAULT_OAUTH_REDIRECT_URL, getClaudeSettingsPath, getGlobalMcpPath, getProjectMcpPath, loadMcpConfig, resolveOAuthRedirectUrl } from "./config.js";
4
+ import { loadDisabledServers, loadGlobalDisableState, saveDisabledServers, saveGlobalDisableState } from "./state.js";
5
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "fs";
6
+ import { dirname, join } from "path";
7
+ import { MCPClient, MCPOAuthClientProvider } from "@mastra/mcp";
8
+ //#region src/mcp/manager.ts
9
+ /**
10
+ * MCP manager — orchestrates MCP server connections using MCPClient directly.
11
+ * Created once at startup, provides tools from connected MCP servers.
12
+ */
13
+ const MASTRACODE_MCP_TIMEOUT_MS = 10080 * 60 * 1e3;
14
+ function getTransport(cfg) {
15
+ return "url" in cfg ? "http" : "stdio";
16
+ }
17
+ var FileOAuthStorage = class {
18
+ filePath;
19
+ constructor(filePath) {
20
+ this.filePath = filePath;
21
+ }
22
+ get(key) {
23
+ return this.read()[key];
24
+ }
25
+ set(key, value) {
26
+ const data = this.read();
27
+ data[key] = value;
28
+ this.write(data);
29
+ }
30
+ delete(key) {
31
+ const data = this.read();
32
+ delete data[key];
33
+ this.write(data);
34
+ }
35
+ read() {
36
+ if (!existsSync(this.filePath)) return {};
37
+ try {
38
+ return JSON.parse(readFileSync(this.filePath, "utf-8"));
39
+ } catch {
40
+ return {};
41
+ }
42
+ }
43
+ write(data) {
44
+ const dir = dirname(this.filePath);
45
+ if (!existsSync(dir)) mkdirSync(dir, {
46
+ recursive: true,
47
+ mode: 448
48
+ });
49
+ const tmpPath = `${this.filePath}.tmp`;
50
+ writeFileSync(tmpPath, JSON.stringify(data, null, 2), {
51
+ encoding: "utf-8",
52
+ mode: 384
53
+ });
54
+ renameSync(tmpPath, this.filePath);
55
+ }
56
+ };
57
+ /**
58
+ * Zero-config OAuth defaults for servers with a bare `url` entry. Dynamic
59
+ * client registration provisions the client, so no `clientId` is needed.
60
+ */
61
+ const DEFAULT_OAUTH_CONFIG = { redirectUrl: DEFAULT_OAUTH_REDIRECT_URL };
62
+ function getOAuthStoragePath(projectDir, name, cfg) {
63
+ const key = JSON.stringify({
64
+ projectDir,
65
+ name,
66
+ url: cfg.url,
67
+ redirectUrl: resolveOAuthRedirectUrl(cfg.oauth),
68
+ clientId: cfg.oauth?.clientId,
69
+ scopes: cfg.oauth?.scopes ?? []
70
+ });
71
+ return join(getAppDataDir(), "mcp-oauth", `${getStorageKeyFingerprint(key)}.json`);
72
+ }
73
+ function getStorageKeyFingerprint(value) {
74
+ let fingerprint = 14695981039346656037n;
75
+ for (let i = 0; i < value.length; i += 1) {
76
+ fingerprint ^= BigInt(value.charCodeAt(i));
77
+ fingerprint = BigInt.asUintN(64, fingerprint * 1099511628211n);
78
+ }
79
+ return fingerprint.toString(16).padStart(16, "0");
80
+ }
81
+ /**
82
+ * Create an MCP manager that wraps MCPClient with config-file discovery
83
+ * and per-server status tracking.
84
+ */
85
+ function createMcpManager(projectDir, configDirName = DEFAULT_CONFIG_DIR, extraServers) {
86
+ /** Merge programmatic servers into a base config (highest priority). */
87
+ const applyExtraServers = (base) => {
88
+ if (!extraServers || Object.keys(extraServers).length === 0) return base;
89
+ return {
90
+ ...base,
91
+ mcpServers: {
92
+ ...base.mcpServers,
93
+ ...extraServers
94
+ }
95
+ };
96
+ };
97
+ let config = applyExtraServers(loadMcpConfig(projectDir, configDirName));
98
+ let disabledServers = new Set(loadDisabledServers(projectDir));
99
+ let globalDisableState = loadGlobalDisableState();
100
+ let globallyDisabledServers = new Set(globalDisableState.disabledServers);
101
+ /** Whether a server is disabled in any scope (global kill switch, global list, or project list). */
102
+ const isDisabled = (name) => globalDisableState.allDisabled || globallyDisabledServers.has(name) || disabledServers.has(name);
103
+ /** Which scope disables a server. Global takes precedence — project-level enable can't undo it. */
104
+ const disabledScopeOf = (name) => {
105
+ if (globalDisableState.allDisabled || globallyDisabledServers.has(name)) return "global";
106
+ if (disabledServers.has(name)) return "project";
107
+ };
108
+ let client = null;
109
+ let serverDefs = {};
110
+ let tools = {};
111
+ let serverStatuses = /* @__PURE__ */ new Map();
112
+ let stderrLogs = /* @__PURE__ */ new Map();
113
+ let initialized = false;
114
+ /** Per-server handlers that receive the OAuth authorization URL during authenticateServer(). */
115
+ const authUrlHandlers = /* @__PURE__ */ new Map();
116
+ /**
117
+ * Servers with an OAuth authorization flow currently in flight. Owned by the
118
+ * manager (not the TUI) so the state survives a `/mcp` selector being closed
119
+ * and reopened — the reopened selector reads it back off the server status and
120
+ * can still offer "Cancel authentication".
121
+ */
122
+ const authenticatingServers = /* @__PURE__ */ new Set();
123
+ /**
124
+ * Servers whose in-flight authentication was cancelled by the caller. Set by
125
+ * cancelServerAuthentication() so the resolving authenticateServer() call can
126
+ * mark its failed status as a deliberate cancel rather than a genuine failure.
127
+ * This lives on the manager (not the TUI selector) so the signal survives the
128
+ * selector being closed and reopened mid-flow.
129
+ */
130
+ const cancelledAuthServers = /* @__PURE__ */ new Set();
131
+ /** Overlay the manager-owned `authenticating` flag onto a status snapshot. */
132
+ const withAuthenticating = (status) => authenticatingServers.has(status.name) ? {
133
+ ...status,
134
+ authenticating: true
135
+ } : status;
136
+ const MAX_STDERR_LINES = 200;
137
+ /** Hook into a server's stderr stream and buffer its output. */
138
+ function captureStderr(serverName) {
139
+ if (!client || typeof client.getServerStderr !== "function") return;
140
+ const stream = client.getServerStderr(serverName);
141
+ if (!stream) return;
142
+ let buffer = "";
143
+ const lines = stderrLogs.get(serverName) ?? [];
144
+ stderrLogs.set(serverName, lines);
145
+ stream.on("data", (chunk) => {
146
+ buffer += chunk.toString();
147
+ const parts = buffer.split("\n");
148
+ buffer = parts.pop();
149
+ for (const line of parts) if (line.trim()) {
150
+ lines.push(line);
151
+ if (lines.length > MAX_STDERR_LINES) lines.shift();
152
+ }
153
+ });
154
+ stream.on("end", () => {
155
+ if (buffer.trim()) {
156
+ lines.push(buffer);
157
+ if (lines.length > MAX_STDERR_LINES) lines.shift();
158
+ }
159
+ });
160
+ }
161
+ function createOAuthProvider(name, cfg) {
162
+ const oauth = cfg.oauth ?? (existsSync(getOAuthStoragePath(projectDir, name, cfg)) ? DEFAULT_OAUTH_CONFIG : void 0);
163
+ if (!oauth) return void 0;
164
+ const redirectUrl = resolveOAuthRedirectUrl(oauth);
165
+ return new MCPOAuthClientProvider({
166
+ redirectUrl,
167
+ clientMetadata: {
168
+ redirect_uris: [redirectUrl],
169
+ client_name: oauth.clientName ?? `Mastra Code MCP ${name}`,
170
+ grant_types: ["authorization_code", "refresh_token"],
171
+ response_types: ["code"],
172
+ ...oauth.scopes?.length ? { scope: oauth.scopes.join(" ") } : {}
173
+ },
174
+ clientInformation: oauth.clientId ? {
175
+ client_id: oauth.clientId,
176
+ ...oauth.clientSecret ? { client_secret: oauth.clientSecret } : {}
177
+ } : void 0,
178
+ storage: new FileOAuthStorage(getOAuthStoragePath(projectDir, name, cfg)),
179
+ onRedirectToAuthorization: (url) => {
180
+ authUrlHandlers.get(name)?.(url.toString());
181
+ }
182
+ });
183
+ }
184
+ function buildServerDefs(servers) {
185
+ const defs = {};
186
+ for (const [name, cfg] of Object.entries(servers)) if ("url" in cfg) {
187
+ const httpCfg = cfg;
188
+ defs[name] = {
189
+ url: new URL(httpCfg.url),
190
+ requestInit: httpCfg.headers ? { headers: httpCfg.headers } : void 0,
191
+ authProvider: createOAuthProvider(name, httpCfg)
192
+ };
193
+ } else defs[name] = {
194
+ command: cfg.command,
195
+ args: cfg.args,
196
+ env: cfg.env,
197
+ stderr: "pipe"
198
+ };
199
+ return defs;
200
+ }
201
+ /** Seed a `disabled` status for every disabled server so it stays visible. */
202
+ function setDisabledStatuses() {
203
+ for (const [name, cfg] of Object.entries(config.mcpServers ?? {})) {
204
+ const scope = disabledScopeOf(name);
205
+ if (!scope) continue;
206
+ serverStatuses.set(name, {
207
+ name,
208
+ connected: false,
209
+ toolCount: 0,
210
+ toolNames: [],
211
+ transport: getTransport(cfg),
212
+ disabled: true,
213
+ disabledScope: scope
214
+ });
215
+ }
216
+ }
217
+ async function connectAndCollectTools() {
218
+ setDisabledStatuses();
219
+ const servers = Object.fromEntries(Object.entries(config.mcpServers ?? {}).filter(([name]) => !isDisabled(name)));
220
+ if (Object.keys(servers).length === 0) return;
221
+ const serverNames = Object.keys(servers);
222
+ for (const name of serverNames) serverStatuses.set(name, {
223
+ name,
224
+ connected: false,
225
+ connecting: true,
226
+ toolCount: 0,
227
+ toolNames: [],
228
+ transport: getTransport(servers[name])
229
+ });
230
+ serverDefs = buildServerDefs(servers);
231
+ client = new MCPClient({
232
+ id: "mastra-code-mcp",
233
+ servers: serverDefs,
234
+ timeout: MASTRACODE_MCP_TIMEOUT_MS
235
+ });
236
+ try {
237
+ const { toolsets, errors } = await client.listToolsetsWithErrors();
238
+ const typedToolsets = toolsets;
239
+ for (const [serverName, serverTools] of Object.entries(typedToolsets)) for (const [toolName, toolConfig] of Object.entries(serverTools)) tools[`${serverName}_${toolName}`] = toolConfig;
240
+ for (const name of serverNames) {
241
+ const serverTools = typedToolsets[name];
242
+ if (serverTools && Object.keys(serverTools).length > 0) {
243
+ const toolNames = Object.keys(serverTools).map((t) => `${name}_${t}`);
244
+ serverStatuses.set(name, {
245
+ name,
246
+ connected: true,
247
+ toolCount: toolNames.length,
248
+ toolNames,
249
+ transport: getTransport(servers[name])
250
+ });
251
+ } else {
252
+ const error = errors[name] ?? "Failed to connect";
253
+ serverStatuses.set(name, {
254
+ name,
255
+ connected: false,
256
+ toolCount: 0,
257
+ toolNames: [],
258
+ transport: getTransport(servers[name]),
259
+ error,
260
+ ...serverNeedsAuth(name, servers[name], error) ? { needsAuth: true } : {}
261
+ });
262
+ }
263
+ }
264
+ for (const name of serverNames) captureStderr(name);
265
+ } catch (error) {
266
+ const errMsg = error instanceof Error ? error.message : String(error);
267
+ for (const name of serverNames) serverStatuses.set(name, {
268
+ name,
269
+ connected: false,
270
+ toolCount: 0,
271
+ toolNames: [],
272
+ transport: getTransport(servers[name]),
273
+ error: errMsg,
274
+ ...serverNeedsAuth(name, servers[name], errMsg) ? { needsAuth: true } : {}
275
+ });
276
+ }
277
+ }
278
+ /**
279
+ * Whether a failed HTTP server is blocked on OAuth authorization.
280
+ *
281
+ * Provider-backed servers report the exact state tracked by `@mastra/mcp`.
282
+ * Bare `url` entries carry no provider until the user authenticates, so the
283
+ * signal is a 401 in the connect error — surfaced either as the status text
284
+ * or as the RFC 6750 `invalid_token` bearer error code in the response body.
285
+ */
286
+ function serverNeedsAuth(name, cfg, error) {
287
+ if (getTransport(cfg) !== "http") return false;
288
+ if (client?.getServerAuthState?.(name) === "needs-auth") return true;
289
+ if (serverDefs[name]?.authProvider) return false;
290
+ return error !== void 0 && /\b401\b|unauthorized|invalid_token/i.test(error);
291
+ }
292
+ /**
293
+ * Runs a single-server connect action (reconnect or authenticate), then
294
+ * refreshes that server's tools and status from the client.
295
+ */
296
+ async function connectSingleServer(name, cfg, connect) {
297
+ const transport = getTransport(cfg);
298
+ const prefix = `${name}_`;
299
+ for (const key of Object.keys(tools)) if (key.startsWith(prefix)) delete tools[key];
300
+ stderrLogs.delete(name);
301
+ serverStatuses.set(name, {
302
+ name,
303
+ connected: false,
304
+ connecting: true,
305
+ toolCount: 0,
306
+ toolNames: [],
307
+ transport
308
+ });
309
+ try {
310
+ await connect();
311
+ captureStderr(name);
312
+ const { toolsets, errors } = await client.listToolsetsWithErrors();
313
+ const serverTools = toolsets[name];
314
+ const serverError = errors[name];
315
+ if (serverError) {
316
+ const status = {
317
+ name,
318
+ connected: false,
319
+ toolCount: 0,
320
+ toolNames: [],
321
+ transport,
322
+ error: serverError,
323
+ ...serverNeedsAuth(name, cfg, serverError) ? { needsAuth: true } : {}
324
+ };
325
+ serverStatuses.set(name, status);
326
+ return status;
327
+ } else if (serverTools && Object.keys(serverTools).length > 0) {
328
+ const toolNames = Object.keys(serverTools).map((t) => `${name}_${t}`);
329
+ for (const [toolName, toolConfig] of Object.entries(serverTools)) tools[`${name}_${toolName}`] = toolConfig;
330
+ const status = {
331
+ name,
332
+ connected: true,
333
+ toolCount: toolNames.length,
334
+ toolNames,
335
+ transport
336
+ };
337
+ serverStatuses.set(name, status);
338
+ return status;
339
+ } else {
340
+ const status = {
341
+ name,
342
+ connected: false,
343
+ toolCount: 0,
344
+ toolNames: [],
345
+ transport,
346
+ error: "Failed to connect"
347
+ };
348
+ serverStatuses.set(name, status);
349
+ return status;
350
+ }
351
+ } catch (error) {
352
+ const errMsg = error instanceof Error ? error.message : String(error);
353
+ const status = {
354
+ name,
355
+ connected: false,
356
+ toolCount: 0,
357
+ toolNames: [],
358
+ transport,
359
+ error: errMsg,
360
+ ...serverNeedsAuth(name, cfg, errMsg) ? { needsAuth: true } : {}
361
+ };
362
+ serverStatuses.set(name, status);
363
+ return status;
364
+ }
365
+ }
366
+ async function disconnect() {
367
+ if (client) {
368
+ try {
369
+ await client.disconnect();
370
+ } catch {}
371
+ client = null;
372
+ }
373
+ }
374
+ /** Tear down all connections and reconnect every enabled server. */
375
+ async function rebuildConnections() {
376
+ await disconnect();
377
+ tools = {};
378
+ serverStatuses = /* @__PURE__ */ new Map();
379
+ stderrLogs = /* @__PURE__ */ new Map();
380
+ initialized = false;
381
+ await connectAndCollectTools();
382
+ initialized = true;
383
+ }
384
+ function disabledStatus(name) {
385
+ const cfg = config.mcpServers?.[name];
386
+ return {
387
+ name,
388
+ connected: false,
389
+ toolCount: 0,
390
+ toolNames: [],
391
+ transport: cfg ? getTransport(cfg) : "stdio",
392
+ disabled: true,
393
+ disabledScope: disabledScopeOf(name)
394
+ };
395
+ }
396
+ function persistProjectDelta(mutate) {
397
+ const fresh = new Set(loadDisabledServers(projectDir));
398
+ mutate(fresh);
399
+ disabledServers = fresh;
400
+ saveDisabledServers(projectDir, Array.from(fresh));
401
+ }
402
+ function persistGlobalDelta(mutate) {
403
+ const onDisk = loadGlobalDisableState();
404
+ const fresh = {
405
+ allDisabled: onDisk.allDisabled,
406
+ disabledServers: new Set(onDisk.disabledServers)
407
+ };
408
+ mutate(fresh);
409
+ globallyDisabledServers = fresh.disabledServers;
410
+ globalDisableState = {
411
+ allDisabled: fresh.allDisabled,
412
+ disabledServers: Array.from(fresh.disabledServers)
413
+ };
414
+ saveGlobalDisableState(globalDisableState);
415
+ }
416
+ return {
417
+ async init() {
418
+ if (initialized) return;
419
+ await connectAndCollectTools();
420
+ initialized = true;
421
+ },
422
+ async initInBackground() {
423
+ await this.init();
424
+ const statuses = Array.from(serverStatuses.values());
425
+ const connected = statuses.filter((s) => s.connected);
426
+ return {
427
+ connected,
428
+ failed: statuses.filter((s) => !s.connected && !s.disabled),
429
+ skipped: [...config.skippedServers ?? []],
430
+ totalTools: connected.reduce((sum, s) => sum + s.toolCount, 0)
431
+ };
432
+ },
433
+ async reload() {
434
+ config = applyExtraServers(loadMcpConfig(projectDir, configDirName));
435
+ disabledServers = new Set(loadDisabledServers(projectDir));
436
+ globalDisableState = loadGlobalDisableState();
437
+ globallyDisabledServers = new Set(globalDisableState.disabledServers);
438
+ await rebuildConnections();
439
+ },
440
+ async setServerDisabled(name, disabled, options) {
441
+ if (!config.mcpServers?.[name]) return {
442
+ name,
443
+ connected: false,
444
+ toolCount: 0,
445
+ toolNames: [],
446
+ transport: "stdio",
447
+ error: `Server "${name}" not found in config`
448
+ };
449
+ const wasEffectivelyDisabled = isDisabled(name);
450
+ if (options?.global) persistGlobalDelta((state) => {
451
+ if (disabled) state.disabledServers.add(name);
452
+ else state.disabledServers.delete(name);
453
+ });
454
+ else persistProjectDelta((names) => {
455
+ if (disabled) names.add(name);
456
+ else names.delete(name);
457
+ });
458
+ if (isDisabled(name) !== wasEffectivelyDisabled) {
459
+ await rebuildConnections();
460
+ return withAuthenticating(serverStatuses.get(name) ?? disabledStatus(name));
461
+ }
462
+ return withAuthenticating(isDisabled(name) ? disabledStatus(name) : serverStatuses.get(name) ?? disabledStatus(name));
463
+ },
464
+ async setAllDisabled(disabled, options) {
465
+ const configuredNames = Object.keys(config.mcpServers ?? {});
466
+ const effectiveBefore = configuredNames.filter((name) => isDisabled(name)).join(",");
467
+ if (options?.global) persistGlobalDelta((state) => {
468
+ state.allDisabled = disabled;
469
+ if (!disabled) state.disabledServers.clear();
470
+ });
471
+ else persistProjectDelta((names) => {
472
+ if (disabled) for (const name of configuredNames) names.add(name);
473
+ else names.clear();
474
+ });
475
+ if (configuredNames.filter((name) => isDisabled(name)).join(",") !== effectiveBefore) await rebuildConnections();
476
+ },
477
+ getDisabledServers() {
478
+ return Object.keys(config.mcpServers ?? {}).filter((name) => isDisabled(name)).sort();
479
+ },
480
+ isAllDisabledGlobally() {
481
+ return globalDisableState.allDisabled;
482
+ },
483
+ async reconnectServer(name) {
484
+ if (isDisabled(name)) return {
485
+ ...disabledStatus(name),
486
+ error: `Server "${name}" is disabled — enable it first`
487
+ };
488
+ const cfg = config.mcpServers?.[name];
489
+ if (!cfg) return {
490
+ name,
491
+ connected: false,
492
+ toolCount: 0,
493
+ toolNames: [],
494
+ transport: "stdio",
495
+ error: `Server "${name}" not found in config`
496
+ };
497
+ if (!client) return {
498
+ name,
499
+ connected: false,
500
+ toolCount: 0,
501
+ toolNames: [],
502
+ transport: getTransport(cfg),
503
+ error: "MCP client not initialized"
504
+ };
505
+ return connectSingleServer(name, cfg, () => client.reconnectServer(name));
506
+ },
507
+ async authenticateServer(name, options) {
508
+ const cfg = config.mcpServers?.[name];
509
+ if (!cfg) return {
510
+ name,
511
+ connected: false,
512
+ toolCount: 0,
513
+ toolNames: [],
514
+ transport: "stdio",
515
+ error: `Server "${name}" not found in config`
516
+ };
517
+ if (isDisabled(name)) return {
518
+ ...disabledStatus(name),
519
+ error: `Server "${name}" is disabled — enable it first`
520
+ };
521
+ if (!client) return {
522
+ name,
523
+ connected: false,
524
+ toolCount: 0,
525
+ toolNames: [],
526
+ transport: getTransport(cfg),
527
+ error: "MCP client not initialized"
528
+ };
529
+ if (getTransport(cfg) !== "http") return {
530
+ name,
531
+ connected: false,
532
+ toolCount: 0,
533
+ toolNames: [],
534
+ transport: "stdio",
535
+ error: `Server "${name}" uses stdio transport, which does not support OAuth`
536
+ };
537
+ const def = serverDefs[name];
538
+ if (def?.url && !def.authProvider) def.authProvider = createOAuthProvider(name, {
539
+ ...cfg,
540
+ oauth: DEFAULT_OAUTH_CONFIG
541
+ });
542
+ if (authenticatingServers.has(name)) {
543
+ const current = serverStatuses.get(name);
544
+ return {
545
+ name,
546
+ connected: current?.connected ?? false,
547
+ connecting: current?.connecting,
548
+ needsAuth: current?.needsAuth,
549
+ toolCount: current?.toolCount ?? 0,
550
+ toolNames: current?.toolNames ?? [],
551
+ transport: current?.transport ?? getTransport(cfg),
552
+ error: `Authentication for "${name}" is already in progress`
553
+ };
554
+ }
555
+ if (options?.onAuthorizationUrl) authUrlHandlers.set(name, options.onAuthorizationUrl);
556
+ authenticatingServers.add(name);
557
+ cancelledAuthServers.delete(name);
558
+ try {
559
+ const result = await connectSingleServer(name, cfg, () => client.authenticate(name, options?.timeoutMs === void 0 ? void 0 : { timeoutMs: options.timeoutMs }));
560
+ const finalStatus = cancelledAuthServers.has(name) && !result.connected ? {
561
+ ...result,
562
+ cancelled: true
563
+ } : result;
564
+ serverStatuses.set(name, finalStatus);
565
+ return finalStatus;
566
+ } finally {
567
+ authUrlHandlers.delete(name);
568
+ authenticatingServers.delete(name);
569
+ cancelledAuthServers.delete(name);
570
+ }
571
+ },
572
+ async cancelServerAuthentication(name) {
573
+ if (!client) return false;
574
+ cancelledAuthServers.add(name);
575
+ const cancelled = await client.cancelAuthentication(name);
576
+ if (!cancelled) cancelledAuthServers.delete(name);
577
+ return cancelled;
578
+ },
579
+ disconnect,
580
+ getTools() {
581
+ return { ...tools };
582
+ },
583
+ hasServers() {
584
+ const hasConfigured = config.mcpServers !== void 0 && Object.keys(config.mcpServers).length > 0;
585
+ const hasSkipped = config.skippedServers !== void 0 && config.skippedServers.length > 0;
586
+ return hasConfigured || hasSkipped;
587
+ },
588
+ getServerStatuses() {
589
+ return Array.from(serverStatuses.values(), withAuthenticating);
590
+ },
591
+ getSkippedServers() {
592
+ return [...config.skippedServers ?? []];
593
+ },
594
+ getConfigPaths() {
595
+ return {
596
+ project: getProjectMcpPath(projectDir, configDirName),
597
+ global: getGlobalMcpPath(configDirName),
598
+ claude: getClaudeSettingsPath(projectDir)
599
+ };
600
+ },
601
+ getConfig() {
602
+ return config;
603
+ },
604
+ getServerLogs(name) {
605
+ return [...stderrLogs.get(name) ?? []];
606
+ }
607
+ };
608
+ }
609
+ //#endregion
610
+ export { createMcpManager };
611
+
612
+ //# sourceMappingURL=manager.js.map