mcp-adr-analysis-server 2.1.9 → 2.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +420 -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 +21 -12
- 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
|
@@ -16,7 +16,7 @@ const DEFAULT_APE_CONFIG = {
|
|
|
16
16
|
performanceTracking: true,
|
|
17
17
|
maxOptimizationTime: 180000, // 3 minutes
|
|
18
18
|
qualityThreshold: 0.7,
|
|
19
|
-
diversityWeight: 0.3
|
|
19
|
+
diversityWeight: 0.3,
|
|
20
20
|
};
|
|
21
21
|
const APE_VERSION = '1.0.0';
|
|
22
22
|
// ============================================================================
|
|
@@ -37,8 +37,12 @@ export async function optimizePromptWithAPE(originalPrompt, config = {}) {
|
|
|
37
37
|
const mergedConfig = { ...DEFAULT_APE_CONFIG, ...config };
|
|
38
38
|
console.error(`[DEBUG] Generating APE optimization prompt for prompt optimization`);
|
|
39
39
|
// Generate cache key for this optimization request
|
|
40
|
-
const contextHash = Buffer.from(JSON.stringify(originalPrompt))
|
|
41
|
-
|
|
40
|
+
const contextHash = Buffer.from(JSON.stringify(originalPrompt))
|
|
41
|
+
.toString('base64')
|
|
42
|
+
.substring(0, 16);
|
|
43
|
+
const configHash = Buffer.from(JSON.stringify(mergedConfig))
|
|
44
|
+
.toString('base64')
|
|
45
|
+
.substring(0, 16);
|
|
42
46
|
const cacheKey = `ape:optimization:${contextHash}-${configHash}`;
|
|
43
47
|
// Create comprehensive APE optimization prompt
|
|
44
48
|
const prompt = `
|
|
@@ -101,17 +105,19 @@ Create ${mergedConfig.candidateCount} prompt variations using these strategies:
|
|
|
101
105
|
### Step 2: Evaluate Prompt Candidates
|
|
102
106
|
Evaluate each candidate on these criteria (0-1 scale):
|
|
103
107
|
|
|
104
|
-
${mergedConfig.evaluationCriteria
|
|
108
|
+
${mergedConfig.evaluationCriteria
|
|
109
|
+
.map(criterion => {
|
|
105
110
|
const descriptions = {
|
|
106
111
|
'task-completion': 'How well the prompt achieves the intended task outcome',
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
'context-awareness': 'How well the prompt fits the specific context and domain'
|
|
112
|
+
clarity: 'How clear, unambiguous, and easy to understand the prompt is',
|
|
113
|
+
specificity: 'How specific, actionable, and detailed the prompt is',
|
|
114
|
+
robustness: 'How well the prompt handles edge cases and variations',
|
|
115
|
+
efficiency: 'How concise yet comprehensive the prompt is',
|
|
116
|
+
'context-awareness': 'How well the prompt fits the specific context and domain',
|
|
112
117
|
};
|
|
113
118
|
return `- **${criterion}**: ${descriptions[criterion] || 'Evaluate based on this criterion'}`;
|
|
114
|
-
})
|
|
119
|
+
})
|
|
120
|
+
.join('\n')}
|
|
115
121
|
|
|
116
122
|
### Step 3: Apply Selection Strategy (${mergedConfig.selectionStrategy})
|
|
117
123
|
${getSelectionStrategyDescription(mergedConfig.selectionStrategy)}
|
|
@@ -230,8 +236,8 @@ You must:
|
|
|
230
236
|
version: APE_VERSION,
|
|
231
237
|
timestamp: Date.now(),
|
|
232
238
|
securityLevel: 'high',
|
|
233
|
-
expectedFormat: 'json'
|
|
234
|
-
}
|
|
239
|
+
expectedFormat: 'json',
|
|
240
|
+
},
|
|
235
241
|
};
|
|
236
242
|
}
|
|
237
243
|
catch (error) {
|
|
@@ -350,8 +356,8 @@ You must:
|
|
|
350
356
|
version: APE_VERSION,
|
|
351
357
|
timestamp: Date.now(),
|
|
352
358
|
securityLevel: 'medium',
|
|
353
|
-
expectedFormat: 'json'
|
|
354
|
-
}
|
|
359
|
+
expectedFormat: 'json',
|
|
360
|
+
},
|
|
355
361
|
};
|
|
356
362
|
}
|
|
357
363
|
catch (error) {
|
|
@@ -371,7 +377,8 @@ export async function evaluatePromptPerformance(candidates, evaluationCriteria,
|
|
|
371
377
|
Please evaluate the following ${candidates.length} candidates using the specified criteria.
|
|
372
378
|
|
|
373
379
|
## Candidates to Evaluate
|
|
374
|
-
${candidates
|
|
380
|
+
${candidates
|
|
381
|
+
.map((candidate, index) => `
|
|
375
382
|
### Candidate ${index + 1}: ${candidate.id}
|
|
376
383
|
**Strategy**: ${candidate.generationStrategy}
|
|
377
384
|
**Prompt**:
|
|
@@ -383,7 +390,8 @@ ${candidate.prompt}
|
|
|
383
390
|
${candidate.instructions}
|
|
384
391
|
\`\`\`
|
|
385
392
|
**Metadata**: ${JSON.stringify(candidate.metadata, null, 2)}
|
|
386
|
-
`)
|
|
393
|
+
`)
|
|
394
|
+
.join('\n')}
|
|
387
395
|
|
|
388
396
|
## Evaluation Criteria
|
|
389
397
|
${evaluationCriteria.map((criterion, index) => `${index + 1}. **${criterion}**: ${getCriterionDescription(criterion)}`).join('\n')}
|
|
@@ -490,13 +498,13 @@ You must:
|
|
|
490
498
|
candidates: candidates.map(c => c.id),
|
|
491
499
|
evaluationCriteria,
|
|
492
500
|
evaluationContext: context,
|
|
493
|
-
improvementScore: 0.
|
|
501
|
+
improvementScore: 0.8, // Default improvement score for evaluation
|
|
494
502
|
candidateCount: candidates.length,
|
|
495
503
|
version: APE_VERSION,
|
|
496
504
|
timestamp: Date.now(),
|
|
497
505
|
securityLevel: 'medium',
|
|
498
|
-
expectedFormat: 'json'
|
|
499
|
-
}
|
|
506
|
+
expectedFormat: 'json',
|
|
507
|
+
},
|
|
500
508
|
};
|
|
501
509
|
}
|
|
502
510
|
catch (error) {
|
|
@@ -623,12 +631,15 @@ You must:
|
|
|
623
631
|
improvementScore: 0.85, // Default improvement score for tool optimization
|
|
624
632
|
toolOptimized: true,
|
|
625
633
|
candidateCount: toolConfig.apeConfig?.candidateCount || 5,
|
|
626
|
-
evaluationCriteria: toolConfig.apeConfig?.evaluationCriteria || [
|
|
634
|
+
evaluationCriteria: toolConfig.apeConfig?.evaluationCriteria || [
|
|
635
|
+
'task-completion',
|
|
636
|
+
'clarity',
|
|
637
|
+
],
|
|
627
638
|
version: APE_VERSION,
|
|
628
639
|
timestamp: Date.now(),
|
|
629
640
|
securityLevel: 'high',
|
|
630
|
-
expectedFormat: 'json'
|
|
631
|
-
}
|
|
641
|
+
expectedFormat: 'json',
|
|
642
|
+
},
|
|
632
643
|
};
|
|
633
644
|
}
|
|
634
645
|
catch (error) {
|
|
@@ -648,7 +659,7 @@ function getStrategyDescription(strategy) {
|
|
|
648
659
|
'style-variation': 'Adjust tone, formality, and communication style',
|
|
649
660
|
'length-variation': 'Create concise, detailed, and balanced versions',
|
|
650
661
|
'structure-variation': 'Reorganize content with different patterns',
|
|
651
|
-
'hybrid-approach': 'Combine multiple strategies for optimal results'
|
|
662
|
+
'hybrid-approach': 'Combine multiple strategies for optimal results',
|
|
652
663
|
};
|
|
653
664
|
return descriptions[strategy] || 'Apply the specified generation strategy';
|
|
654
665
|
}
|
|
@@ -658,11 +669,11 @@ function getStrategyDescription(strategy) {
|
|
|
658
669
|
function getCriterionDescription(criterion) {
|
|
659
670
|
const descriptions = {
|
|
660
671
|
'task-completion': 'How well the prompt achieves the intended task outcome',
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
'context-awareness': 'How well the prompt fits the specific context and domain'
|
|
672
|
+
clarity: 'How clear, unambiguous, and easy to understand the prompt is',
|
|
673
|
+
specificity: 'How specific, actionable, and detailed the prompt is',
|
|
674
|
+
robustness: 'How well the prompt handles edge cases and variations',
|
|
675
|
+
efficiency: 'How concise yet comprehensive the prompt is',
|
|
676
|
+
'context-awareness': 'How well the prompt fits the specific context and domain',
|
|
666
677
|
};
|
|
667
678
|
return descriptions[criterion] || 'Evaluate based on this criterion';
|
|
668
679
|
}
|
|
@@ -673,9 +684,9 @@ function getSelectionStrategyDescription(strategy) {
|
|
|
673
684
|
const descriptions = {
|
|
674
685
|
'highest-score': 'Select the candidate with the highest overall evaluation score',
|
|
675
686
|
'multi-criteria': 'Balance multiple evaluation criteria with appropriate weights',
|
|
676
|
-
|
|
687
|
+
ensemble: 'Combine strengths of multiple high-performing candidates',
|
|
677
688
|
'context-aware': 'Choose based on context-specific suitability and requirements',
|
|
678
|
-
|
|
689
|
+
balanced: 'Balance quality, diversity, and context appropriateness',
|
|
679
690
|
};
|
|
680
691
|
return descriptions[strategy] || 'Apply the specified selection strategy';
|
|
681
692
|
}
|
|
@@ -684,37 +695,38 @@ function getSelectionStrategyDescription(strategy) {
|
|
|
684
695
|
*/
|
|
685
696
|
function getToolOptimizationPriorities(toolName) {
|
|
686
697
|
const priorities = {
|
|
687
|
-
|
|
698
|
+
generate_adrs_from_prd: `
|
|
688
699
|
- **Context Analysis**: Better understanding of PRD requirements and constraints
|
|
689
700
|
- **Decision Quality**: Clearer architectural decision rationale and justification
|
|
690
701
|
- **Stakeholder Alignment**: Improved ADR clarity and relevance for stakeholders
|
|
691
702
|
- **Technical Depth**: Appropriate level of technical detail for the context`,
|
|
692
|
-
|
|
703
|
+
suggest_adrs: `
|
|
693
704
|
- **Relevance**: Highly relevant ADR suggestions based on project context
|
|
694
705
|
- **Prioritization**: Clear prioritization of suggested ADRs by importance
|
|
695
706
|
- **Feasibility**: Realistic and implementable architectural decisions
|
|
696
707
|
- **Impact Assessment**: Clear understanding of decision impacts and trade-offs`,
|
|
697
|
-
|
|
708
|
+
analyze_project_ecosystem: `
|
|
698
709
|
- **Technology Detection**: Accurate identification of technologies and frameworks
|
|
699
710
|
- **Pattern Recognition**: Better identification of architectural patterns
|
|
700
711
|
- **Context Understanding**: Comprehensive project context analysis
|
|
701
712
|
- **Insight Generation**: Valuable and actionable architectural insights`,
|
|
702
|
-
|
|
713
|
+
generate_research_questions: `
|
|
703
714
|
- **Question Quality**: High-quality, targeted research questions
|
|
704
715
|
- **Relevance**: Questions directly relevant to project needs
|
|
705
716
|
- **Depth**: Appropriate depth and scope for research objectives
|
|
706
717
|
- **Actionability**: Questions that lead to actionable insights`,
|
|
707
|
-
|
|
718
|
+
incorporate_research: `
|
|
708
719
|
- **Integration Quality**: Effective integration of research findings
|
|
709
720
|
- **Synthesis**: Good synthesis of multiple research sources
|
|
710
721
|
- **Relevance**: Focus on most relevant research findings
|
|
711
|
-
- **Actionability**: Clear actionable recommendations from research
|
|
722
|
+
- **Actionability**: Clear actionable recommendations from research`,
|
|
712
723
|
};
|
|
713
|
-
return priorities[toolName] ||
|
|
724
|
+
return (priorities[toolName] ||
|
|
725
|
+
`
|
|
714
726
|
- **Task Effectiveness**: Optimize for the tool's primary task objectives
|
|
715
727
|
- **Context Awareness**: Improve understanding of tool-specific context
|
|
716
728
|
- **Output Quality**: Enhance the quality and relevance of tool outputs
|
|
717
|
-
- **User Experience**: Improve clarity and usability of tool interactions
|
|
729
|
+
- **User Experience**: Improve clarity and usability of tool interactions`);
|
|
718
730
|
}
|
|
719
731
|
/**
|
|
720
732
|
* Generate cache key for APE optimization requests
|
|
@@ -733,19 +745,23 @@ export function getDefaultAPEConfig() {
|
|
|
733
745
|
* Validate APE configuration
|
|
734
746
|
*/
|
|
735
747
|
export function validateAPEConfig(config) {
|
|
736
|
-
if (config.candidateCount !== undefined &&
|
|
748
|
+
if (config.candidateCount !== undefined &&
|
|
749
|
+
(config.candidateCount < 1 || config.candidateCount > 10)) {
|
|
737
750
|
throw new McpAdrError('Candidate count must be between 1 and 10', 'INVALID_CONFIG');
|
|
738
751
|
}
|
|
739
|
-
if (config.optimizationRounds !== undefined &&
|
|
752
|
+
if (config.optimizationRounds !== undefined &&
|
|
753
|
+
(config.optimizationRounds < 1 || config.optimizationRounds > 5)) {
|
|
740
754
|
throw new McpAdrError('Optimization rounds must be between 1 and 5', 'INVALID_CONFIG');
|
|
741
755
|
}
|
|
742
|
-
if (config.qualityThreshold !== undefined &&
|
|
756
|
+
if (config.qualityThreshold !== undefined &&
|
|
757
|
+
(config.qualityThreshold < 0 || config.qualityThreshold > 1)) {
|
|
743
758
|
throw new McpAdrError('Quality threshold must be between 0 and 1', 'INVALID_CONFIG');
|
|
744
759
|
}
|
|
745
760
|
if (config.maxOptimizationTime !== undefined && config.maxOptimizationTime <= 0) {
|
|
746
761
|
throw new McpAdrError('Max optimization time must be positive', 'INVALID_CONFIG');
|
|
747
762
|
}
|
|
748
|
-
if (config.diversityWeight !== undefined &&
|
|
763
|
+
if (config.diversityWeight !== undefined &&
|
|
764
|
+
(config.diversityWeight < 0 || config.diversityWeight > 1)) {
|
|
749
765
|
throw new McpAdrError('Diversity weight must be between 0 and 1', 'INVALID_CONFIG');
|
|
750
766
|
}
|
|
751
767
|
}
|
|
@@ -759,7 +775,7 @@ export function getSupportedGenerationStrategies() {
|
|
|
759
775
|
'style-variation',
|
|
760
776
|
'length-variation',
|
|
761
777
|
'structure-variation',
|
|
762
|
-
'hybrid-approach'
|
|
778
|
+
'hybrid-approach',
|
|
763
779
|
];
|
|
764
780
|
}
|
|
765
781
|
/**
|
|
@@ -772,47 +788,41 @@ export function getSupportedEvaluationCriteria() {
|
|
|
772
788
|
'specificity',
|
|
773
789
|
'robustness',
|
|
774
790
|
'efficiency',
|
|
775
|
-
'context-awareness'
|
|
791
|
+
'context-awareness',
|
|
776
792
|
];
|
|
777
793
|
}
|
|
778
794
|
/**
|
|
779
795
|
* Get supported selection strategies
|
|
780
796
|
*/
|
|
781
797
|
export function getSupportedSelectionStrategies() {
|
|
782
|
-
return [
|
|
783
|
-
'highest-score',
|
|
784
|
-
'multi-criteria',
|
|
785
|
-
'ensemble',
|
|
786
|
-
'context-aware',
|
|
787
|
-
'balanced'
|
|
788
|
-
];
|
|
798
|
+
return ['highest-score', 'multi-criteria', 'ensemble', 'context-aware', 'balanced'];
|
|
789
799
|
}
|
|
790
800
|
/**
|
|
791
801
|
* Create tool-specific APE configuration
|
|
792
802
|
*/
|
|
793
803
|
export function createToolAPEConfig(toolName, customConfig = {}) {
|
|
794
804
|
const toolConfigs = {
|
|
795
|
-
|
|
805
|
+
generate_adrs_from_prd: {
|
|
796
806
|
candidateCount: 7,
|
|
797
807
|
evaluationCriteria: ['task-completion', 'specificity', 'clarity', 'robustness'],
|
|
798
808
|
optimizationRounds: 3,
|
|
799
809
|
selectionStrategy: 'multi-criteria',
|
|
800
|
-
qualityThreshold: 0.75
|
|
810
|
+
qualityThreshold: 0.75,
|
|
801
811
|
},
|
|
802
|
-
|
|
812
|
+
suggest_adrs: {
|
|
803
813
|
candidateCount: 6,
|
|
804
814
|
evaluationCriteria: ['task-completion', 'context-awareness', 'clarity'],
|
|
805
815
|
optimizationRounds: 2,
|
|
806
816
|
selectionStrategy: 'context-aware',
|
|
807
|
-
qualityThreshold: 0.7
|
|
817
|
+
qualityThreshold: 0.7,
|
|
808
818
|
},
|
|
809
|
-
|
|
819
|
+
analyze_project_ecosystem: {
|
|
810
820
|
candidateCount: 5,
|
|
811
821
|
evaluationCriteria: ['task-completion', 'specificity', 'efficiency'],
|
|
812
822
|
optimizationRounds: 2,
|
|
813
823
|
selectionStrategy: 'balanced',
|
|
814
|
-
qualityThreshold: 0.65
|
|
815
|
-
}
|
|
824
|
+
qualityThreshold: 0.65,
|
|
825
|
+
},
|
|
816
826
|
};
|
|
817
827
|
const toolSpecificConfig = toolConfigs[toolName] || {};
|
|
818
828
|
return { ...DEFAULT_APE_CONFIG, ...toolSpecificConfig, ...customConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic-prompt-engineering.js","sourceRoot":"","sources":["../../../src/utils/automatic-prompt-engineering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"automatic-prompt-engineering.js","sourceRoot":"","sources":["../../../src/utils/automatic-prompt-engineering.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
/**
|
|
14
|
+
* Generate strong ETag from content
|
|
15
|
+
* Format: "hash"
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateStrongETag(content: string | object): string;
|
|
18
|
+
/**
|
|
19
|
+
* Generate weak ETag from metadata
|
|
20
|
+
* Format: W/"timestamp-hash"
|
|
21
|
+
* Useful when content hasn't changed but metadata has
|
|
22
|
+
*/
|
|
23
|
+
export declare function generateWeakETag(timestamp: string, identifier: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Parse ETag from header
|
|
26
|
+
* Handles both strong and weak ETags
|
|
27
|
+
*/
|
|
28
|
+
export declare function parseETag(etag: string): {
|
|
29
|
+
value: string;
|
|
30
|
+
isWeak: boolean;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Compare two ETags for equality
|
|
34
|
+
* Supports both strong and weak comparison
|
|
35
|
+
*/
|
|
36
|
+
export declare function compareETags(etag1: string, etag2: string, weakComparison?: boolean): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Parse If-None-Match header
|
|
39
|
+
* Returns array of ETags to check
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseIfNoneMatch(header: string): string[];
|
|
42
|
+
/**
|
|
43
|
+
* Check if resource matches If-None-Match condition
|
|
44
|
+
* Returns true if resource has NOT been modified
|
|
45
|
+
*/
|
|
46
|
+
export declare function checkIfNoneMatch(currentETag: string, ifNoneMatchHeader: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Parse If-Modified-Since header to Date
|
|
49
|
+
*/
|
|
50
|
+
export declare function parseIfModifiedSince(header: string): Date | null;
|
|
51
|
+
/**
|
|
52
|
+
* Check if resource has been modified since given date
|
|
53
|
+
* Returns true if resource has been modified
|
|
54
|
+
*/
|
|
55
|
+
export declare function checkIfModifiedSince(lastModified: string, ifModifiedSinceHeader: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Evaluate conditional request
|
|
58
|
+
* Returns { notModified: boolean, reason?: string }
|
|
59
|
+
*/
|
|
60
|
+
export interface ConditionalRequestResult {
|
|
61
|
+
notModified: boolean;
|
|
62
|
+
reason?: string;
|
|
63
|
+
}
|
|
64
|
+
export declare function evaluateConditionalRequest(params: {
|
|
65
|
+
currentETag: string;
|
|
66
|
+
lastModified: string;
|
|
67
|
+
ifNoneMatch?: string;
|
|
68
|
+
ifModifiedSince?: string;
|
|
69
|
+
}): ConditionalRequestResult;
|
|
70
|
+
/**
|
|
71
|
+
* Generate HTTP cache headers for response
|
|
72
|
+
*/
|
|
73
|
+
export interface CacheHeaders {
|
|
74
|
+
'ETag': string;
|
|
75
|
+
'Last-Modified': string;
|
|
76
|
+
'Cache-Control': string;
|
|
77
|
+
'Vary'?: string;
|
|
78
|
+
}
|
|
79
|
+
export declare function generateCacheHeaders(params: {
|
|
80
|
+
etag: string;
|
|
81
|
+
lastModified: string;
|
|
82
|
+
maxAge?: number;
|
|
83
|
+
mustRevalidate?: boolean;
|
|
84
|
+
vary?: string[];
|
|
85
|
+
}): CacheHeaders;
|
|
86
|
+
/**
|
|
87
|
+
* Create 304 Not Modified response metadata
|
|
88
|
+
*/
|
|
89
|
+
export interface NotModifiedResponse {
|
|
90
|
+
status: 304;
|
|
91
|
+
statusText: 'Not Modified';
|
|
92
|
+
headers: CacheHeaders;
|
|
93
|
+
body?: never;
|
|
94
|
+
}
|
|
95
|
+
export declare function createNotModifiedResponse(params: {
|
|
96
|
+
etag: string;
|
|
97
|
+
lastModified: string;
|
|
98
|
+
maxAge?: number;
|
|
99
|
+
}): NotModifiedResponse;
|
|
100
|
+
/**
|
|
101
|
+
* Calculate cache freshness
|
|
102
|
+
* Returns true if cache is still fresh
|
|
103
|
+
*/
|
|
104
|
+
export declare function isCacheFresh(lastModified: string, maxAge: number): boolean;
|
|
105
|
+
//# sourceMappingURL=conditional-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional-request.d.ts","sourceRoot":"","sources":["../../../src/utils/conditional-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAInE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAI1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,OAAO,CAc1F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAcxF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAWhE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAajG;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,wBAAwB,CAwB3B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,YAAY,CAsBf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAmBtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQ1E"}
|
|
@@ -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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAwB;IACzD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,IAAI,IAAI,GAAG,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,UAAkB;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,OAAO,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,KAAa,EAAE,cAAc,GAAG,KAAK;IAC/E,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjC,mDAAmD;IACnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,0DAA0D;IAC1D,OAAO,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,iBAAyB;IAC7E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAElD,gCAAgC;IAChC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB,EAAE,qBAA6B;IACtF,MAAM,eAAe,GAAG,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,CAAC,+BAA+B;IAC9C,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,CAAC,kCAAkC;IACjD,CAAC;IAED,yDAAyD;IACzD,OAAO,gBAAgB,GAAG,eAAe,CAAC;AAC5C,CAAC;AAWD,MAAM,UAAU,0BAA0B,CAAC,MAK1C;IACC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE3E,oDAAoD;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QACrD,CAAC;QACD,gEAAgE;QAChE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IACzD,CAAC;IAED,0BAA0B;IAC1B,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC1D,CAAC;IAED,iCAAiC;IACjC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;AAClE,CAAC;AAYD,MAAM,UAAU,oBAAoB,CAAC,MAMpC;IACC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEjF,MAAM,YAAY,GAAG;QACnB,WAAW,MAAM,EAAE;QACnB,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;QACvC,SAAS,EAAE,8BAA8B;KAC1C;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GAAiB;QAC5B,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,YAAY;QAC7B,eAAe,EAAE,YAAY;KAC9B,CAAC;IAEF,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,UAAU,yBAAyB,CAAC,MAIzC;IACC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE9C,gDAAgD;IAChD,MAAM,aAAa,GAIf,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAE3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,oBAAoB,CAAC,aAAa,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,YAAoB,EAAE,MAAc;IAC/D,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IACpE,OAAO,UAAU,GAAG,MAAM,CAAC;AAC7B,CAAC"}
|