@dotcontext/cli 0.8.2 → 0.9.1

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 (414) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +236 -135
  3. package/dist/cli/index.d.ts +15 -0
  4. package/dist/cli/index.d.ts.map +1 -0
  5. package/dist/cli/index.js +29 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/generators/documentation/codebaseMapGenerator.d.ts +29 -46
  8. package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -1
  9. package/dist/generators/documentation/codebaseMapGenerator.js +148 -244
  10. package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -1
  11. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
  12. package/dist/generators/documentation/documentationGenerator.js +13 -8
  13. package/dist/generators/documentation/documentationGenerator.js.map +1 -1
  14. package/dist/generators/documentation/index.d.ts +1 -1
  15. package/dist/generators/documentation/index.d.ts.map +1 -1
  16. package/dist/generators/shared/structures/documentation/architecture.d.ts.map +1 -1
  17. package/dist/generators/shared/structures/documentation/architecture.js +9 -9
  18. package/dist/generators/shared/structures/documentation/architecture.js.map +1 -1
  19. package/dist/generators/shared/structures/documentation/dataFlow.js +2 -2
  20. package/dist/generators/shared/structures/documentation/dataFlow.js.map +1 -1
  21. package/dist/generators/shared/structures/documentation/glossary.js +2 -2
  22. package/dist/generators/shared/structures/documentation/glossary.js.map +1 -1
  23. package/dist/generators/shared/structures/documentation/projectOverview.d.ts.map +1 -1
  24. package/dist/generators/shared/structures/documentation/projectOverview.js +10 -11
  25. package/dist/generators/shared/structures/documentation/projectOverview.js.map +1 -1
  26. package/dist/generators/shared/structures/skills/factory.d.ts.map +1 -1
  27. package/dist/generators/shared/structures/skills/factory.js +19 -15
  28. package/dist/generators/shared/structures/skills/factory.js.map +1 -1
  29. package/dist/generators/skills/skillGenerator.d.ts +2 -1
  30. package/dist/generators/skills/skillGenerator.d.ts.map +1 -1
  31. package/dist/generators/skills/skillGenerator.js +47 -6
  32. package/dist/generators/skills/skillGenerator.js.map +1 -1
  33. package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -1
  34. package/dist/generators/skills/templates/indexTemplate.js +22 -15
  35. package/dist/generators/skills/templates/indexTemplate.js.map +1 -1
  36. package/dist/harness/index.d.ts +11 -0
  37. package/dist/harness/index.d.ts.map +1 -0
  38. package/dist/harness/index.js +33 -0
  39. package/dist/harness/index.js.map +1 -0
  40. package/dist/index.js +370 -378
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/bin.d.ts +19 -0
  43. package/dist/mcp/bin.d.ts.map +1 -0
  44. package/dist/mcp/bin.js +206 -0
  45. package/dist/mcp/bin.js.map +1 -0
  46. package/dist/mcp/index.d.ts +12 -0
  47. package/dist/mcp/index.d.ts.map +1 -0
  48. package/dist/mcp/index.js +28 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/services/autoFill/autoFillService.d.ts.map +1 -1
  51. package/dist/services/autoFill/autoFillService.js +7 -6
  52. package/dist/services/autoFill/autoFillService.js.map +1 -1
  53. package/dist/services/cli/index.d.ts +8 -0
  54. package/dist/services/cli/index.d.ts.map +1 -0
  55. package/dist/services/cli/index.js +19 -0
  56. package/dist/services/cli/index.js.map +1 -0
  57. package/dist/services/cli/mcpInstallService.d.ts +75 -0
  58. package/dist/services/cli/mcpInstallService.d.ts.map +1 -0
  59. package/dist/services/cli/mcpInstallService.js +646 -0
  60. package/dist/services/cli/mcpInstallService.js.map +1 -0
  61. package/dist/services/cli/stateDetector.d.ts +55 -0
  62. package/dist/services/cli/stateDetector.d.ts.map +1 -0
  63. package/dist/services/cli/stateDetector.js +191 -0
  64. package/dist/services/cli/stateDetector.js.map +1 -0
  65. package/dist/services/export/contextExportService.js +3 -3
  66. package/dist/services/export/contextExportService.js.map +1 -1
  67. package/dist/services/export/exportRulesService.d.ts +1 -0
  68. package/dist/services/export/exportRulesService.d.ts.map +1 -1
  69. package/dist/services/export/exportRulesService.js +20 -8
  70. package/dist/services/export/exportRulesService.js.map +1 -1
  71. package/dist/services/export/skillExportService.d.ts.map +1 -1
  72. package/dist/services/export/skillExportService.js +4 -1
  73. package/dist/services/export/skillExportService.js.map +1 -1
  74. package/dist/services/harness/agentsService.d.ts +31 -0
  75. package/dist/services/harness/agentsService.d.ts.map +1 -0
  76. package/dist/services/harness/agentsService.js +135 -0
  77. package/dist/services/harness/agentsService.js.map +1 -0
  78. package/dist/services/harness/contextService.d.ts +167 -0
  79. package/dist/services/harness/contextService.d.ts.map +1 -0
  80. package/dist/services/harness/contextService.js +403 -0
  81. package/dist/services/harness/contextService.js.map +1 -0
  82. package/dist/services/harness/contextTools.d.ts +95 -0
  83. package/dist/services/harness/contextTools.d.ts.map +1 -0
  84. package/dist/services/harness/contextTools.js +990 -0
  85. package/dist/services/harness/contextTools.js.map +1 -0
  86. package/dist/services/harness/datasetService.d.ts +63 -0
  87. package/dist/services/harness/datasetService.d.ts.map +1 -0
  88. package/dist/services/harness/datasetService.js +261 -0
  89. package/dist/services/harness/datasetService.js.map +1 -0
  90. package/dist/services/harness/executionService.d.ts +74 -0
  91. package/dist/services/harness/executionService.d.ts.map +1 -0
  92. package/dist/services/harness/executionService.js +213 -0
  93. package/dist/services/harness/executionService.js.map +1 -0
  94. package/dist/services/harness/index.d.ts +21 -0
  95. package/dist/services/harness/index.d.ts.map +1 -0
  96. package/dist/services/harness/index.js +52 -0
  97. package/dist/services/harness/index.js.map +1 -0
  98. package/dist/services/harness/plansService.d.ts +45 -0
  99. package/dist/services/harness/plansService.d.ts.map +1 -0
  100. package/dist/services/harness/plansService.js +251 -0
  101. package/dist/services/harness/plansService.js.map +1 -0
  102. package/dist/services/harness/policyService.d.ts +116 -0
  103. package/dist/services/harness/policyService.d.ts.map +1 -0
  104. package/dist/services/harness/policyService.js +510 -0
  105. package/dist/services/harness/policyService.js.map +1 -0
  106. package/dist/services/harness/replayService.d.ts +63 -0
  107. package/dist/services/harness/replayService.d.ts.map +1 -0
  108. package/dist/services/harness/replayService.js +242 -0
  109. package/dist/services/harness/replayService.js.map +1 -0
  110. package/dist/services/harness/runtimeStateService.d.ts +120 -0
  111. package/dist/services/harness/runtimeStateService.d.ts.map +1 -0
  112. package/dist/services/harness/runtimeStateService.js +316 -0
  113. package/dist/services/harness/runtimeStateService.js.map +1 -0
  114. package/dist/services/harness/sensorCatalogService.d.ts +50 -0
  115. package/dist/services/harness/sensorCatalogService.d.ts.map +1 -0
  116. package/dist/services/harness/sensorCatalogService.js +308 -0
  117. package/dist/services/harness/sensorCatalogService.js.map +1 -0
  118. package/dist/services/harness/sensorsService.d.ts +64 -0
  119. package/dist/services/harness/sensorsService.d.ts.map +1 -0
  120. package/dist/services/harness/sensorsService.js +88 -0
  121. package/dist/services/harness/sensorsService.js.map +1 -0
  122. package/dist/services/harness/skillsService.d.ts +31 -0
  123. package/dist/services/harness/skillsService.d.ts.map +1 -0
  124. package/dist/services/harness/skillsService.js +296 -0
  125. package/dist/services/harness/skillsService.js.map +1 -0
  126. package/dist/services/harness/taskContractsService.d.ts +88 -0
  127. package/dist/services/harness/taskContractsService.d.ts.map +1 -0
  128. package/dist/services/harness/taskContractsService.js +210 -0
  129. package/dist/services/harness/taskContractsService.js.map +1 -0
  130. package/dist/services/harness/workflowStateService.d.ts +51 -0
  131. package/dist/services/harness/workflowStateService.d.ts.map +1 -0
  132. package/dist/services/harness/workflowStateService.js +215 -0
  133. package/dist/services/harness/workflowStateService.js.map +1 -0
  134. package/dist/services/import/agentsDetector.d.ts.map +1 -1
  135. package/dist/services/import/agentsDetector.js +14 -8
  136. package/dist/services/import/agentsDetector.js.map +1 -1
  137. package/dist/services/import/importAgentsService.d.ts +2 -2
  138. package/dist/services/import/importAgentsService.d.ts.map +1 -1
  139. package/dist/services/import/importAgentsService.js +8 -1
  140. package/dist/services/import/importAgentsService.js.map +1 -1
  141. package/dist/services/import/importRulesService.d.ts +2 -2
  142. package/dist/services/import/importRulesService.d.ts.map +1 -1
  143. package/dist/services/import/importRulesService.js +8 -1
  144. package/dist/services/import/importRulesService.js.map +1 -1
  145. package/dist/services/import/presets.js +2 -2
  146. package/dist/services/import/presets.js.map +1 -1
  147. package/dist/services/import/rulesDetector.d.ts.map +1 -1
  148. package/dist/services/import/rulesDetector.js +16 -1
  149. package/dist/services/import/rulesDetector.js.map +1 -1
  150. package/dist/services/import/types.d.ts +1 -1
  151. package/dist/services/import/types.d.ts.map +1 -1
  152. package/dist/services/mcp/actionLogger.d.ts +2 -1
  153. package/dist/services/mcp/actionLogger.d.ts.map +1 -1
  154. package/dist/services/mcp/actionLogger.js +76 -15
  155. package/dist/services/mcp/actionLogger.js.map +1 -1
  156. package/dist/services/mcp/gateway/agent.d.ts.map +1 -1
  157. package/dist/services/mcp/gateway/agent.js +15 -104
  158. package/dist/services/mcp/gateway/agent.js.map +1 -1
  159. package/dist/services/mcp/gateway/context.d.ts.map +1 -1
  160. package/dist/services/mcp/gateway/context.js +60 -172
  161. package/dist/services/mcp/gateway/context.js.map +1 -1
  162. package/dist/services/mcp/gateway/explore.js +6 -6
  163. package/dist/services/mcp/gateway/explore.js.map +1 -1
  164. package/dist/services/mcp/gateway/harness.d.ts +7 -0
  165. package/dist/services/mcp/gateway/harness.d.ts.map +1 -0
  166. package/dist/services/mcp/gateway/harness.js +337 -0
  167. package/dist/services/mcp/gateway/harness.js.map +1 -0
  168. package/dist/services/mcp/gateway/index.d.ts +3 -2
  169. package/dist/services/mcp/gateway/index.d.ts.map +1 -1
  170. package/dist/services/mcp/gateway/index.js +4 -2
  171. package/dist/services/mcp/gateway/index.js.map +1 -1
  172. package/dist/services/mcp/gateway/metrics.d.ts.map +1 -1
  173. package/dist/services/mcp/gateway/metrics.js +8 -8
  174. package/dist/services/mcp/gateway/metrics.js.map +1 -1
  175. package/dist/services/mcp/gateway/plan.d.ts.map +1 -1
  176. package/dist/services/mcp/gateway/plan.js +23 -211
  177. package/dist/services/mcp/gateway/plan.js.map +1 -1
  178. package/dist/services/mcp/gateway/shared.d.ts +1 -32
  179. package/dist/services/mcp/gateway/shared.d.ts.map +1 -1
  180. package/dist/services/mcp/gateway/shared.js +4 -30
  181. package/dist/services/mcp/gateway/shared.js.map +1 -1
  182. package/dist/services/mcp/gateway/skill.d.ts.map +1 -1
  183. package/dist/services/mcp/gateway/skill.js +14 -281
  184. package/dist/services/mcp/gateway/skill.js.map +1 -1
  185. package/dist/services/mcp/gateway/types.d.ts +74 -3
  186. package/dist/services/mcp/gateway/types.d.ts.map +1 -1
  187. package/dist/services/mcp/gateway/workflowAdvance.d.ts.map +1 -1
  188. package/dist/services/mcp/gateway/workflowAdvance.js +37 -9
  189. package/dist/services/mcp/gateway/workflowAdvance.js.map +1 -1
  190. package/dist/services/mcp/gateway/workflowInit.d.ts.map +1 -1
  191. package/dist/services/mcp/gateway/workflowInit.js +8 -2
  192. package/dist/services/mcp/gateway/workflowInit.js.map +1 -1
  193. package/dist/services/mcp/gateway/workflowManage.d.ts +17 -1
  194. package/dist/services/mcp/gateway/workflowManage.d.ts.map +1 -1
  195. package/dist/services/mcp/gateway/workflowManage.js +155 -10
  196. package/dist/services/mcp/gateway/workflowManage.js.map +1 -1
  197. package/dist/services/mcp/gateway/workflowStatus.d.ts.map +1 -1
  198. package/dist/services/mcp/gateway/workflowStatus.js +5 -3
  199. package/dist/services/mcp/gateway/workflowStatus.js.map +1 -1
  200. package/dist/services/mcp/gatewayTools.d.ts +1 -1
  201. package/dist/services/mcp/gatewayTools.d.ts.map +1 -1
  202. package/dist/services/mcp/gatewayTools.js +2 -1
  203. package/dist/services/mcp/gatewayTools.js.map +1 -1
  204. package/dist/services/mcp/index.d.ts +10 -4
  205. package/dist/services/mcp/index.d.ts.map +1 -1
  206. package/dist/services/mcp/index.js +9 -3
  207. package/dist/services/mcp/index.js.map +1 -1
  208. package/dist/services/mcp/mcpInstallService.d.ts +4 -52
  209. package/dist/services/mcp/mcpInstallService.d.ts.map +1 -1
  210. package/dist/services/mcp/mcpInstallService.js +5 -596
  211. package/dist/services/mcp/mcpInstallService.js.map +1 -1
  212. package/dist/services/mcp/mcpServer.d.ts +5 -6
  213. package/dist/services/mcp/mcpServer.d.ts.map +1 -1
  214. package/dist/services/mcp/mcpServer.js +220 -28
  215. package/dist/services/mcp/mcpServer.js.map +1 -1
  216. package/dist/services/qa/patternInferer.d.ts +2 -31
  217. package/dist/services/qa/patternInferer.d.ts.map +1 -1
  218. package/dist/services/qa/patternInferer.js +4 -353
  219. package/dist/services/qa/patternInferer.js.map +1 -1
  220. package/dist/services/qa/qaService.d.ts +6 -10
  221. package/dist/services/qa/qaService.d.ts.map +1 -1
  222. package/dist/services/qa/qaService.js +17 -53
  223. package/dist/services/qa/qaService.js.map +1 -1
  224. package/dist/services/reverseSync/importSkillsService.d.ts.map +1 -1
  225. package/dist/services/reverseSync/importSkillsService.js +4 -1
  226. package/dist/services/reverseSync/importSkillsService.js.map +1 -1
  227. package/dist/services/reverseSync/reverseQuickSyncService.d.ts.map +1 -1
  228. package/dist/services/reverseSync/reverseQuickSyncService.js +10 -6
  229. package/dist/services/reverseSync/reverseQuickSyncService.js.map +1 -1
  230. package/dist/services/reverseSync/skillsDetector.js +2 -2
  231. package/dist/services/reverseSync/skillsDetector.js.map +1 -1
  232. package/dist/services/reverseSync/toolDetector.d.ts.map +1 -1
  233. package/dist/services/reverseSync/toolDetector.js +3 -0
  234. package/dist/services/reverseSync/toolDetector.js.map +1 -1
  235. package/dist/services/semantic/index.d.ts +1 -0
  236. package/dist/services/semantic/index.d.ts.map +1 -1
  237. package/dist/services/semantic/index.js +3 -1
  238. package/dist/services/semantic/index.js.map +1 -1
  239. package/dist/services/semantic/semanticSnapshotService.d.ts +86 -0
  240. package/dist/services/semantic/semanticSnapshotService.d.ts.map +1 -0
  241. package/dist/services/semantic/semanticSnapshotService.js +573 -0
  242. package/dist/services/semantic/semanticSnapshotService.js.map +1 -0
  243. package/dist/services/shared/contentTypeRegistry.d.ts.map +1 -1
  244. package/dist/services/shared/contentTypeRegistry.js +9 -0
  245. package/dist/services/shared/contentTypeRegistry.js.map +1 -1
  246. package/dist/services/shared/contextLayout.d.ts +18 -0
  247. package/dist/services/shared/contextLayout.d.ts.map +1 -0
  248. package/dist/services/shared/contextLayout.js +139 -0
  249. package/dist/services/shared/contextLayout.js.map +1 -0
  250. package/dist/services/shared/executionContext.d.ts +38 -0
  251. package/dist/services/shared/executionContext.d.ts.map +1 -0
  252. package/dist/services/shared/executionContext.js +39 -0
  253. package/dist/services/shared/executionContext.js.map +1 -0
  254. package/dist/services/shared/index.d.ts +2 -0
  255. package/dist/services/shared/index.d.ts.map +1 -1
  256. package/dist/services/shared/index.js +11 -1
  257. package/dist/services/shared/index.js.map +1 -1
  258. package/dist/services/shared/toolRegistry.d.ts +6 -0
  259. package/dist/services/shared/toolRegistry.d.ts.map +1 -1
  260. package/dist/services/shared/toolRegistry.js +34 -20
  261. package/dist/services/shared/toolRegistry.js.map +1 -1
  262. package/dist/services/stack/scaffoldFilter.d.ts +3 -3
  263. package/dist/services/state/stateDetector.d.ts +4 -49
  264. package/dist/services/state/stateDetector.d.ts.map +1 -1
  265. package/dist/services/state/stateDetector.js +9 -182
  266. package/dist/services/state/stateDetector.js.map +1 -1
  267. package/dist/services/sync/index.d.ts +1 -1
  268. package/dist/services/sync/index.d.ts.map +1 -1
  269. package/dist/services/sync/index.js.map +1 -1
  270. package/dist/services/sync/markdownReferenceHandler.d.ts.map +1 -1
  271. package/dist/services/sync/markdownReferenceHandler.js +7 -2
  272. package/dist/services/sync/markdownReferenceHandler.js.map +1 -1
  273. package/dist/services/sync/presets.d.ts.map +1 -1
  274. package/dist/services/sync/presets.js +1 -0
  275. package/dist/services/sync/presets.js.map +1 -1
  276. package/dist/services/sync/symlinkHandler.d.ts.map +1 -1
  277. package/dist/services/sync/symlinkHandler.js +7 -2
  278. package/dist/services/sync/symlinkHandler.js.map +1 -1
  279. package/dist/services/sync/syncService.d.ts +2 -2
  280. package/dist/services/sync/syncService.d.ts.map +1 -1
  281. package/dist/services/sync/syncService.js +17 -3
  282. package/dist/services/sync/syncService.js.map +1 -1
  283. package/dist/services/sync/types.d.ts +9 -1
  284. package/dist/services/sync/types.d.ts.map +1 -1
  285. package/dist/services/workflow/index.d.ts +1 -1
  286. package/dist/services/workflow/index.d.ts.map +1 -1
  287. package/dist/services/workflow/index.js +2 -1
  288. package/dist/services/workflow/index.js.map +1 -1
  289. package/dist/services/workflow/workflowService.d.ts +68 -0
  290. package/dist/services/workflow/workflowService.d.ts.map +1 -1
  291. package/dist/services/workflow/workflowService.js +416 -1
  292. package/dist/services/workflow/workflowService.js.map +1 -1
  293. package/dist/utils/gitignoreManager.d.ts +8 -0
  294. package/dist/utils/gitignoreManager.d.ts.map +1 -1
  295. package/dist/utils/gitignoreManager.js +40 -0
  296. package/dist/utils/gitignoreManager.js.map +1 -1
  297. package/dist/utils/i18n.d.ts +1 -1
  298. package/dist/utils/i18n.js +2 -2
  299. package/dist/utils/i18n.js.map +1 -1
  300. package/dist/utils/processShutdown.d.ts +20 -0
  301. package/dist/utils/processShutdown.d.ts.map +1 -0
  302. package/dist/utils/processShutdown.js +47 -0
  303. package/dist/utils/processShutdown.js.map +1 -0
  304. package/dist/utils/prompts/index.d.ts +1 -1
  305. package/dist/utils/prompts/index.d.ts.map +1 -1
  306. package/dist/utils/prompts/index.js +1 -3
  307. package/dist/utils/prompts/index.js.map +1 -1
  308. package/dist/utils/prompts/smartDefaults.d.ts +0 -9
  309. package/dist/utils/prompts/smartDefaults.d.ts.map +1 -1
  310. package/dist/utils/prompts/smartDefaults.js +0 -23
  311. package/dist/utils/prompts/smartDefaults.js.map +1 -1
  312. package/dist/utils/prompts/types.d.ts +0 -11
  313. package/dist/utils/prompts/types.d.ts.map +1 -1
  314. package/dist/workflow/index.d.ts +1 -1
  315. package/dist/workflow/index.d.ts.map +1 -1
  316. package/dist/workflow/index.js +6 -1
  317. package/dist/workflow/index.js.map +1 -1
  318. package/dist/workflow/orchestrator.d.ts.map +1 -1
  319. package/dist/workflow/orchestrator.js +3 -14
  320. package/dist/workflow/orchestrator.js.map +1 -1
  321. package/dist/workflow/plans/planLinker.d.ts +13 -0
  322. package/dist/workflow/plans/planLinker.d.ts.map +1 -1
  323. package/dist/workflow/plans/planLinker.js +77 -2
  324. package/dist/workflow/plans/planLinker.js.map +1 -1
  325. package/dist/workflow/plans/types.d.ts +6 -0
  326. package/dist/workflow/plans/types.d.ts.map +1 -1
  327. package/dist/workflow/skills/frontmatter.d.ts +9 -0
  328. package/dist/workflow/skills/frontmatter.d.ts.map +1 -1
  329. package/dist/workflow/skills/frontmatter.js +16 -0
  330. package/dist/workflow/skills/frontmatter.js.map +1 -1
  331. package/dist/workflow/skills/index.d.ts +1 -1
  332. package/dist/workflow/skills/index.d.ts.map +1 -1
  333. package/dist/workflow/skills/index.js +3 -1
  334. package/dist/workflow/skills/index.js.map +1 -1
  335. package/dist/workflow/skills/skillRegistry.d.ts.map +1 -1
  336. package/dist/workflow/skills/skillRegistry.js +4 -1
  337. package/dist/workflow/skills/skillRegistry.js.map +1 -1
  338. package/dist/workflow/skills/skillTemplates.d.ts.map +1 -1
  339. package/dist/workflow/skills/skillTemplates.js +69 -30
  340. package/dist/workflow/skills/skillTemplates.js.map +1 -1
  341. package/dist/workflow/status/statusManager.d.ts +8 -3
  342. package/dist/workflow/status/statusManager.d.ts.map +1 -1
  343. package/dist/workflow/status/statusManager.js +60 -21
  344. package/dist/workflow/status/statusManager.js.map +1 -1
  345. package/dist/workflow/types.d.ts +1 -1
  346. package/package.json +17 -8
  347. package/dist/services/ai/aiSdkClient.d.ts +0 -67
  348. package/dist/services/ai/aiSdkClient.d.ts.map +0 -1
  349. package/dist/services/ai/aiSdkClient.js +0 -143
  350. package/dist/services/ai/aiSdkClient.js.map +0 -1
  351. package/dist/services/ai/index.d.ts +0 -5
  352. package/dist/services/ai/index.d.ts.map +0 -1
  353. package/dist/services/ai/index.js +0 -40
  354. package/dist/services/ai/index.js.map +0 -1
  355. package/dist/services/ai/providerFactory.d.ts +0 -35
  356. package/dist/services/ai/providerFactory.d.ts.map +0 -1
  357. package/dist/services/ai/providerFactory.js +0 -107
  358. package/dist/services/ai/providerFactory.js.map +0 -1
  359. package/dist/services/ai/schemas.d.ts +0 -557
  360. package/dist/services/ai/schemas.d.ts.map +0 -1
  361. package/dist/services/ai/schemas.js +0 -357
  362. package/dist/services/ai/schemas.js.map +0 -1
  363. package/dist/services/ai/toolRegistry.d.ts +0 -27
  364. package/dist/services/ai/toolRegistry.d.ts.map +0 -1
  365. package/dist/services/ai/toolRegistry.js +0 -151
  366. package/dist/services/ai/toolRegistry.js.map +0 -1
  367. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts +0 -33
  368. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts.map +0 -1
  369. package/dist/services/ai/tools/analyzeSymbolsTool.js +0 -57
  370. package/dist/services/ai/tools/analyzeSymbolsTool.js.map +0 -1
  371. package/dist/services/ai/tools/checkScaffoldingTool.d.ts +0 -18
  372. package/dist/services/ai/tools/checkScaffoldingTool.d.ts.map +0 -1
  373. package/dist/services/ai/tools/checkScaffoldingTool.js +0 -89
  374. package/dist/services/ai/tools/checkScaffoldingTool.js.map +0 -1
  375. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +0 -124
  376. package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +0 -1
  377. package/dist/services/ai/tools/fillScaffoldingTool.js +0 -397
  378. package/dist/services/ai/tools/fillScaffoldingTool.js.map +0 -1
  379. package/dist/services/ai/tools/getCodebaseMapTool.d.ts +0 -17
  380. package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +0 -1
  381. package/dist/services/ai/tools/getCodebaseMapTool.js +0 -122
  382. package/dist/services/ai/tools/getCodebaseMapTool.js.map +0 -1
  383. package/dist/services/ai/tools/getFileStructureTool.d.ts +0 -29
  384. package/dist/services/ai/tools/getFileStructureTool.d.ts.map +0 -1
  385. package/dist/services/ai/tools/getFileStructureTool.js +0 -48
  386. package/dist/services/ai/tools/getFileStructureTool.js.map +0 -1
  387. package/dist/services/ai/tools/index.d.ts +0 -21
  388. package/dist/services/ai/tools/index.d.ts.map +0 -1
  389. package/dist/services/ai/tools/index.js +0 -75
  390. package/dist/services/ai/tools/index.js.map +0 -1
  391. package/dist/services/ai/tools/initializeContextTool.d.ts +0 -135
  392. package/dist/services/ai/tools/initializeContextTool.d.ts.map +0 -1
  393. package/dist/services/ai/tools/initializeContextTool.js +0 -447
  394. package/dist/services/ai/tools/initializeContextTool.js.map +0 -1
  395. package/dist/services/ai/tools/listFilesTool.d.ts +0 -18
  396. package/dist/services/ai/tools/listFilesTool.d.ts.map +0 -1
  397. package/dist/services/ai/tools/listFilesTool.js +0 -34
  398. package/dist/services/ai/tools/listFilesTool.js.map +0 -1
  399. package/dist/services/ai/tools/readFileTool.d.ts +0 -17
  400. package/dist/services/ai/tools/readFileTool.d.ts.map +0 -1
  401. package/dist/services/ai/tools/readFileTool.js +0 -63
  402. package/dist/services/ai/tools/readFileTool.js.map +0 -1
  403. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +0 -41
  404. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +0 -1
  405. package/dist/services/ai/tools/scaffoldPlanTool.js +0 -183
  406. package/dist/services/ai/tools/scaffoldPlanTool.js.map +0 -1
  407. package/dist/services/ai/tools/searchCodeTool.d.ts +0 -25
  408. package/dist/services/ai/tools/searchCodeTool.d.ts.map +0 -1
  409. package/dist/services/ai/tools/searchCodeTool.js +0 -96
  410. package/dist/services/ai/tools/searchCodeTool.js.map +0 -1
  411. package/dist/services/baseLLMClient.d.ts +0 -12
  412. package/dist/services/baseLLMClient.d.ts.map +0 -1
  413. package/dist/services/baseLLMClient.js +0 -80
  414. package/dist/services/baseLLMClient.js.map +0 -1
