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,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment History Resource
|
|
3
|
+
*
|
|
4
|
+
* Provides historical deployment data, trends, and pattern analysis.
|
|
5
|
+
* Bridges to deployment-readiness-tool for comprehensive deployment history.
|
|
6
|
+
*
|
|
7
|
+
* URI: adr://deployment_history
|
|
8
|
+
*
|
|
9
|
+
* Query Parameters:
|
|
10
|
+
* - period: Time period to analyze (7d, 30d, 90d, 1y, all) - default: 30d
|
|
11
|
+
* - environment: Target environment (production, staging, development, all) - default: all
|
|
12
|
+
* - includeFailures: Include failed deployments (true, false) - default: true
|
|
13
|
+
* - includeMetrics: Include detailed metrics (true, false) - default: true
|
|
14
|
+
* - format: Output format (summary, detailed) - default: detailed
|
|
15
|
+
*
|
|
16
|
+
* Example URIs:
|
|
17
|
+
* - adr://deployment_history
|
|
18
|
+
* - adr://deployment_history?period=90d
|
|
19
|
+
* - adr://deployment_history?environment=production&includeFailures=true
|
|
20
|
+
* - adr://deployment_history?period=1y&format=summary
|
|
21
|
+
*/
|
|
22
|
+
import { URLSearchParams } from 'url';
|
|
23
|
+
export interface DeploymentHistoryResult {
|
|
24
|
+
period: string;
|
|
25
|
+
environment: string;
|
|
26
|
+
timestamp: string;
|
|
27
|
+
summary: {
|
|
28
|
+
totalDeployments: number;
|
|
29
|
+
successfulDeployments: number;
|
|
30
|
+
failedDeployments: number;
|
|
31
|
+
successRate: number;
|
|
32
|
+
averageDeploymentTime: string;
|
|
33
|
+
deploymentsPerWeek: number;
|
|
34
|
+
};
|
|
35
|
+
trends?: {
|
|
36
|
+
deploymentFrequency: Array<{
|
|
37
|
+
week: string;
|
|
38
|
+
deployments: number;
|
|
39
|
+
successes: number;
|
|
40
|
+
failures: number;
|
|
41
|
+
}>;
|
|
42
|
+
successRateTrend: Array<{
|
|
43
|
+
month: string;
|
|
44
|
+
successRate: number;
|
|
45
|
+
}>;
|
|
46
|
+
performanceTrend: Array<{
|
|
47
|
+
month: string;
|
|
48
|
+
averageTime: number;
|
|
49
|
+
}>;
|
|
50
|
+
};
|
|
51
|
+
recentDeployments?: Array<{
|
|
52
|
+
timestamp: string;
|
|
53
|
+
version: string;
|
|
54
|
+
environment: string;
|
|
55
|
+
status: 'success' | 'failed' | 'partial';
|
|
56
|
+
duration: string;
|
|
57
|
+
deployer?: string;
|
|
58
|
+
rollbackRequired?: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
failureAnalysis?: {
|
|
61
|
+
totalFailures: number;
|
|
62
|
+
commonFailureReasons: Array<{
|
|
63
|
+
reason: string;
|
|
64
|
+
count: number;
|
|
65
|
+
percentage: number;
|
|
66
|
+
}>;
|
|
67
|
+
mtbf: string;
|
|
68
|
+
mttr: string;
|
|
69
|
+
};
|
|
70
|
+
metrics?: {
|
|
71
|
+
deploymentVelocity: number;
|
|
72
|
+
changeFailureRate: number;
|
|
73
|
+
leadTimeForChanges: string;
|
|
74
|
+
timeToRestoreService: string;
|
|
75
|
+
};
|
|
76
|
+
patterns?: {
|
|
77
|
+
bestDeploymentDay: string;
|
|
78
|
+
bestDeploymentTime: string;
|
|
79
|
+
riskFactors: string[];
|
|
80
|
+
recommendations: string[];
|
|
81
|
+
};
|
|
82
|
+
metadata: {
|
|
83
|
+
period: string;
|
|
84
|
+
environment: string;
|
|
85
|
+
dataSource: 'comprehensive-tool' | 'basic-analysis';
|
|
86
|
+
confidence: number;
|
|
87
|
+
timestamp: string;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export interface ResourceGenerationResult {
|
|
91
|
+
data: DeploymentHistoryResult;
|
|
92
|
+
contentType: string;
|
|
93
|
+
lastModified: string;
|
|
94
|
+
cacheKey: string;
|
|
95
|
+
ttl: number;
|
|
96
|
+
etag?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Generate comprehensive deployment history resource with trend analysis and insights.
|
|
100
|
+
*
|
|
101
|
+
* Analyzes historical deployment data to provide insights into deployment patterns,
|
|
102
|
+
* success rates, failure trends, and recommendations for improving deployment reliability.
|
|
103
|
+
* Supports filtering by time period, environment, and analysis depth.
|
|
104
|
+
*
|
|
105
|
+
* **Query Parameters:**
|
|
106
|
+
* - `period`: Time period for analysis (default: "30d")
|
|
107
|
+
* - Values: "7d" (week), "30d" (month), "90d" (quarter), "365d" (year), "all"
|
|
108
|
+
* - `environment`: Filter by deployment environment (default: "all")
|
|
109
|
+
* - Values: "production", "staging", "development", "all"
|
|
110
|
+
* - `includeFailures`: Include failure analysis (default: true)
|
|
111
|
+
* - `includeMetrics`: Include detailed metrics (default: true)
|
|
112
|
+
* - `format`: Output format (default: "detailed")
|
|
113
|
+
* - Values: "summary", "detailed"
|
|
114
|
+
*
|
|
115
|
+
* **Analysis Includes:**
|
|
116
|
+
* - Total deployments and success/failure counts
|
|
117
|
+
* - Success rate percentage and trends
|
|
118
|
+
* - Average deployment time and frequency
|
|
119
|
+
* - Failure pattern analysis with common causes
|
|
120
|
+
* - Rollback frequency and impact
|
|
121
|
+
* - Time-series data for trend visualization
|
|
122
|
+
* - Improvement recommendations based on patterns
|
|
123
|
+
*
|
|
124
|
+
* @param _params - URL path parameters (currently unused, reserved for future routing)
|
|
125
|
+
* @param searchParams - URL query parameters controlling analysis scope and detail
|
|
126
|
+
*
|
|
127
|
+
* @returns Promise resolving to resource generation result containing:
|
|
128
|
+
* - data: Complete deployment history with statistics, trends, and insights
|
|
129
|
+
* - contentType: "application/json"
|
|
130
|
+
* - lastModified: ISO timestamp of generation
|
|
131
|
+
* - cacheKey: Unique identifier based on period/environment/options
|
|
132
|
+
* - ttl: Cache duration (300 seconds / 5 minutes)
|
|
133
|
+
* - etag: Entity tag for cache validation
|
|
134
|
+
*
|
|
135
|
+
* @throws {Error} Rarely throws; gracefully handles missing data by:
|
|
136
|
+
* - Returning empty history if no deployment records found
|
|
137
|
+
* - Providing zero values for missing metrics
|
|
138
|
+
* - Logging warnings for data collection issues
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* // Get last 30 days of deployment history
|
|
143
|
+
* const history = await generateDeploymentHistoryResource(
|
|
144
|
+
* {},
|
|
145
|
+
* new URLSearchParams('period=30d&environment=production')
|
|
146
|
+
* );
|
|
147
|
+
*
|
|
148
|
+
* console.log(`Total deployments: ${history.data.totalDeployments}`);
|
|
149
|
+
* console.log(`Success rate: ${history.data.successRate}%`);
|
|
150
|
+
* console.log(`Failed deployments: ${history.data.failedDeployments}`);
|
|
151
|
+
* console.log(`Rollback frequency: ${history.data.rollbackFrequency}`);
|
|
152
|
+
*
|
|
153
|
+
* // Check deployment health trends
|
|
154
|
+
* if (history.data.trends) {
|
|
155
|
+
* const qualityTrend = history.data.trends.find(t => t.metric === 'success_rate');
|
|
156
|
+
* console.log(`Quality trend: ${qualityTrend?.trend}`); // improving/stable/degrading
|
|
157
|
+
* }
|
|
158
|
+
*
|
|
159
|
+
* // Get failure patterns
|
|
160
|
+
* if (history.data.failurePatterns) {
|
|
161
|
+
* console.log('Common failure causes:');
|
|
162
|
+
* history.data.failurePatterns.commonCauses.forEach(cause => {
|
|
163
|
+
* console.log(` - ${cause.reason}: ${cause.occurrences} times`);
|
|
164
|
+
* });
|
|
165
|
+
* }
|
|
166
|
+
*
|
|
167
|
+
* // Example with summary format (faster, less detail)
|
|
168
|
+
* const summary = await generateDeploymentHistoryResource(
|
|
169
|
+
* {},
|
|
170
|
+
* new URLSearchParams('period=7d&format=summary&includeMetrics=false')
|
|
171
|
+
* );
|
|
172
|
+
*
|
|
173
|
+
* // Expected output structure:
|
|
174
|
+
* {
|
|
175
|
+
* data: {
|
|
176
|
+
* period: "30d",
|
|
177
|
+
* environment: "production",
|
|
178
|
+
* totalDeployments: 45,
|
|
179
|
+
* successfulDeployments: 42,
|
|
180
|
+
* failedDeployments: 3,
|
|
181
|
+
* successRate: 93.3,
|
|
182
|
+
* averageDeploymentTime: "8.5 minutes",
|
|
183
|
+
* rollbackFrequency: 2,
|
|
184
|
+
* trends: [
|
|
185
|
+
* {
|
|
186
|
+
* metric: "success_rate",
|
|
187
|
+
* trend: "improving",
|
|
188
|
+
* change: +5.2
|
|
189
|
+
* }
|
|
190
|
+
* ],
|
|
191
|
+
* failurePatterns: {
|
|
192
|
+
* commonCauses: [
|
|
193
|
+
* { reason: "Test failures", occurrences: 2 },
|
|
194
|
+
* { reason: "Dependency conflicts", occurrences: 1 }
|
|
195
|
+
* ],
|
|
196
|
+
* peakFailureTimes: ["2025-10-05", "2025-10-12"]
|
|
197
|
+
* },
|
|
198
|
+
* recommendations: [
|
|
199
|
+
* "Increase pre-deployment test coverage",
|
|
200
|
+
* "Implement canary deployments for reduced risk"
|
|
201
|
+
* ]
|
|
202
|
+
* },
|
|
203
|
+
* contentType: "application/json",
|
|
204
|
+
* cacheKey: "deployment-history:30d:production:true:true:detailed",
|
|
205
|
+
* ttl: 300
|
|
206
|
+
* }
|
|
207
|
+
* ```
|
|
208
|
+
*
|
|
209
|
+
* @since v2.0.0
|
|
210
|
+
* @see {@link generateComprehensiveHistory} for detailed historical analysis
|
|
211
|
+
* @see {@link generateDeploymentStatusResource} for current deployment status
|
|
212
|
+
*/
|
|
213
|
+
export declare function generateDeploymentHistoryResource(_params?: Record<string, string>, searchParams?: URLSearchParams): Promise<ResourceGenerationResult>;
|
|
214
|
+
//# sourceMappingURL=deployment-history-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-history-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/deployment-history-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deployment History Resource
|
|
3
|
+
*
|
|
4
|
+
* Provides historical deployment data, trends, and pattern analysis.
|
|
5
|
+
* Bridges to deployment-readiness-tool for comprehensive deployment history.
|
|
6
|
+
*
|
|
7
|
+
* URI: adr://deployment_history
|
|
8
|
+
*
|
|
9
|
+
* Query Parameters:
|
|
10
|
+
* - period: Time period to analyze (7d, 30d, 90d, 1y, all) - default: 30d
|
|
11
|
+
* - environment: Target environment (production, staging, development, all) - default: all
|
|
12
|
+
* - includeFailures: Include failed deployments (true, false) - default: true
|
|
13
|
+
* - includeMetrics: Include detailed metrics (true, false) - default: true
|
|
14
|
+
* - format: Output format (summary, detailed) - default: detailed
|
|
15
|
+
*
|
|
16
|
+
* Example URIs:
|
|
17
|
+
* - adr://deployment_history
|
|
18
|
+
* - adr://deployment_history?period=90d
|
|
19
|
+
* - adr://deployment_history?environment=production&includeFailures=true
|
|
20
|
+
* - adr://deployment_history?period=1y&format=summary
|
|
21
|
+
*/
|
|
22
|
+
import path from 'path';
|
|
23
|
+
import { promises as fs } from 'fs';
|
|
24
|
+
import { ResourceCache } from './resource-cache.js';
|
|
25
|
+
const resourceCache = new ResourceCache();
|
|
26
|
+
/**
|
|
27
|
+
* Generate comprehensive deployment history resource with trend analysis and insights.
|
|
28
|
+
*
|
|
29
|
+
* Analyzes historical deployment data to provide insights into deployment patterns,
|
|
30
|
+
* success rates, failure trends, and recommendations for improving deployment reliability.
|
|
31
|
+
* Supports filtering by time period, environment, and analysis depth.
|
|
32
|
+
*
|
|
33
|
+
* **Query Parameters:**
|
|
34
|
+
* - `period`: Time period for analysis (default: "30d")
|
|
35
|
+
* - Values: "7d" (week), "30d" (month), "90d" (quarter), "365d" (year), "all"
|
|
36
|
+
* - `environment`: Filter by deployment environment (default: "all")
|
|
37
|
+
* - Values: "production", "staging", "development", "all"
|
|
38
|
+
* - `includeFailures`: Include failure analysis (default: true)
|
|
39
|
+
* - `includeMetrics`: Include detailed metrics (default: true)
|
|
40
|
+
* - `format`: Output format (default: "detailed")
|
|
41
|
+
* - Values: "summary", "detailed"
|
|
42
|
+
*
|
|
43
|
+
* **Analysis Includes:**
|
|
44
|
+
* - Total deployments and success/failure counts
|
|
45
|
+
* - Success rate percentage and trends
|
|
46
|
+
* - Average deployment time and frequency
|
|
47
|
+
* - Failure pattern analysis with common causes
|
|
48
|
+
* - Rollback frequency and impact
|
|
49
|
+
* - Time-series data for trend visualization
|
|
50
|
+
* - Improvement recommendations based on patterns
|
|
51
|
+
*
|
|
52
|
+
* @param _params - URL path parameters (currently unused, reserved for future routing)
|
|
53
|
+
* @param searchParams - URL query parameters controlling analysis scope and detail
|
|
54
|
+
*
|
|
55
|
+
* @returns Promise resolving to resource generation result containing:
|
|
56
|
+
* - data: Complete deployment history with statistics, trends, and insights
|
|
57
|
+
* - contentType: "application/json"
|
|
58
|
+
* - lastModified: ISO timestamp of generation
|
|
59
|
+
* - cacheKey: Unique identifier based on period/environment/options
|
|
60
|
+
* - ttl: Cache duration (300 seconds / 5 minutes)
|
|
61
|
+
* - etag: Entity tag for cache validation
|
|
62
|
+
*
|
|
63
|
+
* @throws {Error} Rarely throws; gracefully handles missing data by:
|
|
64
|
+
* - Returning empty history if no deployment records found
|
|
65
|
+
* - Providing zero values for missing metrics
|
|
66
|
+
* - Logging warnings for data collection issues
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Get last 30 days of deployment history
|
|
71
|
+
* const history = await generateDeploymentHistoryResource(
|
|
72
|
+
* {},
|
|
73
|
+
* new URLSearchParams('period=30d&environment=production')
|
|
74
|
+
* );
|
|
75
|
+
*
|
|
76
|
+
* console.log(`Total deployments: ${history.data.totalDeployments}`);
|
|
77
|
+
* console.log(`Success rate: ${history.data.successRate}%`);
|
|
78
|
+
* console.log(`Failed deployments: ${history.data.failedDeployments}`);
|
|
79
|
+
* console.log(`Rollback frequency: ${history.data.rollbackFrequency}`);
|
|
80
|
+
*
|
|
81
|
+
* // Check deployment health trends
|
|
82
|
+
* if (history.data.trends) {
|
|
83
|
+
* const qualityTrend = history.data.trends.find(t => t.metric === 'success_rate');
|
|
84
|
+
* console.log(`Quality trend: ${qualityTrend?.trend}`); // improving/stable/degrading
|
|
85
|
+
* }
|
|
86
|
+
*
|
|
87
|
+
* // Get failure patterns
|
|
88
|
+
* if (history.data.failurePatterns) {
|
|
89
|
+
* console.log('Common failure causes:');
|
|
90
|
+
* history.data.failurePatterns.commonCauses.forEach(cause => {
|
|
91
|
+
* console.log(` - ${cause.reason}: ${cause.occurrences} times`);
|
|
92
|
+
* });
|
|
93
|
+
* }
|
|
94
|
+
*
|
|
95
|
+
* // Example with summary format (faster, less detail)
|
|
96
|
+
* const summary = await generateDeploymentHistoryResource(
|
|
97
|
+
* {},
|
|
98
|
+
* new URLSearchParams('period=7d&format=summary&includeMetrics=false')
|
|
99
|
+
* );
|
|
100
|
+
*
|
|
101
|
+
* // Expected output structure:
|
|
102
|
+
* {
|
|
103
|
+
* data: {
|
|
104
|
+
* period: "30d",
|
|
105
|
+
* environment: "production",
|
|
106
|
+
* totalDeployments: 45,
|
|
107
|
+
* successfulDeployments: 42,
|
|
108
|
+
* failedDeployments: 3,
|
|
109
|
+
* successRate: 93.3,
|
|
110
|
+
* averageDeploymentTime: "8.5 minutes",
|
|
111
|
+
* rollbackFrequency: 2,
|
|
112
|
+
* trends: [
|
|
113
|
+
* {
|
|
114
|
+
* metric: "success_rate",
|
|
115
|
+
* trend: "improving",
|
|
116
|
+
* change: +5.2
|
|
117
|
+
* }
|
|
118
|
+
* ],
|
|
119
|
+
* failurePatterns: {
|
|
120
|
+
* commonCauses: [
|
|
121
|
+
* { reason: "Test failures", occurrences: 2 },
|
|
122
|
+
* { reason: "Dependency conflicts", occurrences: 1 }
|
|
123
|
+
* ],
|
|
124
|
+
* peakFailureTimes: ["2025-10-05", "2025-10-12"]
|
|
125
|
+
* },
|
|
126
|
+
* recommendations: [
|
|
127
|
+
* "Increase pre-deployment test coverage",
|
|
128
|
+
* "Implement canary deployments for reduced risk"
|
|
129
|
+
* ]
|
|
130
|
+
* },
|
|
131
|
+
* contentType: "application/json",
|
|
132
|
+
* cacheKey: "deployment-history:30d:production:true:true:detailed",
|
|
133
|
+
* ttl: 300
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* @since v2.0.0
|
|
138
|
+
* @see {@link generateComprehensiveHistory} for detailed historical analysis
|
|
139
|
+
* @see {@link generateDeploymentStatusResource} for current deployment status
|
|
140
|
+
*/
|
|
141
|
+
export async function generateDeploymentHistoryResource(_params, searchParams) {
|
|
142
|
+
// Extract query parameters
|
|
143
|
+
const period = searchParams?.get('period') || '30d';
|
|
144
|
+
const environment = searchParams?.get('environment') || 'all';
|
|
145
|
+
const includeFailures = searchParams?.get('includeFailures') !== 'false';
|
|
146
|
+
const includeMetrics = searchParams?.get('includeMetrics') !== 'false';
|
|
147
|
+
const format = searchParams?.get('format') || 'detailed';
|
|
148
|
+
const cacheKey = `deployment-history:${period}:${environment}:${includeFailures}:${includeMetrics}:${format}`;
|
|
149
|
+
// Check cache
|
|
150
|
+
const cached = await resourceCache.get(cacheKey);
|
|
151
|
+
if (cached) {
|
|
152
|
+
return cached;
|
|
153
|
+
}
|
|
154
|
+
// Try comprehensive analysis via deployment-readiness-tool
|
|
155
|
+
try {
|
|
156
|
+
const historyData = await generateComprehensiveHistory(period, environment, includeFailures, includeMetrics, format);
|
|
157
|
+
const result = {
|
|
158
|
+
data: historyData,
|
|
159
|
+
contentType: 'application/json',
|
|
160
|
+
lastModified: new Date().toISOString(),
|
|
161
|
+
cacheKey,
|
|
162
|
+
ttl: 300, // 5 minutes
|
|
163
|
+
etag: `"deployment-history-${Date.now()}"`,
|
|
164
|
+
};
|
|
165
|
+
resourceCache.set(cacheKey, result, result.ttl);
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
console.error('[deployment-history-resource] Falling back to basic analysis:', error);
|
|
170
|
+
// Fallback to basic analysis
|
|
171
|
+
const basicHistory = await generateBasicHistory(period, environment);
|
|
172
|
+
const result = {
|
|
173
|
+
data: basicHistory,
|
|
174
|
+
contentType: 'application/json',
|
|
175
|
+
lastModified: new Date().toISOString(),
|
|
176
|
+
cacheKey,
|
|
177
|
+
ttl: 300,
|
|
178
|
+
etag: `"deployment-history-basic-${Date.now()}"`,
|
|
179
|
+
};
|
|
180
|
+
resourceCache.set(cacheKey, result, result.ttl);
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Generate comprehensive deployment history via tool bridge
|
|
186
|
+
*/
|
|
187
|
+
async function generateComprehensiveHistory(period, environment, _includeFailures, _includeMetrics, _format) {
|
|
188
|
+
// Import deployment-readiness-tool
|
|
189
|
+
const { deploymentReadiness } = await import('../tools/deployment-readiness-tool.js');
|
|
190
|
+
// Call tool with deployment_history operation
|
|
191
|
+
const toolResult = await deploymentReadiness({
|
|
192
|
+
operation: 'deployment_history',
|
|
193
|
+
projectPath: process.cwd(),
|
|
194
|
+
targetEnvironment: environment,
|
|
195
|
+
strictMode: false,
|
|
196
|
+
enableMemoryIntegration: true,
|
|
197
|
+
});
|
|
198
|
+
// Extract text from tool result
|
|
199
|
+
const toolOutputText = toolResult.content?.[0]?.text || '';
|
|
200
|
+
// Extract structured data from tool output
|
|
201
|
+
const historyData = extractHistoryDataFromToolOutput(toolOutputText, period, environment);
|
|
202
|
+
return historyData;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Extract deployment history data from tool text output
|
|
206
|
+
*/
|
|
207
|
+
function extractHistoryDataFromToolOutput(toolOutput, period, environment) {
|
|
208
|
+
const historyData = {
|
|
209
|
+
period,
|
|
210
|
+
environment,
|
|
211
|
+
timestamp: new Date().toISOString(),
|
|
212
|
+
summary: {
|
|
213
|
+
totalDeployments: 0,
|
|
214
|
+
successfulDeployments: 0,
|
|
215
|
+
failedDeployments: 0,
|
|
216
|
+
successRate: 0,
|
|
217
|
+
averageDeploymentTime: '0s',
|
|
218
|
+
deploymentsPerWeek: 0,
|
|
219
|
+
},
|
|
220
|
+
metadata: {
|
|
221
|
+
period,
|
|
222
|
+
environment,
|
|
223
|
+
dataSource: 'comprehensive-tool',
|
|
224
|
+
confidence: 0.9,
|
|
225
|
+
timestamp: new Date().toISOString(),
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
// Extract deployment counts
|
|
229
|
+
const totalMatch = toolOutput.match(/total[:\s]+(\d+)/i);
|
|
230
|
+
const successMatch = toolOutput.match(/success(?:ful)?[:\s]+(\d+)/i);
|
|
231
|
+
const failedMatch = toolOutput.match(/failed?[:\s]+(\d+)/i);
|
|
232
|
+
const successRateMatch = toolOutput.match(/success rate[:\s]+(\d+(?:\.\d+)?)\s*%/i);
|
|
233
|
+
if (totalMatch?.[1]) {
|
|
234
|
+
historyData.summary.totalDeployments = parseInt(totalMatch[1], 10);
|
|
235
|
+
}
|
|
236
|
+
if (successMatch?.[1]) {
|
|
237
|
+
historyData.summary.successfulDeployments = parseInt(successMatch[1], 10);
|
|
238
|
+
}
|
|
239
|
+
if (failedMatch?.[1]) {
|
|
240
|
+
historyData.summary.failedDeployments = parseInt(failedMatch[1], 10);
|
|
241
|
+
}
|
|
242
|
+
if (successRateMatch?.[1]) {
|
|
243
|
+
historyData.summary.successRate = parseFloat(successRateMatch[1]);
|
|
244
|
+
}
|
|
245
|
+
// Calculate success rate if not provided
|
|
246
|
+
if (historyData.summary.successRate === 0 && historyData.summary.totalDeployments > 0) {
|
|
247
|
+
historyData.summary.successRate =
|
|
248
|
+
(historyData.summary.successfulDeployments / historyData.summary.totalDeployments) * 100;
|
|
249
|
+
}
|
|
250
|
+
// Extract deployment metrics
|
|
251
|
+
const mtbfMatch = toolOutput.match(/mtbf[:\s]+([\d.]+\s*\w+)/i);
|
|
252
|
+
const mttrMatch = toolOutput.match(/mttr[:\s]+([\d.]+\s*\w+)/i);
|
|
253
|
+
if (mtbfMatch || mttrMatch) {
|
|
254
|
+
historyData.failureAnalysis = {
|
|
255
|
+
totalFailures: historyData.summary.failedDeployments,
|
|
256
|
+
commonFailureReasons: [],
|
|
257
|
+
mtbf: mtbfMatch?.[1] || 'N/A',
|
|
258
|
+
mttr: mttrMatch?.[1] || 'N/A',
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
return historyData;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Generate basic deployment history (fallback)
|
|
265
|
+
*/
|
|
266
|
+
async function generateBasicHistory(period, environment) {
|
|
267
|
+
// Try to read package.json for version info
|
|
268
|
+
let version = '0.0.0';
|
|
269
|
+
try {
|
|
270
|
+
const packagePath = path.resolve(process.cwd(), 'package.json');
|
|
271
|
+
const packageData = await fs.readFile(packagePath, 'utf-8');
|
|
272
|
+
const packageJson = JSON.parse(packageData);
|
|
273
|
+
version = packageJson.version || '0.0.0';
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// Ignore errors
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
period,
|
|
280
|
+
environment,
|
|
281
|
+
timestamp: new Date().toISOString(),
|
|
282
|
+
summary: {
|
|
283
|
+
totalDeployments: 1,
|
|
284
|
+
successfulDeployments: 1,
|
|
285
|
+
failedDeployments: 0,
|
|
286
|
+
successRate: 100,
|
|
287
|
+
averageDeploymentTime: 'unknown',
|
|
288
|
+
deploymentsPerWeek: 0,
|
|
289
|
+
},
|
|
290
|
+
recentDeployments: [
|
|
291
|
+
{
|
|
292
|
+
timestamp: new Date().toISOString(),
|
|
293
|
+
version,
|
|
294
|
+
environment,
|
|
295
|
+
status: 'success',
|
|
296
|
+
duration: 'unknown',
|
|
297
|
+
},
|
|
298
|
+
],
|
|
299
|
+
metadata: {
|
|
300
|
+
period,
|
|
301
|
+
environment,
|
|
302
|
+
dataSource: 'basic-analysis',
|
|
303
|
+
confidence: 0.5,
|
|
304
|
+
timestamp: new Date().toISOString(),
|
|
305
|
+
},
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=deployment-history-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-history-resource.js","sourceRoot":"","sources":["../../../src/resources/deployment-history-resource.ts"],"names":[],"mappings":"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"}
|