@dotcontext/cli 0.8.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 (797) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +566 -0
  3. package/dist/generators/agents/agentConfig.d.ts +4 -0
  4. package/dist/generators/agents/agentConfig.d.ts.map +1 -0
  5. package/dist/generators/agents/agentConfig.js +180 -0
  6. package/dist/generators/agents/agentConfig.js.map +1 -0
  7. package/dist/generators/agents/agentGenerator.d.ts +36 -0
  8. package/dist/generators/agents/agentGenerator.d.ts.map +1 -0
  9. package/dist/generators/agents/agentGenerator.js +304 -0
  10. package/dist/generators/agents/agentGenerator.js.map +1 -0
  11. package/dist/generators/agents/agentTypes.d.ts +4 -0
  12. package/dist/generators/agents/agentTypes.d.ts.map +1 -0
  13. package/dist/generators/agents/agentTypes.js +25 -0
  14. package/dist/generators/agents/agentTypes.js.map +1 -0
  15. package/dist/generators/agents/index.d.ts +4 -0
  16. package/dist/generators/agents/index.d.ts.map +1 -0
  17. package/dist/generators/agents/index.js +12 -0
  18. package/dist/generators/agents/index.js.map +1 -0
  19. package/dist/generators/agents/templates/index.d.ts +3 -0
  20. package/dist/generators/agents/templates/index.d.ts.map +1 -0
  21. package/dist/generators/agents/templates/index.js +6 -0
  22. package/dist/generators/agents/templates/index.js.map +1 -0
  23. package/dist/generators/agents/templates/indexTemplate.d.ts +3 -0
  24. package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -0
  25. package/dist/generators/agents/templates/indexTemplate.js +36 -0
  26. package/dist/generators/agents/templates/indexTemplate.js.map +1 -0
  27. package/dist/generators/agents/templates/types.d.ts +22 -0
  28. package/dist/generators/agents/templates/types.d.ts.map +1 -0
  29. package/dist/generators/agents/templates/types.js +3 -0
  30. package/dist/generators/agents/templates/types.js.map +1 -0
  31. package/dist/generators/documentation/codebaseMapGenerator.d.ts +143 -0
  32. package/dist/generators/documentation/codebaseMapGenerator.d.ts.map +1 -0
  33. package/dist/generators/documentation/codebaseMapGenerator.js +666 -0
  34. package/dist/generators/documentation/codebaseMapGenerator.js.map +1 -0
  35. package/dist/generators/documentation/documentationGenerator.d.ts +22 -0
  36. package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -0
  37. package/dist/generators/documentation/documentationGenerator.js +263 -0
  38. package/dist/generators/documentation/documentationGenerator.js.map +1 -0
  39. package/dist/generators/documentation/guideRegistry.d.ts +6 -0
  40. package/dist/generators/documentation/guideRegistry.d.ts.map +1 -0
  41. package/dist/generators/documentation/guideRegistry.js +74 -0
  42. package/dist/generators/documentation/guideRegistry.js.map +1 -0
  43. package/dist/generators/documentation/index.d.ts +4 -0
  44. package/dist/generators/documentation/index.d.ts.map +1 -0
  45. package/dist/generators/documentation/index.js +8 -0
  46. package/dist/generators/documentation/index.js.map +1 -0
  47. package/dist/generators/documentation/templates/common.d.ts +42 -0
  48. package/dist/generators/documentation/templates/common.d.ts.map +1 -0
  49. package/dist/generators/documentation/templates/common.js +194 -0
  50. package/dist/generators/documentation/templates/common.js.map +1 -0
  51. package/dist/generators/documentation/templates/index.d.ts +3 -0
  52. package/dist/generators/documentation/templates/index.d.ts.map +1 -0
  53. package/dist/generators/documentation/templates/index.js +6 -0
  54. package/dist/generators/documentation/templates/index.js.map +1 -0
  55. package/dist/generators/documentation/templates/indexTemplate.d.ts +3 -0
  56. package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -0
  57. package/dist/generators/documentation/templates/indexTemplate.js +25 -0
  58. package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
  59. package/dist/generators/documentation/templates/types.d.ts +24 -0
  60. package/dist/generators/documentation/templates/types.d.ts.map +1 -0
  61. package/dist/generators/documentation/templates/types.js +3 -0
  62. package/dist/generators/documentation/templates/types.js.map +1 -0
  63. package/dist/generators/plans/index.d.ts +2 -0
  64. package/dist/generators/plans/index.d.ts.map +1 -0
  65. package/dist/generators/plans/index.js +6 -0
  66. package/dist/generators/plans/index.js.map +1 -0
  67. package/dist/generators/plans/planGenerator.d.ts +26 -0
  68. package/dist/generators/plans/planGenerator.d.ts.map +1 -0
  69. package/dist/generators/plans/planGenerator.js +137 -0
  70. package/dist/generators/plans/planGenerator.js.map +1 -0
  71. package/dist/generators/plans/templates/indexTemplate.d.ts +3 -0
  72. package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -0
  73. package/dist/generators/plans/templates/indexTemplate.js +28 -0
  74. package/dist/generators/plans/templates/indexTemplate.js.map +1 -0
  75. package/dist/generators/plans/templates/planTemplate.d.ts +14 -0
  76. package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -0
  77. package/dist/generators/plans/templates/planTemplate.js +270 -0
  78. package/dist/generators/plans/templates/planTemplate.js.map +1 -0
  79. package/dist/generators/plans/templates/types.d.ts +29 -0
  80. package/dist/generators/plans/templates/types.d.ts.map +1 -0
  81. package/dist/generators/plans/templates/types.js +3 -0
  82. package/dist/generators/plans/templates/types.js.map +1 -0
  83. package/dist/generators/shared/contextGenerator.d.ts +7 -0
  84. package/dist/generators/shared/contextGenerator.d.ts.map +1 -0
  85. package/dist/generators/shared/contextGenerator.js +13 -0
  86. package/dist/generators/shared/contextGenerator.js.map +1 -0
  87. package/dist/generators/shared/directoryTemplateHelpers.d.ts +2 -0
  88. package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +1 -0
  89. package/dist/generators/shared/directoryTemplateHelpers.js +12 -0
  90. package/dist/generators/shared/directoryTemplateHelpers.js.map +1 -0
  91. package/dist/generators/shared/generatorUtils.d.ts +16 -0
  92. package/dist/generators/shared/generatorUtils.d.ts.map +1 -0
  93. package/dist/generators/shared/generatorUtils.js +116 -0
  94. package/dist/generators/shared/generatorUtils.js.map +1 -0
  95. package/dist/generators/shared/index.d.ts +5 -0
  96. package/dist/generators/shared/index.d.ts.map +1 -0
  97. package/dist/generators/shared/index.js +26 -0
  98. package/dist/generators/shared/index.js.map +1 -0
  99. package/dist/generators/shared/scaffoldStructures.d.ts +13 -0
  100. package/dist/generators/shared/scaffoldStructures.d.ts.map +1 -0
  101. package/dist/generators/shared/scaffoldStructures.js +30 -0
  102. package/dist/generators/shared/scaffoldStructures.js.map +1 -0
  103. package/dist/generators/shared/structures/agents/definitions.d.ts +18 -0
  104. package/dist/generators/shared/structures/agents/definitions.d.ts.map +1 -0
  105. package/dist/generators/shared/structures/agents/definitions.js +561 -0
  106. package/dist/generators/shared/structures/agents/definitions.js.map +1 -0
  107. package/dist/generators/shared/structures/agents/factory.d.ts +25 -0
  108. package/dist/generators/shared/structures/agents/factory.d.ts.map +1 -0
  109. package/dist/generators/shared/structures/agents/factory.js +138 -0
  110. package/dist/generators/shared/structures/agents/factory.js.map +1 -0
  111. package/dist/generators/shared/structures/agents/index.d.ts +6 -0
  112. package/dist/generators/shared/structures/agents/index.d.ts.map +1 -0
  113. package/dist/generators/shared/structures/agents/index.js +24 -0
  114. package/dist/generators/shared/structures/agents/index.js.map +1 -0
  115. package/dist/generators/shared/structures/documentation/apiReference.d.ts +3 -0
  116. package/dist/generators/shared/structures/documentation/apiReference.d.ts.map +1 -0
  117. package/dist/generators/shared/structures/documentation/apiReference.js +100 -0
  118. package/dist/generators/shared/structures/documentation/apiReference.js.map +1 -0
  119. package/dist/generators/shared/structures/documentation/architecture.d.ts +3 -0
  120. package/dist/generators/shared/structures/documentation/architecture.d.ts.map +1 -0
  121. package/dist/generators/shared/structures/documentation/architecture.js +176 -0
  122. package/dist/generators/shared/structures/documentation/architecture.js.map +1 -0
  123. package/dist/generators/shared/structures/documentation/dataFlow.d.ts +3 -0
  124. package/dist/generators/shared/structures/documentation/dataFlow.d.ts.map +1 -0
  125. package/dist/generators/shared/structures/documentation/dataFlow.js +107 -0
  126. package/dist/generators/shared/structures/documentation/dataFlow.js.map +1 -0
  127. package/dist/generators/shared/structures/documentation/glossary.d.ts +3 -0
  128. package/dist/generators/shared/structures/documentation/glossary.d.ts.map +1 -0
  129. package/dist/generators/shared/structures/documentation/glossary.js +91 -0
  130. package/dist/generators/shared/structures/documentation/glossary.js.map +1 -0
  131. package/dist/generators/shared/structures/documentation/index.d.ts +16 -0
  132. package/dist/generators/shared/structures/documentation/index.d.ts.map +1 -0
  133. package/dist/generators/shared/structures/documentation/index.js +31 -0
  134. package/dist/generators/shared/structures/documentation/index.js.map +1 -0
  135. package/dist/generators/shared/structures/documentation/migration.d.ts +3 -0
  136. package/dist/generators/shared/structures/documentation/migration.d.ts.map +1 -0
  137. package/dist/generators/shared/structures/documentation/migration.js +113 -0
  138. package/dist/generators/shared/structures/documentation/migration.js.map +1 -0
  139. package/dist/generators/shared/structures/documentation/onboarding.d.ts +3 -0
  140. package/dist/generators/shared/structures/documentation/onboarding.d.ts.map +1 -0
  141. package/dist/generators/shared/structures/documentation/onboarding.js +99 -0
  142. package/dist/generators/shared/structures/documentation/onboarding.js.map +1 -0
  143. package/dist/generators/shared/structures/documentation/projectOverview.d.ts +3 -0
  144. package/dist/generators/shared/structures/documentation/projectOverview.d.ts.map +1 -0
  145. package/dist/generators/shared/structures/documentation/projectOverview.js +163 -0
  146. package/dist/generators/shared/structures/documentation/projectOverview.js.map +1 -0
  147. package/dist/generators/shared/structures/documentation/security.d.ts +3 -0
  148. package/dist/generators/shared/structures/documentation/security.d.ts.map +1 -0
  149. package/dist/generators/shared/structures/documentation/security.js +100 -0
  150. package/dist/generators/shared/structures/documentation/security.js.map +1 -0
  151. package/dist/generators/shared/structures/documentation/testing.d.ts +3 -0
  152. package/dist/generators/shared/structures/documentation/testing.d.ts.map +1 -0
  153. package/dist/generators/shared/structures/documentation/testing.js +130 -0
  154. package/dist/generators/shared/structures/documentation/testing.js.map +1 -0
  155. package/dist/generators/shared/structures/documentation/tooling.d.ts +3 -0
  156. package/dist/generators/shared/structures/documentation/tooling.d.ts.map +1 -0
  157. package/dist/generators/shared/structures/documentation/tooling.js +114 -0
  158. package/dist/generators/shared/structures/documentation/tooling.js.map +1 -0
  159. package/dist/generators/shared/structures/documentation/troubleshooting.d.ts +3 -0
  160. package/dist/generators/shared/structures/documentation/troubleshooting.d.ts.map +1 -0
  161. package/dist/generators/shared/structures/documentation/troubleshooting.js +91 -0
  162. package/dist/generators/shared/structures/documentation/troubleshooting.js.map +1 -0
  163. package/dist/generators/shared/structures/documentation/workflow.d.ts +3 -0
  164. package/dist/generators/shared/structures/documentation/workflow.d.ts.map +1 -0
  165. package/dist/generators/shared/structures/documentation/workflow.js +116 -0
  166. package/dist/generators/shared/structures/documentation/workflow.js.map +1 -0
  167. package/dist/generators/shared/structures/index.d.ts +15 -0
  168. package/dist/generators/shared/structures/index.d.ts.map +1 -0
  169. package/dist/generators/shared/structures/index.js +37 -0
  170. package/dist/generators/shared/structures/index.js.map +1 -0
  171. package/dist/generators/shared/structures/plans/index.d.ts +5 -0
  172. package/dist/generators/shared/structures/plans/index.d.ts.map +1 -0
  173. package/dist/generators/shared/structures/plans/index.js +9 -0
  174. package/dist/generators/shared/structures/plans/index.js.map +1 -0
  175. package/dist/generators/shared/structures/plans/planStructure.d.ts +6 -0
  176. package/dist/generators/shared/structures/plans/planStructure.d.ts.map +1 -0
  177. package/dist/generators/shared/structures/plans/planStructure.js +65 -0
  178. package/dist/generators/shared/structures/plans/planStructure.js.map +1 -0
  179. package/dist/generators/shared/structures/registry.d.ts +18 -0
  180. package/dist/generators/shared/structures/registry.d.ts.map +1 -0
  181. package/dist/generators/shared/structures/registry.js +104 -0
  182. package/dist/generators/shared/structures/registry.js.map +1 -0
  183. package/dist/generators/shared/structures/serialization.d.ts +15 -0
  184. package/dist/generators/shared/structures/serialization.d.ts.map +1 -0
  185. package/dist/generators/shared/structures/serialization.js +124 -0
  186. package/dist/generators/shared/structures/serialization.js.map +1 -0
  187. package/dist/generators/shared/structures/skills/definitions.d.ts +25 -0
  188. package/dist/generators/shared/structures/skills/definitions.d.ts.map +1 -0
  189. package/dist/generators/shared/structures/skills/definitions.js +427 -0
  190. package/dist/generators/shared/structures/skills/definitions.js.map +1 -0
  191. package/dist/generators/shared/structures/skills/factory.d.ts +18 -0
  192. package/dist/generators/shared/structures/skills/factory.d.ts.map +1 -0
  193. package/dist/generators/shared/structures/skills/factory.js +75 -0
  194. package/dist/generators/shared/structures/skills/factory.js.map +1 -0
  195. package/dist/generators/shared/structures/skills/index.d.ts +6 -0
  196. package/dist/generators/shared/structures/skills/index.d.ts.map +1 -0
  197. package/dist/generators/shared/structures/skills/index.js +30 -0
  198. package/dist/generators/shared/structures/skills/index.js.map +1 -0
  199. package/dist/generators/shared/structures/types.d.ts +61 -0
  200. package/dist/generators/shared/structures/types.d.ts.map +1 -0
  201. package/dist/generators/shared/structures/types.js +6 -0
  202. package/dist/generators/shared/structures/types.js.map +1 -0
  203. package/dist/generators/shared/structures/validation.d.ts +13 -0
  204. package/dist/generators/shared/structures/validation.d.ts.map +1 -0
  205. package/dist/generators/shared/structures/validation.js +51 -0
  206. package/dist/generators/shared/structures/validation.js.map +1 -0
  207. package/dist/generators/skills/index.d.ts +7 -0
  208. package/dist/generators/skills/index.d.ts.map +1 -0
  209. package/dist/generators/skills/index.js +15 -0
  210. package/dist/generators/skills/index.js.map +1 -0
  211. package/dist/generators/skills/skillGenerator.d.ts +58 -0
  212. package/dist/generators/skills/skillGenerator.d.ts.map +1 -0
  213. package/dist/generators/skills/skillGenerator.js +158 -0
  214. package/dist/generators/skills/skillGenerator.js.map +1 -0
  215. package/dist/generators/skills/templates/indexTemplate.d.ts +13 -0
  216. package/dist/generators/skills/templates/indexTemplate.d.ts.map +1 -0
  217. package/dist/generators/skills/templates/indexTemplate.js +102 -0
  218. package/dist/generators/skills/templates/indexTemplate.js.map +1 -0
  219. package/dist/generators/skills/templates/skillTemplate.d.ts +30 -0
  220. package/dist/generators/skills/templates/skillTemplate.d.ts.map +1 -0
  221. package/dist/generators/skills/templates/skillTemplate.js +95 -0
  222. package/dist/generators/skills/templates/skillTemplate.js.map +1 -0
  223. package/dist/index.d.ts +3 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +1179 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/prompts/defaults.d.ts +8 -0
  228. package/dist/prompts/defaults.d.ts.map +1 -0
  229. package/dist/prompts/defaults.js +108 -0
  230. package/dist/prompts/defaults.js.map +1 -0
  231. package/dist/services/ai/aiSdkClient.d.ts +67 -0
  232. package/dist/services/ai/aiSdkClient.d.ts.map +1 -0
  233. package/dist/services/ai/aiSdkClient.js +143 -0
  234. package/dist/services/ai/aiSdkClient.js.map +1 -0
  235. package/dist/services/ai/index.d.ts +5 -0
  236. package/dist/services/ai/index.d.ts.map +1 -0
  237. package/dist/services/ai/index.js +40 -0
  238. package/dist/services/ai/index.js.map +1 -0
  239. package/dist/services/ai/providerFactory.d.ts +35 -0
  240. package/dist/services/ai/providerFactory.d.ts.map +1 -0
  241. package/dist/services/ai/providerFactory.js +107 -0
  242. package/dist/services/ai/providerFactory.js.map +1 -0
  243. package/dist/services/ai/schemas.d.ts +557 -0
  244. package/dist/services/ai/schemas.d.ts.map +1 -0
  245. package/dist/services/ai/schemas.js +357 -0
  246. package/dist/services/ai/schemas.js.map +1 -0
  247. package/dist/services/ai/toolRegistry.d.ts +27 -0
  248. package/dist/services/ai/toolRegistry.d.ts.map +1 -0
  249. package/dist/services/ai/toolRegistry.js +151 -0
  250. package/dist/services/ai/toolRegistry.js.map +1 -0
  251. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts +33 -0
  252. package/dist/services/ai/tools/analyzeSymbolsTool.d.ts.map +1 -0
  253. package/dist/services/ai/tools/analyzeSymbolsTool.js +57 -0
  254. package/dist/services/ai/tools/analyzeSymbolsTool.js.map +1 -0
  255. package/dist/services/ai/tools/checkScaffoldingTool.d.ts +18 -0
  256. package/dist/services/ai/tools/checkScaffoldingTool.d.ts.map +1 -0
  257. package/dist/services/ai/tools/checkScaffoldingTool.js +89 -0
  258. package/dist/services/ai/tools/checkScaffoldingTool.js.map +1 -0
  259. package/dist/services/ai/tools/fillScaffoldingTool.d.ts +124 -0
  260. package/dist/services/ai/tools/fillScaffoldingTool.d.ts.map +1 -0
  261. package/dist/services/ai/tools/fillScaffoldingTool.js +397 -0
  262. package/dist/services/ai/tools/fillScaffoldingTool.js.map +1 -0
  263. package/dist/services/ai/tools/getCodebaseMapTool.d.ts +17 -0
  264. package/dist/services/ai/tools/getCodebaseMapTool.d.ts.map +1 -0
  265. package/dist/services/ai/tools/getCodebaseMapTool.js +122 -0
  266. package/dist/services/ai/tools/getCodebaseMapTool.js.map +1 -0
  267. package/dist/services/ai/tools/getFileStructureTool.d.ts +29 -0
  268. package/dist/services/ai/tools/getFileStructureTool.d.ts.map +1 -0
  269. package/dist/services/ai/tools/getFileStructureTool.js +48 -0
  270. package/dist/services/ai/tools/getFileStructureTool.js.map +1 -0
  271. package/dist/services/ai/tools/index.d.ts +21 -0
  272. package/dist/services/ai/tools/index.d.ts.map +1 -0
  273. package/dist/services/ai/tools/index.js +75 -0
  274. package/dist/services/ai/tools/index.js.map +1 -0
  275. package/dist/services/ai/tools/initializeContextTool.d.ts +135 -0
  276. package/dist/services/ai/tools/initializeContextTool.d.ts.map +1 -0
  277. package/dist/services/ai/tools/initializeContextTool.js +447 -0
  278. package/dist/services/ai/tools/initializeContextTool.js.map +1 -0
  279. package/dist/services/ai/tools/listFilesTool.d.ts +18 -0
  280. package/dist/services/ai/tools/listFilesTool.d.ts.map +1 -0
  281. package/dist/services/ai/tools/listFilesTool.js +34 -0
  282. package/dist/services/ai/tools/listFilesTool.js.map +1 -0
  283. package/dist/services/ai/tools/readFileTool.d.ts +17 -0
  284. package/dist/services/ai/tools/readFileTool.d.ts.map +1 -0
  285. package/dist/services/ai/tools/readFileTool.js +63 -0
  286. package/dist/services/ai/tools/readFileTool.js.map +1 -0
  287. package/dist/services/ai/tools/scaffoldPlanTool.d.ts +41 -0
  288. package/dist/services/ai/tools/scaffoldPlanTool.d.ts.map +1 -0
  289. package/dist/services/ai/tools/scaffoldPlanTool.js +183 -0
  290. package/dist/services/ai/tools/scaffoldPlanTool.js.map +1 -0
  291. package/dist/services/ai/tools/searchCodeTool.d.ts +25 -0
  292. package/dist/services/ai/tools/searchCodeTool.d.ts.map +1 -0
  293. package/dist/services/ai/tools/searchCodeTool.js +96 -0
  294. package/dist/services/ai/tools/searchCodeTool.js.map +1 -0
  295. package/dist/services/autoFill/autoFillService.d.ts +52 -0
  296. package/dist/services/autoFill/autoFillService.d.ts.map +1 -0
  297. package/dist/services/autoFill/autoFillService.js +473 -0
  298. package/dist/services/autoFill/autoFillService.js.map +1 -0
  299. package/dist/services/autoFill/index.d.ts +2 -0
  300. package/dist/services/autoFill/index.d.ts.map +1 -0
  301. package/dist/services/autoFill/index.js +6 -0
  302. package/dist/services/autoFill/index.js.map +1 -0
  303. package/dist/services/baseLLMClient.d.ts +12 -0
  304. package/dist/services/baseLLMClient.d.ts.map +1 -0
  305. package/dist/services/baseLLMClient.js +80 -0
  306. package/dist/services/baseLLMClient.js.map +1 -0
  307. package/dist/services/export/contextExportService.d.ts +45 -0
  308. package/dist/services/export/contextExportService.d.ts.map +1 -0
  309. package/dist/services/export/contextExportService.js +161 -0
  310. package/dist/services/export/contextExportService.js.map +1 -0
  311. package/dist/services/export/exportRulesService.d.ts +76 -0
  312. package/dist/services/export/exportRulesService.d.ts.map +1 -0
  313. package/dist/services/export/exportRulesService.js +306 -0
  314. package/dist/services/export/exportRulesService.js.map +1 -0
  315. package/dist/services/export/index.d.ts +7 -0
  316. package/dist/services/export/index.d.ts.map +1 -0
  317. package/dist/services/export/index.js +12 -0
  318. package/dist/services/export/index.js.map +1 -0
  319. package/dist/services/export/skillExportService.d.ts +69 -0
  320. package/dist/services/export/skillExportService.d.ts.map +1 -0
  321. package/dist/services/export/skillExportService.js +262 -0
  322. package/dist/services/export/skillExportService.js.map +1 -0
  323. package/dist/services/import/agentsDetector.d.ts +12 -0
  324. package/dist/services/import/agentsDetector.d.ts.map +1 -0
  325. package/dist/services/import/agentsDetector.js +183 -0
  326. package/dist/services/import/agentsDetector.js.map +1 -0
  327. package/dist/services/import/importAgentsService.d.ts +14 -0
  328. package/dist/services/import/importAgentsService.d.ts.map +1 -0
  329. package/dist/services/import/importAgentsService.js +194 -0
  330. package/dist/services/import/importAgentsService.js.map +1 -0
  331. package/dist/services/import/importRulesService.d.ts +17 -0
  332. package/dist/services/import/importRulesService.d.ts.map +1 -0
  333. package/dist/services/import/importRulesService.js +221 -0
  334. package/dist/services/import/importRulesService.js.map +1 -0
  335. package/dist/services/import/index.d.ts +7 -0
  336. package/dist/services/import/index.d.ts.map +1 -0
  337. package/dist/services/import/index.js +28 -0
  338. package/dist/services/import/index.js.map +1 -0
  339. package/dist/services/import/presets.d.ts +20 -0
  340. package/dist/services/import/presets.d.ts.map +1 -0
  341. package/dist/services/import/presets.js +56 -0
  342. package/dist/services/import/presets.js.map +1 -0
  343. package/dist/services/import/rulesDetector.d.ts +16 -0
  344. package/dist/services/import/rulesDetector.d.ts.map +1 -0
  345. package/dist/services/import/rulesDetector.js +278 -0
  346. package/dist/services/import/rulesDetector.js.map +1 -0
  347. package/dist/services/import/types.d.ts +72 -0
  348. package/dist/services/import/types.d.ts.map +1 -0
  349. package/dist/services/import/types.js +3 -0
  350. package/dist/services/import/types.js.map +1 -0
  351. package/dist/services/mcp/actionLogger.d.ts +19 -0
  352. package/dist/services/mcp/actionLogger.d.ts.map +1 -0
  353. package/dist/services/mcp/actionLogger.js +128 -0
  354. package/dist/services/mcp/actionLogger.js.map +1 -0
  355. package/dist/services/mcp/gateway/agent.d.ts +17 -0
  356. package/dist/services/mcp/gateway/agent.d.ts.map +1 -0
  357. package/dist/services/mcp/gateway/agent.js +147 -0
  358. package/dist/services/mcp/gateway/agent.js.map +1 -0
  359. package/dist/services/mcp/gateway/context.d.ts +21 -0
  360. package/dist/services/mcp/gateway/context.d.ts.map +1 -0
  361. package/dist/services/mcp/gateway/context.js +249 -0
  362. package/dist/services/mcp/gateway/context.js.map +1 -0
  363. package/dist/services/mcp/gateway/explore.d.ts +16 -0
  364. package/dist/services/mcp/gateway/explore.d.ts.map +1 -0
  365. package/dist/services/mcp/gateway/explore.js +60 -0
  366. package/dist/services/mcp/gateway/explore.js.map +1 -0
  367. package/dist/services/mcp/gateway/index.d.ts +24 -0
  368. package/dist/services/mcp/gateway/index.d.ts.map +1 -0
  369. package/dist/services/mcp/gateway/index.js +53 -0
  370. package/dist/services/mcp/gateway/index.js.map +1 -0
  371. package/dist/services/mcp/gateway/metrics.d.ts +56 -0
  372. package/dist/services/mcp/gateway/metrics.d.ts.map +1 -0
  373. package/dist/services/mcp/gateway/metrics.js +153 -0
  374. package/dist/services/mcp/gateway/metrics.js.map +1 -0
  375. package/dist/services/mcp/gateway/plan.d.ts +18 -0
  376. package/dist/services/mcp/gateway/plan.d.ts.map +1 -0
  377. package/dist/services/mcp/gateway/plan.js +273 -0
  378. package/dist/services/mcp/gateway/plan.js.map +1 -0
  379. package/dist/services/mcp/gateway/response.d.ts +45 -0
  380. package/dist/services/mcp/gateway/response.d.ts.map +1 -0
  381. package/dist/services/mcp/gateway/response.js +111 -0
  382. package/dist/services/mcp/gateway/response.js.map +1 -0
  383. package/dist/services/mcp/gateway/shared.d.ts +38 -0
  384. package/dist/services/mcp/gateway/shared.d.ts.map +1 -0
  385. package/dist/services/mcp/gateway/shared.js +39 -0
  386. package/dist/services/mcp/gateway/shared.js.map +1 -0
  387. package/dist/services/mcp/gateway/skill.d.ts +17 -0
  388. package/dist/services/mcp/gateway/skill.d.ts.map +1 -0
  389. package/dist/services/mcp/gateway/skill.js +323 -0
  390. package/dist/services/mcp/gateway/skill.js.map +1 -0
  391. package/dist/services/mcp/gateway/sync.d.ts +17 -0
  392. package/dist/services/mcp/gateway/sync.d.ts.map +1 -0
  393. package/dist/services/mcp/gateway/sync.js +219 -0
  394. package/dist/services/mcp/gateway/sync.js.map +1 -0
  395. package/dist/services/mcp/gateway/types.d.ts +116 -0
  396. package/dist/services/mcp/gateway/types.d.ts.map +1 -0
  397. package/dist/services/mcp/gateway/types.js +12 -0
  398. package/dist/services/mcp/gateway/types.js.map +1 -0
  399. package/dist/services/mcp/gateway/workflowAdvance.d.ts +25 -0
  400. package/dist/services/mcp/gateway/workflowAdvance.d.ts.map +1 -0
  401. package/dist/services/mcp/gateway/workflowAdvance.js +133 -0
  402. package/dist/services/mcp/gateway/workflowAdvance.js.map +1 -0
  403. package/dist/services/mcp/gateway/workflowInit.d.ts +28 -0
  404. package/dist/services/mcp/gateway/workflowInit.d.ts.map +1 -0
  405. package/dist/services/mcp/gateway/workflowInit.js +213 -0
  406. package/dist/services/mcp/gateway/workflowInit.js.map +1 -0
  407. package/dist/services/mcp/gateway/workflowManage.d.ts +31 -0
  408. package/dist/services/mcp/gateway/workflowManage.d.ts.map +1 -0
  409. package/dist/services/mcp/gateway/workflowManage.js +222 -0
  410. package/dist/services/mcp/gateway/workflowManage.js.map +1 -0
  411. package/dist/services/mcp/gateway/workflowStatus.d.ts +17 -0
  412. package/dist/services/mcp/gateway/workflowStatus.d.ts.map +1 -0
  413. package/dist/services/mcp/gateway/workflowStatus.js +91 -0
  414. package/dist/services/mcp/gateway/workflowStatus.js.map +1 -0
  415. package/dist/services/mcp/gatewayTools.d.ts +15 -0
  416. package/dist/services/mcp/gatewayTools.d.ts.map +1 -0
  417. package/dist/services/mcp/gatewayTools.js +38 -0
  418. package/dist/services/mcp/gatewayTools.js.map +1 -0
  419. package/dist/services/mcp/index.d.ts +9 -0
  420. package/dist/services/mcp/index.d.ts.map +1 -0
  421. package/dist/services/mcp/index.js +28 -0
  422. package/dist/services/mcp/index.js.map +1 -0
  423. package/dist/services/mcp/mcpInstallService.d.ts +56 -0
  424. package/dist/services/mcp/mcpInstallService.d.ts.map +1 -0
  425. package/dist/services/mcp/mcpInstallService.js +603 -0
  426. package/dist/services/mcp/mcpInstallService.js.map +1 -0
  427. package/dist/services/mcp/mcpServer.d.ts +101 -0
  428. package/dist/services/mcp/mcpServer.d.ts.map +1 -0
  429. package/dist/services/mcp/mcpServer.js +844 -0
  430. package/dist/services/mcp/mcpServer.js.map +1 -0
  431. package/dist/services/qa/index.d.ts +9 -0
  432. package/dist/services/qa/index.d.ts.map +1 -0
  433. package/dist/services/qa/index.js +15 -0
  434. package/dist/services/qa/index.js.map +1 -0
  435. package/dist/services/qa/patternInferer.d.ts +41 -0
  436. package/dist/services/qa/patternInferer.d.ts.map +1 -0
  437. package/dist/services/qa/patternInferer.js +366 -0
  438. package/dist/services/qa/patternInferer.js.map +1 -0
  439. package/dist/services/qa/qaService.d.ts +107 -0
  440. package/dist/services/qa/qaService.d.ts.map +1 -0
  441. package/dist/services/qa/qaService.js +874 -0
  442. package/dist/services/qa/qaService.js.map +1 -0
  443. package/dist/services/qa/topicDetector.d.ts +54 -0
  444. package/dist/services/qa/topicDetector.d.ts.map +1 -0
  445. package/dist/services/qa/topicDetector.js +306 -0
  446. package/dist/services/qa/topicDetector.js.map +1 -0
  447. package/dist/services/quickSync/index.d.ts +3 -0
  448. package/dist/services/quickSync/index.d.ts.map +1 -0
  449. package/dist/services/quickSync/index.js +7 -0
  450. package/dist/services/quickSync/index.js.map +1 -0
  451. package/dist/services/quickSync/quickSyncService.d.ts +70 -0
  452. package/dist/services/quickSync/quickSyncService.d.ts.map +1 -0
  453. package/dist/services/quickSync/quickSyncService.js +263 -0
  454. package/dist/services/quickSync/quickSyncService.js.map +1 -0
  455. package/dist/services/report/index.d.ts +3 -0
  456. package/dist/services/report/index.d.ts.map +1 -0
  457. package/dist/services/report/index.js +6 -0
  458. package/dist/services/report/index.js.map +1 -0
  459. package/dist/services/report/reportService.d.ts +131 -0
  460. package/dist/services/report/reportService.d.ts.map +1 -0
  461. package/dist/services/report/reportService.js +372 -0
  462. package/dist/services/report/reportService.js.map +1 -0
  463. package/dist/services/reverseSync/importSkillsService.d.ts +47 -0
  464. package/dist/services/reverseSync/importSkillsService.d.ts.map +1 -0
  465. package/dist/services/reverseSync/importSkillsService.js +362 -0
  466. package/dist/services/reverseSync/importSkillsService.js.map +1 -0
  467. package/dist/services/reverseSync/index.d.ts +12 -0
  468. package/dist/services/reverseSync/index.d.ts.map +1 -0
  469. package/dist/services/reverseSync/index.js +49 -0
  470. package/dist/services/reverseSync/index.js.map +1 -0
  471. package/dist/services/reverseSync/presets.d.ts +51 -0
  472. package/dist/services/reverseSync/presets.d.ts.map +1 -0
  473. package/dist/services/reverseSync/presets.js +77 -0
  474. package/dist/services/reverseSync/presets.js.map +1 -0
  475. package/dist/services/reverseSync/reverseQuickSyncService.d.ts +37 -0
  476. package/dist/services/reverseSync/reverseQuickSyncService.d.ts.map +1 -0
  477. package/dist/services/reverseSync/reverseQuickSyncService.js +265 -0
  478. package/dist/services/reverseSync/reverseQuickSyncService.js.map +1 -0
  479. package/dist/services/reverseSync/skillsDetector.d.ts +36 -0
  480. package/dist/services/reverseSync/skillsDetector.d.ts.map +1 -0
  481. package/dist/services/reverseSync/skillsDetector.js +287 -0
  482. package/dist/services/reverseSync/skillsDetector.js.map +1 -0
  483. package/dist/services/reverseSync/toolDetector.d.ts +36 -0
  484. package/dist/services/reverseSync/toolDetector.d.ts.map +1 -0
  485. package/dist/services/reverseSync/toolDetector.js +174 -0
  486. package/dist/services/reverseSync/toolDetector.js.map +1 -0
  487. package/dist/services/reverseSync/types.d.ts +203 -0
  488. package/dist/services/reverseSync/types.d.ts.map +1 -0
  489. package/dist/services/reverseSync/types.js +9 -0
  490. package/dist/services/reverseSync/types.js.map +1 -0
  491. package/dist/services/semantic/codebaseAnalyzer.d.ts +62 -0
  492. package/dist/services/semantic/codebaseAnalyzer.d.ts.map +1 -0
  493. package/dist/services/semantic/codebaseAnalyzer.js +1071 -0
  494. package/dist/services/semantic/codebaseAnalyzer.js.map +1 -0
  495. package/dist/services/semantic/contextBuilder.d.ts +86 -0
  496. package/dist/services/semantic/contextBuilder.d.ts.map +1 -0
  497. package/dist/services/semantic/contextBuilder.js +641 -0
  498. package/dist/services/semantic/contextBuilder.js.map +1 -0
  499. package/dist/services/semantic/contextCache.d.ts +67 -0
  500. package/dist/services/semantic/contextCache.d.ts.map +1 -0
  501. package/dist/services/semantic/contextCache.js +158 -0
  502. package/dist/services/semantic/contextCache.js.map +1 -0
  503. package/dist/services/semantic/index.d.ts +12 -0
  504. package/dist/services/semantic/index.d.ts.map +1 -0
  505. package/dist/services/semantic/index.js +33 -0
  506. package/dist/services/semantic/index.js.map +1 -0
  507. package/dist/services/semantic/lsp/index.d.ts +2 -0
  508. package/dist/services/semantic/lsp/index.d.ts.map +1 -0
  509. package/dist/services/semantic/lsp/index.js +6 -0
  510. package/dist/services/semantic/lsp/index.js.map +1 -0
  511. package/dist/services/semantic/lsp/lspLayer.d.ts +32 -0
  512. package/dist/services/semantic/lsp/lspLayer.d.ts.map +1 -0
  513. package/dist/services/semantic/lsp/lspLayer.js +378 -0
  514. package/dist/services/semantic/lsp/lspLayer.js.map +1 -0
  515. package/dist/services/semantic/treeSitter/index.d.ts +2 -0
  516. package/dist/services/semantic/treeSitter/index.d.ts.map +1 -0
  517. package/dist/services/semantic/treeSitter/index.js +6 -0
  518. package/dist/services/semantic/treeSitter/index.js.map +1 -0
  519. package/dist/services/semantic/treeSitter/treeSitterLayer.d.ts +37 -0
  520. package/dist/services/semantic/treeSitter/treeSitterLayer.d.ts.map +1 -0
  521. package/dist/services/semantic/treeSitter/treeSitterLayer.js +518 -0
  522. package/dist/services/semantic/treeSitter/treeSitterLayer.js.map +1 -0
  523. package/dist/services/semantic/types.d.ts +172 -0
  524. package/dist/services/semantic/types.d.ts.map +1 -0
  525. package/dist/services/semantic/types.js +33 -0
  526. package/dist/services/semantic/types.js.map +1 -0
  527. package/dist/services/shared/contentTypeRegistry.d.ts +66 -0
  528. package/dist/services/shared/contentTypeRegistry.d.ts.map +1 -0
  529. package/dist/services/shared/contentTypeRegistry.js +113 -0
  530. package/dist/services/shared/contentTypeRegistry.js.map +1 -0
  531. package/dist/services/shared/contextRootResolver.d.ts +57 -0
  532. package/dist/services/shared/contextRootResolver.d.ts.map +1 -0
  533. package/dist/services/shared/contextRootResolver.js +102 -0
  534. package/dist/services/shared/contextRootResolver.js.map +1 -0
  535. package/dist/services/shared/globPatterns.d.ts +48 -0
  536. package/dist/services/shared/globPatterns.d.ts.map +1 -0
  537. package/dist/services/shared/globPatterns.js +110 -0
  538. package/dist/services/shared/globPatterns.js.map +1 -0
  539. package/dist/services/shared/index.d.ts +13 -0
  540. package/dist/services/shared/index.d.ts.map +1 -0
  541. package/dist/services/shared/index.js +84 -0
  542. package/dist/services/shared/index.js.map +1 -0
  543. package/dist/services/shared/pathHelpers.d.ts +85 -0
  544. package/dist/services/shared/pathHelpers.d.ts.map +1 -0
  545. package/dist/services/shared/pathHelpers.js +187 -0
  546. package/dist/services/shared/pathHelpers.js.map +1 -0
  547. package/dist/services/shared/toolRegistry.d.ts +135 -0
  548. package/dist/services/shared/toolRegistry.d.ts.map +1 -0
  549. package/dist/services/shared/toolRegistry.js +545 -0
  550. package/dist/services/shared/toolRegistry.js.map +1 -0
  551. package/dist/services/shared/types.d.ts +68 -0
  552. package/dist/services/shared/types.d.ts.map +1 -0
  553. package/dist/services/shared/types.js +44 -0
  554. package/dist/services/shared/types.js.map +1 -0
  555. package/dist/services/shared/uiHelpers.d.ts +70 -0
  556. package/dist/services/shared/uiHelpers.d.ts.map +1 -0
  557. package/dist/services/shared/uiHelpers.js +131 -0
  558. package/dist/services/shared/uiHelpers.js.map +1 -0
  559. package/dist/services/stack/index.d.ts +6 -0
  560. package/dist/services/stack/index.d.ts.map +1 -0
  561. package/dist/services/stack/index.js +25 -0
  562. package/dist/services/stack/index.js.map +1 -0
  563. package/dist/services/stack/projectTypeClassifier.d.ts +59 -0
  564. package/dist/services/stack/projectTypeClassifier.d.ts.map +1 -0
  565. package/dist/services/stack/projectTypeClassifier.js +242 -0
  566. package/dist/services/stack/projectTypeClassifier.js.map +1 -0
  567. package/dist/services/stack/scaffoldFilter.d.ts +75 -0
  568. package/dist/services/stack/scaffoldFilter.d.ts.map +1 -0
  569. package/dist/services/stack/scaffoldFilter.js +222 -0
  570. package/dist/services/stack/scaffoldFilter.js.map +1 -0
  571. package/dist/services/stack/stackDetector.d.ts +43 -0
  572. package/dist/services/stack/stackDetector.d.ts.map +1 -0
  573. package/dist/services/stack/stackDetector.js +406 -0
  574. package/dist/services/stack/stackDetector.js.map +1 -0
  575. package/dist/services/state/index.d.ts +2 -0
  576. package/dist/services/state/index.d.ts.map +1 -0
  577. package/dist/services/state/index.js +6 -0
  578. package/dist/services/state/index.js.map +1 -0
  579. package/dist/services/state/stateDetector.d.ts +53 -0
  580. package/dist/services/state/stateDetector.d.ts.map +1 -0
  581. package/dist/services/state/stateDetector.js +189 -0
  582. package/dist/services/state/stateDetector.js.map +1 -0
  583. package/dist/services/sync/index.d.ts +6 -0
  584. package/dist/services/sync/index.d.ts.map +1 -0
  585. package/dist/services/sync/index.js +16 -0
  586. package/dist/services/sync/index.js.map +1 -0
  587. package/dist/services/sync/markdownReferenceHandler.d.ts +3 -0
  588. package/dist/services/sync/markdownReferenceHandler.d.ts.map +1 -0
  589. package/dist/services/sync/markdownReferenceHandler.js +133 -0
  590. package/dist/services/sync/markdownReferenceHandler.js.map +1 -0
  591. package/dist/services/sync/presets.d.ts +9 -0
  592. package/dist/services/sync/presets.d.ts.map +1 -0
  593. package/dist/services/sync/presets.js +52 -0
  594. package/dist/services/sync/presets.js.map +1 -0
  595. package/dist/services/sync/symlinkHandler.d.ts +7 -0
  596. package/dist/services/sync/symlinkHandler.d.ts.map +1 -0
  597. package/dist/services/sync/symlinkHandler.js +129 -0
  598. package/dist/services/sync/symlinkHandler.js.map +1 -0
  599. package/dist/services/sync/syncService.d.ts +23 -0
  600. package/dist/services/sync/syncService.d.ts.map +1 -0
  601. package/dist/services/sync/syncService.js +240 -0
  602. package/dist/services/sync/syncService.js.map +1 -0
  603. package/dist/services/sync/types.d.ts +62 -0
  604. package/dist/services/sync/types.d.ts.map +1 -0
  605. package/dist/services/sync/types.js +3 -0
  606. package/dist/services/sync/types.js.map +1 -0
  607. package/dist/services/workflow/autoAdvance.d.ts +38 -0
  608. package/dist/services/workflow/autoAdvance.d.ts.map +1 -0
  609. package/dist/services/workflow/autoAdvance.js +219 -0
  610. package/dist/services/workflow/autoAdvance.js.map +1 -0
  611. package/dist/services/workflow/index.d.ts +6 -0
  612. package/dist/services/workflow/index.d.ts.map +1 -0
  613. package/dist/services/workflow/index.js +11 -0
  614. package/dist/services/workflow/index.js.map +1 -0
  615. package/dist/services/workflow/workflowService.d.ts +151 -0
  616. package/dist/services/workflow/workflowService.d.ts.map +1 -0
  617. package/dist/services/workflow/workflowService.js +283 -0
  618. package/dist/services/workflow/workflowService.js.map +1 -0
  619. package/dist/types/scaffoldFrontmatter.d.ts +145 -0
  620. package/dist/types/scaffoldFrontmatter.d.ts.map +1 -0
  621. package/dist/types/scaffoldFrontmatter.js +172 -0
  622. package/dist/types/scaffoldFrontmatter.js.map +1 -0
  623. package/dist/types.d.ts +61 -0
  624. package/dist/types.d.ts.map +1 -0
  625. package/dist/types.js +3 -0
  626. package/dist/types.js.map +1 -0
  627. package/dist/utils/cliUI.d.ts +26 -0
  628. package/dist/utils/cliUI.d.ts.map +1 -0
  629. package/dist/utils/cliUI.js +216 -0
  630. package/dist/utils/cliUI.js.map +1 -0
  631. package/dist/utils/fileMapper.d.ts +13 -0
  632. package/dist/utils/fileMapper.d.ts.map +1 -0
  633. package/dist/utils/fileMapper.js +165 -0
  634. package/dist/utils/fileMapper.js.map +1 -0
  635. package/dist/utils/frontMatter.d.ts +104 -0
  636. package/dist/utils/frontMatter.d.ts.map +1 -0
  637. package/dist/utils/frontMatter.js +325 -0
  638. package/dist/utils/frontMatter.js.map +1 -0
  639. package/dist/utils/gitService.d.ts +76 -0
  640. package/dist/utils/gitService.d.ts.map +1 -0
  641. package/dist/utils/gitService.js +564 -0
  642. package/dist/utils/gitService.js.map +1 -0
  643. package/dist/utils/gitignoreManager.d.ts +61 -0
  644. package/dist/utils/gitignoreManager.d.ts.map +1 -0
  645. package/dist/utils/gitignoreManager.js +171 -0
  646. package/dist/utils/gitignoreManager.js.map +1 -0
  647. package/dist/utils/i18n.d.ts +530 -0
  648. package/dist/utils/i18n.d.ts.map +1 -0
  649. package/dist/utils/i18n.js +1179 -0
  650. package/dist/utils/i18n.js.map +1 -0
  651. package/dist/utils/pathSecurity.d.ts +55 -0
  652. package/dist/utils/pathSecurity.d.ts.map +1 -0
  653. package/dist/utils/pathSecurity.js +132 -0
  654. package/dist/utils/pathSecurity.js.map +1 -0
  655. package/dist/utils/prompts/configSummary.d.ts +7 -0
  656. package/dist/utils/prompts/configSummary.d.ts.map +1 -0
  657. package/dist/utils/prompts/configSummary.js +35 -0
  658. package/dist/utils/prompts/configSummary.js.map +1 -0
  659. package/dist/utils/prompts/index.d.ts +27 -0
  660. package/dist/utils/prompts/index.d.ts.map +1 -0
  661. package/dist/utils/prompts/index.js +114 -0
  662. package/dist/utils/prompts/index.js.map +1 -0
  663. package/dist/utils/prompts/smartDefaults.d.ts +15 -0
  664. package/dist/utils/prompts/smartDefaults.d.ts.map +1 -0
  665. package/dist/utils/prompts/smartDefaults.js +105 -0
  666. package/dist/utils/prompts/smartDefaults.js.map +1 -0
  667. package/dist/utils/prompts/types.d.ts +38 -0
  668. package/dist/utils/prompts/types.d.ts.map +1 -0
  669. package/dist/utils/prompts/types.js +3 -0
  670. package/dist/utils/prompts/types.js.map +1 -0
  671. package/dist/utils/splashScreen.d.ts +14 -0
  672. package/dist/utils/splashScreen.d.ts.map +1 -0
  673. package/dist/utils/splashScreen.js +106 -0
  674. package/dist/utils/splashScreen.js.map +1 -0
  675. package/dist/utils/theme.d.ts +69 -0
  676. package/dist/utils/theme.d.ts.map +1 -0
  677. package/dist/utils/theme.js +97 -0
  678. package/dist/utils/theme.js.map +1 -0
  679. package/dist/utils/themedPrompt.d.ts +46 -0
  680. package/dist/utils/themedPrompt.d.ts.map +1 -0
  681. package/dist/utils/themedPrompt.js +47 -0
  682. package/dist/utils/themedPrompt.js.map +1 -0
  683. package/dist/utils/versionChecker.d.ts +15 -0
  684. package/dist/utils/versionChecker.d.ts.map +1 -0
  685. package/dist/utils/versionChecker.js +49 -0
  686. package/dist/utils/versionChecker.js.map +1 -0
  687. package/dist/version.d.ts +8 -0
  688. package/dist/version.d.ts.map +1 -0
  689. package/dist/version.js +15 -0
  690. package/dist/version.js.map +1 -0
  691. package/dist/workflow/agents/agentRegistry.d.ts +82 -0
  692. package/dist/workflow/agents/agentRegistry.d.ts.map +1 -0
  693. package/dist/workflow/agents/agentRegistry.js +205 -0
  694. package/dist/workflow/agents/agentRegistry.js.map +1 -0
  695. package/dist/workflow/agents/index.d.ts +7 -0
  696. package/dist/workflow/agents/index.d.ts.map +1 -0
  697. package/dist/workflow/agents/index.js +14 -0
  698. package/dist/workflow/agents/index.js.map +1 -0
  699. package/dist/workflow/collaboration.d.ts +110 -0
  700. package/dist/workflow/collaboration.d.ts.map +1 -0
  701. package/dist/workflow/collaboration.js +301 -0
  702. package/dist/workflow/collaboration.js.map +1 -0
  703. package/dist/workflow/errors.d.ts +48 -0
  704. package/dist/workflow/errors.d.ts.map +1 -0
  705. package/dist/workflow/errors.js +52 -0
  706. package/dist/workflow/errors.js.map +1 -0
  707. package/dist/workflow/gates/gateChecker.d.ts +93 -0
  708. package/dist/workflow/gates/gateChecker.d.ts.map +1 -0
  709. package/dist/workflow/gates/gateChecker.js +197 -0
  710. package/dist/workflow/gates/gateChecker.js.map +1 -0
  711. package/dist/workflow/gates/index.d.ts +7 -0
  712. package/dist/workflow/gates/index.d.ts.map +1 -0
  713. package/dist/workflow/gates/index.js +13 -0
  714. package/dist/workflow/gates/index.js.map +1 -0
  715. package/dist/workflow/index.d.ts +27 -0
  716. package/dist/workflow/index.d.ts.map +1 -0
  717. package/dist/workflow/index.js +135 -0
  718. package/dist/workflow/index.js.map +1 -0
  719. package/dist/workflow/orchestration/agentOrchestrator.d.ts +68 -0
  720. package/dist/workflow/orchestration/agentOrchestrator.d.ts.map +1 -0
  721. package/dist/workflow/orchestration/agentOrchestrator.js +280 -0
  722. package/dist/workflow/orchestration/agentOrchestrator.js.map +1 -0
  723. package/dist/workflow/orchestration/documentLinker.d.ts +100 -0
  724. package/dist/workflow/orchestration/documentLinker.d.ts.map +1 -0
  725. package/dist/workflow/orchestration/documentLinker.js +266 -0
  726. package/dist/workflow/orchestration/documentLinker.js.map +1 -0
  727. package/dist/workflow/orchestration/index.d.ts +9 -0
  728. package/dist/workflow/orchestration/index.d.ts.map +1 -0
  729. package/dist/workflow/orchestration/index.js +25 -0
  730. package/dist/workflow/orchestration/index.js.map +1 -0
  731. package/dist/workflow/orchestrator.d.ts +188 -0
  732. package/dist/workflow/orchestrator.d.ts.map +1 -0
  733. package/dist/workflow/orchestrator.js +506 -0
  734. package/dist/workflow/orchestrator.js.map +1 -0
  735. package/dist/workflow/phases.d.ts +64 -0
  736. package/dist/workflow/phases.d.ts.map +1 -0
  737. package/dist/workflow/phases.js +151 -0
  738. package/dist/workflow/phases.js.map +1 -0
  739. package/dist/workflow/plans/index.d.ts +8 -0
  740. package/dist/workflow/plans/index.d.ts.map +1 -0
  741. package/dist/workflow/plans/index.js +27 -0
  742. package/dist/workflow/plans/index.js.map +1 -0
  743. package/dist/workflow/plans/planLinker.d.ts +195 -0
  744. package/dist/workflow/plans/planLinker.d.ts.map +1 -0
  745. package/dist/workflow/plans/planLinker.js +1018 -0
  746. package/dist/workflow/plans/planLinker.js.map +1 -0
  747. package/dist/workflow/plans/types.d.ts +231 -0
  748. package/dist/workflow/plans/types.d.ts.map +1 -0
  749. package/dist/workflow/plans/types.js +25 -0
  750. package/dist/workflow/plans/types.js.map +1 -0
  751. package/dist/workflow/prevcConfig.d.ts +27 -0
  752. package/dist/workflow/prevcConfig.d.ts.map +1 -0
  753. package/dist/workflow/prevcConfig.js +153 -0
  754. package/dist/workflow/prevcConfig.js.map +1 -0
  755. package/dist/workflow/roles.d.ts +50 -0
  756. package/dist/workflow/roles.d.ts.map +1 -0
  757. package/dist/workflow/roles.js +118 -0
  758. package/dist/workflow/roles.js.map +1 -0
  759. package/dist/workflow/scaling.d.ts +45 -0
  760. package/dist/workflow/scaling.d.ts.map +1 -0
  761. package/dist/workflow/scaling.js +215 -0
  762. package/dist/workflow/scaling.js.map +1 -0
  763. package/dist/workflow/skills/frontmatter.d.ts +23 -0
  764. package/dist/workflow/skills/frontmatter.d.ts.map +1 -0
  765. package/dist/workflow/skills/frontmatter.js +101 -0
  766. package/dist/workflow/skills/frontmatter.js.map +1 -0
  767. package/dist/workflow/skills/index.d.ts +10 -0
  768. package/dist/workflow/skills/index.d.ts.map +1 -0
  769. package/dist/workflow/skills/index.js +22 -0
  770. package/dist/workflow/skills/index.js.map +1 -0
  771. package/dist/workflow/skills/skillRegistry.d.ts +67 -0
  772. package/dist/workflow/skills/skillRegistry.d.ts.map +1 -0
  773. package/dist/workflow/skills/skillRegistry.js +276 -0
  774. package/dist/workflow/skills/skillRegistry.js.map +1 -0
  775. package/dist/workflow/skills/skillTemplates.d.ts +20 -0
  776. package/dist/workflow/skills/skillTemplates.d.ts.map +1 -0
  777. package/dist/workflow/skills/skillTemplates.js +111 -0
  778. package/dist/workflow/skills/skillTemplates.js.map +1 -0
  779. package/dist/workflow/skills/types.d.ts +72 -0
  780. package/dist/workflow/skills/types.d.ts.map +1 -0
  781. package/dist/workflow/skills/types.js +48 -0
  782. package/dist/workflow/skills/types.js.map +1 -0
  783. package/dist/workflow/status/statusManager.d.ts +137 -0
  784. package/dist/workflow/status/statusManager.d.ts.map +1 -0
  785. package/dist/workflow/status/statusManager.js +932 -0
  786. package/dist/workflow/status/statusManager.js.map +1 -0
  787. package/dist/workflow/status/templates.d.ts +49 -0
  788. package/dist/workflow/status/templates.d.ts.map +1 -0
  789. package/dist/workflow/status/templates.js +162 -0
  790. package/dist/workflow/status/templates.js.map +1 -0
  791. package/dist/workflow/types.d.ts +314 -0
  792. package/dist/workflow/types.d.ts.map +1 -0
  793. package/dist/workflow/types.js +24 -0
  794. package/dist/workflow/types.js.map +1 -0
  795. package/package.json +85 -0
  796. package/prompts/update_plan_prompt.md +41 -0
  797. package/prompts/update_scaffold_prompt.md +27 -0
