mcp-adr-analysis-server 2.1.11 → 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 +69 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1638 -551
- 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/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.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +4 -1
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/adr-validation-tool.d.ts +52 -0
- package/dist/src/tools/adr-validation-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-validation-tool.js +52 -0
- package/dist/src/tools/adr-validation-tool.js.map +1 -1
- 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 +47 -5
- 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 +48 -1
- 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 +15 -1
- package/dist/src/tools/deployment-readiness-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/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 +45 -1
- package/dist/src/tools/perform-research-tool.d.ts.map +1 -1
- package/dist/src/tools/perform-research-tool.js +146 -2
- package/dist/src/tools/perform-research-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 +4 -1
- 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 +2 -2
- 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-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 +36 -0
- package/dist/src/utils/ai-executor.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 +4 -1
- 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 +4 -1
- package/dist/src/utils/environment-analysis.js.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts +16 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +159 -3
- package/dist/src/utils/knowledge-graph-manager.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/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 +135 -3
- package/dist/src/utils/research-orchestrator.d.ts.map +1 -1
- package/dist/src/utils/research-orchestrator.js +440 -27
- package/dist/src/utils/research-orchestrator.js.map +1 -1
- 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/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,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conditional Request Support
|
|
3
|
+
*
|
|
4
|
+
* Implements HTTP conditional request headers (ETag, If-Modified-Since)
|
|
5
|
+
* for efficient resource caching and bandwidth reduction.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - ETag generation (strong and weak)
|
|
9
|
+
* - If-None-Match validation
|
|
10
|
+
* - If-Modified-Since validation
|
|
11
|
+
* - 304 Not Modified support
|
|
12
|
+
*/
|
|
13
|
+
import crypto from 'crypto';
|
|
14
|
+
/**
|
|
15
|
+
* Generate strong ETag from content
|
|
16
|
+
* Format: "hash"
|
|
17
|
+
*/
|
|
18
|
+
export function generateStrongETag(content) {
|
|
19
|
+
const data = typeof content === 'string' ? content : JSON.stringify(content);
|
|
20
|
+
const hash = crypto.createHash('sha256').update(data).digest('hex').substring(0, 16);
|
|
21
|
+
return `"${hash}"`;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Generate weak ETag from metadata
|
|
25
|
+
* Format: W/"timestamp-hash"
|
|
26
|
+
* Useful when content hasn't changed but metadata has
|
|
27
|
+
*/
|
|
28
|
+
export function generateWeakETag(timestamp, identifier) {
|
|
29
|
+
const hash = crypto.createHash('md5').update(`${timestamp}:${identifier}`).digest('hex').substring(0, 8);
|
|
30
|
+
return `W/"${timestamp.substring(0, 10)}-${hash}"`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse ETag from header
|
|
34
|
+
* Handles both strong and weak ETags
|
|
35
|
+
*/
|
|
36
|
+
export function parseETag(etag) {
|
|
37
|
+
const isWeak = etag.startsWith('W/');
|
|
38
|
+
const value = isWeak ? etag.substring(3) : etag;
|
|
39
|
+
return { value: value.replace(/"/g, ''), isWeak };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Compare two ETags for equality
|
|
43
|
+
* Supports both strong and weak comparison
|
|
44
|
+
*/
|
|
45
|
+
export function compareETags(etag1, etag2, weakComparison = false) {
|
|
46
|
+
const parsed1 = parseETag(etag1);
|
|
47
|
+
const parsed2 = parseETag(etag2);
|
|
48
|
+
// Strong comparison: both must be strong and equal
|
|
49
|
+
if (!weakComparison) {
|
|
50
|
+
if (parsed1.isWeak || parsed2.isWeak) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return parsed1.value === parsed2.value;
|
|
54
|
+
}
|
|
55
|
+
// Weak comparison: values must match (ignoring weak flag)
|
|
56
|
+
return parsed1.value === parsed2.value;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse If-None-Match header
|
|
60
|
+
* Returns array of ETags to check
|
|
61
|
+
*/
|
|
62
|
+
export function parseIfNoneMatch(header) {
|
|
63
|
+
if (!header) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
// Handle wildcard
|
|
67
|
+
if (header.trim() === '*') {
|
|
68
|
+
return ['*'];
|
|
69
|
+
}
|
|
70
|
+
// Split by comma and trim
|
|
71
|
+
return header.split(',').map((etag) => etag.trim());
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if resource matches If-None-Match condition
|
|
75
|
+
* Returns true if resource has NOT been modified
|
|
76
|
+
*/
|
|
77
|
+
export function checkIfNoneMatch(currentETag, ifNoneMatchHeader) {
|
|
78
|
+
if (!ifNoneMatchHeader) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const etags = parseIfNoneMatch(ifNoneMatchHeader);
|
|
82
|
+
// Wildcard matches any resource
|
|
83
|
+
if (etags.includes('*')) {
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
// Check if current ETag matches any in the list
|
|
87
|
+
return etags.some((etag) => compareETags(currentETag, etag, true));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Parse If-Modified-Since header to Date
|
|
91
|
+
*/
|
|
92
|
+
export function parseIfModifiedSince(header) {
|
|
93
|
+
if (!header) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const date = new Date(header);
|
|
98
|
+
return isNaN(date.getTime()) ? null : date;
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check if resource has been modified since given date
|
|
106
|
+
* Returns true if resource has been modified
|
|
107
|
+
*/
|
|
108
|
+
export function checkIfModifiedSince(lastModified, ifModifiedSinceHeader) {
|
|
109
|
+
const ifModifiedSince = parseIfModifiedSince(ifModifiedSinceHeader);
|
|
110
|
+
if (!ifModifiedSince) {
|
|
111
|
+
return true; // No header, treat as modified
|
|
112
|
+
}
|
|
113
|
+
const lastModifiedDate = new Date(lastModified);
|
|
114
|
+
if (isNaN(lastModifiedDate.getTime())) {
|
|
115
|
+
return true; // Invalid date, treat as modified
|
|
116
|
+
}
|
|
117
|
+
// Resource is modified if lastModified > ifModifiedSince
|
|
118
|
+
return lastModifiedDate > ifModifiedSince;
|
|
119
|
+
}
|
|
120
|
+
export function evaluateConditionalRequest(params) {
|
|
121
|
+
const { currentETag, lastModified, ifNoneMatch, ifModifiedSince } = params;
|
|
122
|
+
// If-None-Match has priority over If-Modified-Since
|
|
123
|
+
if (ifNoneMatch) {
|
|
124
|
+
const matches = checkIfNoneMatch(currentETag, ifNoneMatch);
|
|
125
|
+
if (matches) {
|
|
126
|
+
return { notModified: true, reason: 'ETag match' };
|
|
127
|
+
}
|
|
128
|
+
// If-None-Match present but doesn't match, resource is modified
|
|
129
|
+
return { notModified: false, reason: 'ETag mismatch' };
|
|
130
|
+
}
|
|
131
|
+
// Check If-Modified-Since
|
|
132
|
+
if (ifModifiedSince) {
|
|
133
|
+
const modified = checkIfModifiedSince(lastModified, ifModifiedSince);
|
|
134
|
+
if (!modified) {
|
|
135
|
+
return { notModified: true, reason: 'Not modified since' };
|
|
136
|
+
}
|
|
137
|
+
return { notModified: false, reason: 'Modified since' };
|
|
138
|
+
}
|
|
139
|
+
// No conditional headers present
|
|
140
|
+
return { notModified: false, reason: 'No conditional headers' };
|
|
141
|
+
}
|
|
142
|
+
export function generateCacheHeaders(params) {
|
|
143
|
+
const { etag, lastModified, maxAge = 300, mustRevalidate = true, vary } = params;
|
|
144
|
+
const cacheControl = [
|
|
145
|
+
`max-age=${maxAge}`,
|
|
146
|
+
mustRevalidate ? 'must-revalidate' : '',
|
|
147
|
+
'private', // Resources are user-specific
|
|
148
|
+
]
|
|
149
|
+
.filter(Boolean)
|
|
150
|
+
.join(', ');
|
|
151
|
+
const headers = {
|
|
152
|
+
ETag: etag,
|
|
153
|
+
'Last-Modified': lastModified,
|
|
154
|
+
'Cache-Control': cacheControl,
|
|
155
|
+
};
|
|
156
|
+
if (vary && vary.length > 0) {
|
|
157
|
+
headers.Vary = vary.join(', ');
|
|
158
|
+
}
|
|
159
|
+
return headers;
|
|
160
|
+
}
|
|
161
|
+
export function createNotModifiedResponse(params) {
|
|
162
|
+
const { etag, lastModified, maxAge } = params;
|
|
163
|
+
// Build headers params without undefined values
|
|
164
|
+
const headersParams = { etag, lastModified };
|
|
165
|
+
if (maxAge !== undefined) {
|
|
166
|
+
headersParams.maxAge = maxAge;
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
status: 304,
|
|
170
|
+
statusText: 'Not Modified',
|
|
171
|
+
headers: generateCacheHeaders(headersParams),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Calculate cache freshness
|
|
176
|
+
* Returns true if cache is still fresh
|
|
177
|
+
*/
|
|
178
|
+
export function isCacheFresh(lastModified, maxAge) {
|
|
179
|
+
const lastModifiedDate = new Date(lastModified);
|
|
180
|
+
if (isNaN(lastModifiedDate.getTime())) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
const ageSeconds = (Date.now() - lastModifiedDate.getTime()) / 1000;
|
|
184
|
+
return ageSeconds < maxAge;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=conditional-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional-request.js","sourceRoot":"","sources":["../../../src/utils/conditional-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,31 +9,53 @@ import { z } from 'zod';
|
|
|
9
9
|
declare const ConfigSchema: z.ZodObject<{
|
|
10
10
|
projectPath: z.ZodString;
|
|
11
11
|
adrDirectory: z.ZodDefault<z.ZodString>;
|
|
12
|
-
logLevel: z.ZodDefault<z.ZodEnum<
|
|
12
|
+
logLevel: z.ZodDefault<z.ZodEnum<{
|
|
13
|
+
DEBUG: "DEBUG";
|
|
14
|
+
INFO: "INFO";
|
|
15
|
+
WARN: "WARN";
|
|
16
|
+
ERROR: "ERROR";
|
|
17
|
+
}>>;
|
|
13
18
|
cacheEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
14
19
|
cacheDirectory: z.ZodDefault<z.ZodString>;
|
|
15
20
|
maxCacheSize: z.ZodDefault<z.ZodNumber>;
|
|
16
21
|
analysisTimeout: z.ZodDefault<z.ZodNumber>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
logLevel: "DEBUG" | "INFO" | "WARN" | "ERROR";
|
|
22
|
-
cacheDirectory: string;
|
|
23
|
-
maxCacheSize: number;
|
|
24
|
-
analysisTimeout: number;
|
|
25
|
-
}, {
|
|
26
|
-
projectPath: string;
|
|
27
|
-
cacheEnabled?: boolean | undefined;
|
|
28
|
-
adrDirectory?: string | undefined;
|
|
29
|
-
logLevel?: "DEBUG" | "INFO" | "WARN" | "ERROR" | undefined;
|
|
30
|
-
cacheDirectory?: string | undefined;
|
|
31
|
-
maxCacheSize?: number | undefined;
|
|
32
|
-
analysisTimeout?: number | undefined;
|
|
33
|
-
}>;
|
|
22
|
+
firecrawlApiKey: z.ZodOptional<z.ZodString>;
|
|
23
|
+
firecrawlBaseUrl: z.ZodDefault<z.ZodString>;
|
|
24
|
+
firecrawlEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
25
|
+
}, z.core.$strip>;
|
|
34
26
|
export type ServerConfig = z.infer<typeof ConfigSchema>;
|
|
35
27
|
/**
|
|
36
28
|
* Load and validate configuration from environment variables
|
|
29
|
+
*
|
|
30
|
+
* @description Loads server configuration from environment variables with fallback defaults.
|
|
31
|
+
* Validates all configuration values using Zod schema and returns a type-safe config object.
|
|
32
|
+
*
|
|
33
|
+
* @returns {ServerConfig} Validated configuration object with all required settings
|
|
34
|
+
*
|
|
35
|
+
* @throws {Error} When configuration validation fails or required values are missing
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* // Load configuration with environment variables
|
|
40
|
+
* process.env.PROJECT_PATH = '/path/to/project';
|
|
41
|
+
* process.env.LOG_LEVEL = 'DEBUG';
|
|
42
|
+
*
|
|
43
|
+
* const config = loadConfig();
|
|
44
|
+
* console.log(config.projectPath); // '/path/to/project'
|
|
45
|
+
* console.log(config.logLevel); // 'DEBUG'
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* // Load configuration with defaults
|
|
51
|
+
* const config = loadConfig();
|
|
52
|
+
* console.log(config.adrDirectory); // 'docs/adrs'
|
|
53
|
+
* console.log(config.cacheEnabled); // true
|
|
54
|
+
* console.log(config.maxCacheSize); // 104857600 (100MB)
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @since 2.0.0
|
|
58
|
+
* @category Configuration
|
|
37
59
|
*/
|
|
38
60
|
export declare function loadConfig(): ServerConfig;
|
|
39
61
|
/**
|
|
@@ -46,6 +68,38 @@ export declare function getAdrDirectoryPath(config: ServerConfig): string;
|
|
|
46
68
|
export declare function getCacheDirectoryPath(config: ServerConfig): string;
|
|
47
69
|
/**
|
|
48
70
|
* Validate that the project path exists and is accessible
|
|
71
|
+
*
|
|
72
|
+
* @description Performs filesystem validation to ensure the specified project path
|
|
73
|
+
* exists, is accessible, and is a directory. This is critical for server initialization
|
|
74
|
+
* as all ADR analysis operations depend on a valid project root.
|
|
75
|
+
*
|
|
76
|
+
* @param {string} projectPath - Absolute or relative path to validate
|
|
77
|
+
*
|
|
78
|
+
* @returns {Promise<void>} Resolves if path is valid, rejects with descriptive error
|
|
79
|
+
*
|
|
80
|
+
* @throws {Error} When path doesn't exist, isn't a directory, or isn't accessible
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* // Validate existing project directory
|
|
85
|
+
* await validateProjectPath('/path/to/project');
|
|
86
|
+
* console.log('Project path is valid');
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // Handle validation errors
|
|
92
|
+
* try {
|
|
93
|
+
* await validateProjectPath('/invalid/path');
|
|
94
|
+
* } catch (error) {
|
|
95
|
+
* console.error('Validation failed:', error.message);
|
|
96
|
+
* // Error: PROJECT_PATH does not exist: /invalid/path
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @since 2.0.0
|
|
101
|
+
* @category Configuration
|
|
102
|
+
* @category Validation
|
|
49
103
|
*/
|
|
50
104
|
export declare function validateProjectPath(projectPath: string): Promise<void>;
|
|
51
105
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;iBAYhB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAiCzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBAK5B,MAAM,WAAW,GAAG,EAAE;oBAGvB,MAAM,WAAW,GAAG,EAAE;oBAGtB,MAAM,WAAW,GAAG,EAAE;qBAGrB,MAAM,WAAW,GAAG,EAAE;EAI1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAgB7D"}
|
package/dist/src/utils/config.js
CHANGED
|
@@ -15,9 +15,43 @@ const ConfigSchema = z.object({
|
|
|
15
15
|
cacheDirectory: z.string().default('.mcp-adr-cache'),
|
|
16
16
|
maxCacheSize: z.number().default(100 * 1024 * 1024), // 100MB
|
|
17
17
|
analysisTimeout: z.number().default(30000), // 30 seconds
|
|
18
|
+
// Firecrawl configuration
|
|
19
|
+
firecrawlApiKey: z.string().optional(),
|
|
20
|
+
firecrawlBaseUrl: z.string().default('http://localhost:3000'),
|
|
21
|
+
firecrawlEnabled: z.boolean().default(false),
|
|
18
22
|
});
|
|
19
23
|
/**
|
|
20
24
|
* Load and validate configuration from environment variables
|
|
25
|
+
*
|
|
26
|
+
* @description Loads server configuration from environment variables with fallback defaults.
|
|
27
|
+
* Validates all configuration values using Zod schema and returns a type-safe config object.
|
|
28
|
+
*
|
|
29
|
+
* @returns {ServerConfig} Validated configuration object with all required settings
|
|
30
|
+
*
|
|
31
|
+
* @throws {Error} When configuration validation fails or required values are missing
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* // Load configuration with environment variables
|
|
36
|
+
* process.env.PROJECT_PATH = '/path/to/project';
|
|
37
|
+
* process.env.LOG_LEVEL = 'DEBUG';
|
|
38
|
+
*
|
|
39
|
+
* const config = loadConfig();
|
|
40
|
+
* console.log(config.projectPath); // '/path/to/project'
|
|
41
|
+
* console.log(config.logLevel); // 'DEBUG'
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // Load configuration with defaults
|
|
47
|
+
* const config = loadConfig();
|
|
48
|
+
* console.log(config.adrDirectory); // 'docs/adrs'
|
|
49
|
+
* console.log(config.cacheEnabled); // true
|
|
50
|
+
* console.log(config.maxCacheSize); // 104857600 (100MB)
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @since 2.0.0
|
|
54
|
+
* @category Configuration
|
|
21
55
|
*/
|
|
22
56
|
export function loadConfig() {
|
|
23
57
|
// Get PROJECT_PATH from environment or use current working directory
|
|
@@ -32,6 +66,10 @@ export function loadConfig() {
|
|
|
32
66
|
cacheDirectory: process.env['CACHE_DIRECTORY'] || '.mcp-adr-cache',
|
|
33
67
|
maxCacheSize: parseInt(process.env['MAX_CACHE_SIZE'] || '104857600'), // 100MB
|
|
34
68
|
analysisTimeout: parseInt(process.env['ANALYSIS_TIMEOUT'] || '30000'), // 30 seconds
|
|
69
|
+
// Firecrawl configuration
|
|
70
|
+
firecrawlApiKey: process.env['FIRECRAWL_API_KEY'],
|
|
71
|
+
firecrawlBaseUrl: process.env['FIRECRAWL_BASE_URL'] || 'http://localhost:3000',
|
|
72
|
+
firecrawlEnabled: process.env['FIRECRAWL_ENABLED'] === 'true' || !!process.env['FIRECRAWL_API_KEY'],
|
|
35
73
|
};
|
|
36
74
|
try {
|
|
37
75
|
return ConfigSchema.parse(rawConfig);
|
|
@@ -61,6 +99,38 @@ export function getCacheDirectoryPath(config) {
|
|
|
61
99
|
}
|
|
62
100
|
/**
|
|
63
101
|
* Validate that the project path exists and is accessible
|
|
102
|
+
*
|
|
103
|
+
* @description Performs filesystem validation to ensure the specified project path
|
|
104
|
+
* exists, is accessible, and is a directory. This is critical for server initialization
|
|
105
|
+
* as all ADR analysis operations depend on a valid project root.
|
|
106
|
+
*
|
|
107
|
+
* @param {string} projectPath - Absolute or relative path to validate
|
|
108
|
+
*
|
|
109
|
+
* @returns {Promise<void>} Resolves if path is valid, rejects with descriptive error
|
|
110
|
+
*
|
|
111
|
+
* @throws {Error} When path doesn't exist, isn't a directory, or isn't accessible
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* // Validate existing project directory
|
|
116
|
+
* await validateProjectPath('/path/to/project');
|
|
117
|
+
* console.log('Project path is valid');
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* // Handle validation errors
|
|
123
|
+
* try {
|
|
124
|
+
* await validateProjectPath('/invalid/path');
|
|
125
|
+
* } catch (error) {
|
|
126
|
+
* console.error('Validation failed:', error.message);
|
|
127
|
+
* // Error: PROJECT_PATH does not exist: /invalid/path
|
|
128
|
+
* }
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @since 2.0.0
|
|
132
|
+
* @category Configuration
|
|
133
|
+
* @category Validation
|
|
64
134
|
*/
|
|
65
135
|
export async function validateProjectPath(projectPath) {
|
|
66
136
|
const fs = await import('fs/promises');
|
|
@@ -115,5 +185,10 @@ export function printConfigSummary(config) {
|
|
|
115
185
|
logger.info(` Cache Directory: ${config.cacheDirectory}`);
|
|
116
186
|
logger.info(` Max Cache Size: ${Math.round(config.maxCacheSize / 1024 / 1024)}MB`);
|
|
117
187
|
logger.info(` Analysis Timeout: ${config.analysisTimeout}ms`);
|
|
188
|
+
logger.info(` Firecrawl Enabled: ${config.firecrawlEnabled}`);
|
|
189
|
+
if (config.firecrawlEnabled) {
|
|
190
|
+
logger.info(` Firecrawl Base URL: ${config.firecrawlBaseUrl}`);
|
|
191
|
+
logger.info(` Firecrawl API Key: ${config.firecrawlApiKey ? '***configured***' : 'not set'}`);
|
|
192
|
+
}
|
|
118
193
|
}
|
|
119
194
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,QAAQ;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,QAAQ;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa;IACzD,0BAA0B;IAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC7C,CAAC,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,UAAU;IACxB,qEAAqE;IACrE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjE,2BAA2B;IAC3B,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG;QAChB,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,WAAW;QACzD,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE;QAC5D,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,OAAO;QACtD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,gBAAgB;QAClE,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,EAAE,QAAQ;QAC9E,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,EAAE,aAAa;QACpF,0BAA0B;QAC1B,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACjD,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,uBAAuB;QAC9E,gBAAgB,EACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;KACpF,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;iBACxB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBACzD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAoB;IACxD,0DAA0D;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,WAAW,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACxD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,QAA+B,CAAC,IAAI,CAAC,CAAC;IAEzE,OAAO;QACL,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACzC,IAAI,YAAY,IAAI,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACxC,IAAI,YAAY,IAAI,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACxC,IAAI,YAAY,IAAI,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACzC,IAAI,YAAY,IAAI,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QACtE,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,MAAM,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/D,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata for tool context documents
|
|
3
|
+
*/
|
|
4
|
+
export interface ToolContextMetadata {
|
|
5
|
+
toolName: string;
|
|
6
|
+
toolVersion: string;
|
|
7
|
+
generated: string;
|
|
8
|
+
projectPath: string;
|
|
9
|
+
projectName: string;
|
|
10
|
+
status: 'success' | 'failed' | 'partial';
|
|
11
|
+
confidence?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Decision record within a context document
|
|
15
|
+
*/
|
|
16
|
+
export interface Decision {
|
|
17
|
+
decision: string;
|
|
18
|
+
rationale: string;
|
|
19
|
+
alternatives?: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Learning record from tool execution
|
|
23
|
+
*/
|
|
24
|
+
export interface Learnings {
|
|
25
|
+
successes: string[];
|
|
26
|
+
failures: string[];
|
|
27
|
+
recommendations: string[];
|
|
28
|
+
environmentSpecific: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Related documents and references
|
|
32
|
+
*/
|
|
33
|
+
export interface RelatedDocuments {
|
|
34
|
+
adrs: string[];
|
|
35
|
+
configs: string[];
|
|
36
|
+
otherContexts: string[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Complete tool context document structure
|
|
40
|
+
*/
|
|
41
|
+
export interface ToolContextDocument {
|
|
42
|
+
metadata: ToolContextMetadata;
|
|
43
|
+
quickReference: string;
|
|
44
|
+
executionSummary: {
|
|
45
|
+
status: string;
|
|
46
|
+
confidence?: number;
|
|
47
|
+
keyFindings: string[];
|
|
48
|
+
};
|
|
49
|
+
detectedContext: Record<string, any>;
|
|
50
|
+
generatedArtifacts?: string[];
|
|
51
|
+
keyDecisions?: Decision[];
|
|
52
|
+
learnings?: Learnings;
|
|
53
|
+
relatedDocuments?: RelatedDocuments;
|
|
54
|
+
rawData?: any;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Manages creation, storage, and retrieval of tool context documents
|
|
58
|
+
*/
|
|
59
|
+
export declare class ToolContextManager {
|
|
60
|
+
private contextDir;
|
|
61
|
+
private logger;
|
|
62
|
+
constructor(projectPath: string);
|
|
63
|
+
/**
|
|
64
|
+
* Initialize context directory structure
|
|
65
|
+
*/
|
|
66
|
+
initialize(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Save a context document to the appropriate category
|
|
69
|
+
* @param category - Category subdirectory (bootstrap, deployment, etc.)
|
|
70
|
+
* @param document - Context document to save
|
|
71
|
+
* @returns Path to the saved document
|
|
72
|
+
*/
|
|
73
|
+
saveContext(category: string, document: ToolContextDocument): Promise<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Load the latest context document for a category
|
|
76
|
+
* @param category - Category to load from
|
|
77
|
+
* @returns Context document or null if not found
|
|
78
|
+
*/
|
|
79
|
+
loadLatestContext(category: string): Promise<ToolContextDocument | null>;
|
|
80
|
+
/**
|
|
81
|
+
* Load a specific context document by timestamp
|
|
82
|
+
* @param category - Category to search in
|
|
83
|
+
* @param timestamp - Timestamp identifier
|
|
84
|
+
* @returns Context document or null if not found
|
|
85
|
+
*/
|
|
86
|
+
loadContextByTimestamp(category: string, timestamp: string): Promise<ToolContextDocument | null>;
|
|
87
|
+
/**
|
|
88
|
+
* List all context documents in a category
|
|
89
|
+
* @param category - Category to list
|
|
90
|
+
* @returns Array of filenames
|
|
91
|
+
*/
|
|
92
|
+
listContexts(category: string): Promise<string[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Update the latest.md symlink or copy for a category
|
|
95
|
+
* @param category - Category directory
|
|
96
|
+
* @param filePath - Path to the latest context document
|
|
97
|
+
*/
|
|
98
|
+
updateLatestSymlink(category: string, filePath: string): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Clean up old context documents, keeping only the most recent N
|
|
101
|
+
* @param category - Category to clean up
|
|
102
|
+
* @param keepCount - Number of recent contexts to keep (default: 10)
|
|
103
|
+
*/
|
|
104
|
+
cleanupOldContexts(category: string, keepCount?: number): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Generate markdown content from a context document
|
|
107
|
+
* @param document - Context document to convert
|
|
108
|
+
* @returns Markdown string
|
|
109
|
+
*/
|
|
110
|
+
generateMarkdown(document: ToolContextDocument): string;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=context-document-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-document-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/context-document-manager.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;;;;OAKG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BnF;;;;OAIG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA4B9E;;;;;OAKG;IACG,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAgCtC;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBvD;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5E;;;;OAIG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BjF;;;;OAIG;IACH,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM;CA2KxD"}
|