mcp-adr-analysis-server 2.0.21 → 2.1.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 (263) hide show
  1. package/README.md +94 -839
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/config/ai-config.d.ts.map +1 -1
  4. package/dist/src/config/ai-config.js +9 -9
  5. package/dist/src/config/ai-config.js.map +1 -1
  6. package/dist/src/index.d.ts +15 -0
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +1594 -837
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/prompts/analysis-prompts.d.ts +4 -1
  11. package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
  12. package/dist/src/prompts/analysis-prompts.js +61 -30
  13. package/dist/src/prompts/analysis-prompts.js.map +1 -1
  14. package/dist/src/prompts/index.d.ts +17 -1
  15. package/dist/src/prompts/index.d.ts.map +1 -1
  16. package/dist/src/prompts/index.js +325 -1
  17. package/dist/src/prompts/index.js.map +1 -1
  18. package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
  19. package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
  20. package/dist/src/prompts/rule-generation-prompts.js +5 -1
  21. package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
  22. package/dist/src/prompts/security-prompts.d.ts +6 -1
  23. package/dist/src/prompts/security-prompts.d.ts.map +1 -1
  24. package/dist/src/prompts/security-prompts.js +6 -1
  25. package/dist/src/prompts/security-prompts.js.map +1 -1
  26. package/dist/src/prompts/todo-prompts.d.ts +49 -0
  27. package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
  28. package/dist/src/prompts/todo-prompts.js +824 -0
  29. package/dist/src/prompts/todo-prompts.js.map +1 -0
  30. package/dist/src/resources/index.d.ts.map +1 -1
  31. package/dist/src/resources/index.js +9 -7
  32. package/dist/src/resources/index.js.map +1 -1
  33. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
  34. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
  35. package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
  36. package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
  37. package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
  38. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  39. package/dist/src/tools/adr-suggestion-tool.js +330 -32
  40. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  41. package/dist/src/tools/content-masking-tool.d.ts +5 -0
  42. package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
  43. package/dist/src/tools/content-masking-tool.js +631 -28
  44. package/dist/src/tools/content-masking-tool.js.map +1 -1
  45. package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
  46. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  47. package/dist/src/tools/deployment-readiness-tool.js +1017 -93
  48. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  49. package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
  50. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  51. package/dist/src/tools/environment-analysis-tool.js +568 -24
  52. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  53. package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
  54. package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
  55. package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
  56. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  57. package/dist/src/tools/mcp-planning-tool.js +316 -183
  58. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  59. package/dist/src/tools/memory-loading-tool.d.ts +60 -0
  60. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
  61. package/dist/src/tools/memory-loading-tool.js +457 -0
  62. package/dist/src/tools/memory-loading-tool.js.map +1 -0
  63. package/dist/src/tools/research-integration-tool.d.ts +4 -1
  64. package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
  65. package/dist/src/tools/research-integration-tool.js +5 -1
  66. package/dist/src/tools/research-integration-tool.js.map +1 -1
  67. package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
  68. package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
  69. package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
  70. package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
  71. package/dist/src/tools/rule-generation-tool.d.ts +2 -0
  72. package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
  73. package/dist/src/tools/rule-generation-tool.js +274 -33
  74. package/dist/src/tools/rule-generation-tool.js.map +1 -1
  75. package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
  76. package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
  77. package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
  78. package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
  79. package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
  80. package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
  81. package/dist/src/tools/smart-git-push-tool.js +241 -235
  82. package/dist/src/tools/smart-git-push-tool.js.map +1 -1
  83. package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
  84. package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
  85. package/dist/src/tools/tool-chain-orchestrator.js +152 -93
  86. package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
  87. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
  88. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  89. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
  90. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  91. package/dist/src/types/ape-framework.d.ts +93 -0
  92. package/dist/src/types/ape-framework.d.ts.map +1 -1
  93. package/dist/src/types/ape-framework.js +10 -10
  94. package/dist/src/types/ape-framework.js.map +1 -1
  95. package/dist/src/types/enhanced-errors.d.ts +173 -0
  96. package/dist/src/types/enhanced-errors.d.ts.map +1 -0
  97. package/dist/src/types/enhanced-errors.js +668 -0
  98. package/dist/src/types/enhanced-errors.js.map +1 -0
  99. package/dist/src/types/index.d.ts +129 -3
  100. package/dist/src/types/index.d.ts.map +1 -1
  101. package/dist/src/types/index.js +15 -0
  102. package/dist/src/types/index.js.map +1 -1
  103. package/dist/src/types/knowledge-generation.d.ts +78 -0
  104. package/dist/src/types/knowledge-generation.d.ts.map +1 -1
  105. package/dist/src/types/knowledge-generation.js +10 -6
  106. package/dist/src/types/knowledge-generation.js.map +1 -1
  107. package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
  108. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  109. package/dist/src/types/knowledge-graph-schemas.js +45 -17
  110. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  111. package/dist/src/types/memory-entities.d.ts +7209 -0
  112. package/dist/src/types/memory-entities.d.ts.map +1 -0
  113. package/dist/src/types/memory-entities.js +395 -0
  114. package/dist/src/types/memory-entities.js.map +1 -0
  115. package/dist/src/types/reflexion-framework.d.ts +44 -0
  116. package/dist/src/types/reflexion-framework.d.ts.map +1 -1
  117. package/dist/src/types/reflexion-framework.js +7 -7
  118. package/dist/src/types/reflexion-framework.js.map +1 -1
  119. package/dist/src/types/todo-json-schemas.d.ts +7 -653
  120. package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
  121. package/dist/src/types/todo-json-schemas.js +6 -110
  122. package/dist/src/types/todo-json-schemas.js.map +1 -1
  123. package/dist/src/types/tool-arguments.d.ts +224 -0
  124. package/dist/src/types/tool-arguments.d.ts.map +1 -0
  125. package/dist/src/types/tool-arguments.js +6 -0
  126. package/dist/src/types/tool-arguments.js.map +1 -0
  127. package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
  128. package/dist/src/utils/actual-file-operations.js +25 -9
  129. package/dist/src/utils/actual-file-operations.js.map +1 -1
  130. package/dist/src/utils/adr-discovery.d.ts +33 -1
  131. package/dist/src/utils/adr-discovery.d.ts.map +1 -1
  132. package/dist/src/utils/adr-discovery.js +14 -9
  133. package/dist/src/utils/adr-discovery.js.map +1 -1
  134. package/dist/src/utils/adr-suggestions.d.ts +72 -0
  135. package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
  136. package/dist/src/utils/adr-suggestions.js +6 -0
  137. package/dist/src/utils/adr-suggestions.js.map +1 -1
  138. package/dist/src/utils/cache.d.ts.map +1 -1
  139. package/dist/src/utils/cache.js +22 -19
  140. package/dist/src/utils/cache.js.map +1 -1
  141. package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
  142. package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
  143. package/dist/src/utils/chain-of-thought-template.js +31 -22
  144. package/dist/src/utils/chain-of-thought-template.js.map +1 -1
  145. package/dist/src/utils/config.d.ts.map +1 -1
  146. package/dist/src/utils/config.js +1 -0
  147. package/dist/src/utils/config.js.map +1 -1
  148. package/dist/src/utils/directory-compat.js +1 -1
  149. package/dist/src/utils/directory-compat.js.map +1 -1
  150. package/dist/src/utils/enhanced-logging.d.ts +195 -0
  151. package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
  152. package/dist/src/utils/enhanced-logging.js +449 -0
  153. package/dist/src/utils/enhanced-logging.js.map +1 -0
  154. package/dist/src/utils/file-system.d.ts +182 -34
  155. package/dist/src/utils/file-system.d.ts.map +1 -1
  156. package/dist/src/utils/file-system.js +648 -774
  157. package/dist/src/utils/file-system.js.map +1 -1
  158. package/dist/src/utils/gitleaks-detector.d.ts +50 -0
  159. package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
  160. package/dist/src/utils/gitleaks-detector.js +334 -0
  161. package/dist/src/utils/gitleaks-detector.js.map +1 -0
  162. package/dist/src/utils/interactive-approval.d.ts +1 -1
  163. package/dist/src/utils/interactive-approval.d.ts.map +1 -1
  164. package/dist/src/utils/interactive-approval.js +22 -17
  165. package/dist/src/utils/interactive-approval.js.map +1 -1
  166. package/dist/src/utils/json-safe.d.ts.map +1 -1
  167. package/dist/src/utils/json-safe.js +9 -6
  168. package/dist/src/utils/json-safe.js.map +1 -1
  169. package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
  170. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  171. package/dist/src/utils/knowledge-graph-manager.js +315 -70
  172. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  173. package/dist/src/utils/location-filter.d.ts +35 -10
  174. package/dist/src/utils/location-filter.d.ts.map +1 -1
  175. package/dist/src/utils/location-filter.js +360 -94
  176. package/dist/src/utils/location-filter.js.map +1 -1
  177. package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
  178. package/dist/src/utils/mcp-response-validator.js +34 -19
  179. package/dist/src/utils/mcp-response-validator.js.map +1 -1
  180. package/dist/src/utils/memory-entity-manager.d.ts +134 -0
  181. package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
  182. package/dist/src/utils/memory-entity-manager.js +851 -0
  183. package/dist/src/utils/memory-entity-manager.js.map +1 -0
  184. package/dist/src/utils/memory-health-scoring.d.ts +125 -0
  185. package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
  186. package/dist/src/utils/memory-health-scoring.js +277 -0
  187. package/dist/src/utils/memory-health-scoring.js.map +1 -0
  188. package/dist/src/utils/memory-migration-manager.d.ts +93 -0
  189. package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
  190. package/dist/src/utils/memory-migration-manager.js +842 -0
  191. package/dist/src/utils/memory-migration-manager.js.map +1 -0
  192. package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
  193. package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
  194. package/dist/src/utils/memory-relationship-mapper.js +482 -0
  195. package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
  196. package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
  197. package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
  198. package/dist/src/utils/memory-rollback-manager.js +575 -0
  199. package/dist/src/utils/memory-rollback-manager.js.map +1 -0
  200. package/dist/src/utils/memory-transformation.d.ts +59 -0
  201. package/dist/src/utils/memory-transformation.d.ts.map +1 -0
  202. package/dist/src/utils/memory-transformation.js +742 -0
  203. package/dist/src/utils/memory-transformation.js.map +1 -0
  204. package/dist/src/utils/output-masking.d.ts +12 -0
  205. package/dist/src/utils/output-masking.d.ts.map +1 -1
  206. package/dist/src/utils/output-masking.js +5 -0
  207. package/dist/src/utils/output-masking.js.map +1 -1
  208. package/dist/src/utils/prompt-execution.d.ts.map +1 -1
  209. package/dist/src/utils/prompt-execution.js +72 -51
  210. package/dist/src/utils/prompt-execution.js.map +1 -1
  211. package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
  212. package/dist/src/utils/release-readiness-detector.js +43 -42
  213. package/dist/src/utils/release-readiness-detector.js.map +1 -1
  214. package/dist/src/utils/research-integration.d.ts.map +1 -1
  215. package/dist/src/utils/research-integration.js +73 -44
  216. package/dist/src/utils/research-integration.js.map +1 -1
  217. package/dist/src/utils/research-questions.d.ts.map +1 -1
  218. package/dist/src/utils/research-questions.js +40 -14
  219. package/dist/src/utils/research-questions.js.map +1 -1
  220. package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
  221. package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
  222. package/dist/src/utils/ripgrep-wrapper.js +255 -0
  223. package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
  224. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  225. package/dist/src/utils/rule-generation.js +26 -15
  226. package/dist/src/utils/rule-generation.js.map +1 -1
  227. package/dist/src/utils/todo-file-watcher.d.ts +11 -23
  228. package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
  229. package/dist/src/utils/todo-file-watcher.js +18 -156
  230. package/dist/src/utils/todo-file-watcher.js.map +1 -1
  231. package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
  232. package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
  233. package/dist/src/utils/tree-sitter-analyzer.js +885 -0
  234. package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
  235. package/package.json +51 -10
  236. package/dist/src/tools/smart-score-tool.d.ts +0 -173
  237. package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
  238. package/dist/src/tools/smart-score-tool.js +0 -681
  239. package/dist/src/tools/smart-score-tool.js.map +0 -1
  240. package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
  241. package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
  242. package/dist/src/tools/todo-management-tool-v2.js +0 -922
  243. package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
  244. package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
  245. package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
  246. package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
  247. package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
  248. package/dist/src/utils/project-health-scoring.d.ts +0 -177
  249. package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
  250. package/dist/src/utils/project-health-scoring.js +0 -370
  251. package/dist/src/utils/project-health-scoring.js.map +0 -1
  252. package/dist/src/utils/todo-json-manager.d.ts +0 -71
  253. package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
  254. package/dist/src/utils/todo-json-manager.js +0 -396
  255. package/dist/src/utils/todo-json-manager.js.map +0 -1
  256. package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
  257. package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
  258. package/dist/src/utils/todo-markdown-converter.js +0 -362
  259. package/dist/src/utils/todo-markdown-converter.js.map +0 -1
  260. package/dist/src/utils/todo-migration.d.ts +0 -47
  261. package/dist/src/utils/todo-migration.d.ts.map +0 -1
  262. package/dist/src/utils/todo-migration.js +0 -261
  263. package/dist/src/utils/todo-migration.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adr-bootstrap-validation-tool.js","sourceRoot":"","sources":["../../../src/tools/adr-bootstrap-validation-tool.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare function suggestAdrs(args: {
19
19
  enhancedMode?: boolean;
20
20
  learningEnabled?: boolean;
21
21
  knowledgeEnhancement?: boolean;
22
+ enableTreeSitterAnalysis?: boolean;
22
23
  conversationContext?: ConversationContext;
23
24
  }): Promise<any>;
