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
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Status Resource
|
|
3
|
+
* Provides comprehensive project status and health metrics
|
|
4
|
+
*/
|
|
5
|
+
import { ResourceGenerationResult } from './index.js';
|
|
6
|
+
export interface ProjectStatus {
|
|
7
|
+
version: string;
|
|
8
|
+
timestamp: string;
|
|
9
|
+
overallHealth: 'excellent' | 'good' | 'fair' | 'poor';
|
|
10
|
+
components: {
|
|
11
|
+
tasks: any;
|
|
12
|
+
research: any;
|
|
13
|
+
rules: any;
|
|
14
|
+
};
|
|
15
|
+
metrics: {
|
|
16
|
+
completionRate: number;
|
|
17
|
+
qualityScore: number;
|
|
18
|
+
resourceCoverage: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Generate comprehensive project status resource aggregating data from multiple sources.
|
|
23
|
+
*
|
|
24
|
+
* This function provides a holistic view of the project's current state by combining
|
|
25
|
+
* task management, research documentation, and rule compliance metrics.
|
|
26
|
+
*
|
|
27
|
+
* @returns Promise resolving to resource generation result containing:
|
|
28
|
+
* - data: Complete project status including health metrics and component breakdown
|
|
29
|
+
* - contentType: "application/json"
|
|
30
|
+
* - lastModified: ISO timestamp of generation
|
|
31
|
+
* - cacheKey: Unique identifier for caching
|
|
32
|
+
* - ttl: Cache duration (120 seconds)
|
|
33
|
+
* - etag: Entity tag for cache validation
|
|
34
|
+
*
|
|
35
|
+
* @throws {McpAdrError} When resource generation fails due to:
|
|
36
|
+
* - Inability to generate todo/research/rules resources
|
|
37
|
+
* - Invalid data structure from component resources
|
|
38
|
+
* - Cache operation failures
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const status = await generateProjectStatusResource();
|
|
43
|
+
* console.log(`Project health: ${status.data.overallHealth}`);
|
|
44
|
+
* console.log(`Completion rate: ${status.data.metrics.completionRate}%`);
|
|
45
|
+
*
|
|
46
|
+
* // Expected output structure:
|
|
47
|
+
* {
|
|
48
|
+
* data: {
|
|
49
|
+
* version: "1.0.0",
|
|
50
|
+
* timestamp: "2025-10-12T17:00:00.000Z",
|
|
51
|
+
* overallHealth: "good",
|
|
52
|
+
* components: {
|
|
53
|
+
* tasks: { summary: { total: 10, completed: 7 } },
|
|
54
|
+
* research: { summary: { total: 5 } },
|
|
55
|
+
* rules: { summary: { enabled: 15, total: 20 } }
|
|
56
|
+
* },
|
|
57
|
+
* metrics: {
|
|
58
|
+
* completionRate: 70,
|
|
59
|
+
* qualityScore: 85,
|
|
60
|
+
* resourceCoverage: 35
|
|
61
|
+
* }
|
|
62
|
+
* },
|
|
63
|
+
* contentType: "application/json",
|
|
64
|
+
* cacheKey: "project-status:current",
|
|
65
|
+
* ttl: 120
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @since v2.0.0
|
|
70
|
+
* @see {@link generateTodoListResource} for task management data
|
|
71
|
+
* @see {@link generateResearchIndexResource} for research documentation
|
|
72
|
+
* @see {@link generateRuleCatalogResource} for rule compliance
|
|
73
|
+
*/
|
|
74
|
+
export declare function generateProjectStatusResource(): Promise<ResourceGenerationResult>;
|
|
75
|
+
//# sourceMappingURL=project-status-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-status-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/project-status-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAKtD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,UAAU,EAAE;QACV,KAAK,EAAE,GAAG,CAAC;QACX,QAAQ,EAAE,GAAG,CAAC;QACd,KAAK,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAwFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAwDvF"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Status Resource
|
|
3
|
+
* Provides comprehensive project status and health metrics
|
|
4
|
+
*/
|
|
5
|
+
import { McpAdrError } from '../types/index.js';
|
|
6
|
+
import { resourceCache, generateETag } from './resource-cache.js';
|
|
7
|
+
import { generateTodoListResource } from './todo-list-resource.js';
|
|
8
|
+
import { generateResearchIndexResource } from './research-index-resource.js';
|
|
9
|
+
import { generateRuleCatalogResource } from './rule-catalog-resource.js';
|
|
10
|
+
/**
|
|
11
|
+
* Calculate overall health score
|
|
12
|
+
*/
|
|
13
|
+
function calculateOverallHealth(components) {
|
|
14
|
+
// Simple heuristic based on completion rates and issues
|
|
15
|
+
let score = 0;
|
|
16
|
+
let maxScore = 0;
|
|
17
|
+
for (const component of components) {
|
|
18
|
+
if (component && typeof component === 'object') {
|
|
19
|
+
maxScore += 100;
|
|
20
|
+
if (component.summary) {
|
|
21
|
+
// Score based on completion
|
|
22
|
+
if (component.summary.completed !== undefined && component.summary.total !== undefined) {
|
|
23
|
+
const completionRate = component.summary.total > 0
|
|
24
|
+
? (component.summary.completed / component.summary.total) * 100
|
|
25
|
+
: 100;
|
|
26
|
+
score += completionRate;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
score += 75; // Neutral score if no completion data
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
score += 50; // Lower score for missing data
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const avgScore = maxScore > 0 ? (score / maxScore) * 100 : 50;
|
|
38
|
+
if (avgScore >= 90)
|
|
39
|
+
return 'excellent';
|
|
40
|
+
if (avgScore >= 75)
|
|
41
|
+
return 'good';
|
|
42
|
+
if (avgScore >= 50)
|
|
43
|
+
return 'fair';
|
|
44
|
+
return 'poor';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Calculate completion rate from todo statistics
|
|
48
|
+
*/
|
|
49
|
+
function calculateCompletionRate(todoStats) {
|
|
50
|
+
if (!todoStats || !todoStats.summary)
|
|
51
|
+
return 0;
|
|
52
|
+
const { total, completed } = todoStats.summary;
|
|
53
|
+
return total > 0 ? (completed / total) * 100 : 0;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Calculate quality score from various metrics
|
|
57
|
+
*/
|
|
58
|
+
function calculateQualityScore(components) {
|
|
59
|
+
// Simplified quality score calculation
|
|
60
|
+
// In production, this would analyze code quality, test coverage, etc.
|
|
61
|
+
let score = 75; // Baseline score
|
|
62
|
+
// Adjust based on rule compliance
|
|
63
|
+
if (components.rules && components.rules.summary) {
|
|
64
|
+
const { enabled, total } = components.rules.summary;
|
|
65
|
+
if (total > 0) {
|
|
66
|
+
score += (enabled / total) * 10;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Adjust based on research documentation
|
|
70
|
+
if (components.research && components.research.summary) {
|
|
71
|
+
const { total } = components.research.summary;
|
|
72
|
+
if (total > 5) {
|
|
73
|
+
score += 5; // Bonus for good documentation
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return Math.min(Math.max(score, 0), 100);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Calculate resource coverage
|
|
80
|
+
*/
|
|
81
|
+
function calculateResourceCoverage() {
|
|
82
|
+
// Currently: 7 resources (3 original refactored + 4 new)
|
|
83
|
+
// Target: 20+ resources
|
|
84
|
+
const current = 7;
|
|
85
|
+
const target = 20;
|
|
86
|
+
return (current / target) * 100;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Generate comprehensive project status resource aggregating data from multiple sources.
|
|
90
|
+
*
|
|
91
|
+
* This function provides a holistic view of the project's current state by combining
|
|
92
|
+
* task management, research documentation, and rule compliance metrics.
|
|
93
|
+
*
|
|
94
|
+
* @returns Promise resolving to resource generation result containing:
|
|
95
|
+
* - data: Complete project status including health metrics and component breakdown
|
|
96
|
+
* - contentType: "application/json"
|
|
97
|
+
* - lastModified: ISO timestamp of generation
|
|
98
|
+
* - cacheKey: Unique identifier for caching
|
|
99
|
+
* - ttl: Cache duration (120 seconds)
|
|
100
|
+
* - etag: Entity tag for cache validation
|
|
101
|
+
*
|
|
102
|
+
* @throws {McpAdrError} When resource generation fails due to:
|
|
103
|
+
* - Inability to generate todo/research/rules resources
|
|
104
|
+
* - Invalid data structure from component resources
|
|
105
|
+
* - Cache operation failures
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const status = await generateProjectStatusResource();
|
|
110
|
+
* console.log(`Project health: ${status.data.overallHealth}`);
|
|
111
|
+
* console.log(`Completion rate: ${status.data.metrics.completionRate}%`);
|
|
112
|
+
*
|
|
113
|
+
* // Expected output structure:
|
|
114
|
+
* {
|
|
115
|
+
* data: {
|
|
116
|
+
* version: "1.0.0",
|
|
117
|
+
* timestamp: "2025-10-12T17:00:00.000Z",
|
|
118
|
+
* overallHealth: "good",
|
|
119
|
+
* components: {
|
|
120
|
+
* tasks: { summary: { total: 10, completed: 7 } },
|
|
121
|
+
* research: { summary: { total: 5 } },
|
|
122
|
+
* rules: { summary: { enabled: 15, total: 20 } }
|
|
123
|
+
* },
|
|
124
|
+
* metrics: {
|
|
125
|
+
* completionRate: 70,
|
|
126
|
+
* qualityScore: 85,
|
|
127
|
+
* resourceCoverage: 35
|
|
128
|
+
* }
|
|
129
|
+
* },
|
|
130
|
+
* contentType: "application/json",
|
|
131
|
+
* cacheKey: "project-status:current",
|
|
132
|
+
* ttl: 120
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
* @since v2.0.0
|
|
137
|
+
* @see {@link generateTodoListResource} for task management data
|
|
138
|
+
* @see {@link generateResearchIndexResource} for research documentation
|
|
139
|
+
* @see {@link generateRuleCatalogResource} for rule compliance
|
|
140
|
+
*/
|
|
141
|
+
export async function generateProjectStatusResource() {
|
|
142
|
+
try {
|
|
143
|
+
const cacheKey = 'project-status:current';
|
|
144
|
+
// Check cache
|
|
145
|
+
const cached = await resourceCache.get(cacheKey);
|
|
146
|
+
if (cached) {
|
|
147
|
+
return cached;
|
|
148
|
+
}
|
|
149
|
+
// Aggregate status from multiple sources
|
|
150
|
+
const todoResource = await generateTodoListResource();
|
|
151
|
+
const researchResource = await generateResearchIndexResource();
|
|
152
|
+
const rulesResource = await generateRuleCatalogResource();
|
|
153
|
+
const components = {
|
|
154
|
+
tasks: todoResource.data,
|
|
155
|
+
research: researchResource.data,
|
|
156
|
+
rules: rulesResource.data,
|
|
157
|
+
};
|
|
158
|
+
const projectStatusData = {
|
|
159
|
+
version: '1.0.0',
|
|
160
|
+
timestamp: new Date().toISOString(),
|
|
161
|
+
overallHealth: calculateOverallHealth([
|
|
162
|
+
todoResource.data,
|
|
163
|
+
researchResource.data,
|
|
164
|
+
rulesResource.data,
|
|
165
|
+
]),
|
|
166
|
+
components,
|
|
167
|
+
metrics: {
|
|
168
|
+
completionRate: calculateCompletionRate(todoResource.data),
|
|
169
|
+
qualityScore: calculateQualityScore(components),
|
|
170
|
+
resourceCoverage: calculateResourceCoverage(),
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
const result = {
|
|
174
|
+
data: projectStatusData,
|
|
175
|
+
contentType: 'application/json',
|
|
176
|
+
lastModified: new Date().toISOString(),
|
|
177
|
+
cacheKey,
|
|
178
|
+
ttl: 120, // 2 minutes cache (status changes frequently)
|
|
179
|
+
etag: generateETag(projectStatusData),
|
|
180
|
+
};
|
|
181
|
+
// Cache result
|
|
182
|
+
resourceCache.set(cacheKey, result, result.ttl);
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
throw new McpAdrError(`Failed to generate project status resource: ${error instanceof Error ? error.message : String(error)}`, 'RESOURCE_GENERATION_ERROR');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=project-status-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-status-resource.js","sourceRoot":"","sources":["../../../src/resources/project-status-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research by Topic Resource - Topic-specific research documents
|
|
3
|
+
* URI Pattern: adr://research/{topic}
|
|
4
|
+
*/
|
|
5
|
+
import { URLSearchParams } from 'url';
|
|
6
|
+
import { ResourceGenerationResult } from './index.js';
|
|
7
|
+
export interface ResearchDocument {
|
|
8
|
+
id: string;
|
|
9
|
+
title: string;
|
|
10
|
+
topic: string;
|
|
11
|
+
path: string;
|
|
12
|
+
content: string;
|
|
13
|
+
lastModified: string;
|
|
14
|
+
wordCount: number;
|
|
15
|
+
size: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generate research by topic resource
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateResearchByTopicResource(params: Record<string, string>, _searchParams: URLSearchParams): Promise<ResourceGenerationResult>;
|
|
21
|
+
//# sourceMappingURL=research-by-topic-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-by-topic-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/research-by-topic-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAKtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGtD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AA8DD;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAgFnC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research by Topic Resource - Topic-specific research documents
|
|
3
|
+
* URI Pattern: adr://research/{topic}
|
|
4
|
+
*/
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import * as fs from 'fs/promises';
|
|
7
|
+
import { McpAdrError } from '../types/index.js';
|
|
8
|
+
import { resourceCache, generateETag } from './resource-cache.js';
|
|
9
|
+
import { resourceRouter } from './resource-router.js';
|
|
10
|
+
/**
|
|
11
|
+
* Extract title from markdown content
|
|
12
|
+
*/
|
|
13
|
+
function extractTitle(content) {
|
|
14
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
15
|
+
if (titleMatch && titleMatch[1]) {
|
|
16
|
+
return titleMatch[1].trim();
|
|
17
|
+
}
|
|
18
|
+
return 'Untitled';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate topic summary from documents
|
|
22
|
+
*/
|
|
23
|
+
function generateTopicSummary(documents) {
|
|
24
|
+
const firstDoc = documents[0];
|
|
25
|
+
return {
|
|
26
|
+
totalWords: documents.reduce((sum, doc) => sum + doc.wordCount, 0),
|
|
27
|
+
totalSize: documents.reduce((sum, doc) => sum + doc.size, 0),
|
|
28
|
+
lastUpdated: documents.length > 0 && firstDoc
|
|
29
|
+
? documents.reduce((latest, doc) => (doc.lastModified > latest ? doc.lastModified : latest), firstDoc.lastModified)
|
|
30
|
+
: new Date().toISOString(),
|
|
31
|
+
documentCount: documents.length,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if a file matches the topic
|
|
36
|
+
*/
|
|
37
|
+
function matchesTopic(filename, content, topic) {
|
|
38
|
+
const normalizedTopic = topic.toLowerCase().replace(/-/g, '_');
|
|
39
|
+
const normalizedFilename = filename.toLowerCase();
|
|
40
|
+
const normalizedContent = content.toLowerCase();
|
|
41
|
+
// Check filename
|
|
42
|
+
if (normalizedFilename.includes(topic.toLowerCase()) ||
|
|
43
|
+
normalizedFilename.includes(normalizedTopic)) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
// Check content (first 1000 characters for keywords)
|
|
47
|
+
const contentPreview = normalizedContent.substring(0, 1000);
|
|
48
|
+
if (contentPreview.includes(topic.toLowerCase()) || contentPreview.includes(normalizedTopic)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Generate research by topic resource
|
|
55
|
+
*/
|
|
56
|
+
export async function generateResearchByTopicResource(params, _searchParams) {
|
|
57
|
+
const topic = params['topic'];
|
|
58
|
+
if (!topic) {
|
|
59
|
+
throw new McpAdrError('Missing required parameter: topic', 'INVALID_PARAMS');
|
|
60
|
+
}
|
|
61
|
+
const cacheKey = `research-topic:${topic}`;
|
|
62
|
+
// Check cache
|
|
63
|
+
const cached = await resourceCache.get(cacheKey);
|
|
64
|
+
if (cached) {
|
|
65
|
+
return cached;
|
|
66
|
+
}
|
|
67
|
+
const researchDirs = ['docs/research', 'custom/research'];
|
|
68
|
+
const relatedDocs = [];
|
|
69
|
+
// Scan research directories
|
|
70
|
+
for (const dir of researchDirs) {
|
|
71
|
+
const fullPath = path.resolve(process.cwd(), dir);
|
|
72
|
+
try {
|
|
73
|
+
const files = await fs.readdir(fullPath);
|
|
74
|
+
for (const file of files) {
|
|
75
|
+
if (file.endsWith('.md')) {
|
|
76
|
+
const filePath = path.join(fullPath, file);
|
|
77
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
78
|
+
// Check if file matches topic
|
|
79
|
+
if (matchesTopic(file, content, topic)) {
|
|
80
|
+
const stats = await fs.stat(filePath);
|
|
81
|
+
relatedDocs.push({
|
|
82
|
+
id: file.replace('.md', ''),
|
|
83
|
+
title: extractTitle(content),
|
|
84
|
+
topic,
|
|
85
|
+
path: path.join(dir, file),
|
|
86
|
+
content,
|
|
87
|
+
lastModified: stats.mtime.toISOString(),
|
|
88
|
+
wordCount: content.split(/\s+/).length,
|
|
89
|
+
size: stats.size,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Directory doesn't exist or can't be read, skip silently
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Sort by last modified (newest first)
|
|
101
|
+
relatedDocs.sort((a, b) => b.lastModified.localeCompare(a.lastModified));
|
|
102
|
+
if (relatedDocs.length === 0) {
|
|
103
|
+
throw new McpAdrError(`No research documents found for topic: ${topic}`, 'RESOURCE_NOT_FOUND');
|
|
104
|
+
}
|
|
105
|
+
const topicData = {
|
|
106
|
+
topic,
|
|
107
|
+
documentCount: relatedDocs.length,
|
|
108
|
+
documents: relatedDocs,
|
|
109
|
+
summary: generateTopicSummary(relatedDocs),
|
|
110
|
+
};
|
|
111
|
+
const result = {
|
|
112
|
+
data: topicData,
|
|
113
|
+
contentType: 'application/json',
|
|
114
|
+
lastModified: new Date().toISOString(),
|
|
115
|
+
cacheKey,
|
|
116
|
+
ttl: 600, // 10 minutes cache
|
|
117
|
+
etag: generateETag(topicData),
|
|
118
|
+
};
|
|
119
|
+
// Cache result
|
|
120
|
+
resourceCache.set(cacheKey, result, result.ttl);
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
// Register route
|
|
124
|
+
resourceRouter.register('/research/{topic}', generateResearchByTopicResource, 'Research documents filtered by topic');
|
|
125
|
+
//# sourceMappingURL=research-by-topic-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-by-topic-resource.js","sourceRoot":"","sources":["../../../src/resources/research-by-topic-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Research Index Resource
|
|
3
|
+
* Provides access to research documents and findings
|
|
4
|
+
*/
|
|
5
|
+
import { ResourceGenerationResult } from './index.js';
|
|
6
|
+
export interface ResearchDocument {
|
|
7
|
+
id: string;
|
|
8
|
+
title: string;
|
|
9
|
+
topic: string;
|
|
10
|
+
path: string;
|
|
11
|
+
lastModified: string;
|
|
12
|
+
wordCount: number;
|
|
13
|
+
size: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Generate comprehensive research document index resource with metadata and categorization.
|
|
17
|
+
*
|
|
18
|
+
* Scans project research directories and builds an index of all research documents with
|
|
19
|
+
* metadata including titles, topics, word counts, file sizes, and last modified dates.
|
|
20
|
+
* Supports multiple research directories for organizational flexibility.
|
|
21
|
+
*
|
|
22
|
+
* **Scanned Directories:**
|
|
23
|
+
* - `docs/research/` - Primary research documentation
|
|
24
|
+
* - `custom/research/` - Custom user research notes
|
|
25
|
+
*
|
|
26
|
+
* **Document Extraction:**
|
|
27
|
+
* - Title: Extracted from first H1 heading or filename
|
|
28
|
+
* - Topic: Derived from filename prefix or directory structure
|
|
29
|
+
* - Metadata: Word count, file size, last modified timestamp
|
|
30
|
+
*
|
|
31
|
+
* @returns Promise resolving to resource generation result containing:
|
|
32
|
+
* - data: Complete research index with documents array and summary statistics
|
|
33
|
+
* - contentType: "application/json"
|
|
34
|
+
* - lastModified: ISO timestamp of generation
|
|
35
|
+
* - cacheKey: "research-index:current"
|
|
36
|
+
* - ttl: Cache duration (300 seconds / 5 minutes)
|
|
37
|
+
* - etag: Entity tag for cache validation
|
|
38
|
+
*
|
|
39
|
+
* @throws {McpAdrError} When research index generation fails due to:
|
|
40
|
+
* - RESOURCE_GENERATION_ERROR: File system access errors or markdown parsing failures
|
|
41
|
+
* - Cache operation failures
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const researchIndex = await generateResearchIndexResource();
|
|
46
|
+
*
|
|
47
|
+
* console.log(`Total research documents: ${researchIndex.data.summary.total}`);
|
|
48
|
+
* console.log(`Topics covered: ${researchIndex.data.summary.byTopic.length}`);
|
|
49
|
+
* console.log(`Total words: ${researchIndex.data.summary.totalWords}`);
|
|
50
|
+
*
|
|
51
|
+
* // Find research by topic
|
|
52
|
+
* const architectureDocs = researchIndex.data.documents.filter(
|
|
53
|
+
* doc => doc.topic === 'architecture'
|
|
54
|
+
* );
|
|
55
|
+
* console.log(`Architecture research docs: ${architectureDocs.length}`);
|
|
56
|
+
*
|
|
57
|
+
* // Sort by recency
|
|
58
|
+
* const recentDocs = researchIndex.data.documents
|
|
59
|
+
* .sort((a, b) => new Date(b.lastModified).getTime() - new Date(a.lastModified).getTime())
|
|
60
|
+
* .slice(0, 5);
|
|
61
|
+
*
|
|
62
|
+
* // Expected output structure:
|
|
63
|
+
* {
|
|
64
|
+
* data: {
|
|
65
|
+
* version: "1.0.0",
|
|
66
|
+
* timestamp: "2025-10-12T17:00:00.000Z",
|
|
67
|
+
* summary: {
|
|
68
|
+
* total: 55,
|
|
69
|
+
* byTopic: {
|
|
70
|
+
* "performance": 12,
|
|
71
|
+
* "security": 8,
|
|
72
|
+
* "architecture": 15
|
|
73
|
+
* },
|
|
74
|
+
* totalWords: 45000,
|
|
75
|
+
* averageWordCount: 818
|
|
76
|
+
* },
|
|
77
|
+
* documents: [
|
|
78
|
+
* {
|
|
79
|
+
* id: "perform_research_research_001",
|
|
80
|
+
* title: "TypeScript Performance Optimization",
|
|
81
|
+
* topic: "performance",
|
|
82
|
+
* path: "docs/research/perform_research_research_001.md",
|
|
83
|
+
* lastModified: "2025-10-10T12:00:00.000Z",
|
|
84
|
+
* wordCount: 1250,
|
|
85
|
+
* size: 8192
|
|
86
|
+
* }
|
|
87
|
+
* ]
|
|
88
|
+
* },
|
|
89
|
+
* contentType: "application/json",
|
|
90
|
+
* cacheKey: "research-index:current",
|
|
91
|
+
* ttl: 300
|
|
92
|
+
* }
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @since v2.0.0
|
|
96
|
+
* @see {@link extractTitle} for title extraction logic
|
|
97
|
+
* @see {@link extractTopic} for topic categorization
|
|
98
|
+
*/
|
|
99
|
+
export declare function generateResearchIndexResource(): Promise<ResourceGenerationResult>;
|
|
100
|
+
//# sourceMappingURL=research-index-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research-index-resource.d.ts","sourceRoot":"","sources":["../../../src/resources/research-index-resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAkDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,wBAAwB,CAAC,CA+EvF"}
|