@@ -0,0 +1,844 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Server - Model Context Protocol server for Claude Code integration
4
+ *
5
+ * Exposes 9 tools (5 consolidated gateways + 4 dedicated workflow tools) for
6
+ * reduced context and simpler tool selection for AI agents.
7
+ *
8
+ * Simplified workflow: context init → fillSingle → workflow-init
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.AIContextMCPServer = void 0;
45
+ exports.startMCPServer = startMCPServer;
46
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
47
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
48
+ const zod_1 = require("zod");
49
+ const path = __importStar(require("path"));
50
+ const fs = __importStar(require("fs-extra"));
51
+ const tools_1 = require("../ai/tools");
52
+ const pathSecurity_1 = require("../../utils/pathSecurity");
53
+ const contextBuilder_1 = require("../semantic/contextBuilder");
54
+ const contextCache_1 = require("../semantic/contextCache");
55
+ const version_1 = require("../../version");
56
+ const workflow_1 = require("../workflow");
57
+ const actionLogger_1 = require("./actionLogger");
58
+ const workflow_2 = require("../../workflow");
59
+ const gatewayTools_1 = require("./gatewayTools");
60
+ class AIContextMCPServer {
61
+ constructor(options = {}) {
62
+ this.transport = null;
63
+ this.initialRepoPath = null;
64
+ this.cachedRepoPath = null;
65
+ this.options = {
66
+ name: 'dotcontext',
67
+ verbose: false,
68
+ ...options
69
+ };
70
+ this.server = new mcp_js_1.McpServer({
71
+ name: this.options.name,
72
+ version: version_1.VERSION
73
+ });
74
+ // Support dependency injection for testing, with default fallback
75
+ this.contextBuilder = options.contextBuilder ?? new contextBuilder_1.SemanticContextBuilder();
76
+ this.contextCache = new contextCache_1.ContextCache();
77
+ // Initialize and cache the correct repo path
78
+ void this.initializeRepoPath();
79
+ this.registerGatewayTools();
80
+ this.registerResources();
81
+ }
82
+ /**
83
+ * Register tools: 5 consolidated gateways + 4 dedicated workflow tools
84
+ * Total: 9 tools for clear entry points and reduced AI cognitive load
85
+ *
86
+ * Project tools removed - use context({ action: "init" }) + workflow-init instead
87
+ *
88
+ * NOTE: repoPath is now determined dynamically via getRepoPath() at runtime,
89
+ * which uses smart initialization and client path caching.
90
+ */
91
+ registerGatewayTools() {
92
+ const wrap = (toolName, handler) => this.wrapWithActionLogging(toolName, handler);
93
+ // Gateway 1: explore - File and code exploration
94
+ this.server.registerTool('explore', {
95
+ description: `File and code exploration. Actions:
96
+ - read: Read file contents (params: filePath, encoding?)
97
+ - list: List files matching pattern (params: pattern, cwd?, ignore?)
98
+ - analyze: Analyze symbols in a file (params: filePath, symbolTypes?)
99
+ - search: Search code with regex (params: pattern, fileGlob?, maxResults?, cwd?)
100
+ - getStructure: Get directory structure (params: rootPath?, maxDepth?, includePatterns?)`,
101
+ inputSchema: {
102
+ action: zod_1.z.enum(['read', 'list', 'analyze', 'search', 'getStructure'])
103
+ .describe('Action to perform'),
104
+ filePath: zod_1.z.string().optional()
105
+ .describe('(read, analyze) File path to read or analyze'),
106
+ pattern: zod_1.z.string().optional()
107
+ .describe('(list, search) Glob pattern for list, regex pattern for search'),
108
+ cwd: zod_1.z.string().optional()
109
+ .describe('(list, search) Working directory'),
110
+ encoding: zod_1.z.enum(['utf-8', 'ascii', 'binary']).optional()
111
+ .describe('(read) File encoding'),
112
+ ignore: zod_1.z.array(zod_1.z.string()).optional()
113
+ .describe('(list) Patterns to ignore'),
114
+ symbolTypes: zod_1.z.array(zod_1.z.enum(['class', 'interface', 'function', 'type', 'enum'])).optional()
115
+ .describe('(analyze) Types of symbols to extract'),
116
+ fileGlob: zod_1.z.string().optional()
117
+ .describe('(search) Glob pattern to filter files'),
118
+ maxResults: zod_1.z.number().optional()
119
+ .describe('(search) Maximum results to return'),
120
+ rootPath: zod_1.z.string().optional()
121
+ .describe('(getStructure) Root path for structure'),
122
+ maxDepth: zod_1.z.number().optional()
123
+ .describe('(getStructure) Maximum directory depth'),
124
+ includePatterns: zod_1.z.array(zod_1.z.string()).optional()
125
+ .describe('(getStructure) Include patterns'),
126
+ }
127
+ }, wrap('explore', async (params) => {
128
+ // explore uses cwd for file operations, not repoPath for context resolution
129
+ return (0, gatewayTools_1.handleExplore)(params, { repoPath: this.getRepoPath() });
130
+ }));
131
+ // Gateway 2: context - Context scaffolding and semantic context
132
+ this.server.registerTool('context', {
133
+ description: `Context scaffolding and semantic context. Actions:
134
+ - check: Check if .context scaffolding exists (params: repoPath?)
135
+ - init: Initialize .context scaffolding (params: repoPath?, type?, outputDir?, semantic?, autoFill?, skipContentGeneration?)
136
+ - fill: Fill scaffolding with AI content (params: repoPath?, outputDir?, target?, offset?, limit?)
137
+ - fillSingle: Fill a single scaffold file (params: repoPath?, filePath)
138
+ - listToFill: List files that need filling (params: repoPath?, outputDir?, target?)
139
+ - getMap: Get codebase map section (params: repoPath?, section?)
140
+ - buildSemantic: Build semantic context (params: repoPath?, contextType?, targetFile?, options?)
141
+ - scaffoldPlan: Create a plan template (params: planName, repoPath?, title?, summary?, autoFill?)
142
+
143
+ **Important:** Agents should provide repoPath on the FIRST call, then it will be cached:
144
+ 1. First call: context({ action: "check", repoPath: "/path/to/project" })
145
+ 2. Subsequent calls can omit repoPath - it will use cached value from step 1
146
+ 3. After context init, call fillSingle for each pending file
147
+ 4. Call workflow-init to enable PREVC workflow (unless trivial change)`,
148
+ inputSchema: {
149
+ action: zod_1.z.enum(['check', 'init', 'fill', 'fillSingle', 'listToFill', 'getMap', 'buildSemantic', 'scaffoldPlan'])
150
+ .describe('Action to perform'),
151
+ repoPath: zod_1.z.string().optional()
152
+ .describe('Repository path (defaults to cwd)'),
153
+ outputDir: zod_1.z.string().optional()
154
+ .describe('Output directory (default: ./.context)'),
155
+ type: zod_1.z.enum(['docs', 'agents', 'both']).optional()
156
+ .describe('(init) Type of scaffolding to create'),
157
+ semantic: zod_1.z.boolean().optional()
158
+ .describe('(init, scaffoldPlan) Enable semantic analysis'),
159
+ include: zod_1.z.array(zod_1.z.string()).optional()
160
+ .describe('(init) Include patterns'),
161
+ exclude: zod_1.z.array(zod_1.z.string()).optional()
162
+ .describe('(init) Exclude patterns'),
163
+ autoFill: zod_1.z.boolean().optional()
164
+ .describe('(init, scaffoldPlan) Auto-fill with codebase content'),
165
+ skipContentGeneration: zod_1.z.boolean().optional()
166
+ .describe('(init) Skip pre-generating content'),
167
+ target: zod_1.z.enum(['docs', 'agents', 'plans', 'all']).optional()
168
+ .describe('(fill, listToFill) Which scaffolding to target'),
169
+ offset: zod_1.z.number().optional()
170
+ .describe('(fill) Skip first N files'),
171
+ limit: zod_1.z.number().optional()
172
+ .describe('(fill) Max files to return'),
173
+ filePath: zod_1.z.string().optional()
174
+ .describe('(fillSingle) Absolute path to scaffold file'),
175
+ section: zod_1.z.enum([
176
+ 'all', 'stack', 'structure', 'architecture', 'symbols',
177
+ 'symbols.classes', 'symbols.interfaces', 'symbols.functions',
178
+ 'symbols.types', 'symbols.enums', 'publicAPI', 'dependencies', 'stats'
179
+ ]).optional()
180
+ .describe('(getMap) Section to retrieve'),
181
+ contextType: zod_1.z.enum(['documentation', 'playbook', 'plan', 'compact']).optional()
182
+ .describe('(buildSemantic) Type of context to build'),
183
+ targetFile: zod_1.z.string().optional()
184
+ .describe('(buildSemantic) Target file for focused context'),
185
+ options: zod_1.z.object({
186
+ useLSP: zod_1.z.boolean().optional(),
187
+ maxContextLength: zod_1.z.number().optional(),
188
+ includeDocumentation: zod_1.z.boolean().optional(),
189
+ includeSignatures: zod_1.z.boolean().optional()
190
+ }).optional()
191
+ .describe('(buildSemantic) Builder options'),
192
+ planName: zod_1.z.string().optional()
193
+ .describe('(scaffoldPlan) Name of the plan'),
194
+ title: zod_1.z.string().optional()
195
+ .describe('(scaffoldPlan) Plan title'),
196
+ summary: zod_1.z.string().optional()
197
+ .describe('(scaffoldPlan) Plan summary/goal'),
198
+ }
199
+ }, wrap('context', async (params) => {
200
+ return (0, gatewayTools_1.handleContext)(params, { repoPath: this.getRepoPath(params.repoPath), contextBuilder: this.contextBuilder });
201
+ }));
202
+ // Dedicated Workflow Tools (split from consolidated workflow gateway)
203
+ // Tool 3a: workflow-init - Initialize PREVC workflow
204
+ this.server.registerTool('workflow-init', {
205
+ description: `Initialize a PREVC workflow for structured development.
206
+
207
+ **What it does:**
208
+ - Creates .context/workflow/ folder (automatically, if it doesn't exist)
209
+ - Initializes workflow status file with phase tracking
210
+ - Detects project scale and configures gates
211
+ - Sets up PREVC phases (Plan → Review → Execute → Verify → Complete)
212
+
213
+ **Prerequisites:**
214
+ - .context/ folder must exist (use context with action "init" first)
215
+ - Scaffolding files should be filled (use context with action "fillSingle")
216
+
217
+ **When to use:**
218
+ - Starting a new feature or bug fix after scaffolding is set up
219
+ - Need structured, phase-gated development
220
+ - Working on non-trivial changes
221
+
222
+ **Don't use if:**
223
+ - Making trivial changes (typo fixes, single-line edits)
224
+ - Just exploring/researching code
225
+ - User explicitly wants to skip workflow`,
226
+ inputSchema: {
227
+ name: zod_1.z.string().describe('Workflow/feature name (required)'),
228
+ description: zod_1.z.string().optional()
229
+ .describe('Task description for scale detection'),
230
+ scale: zod_1.z.enum(['QUICK', 'SMALL', 'MEDIUM', 'LARGE']).optional()
231
+ .describe(`Project scale - AI should evaluate based on task characteristics:
232
+
233
+ SCALE EVALUATION CRITERIA:
234
+ • QUICK: Single file changes, bug fixes, typos (~5 min)
235
+ - Phases: E → V only
236
+ - Example: "Fix typo in button text"
237
+
238
+ • SMALL: Simple features, no architecture changes (~15 min)
239
+ - Phases: P → E → V
240
+ - Example: "Add email validation to form"
241
+
242
+ • MEDIUM: Regular features with design decisions (~30 min)
243
+ - Phases: P → R → E → V
244
+ - Example: "Implement user profile page"
245
+
246
+ • LARGE: Complex features, systems, compliance (~1+ hour)
247
+ - Phases: P → R → E → V → C (full workflow)
248
+ - Examples: "Build OAuth system", "Add GDPR compliance"
249
+
250
+ GUIDANCE:
251
+ - Analyze task complexity, architectural impact, and review needs
252
+ - Use LARGE for security/compliance requirements
253
+ - When uncertain, prefer MEDIUM
254
+ - Omit scale only if unable to evaluate (auto-detect fallback)`),
255
+ autonomous: zod_1.z.boolean().optional()
256
+ .describe('Skip all workflow gates (default: scale-dependent)'),
257
+ require_plan: zod_1.z.boolean().optional()
258
+ .describe('Require plan before P→R'),
259
+ require_approval: zod_1.z.boolean().optional()
260
+ .describe('Require approval before R→E'),
261
+ archive_previous: zod_1.z.boolean().optional()
262
+ .describe('Archive existing workflow'),
263
+ }
264
+ }, wrap('workflow-init', async (params) => {
265
+ return (0, gatewayTools_1.handleWorkflowInit)(params, { repoPath: this.getRepoPath(params.repoPath) });
266
+ }));
267
+ // Tool 3b: workflow-status - Get current workflow status
268
+ this.server.registerTool('workflow-status', {
269
+ description: `Get current PREVC workflow status including phase, gates, and linked plans.
270
+
271
+ Returns: Current phase, all phase statuses, gate settings, linked plans, agent activity.`,
272
+ inputSchema: {
273
+ // No required parameters
274
+ }
275
+ }, wrap('workflow-status', async (params) => {
276
+ return (0, gatewayTools_1.handleWorkflowStatus)(params, { repoPath: this.getRepoPath(params.repoPath) });
277
+ }));
278
+ // Tool 3c: workflow-advance - Advance to next phase
279
+ this.server.registerTool('workflow-advance', {
280
+ description: `Advance workflow to the next PREVC phase (P→R→E→V→C).
281
+
282
+ Enforces gates:
283
+ - P→R: Requires plan if require_plan=true
284
+ - R→E: Requires approval if require_approval=true
285
+
286
+ Use force=true to bypass gates, or use workflow-manage({ action: 'setAutonomous' }).`,
287
+ inputSchema: {
288
+ outputs: zod_1.z.array(zod_1.z.string()).optional()
289
+ .describe('Artifact paths produced in current phase'),
290
+ force: zod_1.z.boolean().optional()
291
+ .describe('Force advancement even if gates block'),
292
+ }
293
+ }, wrap('workflow-advance', async (params) => {
294
+ return (0, gatewayTools_1.handleWorkflowAdvance)(params, { repoPath: this.getRepoPath(params.repoPath) });
295
+ }));
296
+ // Tool 3d: workflow-manage - Manage workflow operations
297
+ this.server.registerTool('workflow-manage', {
298
+ description: `Manage workflow operations: handoffs, collaboration, documents, gates, approvals.
299
+
300
+ Actions:
301
+ - handoff: Transfer work between agents (params: from, to, artifacts)
302
+ - collaborate: Start collaboration session (params: topic, participants?)
303
+ - createDoc: Create workflow document (params: type, docName)
304
+ - getGates: Check gate status
305
+ - approvePlan: Approve linked plan (params: planSlug?, approver?, notes?)
306
+ - setAutonomous: Toggle autonomous mode (params: enabled, reason?)`,
307
+ inputSchema: {
308
+ action: zod_1.z.enum(['handoff', 'collaborate', 'createDoc', 'getGates', 'approvePlan', 'setAutonomous'])
309
+ .describe('Action to perform'),
310
+ from: zod_1.z.string().optional()
311
+ .describe('(handoff) Agent handing off (e.g., feature-developer)'),
312
+ to: zod_1.z.string().optional()
313
+ .describe('(handoff) Agent receiving (e.g., code-reviewer)'),
314
+ artifacts: zod_1.z.array(zod_1.z.string()).optional()
315
+ .describe('(handoff) Artifacts to hand off'),
316
+ topic: zod_1.z.string().optional()
317
+ .describe('(collaborate) Collaboration topic'),
318
+ participants: zod_1.z.array(zod_1.z.enum(workflow_2.PREVC_ROLES)).optional()
319
+ .describe('(collaborate) Participating roles'),
320
+ type: zod_1.z.enum(['prd', 'tech-spec', 'architecture', 'adr', 'test-plan', 'changelog']).optional()
321
+ .describe('(createDoc) Document type'),
322
+ docName: zod_1.z.string().optional()
323
+ .describe('(createDoc) Document name'),
324
+ planSlug: zod_1.z.string().optional()
325
+ .describe('(approvePlan) Plan to approve'),
326
+ approver: zod_1.z.enum(workflow_2.PREVC_ROLES).optional()
327
+ .describe('(approvePlan) Approving role'),
328
+ notes: zod_1.z.string().optional()
329
+ .describe('(approvePlan) Approval notes'),
330
+ enabled: zod_1.z.boolean().optional()
331
+ .describe('(setAutonomous) Enable/disable'),
332
+ reason: zod_1.z.string().optional()
333
+ .describe('(setAutonomous) Reason for change'),
334
+ }
335
+ }, wrap('workflow-manage', async (params) => {
336
+ return (0, gatewayTools_1.handleWorkflowManage)(params, { repoPath: this.getRepoPath(params.repoPath) });
337
+ }));
338
+ // Gateway 5: sync - Import/export synchronization
339
+ this.server.registerTool('sync', {
340
+ description: `Import/export synchronization with AI tools. Actions:
341
+ - exportRules: Export rules to AI tools (params: preset?, force?, dryRun?)
342
+ - exportDocs: Export docs to AI tools (params: preset?, indexMode?, force?, dryRun?)
343
+ - exportAgents: Export agents to AI tools (params: preset?, mode?, force?, dryRun?)
344
+ - exportContext: Export all context (params: preset?, skipDocs?, skipAgents?, skipSkills?, docsIndexMode?, agentMode?, force?, dryRun?)
345
+ - exportSkills: Export skills to AI tools (params: preset?, includeBuiltIn?, force?)
346
+ - reverseSync: Import from AI tools to .context/ (params: skipRules?, skipAgents?, skipSkills?, mergeStrategy?, dryRun?, force?, addMetadata?)
347
+ - importDocs: Import docs from AI tools (params: autoDetect?, force?, dryRun?)
348
+ - importAgents: Import agents from AI tools (params: autoDetect?, force?, dryRun?)
349
+ - importSkills: Import skills from AI tools (params: autoDetect?, mergeStrategy?, force?, dryRun?)`,
350
+ inputSchema: {
351
+ action: zod_1.z.enum(['exportRules', 'exportDocs', 'exportAgents', 'exportContext', 'exportSkills', 'reverseSync', 'importDocs', 'importAgents', 'importSkills'])
352
+ .describe('Action to perform'),
353
+ preset: zod_1.z.string().optional()
354
+ .describe('Target AI tool preset'),
355
+ force: zod_1.z.boolean().optional()
356
+ .describe('Overwrite existing files'),
357
+ dryRun: zod_1.z.boolean().optional()
358
+ .describe('Preview without writing'),
359
+ indexMode: zod_1.z.enum(['readme', 'all']).optional()
360
+ .describe('(exportDocs) Index mode'),
361
+ mode: zod_1.z.enum(['symlink', 'markdown']).optional()
362
+ .describe('(exportAgents) Sync mode'),
363
+ skipDocs: zod_1.z.boolean().optional()
364
+ .describe('(exportContext) Skip docs'),
365
+ skipAgents: zod_1.z.boolean().optional()
366
+ .describe('(exportContext, reverseSync) Skip agents'),
367
+ skipSkills: zod_1.z.boolean().optional()
368
+ .describe('(exportContext, reverseSync) Skip skills'),
369
+ skipRules: zod_1.z.boolean().optional()
370
+ .describe('(reverseSync) Skip rules'),
371
+ docsIndexMode: zod_1.z.enum(['readme', 'all']).optional()
372
+ .describe('(exportContext) Docs index mode'),
373
+ agentMode: zod_1.z.enum(['symlink', 'markdown']).optional()
374
+ .describe('(exportContext) Agent sync mode'),
375
+ includeBuiltInSkills: zod_1.z.boolean().optional()
376
+ .describe('(exportContext) Include built-in skills'),
377
+ includeBuiltIn: zod_1.z.boolean().optional()
378
+ .describe('(exportSkills) Include built-in skills'),
379
+ mergeStrategy: zod_1.z.enum(['skip', 'overwrite', 'merge', 'rename']).optional()
380
+ .describe('(reverseSync, importSkills) Conflict handling'),
381
+ autoDetect: zod_1.z.boolean().optional()
382
+ .describe('(import*) Auto-detect files'),
383
+ addMetadata: zod_1.z.boolean().optional()
384
+ .describe('(reverseSync) Add frontmatter metadata'),
385
+ repoPath: zod_1.z.string().optional()
386
+ .describe('Repository path'),
387
+ }
388
+ }, wrap('sync', async (params) => {
389
+ return (0, gatewayTools_1.handleSync)(params, { repoPath: this.getRepoPath(params.repoPath) });
390
+ }));
391
+ // Gateway 6: plan - Plan management and execution tracking
392
+ this.server.registerTool('plan', {
393
+ description: `Plan management and execution tracking. Actions:
394
+ - link: Link plan to workflow (params: planSlug)
395
+ - getLinked: Get all linked plans
396
+ - getDetails: Get detailed plan info (params: planSlug)
397
+ - getForPhase: Get plans for PREVC phase (params: phase)
398
+ - updatePhase: Update plan phase status (params: planSlug, phaseId, status)
399
+ - recordDecision: Record a decision (params: planSlug, title, description, phase?, alternatives?)
400
+ - updateStep: Update step status (params: planSlug, phaseId, stepIndex, status, output?, notes?)
401
+ - getStatus: Get plan execution status (params: planSlug)
402
+ - syncMarkdown: Sync tracking to markdown (params: planSlug)
403
+ - commitPhase: Create git commit for completed phase (params: planSlug, phaseId, coAuthor?, stagePatterns?, dryRun?)`,
404
+ inputSchema: {
405
+ action: zod_1.z.enum(['link', 'getLinked', 'getDetails', 'getForPhase', 'updatePhase', 'recordDecision', 'updateStep', 'getStatus', 'syncMarkdown', 'commitPhase'])
406
+ .describe('Action to perform'),
407
+ planSlug: zod_1.z.string().optional()
408
+ .describe('Plan slug/identifier'),
409
+ phaseId: zod_1.z.string().optional()
410
+ .describe('(updatePhase, updateStep, commitPhase) Phase ID'),
411
+ status: zod_1.z.enum(['pending', 'in_progress', 'completed', 'skipped']).optional()
412
+ .describe('(updatePhase, updateStep) New status'),
413
+ phase: zod_1.z.enum(['P', 'R', 'E', 'V', 'C']).optional()
414
+ .describe('(getForPhase, recordDecision) PREVC phase'),
415
+ title: zod_1.z.string().optional()
416
+ .describe('(recordDecision) Decision title'),
417
+ description: zod_1.z.string().optional()
418
+ .describe('(recordDecision) Decision description'),
419
+ alternatives: zod_1.z.array(zod_1.z.string()).optional()
420
+ .describe('(recordDecision) Considered alternatives'),
421
+ stepIndex: zod_1.z.number().optional()
422
+ .describe('(updateStep) Step number (1-based)'),
423
+ output: zod_1.z.string().optional()
424
+ .describe('(updateStep) Step output artifact'),
425
+ notes: zod_1.z.string().optional()
426
+ .describe('(updateStep) Execution notes'),
427
+ coAuthor: zod_1.z.string().optional()
428
+ .describe('(commitPhase) Agent name for Co-Authored-By footer'),
429
+ stagePatterns: zod_1.z.array(zod_1.z.string()).optional()
430
+ .describe('(commitPhase) Patterns for files to stage (default: [".context/**"])'),
431
+ dryRun: zod_1.z.boolean().optional()
432
+ .describe('(commitPhase) Preview without committing'),
433
+ }
434
+ }, wrap('plan', async (params) => {
435
+ return (0, gatewayTools_1.handlePlan)(params, { repoPath: this.getRepoPath() });
436
+ }));
437
+ // Gateway 7: agent - Agent orchestration and discovery
438
+ this.server.registerTool('agent', {
439
+ description: `Agent orchestration and discovery. Actions:
440
+ - discover: Discover all agents (built-in + custom)
441
+ - getInfo: Get agent details (params: agentType)
442
+ - orchestrate: Select agents for task/phase/role (params: task?, phase?, role?)
443
+ - getSequence: Get agent handoff sequence (params: task, includeReview?, phases?)
444
+ - getDocs: Get agent documentation (params: agent)
445
+ - getPhaseDocs: Get phase documentation (params: phase)
446
+ - listTypes: List all agent types`,
447
+ inputSchema: {
448
+ action: zod_1.z.enum(['discover', 'getInfo', 'orchestrate', 'getSequence', 'getDocs', 'getPhaseDocs', 'listTypes'])
449
+ .describe('Action to perform'),
450
+ agentType: zod_1.z.string().optional()
451
+ .describe('(getInfo) Agent type identifier'),
452
+ task: zod_1.z.string().optional()
453
+ .describe('(orchestrate, getSequence) Task description'),
454
+ phase: zod_1.z.enum(['P', 'R', 'E', 'V', 'C']).optional()
455
+ .describe('(orchestrate, getPhaseDocs) PREVC phase'),
456
+ role: zod_1.z.enum(workflow_2.PREVC_ROLES).optional()
457
+ .describe('(orchestrate) PREVC role'),
458
+ includeReview: zod_1.z.boolean().optional()
459
+ .describe('(getSequence) Include code review'),
460
+ phases: zod_1.z.array(zod_1.z.enum(['P', 'R', 'E', 'V', 'C'])).optional()
461
+ .describe('(getSequence) Phases to include'),
462
+ agent: zod_1.z.enum(workflow_2.AGENT_TYPES).optional()
463
+ .describe('(getDocs) Agent type for docs'),
464
+ }
465
+ }, wrap('agent', async (params) => {
466
+ return (0, gatewayTools_1.handleAgent)(params, { repoPath: this.getRepoPath() });
467
+ }));
468
+ // Gateway 8: skill - Skill management
469
+ this.server.registerTool('skill', {
470
+ description: `Skill management for on-demand expertise. Actions:
471
+ - list: List all skills (params: includeContent?)
472
+ - getContent: Get skill content (params: skillSlug)
473
+ - getForPhase: Get skills for PREVC phase (params: phase)
474
+ - scaffold: Generate skill files (params: skills?, force?)
475
+ - export: Export skills to AI tools (params: preset?, includeBuiltIn?, force?)
476
+ - fill: Fill skills with codebase content (params: skills?, force?)`,
477
+ inputSchema: {
478
+ action: zod_1.z.enum(['list', 'getContent', 'getForPhase', 'scaffold', 'export', 'fill'])
479
+ .describe('Action to perform'),
480
+ skillSlug: zod_1.z.string().optional()
481
+ .describe('(getContent) Skill identifier'),
482
+ phase: zod_1.z.enum(['P', 'R', 'E', 'V', 'C']).optional()
483
+ .describe('(getForPhase) PREVC phase'),
484
+ skills: zod_1.z.array(zod_1.z.string()).optional()
485
+ .describe('(scaffold, fill) Specific skills to process'),
486
+ includeContent: zod_1.z.boolean().optional()
487
+ .describe('(list) Include full content'),
488
+ includeBuiltIn: zod_1.z.boolean().optional()
489
+ .describe('(export, fill) Include built-in skills'),
490
+ preset: zod_1.z.enum(['claude', 'gemini', 'codex', 'antigravity', 'all']).optional()
491
+ .describe('(export) Target AI tool'),
492
+ force: zod_1.z.boolean().optional()
493
+ .describe('(scaffold, export) Overwrite existing'),
494
+ }
495
+ }, wrap('skill', async (params) => {
496
+ return (0, gatewayTools_1.handleSkill)(params, { repoPath: this.getRepoPath() });
497
+ }));
498
+ this.log('Registered 9 tools (5 consolidated gateways + 4 dedicated workflow tools)');
499
+ }
500
+ /**
501
+ * Register semantic context resources
502
+ * Uses initialRepoPath if found, otherwise process.cwd()
503
+ */
504
+ registerResources() {
505
+ const repoPath = this.initialRepoPath ?? process.cwd();
506
+ // Register context resources as templates with URI patterns
507
+ this.server.registerResource('codebase-context', `context://codebase/{contextType}`, {
508
+ description: 'Semantic context for the codebase. Use contextType: documentation, playbook, plan, or compact',
509
+ mimeType: 'text/markdown'
510
+ }, async (uri) => {
511
+ // Extract context type from URI
512
+ const match = uri.pathname.match(/\/([^/]+)$/);
513
+ const contextType = (match?.[1] || 'compact');
514
+ let context;
515
+ // Check cache first
516
+ const cached = await this.contextCache.get(repoPath, contextType);
517
+ if (cached) {
518
+ context = cached;
519
+ }
520
+ else {
521
+ switch (contextType) {
522
+ case 'documentation':
523
+ context = await this.contextBuilder.buildDocumentationContext(repoPath);
524
+ break;
525
+ case 'playbook':
526
+ context = await this.contextBuilder.buildPlaybookContext(repoPath, 'generic');
527
+ break;
528
+ case 'plan':
529
+ context = await this.contextBuilder.buildPlanContext(repoPath);
530
+ break;
531
+ case 'compact':
532
+ default:
533
+ context = await this.contextBuilder.buildCompactContext(repoPath);
534
+ break;
535
+ }
536
+ // Store in cache for subsequent calls
537
+ await this.contextCache.set(repoPath, contextType, context);
538
+ }
539
+ return {
540
+ contents: [{
541
+ uri: uri.href,
542
+ mimeType: 'text/markdown',
543
+ text: context
544
+ }]
545
+ };
546
+ });
547
+ // Register file resource template
548
+ this.server.registerResource('file-content', `file://{path}`, {
549
+ description: 'Read file contents from the repository',
550
+ mimeType: 'text/plain'
551
+ }, async (uri) => {
552
+ const filePath = uri.pathname;
553
+ const result = await tools_1.readFileTool.execute({ filePath }, { toolCallId: '', messages: [] });
554
+ if (!result.success) {
555
+ throw new Error(result.error || 'Failed to read file');
556
+ }
557
+ return {
558
+ contents: [{
559
+ uri: uri.href,
560
+ mimeType: 'text/plain',
561
+ text: result.content || ''
562
+ }]
563
+ };
564
+ });
565
+ this.log('Registered 2 resource templates');
566
+ // Register PREVC workflow resources
567
+ this.registerWorkflowResources();
568
+ }
569
+ /**
570
+ * Register PREVC workflow resources
571
+ * Uses initialRepoPath if found, otherwise process.cwd()
572
+ */
573
+ registerWorkflowResources() {
574
+ const repoPath = this.initialRepoPath ?? process.cwd();
575
+ // workflow://status - Current workflow status
576
+ this.server.registerResource('workflow-status', 'workflow://status', {
577
+ description: 'Current PREVC workflow status including phases, roles, and progress',
578
+ mimeType: 'application/json'
579
+ }, async () => {
580
+ try {
581
+ const service = new workflow_1.WorkflowService(repoPath);
582
+ if (!(await service.hasWorkflow())) {
583
+ return {
584
+ contents: [{
585
+ uri: 'workflow://status',
586
+ mimeType: 'application/json',
587
+ text: JSON.stringify({ error: 'No workflow found' }, null, 2)
588
+ }]
589
+ };
590
+ }
591
+ const summary = await service.getSummary();
592
+ const status = await service.getStatus();
593
+ return {
594
+ contents: [{
595
+ uri: 'workflow://status',
596
+ mimeType: 'application/json',
597
+ text: JSON.stringify({
598
+ name: summary.name,
599
+ scale: (0, workflow_2.getScaleName)(summary.scale),
600
+ currentPhase: summary.currentPhase,
601
+ progress: summary.progress,
602
+ isComplete: summary.isComplete,
603
+ phases: status.phases,
604
+ roles: status.roles,
605
+ }, null, 2)
606
+ }]
607
+ };
608
+ }
609
+ catch (error) {
610
+ return {
611
+ contents: [{
612
+ uri: 'workflow://status',
613
+ mimeType: 'application/json',
614
+ text: JSON.stringify({
615
+ error: error instanceof Error ? error.message : String(error)
616
+ }, null, 2)
617
+ }]
618
+ };
619
+ }
620
+ });
621
+ this.log('Registered 1 workflow resource');
622
+ }
623
+ /**
624
+ * Initialize repo path with smart detection and caching
625
+ *
626
+ * Strategy:
627
+ * 1. If explicit options.repoPath provided, try to find project root from there
628
+ * 2. Otherwise search upward from process.cwd() for .context or .git
629
+ * 3. Set as initialRepoPath if found (for resources)
630
+ * 4. First valid repoPath from client gets cached for all subsequent tool calls
631
+ * 5. Fallback to process.cwd() if nothing found (allows flexible MCP usage)
632
+ */
633
+ async initializeRepoPath() {
634
+ const startPath = this.options.repoPath || process.cwd();
635
+ const foundRoot = await this.findProjectRoot(startPath);
636
+ if (foundRoot) {
637
+ this.initialRepoPath = path.resolve(foundRoot);
638
+ this.log(`Server initialized with project root: ${this.initialRepoPath}`);
639
+ }
640
+ else {
641
+ // No project found - will use process.cwd() as fallback
642
+ // This allows flexible MCP server usage without strict project detection
643
+ this.initialRepoPath = null;
644
+ this.log(`No project root found. Will use process.cwd() or first valid client-provided path.`);
645
+ }
646
+ }
647
+ /**
648
+ * Find project root by searching upward for .context or .git
649
+ */
650
+ async findProjectRoot(startPath) {
651
+ let currentPath = path.resolve(startPath);
652
+ const root = path.parse(currentPath).root;
653
+ // Search upward for .context or .git
654
+ while (currentPath !== root) {
655
+ if (await fs.pathExists(path.join(currentPath, '.context')) ||
656
+ await fs.pathExists(path.join(currentPath, '.git'))) {
657
+ return currentPath;
658
+ }
659
+ currentPath = path.dirname(currentPath);
660
+ }
661
+ // Not found
662
+ return null;
663
+ }
664
+ /**
665
+ * Cache a valid repoPath from client
666
+ * Only cache if it contains .context and we haven't cached yet
667
+ */
668
+ cacheRepoPathIfValid(repoPath) {
669
+ if (this.cachedRepoPath) {
670
+ return; // Already cached
671
+ }
672
+ const contextPath = path.join(repoPath, '.context');
673
+ if (fs.existsSync(contextPath)) {
674
+ this.cachedRepoPath = path.resolve(repoPath);
675
+ process.stderr.write(`[mcp] ✓ Cached repoPath for this session: ${this.cachedRepoPath}\n`);
676
+ this.log(`Cached valid repoPath: ${this.cachedRepoPath}`);
677
+ }
678
+ }
679
+ /**
680
+ * Get the effective repo path for a tool call
681
+ * Priority: 1) explicit param, 2) cached path, 3) initial path, 4) process.cwd()
682
+ */
683
+ getRepoPath(paramsRepoPath) {
684
+ if (paramsRepoPath) {
685
+ const resolved = path.resolve(paramsRepoPath);
686
+ this.cacheRepoPathIfValid(resolved);
687
+ return resolved;
688
+ }
689
+ if (this.cachedRepoPath) {
690
+ this.log(`Using cached repoPath: ${this.cachedRepoPath}`);
691
+ return this.cachedRepoPath;
692
+ }
693
+ if (this.initialRepoPath) {
694
+ this.log(`Using initial repoPath: ${this.initialRepoPath}`);
695
+ return this.initialRepoPath;
696
+ }
697
+ // Fallback to current working directory
698
+ const cwd = process.cwd();
699
+ this.log(`Using fallback cwd: ${cwd}`);
700
+ return cwd;
701
+ }
702
+ wrapWithActionLogging(toolName, handler) {
703
+ return async (params) => {
704
+ const resolvedRepoPath = this.getRepoPath(params?.repoPath);
705
+ const action = typeof params?.action === 'string'
706
+ ? params.action
707
+ : toolName;
708
+ // Validate file paths to prevent path traversal attacks
709
+ try {
710
+ this.validatePathParams(params, resolvedRepoPath);
711
+ }
712
+ catch (error) {
713
+ if (error instanceof pathSecurity_1.SecurityError) {
714
+ this.log(`[SECURITY] Path traversal blocked: ${error.message} (tool: ${toolName}, path: ${error.attemptedPath})`);
715
+ const errorResponse = {
716
+ content: [{ type: 'text', text: JSON.stringify({ success: false, error: `Security: ${error.message}` }) }],
717
+ isError: true,
718
+ };
719
+ await this.logToolError(resolvedRepoPath, toolName, action, params, error);
720
+ return errorResponse;
721
+ }
722
+ throw error;
723
+ }
724
+ try {
725
+ const response = await handler(params);
726
+ await this.logToolResponse(resolvedRepoPath, toolName, action, params, response);
727
+ return response;
728
+ }
729
+ catch (error) {
730
+ await this.logToolError(resolvedRepoPath, toolName, action, params, error);
731
+ throw error;
732
+ }
733
+ };
734
+ }
735
+ /**
736
+ * Validate path-related parameters against the workspace boundary.
737
+ * Throws SecurityError if any path escapes the workspace.
738
+ */
739
+ validatePathParams(params, repoPath) {
740
+ const validator = new pathSecurity_1.PathValidator(repoPath);
741
+ const pathKeys = ['filePath', 'rootPath', 'cwd'];
742
+ for (const key of pathKeys) {
743
+ const value = params[key];
744
+ if (typeof value === 'string' && value.length > 0) {
745
+ validator.validatePath(value);
746
+ }
747
+ }
748
+ }
749
+ async logToolResponse(repoPath, toolName, action, params, response) {
750
+ const payload = this.parseResponsePayload(response);
751
+ const success = typeof payload?.success === 'boolean'
752
+ ? payload.success
753
+ : !response.isError;
754
+ const errorMessage = typeof payload?.error === 'string' ? payload.error : undefined;
755
+ const resultSummary = payload ? this.buildResultSummary(payload) : undefined;
756
+ await (0, actionLogger_1.logMcpAction)(repoPath, {
757
+ tool: toolName,
758
+ action,
759
+ status: success ? 'success' : 'error',
760
+ details: {
761
+ params,
762
+ ...(resultSummary ? { result: resultSummary } : {}),
763
+ },
764
+ ...(success ? {} : { error: errorMessage || 'Tool reported failure' }),
765
+ });
766
+ }
767
+ async logToolError(repoPath, toolName, action, params, error) {
768
+ const message = error instanceof Error ? error.message : String(error);
769
+ await (0, actionLogger_1.logMcpAction)(repoPath, {
770
+ tool: toolName,
771
+ action,
772
+ status: 'error',
773
+ details: { params },
774
+ error: message,
775
+ });
776
+ }
777
+ parseResponsePayload(response) {
778
+ const text = response.content?.[0]?.text;
779
+ if (!text)
780
+ return null;
781
+ try {
782
+ const parsed = JSON.parse(text);
783
+ return parsed && typeof parsed === 'object' ? parsed : null;
784
+ }
785
+ catch {
786
+ return null;
787
+ }
788
+ }
789
+ buildResultSummary(payload) {
790
+ const summaryKeys = [
791
+ 'success',
792
+ 'message',
793
+ 'currentPhase',
794
+ 'nextPhase',
795
+ 'phase',
796
+ 'scale',
797
+ 'planSlug',
798
+ 'count',
799
+ 'total',
800
+ 'status',
801
+ ];
802
+ const summary = {};
803
+ for (const key of summaryKeys) {
804
+ if (key in payload) {
805
+ summary[key] = payload[key];
806
+ }
807
+ }
808
+ return Object.keys(summary).length > 0 ? summary : null;
809
+ }
810
+ /**
811
+ * Start the MCP server with stdio transport
812
+ */
813
+ async start() {
814
+ this.transport = new stdio_js_1.StdioServerTransport();
815
+ await this.server.connect(this.transport);
816
+ this.log('MCP Server started on stdio');
817
+ }
818
+ /**
819
+ * Stop the MCP server
820
+ */
821
+ async stop() {
822
+ await this.server.close();
823
+ await this.contextBuilder.shutdown();
824
+ this.log('MCP Server stopped');
825
+ }
826
+ /**
827
+ * Log message to stderr (not stdout, to avoid polluting MCP messages)
828
+ */
829
+ log(message) {
830
+ if (this.options.verbose) {
831
+ process.stderr.write(`[mcp] ${message}\n`);
832
+ }
833
+ }
834
+ }
835
+ exports.AIContextMCPServer = AIContextMCPServer;
836
+ /**
837
+ * Create and start an MCP server
838
+ */
839
+ async function startMCPServer(options = {}) {
840
+ const server = new AIContextMCPServer(options);
841
+ await server.start();
842
+ return server;
843
+ }
844
+ //# sourceMappingURL=mcpServer.js.map