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 @@
1
+ {"version":3,"file":"todo-by-id-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/todo-by-id-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAKtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAItD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAmKD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAyDnC"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Todo by Task ID Resource - Individual task details
3
+ * URI Pattern: adr://todo/{task_id}
4
+ */
5
+ import * as fs from 'fs/promises';
6
+ import * as path from 'path';
7
+ import { McpAdrError } from '../types/index.js';
8
+ import { resourceCache, generateETag } from './resource-cache.js';
9
+ import { resourceRouter } from './resource-router.js';
10
+ /**
11
+ * Parse TODO.md markdown file into structured task data
12
+ */
13
+ function parseTodoMarkdown(content) {
14
+ const todos = [];
15
+ const lines = content.split('\n');
16
+ let currentTask = null;
17
+ let taskCounter = 0;
18
+ for (const line of lines) {
19
+ const trimmed = line.trim();
20
+ // Parse task line: ## Task Title
21
+ if (trimmed.startsWith('## ')) {
22
+ if (currentTask) {
23
+ todos.push(currentTask);
24
+ }
25
+ const title = trimmed.substring(3).trim();
26
+ taskCounter++;
27
+ currentTask = {
28
+ id: `task-${taskCounter}`,
29
+ title,
30
+ status: 'pending',
31
+ };
32
+ continue;
33
+ }
34
+ // Parse status
35
+ if (trimmed.startsWith('**Status:**') && currentTask) {
36
+ const status = trimmed.substring(11).trim().toLowerCase();
37
+ if (status.includes('progress')) {
38
+ currentTask.status = 'in_progress';
39
+ }
40
+ else if (status.includes('completed')) {
41
+ currentTask.status = 'completed';
42
+ }
43
+ else {
44
+ currentTask.status = 'pending';
45
+ }
46
+ continue;
47
+ }
48
+ // Parse priority
49
+ if (trimmed.startsWith('**Priority:**') && currentTask) {
50
+ const priority = trimmed.substring(13).trim().toLowerCase();
51
+ if (priority.includes('critical')) {
52
+ currentTask.priority = 'critical';
53
+ }
54
+ else if (priority.includes('high')) {
55
+ currentTask.priority = 'high';
56
+ }
57
+ else if (priority.includes('low')) {
58
+ currentTask.priority = 'low';
59
+ }
60
+ else {
61
+ currentTask.priority = 'medium';
62
+ }
63
+ continue;
64
+ }
65
+ // Parse description (plain text lines)
66
+ if (currentTask &&
67
+ !trimmed.startsWith('**') &&
68
+ !trimmed.startsWith('#') &&
69
+ trimmed.length > 0) {
70
+ currentTask.description = (currentTask.description || '') + '\n' + trimmed;
71
+ }
72
+ }
73
+ // Add last task
74
+ if (currentTask) {
75
+ todos.push(currentTask);
76
+ }
77
+ return todos;
78
+ }
79
+ /**
80
+ * Resolve task dependencies with full details
81
+ */
82
+ async function resolveDependencies(task, allTasks) {
83
+ if (!task.dependencies || task.dependencies.length === 0) {
84
+ return [];
85
+ }
86
+ return task.dependencies
87
+ .map(depId => {
88
+ const dep = allTasks.find(t => t.id === depId);
89
+ return dep ? { id: dep.id, title: dep.title, status: dep.status } : null;
90
+ })
91
+ .filter(dep => dep !== null);
92
+ }
93
+ /**
94
+ * Find tasks that are blocking this task
95
+ */
96
+ async function findBlockingTasks(task, allTasks) {
97
+ const blocking = [];
98
+ if (!task.dependencies || task.dependencies.length === 0) {
99
+ return blocking;
100
+ }
101
+ for (const depId of task.dependencies) {
102
+ const dep = allTasks.find(t => t.id === depId);
103
+ if (dep && dep.status !== 'completed') {
104
+ blocking.push({
105
+ id: dep.id,
106
+ title: dep.title,
107
+ reason: `Dependency not completed (status: ${dep.status})`,
108
+ });
109
+ }
110
+ }
111
+ return blocking;
112
+ }
113
+ /**
114
+ * Find ADRs related to this task
115
+ */
116
+ async function findRelatedAdrs(task) {
117
+ // TODO: Implement actual ADR relationship detection
118
+ // For now, extract ADR references from description
119
+ const relatedAdrs = [];
120
+ if (task.description) {
121
+ const adrReferences = task.description.match(/ADR[-\s]?(\d+)/gi);
122
+ if (adrReferences) {
123
+ relatedAdrs.push(...adrReferences.map(ref => ref.trim()));
124
+ }
125
+ }
126
+ return [...new Set(relatedAdrs)];
127
+ }
128
+ /**
129
+ * Get task history (placeholder - would require history tracking)
130
+ */
131
+ async function getTaskHistory(_taskId) {
132
+ // TODO: Implement actual task history tracking
133
+ // For now, return placeholder history
134
+ return [
135
+ {
136
+ timestamp: new Date().toISOString(),
137
+ action: 'created',
138
+ details: 'Task created from todo.md',
139
+ },
140
+ ];
141
+ }
142
+ /**
143
+ * Generate todo by task ID resource
144
+ */
145
+ export async function generateTodoByIdResource(params, _searchParams) {
146
+ const task_id = params['task_id'];
147
+ if (!task_id) {
148
+ throw new McpAdrError('Missing required parameter: task_id', 'INVALID_PARAMS');
149
+ }
150
+ const cacheKey = `todo-task:${task_id}`;
151
+ // Check cache
152
+ const cached = await resourceCache.get(cacheKey);
153
+ if (cached) {
154
+ return cached;
155
+ }
156
+ const todoPath = path.resolve(process.cwd(), 'todo.md');
157
+ let todoContent;
158
+ try {
159
+ todoContent = await fs.readFile(todoPath, 'utf-8');
160
+ }
161
+ catch {
162
+ throw new McpAdrError(`Todo file not found at ${todoPath}`, 'RESOURCE_NOT_FOUND');
163
+ }
164
+ const todos = parseTodoMarkdown(todoContent);
165
+ // Find task by ID or title match
166
+ const task = todos.find(t => t.id === task_id || t.title.toLowerCase().includes(task_id.toLowerCase()));
167
+ if (!task) {
168
+ throw new McpAdrError(`Task not found: ${task_id}`, 'RESOURCE_NOT_FOUND');
169
+ }
170
+ // Build detailed task data
171
+ const detailedTask = {
172
+ ...task,
173
+ dependencies: await resolveDependencies(task, todos),
174
+ blockedBy: await findBlockingTasks(task, todos),
175
+ relatedAdrs: await findRelatedAdrs(task),
176
+ history: await getTaskHistory(task_id),
177
+ };
178
+ const result = {
179
+ data: detailedTask,
180
+ contentType: 'application/json',
181
+ lastModified: new Date().toISOString(),
182
+ cacheKey,
183
+ ttl: 60, // 1 minute cache (tasks change frequently)
184
+ etag: generateETag(detailedTask),
185
+ };
186
+ // Cache result
187
+ resourceCache.set(cacheKey, result, result.ttl);
188
+ return result;
189
+ }
190
+ // Register route
191
+ resourceRouter.register('/todo/{task_id}', generateTodoByIdResource, 'Individual task details by ID or title match');
192
+ //# sourceMappingURL=todo-by-id-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-by-id-resource.js","sourceRoot":"","sources":["../../../src/resources/todo-by-id-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Todo List Resource
3
+ * Provides access to project task list with status and dependencies
4
+ */
5
+ import { ResourceGenerationResult } from './index.js';
6
+ export interface TodoTask {
7
+ id: string;
8
+ title: string;
9
+ status: 'pending' | 'in_progress' | 'completed';
10
+ description?: string;
11
+ priority?: 'low' | 'medium' | 'high' | 'critical';
12
+ dependencies?: string[];
13
+ createdAt?: string;
14
+ updatedAt?: string;
15
+ }
16
+ /**
17
+ * Generate comprehensive todo list resource with task management and progress tracking.
18
+ *
19
+ * Parses the project's `todo.md` file and extracts structured task information including
20
+ * status, priority, assignees, and dependencies. Provides aggregated statistics for
21
+ * project planning and progress monitoring.
22
+ *
23
+ * **File Location:** `{projectRoot}/todo.md`
24
+ *
25
+ * **Supported Task Statuses:**
26
+ * - pending: Task not yet started
27
+ * - in_progress: Task currently being worked on
28
+ * - completed: Task finished
29
+ *
30
+ * **Supported Priorities:**
31
+ * - critical: Must be done immediately
32
+ * - high: Important, should be done soon
33
+ * - medium: Normal priority
34
+ * - low: Can be deferred
35
+ *
36
+ * @returns Promise resolving to resource generation result containing:
37
+ * - data: Complete todo list with tasks array and summary statistics
38
+ * - contentType: "application/json"
39
+ * - lastModified: ISO timestamp of generation
40
+ * - cacheKey: "todo-list:current"
41
+ * - ttl: Cache duration (120 seconds / 2 minutes)
42
+ * - etag: Entity tag for cache validation
43
+ *
44
+ * @throws {McpAdrError} When todo list generation fails due to:
45
+ * - RESOURCE_GENERATION_ERROR: Parse errors in todo.md format
46
+ * - Cache operation failures
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const todoList = await generateTodoListResource();
51
+ *
52
+ * console.log(`Total tasks: ${todoList.data.summary.total}`);
53
+ * console.log(`Completed: ${todoList.data.summary.completed}`);
54
+ * console.log(`In progress: ${todoList.data.summary.inProgress}`);
55
+ * console.log(`Completion rate: ${(todoList.data.summary.completed / todoList.data.summary.total * 100).toFixed(1)}%`);
56
+ *
57
+ * // Filter critical tasks
58
+ * const criticalTasks = todoList.data.tasks.filter(t => t.priority === 'critical' && t.status !== 'completed');
59
+ * console.log(`Critical tasks remaining: ${criticalTasks.length}`);
60
+ *
61
+ * // Expected output structure:
62
+ * {
63
+ * data: {
64
+ * version: "1.0.0",
65
+ * timestamp: "2025-10-12T17:00:00.000Z",
66
+ * source: "/project/todo.md",
67
+ * summary: {
68
+ * total: 25,
69
+ * pending: 10,
70
+ * inProgress: 5,
71
+ * completed: 10,
72
+ * byPriority: { critical: 2, high: 8, medium: 10, low: 5 }
73
+ * },
74
+ * tasks: [
75
+ * {
76
+ * id: "task-001",
77
+ * title: "Implement user authentication",
78
+ * status: "in_progress",
79
+ * priority: "high",
80
+ * assignee: "developer@example.com",
81
+ * dueDate: "2025-10-20",
82
+ * dependencies: ["task-002"]
83
+ * }
84
+ * ]
85
+ * },
86
+ * contentType: "application/json",
87
+ * cacheKey: "todo-list:current",
88
+ * ttl: 120
89
+ * }
90
+ * ```
91
+ *
92
+ * @since v2.0.0
93
+ * @see {@link parseTodoMarkdown} for todo.md parsing logic
94
+ */
95
+ export declare function generateTodoListResource(): Promise<ResourceGenerationResult>;
96
+ //# sourceMappingURL=todo-list-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-list-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/todo-list-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8ED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CA2DlF"}
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Todo List Resource
3
+ * Provides access to project task list with status and dependencies
4
+ */
5
+ import * as fs from 'fs/promises';
6
+ import * as path from 'path';
7
+ import { McpAdrError } from '../types/index.js';
8
+ import { resourceCache, generateETag } from './resource-cache.js';
9
+ /**
10
+ * Parse TODO.md markdown file into structured task data
11
+ */
12
+ function parseTodoMarkdown(content) {
13
+ const todos = [];
14
+ const lines = content.split('\n');
15
+ let currentTask = null;
16
+ let taskCounter = 0;
17
+ for (const line of lines) {
18
+ const trimmed = line.trim();
19
+ // Parse task line: ## Task Title
20
+ if (trimmed.startsWith('## ')) {
21
+ if (currentTask) {
22
+ todos.push(currentTask);
23
+ }
24
+ const title = trimmed.substring(3).trim();
25
+ taskCounter++;
26
+ currentTask = {
27
+ id: `task-${taskCounter}`,
28
+ title,
29
+ status: 'pending',
30
+ };
31
+ continue;
32
+ }
33
+ // Parse status
34
+ if (trimmed.startsWith('**Status:**') && currentTask) {
35
+ const status = trimmed.substring(11).trim().toLowerCase();
36
+ if (status.includes('progress')) {
37
+ currentTask.status = 'in_progress';
38
+ }
39
+ else if (status.includes('completed')) {
40
+ currentTask.status = 'completed';
41
+ }
42
+ else {
43
+ currentTask.status = 'pending';
44
+ }
45
+ continue;
46
+ }
47
+ // Parse priority
48
+ if (trimmed.startsWith('**Priority:**') && currentTask) {
49
+ const priority = trimmed.substring(13).trim().toLowerCase();
50
+ if (priority.includes('critical')) {
51
+ currentTask.priority = 'critical';
52
+ }
53
+ else if (priority.includes('high')) {
54
+ currentTask.priority = 'high';
55
+ }
56
+ else if (priority.includes('low')) {
57
+ currentTask.priority = 'low';
58
+ }
59
+ else {
60
+ currentTask.priority = 'medium';
61
+ }
62
+ continue;
63
+ }
64
+ // Parse description (plain text lines)
65
+ if (currentTask &&
66
+ !trimmed.startsWith('**') &&
67
+ !trimmed.startsWith('#') &&
68
+ trimmed.length > 0) {
69
+ currentTask.description = (currentTask.description || '') + '\n' + trimmed;
70
+ }
71
+ }
72
+ // Add last task
73
+ if (currentTask) {
74
+ todos.push(currentTask);
75
+ }
76
+ return todos;
77
+ }
78
+ /**
79
+ * Generate comprehensive todo list resource with task management and progress tracking.
80
+ *
81
+ * Parses the project's `todo.md` file and extracts structured task information including
82
+ * status, priority, assignees, and dependencies. Provides aggregated statistics for
83
+ * project planning and progress monitoring.
84
+ *
85
+ * **File Location:** `{projectRoot}/todo.md`
86
+ *
87
+ * **Supported Task Statuses:**
88
+ * - pending: Task not yet started
89
+ * - in_progress: Task currently being worked on
90
+ * - completed: Task finished
91
+ *
92
+ * **Supported Priorities:**
93
+ * - critical: Must be done immediately
94
+ * - high: Important, should be done soon
95
+ * - medium: Normal priority
96
+ * - low: Can be deferred
97
+ *
98
+ * @returns Promise resolving to resource generation result containing:
99
+ * - data: Complete todo list with tasks array and summary statistics
100
+ * - contentType: "application/json"
101
+ * - lastModified: ISO timestamp of generation
102
+ * - cacheKey: "todo-list:current"
103
+ * - ttl: Cache duration (120 seconds / 2 minutes)
104
+ * - etag: Entity tag for cache validation
105
+ *
106
+ * @throws {McpAdrError} When todo list generation fails due to:
107
+ * - RESOURCE_GENERATION_ERROR: Parse errors in todo.md format
108
+ * - Cache operation failures
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const todoList = await generateTodoListResource();
113
+ *
114
+ * console.log(`Total tasks: ${todoList.data.summary.total}`);
115
+ * console.log(`Completed: ${todoList.data.summary.completed}`);
116
+ * console.log(`In progress: ${todoList.data.summary.inProgress}`);
117
+ * console.log(`Completion rate: ${(todoList.data.summary.completed / todoList.data.summary.total * 100).toFixed(1)}%`);
118
+ *
119
+ * // Filter critical tasks
120
+ * const criticalTasks = todoList.data.tasks.filter(t => t.priority === 'critical' && t.status !== 'completed');
121
+ * console.log(`Critical tasks remaining: ${criticalTasks.length}`);
122
+ *
123
+ * // Expected output structure:
124
+ * {
125
+ * data: {
126
+ * version: "1.0.0",
127
+ * timestamp: "2025-10-12T17:00:00.000Z",
128
+ * source: "/project/todo.md",
129
+ * summary: {
130
+ * total: 25,
131
+ * pending: 10,
132
+ * inProgress: 5,
133
+ * completed: 10,
134
+ * byPriority: { critical: 2, high: 8, medium: 10, low: 5 }
135
+ * },
136
+ * tasks: [
137
+ * {
138
+ * id: "task-001",
139
+ * title: "Implement user authentication",
140
+ * status: "in_progress",
141
+ * priority: "high",
142
+ * assignee: "developer@example.com",
143
+ * dueDate: "2025-10-20",
144
+ * dependencies: ["task-002"]
145
+ * }
146
+ * ]
147
+ * },
148
+ * contentType: "application/json",
149
+ * cacheKey: "todo-list:current",
150
+ * ttl: 120
151
+ * }
152
+ * ```
153
+ *
154
+ * @since v2.0.0
155
+ * @see {@link parseTodoMarkdown} for todo.md parsing logic
156
+ */
157
+ export async function generateTodoListResource() {
158
+ try {
159
+ const cacheKey = 'todo-list:current';
160
+ // Check cache
161
+ const cached = await resourceCache.get(cacheKey);
162
+ if (cached) {
163
+ return cached;
164
+ }
165
+ const todoPath = path.resolve(process.cwd(), 'todo.md');
166
+ let todos = [];
167
+ try {
168
+ const todoContent = await fs.readFile(todoPath, 'utf-8');
169
+ todos = parseTodoMarkdown(todoContent);
170
+ }
171
+ catch {
172
+ // Todo file may not exist, return empty list
173
+ console.warn(`[TodoListResource] Todo file not found at ${todoPath}`);
174
+ }
175
+ const todoListData = {
176
+ version: '1.0.0',
177
+ timestamp: new Date().toISOString(),
178
+ source: todoPath,
179
+ summary: {
180
+ total: todos.length,
181
+ pending: todos.filter(t => t.status === 'pending').length,
182
+ inProgress: todos.filter(t => t.status === 'in_progress').length,
183
+ completed: todos.filter(t => t.status === 'completed').length,
184
+ byPriority: {
185
+ critical: todos.filter(t => t.priority === 'critical').length,
186
+ high: todos.filter(t => t.priority === 'high').length,
187
+ medium: todos.filter(t => t.priority === 'medium').length,
188
+ low: todos.filter(t => t.priority === 'low').length,
189
+ },
190
+ },
191
+ todos,
192
+ };
193
+ const result = {
194
+ data: todoListData,
195
+ contentType: 'application/json',
196
+ lastModified: new Date().toISOString(),
197
+ cacheKey,
198
+ ttl: 60, // 1 minute cache (tasks change frequently)
199
+ etag: generateETag(todoListData),
200
+ };
201
+ // Cache result
202
+ resourceCache.set(cacheKey, result, result.ttl);
203
+ return result;
204
+ }
205
+ catch (error) {
206
+ throw new McpAdrError(`Failed to generate todo list resource: ${error instanceof Error ? error.message : String(error)}`, 'RESOURCE_GENERATION_ERROR');
207
+ }
208
+ }
209
+ //# sourceMappingURL=todo-list-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-list-resource.js","sourceRoot":"","sources":["../../../src/resources/todo-list-resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Validated Pattern by Platform Resource
3
+ * URI Pattern: adr://validated_pattern/{platform}
4
+ *
5
+ * Provides complete validated pattern for a specific platform
6
+ * including bill of materials, deployment phases, validation checks
7
+ */
8
+ import { URLSearchParams } from 'url';
9
+ import { ResourceGenerationResult } from './index.js';
10
+ /**
11
+ * Generate validated pattern by platform resource
12
+ */
13
+ export declare function generateValidatedPatternByPlatformResource(params: Record<string, string>, _searchParams: URLSearchParams): Promise<ResourceGenerationResult>;
14
+ //# sourceMappingURL=validated-pattern-by-platform-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validated-pattern-by-platform-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/validated-pattern-by-platform-resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAGtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAItD;;GAEG;AACH,wBAAsB,0CAA0C,CAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAsCnC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Validated Pattern by Platform Resource
3
+ * URI Pattern: adr://validated_pattern/{platform}
4
+ *
5
+ * Provides complete validated pattern for a specific platform
6
+ * including bill of materials, deployment phases, validation checks
7
+ */
8
+ import { McpAdrError } from '../types/index.js';
9
+ import { resourceCache, generateETag } from './resource-cache.js';
10
+ import { resourceRouter } from './resource-router.js';
11
+ import { getPattern } from '../utils/validated-pattern-definitions.js';
12
+ /**
13
+ * Generate validated pattern by platform resource
14
+ */
15
+ export async function generateValidatedPatternByPlatformResource(params, _searchParams) {
16
+ const platform = params['platform'];
17
+ if (!platform) {
18
+ throw new McpAdrError('Missing required parameter: platform', 'INVALID_PARAMS');
19
+ }
20
+ const cacheKey = `validated-pattern:${platform}`;
21
+ // Check cache
22
+ const cached = await resourceCache.get(cacheKey);
23
+ if (cached) {
24
+ return cached;
25
+ }
26
+ // Get pattern for platform
27
+ const pattern = getPattern(platform);
28
+ if (!pattern) {
29
+ throw new McpAdrError(`No validated pattern found for platform: ${platform}. Valid platforms: openshift, kubernetes, docker, nodejs, python, mcp, a2a`, 'RESOURCE_NOT_FOUND');
30
+ }
31
+ const result = {
32
+ data: pattern,
33
+ contentType: 'application/json',
34
+ lastModified: pattern.metadata.lastUpdated,
35
+ cacheKey,
36
+ ttl: 3600, // 1 hour cache
37
+ etag: generateETag(pattern),
38
+ };
39
+ // Cache result
40
+ resourceCache.set(cacheKey, result, result.ttl);
41
+ return result;
42
+ }
43
+ // Register route
44
+ resourceRouter.register('/validated_pattern/{platform}', generateValidatedPatternByPlatformResource, 'Individual validated pattern by platform type');
45
+ //# sourceMappingURL=validated-pattern-by-platform-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validated-pattern-by-platform-resource.js","sourceRoot":"","sources":["../../../src/resources/validated-pattern-by-platform-resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAqB,MAAM,2CAA2C,CAAC;AAE1F;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,0CAA0C,CAC9D,MAA8B,EAC9B,aAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAiB,CAAC;IAEpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,WAAW,CAAC,sCAAsC,EAAE,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,QAAQ,EAAE,CAAC;IAEjD,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAA2B,QAAQ,CAAC,CAAC;IAC3E,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CACnB,4CAA4C,QAAQ,4EAA4E,EAChI,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA6B;QACvC,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kBAAkB;QAC/B,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;QAC1C,QAAQ;QACR,GAAG,EAAE,IAAI,EAAE,eAAe;QAC1B,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;KAC5B,CAAC;IAEF,eAAe;IACf,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iBAAiB;AACjB,cAAc,CAAC,QAAQ,CACrB,+BAA+B,EAC/B,0CAA0C,EAC1C,+CAA+C,CAChD,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Validated Patterns Catalog Resource
3
+ * URI Pattern: adr://validated_patterns
4
+ *
5
+ * Provides complete catalog of validated deployment patterns
6
+ * for different platforms with metadata and summaries
7
+ */
8
+ import { ResourceGenerationResult } from './index.js';
9
+ import { type PlatformType } from '../utils/validated-pattern-definitions.js';
10
+ export interface ValidatedPatternsCatalog {
11
+ patterns: Array<{
12
+ id: string;
13
+ name: string;
14
+ version: string;
15
+ platformType: PlatformType;
16
+ description: string;
17
+ lastUpdated: string;
18
+ source: string;
19
+ tags: string[];
20
+ hasBaseCodeRepository: boolean;
21
+ hasAuthoritativeSources: boolean;
22
+ authoritativeSourceCount: number;
23
+ deploymentPhaseCount: number;
24
+ validationCheckCount: number;
25
+ }>;
26
+ metadata: {
27
+ totalPatterns: number;
28
+ platforms: PlatformType[];
29
+ lastGenerated: string;
30
+ };
31
+ }
32
+ /**
33
+ * Generate validated patterns catalog resource
34
+ */
35
+ export declare function generateValidatedPatternsCatalogResource(): Promise<ResourceGenerationResult>;
36
+ //# sourceMappingURL=validated-patterns-catalog-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validated-patterns-catalog-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/validated-patterns-catalog-resource.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,YAAY,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,qBAAqB,EAAE,OAAO,CAAC;QAC/B,uBAAuB,EAAE,OAAO,CAAC;QACjC,wBAAwB,EAAE,MAAM,CAAC;QACjC,oBAAoB,EAAE,MAAM,CAAC;QAC7B,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;IACH,QAAQ,EAAE;QACR,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,wCAAwC,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAkDlG"}