@@ -0,0 +1,646 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Install Service
4
+ *
5
+ * CLI-facing installation service for configuring the dotcontext MCP server
6
+ * in various AI tools. This belongs to the operator surface, not the
7
+ * reusable harness runtime.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.MCPInstallService = void 0;
44
+ exports.buildMcpInstallToolChoices = buildMcpInstallToolChoices;
45
+ exports.resolveMcpInstallToolSelection = resolveMcpInstallToolSelection;
46
+ const path = __importStar(require("path"));
47
+ const os = __importStar(require("os"));
48
+ const fs = __importStar(require("fs-extra"));
49
+ const types_1 = require("../shared/types");
50
+ const toolRegistry_1 = require("../shared/toolRegistry");
51
+ /**
52
+ * Standard MCP server configuration for dotcontext
53
+ */
54
+ const AI_CONTEXT_MCP_SERVER = {
55
+ command: 'npx',
56
+ args: ['-y', '@dotcontext/mcp@latest'],
57
+ env: {},
58
+ };
59
+ const parseJsonConfig = (content) => JSON.parse(content);
60
+ const serializeJsonConfig = (config) => JSON.stringify(config, null, 2);
61
+ function buildCodexTomlConfig(existingConfig, server) {
62
+ const lines = [
63
+ '[mcp_servers.dotcontext]',
64
+ `command = ${JSON.stringify(server.command)}`,
65
+ `args = [${server.args.map(arg => JSON.stringify(arg)).join(', ')}]`,
66
+ ];
67
+ if (server.env && Object.keys(server.env).length > 0) {
68
+ lines.push('[mcp_servers.dotcontext.env]');
69
+ for (const [key, value] of Object.entries(server.env)) {
70
+ lines.push(`${key} = ${JSON.stringify(value)}`);
71
+ }
72
+ }
73
+ const trimmed = existingConfig.trimEnd();
74
+ const block = lines.join('\n');
75
+ return trimmed ? `${trimmed}\n\n${block}\n` : `${block}\n`;
76
+ }
77
+ /**
78
+ * MCP configuration templates for each supported tool
79
+ */
80
+ const MCP_CONFIG_TEMPLATES = [
81
+ // Claude Code
82
+ {
83
+ toolId: 'claude',
84
+ globalConfigPath: '.claude.json',
85
+ localConfigPath: '.mcp.json',
86
+ generateConfig: (existing, server) => {
87
+ const config = existing || {};
88
+ return {
89
+ ...config,
90
+ mcpServers: {
91
+ ...(config.mcpServers || {}),
92
+ 'dotcontext': server,
93
+ },
94
+ };
95
+ },
96
+ isConfigured: (config) => {
97
+ const c = config;
98
+ const servers = c?.mcpServers;
99
+ return !!servers?.['dotcontext'];
100
+ },
101
+ },
102
+ // Cursor AI
103
+ {
104
+ toolId: 'cursor',
105
+ globalConfigPath: '.cursor/mcp.json',
106
+ localConfigPath: '.cursor/mcp.json',
107
+ generateConfig: (existing, server) => {
108
+ const config = existing || {};
109
+ return {
110
+ ...config,
111
+ mcpServers: {
112
+ ...(config.mcpServers || {}),
113
+ 'dotcontext': {
114
+ type: 'stdio',
115
+ ...server,
116
+ },
117
+ },
118
+ };
119
+ },
120
+ isConfigured: (config) => {
121
+ const c = config;
122
+ const servers = c?.mcpServers;
123
+ return !!servers?.['dotcontext'];
124
+ },
125
+ },
126
+ // Windsurf (Codeium)
127
+ {
128
+ toolId: 'windsurf',
129
+ globalConfigPath: '.codeium/windsurf/mcp_config.json',
130
+ localConfigPath: '.codeium/windsurf/mcp_config.json',
131
+ generateConfig: (existing, server) => {
132
+ const config = existing || {};
133
+ return {
134
+ ...config,
135
+ mcpServers: {
136
+ ...(config.mcpServers || {}),
137
+ 'dotcontext': server,
138
+ },
139
+ };
140
+ },
141
+ isConfigured: (config) => {
142
+ const c = config;
143
+ const servers = c?.mcpServers;
144
+ return !!servers?.['dotcontext'];
145
+ },
146
+ },
147
+ // Continue.dev — standalone per-server file
148
+ {
149
+ toolId: 'continue',
150
+ globalConfigPath: '.continue/mcpServers/dotcontext.json',
151
+ localConfigPath: '.continue/mcpServers/dotcontext.json',
152
+ generateConfig: (_existing, server) => {
153
+ return {
154
+ command: server.command,
155
+ args: server.args,
156
+ env: server.env || {},
157
+ };
158
+ },
159
+ isConfigured: (config) => {
160
+ const c = config;
161
+ return !!c?.command;
162
+ },
163
+ },
164
+ // Claude Desktop - Cross-platform paths
165
+ {
166
+ toolId: 'claude-desktop',
167
+ globalConfigPath: process.platform === 'darwin'
168
+ ? path.join('Library', 'Application Support', 'Claude', 'claude_desktop_config.json')
169
+ : path.join('AppData', 'Roaming', 'Claude', 'claude_desktop_config.json'),
170
+ localConfigPath: '.claude-desktop/mcp_servers.json',
171
+ generateConfig: (existing, server) => {
172
+ const config = existing || {};
173
+ return {
174
+ ...config,
175
+ mcpServers: {
176
+ ...(config.mcpServers || {}),
177
+ 'dotcontext': server,
178
+ },
179
+ };
180
+ },
181
+ isConfigured: (config) => {
182
+ const c = config;
183
+ const servers = c?.mcpServers;
184
+ return !!servers?.['dotcontext'];
185
+ },
186
+ },
187
+ // VS Code (GitHub Copilot)
188
+ {
189
+ toolId: 'vscode',
190
+ globalConfigPath: '.vscode/mcp.json',
191
+ localConfigPath: '.vscode/mcp.json',
192
+ generateConfig: (existing, server) => {
193
+ const config = existing || {};
194
+ return {
195
+ ...config,
196
+ servers: {
197
+ ...(config.servers || {}),
198
+ 'dotcontext': {
199
+ type: 'stdio',
200
+ ...server,
201
+ },
202
+ },
203
+ };
204
+ },
205
+ isConfigured: (config) => {
206
+ const c = config;
207
+ const servers = c?.servers;
208
+ return !!servers?.['dotcontext'];
209
+ },
210
+ },
211
+ // Roo Code
212
+ {
213
+ toolId: 'roo',
214
+ globalConfigPath: '.roo/mcp_settings.json',
215
+ localConfigPath: '.roo/mcp.json',
216
+ generateConfig: (existing, server) => {
217
+ const config = existing || {};
218
+ return {
219
+ ...config,
220
+ mcpServers: {
221
+ ...(config.mcpServers || {}),
222
+ 'dotcontext': server,
223
+ },
224
+ };
225
+ },
226
+ isConfigured: (config) => {
227
+ const c = config;
228
+ const servers = c?.mcpServers;
229
+ return !!servers?.['dotcontext'];
230
+ },
231
+ },
232
+ // Amazon Q Developer CLI
233
+ {
234
+ toolId: 'amazonq',
235
+ globalConfigPath: '.aws/amazonq/mcp.json',
236
+ localConfigPath: '.amazonq/mcp.json',
237
+ generateConfig: (existing, server) => {
238
+ const config = existing || {};
239
+ return {
240
+ ...config,
241
+ mcpServers: {
242
+ ...(config.mcpServers || {}),
243
+ 'dotcontext': server,
244
+ },
245
+ };
246
+ },
247
+ isConfigured: (config) => {
248
+ const c = config;
249
+ const servers = c?.mcpServers;
250
+ return !!servers?.['dotcontext'];
251
+ },
252
+ },
253
+ // Gemini CLI
254
+ {
255
+ toolId: 'gemini-cli',
256
+ globalConfigPath: '.gemini/settings.json',
257
+ localConfigPath: '.gemini/settings.json',
258
+ generateConfig: (existing, server) => {
259
+ const config = existing || {};
260
+ return {
261
+ ...config,
262
+ mcpServers: {
263
+ ...(config.mcpServers || {}),
264
+ 'dotcontext': server,
265
+ },
266
+ };
267
+ },
268
+ isConfigured: (config) => {
269
+ const c = config;
270
+ const servers = c?.mcpServers;
271
+ return !!servers?.['dotcontext'];
272
+ },
273
+ },
274
+ // Codex CLI - TOML config
275
+ {
276
+ toolId: 'codex',
277
+ globalConfigPath: '.codex/config.toml',
278
+ localConfigPath: '.codex/config.toml',
279
+ generateConfig: (existing, server) => buildCodexTomlConfig(typeof existing === 'string' ? existing : '', server),
280
+ isConfigured: (config) => (typeof config === 'string' && /^\s*\[mcp_servers\.dotcontext\]\s*$/m.test(config)),
281
+ parseConfig: (content) => content,
282
+ serializeConfig: (config) => (typeof config === 'string' ? config : String(config ?? '')),
283
+ },
284
+ // Kiro
285
+ {
286
+ toolId: 'kiro',
287
+ globalConfigPath: '.kiro/settings/mcp.json',
288
+ localConfigPath: '.kiro/settings/mcp.json',
289
+ generateConfig: (existing, server) => {
290
+ const config = existing || {};
291
+ return {
292
+ ...config,
293
+ mcpServers: {
294
+ ...(config.mcpServers || {}),
295
+ 'dotcontext': server,
296
+ },
297
+ };
298
+ },
299
+ isConfigured: (config) => {
300
+ const c = config;
301
+ const servers = c?.mcpServers;
302
+ return !!servers?.['dotcontext'];
303
+ },
304
+ },
305
+ // Zed Editor - Uses context_servers instead of mcpServers
306
+ {
307
+ toolId: 'zed',
308
+ globalConfigPath: '.config/zed/settings.json',
309
+ localConfigPath: '.zed/settings.json',
310
+ generateConfig: (existing, server) => {
311
+ const config = existing || {};
312
+ return {
313
+ ...config,
314
+ context_servers: {
315
+ ...(config.context_servers || {}),
316
+ 'dotcontext': {
317
+ command: server.command,
318
+ args: server.args,
319
+ env: server.env || {},
320
+ },
321
+ },
322
+ };
323
+ },
324
+ isConfigured: (config) => {
325
+ const c = config;
326
+ const servers = c?.context_servers;
327
+ return !!servers?.['dotcontext'];
328
+ },
329
+ },
330
+ // JetBrains IDEs - Uses servers array with name field
331
+ {
332
+ toolId: 'jetbrains',
333
+ globalConfigPath: '.config/JetBrains/mcp.json',
334
+ localConfigPath: '.jb-mcp.json',
335
+ generateConfig: (existing, server) => {
336
+ const config = existing || {};
337
+ const existingServers = config.servers || [];
338
+ const filtered = existingServers.filter(s => s.name !== 'dotcontext');
339
+ return {
340
+ servers: [
341
+ ...filtered,
342
+ {
343
+ name: 'dotcontext',
344
+ command: server.command,
345
+ args: server.args,
346
+ env: server.env || {},
347
+ },
348
+ ],
349
+ };
350
+ },
351
+ isConfigured: (config) => {
352
+ const c = config;
353
+ const servers = c?.servers;
354
+ return Array.isArray(servers) && servers.some(s => s.name === 'dotcontext');
355
+ },
356
+ },
357
+ // Trae AI (ByteDance)
358
+ {
359
+ toolId: 'trae',
360
+ globalConfigPath: '.trae/mcp.json',
361
+ localConfigPath: '.trae/mcp.json',
362
+ generateConfig: (existing, server) => {
363
+ const config = existing || {};
364
+ return {
365
+ ...config,
366
+ mcpServers: {
367
+ ...(config.mcpServers || {}),
368
+ 'dotcontext': server,
369
+ },
370
+ };
371
+ },
372
+ isConfigured: (config) => {
373
+ const c = config;
374
+ const servers = c?.mcpServers;
375
+ return !!servers?.['dotcontext'];
376
+ },
377
+ },
378
+ // Kilo Code
379
+ {
380
+ toolId: 'kilo',
381
+ globalConfigPath: '.kilo/mcp.json',
382
+ localConfigPath: '.kilo/mcp.json',
383
+ generateConfig: (existing, server) => {
384
+ const config = existing || {};
385
+ return {
386
+ ...config,
387
+ mcp: {
388
+ ...(config.mcp || {}),
389
+ 'dotcontext': {
390
+ type: 'local',
391
+ command: [server.command, ...server.args],
392
+ enabled: true,
393
+ },
394
+ },
395
+ };
396
+ },
397
+ isConfigured: (config) => {
398
+ const c = config;
399
+ const mcp = c?.mcp;
400
+ return !!mcp?.['dotcontext'];
401
+ },
402
+ },
403
+ // GitHub Copilot CLI
404
+ {
405
+ toolId: 'copilot-cli',
406
+ globalConfigPath: '.copilot/mcp-config.json',
407
+ localConfigPath: '.copilot/mcp-config.json',
408
+ generateConfig: (existing, server) => {
409
+ const config = existing || {};
410
+ return {
411
+ ...config,
412
+ mcpServers: {
413
+ ...(config.mcpServers || {}),
414
+ 'dotcontext': server,
415
+ },
416
+ };
417
+ },
418
+ isConfigured: (config) => {
419
+ const c = config;
420
+ const servers = c?.mcpServers;
421
+ return !!servers?.['dotcontext'];
422
+ },
423
+ },
424
+ ];
425
+ // ============================================================================
426
+ // Service Implementation
427
+ // ============================================================================
428
+ class MCPInstallService {
429
+ constructor(deps) {
430
+ this.deps = deps;
431
+ }
432
+ /**
433
+ * Get list of tools that support MCP installation
434
+ */
435
+ getSupportedTools() {
436
+ return MCP_CONFIG_TEMPLATES.map(t => (0, toolRegistry_1.getToolById)(t.toolId)).filter(Boolean);
437
+ }
438
+ /**
439
+ * Get list of supported tool IDs
440
+ */
441
+ getSupportedToolIds() {
442
+ return MCP_CONFIG_TEMPLATES.map(t => t.toolId);
443
+ }
444
+ /**
445
+ * Detect which supported tools are installed on the system
446
+ */
447
+ async detectInstalledTools() {
448
+ const installed = [];
449
+ const homeDir = os.homedir();
450
+ for (const template of MCP_CONFIG_TEMPLATES) {
451
+ const tool = (0, toolRegistry_1.getToolById)(template.toolId);
452
+ if (!tool)
453
+ continue;
454
+ // Check if tool directory exists in home
455
+ const toolDir = path.join(homeDir, tool.directoryPrefix);
456
+ if (await fs.pathExists(toolDir)) {
457
+ installed.push(template.toolId);
458
+ }
459
+ }
460
+ return installed;
461
+ }
462
+ /**
463
+ * Install MCP configuration for specified tools
464
+ */
465
+ async run(options = {}) {
466
+ const result = {
467
+ ...(0, types_1.createEmptyResult)(),
468
+ installations: [],
469
+ };
470
+ const { tool, global: isGlobal = true, dryRun = false, verbose = false, repoPath } = options;
471
+ // Determine base path
472
+ const basePath = isGlobal ? os.homedir() : (repoPath ? path.resolve(repoPath) : process.cwd());
473
+ // Determine which tools to install
474
+ let toolsToInstall;
475
+ if (tool) {
476
+ if (tool === 'all') {
477
+ toolsToInstall = await this.detectInstalledTools();
478
+ if (toolsToInstall.length === 0) {
479
+ toolsToInstall = this.getSupportedToolIds();
480
+ }
481
+ }
482
+ else {
483
+ const template = MCP_CONFIG_TEMPLATES.find(t => t.toolId === tool);
484
+ if (!template) {
485
+ this.deps.ui.displayError(this.deps.t('errors.mcp.unsupportedTool', { tool, supported: this.getSupportedToolIds().join(', ') }));
486
+ return result;
487
+ }
488
+ toolsToInstall = [tool];
489
+ }
490
+ }
491
+ else {
492
+ // No tool specified - install for all detected
493
+ toolsToInstall = await this.detectInstalledTools();
494
+ if (toolsToInstall.length === 0) {
495
+ toolsToInstall = this.getSupportedToolIds();
496
+ }
497
+ }
498
+ if (toolsToInstall.length === 0) {
499
+ this.deps.ui.displayWarning(this.deps.t('warnings.mcp.noToolsDetected'));
500
+ return result;
501
+ }
502
+ // Install for each tool
503
+ for (const toolId of toolsToInstall) {
504
+ const installation = await this.installForTool(toolId, basePath, isGlobal, dryRun, verbose);
505
+ result.installations.push(installation);
506
+ if (installation.action === 'created' || installation.action === 'updated') {
507
+ result.filesCreated++;
508
+ }
509
+ else if (installation.action === 'skipped') {
510
+ result.filesSkipped++;
511
+ }
512
+ }
513
+ // Display summary
514
+ if (!dryRun && result.filesCreated > 0) {
515
+ this.deps.ui.displaySuccess(this.deps.t('success.mcp.installed', { count: result.filesCreated }));
516
+ }
517
+ return result;
518
+ }
519
+ /**
520
+ * Install MCP configuration for a single tool
521
+ */
522
+ async installForTool(toolId, basePath, isGlobal, dryRun, verbose) {
523
+ const template = MCP_CONFIG_TEMPLATES.find(t => t.toolId === toolId);
524
+ const toolDef = (0, toolRegistry_1.getToolById)(toolId);
525
+ if (!template || !toolDef) {
526
+ return {
527
+ tool: toolId,
528
+ toolDisplayName: toolId,
529
+ configPath: '',
530
+ action: 'skipped',
531
+ dryRun,
532
+ };
533
+ }
534
+ const configPath = isGlobal ? template.globalConfigPath : template.localConfigPath;
535
+ const fullConfigPath = path.join(basePath, configPath);
536
+ const parseConfig = template.parseConfig ?? parseJsonConfig;
537
+ const serializeConfig = template.serializeConfig ?? serializeJsonConfig;
538
+ // Read existing config if it exists
539
+ let existingConfig = {};
540
+ const configExists = await fs.pathExists(fullConfigPath);
541
+ if (configExists) {
542
+ try {
543
+ const content = await fs.readFile(fullConfigPath, 'utf-8');
544
+ existingConfig = parseConfig(content);
545
+ }
546
+ catch {
547
+ // File exists but could not be parsed, we'll overwrite while preserving custom formats when possible.
548
+ existingConfig = {};
549
+ }
550
+ }
551
+ // Check if already configured
552
+ if (template.isConfigured(existingConfig)) {
553
+ if (verbose) {
554
+ this.deps.ui.displayInfo(toolDef.displayName, this.deps.t('info.mcp.alreadyConfigured', { tool: toolDef.displayName }));
555
+ }
556
+ return {
557
+ tool: toolId,
558
+ toolDisplayName: toolDef.displayName,
559
+ configPath: fullConfigPath,
560
+ action: 'skipped',
561
+ dryRun,
562
+ };
563
+ }
564
+ // Generate new config
565
+ const newConfig = template.generateConfig(existingConfig, AI_CONTEXT_MCP_SERVER);
566
+ if (dryRun) {
567
+ const serializedConfig = serializeConfig(newConfig);
568
+ this.deps.ui.displayInfo(toolDef.displayName, this.deps.t('info.mcp.wouldInstall', { tool: toolDef.displayName, path: fullConfigPath }));
569
+ if (verbose) {
570
+ console.log(serializedConfig);
571
+ }
572
+ return {
573
+ tool: toolId,
574
+ toolDisplayName: toolDef.displayName,
575
+ configPath: fullConfigPath,
576
+ action: 'created',
577
+ dryRun: true,
578
+ };
579
+ }
580
+ // Write config
581
+ try {
582
+ await fs.ensureDir(path.dirname(fullConfigPath));
583
+ await fs.writeFile(fullConfigPath, serializeConfig(newConfig), 'utf-8');
584
+ if (verbose) {
585
+ this.deps.ui.displayInfo(toolDef.displayName, this.deps.t('info.mcp.installed', { tool: toolDef.displayName, path: fullConfigPath }));
586
+ }
587
+ const action = configExists ? 'updated' : 'created';
588
+ return {
589
+ tool: toolId,
590
+ toolDisplayName: toolDef.displayName,
591
+ configPath: fullConfigPath,
592
+ action,
593
+ dryRun: false,
594
+ };
595
+ }
596
+ catch (error) {
597
+ this.deps.ui.displayError(this.deps.t('errors.mcp.installFailed', { tool: toolDef.displayName }), error);
598
+ return {
599
+ tool: toolId,
600
+ toolDisplayName: toolDef.displayName,
601
+ configPath: fullConfigPath,
602
+ action: 'skipped',
603
+ dryRun: false,
604
+ };
605
+ }
606
+ }
607
+ }
608
+ exports.MCPInstallService = MCPInstallService;
609
+ function buildMcpInstallToolChoices(supportedTools, detectedTools, t) {
610
+ const detectedSet = new Set(detectedTools);
611
+ const orderedTools = [
612
+ ...supportedTools.filter((tool) => detectedSet.has(tool.id)),
613
+ ...supportedTools.filter((tool) => !detectedSet.has(tool.id)),
614
+ ];
615
+ return [
616
+ {
617
+ name: t('commands.mcpInstall.allDetected'),
618
+ value: 'all',
619
+ },
620
+ ...orderedTools.map((tool) => ({
621
+ name: detectedSet.has(tool.id)
622
+ ? `${tool.displayName} (${t('labels.detected')})`
623
+ : tool.displayName,
624
+ value: tool.id,
625
+ })),
626
+ ];
627
+ }
628
+ async function resolveMcpInstallToolSelection(options) {
629
+ const { selectedTool, isInteractive, service, t, promptTool } = options;
630
+ if (selectedTool) {
631
+ return selectedTool;
632
+ }
633
+ if (!isInteractive) {
634
+ return 'all';
635
+ }
636
+ if (!promptTool) {
637
+ throw new Error('Interactive MCP install selection requires a prompt handler.');
638
+ }
639
+ const supportedTools = service.getSupportedTools();
640
+ const detectedTools = await service.detectInstalledTools();
641
+ return promptTool({
642
+ message: t('commands.mcpInstall.selectTool'),
643
+ choices: buildMcpInstallToolChoices(supportedTools, detectedTools, t),
644
+ });
645
+ }
646
+ //# sourceMappingURL=mcpInstallService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpInstallService.js","sourceRoot":"","sources":["../../../src/services/cli/mcpInstallService.ts"],"names":[],"mappings":"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"}