mcp-adr-analysis-server 2.1.9 → 2.1.20

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 (408) hide show
  1. package/README.md +55 -8
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/index.d.ts +78 -2
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1793 -577
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/prompts/index.d.ts.map +1 -1
  8. package/dist/src/prompts/index.js +23 -6
  9. package/dist/src/prompts/index.js.map +1 -1
  10. package/dist/src/prompts/validated-pattern-prompts.d.ts +33 -0
  11. package/dist/src/prompts/validated-pattern-prompts.d.ts.map +1 -0
  12. package/dist/src/prompts/validated-pattern-prompts.js +337 -0
  13. package/dist/src/prompts/validated-pattern-prompts.js.map +1 -0
  14. package/dist/src/resources/adr-by-id-resource.d.ts +116 -0
  15. package/dist/src/resources/adr-by-id-resource.d.ts.map +1 -0
  16. package/dist/src/resources/adr-by-id-resource.js +213 -0
  17. package/dist/src/resources/adr-by-id-resource.js.map +1 -0
  18. package/dist/src/resources/code-quality-resource.d.ts +105 -0
  19. package/dist/src/resources/code-quality-resource.d.ts.map +1 -0
  20. package/dist/src/resources/code-quality-resource.js +282 -0
  21. package/dist/src/resources/code-quality-resource.js.map +1 -0
  22. package/dist/src/resources/deployment-history-resource.d.ts +214 -0
  23. package/dist/src/resources/deployment-history-resource.d.ts.map +1 -0
  24. package/dist/src/resources/deployment-history-resource.js +308 -0
  25. package/dist/src/resources/deployment-history-resource.js.map +1 -0
  26. package/dist/src/resources/deployment-status-resource.d.ts +256 -0
  27. package/dist/src/resources/deployment-status-resource.d.ts.map +1 -0
  28. package/dist/src/resources/deployment-status-resource.js +665 -0
  29. package/dist/src/resources/deployment-status-resource.js.map +1 -0
  30. package/dist/src/resources/environment-analysis-resource.d.ts +237 -0
  31. package/dist/src/resources/environment-analysis-resource.d.ts.map +1 -0
  32. package/dist/src/resources/environment-analysis-resource.js +646 -0
  33. package/dist/src/resources/environment-analysis-resource.js.map +1 -0
  34. package/dist/src/resources/index.d.ts +6 -2
  35. package/dist/src/resources/index.d.ts.map +1 -1
  36. package/dist/src/resources/index.js +247 -492
  37. package/dist/src/resources/index.js.map +1 -1
  38. package/dist/src/resources/memory-snapshots-resource.d.ts +180 -0
  39. package/dist/src/resources/memory-snapshots-resource.d.ts.map +1 -0
  40. package/dist/src/resources/memory-snapshots-resource.js +847 -0
  41. package/dist/src/resources/memory-snapshots-resource.js.map +1 -0
  42. package/dist/src/resources/pattern-base-code-by-platform-resource.d.ts +35 -0
  43. package/dist/src/resources/pattern-base-code-by-platform-resource.d.ts.map +1 -0
  44. package/dist/src/resources/pattern-base-code-by-platform-resource.js +72 -0
  45. package/dist/src/resources/pattern-base-code-by-platform-resource.js.map +1 -0
  46. package/dist/src/resources/pattern-by-name-resource.d.ts +53 -0
  47. package/dist/src/resources/pattern-by-name-resource.d.ts.map +1 -0
  48. package/dist/src/resources/pattern-by-name-resource.js +200 -0
  49. package/dist/src/resources/pattern-by-name-resource.js.map +1 -0
  50. package/dist/src/resources/pattern-sources-by-platform-resource.d.ts +26 -0
  51. package/dist/src/resources/pattern-sources-by-platform-resource.d.ts.map +1 -0
  52. package/dist/src/resources/pattern-sources-by-platform-resource.js +59 -0
  53. package/dist/src/resources/pattern-sources-by-platform-resource.js.map +1 -0
  54. package/dist/src/resources/project-metrics-resource.d.ts +180 -0
  55. package/dist/src/resources/project-metrics-resource.d.ts.map +1 -0
  56. package/dist/src/resources/project-metrics-resource.js +487 -0
  57. package/dist/src/resources/project-metrics-resource.js.map +1 -0
  58. package/dist/src/resources/project-status-resource.d.ts +75 -0
  59. package/dist/src/resources/project-status-resource.d.ts.map +1 -0
  60. package/dist/src/resources/project-status-resource.js +189 -0
  61. package/dist/src/resources/project-status-resource.js.map +1 -0
  62. package/dist/src/resources/research-by-topic-resource.d.ts +21 -0
  63. package/dist/src/resources/research-by-topic-resource.d.ts.map +1 -0
  64. package/dist/src/resources/research-by-topic-resource.js +125 -0
  65. package/dist/src/resources/research-by-topic-resource.js.map +1 -0
  66. package/dist/src/resources/research-index-resource.d.ts +100 -0
  67. package/dist/src/resources/research-index-resource.d.ts.map +1 -0
  68. package/dist/src/resources/research-index-resource.js +200 -0
  69. package/dist/src/resources/research-index-resource.js.map +1 -0
  70. package/dist/src/resources/resource-cache.d.ts +144 -0
  71. package/dist/src/resources/resource-cache.d.ts.map +1 -0
  72. package/dist/src/resources/resource-cache.js +316 -0
  73. package/dist/src/resources/resource-cache.js.map +1 -0
  74. package/dist/src/resources/resource-router.d.ts +45 -0
  75. package/dist/src/resources/resource-router.d.ts.map +1 -0
  76. package/dist/src/resources/resource-router.js +96 -0
  77. package/dist/src/resources/resource-router.js.map +1 -0
  78. package/dist/src/resources/rule-by-id-resource.d.ts +38 -0
  79. package/dist/src/resources/rule-by-id-resource.d.ts.map +1 -0
  80. package/dist/src/resources/rule-by-id-resource.js +104 -0
  81. package/dist/src/resources/rule-by-id-resource.js.map +1 -0
  82. package/dist/src/resources/rule-catalog-resource.d.ts +126 -0
  83. package/dist/src/resources/rule-catalog-resource.d.ts.map +1 -0
  84. package/dist/src/resources/rule-catalog-resource.js +224 -0
  85. package/dist/src/resources/rule-catalog-resource.js.map +1 -0
  86. package/dist/src/resources/rule-generation-resource.d.ts +80 -0
  87. package/dist/src/resources/rule-generation-resource.d.ts.map +1 -0
  88. package/dist/src/resources/rule-generation-resource.js +282 -0
  89. package/dist/src/resources/rule-generation-resource.js.map +1 -0
  90. package/dist/src/resources/technology-by-name-resource.d.ts +43 -0
  91. package/dist/src/resources/technology-by-name-resource.d.ts.map +1 -0
  92. package/dist/src/resources/technology-by-name-resource.js +176 -0
  93. package/dist/src/resources/technology-by-name-resource.js.map +1 -0
  94. package/dist/src/resources/todo-by-id-resource.d.ts +46 -0
  95. package/dist/src/resources/todo-by-id-resource.d.ts.map +1 -0
  96. package/dist/src/resources/todo-by-id-resource.js +192 -0
  97. package/dist/src/resources/todo-by-id-resource.js.map +1 -0
  98. package/dist/src/resources/todo-list-resource.d.ts +96 -0
  99. package/dist/src/resources/todo-list-resource.d.ts.map +1 -0
  100. package/dist/src/resources/todo-list-resource.js +209 -0
  101. package/dist/src/resources/todo-list-resource.js.map +1 -0
  102. package/dist/src/resources/validated-pattern-by-platform-resource.d.ts +14 -0
  103. package/dist/src/resources/validated-pattern-by-platform-resource.d.ts.map +1 -0
  104. package/dist/src/resources/validated-pattern-by-platform-resource.js +45 -0
  105. package/dist/src/resources/validated-pattern-by-platform-resource.js.map +1 -0
  106. package/dist/src/resources/validated-patterns-catalog-resource.d.ts +36 -0
  107. package/dist/src/resources/validated-patterns-catalog-resource.d.ts.map +1 -0
  108. package/dist/src/resources/validated-patterns-catalog-resource.js +57 -0
  109. package/dist/src/resources/validated-patterns-catalog-resource.js.map +1 -0
  110. package/dist/src/templates/domain-knowledge-templates.d.ts.map +1 -1
  111. package/dist/src/templates/domain-knowledge-templates.js +49 -49
  112. package/dist/src/templates/domain-knowledge-templates.js.map +1 -1
  113. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -1
  114. package/dist/src/tools/adr-bootstrap-validation-tool.js +214 -4
  115. package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -1
  116. package/dist/src/tools/adr-suggestion-tool.d.ts +2 -2
  117. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  118. package/dist/src/tools/adr-suggestion-tool.js +129 -12
  119. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  120. package/dist/src/tools/adr-validation-tool.d.ts +98 -0
  121. package/dist/src/tools/adr-validation-tool.d.ts.map +1 -0
  122. package/dist/src/tools/adr-validation-tool.js +372 -0
  123. package/dist/src/tools/adr-validation-tool.js.map +1 -0
  124. package/dist/src/tools/bootstrap-validation-loop-tool.d.ts +262 -0
  125. package/dist/src/tools/bootstrap-validation-loop-tool.d.ts.map +1 -0
  126. package/dist/src/tools/bootstrap-validation-loop-tool.js +1934 -0
  127. package/dist/src/tools/bootstrap-validation-loop-tool.js.map +1 -0
  128. package/dist/src/tools/conversation-memory-tool.d.ts +48 -0
  129. package/dist/src/tools/conversation-memory-tool.d.ts.map +1 -0
  130. package/dist/src/tools/conversation-memory-tool.js +254 -0
  131. package/dist/src/tools/conversation-memory-tool.js.map +1 -0
  132. package/dist/src/tools/deployment-analysis-tool.d.ts.map +1 -1
  133. package/dist/src/tools/deployment-analysis-tool.js +82 -6
  134. package/dist/src/tools/deployment-analysis-tool.js.map +1 -1
  135. package/dist/src/tools/deployment-guidance-tool.d.ts.map +1 -1
  136. package/dist/src/tools/deployment-guidance-tool.js +126 -25
  137. package/dist/src/tools/deployment-guidance-tool.js.map +1 -1
  138. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  139. package/dist/src/tools/deployment-readiness-tool.js +166 -5
  140. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  141. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  142. package/dist/src/tools/environment-analysis-tool.js +36 -1
  143. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  144. package/dist/src/tools/expand-analysis-tool.d.ts +23 -0
  145. package/dist/src/tools/expand-analysis-tool.d.ts.map +1 -0
  146. package/dist/src/tools/expand-analysis-tool.js +107 -0
  147. package/dist/src/tools/expand-analysis-tool.js.map +1 -0
  148. package/dist/src/tools/get-server-context-tool.d.ts +67 -0
  149. package/dist/src/tools/get-server-context-tool.d.ts.map +1 -0
  150. package/dist/src/tools/get-server-context-tool.js +75 -0
  151. package/dist/src/tools/get-server-context-tool.js.map +1 -0
  152. package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
  153. package/dist/src/tools/interactive-adr-planning-tool.js +82 -9
  154. package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
  155. package/dist/src/tools/llm-cloud-management-tool.d.ts +62 -0
  156. package/dist/src/tools/llm-cloud-management-tool.d.ts.map +1 -0
  157. package/dist/src/tools/llm-cloud-management-tool.js +202 -0
  158. package/dist/src/tools/llm-cloud-management-tool.js.map +1 -0
  159. package/dist/src/tools/llm-database-management-tool.d.ts +62 -0
  160. package/dist/src/tools/llm-database-management-tool.d.ts.map +1 -0
  161. package/dist/src/tools/llm-database-management-tool.js +203 -0
  162. package/dist/src/tools/llm-database-management-tool.js.map +1 -0
  163. package/dist/src/tools/llm-web-search-tool.d.ts +59 -0
  164. package/dist/src/tools/llm-web-search-tool.d.ts.map +1 -0
  165. package/dist/src/tools/llm-web-search-tool.js +165 -0
  166. package/dist/src/tools/llm-web-search-tool.js.map +1 -0
  167. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  168. package/dist/src/tools/mcp-planning-tool.js +10 -3
  169. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  170. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -1
  171. package/dist/src/tools/memory-loading-tool.js +4 -2
  172. package/dist/src/tools/memory-loading-tool.js.map +1 -1
  173. package/dist/src/tools/perform-research-tool.d.ts +61 -0
  174. package/dist/src/tools/perform-research-tool.d.ts.map +1 -0
  175. package/dist/src/tools/perform-research-tool.js +324 -0
  176. package/dist/src/tools/perform-research-tool.js.map +1 -0
  177. package/dist/src/tools/research-question-tool.d.ts.map +1 -1
  178. package/dist/src/tools/research-question-tool.js +11 -9
  179. package/dist/src/tools/research-question-tool.js.map +1 -1
  180. package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -1
  181. package/dist/src/tools/review-existing-adrs-tool.js +42 -3
  182. package/dist/src/tools/review-existing-adrs-tool.js.map +1 -1
  183. package/dist/src/tools/tool-chain-orchestrator.d.ts +15 -94
  184. package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
  185. package/dist/src/tools/tool-chain-orchestrator.js +2 -2
  186. package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
  187. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +25 -120
  188. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  189. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +91 -2
  190. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  191. package/dist/src/types/ape-framework.d.ts +50 -283
  192. package/dist/src/types/ape-framework.d.ts.map +1 -1
  193. package/dist/src/types/conversation-context.d.ts.map +1 -1
  194. package/dist/src/types/conversation-context.js +12 -12
  195. package/dist/src/types/conversation-context.js.map +1 -1
  196. package/dist/src/types/conversation-memory.d.ts +184 -0
  197. package/dist/src/types/conversation-memory.d.ts.map +1 -0
  198. package/dist/src/types/conversation-memory.js +8 -0
  199. package/dist/src/types/conversation-memory.js.map +1 -0
  200. package/dist/src/types/index.d.ts +112 -339
  201. package/dist/src/types/index.d.ts.map +1 -1
  202. package/dist/src/types/knowledge-generation.d.ts +96 -401
  203. package/dist/src/types/knowledge-generation.d.ts.map +1 -1
  204. package/dist/src/types/knowledge-graph-schemas.d.ts +77 -715
  205. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  206. package/dist/src/types/knowledge-graph-schemas.js +8 -8
  207. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  208. package/dist/src/types/memory-entities.d.ts +1230 -6164
  209. package/dist/src/types/memory-entities.d.ts.map +1 -1
  210. package/dist/src/types/memory-entities.js +8 -8
  211. package/dist/src/types/memory-entities.js.map +1 -1
  212. package/dist/src/types/reflexion-framework.d.ts +35 -264
  213. package/dist/src/types/reflexion-framework.d.ts.map +1 -1
  214. package/dist/src/types/reflexion-framework.js +1 -1
  215. package/dist/src/types/reflexion-framework.js.map +1 -1
  216. package/dist/src/types/state-reinforcement.d.ts +87 -0
  217. package/dist/src/types/state-reinforcement.d.ts.map +1 -0
  218. package/dist/src/types/state-reinforcement.js +5 -0
  219. package/dist/src/types/state-reinforcement.js.map +1 -0
  220. package/dist/src/types/tiered-response.d.ts +61 -0
  221. package/dist/src/types/tiered-response.d.ts.map +1 -0
  222. package/dist/src/types/tiered-response.js +8 -0
  223. package/dist/src/types/tiered-response.js.map +1 -0
  224. package/dist/src/types/tool-context.d.ts +50 -0
  225. package/dist/src/types/tool-context.d.ts.map +1 -0
  226. package/dist/src/types/tool-context.js +20 -0
  227. package/dist/src/types/tool-context.js.map +1 -0
  228. package/dist/src/utils/adr-action-analyzer.d.ts +23 -0
  229. package/dist/src/utils/adr-action-analyzer.d.ts.map +1 -0
  230. package/dist/src/utils/adr-action-analyzer.js +323 -0
  231. package/dist/src/utils/adr-action-analyzer.js.map +1 -0
  232. package/dist/src/utils/adr-context-detector.d.ts +33 -0
  233. package/dist/src/utils/adr-context-detector.d.ts.map +1 -0
  234. package/dist/src/utils/adr-context-detector.js +279 -0
  235. package/dist/src/utils/adr-context-detector.js.map +1 -0
  236. package/dist/src/utils/adr-discovery.d.ts +28 -2
  237. package/dist/src/utils/adr-discovery.d.ts.map +1 -1
  238. package/dist/src/utils/adr-discovery.js +91 -7
  239. package/dist/src/utils/adr-discovery.js.map +1 -1
  240. package/dist/src/utils/adr-knowledge-initializer.d.ts +54 -0
  241. package/dist/src/utils/adr-knowledge-initializer.d.ts.map +1 -0
  242. package/dist/src/utils/adr-knowledge-initializer.js +240 -0
  243. package/dist/src/utils/adr-knowledge-initializer.js.map +1 -0
  244. package/dist/src/utils/adr-timeline-extractor.d.ts +21 -0
  245. package/dist/src/utils/adr-timeline-extractor.d.ts.map +1 -0
  246. package/dist/src/utils/adr-timeline-extractor.js +294 -0
  247. package/dist/src/utils/adr-timeline-extractor.js.map +1 -0
  248. package/dist/src/utils/adr-timeline-types.d.ts +234 -0
  249. package/dist/src/utils/adr-timeline-types.d.ts.map +1 -0
  250. package/dist/src/utils/adr-timeline-types.js +7 -0
  251. package/dist/src/utils/adr-timeline-types.js.map +1 -0
  252. package/dist/src/utils/ai-executor.d.ts +36 -0
  253. package/dist/src/utils/ai-executor.d.ts.map +1 -1
  254. package/dist/src/utils/ai-executor.js +39 -3
  255. package/dist/src/utils/ai-executor.js.map +1 -1
  256. package/dist/src/utils/apply-cot-enhancement.d.ts.map +1 -1
  257. package/dist/src/utils/apply-cot-enhancement.js +15 -15
  258. package/dist/src/utils/apply-cot-enhancement.js.map +1 -1
  259. package/dist/src/utils/automatic-prompt-engineering.d.ts.map +1 -1
  260. package/dist/src/utils/automatic-prompt-engineering.js +68 -58
  261. package/dist/src/utils/automatic-prompt-engineering.js.map +1 -1
  262. package/dist/src/utils/conditional-request.d.ts +105 -0
  263. package/dist/src/utils/conditional-request.d.ts.map +1 -0
  264. package/dist/src/utils/conditional-request.js +186 -0
  265. package/dist/src/utils/conditional-request.js.map +1 -0
  266. package/dist/src/utils/config.d.ts +72 -18
  267. package/dist/src/utils/config.d.ts.map +1 -1
  268. package/dist/src/utils/config.js +75 -0
  269. package/dist/src/utils/config.js.map +1 -1
  270. package/dist/src/utils/context-document-manager.d.ts +112 -0
  271. package/dist/src/utils/context-document-manager.d.ts.map +1 -0
  272. package/dist/src/utils/context-document-manager.js +351 -0
  273. package/dist/src/utils/context-document-manager.js.map +1 -0
  274. package/dist/src/utils/conversation-memory-manager.d.ts +86 -0
  275. package/dist/src/utils/conversation-memory-manager.d.ts.map +1 -0
  276. package/dist/src/utils/conversation-memory-manager.js +443 -0
  277. package/dist/src/utils/conversation-memory-manager.js.map +1 -0
  278. package/dist/src/utils/dag-executor.d.ts +106 -0
  279. package/dist/src/utils/dag-executor.d.ts.map +1 -0
  280. package/dist/src/utils/dag-executor.js +453 -0
  281. package/dist/src/utils/dag-executor.js.map +1 -0
  282. package/dist/src/utils/deployment-analysis.d.ts.map +1 -1
  283. package/dist/src/utils/deployment-analysis.js +17 -9
  284. package/dist/src/utils/deployment-analysis.js.map +1 -1
  285. package/dist/src/utils/deployment-type-registry.d.ts +52 -0
  286. package/dist/src/utils/deployment-type-registry.d.ts.map +1 -0
  287. package/dist/src/utils/deployment-type-registry.js +543 -0
  288. package/dist/src/utils/deployment-type-registry.js.map +1 -0
  289. package/dist/src/utils/dynamic-deployment-intelligence.d.ts +117 -0
  290. package/dist/src/utils/dynamic-deployment-intelligence.d.ts.map +1 -0
  291. package/dist/src/utils/dynamic-deployment-intelligence.js +445 -0
  292. package/dist/src/utils/dynamic-deployment-intelligence.js.map +1 -0
  293. package/dist/src/utils/environment-analysis.d.ts.map +1 -1
  294. package/dist/src/utils/environment-analysis.js +63 -44
  295. package/dist/src/utils/environment-analysis.js.map +1 -1
  296. package/dist/src/utils/environment-capability-registry.d.ts +101 -0
  297. package/dist/src/utils/environment-capability-registry.d.ts.map +1 -0
  298. package/dist/src/utils/environment-capability-registry.js +489 -0
  299. package/dist/src/utils/environment-capability-registry.js.map +1 -0
  300. package/dist/src/utils/index.d.ts +3 -3
  301. package/dist/src/utils/index.d.ts.map +1 -1
  302. package/dist/src/utils/index.js +3 -3
  303. package/dist/src/utils/index.js.map +1 -1
  304. package/dist/src/utils/knowledge-generation.d.ts.map +1 -1
  305. package/dist/src/utils/knowledge-generation.js +61 -35
  306. package/dist/src/utils/knowledge-generation.js.map +1 -1
  307. package/dist/src/utils/knowledge-graph-manager.d.ts +19 -0
  308. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  309. package/dist/src/utils/knowledge-graph-manager.js +165 -1
  310. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  311. package/dist/src/utils/llm-artifact-detector.d.ts.map +1 -1
  312. package/dist/src/utils/llm-artifact-detector.js +28 -24
  313. package/dist/src/utils/llm-artifact-detector.js.map +1 -1
  314. package/dist/src/utils/mermaid-diagrams.d.ts +101 -0
  315. package/dist/src/utils/mermaid-diagrams.d.ts.map +1 -0
  316. package/dist/src/utils/mermaid-diagrams.js +445 -0
  317. package/dist/src/utils/mermaid-diagrams.js.map +1 -0
  318. package/dist/src/utils/monitoring.d.ts +249 -0
  319. package/dist/src/utils/monitoring.d.ts.map +1 -0
  320. package/dist/src/utils/monitoring.js +513 -0
  321. package/dist/src/utils/monitoring.js.map +1 -0
  322. package/dist/src/utils/pattern-contribution-helper.d.ts +60 -0
  323. package/dist/src/utils/pattern-contribution-helper.d.ts.map +1 -0
  324. package/dist/src/utils/pattern-contribution-helper.js +308 -0
  325. package/dist/src/utils/pattern-contribution-helper.js.map +1 -0
  326. package/dist/src/utils/pattern-loader.d.ts +183 -0
  327. package/dist/src/utils/pattern-loader.d.ts.map +1 -0
  328. package/dist/src/utils/pattern-loader.js +200 -0
  329. package/dist/src/utils/pattern-loader.js.map +1 -0
  330. package/dist/src/utils/pattern-research-utility.d.ts +107 -0
  331. package/dist/src/utils/pattern-research-utility.d.ts.map +1 -0
  332. package/dist/src/utils/pattern-research-utility.js +360 -0
  333. package/dist/src/utils/pattern-research-utility.js.map +1 -0
  334. package/dist/src/utils/pattern-to-dag-converter.d.ts +62 -0
  335. package/dist/src/utils/pattern-to-dag-converter.d.ts.map +1 -0
  336. package/dist/src/utils/pattern-to-dag-converter.js +265 -0
  337. package/dist/src/utils/pattern-to-dag-converter.js.map +1 -0
  338. package/dist/src/utils/platform-detector.d.ts +86 -0
  339. package/dist/src/utils/platform-detector.d.ts.map +1 -0
  340. package/dist/src/utils/platform-detector.js +509 -0
  341. package/dist/src/utils/platform-detector.js.map +1 -0
  342. package/dist/src/utils/prompt-composition.d.ts.map +1 -1
  343. package/dist/src/utils/prompt-composition.js +1 -4
  344. package/dist/src/utils/prompt-composition.js.map +1 -1
  345. package/dist/src/utils/reflexion.d.ts.map +1 -1
  346. package/dist/src/utils/reflexion.js +51 -42
  347. package/dist/src/utils/reflexion.js.map +1 -1
  348. package/dist/src/utils/research-integration.d.ts.map +1 -1
  349. package/dist/src/utils/research-integration.js +8 -2
  350. package/dist/src/utils/research-integration.js.map +1 -1
  351. package/dist/src/utils/research-orchestrator.d.ts +209 -0
  352. package/dist/src/utils/research-orchestrator.d.ts.map +1 -0
  353. package/dist/src/utils/research-orchestrator.js +863 -0
  354. package/dist/src/utils/research-orchestrator.js.map +1 -0
  355. package/dist/src/utils/research-questions.d.ts.map +1 -1
  356. package/dist/src/utils/research-questions.js +4 -1
  357. package/dist/src/utils/research-questions.js.map +1 -1
  358. package/dist/src/utils/resource-extractor.d.ts +57 -0
  359. package/dist/src/utils/resource-extractor.d.ts.map +1 -0
  360. package/dist/src/utils/resource-extractor.js +323 -0
  361. package/dist/src/utils/resource-extractor.js.map +1 -0
  362. package/dist/src/utils/resource-versioning.d.ts +124 -0
  363. package/dist/src/utils/resource-versioning.d.ts.map +1 -0
  364. package/dist/src/utils/resource-versioning.js +272 -0
  365. package/dist/src/utils/resource-versioning.js.map +1 -0
  366. package/dist/src/utils/root-manager.d.ts +118 -0
  367. package/dist/src/utils/root-manager.d.ts.map +1 -0
  368. package/dist/src/utils/root-manager.js +154 -0
  369. package/dist/src/utils/root-manager.js.map +1 -0
  370. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  371. package/dist/src/utils/rule-generation.js +4 -1
  372. package/dist/src/utils/rule-generation.js.map +1 -1
  373. package/dist/src/utils/server-context-generator.d.ts +47 -0
  374. package/dist/src/utils/server-context-generator.d.ts.map +1 -0
  375. package/dist/src/utils/server-context-generator.js +666 -0
  376. package/dist/src/utils/server-context-generator.js.map +1 -0
  377. package/dist/src/utils/state-reinforcement-manager.d.ts +60 -0
  378. package/dist/src/utils/state-reinforcement-manager.d.ts.map +1 -0
  379. package/dist/src/utils/state-reinforcement-manager.js +200 -0
  380. package/dist/src/utils/state-reinforcement-manager.js.map +1 -0
  381. package/dist/src/utils/system-card-manager.d.ts +194 -0
  382. package/dist/src/utils/system-card-manager.d.ts.map +1 -0
  383. package/dist/src/utils/system-card-manager.js +336 -0
  384. package/dist/src/utils/system-card-manager.js.map +1 -0
  385. package/dist/src/utils/tiered-response-manager.d.ts +40 -0
  386. package/dist/src/utils/tiered-response-manager.d.ts.map +1 -0
  387. package/dist/src/utils/tiered-response-manager.js +243 -0
  388. package/dist/src/utils/tiered-response-manager.js.map +1 -0
  389. package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -1
  390. package/dist/src/utils/tree-sitter-analyzer.js +83 -11
  391. package/dist/src/utils/tree-sitter-analyzer.js.map +1 -1
  392. package/dist/src/utils/validated-pattern-definitions.d.ts +219 -0
  393. package/dist/src/utils/validated-pattern-definitions.d.ts.map +1 -0
  394. package/dist/src/utils/validated-pattern-definitions.js +1511 -0
  395. package/dist/src/utils/validated-pattern-definitions.js.map +1 -0
  396. package/package.json +22 -13
  397. package/dist/src/prompts/todo-prompts.d.ts +0 -49
  398. package/dist/src/prompts/todo-prompts.d.ts.map +0 -1
  399. package/dist/src/prompts/todo-prompts.js +0 -824
  400. package/dist/src/prompts/todo-prompts.js.map +0 -1
  401. package/dist/src/types/todo-json-schemas.d.ts +0 -17
  402. package/dist/src/types/todo-json-schemas.d.ts.map +0 -1
  403. package/dist/src/types/todo-json-schemas.js +0 -9
  404. package/dist/src/types/todo-json-schemas.js.map +0 -1
  405. package/dist/src/utils/todo-file-watcher.d.ts +0 -14
  406. package/dist/src/utils/todo-file-watcher.d.ts.map +0 -1
  407. package/dist/src/utils/todo-file-watcher.js +0 -25
  408. package/dist/src/utils/todo-file-watcher.js.map +0 -1
