mcp-adr-analysis-server 2.1.9 → 2.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/index.d.ts +78 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1793 -577
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/index.d.ts.map +1 -1
- package/dist/src/prompts/index.js +23 -6
- package/dist/src/prompts/index.js.map +1 -1
- package/dist/src/prompts/validated-pattern-prompts.d.ts +33 -0
- package/dist/src/prompts/validated-pattern-prompts.d.ts.map +1 -0
- package/dist/src/prompts/validated-pattern-prompts.js +337 -0
- package/dist/src/prompts/validated-pattern-prompts.js.map +1 -0
- package/dist/src/resources/adr-by-id-resource.d.ts +116 -0
- package/dist/src/resources/adr-by-id-resource.d.ts.map +1 -0
- package/dist/src/resources/adr-by-id-resource.js +213 -0
- package/dist/src/resources/adr-by-id-resource.js.map +1 -0
- package/dist/src/resources/code-quality-resource.d.ts +105 -0
- package/dist/src/resources/code-quality-resource.d.ts.map +1 -0
- package/dist/src/resources/code-quality-resource.js +282 -0
- package/dist/src/resources/code-quality-resource.js.map +1 -0
- package/dist/src/resources/deployment-history-resource.d.ts +214 -0
- package/dist/src/resources/deployment-history-resource.d.ts.map +1 -0
- package/dist/src/resources/deployment-history-resource.js +308 -0
- package/dist/src/resources/deployment-history-resource.js.map +1 -0
- package/dist/src/resources/deployment-status-resource.d.ts +256 -0
- package/dist/src/resources/deployment-status-resource.d.ts.map +1 -0
- package/dist/src/resources/deployment-status-resource.js +665 -0
- package/dist/src/resources/deployment-status-resource.js.map +1 -0
- package/dist/src/resources/environment-analysis-resource.d.ts +237 -0
- package/dist/src/resources/environment-analysis-resource.d.ts.map +1 -0
- package/dist/src/resources/environment-analysis-resource.js +646 -0
- package/dist/src/resources/environment-analysis-resource.js.map +1 -0
- package/dist/src/resources/index.d.ts +6 -2
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +247 -492
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/resources/memory-snapshots-resource.d.ts +180 -0
- package/dist/src/resources/memory-snapshots-resource.d.ts.map +1 -0
- package/dist/src/resources/memory-snapshots-resource.js +847 -0
- package/dist/src/resources/memory-snapshots-resource.js.map +1 -0
- package/dist/src/resources/pattern-base-code-by-platform-resource.d.ts +35 -0
- package/dist/src/resources/pattern-base-code-by-platform-resource.d.ts.map +1 -0
- package/dist/src/resources/pattern-base-code-by-platform-resource.js +72 -0
- package/dist/src/resources/pattern-base-code-by-platform-resource.js.map +1 -0
- package/dist/src/resources/pattern-by-name-resource.d.ts +53 -0
- package/dist/src/resources/pattern-by-name-resource.d.ts.map +1 -0
- package/dist/src/resources/pattern-by-name-resource.js +200 -0
- package/dist/src/resources/pattern-by-name-resource.js.map +1 -0
- package/dist/src/resources/pattern-sources-by-platform-resource.d.ts +26 -0
- package/dist/src/resources/pattern-sources-by-platform-resource.d.ts.map +1 -0
- package/dist/src/resources/pattern-sources-by-platform-resource.js +59 -0
- package/dist/src/resources/pattern-sources-by-platform-resource.js.map +1 -0
- package/dist/src/resources/project-metrics-resource.d.ts +180 -0
- package/dist/src/resources/project-metrics-resource.d.ts.map +1 -0
- package/dist/src/resources/project-metrics-resource.js +487 -0
- package/dist/src/resources/project-metrics-resource.js.map +1 -0
- package/dist/src/resources/project-status-resource.d.ts +75 -0
- package/dist/src/resources/project-status-resource.d.ts.map +1 -0
- package/dist/src/resources/project-status-resource.js +189 -0
- package/dist/src/resources/project-status-resource.js.map +1 -0
- package/dist/src/resources/research-by-topic-resource.d.ts +21 -0
- package/dist/src/resources/research-by-topic-resource.d.ts.map +1 -0
- package/dist/src/resources/research-by-topic-resource.js +125 -0
- package/dist/src/resources/research-by-topic-resource.js.map +1 -0
- package/dist/src/resources/research-index-resource.d.ts +100 -0
- package/dist/src/resources/research-index-resource.d.ts.map +1 -0
- package/dist/src/resources/research-index-resource.js +200 -0
- package/dist/src/resources/research-index-resource.js.map +1 -0
- package/dist/src/resources/resource-cache.d.ts +144 -0
- package/dist/src/resources/resource-cache.d.ts.map +1 -0
- package/dist/src/resources/resource-cache.js +316 -0
- package/dist/src/resources/resource-cache.js.map +1 -0
- package/dist/src/resources/resource-router.d.ts +45 -0
- package/dist/src/resources/resource-router.d.ts.map +1 -0
- package/dist/src/resources/resource-router.js +96 -0
- package/dist/src/resources/resource-router.js.map +1 -0
- package/dist/src/resources/rule-by-id-resource.d.ts +38 -0
- package/dist/src/resources/rule-by-id-resource.d.ts.map +1 -0
- package/dist/src/resources/rule-by-id-resource.js +104 -0
- package/dist/src/resources/rule-by-id-resource.js.map +1 -0
- package/dist/src/resources/rule-catalog-resource.d.ts +126 -0
- package/dist/src/resources/rule-catalog-resource.d.ts.map +1 -0
- package/dist/src/resources/rule-catalog-resource.js +224 -0
- package/dist/src/resources/rule-catalog-resource.js.map +1 -0
- package/dist/src/resources/rule-generation-resource.d.ts +80 -0
- package/dist/src/resources/rule-generation-resource.d.ts.map +1 -0
- package/dist/src/resources/rule-generation-resource.js +282 -0
- package/dist/src/resources/rule-generation-resource.js.map +1 -0
- package/dist/src/resources/technology-by-name-resource.d.ts +43 -0
- package/dist/src/resources/technology-by-name-resource.d.ts.map +1 -0
- package/dist/src/resources/technology-by-name-resource.js +176 -0
- package/dist/src/resources/technology-by-name-resource.js.map +1 -0
- package/dist/src/resources/todo-by-id-resource.d.ts +46 -0
- package/dist/src/resources/todo-by-id-resource.d.ts.map +1 -0
- package/dist/src/resources/todo-by-id-resource.js +192 -0
- package/dist/src/resources/todo-by-id-resource.js.map +1 -0
- package/dist/src/resources/todo-list-resource.d.ts +96 -0
- package/dist/src/resources/todo-list-resource.d.ts.map +1 -0
- package/dist/src/resources/todo-list-resource.js +209 -0
- package/dist/src/resources/todo-list-resource.js.map +1 -0
- package/dist/src/resources/validated-pattern-by-platform-resource.d.ts +14 -0
- package/dist/src/resources/validated-pattern-by-platform-resource.d.ts.map +1 -0
- package/dist/src/resources/validated-pattern-by-platform-resource.js +45 -0
- package/dist/src/resources/validated-pattern-by-platform-resource.js.map +1 -0
- package/dist/src/resources/validated-patterns-catalog-resource.d.ts +36 -0
- package/dist/src/resources/validated-patterns-catalog-resource.d.ts.map +1 -0
- package/dist/src/resources/validated-patterns-catalog-resource.js +57 -0
- package/dist/src/resources/validated-patterns-catalog-resource.js.map +1 -0
- package/dist/src/templates/domain-knowledge-templates.d.ts.map +1 -1
- package/dist/src/templates/domain-knowledge-templates.js +49 -49
- package/dist/src/templates/domain-knowledge-templates.js.map +1 -1
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-bootstrap-validation-tool.js +214 -4
- package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.d.ts +2 -2
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +129 -12
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/adr-validation-tool.d.ts +98 -0
- package/dist/src/tools/adr-validation-tool.d.ts.map +1 -0
- package/dist/src/tools/adr-validation-tool.js +372 -0
- package/dist/src/tools/adr-validation-tool.js.map +1 -0
- package/dist/src/tools/bootstrap-validation-loop-tool.d.ts +262 -0
- package/dist/src/tools/bootstrap-validation-loop-tool.d.ts.map +1 -0
- package/dist/src/tools/bootstrap-validation-loop-tool.js +1934 -0
- package/dist/src/tools/bootstrap-validation-loop-tool.js.map +1 -0
- package/dist/src/tools/conversation-memory-tool.d.ts +48 -0
- package/dist/src/tools/conversation-memory-tool.d.ts.map +1 -0
- package/dist/src/tools/conversation-memory-tool.js +254 -0
- package/dist/src/tools/conversation-memory-tool.js.map +1 -0
- package/dist/src/tools/deployment-analysis-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-analysis-tool.js +82 -6
- package/dist/src/tools/deployment-analysis-tool.js.map +1 -1
- package/dist/src/tools/deployment-guidance-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-guidance-tool.js +126 -25
- package/dist/src/tools/deployment-guidance-tool.js.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.js +166 -5
- package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
- package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
- package/dist/src/tools/environment-analysis-tool.js +36 -1
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/expand-analysis-tool.d.ts +23 -0
- package/dist/src/tools/expand-analysis-tool.d.ts.map +1 -0
- package/dist/src/tools/expand-analysis-tool.js +107 -0
- package/dist/src/tools/expand-analysis-tool.js.map +1 -0
- package/dist/src/tools/get-server-context-tool.d.ts +67 -0
- package/dist/src/tools/get-server-context-tool.d.ts.map +1 -0
- package/dist/src/tools/get-server-context-tool.js +75 -0
- package/dist/src/tools/get-server-context-tool.js.map +1 -0
- package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.js +82 -9
- package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
- package/dist/src/tools/llm-cloud-management-tool.d.ts +62 -0
- package/dist/src/tools/llm-cloud-management-tool.d.ts.map +1 -0
- package/dist/src/tools/llm-cloud-management-tool.js +202 -0
- package/dist/src/tools/llm-cloud-management-tool.js.map +1 -0
- package/dist/src/tools/llm-database-management-tool.d.ts +62 -0
- package/dist/src/tools/llm-database-management-tool.d.ts.map +1 -0
- package/dist/src/tools/llm-database-management-tool.js +203 -0
- package/dist/src/tools/llm-database-management-tool.js.map +1 -0
- package/dist/src/tools/llm-web-search-tool.d.ts +59 -0
- package/dist/src/tools/llm-web-search-tool.d.ts.map +1 -0
- package/dist/src/tools/llm-web-search-tool.js +165 -0
- package/dist/src/tools/llm-web-search-tool.js.map +1 -0
- package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-planning-tool.js +10 -3
- package/dist/src/tools/mcp-planning-tool.js.map +1 -1
- package/dist/src/tools/memory-loading-tool.d.ts.map +1 -1
- package/dist/src/tools/memory-loading-tool.js +4 -2
- package/dist/src/tools/memory-loading-tool.js.map +1 -1
- package/dist/src/tools/perform-research-tool.d.ts +61 -0
- package/dist/src/tools/perform-research-tool.d.ts.map +1 -0
- package/dist/src/tools/perform-research-tool.js +324 -0
- package/dist/src/tools/perform-research-tool.js.map +1 -0
- package/dist/src/tools/research-question-tool.d.ts.map +1 -1
- package/dist/src/tools/research-question-tool.js +11 -9
- package/dist/src/tools/research-question-tool.js.map +1 -1
- package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -1
- package/dist/src/tools/review-existing-adrs-tool.js +42 -3
- package/dist/src/tools/review-existing-adrs-tool.js.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.d.ts +15 -94
- package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.js +2 -2
- package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +25 -120
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js +91 -2
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
- package/dist/src/types/ape-framework.d.ts +50 -283
- package/dist/src/types/ape-framework.d.ts.map +1 -1
- package/dist/src/types/conversation-context.d.ts.map +1 -1
- package/dist/src/types/conversation-context.js +12 -12
- package/dist/src/types/conversation-context.js.map +1 -1
- package/dist/src/types/conversation-memory.d.ts +184 -0
- package/dist/src/types/conversation-memory.d.ts.map +1 -0
- package/dist/src/types/conversation-memory.js +8 -0
- package/dist/src/types/conversation-memory.js.map +1 -0
- package/dist/src/types/index.d.ts +112 -339
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/knowledge-generation.d.ts +96 -401
- package/dist/src/types/knowledge-generation.d.ts.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.d.ts +77 -715
- package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.js +8 -8
- package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
- package/dist/src/types/memory-entities.d.ts +1230 -6164
- package/dist/src/types/memory-entities.d.ts.map +1 -1
- package/dist/src/types/memory-entities.js +8 -8
- package/dist/src/types/memory-entities.js.map +1 -1
- package/dist/src/types/reflexion-framework.d.ts +35 -264
- package/dist/src/types/reflexion-framework.d.ts.map +1 -1
- package/dist/src/types/reflexion-framework.js +1 -1
- package/dist/src/types/reflexion-framework.js.map +1 -1
- package/dist/src/types/state-reinforcement.d.ts +87 -0
- package/dist/src/types/state-reinforcement.d.ts.map +1 -0
- package/dist/src/types/state-reinforcement.js +5 -0
- package/dist/src/types/state-reinforcement.js.map +1 -0
- package/dist/src/types/tiered-response.d.ts +61 -0
- package/dist/src/types/tiered-response.d.ts.map +1 -0
- package/dist/src/types/tiered-response.js +8 -0
- package/dist/src/types/tiered-response.js.map +1 -0
- package/dist/src/types/tool-context.d.ts +50 -0
- package/dist/src/types/tool-context.d.ts.map +1 -0
- package/dist/src/types/tool-context.js +20 -0
- package/dist/src/types/tool-context.js.map +1 -0
- package/dist/src/utils/adr-action-analyzer.d.ts +23 -0
- package/dist/src/utils/adr-action-analyzer.d.ts.map +1 -0
- package/dist/src/utils/adr-action-analyzer.js +323 -0
- package/dist/src/utils/adr-action-analyzer.js.map +1 -0
- package/dist/src/utils/adr-context-detector.d.ts +33 -0
- package/dist/src/utils/adr-context-detector.d.ts.map +1 -0
- package/dist/src/utils/adr-context-detector.js +279 -0
- package/dist/src/utils/adr-context-detector.js.map +1 -0
- package/dist/src/utils/adr-discovery.d.ts +28 -2
- package/dist/src/utils/adr-discovery.d.ts.map +1 -1
- package/dist/src/utils/adr-discovery.js +91 -7
- package/dist/src/utils/adr-discovery.js.map +1 -1
- package/dist/src/utils/adr-knowledge-initializer.d.ts +54 -0
- package/dist/src/utils/adr-knowledge-initializer.d.ts.map +1 -0
- package/dist/src/utils/adr-knowledge-initializer.js +240 -0
- package/dist/src/utils/adr-knowledge-initializer.js.map +1 -0
- package/dist/src/utils/adr-timeline-extractor.d.ts +21 -0
- package/dist/src/utils/adr-timeline-extractor.d.ts.map +1 -0
- package/dist/src/utils/adr-timeline-extractor.js +294 -0
- package/dist/src/utils/adr-timeline-extractor.js.map +1 -0
- package/dist/src/utils/adr-timeline-types.d.ts +234 -0
- package/dist/src/utils/adr-timeline-types.d.ts.map +1 -0
- package/dist/src/utils/adr-timeline-types.js +7 -0
- package/dist/src/utils/adr-timeline-types.js.map +1 -0
- package/dist/src/utils/ai-executor.d.ts +36 -0
- package/dist/src/utils/ai-executor.d.ts.map +1 -1
- package/dist/src/utils/ai-executor.js +39 -3
- package/dist/src/utils/ai-executor.js.map +1 -1
- package/dist/src/utils/apply-cot-enhancement.d.ts.map +1 -1
- package/dist/src/utils/apply-cot-enhancement.js +15 -15
- package/dist/src/utils/apply-cot-enhancement.js.map +1 -1
- package/dist/src/utils/automatic-prompt-engineering.d.ts.map +1 -1
- package/dist/src/utils/automatic-prompt-engineering.js +68 -58
- package/dist/src/utils/automatic-prompt-engineering.js.map +1 -1
- package/dist/src/utils/conditional-request.d.ts +105 -0
- package/dist/src/utils/conditional-request.d.ts.map +1 -0
- package/dist/src/utils/conditional-request.js +186 -0
- package/dist/src/utils/conditional-request.js.map +1 -0
- package/dist/src/utils/config.d.ts +72 -18
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +75 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/context-document-manager.d.ts +112 -0
- package/dist/src/utils/context-document-manager.d.ts.map +1 -0
- package/dist/src/utils/context-document-manager.js +351 -0
- package/dist/src/utils/context-document-manager.js.map +1 -0
- package/dist/src/utils/conversation-memory-manager.d.ts +86 -0
- package/dist/src/utils/conversation-memory-manager.d.ts.map +1 -0
- package/dist/src/utils/conversation-memory-manager.js +443 -0
- package/dist/src/utils/conversation-memory-manager.js.map +1 -0
- package/dist/src/utils/dag-executor.d.ts +106 -0
- package/dist/src/utils/dag-executor.d.ts.map +1 -0
- package/dist/src/utils/dag-executor.js +453 -0
- package/dist/src/utils/dag-executor.js.map +1 -0
- package/dist/src/utils/deployment-analysis.d.ts.map +1 -1
- package/dist/src/utils/deployment-analysis.js +17 -9
- package/dist/src/utils/deployment-analysis.js.map +1 -1
- package/dist/src/utils/deployment-type-registry.d.ts +52 -0
- package/dist/src/utils/deployment-type-registry.d.ts.map +1 -0
- package/dist/src/utils/deployment-type-registry.js +543 -0
- package/dist/src/utils/deployment-type-registry.js.map +1 -0
- package/dist/src/utils/dynamic-deployment-intelligence.d.ts +117 -0
- package/dist/src/utils/dynamic-deployment-intelligence.d.ts.map +1 -0
- package/dist/src/utils/dynamic-deployment-intelligence.js +445 -0
- package/dist/src/utils/dynamic-deployment-intelligence.js.map +1 -0
- package/dist/src/utils/environment-analysis.d.ts.map +1 -1
- package/dist/src/utils/environment-analysis.js +63 -44
- package/dist/src/utils/environment-analysis.js.map +1 -1
- package/dist/src/utils/environment-capability-registry.d.ts +101 -0
- package/dist/src/utils/environment-capability-registry.d.ts.map +1 -0
- package/dist/src/utils/environment-capability-registry.js +489 -0
- package/dist/src/utils/environment-capability-registry.js.map +1 -0
- package/dist/src/utils/index.d.ts +3 -3
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +3 -3
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/knowledge-generation.d.ts.map +1 -1
- package/dist/src/utils/knowledge-generation.js +61 -35
- package/dist/src/utils/knowledge-generation.js.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts +19 -0
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +165 -1
- package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
- package/dist/src/utils/llm-artifact-detector.d.ts.map +1 -1
- package/dist/src/utils/llm-artifact-detector.js +28 -24
- package/dist/src/utils/llm-artifact-detector.js.map +1 -1
- package/dist/src/utils/mermaid-diagrams.d.ts +101 -0
- package/dist/src/utils/mermaid-diagrams.d.ts.map +1 -0
- package/dist/src/utils/mermaid-diagrams.js +445 -0
- package/dist/src/utils/mermaid-diagrams.js.map +1 -0
- package/dist/src/utils/monitoring.d.ts +249 -0
- package/dist/src/utils/monitoring.d.ts.map +1 -0
- package/dist/src/utils/monitoring.js +513 -0
- package/dist/src/utils/monitoring.js.map +1 -0
- package/dist/src/utils/pattern-contribution-helper.d.ts +60 -0
- package/dist/src/utils/pattern-contribution-helper.d.ts.map +1 -0
- package/dist/src/utils/pattern-contribution-helper.js +308 -0
- package/dist/src/utils/pattern-contribution-helper.js.map +1 -0
- package/dist/src/utils/pattern-loader.d.ts +183 -0
- package/dist/src/utils/pattern-loader.d.ts.map +1 -0
- package/dist/src/utils/pattern-loader.js +200 -0
- package/dist/src/utils/pattern-loader.js.map +1 -0
- package/dist/src/utils/pattern-research-utility.d.ts +107 -0
- package/dist/src/utils/pattern-research-utility.d.ts.map +1 -0
- package/dist/src/utils/pattern-research-utility.js +360 -0
- package/dist/src/utils/pattern-research-utility.js.map +1 -0
- package/dist/src/utils/pattern-to-dag-converter.d.ts +62 -0
- package/dist/src/utils/pattern-to-dag-converter.d.ts.map +1 -0
- package/dist/src/utils/pattern-to-dag-converter.js +265 -0
- package/dist/src/utils/pattern-to-dag-converter.js.map +1 -0
- package/dist/src/utils/platform-detector.d.ts +86 -0
- package/dist/src/utils/platform-detector.d.ts.map +1 -0
- package/dist/src/utils/platform-detector.js +509 -0
- package/dist/src/utils/platform-detector.js.map +1 -0
- package/dist/src/utils/prompt-composition.d.ts.map +1 -1
- package/dist/src/utils/prompt-composition.js +1 -4
- package/dist/src/utils/prompt-composition.js.map +1 -1
- package/dist/src/utils/reflexion.d.ts.map +1 -1
- package/dist/src/utils/reflexion.js +51 -42
- package/dist/src/utils/reflexion.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +8 -2
- package/dist/src/utils/research-integration.js.map +1 -1
- package/dist/src/utils/research-orchestrator.d.ts +209 -0
- package/dist/src/utils/research-orchestrator.d.ts.map +1 -0
- package/dist/src/utils/research-orchestrator.js +863 -0
- package/dist/src/utils/research-orchestrator.js.map +1 -0
- package/dist/src/utils/research-questions.d.ts.map +1 -1
- package/dist/src/utils/research-questions.js +4 -1
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/resource-extractor.d.ts +57 -0
- package/dist/src/utils/resource-extractor.d.ts.map +1 -0
- package/dist/src/utils/resource-extractor.js +323 -0
- package/dist/src/utils/resource-extractor.js.map +1 -0
- package/dist/src/utils/resource-versioning.d.ts +124 -0
- package/dist/src/utils/resource-versioning.d.ts.map +1 -0
- package/dist/src/utils/resource-versioning.js +272 -0
- package/dist/src/utils/resource-versioning.js.map +1 -0
- package/dist/src/utils/root-manager.d.ts +118 -0
- package/dist/src/utils/root-manager.d.ts.map +1 -0
- package/dist/src/utils/root-manager.js +154 -0
- package/dist/src/utils/root-manager.js.map +1 -0
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +4 -1
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/dist/src/utils/server-context-generator.d.ts +47 -0
- package/dist/src/utils/server-context-generator.d.ts.map +1 -0
- package/dist/src/utils/server-context-generator.js +666 -0
- package/dist/src/utils/server-context-generator.js.map +1 -0
- package/dist/src/utils/state-reinforcement-manager.d.ts +60 -0
- package/dist/src/utils/state-reinforcement-manager.d.ts.map +1 -0
- package/dist/src/utils/state-reinforcement-manager.js +200 -0
- package/dist/src/utils/state-reinforcement-manager.js.map +1 -0
- package/dist/src/utils/system-card-manager.d.ts +194 -0
- package/dist/src/utils/system-card-manager.d.ts.map +1 -0
- package/dist/src/utils/system-card-manager.js +336 -0
- package/dist/src/utils/system-card-manager.js.map +1 -0
- package/dist/src/utils/tiered-response-manager.d.ts +40 -0
- package/dist/src/utils/tiered-response-manager.d.ts.map +1 -0
- package/dist/src/utils/tiered-response-manager.js +243 -0
- package/dist/src/utils/tiered-response-manager.js.map +1 -0
- package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -1
- package/dist/src/utils/tree-sitter-analyzer.js +83 -11
- package/dist/src/utils/tree-sitter-analyzer.js.map +1 -1
- package/dist/src/utils/validated-pattern-definitions.d.ts +219 -0
- package/dist/src/utils/validated-pattern-definitions.d.ts.map +1 -0
- package/dist/src/utils/validated-pattern-definitions.js +1511 -0
- package/dist/src/utils/validated-pattern-definitions.js.map +1 -0
- package/package.json +22 -13
- package/dist/src/prompts/todo-prompts.d.ts +0 -49
- package/dist/src/prompts/todo-prompts.d.ts.map +0 -1
- package/dist/src/prompts/todo-prompts.js +0 -824
- package/dist/src/prompts/todo-prompts.js.map +0 -1
- package/dist/src/types/todo-json-schemas.d.ts +0 -17
- package/dist/src/types/todo-json-schemas.d.ts.map +0 -1
- package/dist/src/types/todo-json-schemas.js +0 -9
- package/dist/src/types/todo-json-schemas.js.map +0 -1
- package/dist/src/utils/todo-file-watcher.d.ts +0 -14
- package/dist/src/utils/todo-file-watcher.d.ts.map +0 -1
- package/dist/src/utils/todo-file-watcher.js +0 -25
- package/dist/src/utils/todo-file-watcher.js.map +0 -1
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR Validation Tool - Research-Driven Architecture Compliance Checker
|
|
3
|
+
*
|
|
4
|
+
* Validates existing ADRs against actual infrastructure state using:
|
|
5
|
+
* - Research Orchestrator (live environment data)
|
|
6
|
+
* - AI Executor (intelligent analysis)
|
|
7
|
+
* - Knowledge Graph (ADR relationships)
|
|
8
|
+
*/
|
|
9
|
+
import { McpAdrError } from '../types/index.js';
|
|
10
|
+
import { ResearchOrchestrator } from '../utils/research-orchestrator.js';
|
|
11
|
+
import { getAIExecutor } from '../utils/ai-executor.js';
|
|
12
|
+
import { KnowledgeGraphManager } from '../utils/knowledge-graph-manager.js';
|
|
13
|
+
import * as fs from 'fs/promises';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
/**
|
|
16
|
+
* Validate an ADR against current infrastructure reality
|
|
17
|
+
*
|
|
18
|
+
* @description Performs comprehensive validation of Architecture Decision Records (ADRs)
|
|
19
|
+
* against actual project infrastructure and environment state. Uses research orchestration,
|
|
20
|
+
* AI analysis, and knowledge graph relationships to detect compliance issues, drift,
|
|
21
|
+
* and outdated decisions.
|
|
22
|
+
*
|
|
23
|
+
* @param {Object} args - Validation configuration parameters
|
|
24
|
+
* @param {string} args.adrPath - Path to the ADR file to validate
|
|
25
|
+
* @param {string} [args.projectPath] - Path to project root (defaults to cwd)
|
|
26
|
+
* @param {string} [args.adrDirectory] - ADR directory relative to project (defaults to 'docs/adrs')
|
|
27
|
+
* @param {boolean} [args.includeEnvironmentCheck] - Enable environment validation (defaults to true)
|
|
28
|
+
* @param {number} [args.confidenceThreshold] - Minimum confidence for findings (0-1, defaults to 0.6)
|
|
29
|
+
*
|
|
30
|
+
* @returns {Promise<ADRValidationResult>} Comprehensive validation results with findings and recommendations
|
|
31
|
+
*
|
|
32
|
+
* @throws {McpAdrError} When ADR file doesn't exist or validation process fails
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* // Validate specific ADR
|
|
37
|
+
* const result = await validateAdr({
|
|
38
|
+
* adrPath: 'docs/adrs/0001-use-microservices.md'
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* console.log(result.isValid); // false
|
|
42
|
+
* console.log(result.confidence); // 0.92
|
|
43
|
+
* console.log(result.findings); // Array of compliance issues
|
|
44
|
+
* console.log(result.recommendations); // Suggested actions
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Validate with custom settings
|
|
50
|
+
* const result = await validateAdr({
|
|
51
|
+
* adrPath: 'docs/adrs/0002-database-choice.md',
|
|
52
|
+
* projectPath: '/path/to/project',
|
|
53
|
+
* includeEnvironmentCheck: false,
|
|
54
|
+
* confidenceThreshold: 0.8
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* // Check for critical issues
|
|
58
|
+
* const criticalIssues = result.findings.filter(f => f.severity === 'critical');
|
|
59
|
+
* if (criticalIssues.length > 0) {
|
|
60
|
+
* console.warn('Critical compliance issues found:', criticalIssues);
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @since 2.0.0
|
|
65
|
+
* @category ADR
|
|
66
|
+
* @category Validation
|
|
67
|
+
* @category Tools
|
|
68
|
+
* @mcp-tool
|
|
69
|
+
*/
|
|
70
|
+
export async function validateAdr(args) {
|
|
71
|
+
const { adrPath, projectPath = process.cwd(), adrDirectory = 'docs/adrs', includeEnvironmentCheck: _includeEnvironmentCheck = true, confidenceThreshold: _confidenceThreshold = 0.6, } = args;
|
|
72
|
+
try {
|
|
73
|
+
// Step 1: Read the ADR content
|
|
74
|
+
const fullAdrPath = path.isAbsolute(adrPath) ? adrPath : path.join(projectPath, adrPath);
|
|
75
|
+
let adrContent;
|
|
76
|
+
try {
|
|
77
|
+
adrContent = await fs.readFile(fullAdrPath, 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
throw new McpAdrError(`Failed to read ADR at ${fullAdrPath}: ${error instanceof Error ? error.message : String(error)}`, 'FILE_READ_ERROR');
|
|
81
|
+
}
|
|
82
|
+
// Step 2: Extract ADR metadata
|
|
83
|
+
const adrTitle = extractAdrTitle(adrContent);
|
|
84
|
+
const adrDecision = extractAdrDecision(adrContent);
|
|
85
|
+
const adrContext = extractAdrContext(adrContent);
|
|
86
|
+
// Step 3: Research current infrastructure state
|
|
87
|
+
const orchestrator = new ResearchOrchestrator(projectPath, adrDirectory);
|
|
88
|
+
const researchQuestion = `Based on the ADR titled "${adrTitle}", verify if the following is still true: ${adrDecision}. Check project files, environment state, and existing implementations.`;
|
|
89
|
+
const research = await orchestrator.answerResearchQuestion(researchQuestion);
|
|
90
|
+
// Step 4: Use AI to analyze alignment
|
|
91
|
+
const aiExecutor = getAIExecutor();
|
|
92
|
+
let validationResult;
|
|
93
|
+
if (aiExecutor.isAvailable()) {
|
|
94
|
+
// AI-powered validation
|
|
95
|
+
const aiAnalysis = await aiExecutor.executeStructuredPrompt(`You are an expert at validating Architecture Decision Records (ADRs) against actual infrastructure.
|
|
96
|
+
|
|
97
|
+
**ADR Being Validated:**
|
|
98
|
+
Title: ${adrTitle}
|
|
99
|
+
Decision: ${adrDecision}
|
|
100
|
+
Context: ${adrContext}
|
|
101
|
+
|
|
102
|
+
**Current Infrastructure Research:**
|
|
103
|
+
${research.answer}
|
|
104
|
+
|
|
105
|
+
**Research Confidence:** ${(research.confidence * 100).toFixed(1)}%
|
|
106
|
+
**Sources Consulted:** ${research.sources.map(s => s.type).join(', ')}
|
|
107
|
+
**Files Analyzed:** ${research.metadata.filesAnalyzed}
|
|
108
|
+
|
|
109
|
+
**Your Task:**
|
|
110
|
+
Analyze if the ADR decision is still valid and being followed in the current infrastructure.
|
|
111
|
+
|
|
112
|
+
Return JSON with:
|
|
113
|
+
{
|
|
114
|
+
"isValid": boolean,
|
|
115
|
+
"confidence": number (0-1),
|
|
116
|
+
"findings": [
|
|
117
|
+
{
|
|
118
|
+
"type": "compliance" | "drift" | "outdated" | "missing_evidence" | "conflict",
|
|
119
|
+
"severity": "critical" | "high" | "medium" | "low",
|
|
120
|
+
"description": "Clear description of the finding",
|
|
121
|
+
"evidence": "Specific evidence from research data"
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"recommendations": ["Actionable recommendations"]
|
|
125
|
+
}`, null, {
|
|
126
|
+
temperature: 0.2,
|
|
127
|
+
maxTokens: 2000,
|
|
128
|
+
systemPrompt: 'You are a meticulous architecture validator. Base your analysis ONLY on the research evidence provided. Do not hallucinate or assume information not present in the research data.',
|
|
129
|
+
});
|
|
130
|
+
validationResult = {
|
|
131
|
+
adrPath: fullAdrPath,
|
|
132
|
+
adrTitle,
|
|
133
|
+
isValid: aiAnalysis.data.isValid,
|
|
134
|
+
confidence: aiAnalysis.data.confidence,
|
|
135
|
+
findings: aiAnalysis.data.findings,
|
|
136
|
+
recommendations: aiAnalysis.data.recommendations,
|
|
137
|
+
researchData: {
|
|
138
|
+
sources: research.sources.map(s => s.type),
|
|
139
|
+
confidence: research.confidence,
|
|
140
|
+
needsWebSearch: research.needsWebSearch,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
// Fallback: Rule-based validation
|
|
146
|
+
validationResult = performRuleBasedValidation(fullAdrPath, adrTitle, adrDecision, research);
|
|
147
|
+
}
|
|
148
|
+
// Step 5: Check knowledge graph for related ADRs
|
|
149
|
+
const kgManager = new KnowledgeGraphManager();
|
|
150
|
+
const relatedAdrs = kgManager.getRelationships('adr', 'relates-to') || [];
|
|
151
|
+
// Step 6: Format response
|
|
152
|
+
return {
|
|
153
|
+
content: [
|
|
154
|
+
{
|
|
155
|
+
type: 'text',
|
|
156
|
+
text: formatValidationResponse(validationResult, research, relatedAdrs, aiExecutor.isAvailable()),
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
throw new McpAdrError(`ADR validation failed: ${error instanceof Error ? error.message : String(error)}`, 'VALIDATION_ERROR');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Validate multiple ADRs in a directory
|
|
167
|
+
*/
|
|
168
|
+
export async function validateAllAdrs(args) {
|
|
169
|
+
const { projectPath = process.cwd(), adrDirectory = 'docs/adrs', includeEnvironmentCheck = true, minConfidence = 0.6, } = args;
|
|
170
|
+
try {
|
|
171
|
+
const fullAdrDir = path.join(projectPath, adrDirectory);
|
|
172
|
+
// Find all ADR files
|
|
173
|
+
const files = await fs.readdir(fullAdrDir);
|
|
174
|
+
const adrFiles = files.filter(f => f.endsWith('.md') && f.match(/adr-\d+/i));
|
|
175
|
+
const results = [];
|
|
176
|
+
for (const adrFile of adrFiles) {
|
|
177
|
+
try {
|
|
178
|
+
// Validate individual ADR - result extraction will be added later
|
|
179
|
+
await validateAdr({
|
|
180
|
+
adrPath: path.join(adrDirectory, adrFile),
|
|
181
|
+
projectPath,
|
|
182
|
+
adrDirectory,
|
|
183
|
+
includeEnvironmentCheck,
|
|
184
|
+
confidenceThreshold: minConfidence,
|
|
185
|
+
});
|
|
186
|
+
// Extract validation result from response
|
|
187
|
+
// This is a simplified extraction - in production would parse the response
|
|
188
|
+
results.push({
|
|
189
|
+
adrPath: path.join(fullAdrDir, adrFile),
|
|
190
|
+
adrTitle: adrFile,
|
|
191
|
+
isValid: true,
|
|
192
|
+
confidence: 0.8,
|
|
193
|
+
findings: [],
|
|
194
|
+
recommendations: [],
|
|
195
|
+
researchData: { sources: [], confidence: 0.8, needsWebSearch: false },
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
console.warn(`Failed to validate ${adrFile}:`, error);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// Generate summary
|
|
203
|
+
const totalAdrs = results.length;
|
|
204
|
+
const validAdrs = results.filter(r => r.isValid).length;
|
|
205
|
+
const criticalIssues = results.reduce((sum, r) => sum + r.findings.filter(f => f.severity === 'critical').length, 0);
|
|
206
|
+
return {
|
|
207
|
+
content: [
|
|
208
|
+
{
|
|
209
|
+
type: 'text',
|
|
210
|
+
text: `# ADR Validation Summary
|
|
211
|
+
|
|
212
|
+
## Overview
|
|
213
|
+
- **Total ADRs Validated**: ${totalAdrs}
|
|
214
|
+
- **Valid ADRs**: ${validAdrs} (${((validAdrs / totalAdrs) * 100).toFixed(1)}%)
|
|
215
|
+
- **Invalid/Drifted ADRs**: ${totalAdrs - validAdrs}
|
|
216
|
+
- **Critical Issues**: ${criticalIssues}
|
|
217
|
+
|
|
218
|
+
## Validation Results
|
|
219
|
+
|
|
220
|
+
${results
|
|
221
|
+
.map(r => `### ${r.adrTitle}
|
|
222
|
+
- **Status**: ${r.isValid ? '✅ Valid' : '⚠️ Needs Review'}
|
|
223
|
+
- **Confidence**: ${(r.confidence * 100).toFixed(1)}%
|
|
224
|
+
- **Findings**: ${r.findings.length}
|
|
225
|
+
- **Path**: ${r.adrPath}
|
|
226
|
+
`)
|
|
227
|
+
.join('\n')}
|
|
228
|
+
|
|
229
|
+
## Recommendations
|
|
230
|
+
|
|
231
|
+
${results
|
|
232
|
+
.filter(r => !r.isValid)
|
|
233
|
+
.map(r => `### ${r.adrTitle}\n${r.recommendations.map(rec => `- ${rec}`).join('\n')}`)
|
|
234
|
+
.join('\n\n')}
|
|
235
|
+
`,
|
|
236
|
+
},
|
|
237
|
+
],
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
throw new McpAdrError(`Bulk ADR validation failed: ${error instanceof Error ? error.message : String(error)}`, 'BULK_VALIDATION_ERROR');
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Helper functions
|
|
245
|
+
function extractAdrTitle(content) {
|
|
246
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
247
|
+
return titleMatch?.[1]?.trim() || 'Untitled ADR';
|
|
248
|
+
}
|
|
249
|
+
function extractAdrDecision(content) {
|
|
250
|
+
const decisionMatch = content.match(/##\s+Decision\s*\n\n([\s\S]+?)(?=\n##|$)/i);
|
|
251
|
+
const decisionText = decisionMatch?.[1]?.trim();
|
|
252
|
+
return decisionText ? decisionText.substring(0, 500) : 'No decision section found';
|
|
253
|
+
}
|
|
254
|
+
function extractAdrContext(content) {
|
|
255
|
+
const contextMatch = content.match(/##\s+Context\s*\n\n([\s\S]+?)(?=\n##|$)/i);
|
|
256
|
+
return contextMatch?.[1]?.trim().substring(0, 500) ?? 'No context section found';
|
|
257
|
+
}
|
|
258
|
+
function performRuleBasedValidation(adrPath, adrTitle, _adrDecision, research) {
|
|
259
|
+
const findings = [];
|
|
260
|
+
// Check if research confidence is low
|
|
261
|
+
if (research.confidence < 0.5) {
|
|
262
|
+
findings.push({
|
|
263
|
+
type: 'missing_evidence',
|
|
264
|
+
severity: 'medium',
|
|
265
|
+
description: 'Low confidence in research findings - may need manual verification',
|
|
266
|
+
evidence: `Research confidence: ${(research.confidence * 100).toFixed(1)}%`,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
// Check if web search is needed
|
|
270
|
+
if (research.needsWebSearch) {
|
|
271
|
+
findings.push({
|
|
272
|
+
type: 'missing_evidence',
|
|
273
|
+
severity: 'low',
|
|
274
|
+
description: 'Additional research may be needed via web search',
|
|
275
|
+
evidence: 'Local sources provided insufficient information',
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
adrPath,
|
|
280
|
+
adrTitle,
|
|
281
|
+
isValid: findings.filter(f => f.severity === 'critical' || f.severity === 'high').length === 0,
|
|
282
|
+
confidence: research.confidence,
|
|
283
|
+
findings,
|
|
284
|
+
recommendations: [
|
|
285
|
+
'Consider updating ADR with current implementation details',
|
|
286
|
+
'Verify decision is still aligned with business requirements',
|
|
287
|
+
],
|
|
288
|
+
researchData: {
|
|
289
|
+
sources: research.sources.map((s) => s.type),
|
|
290
|
+
confidence: research.confidence,
|
|
291
|
+
needsWebSearch: research.needsWebSearch,
|
|
292
|
+
},
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
function formatValidationResponse(result, research, relatedAdrs, aiEnabled) {
|
|
296
|
+
return `# ADR Validation Report
|
|
297
|
+
|
|
298
|
+
## ADR Information
|
|
299
|
+
- **Path**: ${result.adrPath}
|
|
300
|
+
- **Title**: ${result.adrTitle}
|
|
301
|
+
- **Status**: ${result.isValid ? '✅ Valid' : '⚠️ Needs Review'}
|
|
302
|
+
- **Confidence**: ${(result.confidence * 100).toFixed(1)}%
|
|
303
|
+
|
|
304
|
+
## Validation Method
|
|
305
|
+
- **AI-Powered Analysis**: ${aiEnabled ? '✅ Enabled' : '❌ Disabled (using rule-based validation)'}
|
|
306
|
+
- **Research-Driven**: ✅ Enabled
|
|
307
|
+
- **Environment Check**: ${research.sources.some((s) => s.type === 'environment') ? '✅ Completed' : '❌ Skipped'}
|
|
308
|
+
|
|
309
|
+
## Research Data Used
|
|
310
|
+
- **Sources Consulted**: ${result.researchData.sources.join(', ')}
|
|
311
|
+
- **Research Confidence**: ${(result.researchData.confidence * 100).toFixed(1)}%
|
|
312
|
+
- **Files Analyzed**: ${research.metadata.filesAnalyzed}
|
|
313
|
+
- **Search Duration**: ${research.metadata.duration}ms
|
|
314
|
+
- **Needs Web Search**: ${result.researchData.needsWebSearch ? '⚠️ Yes' : '✅ No'}
|
|
315
|
+
|
|
316
|
+
## Findings
|
|
317
|
+
|
|
318
|
+
${result.findings.length > 0
|
|
319
|
+
? result.findings
|
|
320
|
+
.map(finding => `### ${getSeverityIcon(finding.severity)} ${finding.type.toUpperCase()}
|
|
321
|
+
**Severity**: ${finding.severity}
|
|
322
|
+
**Description**: ${finding.description}
|
|
323
|
+
**Evidence**: ${finding.evidence}
|
|
324
|
+
`)
|
|
325
|
+
.join('\n')
|
|
326
|
+
: '✅ No issues found - ADR appears to be valid and current.'}
|
|
327
|
+
|
|
328
|
+
## Recommendations
|
|
329
|
+
|
|
330
|
+
${result.recommendations.map(rec => `- ${rec}`).join('\n')}
|
|
331
|
+
|
|
332
|
+
## Related ADRs
|
|
333
|
+
|
|
334
|
+
${relatedAdrs.length > 0 ? relatedAdrs.map(adr => `- ${adr}`).join('\n') : 'No related ADRs found in knowledge graph.'}
|
|
335
|
+
|
|
336
|
+
## Next Steps
|
|
337
|
+
|
|
338
|
+
${!result.isValid
|
|
339
|
+
? `1. **Review Findings**: Address critical and high-severity issues first
|
|
340
|
+
2. **Update ADR**: Modify the ADR to reflect current reality
|
|
341
|
+
3. **Verify Implementation**: Ensure code matches updated decision
|
|
342
|
+
4. **Re-validate**: Run validation again after changes`
|
|
343
|
+
: `1. **Maintain Currency**: Continue monitoring for architectural drift
|
|
344
|
+
2. **Update Documentation**: Keep ADR context current with environment changes
|
|
345
|
+
3. **Review Periodically**: Re-validate quarterly or when major changes occur`}
|
|
346
|
+
|
|
347
|
+
## Research Details
|
|
348
|
+
|
|
349
|
+
### Infrastructure Answer
|
|
350
|
+
${research.answer}
|
|
351
|
+
|
|
352
|
+
### Sources Detail
|
|
353
|
+
${research.sources
|
|
354
|
+
.map((s) => `- **${s.type}**: ${s.found ? `✅ Found (confidence: ${(s.confidence * 100).toFixed(1)}%)` : '❌ Not found'}`)
|
|
355
|
+
.join('\n')}
|
|
356
|
+
`;
|
|
357
|
+
}
|
|
358
|
+
function getSeverityIcon(severity) {
|
|
359
|
+
switch (severity) {
|
|
360
|
+
case 'critical':
|
|
361
|
+
return '🔴';
|
|
362
|
+
case 'high':
|
|
363
|
+
return '🟠';
|
|
364
|
+
case 'medium':
|
|
365
|
+
return '🟡';
|
|
366
|
+
case 'low':
|
|
367
|
+
return '🟢';
|
|
368
|
+
default:
|
|
369
|
+
return '⚪';
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=adr-validation-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr-validation-tool.js","sourceRoot":"","sources":["../../../src/tools/adr-validation-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool for Bootstrap Validation Loop with ADR Learning
|
|
3
|
+
*
|
|
4
|
+
* Implements a self-learning architecture validation system:
|
|
5
|
+
* 1. Generate bootstrap scripts from ADRs
|
|
6
|
+
* 2. Execute scripts in real environment with monitoring
|
|
7
|
+
* 3. Capture learnings and failures
|
|
8
|
+
* 4. Mask sensitive information
|
|
9
|
+
* 5. Update ADRs with deployment experience
|
|
10
|
+
* 6. Re-generate improved scripts
|
|
11
|
+
* 7. Validate until success
|
|
12
|
+
*
|
|
13
|
+
* This creates a bidirectional feedback loop where ADRs evolve
|
|
14
|
+
* based on real-world deployment experience.
|
|
15
|
+
*/
|
|
16
|
+
import { DynamicDeploymentPlan } from '../utils/dynamic-deployment-intelligence.js';
|
|
17
|
+
import { PlatformDetectionResult } from '../utils/platform-detector.js';
|
|
18
|
+
import { DAGExecutionResult } from '../utils/dag-executor.js';
|
|
19
|
+
/**
|
|
20
|
+
* Bootstrap execution result with environment context
|
|
21
|
+
*/
|
|
22
|
+
export interface BootstrapExecutionResult {
|
|
23
|
+
executionId: string;
|
|
24
|
+
timestamp: string;
|
|
25
|
+
success: boolean;
|
|
26
|
+
duration: number;
|
|
27
|
+
exitCode: number;
|
|
28
|
+
stdout: string;
|
|
29
|
+
stderr: string;
|
|
30
|
+
environmentSnapshot: {
|
|
31
|
+
docker?: any;
|
|
32
|
+
kubernetes?: any;
|
|
33
|
+
openshift?: any;
|
|
34
|
+
ansible?: any;
|
|
35
|
+
systemInfo?: any;
|
|
36
|
+
};
|
|
37
|
+
validationResults?: ValidationResult[];
|
|
38
|
+
learnings: BootstrapLearning[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validation result for a specific check
|
|
42
|
+
*/
|
|
43
|
+
export interface ValidationResult {
|
|
44
|
+
checkId: string;
|
|
45
|
+
adrId: string;
|
|
46
|
+
requirement: string;
|
|
47
|
+
passed: boolean;
|
|
48
|
+
actualState: string;
|
|
49
|
+
expectedState: string;
|
|
50
|
+
confidence: number;
|
|
51
|
+
evidence: string[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Learning captured from bootstrap execution
|
|
55
|
+
*/
|
|
56
|
+
export interface BootstrapLearning {
|
|
57
|
+
type: 'success' | 'failure' | 'unexpected' | 'performance' | 'prerequisite';
|
|
58
|
+
category: 'infrastructure' | 'configuration' | 'dependency' | 'security' | 'performance';
|
|
59
|
+
description: string;
|
|
60
|
+
adrReference?: string;
|
|
61
|
+
severity: 'info' | 'warning' | 'error' | 'critical';
|
|
62
|
+
recommendation: string;
|
|
63
|
+
evidence: string[];
|
|
64
|
+
environmentSpecific: boolean;
|
|
65
|
+
timestamp: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* ADR update proposal based on learnings
|
|
69
|
+
*/
|
|
70
|
+
export interface AdrUpdateProposal {
|
|
71
|
+
adrPath: string;
|
|
72
|
+
adrTitle: string;
|
|
73
|
+
updateType: 'append' | 'modify' | 'note';
|
|
74
|
+
sectionToUpdate: string;
|
|
75
|
+
proposedContent: string;
|
|
76
|
+
learnings: BootstrapLearning[];
|
|
77
|
+
confidence: number;
|
|
78
|
+
requiresReview: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Missing file detection result
|
|
82
|
+
*/
|
|
83
|
+
export interface MissingFileInfo {
|
|
84
|
+
filePath: string;
|
|
85
|
+
fileType: 'config' | 'env' | 'build' | 'secret' | 'dependency' | 'unknown';
|
|
86
|
+
isIgnored: boolean;
|
|
87
|
+
requiredBy: string[];
|
|
88
|
+
severity: 'critical' | 'error' | 'warning' | 'info';
|
|
89
|
+
canCreateTemplate: boolean;
|
|
90
|
+
templateContent: string | undefined;
|
|
91
|
+
recommendation: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Bootstrap Validation Loop orchestrator
|
|
95
|
+
*/
|
|
96
|
+
export declare class BootstrapValidationLoop {
|
|
97
|
+
private logger;
|
|
98
|
+
private projectPath;
|
|
99
|
+
private adrDirectory;
|
|
100
|
+
private researchOrchestrator;
|
|
101
|
+
private memoryManager;
|
|
102
|
+
private deploymentIntelligence;
|
|
103
|
+
private executionHistory;
|
|
104
|
+
private maxIterations;
|
|
105
|
+
private currentIteration;
|
|
106
|
+
private deploymentPlan;
|
|
107
|
+
private platformDetection;
|
|
108
|
+
private validatedPattern;
|
|
109
|
+
private patternResearchReport;
|
|
110
|
+
private contextManager;
|
|
111
|
+
private dagExecutor;
|
|
112
|
+
private patternLoader;
|
|
113
|
+
private patternConverter;
|
|
114
|
+
private contributionHelper;
|
|
115
|
+
private systemCardManager;
|
|
116
|
+
constructor(projectPath: string, adrDirectory: string, maxIterations?: number);
|
|
117
|
+
/**
|
|
118
|
+
* Initialize the validation loop
|
|
119
|
+
*/
|
|
120
|
+
initialize(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Execute the complete validation loop
|
|
123
|
+
*/
|
|
124
|
+
executeLoop(args: {
|
|
125
|
+
targetEnvironment: string;
|
|
126
|
+
autoFix: boolean;
|
|
127
|
+
validateAfterFix: boolean;
|
|
128
|
+
captureEnvironmentSnapshot: boolean;
|
|
129
|
+
updateAdrsWithLearnings: boolean;
|
|
130
|
+
}): Promise<{
|
|
131
|
+
success: boolean;
|
|
132
|
+
iterations: number;
|
|
133
|
+
finalResult: BootstrapExecutionResult;
|
|
134
|
+
adrUpdates: AdrUpdateProposal[];
|
|
135
|
+
executionHistory: BootstrapExecutionResult[];
|
|
136
|
+
deploymentPlan?: DynamicDeploymentPlan;
|
|
137
|
+
bootstrapAdrPath?: string;
|
|
138
|
+
contextDocumentPath?: string;
|
|
139
|
+
requiresHumanApproval: boolean;
|
|
140
|
+
}>;
|
|
141
|
+
/**
|
|
142
|
+
* Create Bootstrap ADR with deployment plan and architecture diagrams
|
|
143
|
+
*/
|
|
144
|
+
private createBootstrapAdr;
|
|
145
|
+
/**
|
|
146
|
+
* Save bootstrap context document for future sessions
|
|
147
|
+
*/
|
|
148
|
+
private saveBootstrapContext;
|
|
149
|
+
/**
|
|
150
|
+
* Generate bootstrap scripts from validated pattern (NEW)
|
|
151
|
+
*/
|
|
152
|
+
private generateBootstrapScriptsFromPattern;
|
|
153
|
+
/**
|
|
154
|
+
* Generate bootstrap scripts from current ADRs (FALLBACK)
|
|
155
|
+
*/
|
|
156
|
+
private generateBootstrapScripts;
|
|
157
|
+
/**
|
|
158
|
+
* Execute bootstrap.sh with environment monitoring
|
|
159
|
+
*/
|
|
160
|
+
private executeBootstrapWithMonitoring;
|
|
161
|
+
/**
|
|
162
|
+
* Execute validate_bootstrap.sh and analyze results
|
|
163
|
+
*/
|
|
164
|
+
private executeValidationScript;
|
|
165
|
+
/**
|
|
166
|
+
* Extract learnings from execution results
|
|
167
|
+
*/
|
|
168
|
+
private extractLearnings;
|
|
169
|
+
/**
|
|
170
|
+
* Generate recommendation for a failed validation
|
|
171
|
+
*/
|
|
172
|
+
private generateRecommendation;
|
|
173
|
+
/**
|
|
174
|
+
* Update bootstrap scripts based on learnings
|
|
175
|
+
*/
|
|
176
|
+
private updateBootstrapScriptsFromLearnings;
|
|
177
|
+
/**
|
|
178
|
+
* Generate ADR update proposals based on learnings
|
|
179
|
+
*/
|
|
180
|
+
private generateAdrUpdates;
|
|
181
|
+
/**
|
|
182
|
+
* Generate deployment experience section content
|
|
183
|
+
*/
|
|
184
|
+
private generateDeploymentExperienceSection;
|
|
185
|
+
/**
|
|
186
|
+
* Detect missing files that might break bootstrap
|
|
187
|
+
*/
|
|
188
|
+
private detectMissingFiles;
|
|
189
|
+
/**
|
|
190
|
+
* Parse .gitignore file patterns
|
|
191
|
+
*/
|
|
192
|
+
private parseGitignore;
|
|
193
|
+
/**
|
|
194
|
+
* Check if a file path matches gitignore patterns
|
|
195
|
+
*/
|
|
196
|
+
private isFileIgnored;
|
|
197
|
+
/**
|
|
198
|
+
* Extract file references from ADR content
|
|
199
|
+
*/
|
|
200
|
+
private extractFileReferencesFromAdrs;
|
|
201
|
+
/**
|
|
202
|
+
* Analyze a missing file and provide recommendations
|
|
203
|
+
*/
|
|
204
|
+
private analyzeMissingFile;
|
|
205
|
+
/**
|
|
206
|
+
* Generate template content for missing files
|
|
207
|
+
*/
|
|
208
|
+
private generateTemplateContent;
|
|
209
|
+
/**
|
|
210
|
+
* Generate recommendation for missing file
|
|
211
|
+
*/
|
|
212
|
+
private generateMissingFileRecommendation;
|
|
213
|
+
/**
|
|
214
|
+
* Handle missing files - create templates or add to bootstrap prerequisites
|
|
215
|
+
*/
|
|
216
|
+
private handleMissingFiles;
|
|
217
|
+
/**
|
|
218
|
+
* Capture environment snapshot
|
|
219
|
+
*/
|
|
220
|
+
private captureEnvironmentSnapshot;
|
|
221
|
+
/**
|
|
222
|
+
* Store execution result in memory system
|
|
223
|
+
*/
|
|
224
|
+
private storeExecutionInMemory;
|
|
225
|
+
/**
|
|
226
|
+
* Compute SHA-256 hash of validated pattern for change detection
|
|
227
|
+
* @param pattern - Validated pattern to hash
|
|
228
|
+
* @returns Hex-encoded SHA-256 hash
|
|
229
|
+
*/
|
|
230
|
+
/**
|
|
231
|
+
* Execute Infrastructure Layer using DAG with validated pattern
|
|
232
|
+
*
|
|
233
|
+
* This method:
|
|
234
|
+
* 1. Attempts to load validated pattern from YAML
|
|
235
|
+
* 2. If pattern exists: Auto-generates DAG tasks from pattern definition
|
|
236
|
+
* 3. If pattern doesn't exist: Works with user to create GitHub issue
|
|
237
|
+
* 4. Executes infrastructure DAG with parallel execution where possible
|
|
238
|
+
*/
|
|
239
|
+
executeInfrastructureDAG(platformDetection: PlatformDetectionResult): Promise<DAGExecutionResult>;
|
|
240
|
+
/**
|
|
241
|
+
* Generate fallback pattern using AI when validated pattern doesn't exist
|
|
242
|
+
*/
|
|
243
|
+
private generateFallbackPattern;
|
|
244
|
+
private computePatternHash;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Main tool function for bootstrap validation loop
|
|
248
|
+
*/
|
|
249
|
+
export declare function bootstrapValidationLoop(args: {
|
|
250
|
+
projectPath?: string;
|
|
251
|
+
adrDirectory?: string;
|
|
252
|
+
targetEnvironment?: string;
|
|
253
|
+
maxIterations?: number;
|
|
254
|
+
autoFix?: boolean;
|
|
255
|
+
updateAdrsWithLearnings?: boolean;
|
|
256
|
+
currentIteration?: number;
|
|
257
|
+
previousExecutionOutput?: string;
|
|
258
|
+
previousExecutionSuccess?: boolean;
|
|
259
|
+
deploymentCleanupRequested?: boolean;
|
|
260
|
+
}): Promise<any>;
|
|
261
|
+
export default bootstrapValidationLoop;
|
|
262
|
+
//# sourceMappingURL=bootstrap-validation-loop-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-validation-loop-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/bootstrap-validation-loop-tool.ts"],"names":[],"mappings":"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"}
|