@amplitude/wizard 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/LICENSE +47 -0
  2. package/README.md +119 -0
  3. package/dist/bin.d.ts +2 -0
  4. package/dist/bin.js +763 -0
  5. package/dist/package.json +144 -0
  6. package/dist/src/frameworks/android/android-wizard-agent.d.ts +6 -0
  7. package/dist/src/frameworks/android/android-wizard-agent.js +72 -0
  8. package/dist/src/frameworks/android/utils.d.ts +11 -0
  9. package/dist/src/frameworks/android/utils.js +32 -0
  10. package/dist/src/frameworks/django/django-wizard-agent.d.ts +8 -0
  11. package/dist/src/frameworks/django/django-wizard-agent.js +171 -0
  12. package/dist/src/frameworks/django/utils.d.ts +31 -0
  13. package/dist/src/frameworks/django/utils.js +305 -0
  14. package/dist/src/frameworks/fastapi/fastapi-wizard-agent.d.ts +11 -0
  15. package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +189 -0
  16. package/dist/src/frameworks/fastapi/utils.d.ts +26 -0
  17. package/dist/src/frameworks/fastapi/utils.js +257 -0
  18. package/dist/src/frameworks/flask/flask-wizard-agent.d.ts +8 -0
  19. package/dist/src/frameworks/flask/flask-wizard-agent.js +177 -0
  20. package/dist/src/frameworks/flask/utils.d.ts +28 -0
  21. package/dist/src/frameworks/flask/utils.js +343 -0
  22. package/dist/src/frameworks/flutter/flutter-wizard-agent.d.ts +4 -0
  23. package/dist/src/frameworks/flutter/flutter-wizard-agent.js +57 -0
  24. package/dist/src/frameworks/flutter/utils.d.ts +7 -0
  25. package/dist/src/frameworks/flutter/utils.js +64 -0
  26. package/dist/src/frameworks/generic/generic-wizard-agent.d.ts +2 -0
  27. package/dist/src/frameworks/generic/generic-wizard-agent.js +176 -0
  28. package/dist/src/frameworks/go/go-wizard-agent.d.ts +4 -0
  29. package/dist/src/frameworks/go/go-wizard-agent.js +57 -0
  30. package/dist/src/frameworks/go/utils.d.ts +5 -0
  31. package/dist/src/frameworks/go/utils.js +44 -0
  32. package/dist/src/frameworks/java/java-wizard-agent.d.ts +7 -0
  33. package/dist/src/frameworks/java/java-wizard-agent.js +73 -0
  34. package/dist/src/frameworks/java/utils.d.ts +15 -0
  35. package/dist/src/frameworks/java/utils.js +64 -0
  36. package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.d.ts +4 -0
  37. package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +57 -0
  38. package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.d.ts +3 -0
  39. package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +151 -0
  40. package/dist/src/frameworks/javascript-web/utils.d.ts +28 -0
  41. package/dist/src/frameworks/javascript-web/utils.js +153 -0
  42. package/dist/src/frameworks/nextjs/nextjs-wizard-agent.d.ts +7 -0
  43. package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +98 -0
  44. package/dist/src/frameworks/nextjs/utils.d.ts +12 -0
  45. package/dist/src/frameworks/nextjs/utils.js +51 -0
  46. package/dist/src/frameworks/python/python-wizard-agent.d.ts +7 -0
  47. package/dist/src/frameworks/python/python-wizard-agent.js +193 -0
  48. package/dist/src/frameworks/python/utils.d.ts +28 -0
  49. package/dist/src/frameworks/python/utils.js +146 -0
  50. package/dist/src/frameworks/react-native/react-native-wizard-agent.d.ts +6 -0
  51. package/dist/src/frameworks/react-native/react-native-wizard-agent.js +84 -0
  52. package/dist/src/frameworks/react-native/utils.d.ts +21 -0
  53. package/dist/src/frameworks/react-native/utils.js +82 -0
  54. package/dist/src/frameworks/react-router/react-router-wizard-agent.d.ts +7 -0
  55. package/dist/src/frameworks/react-router/react-router-wizard-agent.js +98 -0
  56. package/dist/src/frameworks/react-router/utils.d.ts +13 -0
  57. package/dist/src/frameworks/react-router/utils.js +160 -0
  58. package/dist/src/frameworks/swift/swift-wizard-agent.d.ts +7 -0
  59. package/dist/src/frameworks/swift/swift-wizard-agent.js +72 -0
  60. package/dist/src/frameworks/swift/utils.d.ts +12 -0
  61. package/dist/src/frameworks/swift/utils.js +82 -0
  62. package/dist/src/frameworks/unity/unity-wizard-agent.d.ts +6 -0
  63. package/dist/src/frameworks/unity/unity-wizard-agent.js +79 -0
  64. package/dist/src/frameworks/unity/utils.d.ts +12 -0
  65. package/dist/src/frameworks/unity/utils.js +66 -0
  66. package/dist/src/frameworks/unreal/unreal-wizard-agent.d.ts +6 -0
  67. package/dist/src/frameworks/unreal/unreal-wizard-agent.js +77 -0
  68. package/dist/src/frameworks/unreal/utils.d.ts +10 -0
  69. package/dist/src/frameworks/unreal/utils.js +29 -0
  70. package/dist/src/frameworks/vue/vue-wizard-agent.d.ts +4 -0
  71. package/dist/src/frameworks/vue/vue-wizard-agent.js +64 -0
  72. package/dist/src/lib/agent-hooks.d.ts +26 -0
  73. package/dist/src/lib/agent-hooks.js +118 -0
  74. package/dist/src/lib/agent-interface.d.ts +175 -0
  75. package/dist/src/lib/agent-interface.js +1217 -0
  76. package/dist/src/lib/agent-runner.d.ts +9 -0
  77. package/dist/src/lib/agent-runner.js +415 -0
  78. package/dist/src/lib/ampli-config.d.ts +105 -0
  79. package/dist/src/lib/ampli-config.js +178 -0
  80. package/dist/src/lib/api.d.ts +107 -0
  81. package/dist/src/lib/api.js +442 -0
  82. package/dist/src/lib/commandments.d.ts +1 -0
  83. package/dist/src/lib/commandments.js +24 -0
  84. package/dist/src/lib/console-query.d.ts +27 -0
  85. package/dist/src/lib/console-query.js +121 -0
  86. package/dist/src/lib/constants.d.ts +124 -0
  87. package/dist/src/lib/constants.js +170 -0
  88. package/dist/src/lib/detect-amplitude.d.ts +31 -0
  89. package/dist/src/lib/detect-amplitude.js +407 -0
  90. package/dist/src/lib/framework-config.d.ts +188 -0
  91. package/dist/src/lib/framework-config.js +21 -0
  92. package/dist/src/lib/health-checks/endpoints.d.ts +3 -0
  93. package/dist/src/lib/health-checks/endpoints.js +45 -0
  94. package/dist/src/lib/health-checks/index.d.ts +4 -0
  95. package/dist/src/lib/health-checks/index.js +22 -0
  96. package/dist/src/lib/health-checks/readiness.d.ts +24 -0
  97. package/dist/src/lib/health-checks/readiness.js +118 -0
  98. package/dist/src/lib/health-checks/statuspage.d.ts +9 -0
  99. package/dist/src/lib/health-checks/statuspage.js +104 -0
  100. package/dist/src/lib/health-checks/types.d.ts +31 -0
  101. package/dist/src/lib/health-checks/types.js +9 -0
  102. package/dist/src/lib/helper-functions.d.ts +1 -0
  103. package/dist/src/lib/helper-functions.js +5 -0
  104. package/dist/src/lib/middleware/benchmark.d.ts +54 -0
  105. package/dist/src/lib/middleware/benchmark.js +48 -0
  106. package/dist/src/lib/middleware/benchmarks/cache-tracker.d.ts +44 -0
  107. package/dist/src/lib/middleware/benchmarks/cache-tracker.js +80 -0
  108. package/dist/src/lib/middleware/benchmarks/compaction-tracker.d.ts +29 -0
  109. package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +59 -0
  110. package/dist/src/lib/middleware/benchmarks/context-size-tracker.d.ts +26 -0
  111. package/dist/src/lib/middleware/benchmarks/context-size-tracker.js +55 -0
  112. package/dist/src/lib/middleware/benchmarks/cost-tracker.d.ts +16 -0
  113. package/dist/src/lib/middleware/benchmarks/cost-tracker.js +75 -0
  114. package/dist/src/lib/middleware/benchmarks/duration-tracker.d.ts +20 -0
  115. package/dist/src/lib/middleware/benchmarks/duration-tracker.js +39 -0
  116. package/dist/src/lib/middleware/benchmarks/index.d.ts +9 -0
  117. package/dist/src/lib/middleware/benchmarks/index.js +67 -0
  118. package/dist/src/lib/middleware/benchmarks/json-writer.d.ts +15 -0
  119. package/dist/src/lib/middleware/benchmarks/json-writer.js +144 -0
  120. package/dist/src/lib/middleware/benchmarks/summary.d.ts +9 -0
  121. package/dist/src/lib/middleware/benchmarks/summary.js +105 -0
  122. package/dist/src/lib/middleware/benchmarks/token-tracker.d.ts +40 -0
  123. package/dist/src/lib/middleware/benchmarks/token-tracker.js +76 -0
  124. package/dist/src/lib/middleware/benchmarks/turn-counter.d.ts +34 -0
  125. package/dist/src/lib/middleware/benchmarks/turn-counter.js +58 -0
  126. package/dist/src/lib/middleware/config.d.ts +24 -0
  127. package/dist/src/lib/middleware/config.js +96 -0
  128. package/dist/src/lib/middleware/index.d.ts +11 -0
  129. package/dist/src/lib/middleware/index.js +17 -0
  130. package/dist/src/lib/middleware/phase-detector.d.ts +8 -0
  131. package/dist/src/lib/middleware/phase-detector.js +63 -0
  132. package/dist/src/lib/middleware/pipeline.d.ts +29 -0
  133. package/dist/src/lib/middleware/pipeline.js +81 -0
  134. package/dist/src/lib/middleware/schemas.d.ts +27 -0
  135. package/dist/src/lib/middleware/schemas.js +84 -0
  136. package/dist/src/lib/middleware/types.d.ts +94 -0
  137. package/dist/src/lib/middleware/types.js +8 -0
  138. package/dist/src/lib/package-manager-detection.d.ts +42 -0
  139. package/dist/src/lib/package-manager-detection.js +292 -0
  140. package/dist/src/lib/registry.d.ts +3 -0
  141. package/dist/src/lib/registry.js +42 -0
  142. package/dist/src/lib/safe-tools.d.ts +2 -0
  143. package/dist/src/lib/safe-tools.js +214 -0
  144. package/dist/src/lib/wizard-session.d.ts +220 -0
  145. package/dist/src/lib/wizard-session.js +127 -0
  146. package/dist/src/lib/wizard-tools.d.ts +82 -0
  147. package/dist/src/lib/wizard-tools.js +499 -0
  148. package/dist/src/run.d.ts +19 -0
  149. package/dist/src/run.js +151 -0
  150. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +30 -0
  151. package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +141 -0
  152. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +29 -0
  153. package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +180 -0
  154. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +20 -0
  155. package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +63 -0
  156. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +28 -0
  157. package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +77 -0
  158. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +24 -0
  159. package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +60 -0
  160. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +27 -0
  161. package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +101 -0
  162. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +26 -0
  163. package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +102 -0
  164. package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +44 -0
  165. package/dist/src/steps/add-mcp-server-to-clients/defaults.js +123 -0
  166. package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +19 -0
  167. package/dist/src/steps/add-mcp-server-to-clients/index.js +110 -0
  168. package/dist/src/steps/add-or-update-environment-variables.d.ts +10 -0
  169. package/dist/src/steps/add-or-update-environment-variables.js +188 -0
  170. package/dist/src/steps/index.d.ts +4 -0
  171. package/dist/src/steps/index.js +20 -0
  172. package/dist/src/steps/run-prettier.d.ts +5 -0
  173. package/dist/src/steps/run-prettier.js +90 -0
  174. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +11 -0
  175. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +11 -0
  176. package/dist/src/steps/upload-environment-variables/index.d.ts +6 -0
  177. package/dist/src/steps/upload-environment-variables/index.js +37 -0
  178. package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +15 -0
  179. package/dist/src/steps/upload-environment-variables/providers/vercel.js +145 -0
  180. package/dist/src/telemetry.d.ts +2 -0
  181. package/dist/src/telemetry.js +12 -0
  182. package/dist/src/ui/index.d.ts +8 -0
  183. package/dist/src/ui/index.js +16 -0
  184. package/dist/src/ui/logging-ui.d.ts +56 -0
  185. package/dist/src/ui/logging-ui.js +157 -0
  186. package/dist/src/ui/tui/App.d.ts +6 -0
  187. package/dist/src/ui/tui/App.js +34 -0
  188. package/dist/src/ui/tui/components/AmplitudeLogo.d.ts +5 -0
  189. package/dist/src/ui/tui/components/AmplitudeLogo.js +81 -0
  190. package/dist/src/ui/tui/components/AmplitudeTextLogo.d.ts +3 -0
  191. package/dist/src/ui/tui/components/AmplitudeTextLogo.js +31 -0
  192. package/dist/src/ui/tui/components/ConsoleView.d.ts +23 -0
  193. package/dist/src/ui/tui/components/ConsoleView.js +220 -0
  194. package/dist/src/ui/tui/components/TitleBar.d.ts +6 -0
  195. package/dist/src/ui/tui/components/TitleBar.js +16 -0
  196. package/dist/src/ui/tui/console-commands.d.ts +16 -0
  197. package/dist/src/ui/tui/console-commands.js +31 -0
  198. package/dist/src/ui/tui/context/CommandModeContext.d.ts +2 -0
  199. package/dist/src/ui/tui/context/CommandModeContext.js +3 -0
  200. package/dist/src/ui/tui/flows.d.ts +48 -0
  201. package/dist/src/ui/tui/flows.js +154 -0
  202. package/dist/src/ui/tui/hooks/useScreenInput.d.ts +13 -0
  203. package/dist/src/ui/tui/hooks/useScreenInput.js +18 -0
  204. package/dist/src/ui/tui/hooks/useStdoutDimensions.d.ts +9 -0
  205. package/dist/src/ui/tui/hooks/useStdoutDimensions.js +29 -0
  206. package/dist/src/ui/tui/ink-ui.d.ts +62 -0
  207. package/dist/src/ui/tui/ink-ui.js +142 -0
  208. package/dist/src/ui/tui/primitives/CardLayout.d.ts +12 -0
  209. package/dist/src/ui/tui/primitives/CardLayout.js +9 -0
  210. package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +13 -0
  211. package/dist/src/ui/tui/primitives/ConfirmationInput.js +35 -0
  212. package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +21 -0
  213. package/dist/src/ui/tui/primitives/DissolveTransition.js +143 -0
  214. package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +9 -0
  215. package/dist/src/ui/tui/primitives/EventPlanViewer.js +9 -0
  216. package/dist/src/ui/tui/primitives/KagiSmallWebViewer.d.ts +7 -0
  217. package/dist/src/ui/tui/primitives/KagiSmallWebViewer.js +101 -0
  218. package/dist/src/ui/tui/primitives/LoadingBox.d.ts +8 -0
  219. package/dist/src/ui/tui/primitives/LoadingBox.js +9 -0
  220. package/dist/src/ui/tui/primitives/LogViewer.d.ts +11 -0
  221. package/dist/src/ui/tui/primitives/LogViewer.js +55 -0
  222. package/dist/src/ui/tui/primitives/PickerMenu.d.ts +20 -0
  223. package/dist/src/ui/tui/primitives/PickerMenu.js +212 -0
  224. package/dist/src/ui/tui/primitives/ProgressList.d.ts +15 -0
  225. package/dist/src/ui/tui/primitives/ProgressList.js +29 -0
  226. package/dist/src/ui/tui/primitives/PromptLabel.d.ts +11 -0
  227. package/dist/src/ui/tui/primitives/PromptLabel.js +12 -0
  228. package/dist/src/ui/tui/primitives/ReportViewer.d.ts +12 -0
  229. package/dist/src/ui/tui/primitives/ReportViewer.js +99 -0
  230. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +26 -0
  231. package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +29 -0
  232. package/dist/src/ui/tui/primitives/SlashCommandInput.d.ts +21 -0
  233. package/dist/src/ui/tui/primitives/SlashCommandInput.js +85 -0
  234. package/dist/src/ui/tui/primitives/SnakeGame.d.ts +1 -0
  235. package/dist/src/ui/tui/primitives/SnakeGame.js +1 -0
  236. package/dist/src/ui/tui/primitives/SplitView.d.ts +11 -0
  237. package/dist/src/ui/tui/primitives/SplitView.js +8 -0
  238. package/dist/src/ui/tui/primitives/TabContainer.d.ts +18 -0
  239. package/dist/src/ui/tui/primitives/TabContainer.js +30 -0
  240. package/dist/src/ui/tui/primitives/index.d.ts +23 -0
  241. package/dist/src/ui/tui/primitives/index.js +19 -0
  242. package/dist/src/ui/tui/router.d.ts +61 -0
  243. package/dist/src/ui/tui/router.js +104 -0
  244. package/dist/src/ui/tui/screen-registry.d.ts +19 -0
  245. package/dist/src/ui/tui/screen-registry.js +56 -0
  246. package/dist/src/ui/tui/screens/ActivationOptionsScreen.d.ts +12 -0
  247. package/dist/src/ui/tui/screens/ActivationOptionsScreen.js +57 -0
  248. package/dist/src/ui/tui/screens/AuthScreen.d.ts +18 -0
  249. package/dist/src/ui/tui/screens/AuthScreen.js +107 -0
  250. package/dist/src/ui/tui/screens/ChecklistScreen.d.ts +22 -0
  251. package/dist/src/ui/tui/screens/ChecklistScreen.js +122 -0
  252. package/dist/src/ui/tui/screens/DataIngestionCheckScreen.d.ts +24 -0
  253. package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +113 -0
  254. package/dist/src/ui/tui/screens/DataSetupScreen.d.ts +17 -0
  255. package/dist/src/ui/tui/screens/DataSetupScreen.js +73 -0
  256. package/dist/src/ui/tui/screens/IntroScreen.d.ts +16 -0
  257. package/dist/src/ui/tui/screens/IntroScreen.js +86 -0
  258. package/dist/src/ui/tui/screens/LoginScreen.d.ts +15 -0
  259. package/dist/src/ui/tui/screens/LoginScreen.js +65 -0
  260. package/dist/src/ui/tui/screens/LogoutScreen.d.ts +12 -0
  261. package/dist/src/ui/tui/screens/LogoutScreen.js +28 -0
  262. package/dist/src/ui/tui/screens/McpScreen.d.ts +26 -0
  263. package/dist/src/ui/tui/screens/McpScreen.js +148 -0
  264. package/dist/src/ui/tui/screens/OutageScreen.d.ts +10 -0
  265. package/dist/src/ui/tui/screens/OutageScreen.js +17 -0
  266. package/dist/src/ui/tui/screens/OutroScreen.d.ts +11 -0
  267. package/dist/src/ui/tui/screens/OutroScreen.js +69 -0
  268. package/dist/src/ui/tui/screens/RegionSelectScreen.d.ts +17 -0
  269. package/dist/src/ui/tui/screens/RegionSelectScreen.js +40 -0
  270. package/dist/src/ui/tui/screens/RunScreen.d.ts +16 -0
  271. package/dist/src/ui/tui/screens/RunScreen.js +212 -0
  272. package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +10 -0
  273. package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +23 -0
  274. package/dist/src/ui/tui/screens/SetupScreen.d.ts +13 -0
  275. package/dist/src/ui/tui/screens/SetupScreen.js +73 -0
  276. package/dist/src/ui/tui/screens/SlackScreen.d.ts +25 -0
  277. package/dist/src/ui/tui/screens/SlackScreen.js +97 -0
  278. package/dist/src/ui/tui/services/mcp-installer.d.ts +25 -0
  279. package/dist/src/ui/tui/services/mcp-installer.js +82 -0
  280. package/dist/src/ui/tui/start-tui.d.ts +10 -0
  281. package/dist/src/ui/tui/start-tui.js +50 -0
  282. package/dist/src/ui/tui/store.d.ts +231 -0
  283. package/dist/src/ui/tui/store.js +568 -0
  284. package/dist/src/ui/tui/styles.d.ts +31 -0
  285. package/dist/src/ui/tui/styles.js +33 -0
  286. package/dist/src/ui/wizard-ui.d.ts +110 -0
  287. package/dist/src/ui/wizard-ui.js +18 -0
  288. package/dist/src/utils/ampli-settings.d.ts +37 -0
  289. package/dist/src/utils/ampli-settings.js +182 -0
  290. package/dist/src/utils/analytics.d.ts +35 -0
  291. package/dist/src/utils/analytics.js +133 -0
  292. package/dist/src/utils/anthropic-status.d.ts +17 -0
  293. package/dist/src/utils/anthropic-status.js +51 -0
  294. package/dist/src/utils/api-key-store.d.ts +35 -0
  295. package/dist/src/utils/api-key-store.js +176 -0
  296. package/dist/src/utils/bash.d.ts +2 -0
  297. package/dist/src/utils/bash.js +53 -0
  298. package/dist/src/utils/custom-headers.d.ts +9 -0
  299. package/dist/src/utils/custom-headers.js +23 -0
  300. package/dist/src/utils/debug.d.ts +23 -0
  301. package/dist/src/utils/debug.js +86 -0
  302. package/dist/src/utils/environment.d.ts +4 -0
  303. package/dist/src/utils/environment.js +76 -0
  304. package/dist/src/utils/file-utils.d.ts +2 -0
  305. package/dist/src/utils/file-utils.js +16 -0
  306. package/dist/src/utils/get-api-key.d.ts +17 -0
  307. package/dist/src/utils/get-api-key.js +50 -0
  308. package/dist/src/utils/logging.d.ts +9 -0
  309. package/dist/src/utils/logging.js +48 -0
  310. package/dist/src/utils/oauth.d.ts +53 -0
  311. package/dist/src/utils/oauth.js +354 -0
  312. package/dist/src/utils/package-json.d.ts +25 -0
  313. package/dist/src/utils/package-json.js +26 -0
  314. package/dist/src/utils/package-manager.d.ts +21 -0
  315. package/dist/src/utils/package-manager.js +208 -0
  316. package/dist/src/utils/semver.d.ts +21 -0
  317. package/dist/src/utils/semver.js +61 -0
  318. package/dist/src/utils/setup-utils.d.ts +82 -0
  319. package/dist/src/utils/setup-utils.js +467 -0
  320. package/dist/src/utils/shell-completions.d.ts +10 -0
  321. package/dist/src/utils/shell-completions.js +199 -0
  322. package/dist/src/utils/string.d.ts +1 -0
  323. package/dist/src/utils/string.js +8 -0
  324. package/dist/src/utils/types.d.ts +72 -0
  325. package/dist/src/utils/types.js +2 -0
  326. package/dist/src/utils/urls.d.ts +14 -0
  327. package/dist/src/utils/urls.js +69 -0
  328. package/dist/src/utils/vendor/is-unicorn-supported.d.ts +1 -0
  329. package/dist/src/utils/vendor/is-unicorn-supported.js +23 -0
  330. package/dist/src/utils/wizard-abort.d.ts +13 -0
  331. package/dist/src/utils/wizard-abort.js +56 -0
  332. package/man/amplitude-wizard.1 +170 -0
  333. package/package.json +144 -0