@@ -0,0 +1,213 @@
1
+ /**
2
+ * ADR by ID Resource - Individual ADR access
3
+ * URI Pattern: adr://adr/{id}
4
+ */
5
+ import * as path from 'path';
6
+ import { McpAdrError } from '../types/index.js';
7
+ import { resourceCache, generateETag } from './resource-cache.js';
8
+ import { resourceRouter } from './resource-router.js';
9
+ /**
10
+ * Find related ADRs based on content analysis
11
+ */
12
+ async function findRelatedAdrs(adr, allAdrs) {
13
+ const related = [];
14
+ // Extract referenced ADR IDs from content
15
+ const content = `${adr.context} ${adr.decision} ${adr.consequences}`;
16
+ const adrReferences = content.match(/ADR[-\s]?(\d+)/gi);
17
+ if (adrReferences) {
18
+ for (const ref of adrReferences) {
19
+ const id = ref.match(/\d+/)?.[0];
20
+ if (id) {
21
+ const relatedAdr = allAdrs.find(a => a.filename.includes(id));
22
+ if (relatedAdr && relatedAdr.filename !== adr.filename) {
23
+ related.push(relatedAdr.filename.replace(/\.md$/, ''));
24
+ }
25
+ }
26
+ }
27
+ }
28
+ return [...new Set(related)];
29
+ }
30
+ /**
31
+ * Validate ADR structure and content
32
+ */
33
+ async function validateAdr(adr) {
34
+ const issues = [];
35
+ let score = 100;
36
+ // Check required sections
37
+ if (!adr.title || adr.title.length < 10) {
38
+ issues.push('Title is too short or missing');
39
+ score -= 10;
40
+ }
41
+ if (!adr.context || adr.context.length < 50) {
42
+ issues.push('Context section is too brief');
43
+ score -= 15;
44
+ }
45
+ if (!adr.decision || adr.decision.length < 50) {
46
+ issues.push('Decision section is too brief');
47
+ score -= 15;
48
+ }
49
+ if (!adr.consequences || adr.consequences.length < 50) {
50
+ issues.push('Consequences section is too brief');
51
+ score -= 15;
52
+ }
53
+ if (!adr.status || !['proposed', 'accepted', 'deprecated', 'superseded'].includes(adr.status)) {
54
+ issues.push('Status is missing or invalid');
55
+ score -= 10;
56
+ }
57
+ return {
58
+ isValid: issues.length === 0,
59
+ issues,
60
+ score: Math.max(0, score),
61
+ };
62
+ }
63
+ /**
64
+ * Generate individual ADR (Architectural Decision Record) resource with enhanced metadata and validation.
65
+ *
66
+ * Retrieves a specific ADR by its unique identifier and enriches it with:
67
+ * - Structural validation scoring
68
+ * - Related ADR discovery through content analysis
69
+ * - Implementation status tracking
70
+ * - Priority and complexity assessment
71
+ * - File metadata (size, location, tags)
72
+ *
73
+ * **URI Pattern:** `adr://adr/{id}`
74
+ *
75
+ * **Query Parameters:**
76
+ * - `projectPath`: Override project root path (default: process.cwd())
77
+ *
78
+ * @param params - URL path parameters containing:
79
+ * - id: ADR identifier (e.g., "001", "database-architecture", or full filename)
80
+ * @param searchParams - URL query parameters for path customization
81
+ *
82
+ * @returns Promise resolving to resource generation result containing:
83
+ * - data: Complete ADR details with validation, relationships, and metadata
84
+ * - contentType: "application/json"
85
+ * - lastModified: ISO timestamp of generation
86
+ * - cacheKey: Unique identifier "adr:{id}"
87
+ * - ttl: Cache duration (600 seconds / 10 minutes)
88
+ * - etag: Entity tag for cache validation
89
+ *
90
+ * @throws {McpAdrError} When ADR retrieval fails due to:
91
+ * - INVALID_PARAMS: Missing required 'id' parameter
92
+ * - RESOURCE_NOT_FOUND: ADR with specified ID not found in directory
93
+ * - RESOURCE_GENERATION_ERROR: ADR discovery or parsing failure
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * // Get ADR by numeric ID
98
+ * const adr = await generateAdrByIdResource(
99
+ * { id: '001' },
100
+ * new URLSearchParams()
101
+ * );
102
+ *
103
+ * console.log(`Title: ${adr.data.title}`);
104
+ * console.log(`Status: ${adr.data.status}`);
105
+ * console.log(`Validation score: ${adr.data.validationResults.score}/100`);
106
+ * console.log(`Related ADRs: ${adr.data.relatedAdrs.join(', ')}`);
107
+ *
108
+ * // Get ADR from custom project path
109
+ * const customAdr = await generateAdrByIdResource(
110
+ * { id: 'database-architecture' },
111
+ * new URLSearchParams('projectPath=/path/to/project')
112
+ * );
113
+ *
114
+ * // Expected output structure:
115
+ * {
116
+ * data: {
117
+ * id: "001",
118
+ * title: "Use PostgreSQL for primary database",
119
+ * status: "accepted",
120
+ * date: "2025-01-15",
121
+ * context: "We need a reliable RDBMS...",
122
+ * decision: "We will use PostgreSQL...",
123
+ * consequences: "- Positive: ACID compliance...",
124
+ * implementationStatus: "completed",
125
+ * priority: "high",
126
+ * complexity: "medium",
127
+ * relatedAdrs: ["002-database-migrations", "005-data-access-layer"],
128
+ * validationResults: {
129
+ * isValid: true,
130
+ * issues: [],
131
+ * score: 95
132
+ * },
133
+ * filePath: "/project/docs/adrs/001-database-choice.md",
134
+ * fileSize: 2048,
135
+ * tags: ["database", "infrastructure"]
136
+ * },
137
+ * contentType: "application/json",
138
+ * cacheKey: "adr:001",
139
+ * ttl: 600
140
+ * }
141
+ * ```
142
+ *
143
+ * @since v2.0.0
144
+ * @see {@link discoverAdrsInDirectory} for ADR discovery logic
145
+ * @see {@link validateAdr} for ADR validation rules
146
+ * @see {@link findRelatedAdrs} for relationship detection
147
+ */
148
+ export async function generateAdrByIdResource(params, searchParams) {
149
+ const id = params['id'];
150
+ if (!id) {
151
+ throw new McpAdrError('Missing required parameter: id', 'INVALID_PARAMS');
152
+ }
153
+ const cacheKey = `adr:${id}`;
154
+ // Check cache
155
+ const cached = await resourceCache.get(cacheKey);
156
+ if (cached) {
157
+ return cached;
158
+ }
159
+ const { discoverAdrsInDirectory } = await import('../utils/adr-discovery.js');
160
+ const pathModule = await import('path');
161
+ // Get ADR directory
162
+ const projectPath = searchParams.get('projectPath') || process.cwd();
163
+ const adrDirectory = pathModule.resolve(projectPath, process.env['ADR_DIRECTORY'] || 'docs/adrs');
164
+ // Discover all ADRs
165
+ const discoveryResult = await discoverAdrsInDirectory(adrDirectory, projectPath, {
166
+ includeContent: true,
167
+ includeTimeline: false,
168
+ });
169
+ // Find matching ADR (by ID in filename or title)
170
+ const adr = discoveryResult.adrs.find(a => a.filename.includes(id) ||
171
+ a.filename.replace(/\.md$/, '').endsWith(id) ||
172
+ a.title.toLowerCase().includes(id.toLowerCase()));
173
+ if (!adr) {
174
+ throw new McpAdrError(`ADR not found: ${id}`, 'RESOURCE_NOT_FOUND');
175
+ }
176
+ // Build detailed ADR data
177
+ const relatedAdrs = await findRelatedAdrs(adr, discoveryResult.adrs);
178
+ const validationResults = await validateAdr(adr);
179
+ const dateStr = new Date().toISOString().split('T')[0];
180
+ const adrDetails = {
181
+ id: adr.filename.replace(/\.md$/, ''),
182
+ title: adr.title || 'Untitled',
183
+ status: adr.status || 'unknown',
184
+ date: dateStr || new Date().toISOString(),
185
+ context: adr.context || '',
186
+ decision: adr.decision || '',
187
+ consequences: adr.consequences || '',
188
+ implementationPlan: '',
189
+ filePath: adr.filename,
190
+ fileName: path.basename(adr.filename),
191
+ fileSize: 0,
192
+ tags: [],
193
+ relatedAdrs,
194
+ priority: 'medium',
195
+ complexity: 'medium',
196
+ implementationStatus: 'not-started',
197
+ validationResults,
198
+ };
199
+ const result = {
200
+ data: adrDetails,
201
+ contentType: 'application/json',
202
+ lastModified: new Date().toISOString(),
203
+ cacheKey,
204
+ ttl: 300, // 5 minutes cache
205
+ etag: generateETag(adrDetails),
206
+ };
207
+ // Cache result
208
+ resourceCache.set(cacheKey, result, result.ttl);
209
+ return result;
210
+ }
211
+ // Register route
212
+ resourceRouter.register('/adr/{id}', generateAdrByIdResource, 'Individual ADR by ID or title match');
213
+ //# sourceMappingURL=adr-by-id-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adr-by-id-resource.js","sourceRoot":"","sources":["../../../src/resources/adr-by-id-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Code Quality Resource
3
+ *
4
+ * Provides comprehensive code quality assessment including metrics, analysis,
5
+ * and recommendations. Bridges to deployment-readiness-tool for TreeSitter
6
+ * analysis and smart-score-tool for quality scoring.
7
+ *
8
+ * URI: adr://code_quality
9
+ *
10
+ * Query Parameters:
11
+ * - scope: Analysis scope (full, changes, critical) - default: full
12
+ * - includeMetrics: Include detailed metrics (true, false) - default: true
13
+ * - includeRecommendations: Include improvement recommendations (true, false) - default: true
14
+ * - threshold: Minimum quality score threshold (0-100) - default: 70
15
+ * - format: Output format (summary, detailed) - default: detailed
16
+ *
17
+ * Example URIs:
18
+ * - adr://code_quality
19
+ * - adr://code_quality?scope=changes
20
+ * - adr://code_quality?threshold=80&format=summary
21
+ * - adr://code_quality?includeRecommendations=true
22
+ */
23
+ import { URLSearchParams } from 'url';
24
+ export interface CodeQualityResult {
25
+ scope: string;
26
+ timestamp: string;
27
+ overallScore: number;
28
+ grade: 'A' | 'B' | 'C' | 'D' | 'F';
29
+ metrics: {
30
+ productionCodeScore: number;
31
+ mockCodeIndicators: number;
32
+ productionCodeThreshold: number;
33
+ codebaseSize: {
34
+ totalFiles: number;
35
+ totalLines: number;
36
+ productionFiles: number;
37
+ testFiles: number;
38
+ mockFiles: number;
39
+ };
40
+ complexity?: {
41
+ average: number;
42
+ highest: number;
43
+ distribution: Record<string, number>;
44
+ };
45
+ maintainability?: {
46
+ score: number;
47
+ issues: string[];
48
+ };
49
+ documentation?: {
50
+ coverage: number;
51
+ missing: string[];
52
+ };
53
+ };
54
+ qualityGates?: Array<{
55
+ gate: string;
56
+ passed: boolean;
57
+ threshold: number;
58
+ actual: number;
59
+ severity: 'critical' | 'high' | 'medium' | 'low';
60
+ }>;
61
+ issues?: Array<{
62
+ file: string;
63
+ line?: number;
64
+ type: 'error' | 'warning' | 'info';
65
+ category: 'complexity' | 'duplication' | 'style' | 'security' | 'performance';
66
+ message: string;
67
+ severity: 'critical' | 'high' | 'medium' | 'low';
68
+ }>;
69
+ recommendations?: Array<{
70
+ priority: 'critical' | 'high' | 'medium' | 'low';
71
+ category: string;
72
+ title: string;
73
+ description: string;
74
+ impact: string;
75
+ effort: 'low' | 'medium' | 'high';
76
+ }>;
77
+ trends?: {
78
+ qualityTrend: 'improving' | 'stable' | 'declining';
79
+ recentChanges: Array<{
80
+ date: string;
81
+ score: number;
82
+ change: number;
83
+ }>;
84
+ };
85
+ metadata: {
86
+ scope: string;
87
+ analysisType: 'comprehensive' | 'basic';
88
+ confidence: number;
89
+ timestamp: string;
90
+ dataSource: 'comprehensive-tool' | 'basic-analysis';
91
+ };
92
+ }
93
+ export interface ResourceGenerationResult {
94
+ data: CodeQualityResult;
95
+ contentType: string;
96
+ lastModified: string;
97
+ cacheKey: string;
98
+ ttl: number;
99
+ etag?: string;
100
+ }
101
+ /**
102
+ * Generate code quality resource
103
+ */
104
+ export declare function generateCodeQualityResource(_params?: Record<string, string>, searchParams?: URLSearchParams): Promise<ResourceGenerationResult>;
105
+ //# sourceMappingURL=code-quality-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-quality-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/code-quality-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAOtC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAElB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAEnC,OAAO,EAAE;QACP,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,uBAAuB,EAAE,MAAM,CAAC;QAChC,YAAY,EAAE;YACZ,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,UAAU,CAAC,EAAE;YACX,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtC,CAAC;QACF,eAAe,CAAC,EAAE;YAChB,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,EAAE,CAAC;SAClB,CAAC;QACF,aAAa,CAAC,EAAE;YACd,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;KACH,CAAC;IAEF,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KAClD,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;QACnC,QAAQ,EAAE,YAAY,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;QAC9E,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KAClD,CAAC,CAAC;IAEH,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACnC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE;QACP,YAAY,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;QACnD,aAAa,EAAE,KAAK,CAAC;YACnB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ,CAAC;IAEF,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,eAAe,GAAG,OAAO,CAAC;QACxC,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,oBAAoB,GAAG,gBAAgB,CAAC;KACrD,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,YAAY,CAAC,EAAE,eAAe,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAuDnC"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Code Quality Resource
3
+ *
4
+ * Provides comprehensive code quality assessment including metrics, analysis,
5
+ * and recommendations. Bridges to deployment-readiness-tool for TreeSitter
6
+ * analysis and smart-score-tool for quality scoring.
7
+ *
8
+ * URI: adr://code_quality
9
+ *
10
+ * Query Parameters:
11
+ * - scope: Analysis scope (full, changes, critical) - default: full
12
+ * - includeMetrics: Include detailed metrics (true, false) - default: true
13
+ * - includeRecommendations: Include improvement recommendations (true, false) - default: true
14
+ * - threshold: Minimum quality score threshold (0-100) - default: 70
15
+ * - format: Output format (summary, detailed) - default: detailed
16
+ *
17
+ * Example URIs:
18
+ * - adr://code_quality
19
+ * - adr://code_quality?scope=changes
20
+ * - adr://code_quality?threshold=80&format=summary
21
+ * - adr://code_quality?includeRecommendations=true
22
+ */
23
+ import path from 'path';
24
+ import { promises as fs } from 'fs';
25
+ import { ResourceCache } from './resource-cache.js';
26
+ const resourceCache = new ResourceCache();
27
+ /**
28
+ * Generate code quality resource
29
+ */
30
+ export async function generateCodeQualityResource(_params, searchParams) {
31
+ // Extract query parameters
32
+ const scope = searchParams?.get('scope') || 'full';
33
+ const includeMetrics = searchParams?.get('includeMetrics') !== 'false';
34
+ const includeRecommendations = searchParams?.get('includeRecommendations') !== 'false';
35
+ const threshold = parseInt(searchParams?.get('threshold') || '70', 10);
36
+ const format = searchParams?.get('format') || 'detailed';
37
+ const cacheKey = `code-quality:${scope}:${includeMetrics}:${includeRecommendations}:${threshold}:${format}`;
38
+ // Check cache
39
+ const cached = await resourceCache.get(cacheKey);
40
+ if (cached) {
41
+ return cached;
42
+ }
43
+ // Try comprehensive analysis via deployment-readiness-tool
44
+ try {
45
+ const qualityData = await generateComprehensiveQuality(scope, includeMetrics, includeRecommendations, threshold, format);
46
+ const result = {
47
+ data: qualityData,
48
+ contentType: 'application/json',
49
+ lastModified: new Date().toISOString(),
50
+ cacheKey,
51
+ ttl: 300, // 5 minutes
52
+ etag: `"code-quality-${Date.now()}"`,
53
+ };
54
+ resourceCache.set(cacheKey, result, result.ttl);
55
+ return result;
56
+ }
57
+ catch (error) {
58
+ console.error('[code-quality-resource] Falling back to basic analysis:', error);
59
+ // Fallback to basic analysis
60
+ const basicQuality = await generateBasicQuality(scope, threshold);
61
+ const result = {
62
+ data: basicQuality,
63
+ contentType: 'application/json',
64
+ lastModified: new Date().toISOString(),
65
+ cacheKey,
66
+ ttl: 300,
67
+ etag: `"code-quality-basic-${Date.now()}"`,
68
+ };
69
+ resourceCache.set(cacheKey, result, result.ttl);
70
+ return result;
71
+ }
72
+ }
73
+ /**
74
+ * Generate comprehensive code quality via tool bridge
75
+ */
76
+ async function generateComprehensiveQuality(scope, includeMetrics, includeRecommendations, threshold, _format) {
77
+ // Import deployment-readiness-tool for TreeSitter analysis
78
+ const { deploymentReadiness } = await import('../tools/deployment-readiness-tool.js');
79
+ // Call tool with check_readiness operation (includes code quality analysis)
80
+ const toolResult = await deploymentReadiness({
81
+ operation: 'check_readiness',
82
+ projectPath: process.cwd(),
83
+ targetEnvironment: 'production',
84
+ strictMode: true,
85
+ enableMemoryIntegration: false,
86
+ });
87
+ // Extract text from tool result
88
+ const toolOutputText = toolResult.content?.[0]?.text || '';
89
+ // Extract structured data from tool output
90
+ const qualityData = extractQualityDataFromToolOutput(toolOutputText, scope, threshold, includeMetrics, includeRecommendations);
91
+ return qualityData;
92
+ }
93
+ /**
94
+ * Extract code quality data from tool text output
95
+ */
96
+ function extractQualityDataFromToolOutput(toolOutput, scope, _threshold, includeMetrics, includeRecommendations) {
97
+ const qualityData = {
98
+ scope,
99
+ timestamp: new Date().toISOString(),
100
+ overallScore: 0,
101
+ grade: 'F',
102
+ metrics: {
103
+ productionCodeScore: 0,
104
+ mockCodeIndicators: 0,
105
+ productionCodeThreshold: 70,
106
+ codebaseSize: {
107
+ totalFiles: 0,
108
+ totalLines: 0,
109
+ productionFiles: 0,
110
+ testFiles: 0,
111
+ mockFiles: 0,
112
+ },
113
+ },
114
+ metadata: {
115
+ scope,
116
+ analysisType: 'comprehensive',
117
+ confidence: 0.9,
118
+ timestamp: new Date().toISOString(),
119
+ dataSource: 'comprehensive-tool',
120
+ },
121
+ };
122
+ // Extract production code score
123
+ const productionScoreMatch = toolOutput.match(/production code score[:\s]+(\d+(?:\.\d+)?)\s*%/i);
124
+ if (productionScoreMatch?.[1]) {
125
+ qualityData.metrics.productionCodeScore = parseFloat(productionScoreMatch[1]);
126
+ qualityData.overallScore = qualityData.metrics.productionCodeScore;
127
+ }
128
+ // Extract mock indicators
129
+ const mockMatch = toolOutput.match(/mock[:\s]+(\d+)/i);
130
+ if (mockMatch?.[1]) {
131
+ qualityData.metrics.mockCodeIndicators = parseInt(mockMatch[1], 10);
132
+ }
133
+ // Extract file counts
134
+ const totalFilesMatch = toolOutput.match(/total files[:\s]+(\d+)/i);
135
+ const productionFilesMatch = toolOutput.match(/production files[:\s]+(\d+)/i);
136
+ const testFilesMatch = toolOutput.match(/test files[:\s]+(\d+)/i);
137
+ const mockFilesMatch = toolOutput.match(/mock files[:\s]+(\d+)/i);
138
+ if (totalFilesMatch?.[1]) {
139
+ qualityData.metrics.codebaseSize.totalFiles = parseInt(totalFilesMatch[1], 10);
140
+ }
141
+ if (productionFilesMatch?.[1]) {
142
+ qualityData.metrics.codebaseSize.productionFiles = parseInt(productionFilesMatch[1], 10);
143
+ }
144
+ if (testFilesMatch?.[1]) {
145
+ qualityData.metrics.codebaseSize.testFiles = parseInt(testFilesMatch[1], 10);
146
+ }
147
+ if (mockFilesMatch?.[1]) {
148
+ qualityData.metrics.codebaseSize.mockFiles = parseInt(mockFilesMatch[1], 10);
149
+ }
150
+ // Calculate grade
151
+ qualityData.grade = calculateGrade(qualityData.overallScore);
152
+ // Extract quality gates if includeMetrics
153
+ if (includeMetrics) {
154
+ qualityData.qualityGates = extractQualityGates(toolOutput);
155
+ }
156
+ // Extract recommendations if requested
157
+ if (includeRecommendations) {
158
+ qualityData.recommendations = extractRecommendations(toolOutput);
159
+ }
160
+ return qualityData;
161
+ }
162
+ /**
163
+ * Extract quality gates from tool output
164
+ */
165
+ function extractQualityGates(toolOutput) {
166
+ const gates = [];
167
+ // Look for quality gate patterns in output
168
+ const gatePattern = /(?:gate|check)[:\s]+(.+?)[:\s]+(\d+(?:\.\d+)?)\s*\/\s*(\d+(?:\.\d+)?)/gi;
169
+ let match;
170
+ while ((match = gatePattern.exec(toolOutput)) !== null) {
171
+ const gateName = match[1]?.trim();
172
+ const actual = parseFloat(match[2] || '0');
173
+ const threshold = parseFloat(match[3] || '0');
174
+ if (gateName) {
175
+ gates.push({
176
+ gate: gateName,
177
+ passed: actual >= threshold,
178
+ threshold,
179
+ actual,
180
+ severity: actual >= threshold ? 'low' : 'high',
181
+ });
182
+ }
183
+ }
184
+ return gates;
185
+ }
186
+ /**
187
+ * Extract recommendations from tool output
188
+ */
189
+ function extractRecommendations(toolOutput) {
190
+ const recommendations = [];
191
+ // Look for recommendation patterns
192
+ if (toolOutput.includes('mock') || toolOutput.includes('test')) {
193
+ recommendations.push({
194
+ priority: 'high',
195
+ category: 'testing',
196
+ title: 'Reduce Mock Code',
197
+ description: 'Decrease reliance on mocks in favor of integration tests',
198
+ impact: 'Improved test reliability and production confidence',
199
+ effort: 'medium',
200
+ });
201
+ }
202
+ if (toolOutput.includes('fail') || toolOutput.includes('error')) {
203
+ recommendations.push({
204
+ priority: 'critical',
205
+ category: 'quality',
206
+ title: 'Fix Test Failures',
207
+ description: 'Address all failing tests before deployment',
208
+ impact: 'Zero-tolerance quality gate compliance',
209
+ effort: 'high',
210
+ });
211
+ }
212
+ return recommendations;
213
+ }
214
+ /**
215
+ * Calculate letter grade from score
216
+ */
217
+ function calculateGrade(score) {
218
+ if (score >= 90)
219
+ return 'A';
220
+ if (score >= 80)
221
+ return 'B';
222
+ if (score >= 70)
223
+ return 'C';
224
+ if (score >= 60)
225
+ return 'D';
226
+ return 'F';
227
+ }
228
+ /**
229
+ * Generate basic code quality (fallback)
230
+ */
231
+ async function generateBasicQuality(scope, threshold) {
232
+ // Count TypeScript files for basic metrics
233
+ let totalFiles = 0;
234
+ let totalLines = 0;
235
+ try {
236
+ const srcPath = path.resolve(process.cwd(), 'src');
237
+ const files = await fs.readdir(srcPath, { recursive: true });
238
+ for (const file of files) {
239
+ if (typeof file === 'string' && file.endsWith('.ts')) {
240
+ totalFiles++;
241
+ try {
242
+ const filePath = path.join(srcPath, file);
243
+ const content = await fs.readFile(filePath, 'utf-8');
244
+ totalLines += content.split('\n').length;
245
+ }
246
+ catch {
247
+ // Ignore file read errors
248
+ }
249
+ }
250
+ }
251
+ }
252
+ catch {
253
+ // Ignore directory errors
254
+ }
255
+ const basicScore = totalFiles > 0 ? 75 : 0; // Assume 75% if files exist
256
+ return {
257
+ scope,
258
+ timestamp: new Date().toISOString(),
259
+ overallScore: basicScore,
260
+ grade: calculateGrade(basicScore),
261
+ metrics: {
262
+ productionCodeScore: basicScore,
263
+ mockCodeIndicators: 0,
264
+ productionCodeThreshold: threshold,
265
+ codebaseSize: {
266
+ totalFiles,
267
+ totalLines,
268
+ productionFiles: totalFiles,
269
+ testFiles: 0,
270
+ mockFiles: 0,
271
+ },
272
+ },
273
+ metadata: {
274
+ scope,
275
+ analysisType: 'basic',
276
+ confidence: 0.5,
277
+ timestamp: new Date().toISOString(),
278
+ dataSource: 'basic-analysis',
279
+ },
280
+ };
281
+ }
282
+ //# sourceMappingURL=code-quality-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-quality-resource.js","sourceRoot":"","sources":["../../../src/resources/code-quality-resource.ts"],"names":[],"mappings":"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"}