24
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"adr-suggestion-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/adr-suggestion-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAKvE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,oBAAoB,GAAG,cAAc,GAAG,eAAe,CAAC;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,GAAG,OAAO,CAAC,GAAG,CAAC,CA2ff;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,GAAG,CAAC,CAgJf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,GAAG,CAAC,CAiKf"}
1
+ {"version":3,"file":"adr-suggestion-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/adr-suggestion-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAWvE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,oBAAoB,GAAG,cAAc,GAAG,eAAe,CAAC;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,GAAG,OAAO,CAAC,GAAG,CAAC,CAiwBf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,GAAG,CAAC,CAkJf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,GAAG,CAAC,CA2Kf"}
@@ -5,8 +5,10 @@
5
5
  */
6
6
  import { McpAdrError } from '../types/index.js';
7
7
  import { generateArchitecturalKnowledge } from '../utils/knowledge-generation.js';
8
- import { executeWithReflexion, retrieveRelevantMemories, createToolReflexionConfig } from '../utils/reflexion.js';
8
+ import { executeWithReflexion, retrieveRelevantMemories, createToolReflexionConfig, } from '../utils/reflexion.js';
9
9
  import { executeADRSuggestionPrompt, formatMCPResponse } from '../utils/prompt-execution.js';
10
+ import { TreeSitterAnalyzer } from '../utils/tree-sitter-analyzer.js';
11
+ import { findRelatedCode } from '../utils/file-system.js';
10
12
  /**
11
13
  * Suggest ADRs based on project analysis with advanced prompting techniques
12
14
  * Enhanced with Knowledge Generation and Reflexion learning capabilities
@@ -15,6 +17,7 @@ export async function suggestAdrs(args) {
15
17
  const { projectPath = process.cwd(), analysisType = 'comprehensive', beforeCode, afterCode, changeDescription, commitMessages, existingAdrs, enhancedMode = true, // Default to enhanced mode
16
18
  learningEnabled = true, // Default to learning enabled
17
19
  knowledgeEnhancement = true, // Default to knowledge enhancement
20
+ enableTreeSitterAnalysis = true, // Default to tree-sitter enabled
18
21
  conversationContext, // Context from calling LLM
19
22
  } = args;
20
23
  try {
@@ -23,6 +26,28 @@ export async function suggestAdrs(args) {
23
26
  case 'implicit_decisions': {
24
27
  let enhancedPrompt = '';
25
28
  let enhancementInfo = '';
29
+ let codeContext = '';
30
+ // Smart Code Linking for implicit decisions
31
+ if (existingAdrs && existingAdrs.length > 0) {
32
+ try {
33
+ const mockAdrContent = existingAdrs.join('\n\n');
34
+ const relatedCodeResult = await findRelatedCode('implicit-decisions-analysis', mockAdrContent, projectPath, {
35
+ useAI: true,
36
+ useRipgrep: true,
37
+ maxFiles: 10,
38
+ includeContent: false,
39
+ });
40
+ if (relatedCodeResult.relatedFiles.length > 0) {
41
+ codeContext = `\n## Smart Code Linking - Implicit Decision Context\n\nAnalyzing related code for implicit architectural decisions:\n\n${relatedCodeResult.relatedFiles
42
+ .slice(0, 5)
43
+ .map((file, index) => `${index + 1}. **${file.path}** - ${file.extension} file`)
44
+ .join('\n')}\n\n**Code Analysis**: Found ${relatedCodeResult.relatedFiles.length} related files that may contain implicit decisions\n**Keywords Used**: ${relatedCodeResult.keywords.join(', ')}\n**Confidence**: ${(relatedCodeResult.confidence * 100).toFixed(1)}%\n`;
45
+ }
46
+ }
47
+ catch (error) {
48
+ console.warn('[WARNING] Smart Code Linking for implicit decisions failed:', error);
49
+ }
50
+ }
26
51
  // Apply enhancements if enabled
27
52
  if (enhancedMode && (knowledgeEnhancement || learningEnabled)) {
28
53
  let knowledgeContext = '';
@@ -33,11 +58,11 @@ export async function suggestAdrs(args) {
33
58
  projectPath,
34
59
  technologies: [],
35
60
  patterns: [],
36
- projectType: 'implicit-decision-detection'
61
+ projectType: 'implicit-decision-detection',
37
62
  }, {
38
63
  domains: ['api-design', 'database-design'],
39
64
  depth: 'basic',
40
- cacheEnabled: true
65
+ cacheEnabled: true,
41
66
  });
42
67
  knowledgeContext = `\n## Knowledge Enhancement\n${knowledgeResult.prompt}\n`;
43
68
  }
@@ -53,13 +78,14 @@ export async function suggestAdrs(args) {
53
78
  const reflexionResult = await executeWithReflexion({
54
79
  prompt: baseResult.analysisPrompt + knowledgeContext,
55
80
  instructions: baseResult.instructions,
56
- context: { projectPath, analysisType: 'implicit_decisions', existingAdrs }
81
+ context: { projectPath, analysisType: 'implicit_decisions', existingAdrs },
57
82
  }, reflexionConfig);
58
83
  enhancedPrompt = reflexionResult.prompt;
59
84
  enhancementInfo = `
60
85
  ## Enhancement Status
61
86
  - **Knowledge Generation**: ${knowledgeEnhancement ? '✅ Applied' : '❌ Disabled'}
62
87
  - **Reflexion Learning**: ✅ Applied
88
+ - **Smart Code Linking**: ${codeContext ? '✅ Applied' : '❌ No existing ADRs'}
63
89
  - **Learning from**: Past implicit decision detection tasks
64
90
 
65
91
  `;
@@ -77,6 +103,7 @@ export async function suggestAdrs(args) {
77
103
  ## Enhancement Status
78
104
  - **Knowledge Generation**: ${knowledgeEnhancement ? '✅ Applied' : '❌ Disabled'}
79
105
  - **Reflexion Learning**: ❌ Disabled
106
+ - **Smart Code Linking**: ${codeContext ? '✅ Applied' : '❌ No existing ADRs'}
80
107
 
81
108
  `;
82
109
  }
@@ -87,6 +114,7 @@ export async function suggestAdrs(args) {
87
114
  enhancementInfo = `
88
115
  ## Enhancement Status
89
116
  - **Enhanced Mode**: ❌ Disabled
117
+ - **Smart Code Linking**: ${codeContext ? '✅ Applied' : '❌ No existing ADRs'}
90
118
  - All advanced features are disabled for this analysis
91
119
 
92
120
  `;
@@ -99,6 +127,7 @@ export async function suggestAdrs(args) {
99
127
  text: `# ADR Suggestions: Enhanced Implicit Decisions Analysis
100
128
 
101
129
  ${enhancementInfo}
130
+ ${codeContext}
102
131
 
103
132
  ${baseResult.instructions}
104
133
 
@@ -131,7 +160,30 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
131
160
  }
132
161
  let enhancedPrompt = '';
133
162
  let enhancementInfo = '';
163
+ let codeContext = '';
164
+ // Smart Code Linking for code changes
165
+ if (existingAdrs && existingAdrs.length > 0) {
166
+ try {
167
+ const mockAdrContent = `${existingAdrs.join('\n\n')}\n\nCODE CHANGE:\n${changeDescription}`;
168
+ const relatedCodeResult = await findRelatedCode('code-changes-analysis', mockAdrContent, projectPath || process.cwd(), {
169
+ useAI: true,
170
+ useRipgrep: true,
171
+ maxFiles: 8,
172
+ includeContent: false,
173
+ });
174
+ if (relatedCodeResult.relatedFiles.length > 0) {
175
+ codeContext = `\n## Smart Code Linking - Code Change Context\n\nFound related code files that may be affected by this change:\n\n${relatedCodeResult.relatedFiles
176
+ .slice(0, 3)
177
+ .map((file, index) => `${index + 1}. **${file.path}** - ${file.extension} file (${file.size} bytes)`)
178
+ .join('\n')}\n\n**Impact Analysis**: ${relatedCodeResult.relatedFiles.length} files may be affected by this architectural change\n**Keywords Used**: ${relatedCodeResult.keywords.join(', ')}\n**Confidence**: ${(relatedCodeResult.confidence * 100).toFixed(1)}%\n`;
179
+ }
180
+ }
181
+ catch (error) {
182
+ console.warn('[WARNING] Smart Code Linking for code changes failed:', error);
183
+ }
184
+ }
134
185
  // Apply enhancements if enabled
186
+ let treeSitterAnalysis = '';
135
187
  if (enhancedMode && (knowledgeEnhancement || learningEnabled)) {
136
188
  let knowledgeContext = '';
137
189
  // Generate domain knowledge for code change analysis
@@ -141,11 +193,11 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
141
193
  projectPath: projectPath || process.cwd(),
142
194
  technologies: [],
143
195
  patterns: [],
144
- projectType: 'code-change-analysis'
196
+ projectType: 'code-change-analysis',
145
197
  }, {
146
198
  domains: ['api-design', 'performance-optimization'],
147
199
  depth: 'basic',
148
- cacheEnabled: true
200
+ cacheEnabled: true,
149
201
  });
150
202
  knowledgeContext = `\n## Knowledge Enhancement\n${knowledgeResult.prompt}\n`;
151
203
  }
@@ -153,11 +205,65 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
153
205
  console.error('[WARNING] Knowledge generation failed:', error);
154
206
  }
155
207
  }
208
+ // Perform tree-sitter analysis for enhanced code change understanding
209
+ if (enableTreeSitterAnalysis) {
210
+ try {
211
+ const codeChangeAnalysis = await performTreeSitterCodeChangeAnalysis(beforeCode, afterCode, changeDescription);
212
+ if (codeChangeAnalysis.architecturalChanges.length > 0 ||
213
+ codeChangeAnalysis.securityImpacts.length > 0) {
214
+ treeSitterAnalysis = `
215
+
216
+ ## 🔍 Tree-sitter Code Change Analysis
217
+
218
+ **Analysis Results:**
219
+ - **Architectural Changes**: ${codeChangeAnalysis.architecturalChanges.length}
220
+ - **Security Impacts**: ${codeChangeAnalysis.securityImpacts.length}
221
+ - **Complexity Change**: ${codeChangeAnalysis.complexityDelta > 0 ? '+' : ''}${codeChangeAnalysis.complexityDelta}
222
+ - **New Dependencies**: ${codeChangeAnalysis.newDependencies.length}
223
+
224
+ ${codeChangeAnalysis.architecturalChanges.length > 0
225
+ ? `
226
+ ### 🏗️ Architectural Changes Detected
227
+ ${codeChangeAnalysis.architecturalChanges.map(change => `- **${change.type}**: ${change.description} (impact: ${change.impact})`).join('\n')}
228
+ `
229
+ : ''}
230
+
231
+ ${codeChangeAnalysis.securityImpacts.length > 0
232
+ ? `
233
+ ### 🔒 Security Impact Analysis
234
+ ${codeChangeAnalysis.securityImpacts.map(impact => `- **${impact.type}**: ${impact.description} (severity: ${impact.severity})`).join('\n')}
235
+ `
236
+ : ''}
237
+
238
+ ${codeChangeAnalysis.newDependencies.length > 0
239
+ ? `
240
+ ### 📦 New Dependencies
241
+ ${codeChangeAnalysis.newDependencies.map(dep => `- **${dep.name}**: ${dep.reason} (risk: ${dep.riskLevel})`).join('\n')}
242
+ `
243
+ : ''}
244
+
245
+ ---
246
+ `;
247
+ }
248
+ }
249
+ catch (error) {
250
+ console.warn('Tree-sitter code change analysis failed:', error);
251
+ treeSitterAnalysis = `
252
+
253
+ ## 🔍 Tree-sitter Code Change Analysis
254
+
255
+ **Status**: ⚠️ Analysis failed - continuing with standard analysis
256
+ **Error**: ${error instanceof Error ? error.message : 'Unknown error'}
257
+
258
+ ---
259
+ `;
260
+ }
261
+ }
156
262
  // Apply learning if enabled
157
263
  if (learningEnabled) {
158
264
  try {
159
265
  const reflexionConfig = createToolReflexionConfig('suggest_adrs', {
160
- evaluationCriteria: ['task-success', 'accuracy', 'relevance']
266
+ evaluationCriteria: ['task-success', 'accuracy', 'relevance'],
161
267
  });
162
268
  const baseResult = await analyzeCodeChanges(beforeCode, afterCode, changeDescription, commitMessages);
163
269
  const reflexionResult = await executeWithReflexion({
@@ -166,14 +272,15 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
166
272
  context: {
167
273
  analysisType: 'code_changes',
168
274
  changeDescription,
169
- hasCommitMessages: !!commitMessages?.length
170
- }
275
+ hasCommitMessages: !!commitMessages?.length,
276
+ },
171
277
  }, reflexionConfig);
172
278
  enhancedPrompt = reflexionResult.prompt;
173
279
  enhancementInfo = `
174
280
  ## Enhancement Status
175
281
  - **Knowledge Generation**: ${knowledgeEnhancement ? '✅ Applied' : '❌ Disabled'}
176
282
  - **Reflexion Learning**: ✅ Applied
283
+ - **Smart Code Linking**: ${codeContext ? '✅ Applied' : '❌ No existing ADRs'}
177
284
  - **Learning from**: Past code change analysis tasks
178
285
 
179
286
  `;
@@ -191,6 +298,7 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
191
298
  ## Enhancement Status
192
299
  - **Knowledge Generation**: ${knowledgeEnhancement ? '✅ Applied' : '❌ Disabled'}
193
300
  - **Reflexion Learning**: ❌ Disabled
301
+ - **Smart Code Linking**: ${codeContext ? '✅ Applied' : '❌ No existing ADRs'}
194
302
 
195
303
  `;
196
304
  }
@@ -201,6 +309,7 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
201
309
  enhancementInfo = `
202
310
  ## Enhancement Status
203
311
  - **Enhanced Mode**: ❌ Disabled
312
+ - **Smart Code Linking**: ${codeContext ? '✅ Applied' : '❌ No existing ADRs'}
204
313
  - All advanced features are disabled for this analysis
205
314
 
206
315
  `;
@@ -213,7 +322,8 @@ The enhanced AI analysis will identify implicit architectural decisions and prov
213
322
  text: `# ADR Suggestions: Enhanced Code Change Analysis
214
323
 
215
324
  ${enhancementInfo}
216
-
325
+ ${codeContext}
326
+ ${treeSitterAnalysis}
217
327
  ${baseResult.instructions}
218
328
 
219
329
  ## Enhanced AI Analysis Prompt
@@ -243,6 +353,7 @@ The enhanced AI analysis will provide:
243
353
  let enhancedPrompt = '';
244
354
  let knowledgeContext = '';
245
355
  let reflexionContext = '';
356
+ let codeContext = '';
246
357
  // Step 1: Generate domain-specific knowledge if enabled
247
358
  if (knowledgeEnhancement) {
248
359
  try {
@@ -251,11 +362,11 @@ The enhanced AI analysis will provide:
251
362
  technologies: [], // Will be auto-detected from project
252
363
  patterns: [],
253
364
  projectType: 'software-architecture',
254
- existingAdrs: existingAdrs || []
365
+ existingAdrs: existingAdrs || [],
255
366
  }, {
256
367
  domains: ['api-design', 'database-design', 'microservices'],
257
368
  depth: 'intermediate',
258
- cacheEnabled: true
369
+ cacheEnabled: true,
259
370
  });
260
371
  knowledgeContext = `
261
372
  ## Domain-Specific Knowledge Enhancement
@@ -272,6 +383,72 @@ ${knowledgeResult.prompt}
272
383
  knowledgeContext = '<!-- Knowledge generation unavailable -->\n';
273
384
  }
274
385
  }
386
+ // Step 1a: Smart Code Linking - Analyze existing ADRs for related code
387
+ if (existingAdrs && existingAdrs.length > 0) {
388
+ try {
389
+ // For comprehensive analysis, we'll simulate ADR content analysis
390
+ // In a real scenario, this would read actual ADR files
391
+ const mockAdrContent = existingAdrs.join('\n\n');
392
+ const relatedCodeResult = await findRelatedCode('comprehensive-analysis', mockAdrContent, projectPath, {
393
+ useAI: true,
394
+ useRipgrep: true,
395
+ maxFiles: 15,
396
+ includeContent: false,
397
+ });
398
+ if (relatedCodeResult.relatedFiles.length > 0) {
399
+ codeContext = `
400
+ ## Smart Code Linking Analysis
401
+
402
+ Found ${relatedCodeResult.relatedFiles.length} code files related to existing ADRs:
403
+
404
+ ### Related Code Files
405
+ ${relatedCodeResult.relatedFiles
406
+ .map((file, index) => `
407
+ ${index + 1}. **${file.path}** (${file.extension} file)
408
+ - Size: ${file.size} bytes
409
+ - Directory: ${file.directory}
410
+ `)
411
+ .join('')}
412
+
413
+ ### Search Information
414
+ - **Keywords Used**: ${relatedCodeResult.keywords.join(', ')}
415
+ - **Search Patterns**: ${relatedCodeResult.searchPatterns.join(', ')}
416
+ - **Confidence**: ${(relatedCodeResult.confidence * 100).toFixed(1)}%
417
+
418
+ **Analysis Summary**: ${relatedCodeResult.relatedFiles.length} related files found
419
+
420
+ ---
421
+ `;
422
+ }
423
+ else {
424
+ codeContext = `
425
+ ## Smart Code Linking Analysis
426
+
427
+ **Status**: No related code files found for existing ADRs
428
+ **Keywords Searched**: ${relatedCodeResult.keywords.join(', ')}
429
+ **Patterns Used**: ${relatedCodeResult.searchPatterns.join(', ')}
430
+
431
+ This suggests either:
432
+ - ADRs are high-level architectural decisions not yet implemented
433
+ - Code patterns don't match ADR terminology
434
+ - Additional implementation work may be needed
435
+
436
+ ---
437
+ `;
438
+ }
439
+ }
440
+ catch (error) {
441
+ console.warn('[WARNING] Smart Code Linking failed:', error);
442
+ codeContext = `
443
+ ## Smart Code Linking Analysis
444
+
445
+ **Status**: ⚠️ Analysis failed - continuing without code context
446
+ **Error**: ${error instanceof Error ? error.message : 'Unknown error'}
447
+
448
+ ---
449
+ `;
450
+ }
451
+ }
275
452
  // Step 2: Apply Reflexion learning if enabled
276
453
  if (learningEnabled) {
277
454
  try {
@@ -300,7 +477,7 @@ ${memoryResult.prompt}
300
477
  const reflexionConfig = createToolReflexionConfig('suggest_adrs', {
301
478
  reflectionDepth: 'detailed',
302
479
  evaluationCriteria: ['task-success', 'relevance', 'clarity'],
303
- learningRate: 0.7
480
+ learningRate: 0.7,
304
481
  });
305
482
  const reflexionResult = await executeWithReflexion({
306
483
  prompt: implicitResult.analysisPrompt,
@@ -310,8 +487,8 @@ ${memoryResult.prompt}
310
487
  analysisType: 'comprehensive',
311
488
  existingAdrs,
312
489
  knowledgeEnhanced: knowledgeEnhancement,
313
- learningEnabled: true
314
- }
490
+ learningEnabled: true,
491
+ },
315
492
  }, reflexionConfig);
316
493
  enhancedPrompt = `
317
494
  ## Enhanced Analysis with Learning
@@ -344,12 +521,15 @@ ${reflexionResult.prompt}
344
521
  - **Knowledge Generation**: ${knowledgeEnhancement ? '✅ Enabled' : '❌ Disabled'}
345
522
  - **Reflexion Learning**: ${learningEnabled ? '✅ Enabled' : '❌ Disabled'}
346
523
  - **Enhanced Mode**: ${enhancedMode ? '✅ Enabled' : '❌ Disabled'}
524
+ - **Smart Code Linking**: ${existingAdrs && existingAdrs.length > 0 ? '✅ Enabled' : '❌ No existing ADRs'}
347
525
 
348
526
  ## Project Analysis
349
527
  - **Project Path**: ${projectPath}
350
528
  - **Existing ADRs**: ${existingAdrs?.length || 0} ADRs provided
351
529
  - **Analysis Type**: Comprehensive (AI-driven with enhancements)
352
530
 
531
+ ${codeContext}
532
+
353
533
  ${knowledgeContext}
354
534
 
355
535
  ${reflexionContext}
@@ -401,12 +581,15 @@ This enhanced analysis uses advanced prompting techniques to provide superior AD
401
581
  - **Knowledge Generation**: ${knowledgeEnhancement ? '✅ Enabled' : '❌ Disabled'}
402
582
  - **Reflexion Learning**: ${learningEnabled ? '✅ Enabled' : '❌ Disabled'}
403
583
  - **Enhanced Mode**: ${enhancedMode ? '✅ Enabled' : '❌ Disabled'}
584
+ - **Smart Code Linking**: ${existingAdrs && existingAdrs.length > 0 ? '✅ Enabled' : '❌ No existing ADRs'}
404
585
 
405
586
  ## Project Analysis
406
587
  - **Project Path**: ${projectPath}
407
588
  - **Existing ADRs**: ${existingAdrs?.length || 0} ADRs provided
408
589
  - **Analysis Type**: Comprehensive (AI-driven with enhancements)
409
590
 
591
+ ${codeContext}
592
+
410
593
  ${knowledgeContext}
411
594
 
412
595
  ${reflexionContext}
@@ -534,7 +717,7 @@ To save this ADR to your project:
534
717
  }
535
718
  else {
536
719
  // Fallback to prompt-only mode
537
- const { ensureDirectory, writeFile } = await import('../utils/file-system.js');
720
+ const { ensureDirectoryCompat: ensureDirectory, writeFileCompat: writeFile } = await import('../utils/file-system.js');
538
721
  const ensureDirPrompt = await ensureDirectory(adrDirectory);
539
722
  const writeFilePrompt = await writeFile(fullPath, '[ADR_CONTENT_PLACEHOLDER]');
540
723
  return {
@@ -599,15 +782,13 @@ export async function discoverExistingAdrs(args) {
599
782
  try {
600
783
  // INITIALIZE COMPLETE CACHE INFRASTRUCTURE (since this is typically the first command)
601
784
  console.log('🚀 Initializing complete cache infrastructure...');
602
- // 1. Initialize TodoJsonManager (creates todo-data.json and cache directory)
603
- const { TodoJsonManager } = await import('../utils/todo-json-manager.js');
604
- const todoManager = new TodoJsonManager(projectPath);
605
- await todoManager.loadTodoData(); // Creates cache dir and todo-data.json
785
+ // 1. TodoJsonManager removed - use mcp-shrimp-task-manager for task management
786
+ console.warn('⚠️ TodoJsonManager is deprecated and was removed in memory-centric transformation');
787
+ // Skip todo initialization - TodoJsonManager removed
606
788
  console.log('✅ Initialized todo-data.json and cache directory');
607
- // 2. Initialize ProjectHealthScoring (creates project-health-scores.json)
608
- const { ProjectHealthScoring } = await import('../utils/project-health-scoring.js');
609
- const healthScoring = new ProjectHealthScoring(projectPath);
610
- await healthScoring.getProjectHealthScore(); // Creates project-health-scores.json
789
+ // 2. ProjectHealthScoring removed - use relationship-based importance instead
790
+ console.warn('⚠️ ProjectHealthScoring is deprecated and was removed in memory-centric transformation');
791
+ // Skip health scoring initialization - ProjectHealthScoring removed
611
792
  console.log('✅ Initialized project-health-scores.json');
612
793
  // 3. Initialize KnowledgeGraphManager (creates knowledge-graph-snapshots.json and todo-sync-state.json)
613
794
  // Set PROJECT_PATH temporarily for proper initialization
@@ -651,8 +832,9 @@ export async function discoverExistingAdrs(args) {
651
832
 
652
833
  ## Discovered ADRs
653
834
 
654
- ${discoveryResult.adrs.length > 0 ?
655
- discoveryResult.adrs.map(adr => `
835
+ ${discoveryResult.adrs.length > 0
836
+ ? discoveryResult.adrs
837
+ .map(adr => `
656
838
  ### ${adr.title}
657
839
  - **File**: ${adr.filename}
658
840
  - **Status**: ${adr.status}
@@ -661,14 +843,17 @@ ${discoveryResult.adrs.length > 0 ?
661
843
  ${adr.metadata?.number ? `- **Number**: ${adr.metadata.number}` : ''}
662
844
  ${adr.metadata?.category ? `- **Category**: ${adr.metadata.category}` : ''}
663
845
  ${adr.metadata?.tags?.length ? `- **Tags**: ${adr.metadata.tags.join(', ')}` : ''}
664
- ${includeContent && adr.content ? `
846
+ ${includeContent && adr.content
847
+ ? `
665
848
 
666
849
  #### Content Preview
667
850
  \`\`\`markdown
668
851
  ${adr.content.slice(0, 500)}${adr.content.length > 500 ? '...' : ''}
669
852
  \`\`\`
670
- ` : ''}
671
- `).join('\n')
853
+ `
854
+ : ''}
855
+ `)
856
+ .join('\n')
672
857
  : 'No ADRs found in the specified directory.'}
673
858
 
674
859
  ## Summary Statistics
@@ -726,13 +911,126 @@ For programmatic use, the raw discovery data is:
726
911
  \`\`\`json
727
912
  ${JSON.stringify(discoveryResult, null, 2)}
728
913
  \`\`\`
729
- `
730
- }
731
- ]
914
+ `,
915
+ },
916
+ ],
732
917
  };
733
918
  }
734
919
  catch (error) {
735
920
  throw new McpAdrError(`Failed to discover ADRs: ${error instanceof Error ? error.message : String(error)}`, 'DISCOVERY_ERROR');
736
921
  }
737
922
  }
923
+ /**
924
+ * Perform tree-sitter analysis for code change architectural impact
925
+ */
926
+ async function performTreeSitterCodeChangeAnalysis(beforeCode, afterCode, _changeDescription) {
927
+ const analyzer = new TreeSitterAnalyzer();
928
+ const { writeFileSync, unlinkSync } = await import('fs');
929
+ const { join } = await import('path');
930
+ const { tmpdir } = await import('os');
931
+ const results = {
932
+ architecturalChanges: [],
933
+ securityImpacts: [],
934
+ complexityDelta: 0,
935
+ newDependencies: [],
936
+ };
937
+ try {
938
+ // Determine file extension based on content patterns
939
+ let extension = '.txt';
940
+ if (beforeCode.includes('import ') ||
941
+ beforeCode.includes('export ') ||
942
+ beforeCode.includes('function ')) {
943
+ extension =
944
+ beforeCode.includes('interface ') || beforeCode.includes(': string') ? '.ts' : '.js';
945
+ }
946
+ else if (beforeCode.includes('def ') || beforeCode.includes('import ')) {
947
+ extension = '.py';
948
+ }
949
+ // Create temporary files for analysis
950
+ const beforeFile = join(tmpdir(), `before-analysis-${Date.now()}${extension}`);
951
+ const afterFile = join(tmpdir(), `after-analysis-${Date.now()}${extension}`);
952
+ writeFileSync(beforeFile, beforeCode);
953
+ writeFileSync(afterFile, afterCode);
954
+ try {
955
+ // Analyze both versions
956
+ const beforeAnalysis = await analyzer.analyzeFile(beforeFile);
957
+ const afterAnalysis = await analyzer.analyzeFile(afterFile);
958
+ // Compare complexity
959
+ const beforeComplexity = beforeAnalysis.functions?.reduce((sum, func) => sum + func.complexity, 0) || 0;
960
+ const afterComplexity = afterAnalysis.functions?.reduce((sum, func) => sum + func.complexity, 0) || 0;
961
+ results.complexityDelta = afterComplexity - beforeComplexity;
962
+ // Detect new dependencies
963
+ const beforeImports = new Set(beforeAnalysis.imports?.map(imp => imp.module) || []);
964
+ const afterImports = afterAnalysis.imports?.map(imp => imp.module) || [];
965
+ for (const imp of afterImports) {
966
+ if (!beforeImports.has(imp)) {
967
+ const riskLevel = imp.includes('eval') || imp.includes('exec') || imp.includes('shell')
968
+ ? 'high'
969
+ : imp.includes('crypto') || imp.includes('auth')
970
+ ? 'medium'
971
+ : 'low';
972
+ results.newDependencies.push({
973
+ name: imp,
974
+ reason: `New dependency introduced in code change`,
975
+ riskLevel,
976
+ });
977
+ }
978
+ }
979
+ // Detect architectural changes
980
+ const beforeFunctions = beforeAnalysis.functions?.map(f => f.name) || [];
981
+ const afterFunctions = afterAnalysis.functions?.map(f => f.name) || [];
982
+ // New functions
983
+ for (const funcName of afterFunctions) {
984
+ if (!beforeFunctions.includes(funcName)) {
985
+ const funcType = funcName.toLowerCase().includes('controller')
986
+ ? 'controller'
987
+ : funcName.toLowerCase().includes('service')
988
+ ? 'service'
989
+ : funcName.toLowerCase().includes('repository')
990
+ ? 'repository'
991
+ : 'function';
992
+ results.architecturalChanges.push({
993
+ type: 'new_component',
994
+ description: `New ${funcType}: ${funcName}`,
995
+ impact: funcType === 'controller' ? 'high' : funcType === 'service' ? 'medium' : 'low',
996
+ });
997
+ }
998
+ }
999
+ // Security impact analysis
1000
+ const beforeSecrets = beforeAnalysis.secrets?.length || 0;
1001
+ const afterSecrets = afterAnalysis.secrets?.length || 0;
1002
+ if (afterSecrets > beforeSecrets) {
1003
+ results.securityImpacts.push({
1004
+ type: 'secret_introduction',
1005
+ description: `${afterSecrets - beforeSecrets} new secrets detected in code`,
1006
+ severity: 'high',
1007
+ });
1008
+ }
1009
+ // Check for security issues
1010
+ if (afterAnalysis.securityIssues && afterAnalysis.securityIssues.length > 0) {
1011
+ for (const issue of afterAnalysis.securityIssues) {
1012
+ results.securityImpacts.push({
1013
+ type: issue.type,
1014
+ description: issue.message,
1015
+ severity: issue.severity,
1016
+ });
1017
+ }
1018
+ }
1019
+ }
1020
+ finally {
1021
+ // Clean up temp files
1022
+ try {
1023
+ unlinkSync(beforeFile);
1024
+ unlinkSync(afterFile);
1025
+ }
1026
+ catch {
1027
+ // Ignore cleanup errors
1028
+ }
1029
+ }
1030
+ }
1031
+ catch (error) {
1032
+ console.warn('Tree-sitter code change analysis failed:', error);
1033
+ }
1034
+ return results;
1035
+ }
738
1036
  //# sourceMappingURL=adr-suggestion-tool.js.map