@@ -0,0 +1,27 @@
1
+ import z from 'zod';
2
+ import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';
3
+ export declare const VisualStudioCodeMCPConfig: z.ZodObject<{
4
+ servers: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
5
+ command: z.ZodOptional<z.ZodString>;
6
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
7
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
8
+ }, z.core.$strip>, z.ZodObject<{
9
+ type: z.ZodEnum<{
10
+ http: "http";
11
+ sse: "sse";
12
+ }>;
13
+ url: z.ZodString;
14
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
15
+ }, z.core.$strip>]>>;
16
+ }, z.core.$loose>;
17
+ export type VisualStudioCodeMCPConfig = z.infer<typeof VisualStudioCodeMCPConfig>;
18
+ export declare class VisualStudioCodeClient extends DefaultMCPClient {
19
+ name: string;
20
+ getServerPropertyName(): string;
21
+ isClientSupported(): Promise<boolean>;
22
+ getConfigPath(): Promise<string>;
23
+ getServerConfig(apiKey: string | undefined, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean): MCPServerConfig;
24
+ addServer(apiKey?: string, selectedFeatures?: string[], local?: boolean): Promise<{
25
+ success: boolean;
26
+ }>;
27
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.VisualStudioCodeClient = exports.VisualStudioCodeMCPConfig = void 0;
40
+ const zod_1 = __importDefault(require("zod"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ const MCPClient_1 = require("../MCPClient");
44
+ const defaults_1 = require("../defaults");
45
+ exports.VisualStudioCodeMCPConfig = zod_1.default
46
+ .object({
47
+ servers: zod_1.default.record(zod_1.default.string(), zod_1.default.union([
48
+ zod_1.default.object({
49
+ command: zod_1.default.string().optional(),
50
+ args: zod_1.default.array(zod_1.default.string()).optional(),
51
+ env: zod_1.default.record(zod_1.default.string(), zod_1.default.string()).optional(),
52
+ }),
53
+ zod_1.default.object({
54
+ type: zod_1.default.enum(['http', 'sse']),
55
+ url: zod_1.default.string(),
56
+ headers: zod_1.default.record(zod_1.default.string(), zod_1.default.string()).optional(),
57
+ }),
58
+ ])),
59
+ })
60
+ .passthrough();
61
+ class VisualStudioCodeClient extends MCPClient_1.DefaultMCPClient {
62
+ name = 'Visual Studio Code';
63
+ getServerPropertyName() {
64
+ return 'servers';
65
+ }
66
+ async isClientSupported() {
67
+ return Promise.resolve(process.platform === 'darwin' ||
68
+ process.platform === 'win32' ||
69
+ process.platform === 'linux');
70
+ }
71
+ async getConfigPath() {
72
+ const homeDir = os.homedir();
73
+ const isWindows = process.platform === 'win32';
74
+ const isMac = process.platform === 'darwin';
75
+ const isLinux = process.platform === 'linux';
76
+ if (isMac) {
77
+ return Promise.resolve(path.join(homeDir, 'Library', 'Application Support', 'Code', 'User', 'mcp.json'));
78
+ }
79
+ if (isWindows) {
80
+ return Promise.resolve(path.join(process.env.APPDATA || '', 'Code', 'User', 'mcp.json'));
81
+ }
82
+ if (isLinux) {
83
+ return Promise.resolve(path.join(homeDir, '.config', 'Code', 'User', 'mcp.json'));
84
+ }
85
+ throw new Error(`Unsupported platform: ${process.platform}`);
86
+ }
87
+ getServerConfig(apiKey, type, selectedFeatures, local) {
88
+ const config = {
89
+ type: 'http',
90
+ url: (0, defaults_1.buildMCPUrl)(type, selectedFeatures, local),
91
+ };
92
+ if (apiKey) {
93
+ config.headers = { Authorization: `Bearer ${apiKey}` };
94
+ }
95
+ return config;
96
+ }
97
+ async addServer(apiKey, selectedFeatures, local) {
98
+ return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local);
99
+ }
100
+ }
101
+ exports.VisualStudioCodeClient = VisualStudioCodeClient;
@@ -0,0 +1,26 @@
1
+ import z from 'zod';
2
+ import { DefaultMCPClient, MCPServerConfig } from '../MCPClient';
3
+ export declare const ZedMCPConfig: z.ZodObject<{
4
+ context_servers: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
5
+ enabled: z.ZodOptional<z.ZodBoolean>;
6
+ source: z.ZodOptional<z.ZodString>;
7
+ command: z.ZodOptional<z.ZodString>;
8
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
10
+ }, z.core.$strip>, z.ZodObject<{
11
+ enabled: z.ZodOptional<z.ZodBoolean>;
12
+ url: z.ZodString;
13
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
14
+ }, z.core.$strip>]>>;
15
+ }, z.core.$loose>;
16
+ export type ZedMCPConfig = z.infer<typeof ZedMCPConfig>;
17
+ export declare class ZedClient extends DefaultMCPClient {
18
+ name: string;
19
+ getServerPropertyName(): string;
20
+ isClientSupported(): Promise<boolean>;
21
+ getConfigPath(): Promise<string>;
22
+ getServerConfig(apiKey: string | undefined, type: 'sse' | 'streamable-http', selectedFeatures?: string[], local?: boolean): MCPServerConfig;
23
+ addServer(apiKey?: string, selectedFeatures?: string[], local?: boolean): Promise<{
24
+ success: boolean;
25
+ }>;
26
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ZedClient = exports.ZedMCPConfig = void 0;
40
+ const zod_1 = __importDefault(require("zod"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ const MCPClient_1 = require("../MCPClient");
44
+ const defaults_1 = require("../defaults");
45
+ exports.ZedMCPConfig = zod_1.default
46
+ .object({
47
+ context_servers: zod_1.default.record(zod_1.default.string(), zod_1.default.union([
48
+ zod_1.default.object({
49
+ enabled: zod_1.default.boolean().optional(),
50
+ source: zod_1.default.string().optional(),
51
+ command: zod_1.default.string().optional(),
52
+ args: zod_1.default.array(zod_1.default.string()).optional(),
53
+ env: zod_1.default.record(zod_1.default.string(), zod_1.default.string()).optional(),
54
+ }),
55
+ zod_1.default.object({
56
+ enabled: zod_1.default.boolean().optional(),
57
+ url: zod_1.default.string(),
58
+ headers: zod_1.default.record(zod_1.default.string(), zod_1.default.string()).optional(),
59
+ }),
60
+ ])),
61
+ })
62
+ .passthrough();
63
+ class ZedClient extends MCPClient_1.DefaultMCPClient {
64
+ name = 'Zed';
65
+ getServerPropertyName() {
66
+ return 'context_servers';
67
+ }
68
+ async isClientSupported() {
69
+ return Promise.resolve(process.platform === 'darwin' || process.platform === 'linux');
70
+ }
71
+ async getConfigPath() {
72
+ const homeDir = os.homedir();
73
+ const isMac = process.platform === 'darwin';
74
+ const isLinux = process.platform === 'linux';
75
+ if (isMac) {
76
+ return Promise.resolve(path.join(homeDir, '.config', 'zed', 'settings.json'));
77
+ }
78
+ if (isLinux) {
79
+ // https://zed.dev/docs/configuring-zed#settings-files
80
+ const xdgConfigHome = process.env.XDG_CONFIG_HOME;
81
+ if (xdgConfigHome) {
82
+ return Promise.resolve(path.join(xdgConfigHome, 'zed', 'settings.json'));
83
+ }
84
+ return Promise.resolve(path.join(homeDir, '.config', 'zed', 'settings.json'));
85
+ }
86
+ throw new Error(`Unsupported platform: ${process.platform}`);
87
+ }
88
+ getServerConfig(apiKey, type, selectedFeatures, local) {
89
+ const config = {
90
+ enabled: true,
91
+ url: (0, defaults_1.buildMCPUrl)(type, selectedFeatures, local),
92
+ };
93
+ if (apiKey) {
94
+ config.headers = { Authorization: `Bearer ${apiKey}` };
95
+ }
96
+ return config;
97
+ }
98
+ async addServer(apiKey, selectedFeatures, local) {
99
+ return this._addServerType(apiKey, 'streamable-http', selectedFeatures, local);
100
+ }
101
+ }
102
+ exports.ZedClient = ZedClient;
@@ -0,0 +1,44 @@
1
+ import z from 'zod';
2
+ export declare const DefaultMCPClientConfig: z.ZodObject<{
3
+ mcpServers: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
4
+ command: z.ZodOptional<z.ZodString>;
5
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ url: z.ZodString;
9
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
10
+ }, z.core.$strip>]>>;
11
+ }, z.core.$loose>;
12
+ export declare const AVAILABLE_FEATURES: {
13
+ 'Data & Analytics': {
14
+ value: string;
15
+ label: string;
16
+ hint: string;
17
+ }[];
18
+ 'Development Tools': {
19
+ value: string;
20
+ label: string;
21
+ hint: string;
22
+ }[];
23
+ 'Platform & Management': {
24
+ value: string;
25
+ label: string;
26
+ hint: string;
27
+ }[];
28
+ };
29
+ export declare const ALL_FEATURE_VALUES: string[];
30
+ type MCPServerType = 'sse' | 'streamable-http';
31
+ export declare const buildMCPUrl: (type: MCPServerType, selectedFeatures?: string[], local?: boolean) => string;
32
+ export declare const getNativeHTTPServerConfig: (apiKey: string | undefined, type: MCPServerType, selectedFeatures?: string[], local?: boolean) => Record<string, unknown>;
33
+ export declare const getDefaultServerConfig: (apiKey: string | undefined, type: MCPServerType, selectedFeatures?: string[], local?: boolean) => {
34
+ command: string;
35
+ args: string[];
36
+ env?: undefined;
37
+ } | {
38
+ command: string;
39
+ args: string[];
40
+ env: {
41
+ AMPLITUDE_AUTH_HEADER: string;
42
+ };
43
+ };
44
+ export {};
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getDefaultServerConfig = exports.getNativeHTTPServerConfig = exports.buildMCPUrl = exports.ALL_FEATURE_VALUES = exports.AVAILABLE_FEATURES = exports.DefaultMCPClientConfig = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ exports.DefaultMCPClientConfig = zod_1.default
9
+ .object({
10
+ mcpServers: zod_1.default.record(zod_1.default.string(), zod_1.default.union([
11
+ zod_1.default.object({
12
+ command: zod_1.default.string().optional(),
13
+ args: zod_1.default.array(zod_1.default.string()).optional(),
14
+ env: zod_1.default.record(zod_1.default.string(), zod_1.default.string()).optional(),
15
+ }),
16
+ zod_1.default.object({
17
+ url: zod_1.default.string(),
18
+ headers: zod_1.default.record(zod_1.default.string(), zod_1.default.string()).optional(),
19
+ }),
20
+ ])),
21
+ })
22
+ .passthrough();
23
+ exports.AVAILABLE_FEATURES = {
24
+ 'Data & Analytics': [
25
+ {
26
+ value: 'dashboards',
27
+ label: 'Dashboards',
28
+ hint: 'Dashboard creation and management',
29
+ },
30
+ {
31
+ value: 'insights',
32
+ label: 'Insights',
33
+ hint: 'Analytics insights and SQL queries',
34
+ },
35
+ {
36
+ value: 'experiments',
37
+ label: 'Experiments',
38
+ hint: 'A/B testing experiments',
39
+ },
40
+ {
41
+ value: 'llm-analytics',
42
+ label: 'LLM Analytics',
43
+ hint: 'LLM usage and cost tracking',
44
+ },
45
+ ],
46
+ 'Development Tools': [
47
+ {
48
+ value: 'error-tracking',
49
+ label: 'Error Tracking',
50
+ hint: 'Error monitoring and debugging',
51
+ },
52
+ { value: 'flags', label: 'Feature Flags', hint: 'Feature flag management' },
53
+ ],
54
+ 'Platform & Management': [
55
+ {
56
+ value: 'workspace',
57
+ label: 'Workspace',
58
+ hint: 'Organization and project management',
59
+ },
60
+ {
61
+ value: 'docs',
62
+ label: 'Documentation',
63
+ hint: 'Amplitude documentation search',
64
+ },
65
+ ],
66
+ };
67
+ exports.ALL_FEATURE_VALUES = Object.values(exports.AVAILABLE_FEATURES)
68
+ .flat()
69
+ .map((feature) => feature.value);
70
+ const buildMCPUrl = (type, selectedFeatures, local) => {
71
+ const host = local ? 'http://localhost:8787' : 'https://mcp.amplitude.com';
72
+ const baseUrl = `${host}/${type === 'sse' ? 'sse' : 'mcp'}`;
73
+ const isAllFeaturesSelected = selectedFeatures &&
74
+ selectedFeatures.length === exports.ALL_FEATURE_VALUES.length &&
75
+ exports.ALL_FEATURE_VALUES.every((feature) => selectedFeatures.includes(feature));
76
+ const params = [];
77
+ // Add features param if not all features selected
78
+ if (selectedFeatures &&
79
+ selectedFeatures.length > 0 &&
80
+ !isAllFeaturesSelected) {
81
+ params.push(`features=${selectedFeatures.join(',')}`);
82
+ }
83
+ return params.length > 0 ? `${baseUrl}?${params.join('&')}` : baseUrl;
84
+ };
85
+ exports.buildMCPUrl = buildMCPUrl;
86
+ const getNativeHTTPServerConfig = (apiKey, type, selectedFeatures, local) => {
87
+ const config = {
88
+ url: (0, exports.buildMCPUrl)(type, selectedFeatures, local),
89
+ };
90
+ // Only add auth header if API key is provided (not OAuth mode)
91
+ if (apiKey) {
92
+ config.headers = {
93
+ Authorization: `Bearer ${apiKey}`,
94
+ };
95
+ }
96
+ return config;
97
+ };
98
+ exports.getNativeHTTPServerConfig = getNativeHTTPServerConfig;
99
+ const getDefaultServerConfig = (apiKey, type, selectedFeatures, local) => {
100
+ const urlWithFeatures = (0, exports.buildMCPUrl)(type, selectedFeatures, local);
101
+ // OAuth mode: no auth header, let MCP handle OAuth
102
+ if (!apiKey) {
103
+ return {
104
+ command: 'npx',
105
+ args: ['-y', 'mcp-remote@latest', urlWithFeatures],
106
+ };
107
+ }
108
+ // API key mode: include auth header
109
+ return {
110
+ command: 'npx',
111
+ args: [
112
+ '-y',
113
+ 'mcp-remote@latest',
114
+ urlWithFeatures,
115
+ '--header',
116
+ `Authorization:\${AMPLITUDE_AUTH_HEADER}`,
117
+ ],
118
+ env: {
119
+ AMPLITUDE_AUTH_HEADER: `Bearer ${apiKey}`,
120
+ },
121
+ };
122
+ };
123
+ exports.getDefaultServerConfig = getDefaultServerConfig;
@@ -0,0 +1,19 @@
1
+ import type { Integration } from '../../lib/constants';
2
+ import { MCPClient } from './MCPClient';
3
+ export declare const getSupportedClients: () => Promise<MCPClient[]>;
4
+ /**
5
+ * Add MCP server to clients. No prompts — pure orchestration.
6
+ * Prompts are handled by McpScreen (TUI) or auto-accepted (CI).
7
+ */
8
+ export declare const addMCPServerToClientsStep: ({ integration, local, ci, }: {
9
+ integration?: Integration;
10
+ local?: boolean;
11
+ ci?: boolean;
12
+ }) => Promise<string[]>;
13
+ export declare const removeMCPServerFromClientsStep: ({ integration, local, }: {
14
+ integration?: Integration;
15
+ local?: boolean;
16
+ }) => Promise<string[]>;
17
+ export declare const getInstalledClients: (local?: boolean) => Promise<MCPClient[]>;
18
+ export declare const addMCPServer: (clients: MCPClient[], personalApiKey?: string, selectedFeatures?: string[], local?: boolean) => Promise<void>;
19
+ export declare const removeMCPServer: (clients: MCPClient[], local?: boolean) => Promise<void>;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeMCPServer = exports.addMCPServer = exports.getInstalledClients = exports.removeMCPServerFromClientsStep = exports.addMCPServerToClientsStep = exports.getSupportedClients = void 0;
4
+ const telemetry_1 = require("../../telemetry");
5
+ const analytics_1 = require("../../utils/analytics");
6
+ const ui_1 = require("../../ui");
7
+ const cursor_1 = require("./clients/cursor");
8
+ const claude_1 = require("./clients/claude");
9
+ const claude_code_1 = require("./clients/claude-code");
10
+ const visual_studio_code_1 = require("./clients/visual-studio-code");
11
+ const zed_1 = require("./clients/zed");
12
+ const codex_1 = require("./clients/codex");
13
+ const defaults_1 = require("./defaults");
14
+ const debug_1 = require("../../utils/debug");
15
+ const getSupportedClients = async () => {
16
+ const allClients = [
17
+ new cursor_1.CursorMCPClient(),
18
+ new claude_1.ClaudeMCPClient(),
19
+ new claude_code_1.ClaudeCodeMCPClient(),
20
+ new visual_studio_code_1.VisualStudioCodeClient(),
21
+ new zed_1.ZedClient(),
22
+ new codex_1.CodexMCPClient(),
23
+ ];
24
+ const supportedClients = [];
25
+ (0, debug_1.debug)('Checking for supported MCP clients...');
26
+ for (const client of allClients) {
27
+ const isSupported = await client.isClientSupported();
28
+ (0, debug_1.debug)(`${client.name}: ${isSupported ? '✓ supported' : '✗ not supported'}`);
29
+ if (isSupported) {
30
+ supportedClients.push(client);
31
+ }
32
+ }
33
+ (0, debug_1.debug)(`Found ${supportedClients.length} supported client(s): ${supportedClients
34
+ .map((c) => c.name)
35
+ .join(', ')}`);
36
+ return supportedClients;
37
+ };
38
+ exports.getSupportedClients = getSupportedClients;
39
+ /**
40
+ * Add MCP server to clients. No prompts — pure orchestration.
41
+ * Prompts are handled by McpScreen (TUI) or auto-accepted (CI).
42
+ */
43
+ const addMCPServerToClientsStep = async ({ integration, local = false, ci = false, }) => {
44
+ const ui = (0, ui_1.getUI)();
45
+ // CI mode: skip MCP installation entirely
46
+ if (ci) {
47
+ ui.log.info('Skipping MCP installation (CI mode)');
48
+ return [];
49
+ }
50
+ const supportedClients = await (0, exports.getSupportedClients)();
51
+ if (supportedClients.length === 0) {
52
+ ui.log.info('No supported MCP clients detected. Skipping MCP installation.');
53
+ return [];
54
+ }
55
+ // Auto-install to all supported clients
56
+ await (0, telemetry_1.traceStep)('adding mcp servers', async () => {
57
+ await (0, exports.addMCPServer)(supportedClients, undefined, [...defaults_1.ALL_FEATURE_VALUES], local);
58
+ });
59
+ ui.log.success(`Added the MCP server to:
60
+ ${supportedClients.map((c) => `- ${c.name}`).join('\n ')} `);
61
+ analytics_1.analytics.wizardCapture('mcp servers added', {
62
+ clients: supportedClients.map((c) => c.name),
63
+ integration,
64
+ });
65
+ return supportedClients.map((c) => c.name);
66
+ };
67
+ exports.addMCPServerToClientsStep = addMCPServerToClientsStep;
68
+ const removeMCPServerFromClientsStep = async ({ integration, local = false, }) => {
69
+ const installedClients = await (0, exports.getInstalledClients)(local);
70
+ if (installedClients.length === 0) {
71
+ analytics_1.analytics.wizardCapture('mcp no servers to remove', {
72
+ integration,
73
+ });
74
+ return [];
75
+ }
76
+ // Auto-remove from all installed clients
77
+ const results = await (0, telemetry_1.traceStep)('removing mcp servers', async () => {
78
+ await (0, exports.removeMCPServer)(installedClients, local);
79
+ return installedClients.map((c) => c.name);
80
+ });
81
+ analytics_1.analytics.wizardCapture('mcp servers removed', {
82
+ clients: results,
83
+ integration,
84
+ });
85
+ return results;
86
+ };
87
+ exports.removeMCPServerFromClientsStep = removeMCPServerFromClientsStep;
88
+ const getInstalledClients = async (local) => {
89
+ const clients = await (0, exports.getSupportedClients)();
90
+ const installedClients = [];
91
+ for (const client of clients) {
92
+ if (await client.isServerInstalled(local)) {
93
+ installedClients.push(client);
94
+ }
95
+ }
96
+ return installedClients;
97
+ };
98
+ exports.getInstalledClients = getInstalledClients;
99
+ const addMCPServer = async (clients, personalApiKey, selectedFeatures, local) => {
100
+ for (const client of clients) {
101
+ await client.addServer(personalApiKey, selectedFeatures, local);
102
+ }
103
+ };
104
+ exports.addMCPServer = addMCPServer;
105
+ const removeMCPServer = async (clients, local) => {
106
+ for (const client of clients) {
107
+ await client.removeServer(local);
108
+ }
109
+ };
110
+ exports.removeMCPServer = removeMCPServer;
@@ -0,0 +1,10 @@
1
+ import type { Integration } from '../lib/constants';
2
+ export declare function addOrUpdateEnvironmentVariablesStep({ installDir, variables, integration, }: {
3
+ installDir: string;
4
+ variables: Record<string, string>;
5
+ integration: Integration;
6
+ }): Promise<{
7
+ relativeEnvFilePath: string;
8
+ addedEnvVariables: boolean;
9
+ addedGitignore: boolean;
10
+ }>;