mcp-adr-analysis-server 2.1.9 → 2.1.19

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 +420 -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 +21 -12
  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,45 @@
1
+ /**
2
+ * Resource Router - URI routing infrastructure for templated resources
3
+ * Supports parameterized URIs like adr://adr/{id} and adr://research/{topic}
4
+ */
5
+ import { URLSearchParams } from 'url';
6
+ import { ResourceGenerationResult } from './index.js';
7
+ export type ResourceHandler = (params: Record<string, string>, searchParams: URLSearchParams) => Promise<ResourceGenerationResult>;
8
+ export interface RouteRegistration {
9
+ pattern: string;
10
+ handler: ResourceHandler;
11
+ description?: string;
12
+ }
13
+ /**
14
+ * URI Router for templated resources
15
+ * Matches URI patterns and extracts parameters
16
+ */
17
+ export declare class ResourceRouter {
18
+ private routes;
19
+ /**
20
+ * Register a route pattern with its handler
21
+ */
22
+ register(pattern: string, handler: ResourceHandler, description?: string): void;
23
+ /**
24
+ * Route a URI to its handler and execute
25
+ */
26
+ route(uri: string): Promise<ResourceGenerationResult>;
27
+ /**
28
+ * Check if a pattern matches a path
29
+ */
30
+ private matchPattern;
31
+ /**
32
+ * Extract parameters from path based on pattern
33
+ */
34
+ private extractParams;
35
+ /**
36
+ * Get all registered routes
37
+ */
38
+ getRoutes(): RouteRegistration[];
39
+ /**
40
+ * Check if a URI can be routed
41
+ */
42
+ canRoute(uri: string): boolean;
43
+ }
44
+ export declare const resourceRouter: ResourceRouter;
45
+ //# sourceMappingURL=resource-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-router.d.ts","sourceRoot":"","sources":["../../../src/resources/resource-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAO,eAAe,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGtD,MAAM,MAAM,eAAe,GAAG,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,EAAE,eAAe,KAC1B,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAA2B;IAEzC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB/E;;OAEG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAe3D;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,SAAS,IAAI,iBAAiB,EAAE;IAIhC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAe/B;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Resource Router - URI routing infrastructure for templated resources
3
+ * Supports parameterized URIs like adr://adr/{id} and adr://research/{topic}
4
+ */
5
+ import { URL } from 'url';
6
+ import { McpAdrError } from '../types/index.js';
7
+ /**
8
+ * URI Router for templated resources
9
+ * Matches URI patterns and extracts parameters
10
+ */
11
+ export class ResourceRouter {
12
+ routes = [];
13
+ /**
14
+ * Register a route pattern with its handler
15
+ */
16
+ register(pattern, handler, description) {
17
+ // Ensure pattern starts with /
18
+ const normalizedPattern = pattern.startsWith('/') ? pattern : `/${pattern}`;
19
+ const registration = {
20
+ pattern: normalizedPattern,
21
+ handler,
22
+ };
23
+ if (description !== undefined) {
24
+ registration.description = description;
25
+ }
26
+ this.routes.push(registration);
27
+ }
28
+ /**
29
+ * Route a URI to its handler and execute
30
+ */
31
+ async route(uri) {
32
+ const url = new URL(uri);
33
+ const path = url.pathname;
34
+ // Try to match pattern
35
+ for (const route of this.routes) {
36
+ if (this.matchPattern(route.pattern, path)) {
37
+ const params = this.extractParams(route.pattern, path);
38
+ return await route.handler(params, url.searchParams);
39
+ }
40
+ }
41
+ throw new McpAdrError(`No route found for: ${uri}`, 'RESOURCE_NOT_FOUND');
42
+ }
43
+ /**
44
+ * Check if a pattern matches a path
45
+ */
46
+ matchPattern(pattern, path) {
47
+ // Convert pattern to regex: /adr/{id} -> /adr/([^/]+)
48
+ const regex = pattern.replace(/\{[^}]+\}/g, '([^/]+)');
49
+ return new RegExp(`^${regex}$`).test(path);
50
+ }
51
+ /**
52
+ * Extract parameters from path based on pattern
53
+ */
54
+ extractParams(pattern, path) {
55
+ const paramNames = pattern.match(/\{([^}]+)\}/g)?.map(p => p.slice(1, -1)) || [];
56
+ const regex = pattern.replace(/\{[^}]+\}/g, '([^/]+)');
57
+ const matches = path.match(new RegExp(`^${regex}$`));
58
+ const params = {};
59
+ if (matches) {
60
+ paramNames.forEach((name, i) => {
61
+ const value = matches[i + 1];
62
+ if (value !== undefined) {
63
+ params[name] = decodeURIComponent(value);
64
+ }
65
+ });
66
+ }
67
+ return params;
68
+ }
69
+ /**
70
+ * Get all registered routes
71
+ */
72
+ getRoutes() {
73
+ return [...this.routes];
74
+ }
75
+ /**
76
+ * Check if a URI can be routed
77
+ */
78
+ canRoute(uri) {
79
+ try {
80
+ const url = new URL(uri);
81
+ const path = url.pathname;
82
+ for (const route of this.routes) {
83
+ if (this.matchPattern(route.pattern, path)) {
84
+ return true;
85
+ }
86
+ }
87
+ return false;
88
+ }
89
+ catch {
90
+ return false;
91
+ }
92
+ }
93
+ }
94
+ // Singleton instance
95
+ export const resourceRouter = new ResourceRouter();
96
+ //# sourceMappingURL=resource-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-router.js","sourceRoot":"","sources":["../../../src/resources/resource-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Rule by ID Resource - Individual rule details
3
+ * URI Pattern: adr://rule/{rule_id}
4
+ */
5
+ import { URLSearchParams } from 'url';
6
+ import { ResourceGenerationResult } from './index.js';
7
+ export interface Rule {
8
+ id: string;
9
+ name: string;
10
+ description: string;
11
+ type: 'architectural' | 'coding' | 'security' | 'performance' | 'documentation';
12
+ severity: 'info' | 'warning' | 'error' | 'critical';
13
+ pattern?: string;
14
+ message: string;
15
+ source: 'adr' | 'inferred' | 'user_defined';
16
+ enabled: boolean;
17
+ createdAt?: string;
18
+ }
19
+ export interface DetailedRule extends Rule {
20
+ violations: Array<{
21
+ file: string;
22
+ line: number;
23
+ message: string;
24
+ severity: string;
25
+ }>;
26
+ relatedAdrs: string[];
27
+ usage: {
28
+ totalChecks: number;
29
+ totalViolations: number;
30
+ lastChecked: string;
31
+ violationRate: number;
32
+ };
33
+ }
34
+ /**
35
+ * Generate rule by ID resource
36
+ */
37
+ export declare function generateRuleByIdResource(params: Record<string, string>, _searchParams: URLSearchParams): Promise<ResourceGenerationResult>;
38
+ //# sourceMappingURL=rule-by-id-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-by-id-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/rule-by-id-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAItD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;IAChF,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AA0ED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAgDnC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Rule by ID Resource - Individual rule details
3
+ * URI Pattern: adr://rule/{rule_id}
4
+ */
5
+ import { McpAdrError } from '../types/index.js';
6
+ import { resourceCache, generateETag } from './resource-cache.js';
7
+ import { resourceRouter } from './resource-router.js';
8
+ /**
9
+ * Load all rules from various sources
10
+ */
11
+ async function loadAllRules() {
12
+ // Import rule extraction functions
13
+ const { generateRuleCatalogResource } = await import('./rule-catalog-resource.js');
14
+ // Get rule catalog
15
+ const catalogResult = await generateRuleCatalogResource();
16
+ const catalog = catalogResult.data;
17
+ return catalog.rules || [];
18
+ }
19
+ /**
20
+ * Find rule violations (placeholder - would require code analysis)
21
+ */
22
+ async function findRuleViolations(rule) {
23
+ // TODO: Implement actual code analysis for rule violations
24
+ // For now, return placeholder violations
25
+ return [
26
+ {
27
+ file: 'src/example.ts',
28
+ line: 42,
29
+ message: `Violation of rule: ${rule.name}`,
30
+ severity: rule.severity,
31
+ },
32
+ ];
33
+ }
34
+ /**
35
+ * Find ADRs related to this rule
36
+ */
37
+ async function findRelatedAdrsForRule(rule) {
38
+ // If rule source is ADR, extract ADR reference
39
+ if (rule.source === 'adr') {
40
+ const adrReferences = rule.description.match(/ADR[-\s]?(\d+)/gi);
41
+ if (adrReferences) {
42
+ return adrReferences.map(ref => ref.trim());
43
+ }
44
+ }
45
+ return [];
46
+ }
47
+ /**
48
+ * Get rule usage statistics (placeholder - would require tracking)
49
+ */
50
+ async function getRuleUsageStats(_ruleId) {
51
+ // TODO: Implement actual usage tracking
52
+ // For now, return placeholder stats
53
+ const totalChecks = 100;
54
+ const totalViolations = 15;
55
+ return {
56
+ totalChecks,
57
+ totalViolations,
58
+ lastChecked: new Date().toISOString(),
59
+ violationRate: totalViolations / totalChecks,
60
+ };
61
+ }
62
+ /**
63
+ * Generate rule by ID resource
64
+ */
65
+ export async function generateRuleByIdResource(params, _searchParams) {
66
+ const rule_id = params['rule_id'];
67
+ if (!rule_id) {
68
+ throw new McpAdrError('Missing required parameter: rule_id', 'INVALID_PARAMS');
69
+ }
70
+ const cacheKey = `rule:${rule_id}`;
71
+ // Check cache
72
+ const cached = await resourceCache.get(cacheKey);
73
+ if (cached) {
74
+ return cached;
75
+ }
76
+ // Load all rules
77
+ const allRules = await loadAllRules();
78
+ // Find rule by ID or name match
79
+ const rule = allRules.find(r => r.id === rule_id || r.name.toLowerCase().includes(rule_id.toLowerCase()));
80
+ if (!rule) {
81
+ throw new McpAdrError(`Rule not found: ${rule_id}`, 'RESOURCE_NOT_FOUND');
82
+ }
83
+ // Build detailed rule data
84
+ const detailedRule = {
85
+ ...rule,
86
+ violations: await findRuleViolations(rule),
87
+ relatedAdrs: await findRelatedAdrsForRule(rule),
88
+ usage: await getRuleUsageStats(rule_id),
89
+ };
90
+ const result = {
91
+ data: detailedRule,
92
+ contentType: 'application/json',
93
+ lastModified: new Date().toISOString(),
94
+ cacheKey,
95
+ ttl: 300, // 5 minutes cache
96
+ etag: generateETag(detailedRule),
97
+ };
98
+ // Cache result
99
+ resourceCache.set(cacheKey, result, result.ttl);
100
+ return result;
101
+ }
102
+ // Register route
103
+ resourceRouter.register('/rule/{rule_id}', generateRuleByIdResource, 'Individual rule details by ID or name match');
104
+ //# sourceMappingURL=rule-by-id-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-by-id-resource.js","sourceRoot":"","sources":["../../../src/resources/rule-by-id-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Rule Catalog Resource
3
+ * Provides access to architectural and validation rules
4
+ */
5
+ import { ResourceGenerationResult } from './index.js';
6
+ export interface Rule {
7
+ id: string;
8
+ name: string;
9
+ description: string;
10
+ type: 'architectural' | 'coding' | 'security' | 'performance' | 'documentation';
11
+ severity: 'info' | 'warning' | 'error' | 'critical';
12
+ pattern?: string;
13
+ message: string;
14
+ source: 'adr' | 'inferred' | 'user_defined';
15
+ enabled: boolean;
16
+ createdAt?: string;
17
+ }
18
+ /**
19
+ * Generate comprehensive rule catalog resource with compliance tracking and rule management.
20
+ *
21
+ * Aggregates architectural rules from multiple sources including ADRs, inferred patterns,
22
+ * and custom user-defined rules. Provides categorization by type, severity, and source for
23
+ * effective governance and compliance monitoring.
24
+ *
25
+ * **Rule Sources:**
26
+ * - ADR-based rules: Extracted from architectural decision records
27
+ * - Inferred rules: Derived from codebase patterns and best practices
28
+ * - Custom rules: User-defined via configuration files
29
+ *
30
+ * **Rule Types:**
31
+ * - architecture: Architectural patterns and structures
32
+ * - security: Security policies and practices
33
+ * - performance: Performance optimization guidelines
34
+ * - testing: Test coverage and quality requirements
35
+ * - documentation: Documentation standards
36
+ *
37
+ * **Severity Levels:**
38
+ * - critical: Violations block deployment
39
+ * - high: Must fix before release
40
+ * - medium: Should fix soon
41
+ * - low: Nice to fix
42
+ *
43
+ * @returns Promise resolving to resource generation result containing:
44
+ * - data: Complete rule catalog with rules array and summary statistics
45
+ * - contentType: "application/json"
46
+ * - lastModified: ISO timestamp of generation
47
+ * - cacheKey: "rule-catalog:current"
48
+ * - ttl: Cache duration (300 seconds / 5 minutes)
49
+ * - etag: Entity tag for cache validation
50
+ *
51
+ * @throws {McpAdrError} When rule catalog generation fails due to:
52
+ * - RESOURCE_GENERATION_ERROR: ADR parsing errors or rule extraction failures
53
+ * - Cache operation failures
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const ruleCatalog = await generateRuleCatalogResource();
58
+ *
59
+ * console.log(`Total rules: ${ruleCatalog.data.summary.total}`);
60
+ * console.log(`Enabled: ${ruleCatalog.data.summary.enabled}`);
61
+ * console.log(`Disabled: ${ruleCatalog.data.summary.disabled}`);
62
+ *
63
+ * // Get critical security rules
64
+ * const criticalSecurityRules = ruleCatalog.data.rules.filter(
65
+ * r => r.type === 'security' && r.severity === 'critical' && r.enabled
66
+ * );
67
+ * console.log(`Critical security rules: ${criticalSecurityRules.length}`);
68
+ *
69
+ * // Group rules by source
70
+ * console.log(`ADR rules: ${ruleCatalog.data.summary.bySource.adr}`);
71
+ * console.log(`Inferred rules: ${ruleCatalog.data.summary.bySource.inferred}`);
72
+ * console.log(`Custom rules: ${ruleCatalog.data.summary.bySource.user_defined}`);
73
+ *
74
+ * // Expected output structure:
75
+ * {
76
+ * data: {
77
+ * version: "1.0.0",
78
+ * timestamp: "2025-10-12T17:00:00.000Z",
79
+ * summary: {
80
+ * total: 45,
81
+ * byType: {
82
+ * architecture: 12,
83
+ * security: 10,
84
+ * performance: 8,
85
+ * testing: 10,
86
+ * documentation: 5
87
+ * },
88
+ * bySeverity: {
89
+ * critical: 5,
90
+ * high: 15,
91
+ * medium: 20,
92
+ * low: 5
93
+ * },
94
+ * bySource: {
95
+ * adr: 20,
96
+ * inferred: 15,
97
+ * user_defined: 10
98
+ * },
99
+ * enabled: 40,
100
+ * disabled: 5
101
+ * },
102
+ * rules: [
103
+ * {
104
+ * id: "rule-001",
105
+ * name: "Use PostgreSQL for primary database",
106
+ * type: "architecture",
107
+ * severity: "critical",
108
+ * source: "adr",
109
+ * enabled: true,
110
+ * adrReference: "ADR-001"
111
+ * }
112
+ * ]
113
+ * },
114
+ * contentType: "application/json",
115
+ * cacheKey: "rule-catalog:current",
116
+ * ttl: 300
117
+ * }
118
+ * ```
119
+ *
120
+ * @since v2.0.0
121
+ * @see {@link extractRulesFromAdrs} for ADR rule extraction
122
+ * @see {@link extractInferredRules} for pattern-based rule inference
123
+ * @see {@link loadCustomRules} for user-defined rule loading
124
+ */
125
+ export declare function generateRuleCatalogResource(): Promise<ResourceGenerationResult>;
126
+ //# sourceMappingURL=rule-catalog-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-catalog-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/rule-catalog-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;IAChF,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAsDrF"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Rule Catalog Resource
3
+ * Provides access to architectural and validation rules
4
+ */
5
+ import { McpAdrError } from '../types/index.js';
6
+ import { resourceCache, generateETag } from './resource-cache.js';
7
+ /**
8
+ * Extract rules from ADRs
9
+ */
10
+ async function extractRulesFromAdrs() {
11
+ // TODO: Implement actual rule extraction from ADRs
12
+ // For now, return example rules
13
+ return [
14
+ {
15
+ id: 'adr-rule-001',
16
+ name: 'MCP Best Practices',
17
+ description: 'Follow MCP protocol best practices for resources vs tools',
18
+ type: 'architectural',
19
+ severity: 'warning',
20
+ message: 'Read-only operations should use resources, not tools',
21
+ source: 'adr',
22
+ enabled: true,
23
+ },
24
+ ];
25
+ }
26
+ /**
27
+ * Extract inferred rules from code patterns
28
+ */
29
+ async function extractInferredRules() {
30
+ // TODO: Implement actual inference from code
31
+ return [
32
+ {
33
+ id: 'inferred-rule-001',
34
+ name: 'TypeScript Strict Mode',
35
+ description: 'Project uses TypeScript strict mode',
36
+ type: 'coding',
37
+ severity: 'info',
38
+ message: 'Maintain strict TypeScript compilation',
39
+ source: 'inferred',
40
+ enabled: true,
41
+ },
42
+ ];
43
+ }
44
+ /**
45
+ * Load custom user-defined rules
46
+ */
47
+ async function loadCustomRules() {
48
+ // TODO: Load from configuration file
49
+ return [];
50
+ }
51
+ /**
52
+ * Group rules by type
53
+ */
54
+ function groupByType(rules) {
55
+ const grouped = {};
56
+ for (const rule of rules) {
57
+ grouped[rule.type] = (grouped[rule.type] || 0) + 1;
58
+ }
59
+ return grouped;
60
+ }
61
+ /**
62
+ * Group rules by severity
63
+ */
64
+ function groupBySeverity(rules) {
65
+ const grouped = {};
66
+ for (const rule of rules) {
67
+ grouped[rule.severity] = (grouped[rule.severity] || 0) + 1;
68
+ }
69
+ return grouped;
70
+ }
71
+ /**
72
+ * Generate comprehensive rule catalog resource with compliance tracking and rule management.
73
+ *
74
+ * Aggregates architectural rules from multiple sources including ADRs, inferred patterns,
75
+ * and custom user-defined rules. Provides categorization by type, severity, and source for
76
+ * effective governance and compliance monitoring.
77
+ *
78
+ * **Rule Sources:**
79
+ * - ADR-based rules: Extracted from architectural decision records
80
+ * - Inferred rules: Derived from codebase patterns and best practices
81
+ * - Custom rules: User-defined via configuration files
82
+ *
83
+ * **Rule Types:**
84
+ * - architecture: Architectural patterns and structures
85
+ * - security: Security policies and practices
86
+ * - performance: Performance optimization guidelines
87
+ * - testing: Test coverage and quality requirements
88
+ * - documentation: Documentation standards
89
+ *
90
+ * **Severity Levels:**
91
+ * - critical: Violations block deployment
92
+ * - high: Must fix before release
93
+ * - medium: Should fix soon
94
+ * - low: Nice to fix
95
+ *
96
+ * @returns Promise resolving to resource generation result containing:
97
+ * - data: Complete rule catalog with rules array and summary statistics
98
+ * - contentType: "application/json"
99
+ * - lastModified: ISO timestamp of generation
100
+ * - cacheKey: "rule-catalog:current"
101
+ * - ttl: Cache duration (300 seconds / 5 minutes)
102
+ * - etag: Entity tag for cache validation
103
+ *
104
+ * @throws {McpAdrError} When rule catalog generation fails due to:
105
+ * - RESOURCE_GENERATION_ERROR: ADR parsing errors or rule extraction failures
106
+ * - Cache operation failures
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * const ruleCatalog = await generateRuleCatalogResource();
111
+ *
112
+ * console.log(`Total rules: ${ruleCatalog.data.summary.total}`);
113
+ * console.log(`Enabled: ${ruleCatalog.data.summary.enabled}`);
114
+ * console.log(`Disabled: ${ruleCatalog.data.summary.disabled}`);
115
+ *
116
+ * // Get critical security rules
117
+ * const criticalSecurityRules = ruleCatalog.data.rules.filter(
118
+ * r => r.type === 'security' && r.severity === 'critical' && r.enabled
119
+ * );
120
+ * console.log(`Critical security rules: ${criticalSecurityRules.length}`);
121
+ *
122
+ * // Group rules by source
123
+ * console.log(`ADR rules: ${ruleCatalog.data.summary.bySource.adr}`);
124
+ * console.log(`Inferred rules: ${ruleCatalog.data.summary.bySource.inferred}`);
125
+ * console.log(`Custom rules: ${ruleCatalog.data.summary.bySource.user_defined}`);
126
+ *
127
+ * // Expected output structure:
128
+ * {
129
+ * data: {
130
+ * version: "1.0.0",
131
+ * timestamp: "2025-10-12T17:00:00.000Z",
132
+ * summary: {
133
+ * total: 45,
134
+ * byType: {
135
+ * architecture: 12,
136
+ * security: 10,
137
+ * performance: 8,
138
+ * testing: 10,
139
+ * documentation: 5
140
+ * },
141
+ * bySeverity: {
142
+ * critical: 5,
143
+ * high: 15,
144
+ * medium: 20,
145
+ * low: 5
146
+ * },
147
+ * bySource: {
148
+ * adr: 20,
149
+ * inferred: 15,
150
+ * user_defined: 10
151
+ * },
152
+ * enabled: 40,
153
+ * disabled: 5
154
+ * },
155
+ * rules: [
156
+ * {
157
+ * id: "rule-001",
158
+ * name: "Use PostgreSQL for primary database",
159
+ * type: "architecture",
160
+ * severity: "critical",
161
+ * source: "adr",
162
+ * enabled: true,
163
+ * adrReference: "ADR-001"
164
+ * }
165
+ * ]
166
+ * },
167
+ * contentType: "application/json",
168
+ * cacheKey: "rule-catalog:current",
169
+ * ttl: 300
170
+ * }
171
+ * ```
172
+ *
173
+ * @since v2.0.0
174
+ * @see {@link extractRulesFromAdrs} for ADR rule extraction
175
+ * @see {@link extractInferredRules} for pattern-based rule inference
176
+ * @see {@link loadCustomRules} for user-defined rule loading
177
+ */
178
+ export async function generateRuleCatalogResource() {
179
+ try {
180
+ const cacheKey = 'rule-catalog:current';
181
+ // Check cache
182
+ const cached = await resourceCache.get(cacheKey);
183
+ if (cached) {
184
+ return cached;
185
+ }
186
+ // Extract rules from various sources
187
+ const adrRules = await extractRulesFromAdrs();
188
+ const inferredRules = await extractInferredRules();
189
+ const customRules = await loadCustomRules();
190
+ const allRules = [...adrRules, ...inferredRules, ...customRules];
191
+ const ruleCatalogData = {
192
+ version: '1.0.0',
193
+ timestamp: new Date().toISOString(),
194
+ summary: {
195
+ total: allRules.length,
196
+ byType: groupByType(allRules),
197
+ bySeverity: groupBySeverity(allRules),
198
+ bySource: {
199
+ adr: adrRules.length,
200
+ inferred: inferredRules.length,
201
+ user_defined: customRules.length,
202
+ },
203
+ enabled: allRules.filter(r => r.enabled).length,
204
+ disabled: allRules.filter(r => !r.enabled).length,
205
+ },
206
+ rules: allRules,
207
+ };
208
+ const result = {
209
+ data: ruleCatalogData,
210
+ contentType: 'application/json',
211
+ lastModified: new Date().toISOString(),
212
+ cacheKey,
213
+ ttl: 600, // 10 minutes cache
214
+ etag: generateETag(ruleCatalogData),
215
+ };
216
+ // Cache result
217
+ resourceCache.set(cacheKey, result, result.ttl);
218
+ return result;
219
+ }
220
+ catch (error) {
221
+ throw new McpAdrError(`Failed to generate rule catalog resource: ${error instanceof Error ? error.message : String(error)}`, 'RESOURCE_GENERATION_ERROR');
222
+ }
223
+ }
224
+ //# sourceMappingURL=rule-catalog-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-catalog-resource.js","sourceRoot":"","sources":["../../../src/resources/rule-catalog-resource.ts"],"names":[],"mappings":"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"}