mcp-adr-analysis-server 2.0.21 → 2.1.0
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 +94 -839
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/config/ai-config.d.ts.map +1 -1
- package/dist/src/config/ai-config.js +9 -9
- package/dist/src/config/ai-config.js.map +1 -1
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1594 -837
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/analysis-prompts.d.ts +4 -1
- package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
- package/dist/src/prompts/analysis-prompts.js +61 -30
- package/dist/src/prompts/analysis-prompts.js.map +1 -1
- package/dist/src/prompts/index.d.ts +17 -1
- package/dist/src/prompts/index.d.ts.map +1 -1
- package/dist/src/prompts/index.js +325 -1
- package/dist/src/prompts/index.js.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.js +5 -1
- package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
- package/dist/src/prompts/security-prompts.d.ts +6 -1
- package/dist/src/prompts/security-prompts.d.ts.map +1 -1
- package/dist/src/prompts/security-prompts.js +6 -1
- package/dist/src/prompts/security-prompts.js.map +1 -1
- package/dist/src/prompts/todo-prompts.d.ts +49 -0
- package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
- package/dist/src/prompts/todo-prompts.js +824 -0
- package/dist/src/prompts/todo-prompts.js.map +1 -0
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +9 -7
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +330 -32
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/content-masking-tool.d.ts +5 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
- package/dist/src/tools/content-masking-tool.js +631 -28
- package/dist/src/tools/content-masking-tool.js.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
- package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.js +1017 -93
- package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
- package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
- package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
- package/dist/src/tools/environment-analysis-tool.js +568 -24
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
- package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
- package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-planning-tool.js +316 -183
- package/dist/src/tools/mcp-planning-tool.js.map +1 -1
- package/dist/src/tools/memory-loading-tool.d.ts +60 -0
- package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
- package/dist/src/tools/memory-loading-tool.js +457 -0
- package/dist/src/tools/memory-loading-tool.js.map +1 -0
- package/dist/src/tools/research-integration-tool.d.ts +4 -1
- package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
- package/dist/src/tools/research-integration-tool.js +5 -1
- package/dist/src/tools/research-integration-tool.js.map +1 -1
- package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
- package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
- package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
- package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
- package/dist/src/tools/rule-generation-tool.d.ts +2 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
- package/dist/src/tools/rule-generation-tool.js +274 -33
- package/dist/src/tools/rule-generation-tool.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
- package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
- package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
- package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool.js +241 -235
- package/dist/src/tools/smart-git-push-tool.js.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
- package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.js +152 -93
- package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
- package/dist/src/types/ape-framework.d.ts +93 -0
- package/dist/src/types/ape-framework.d.ts.map +1 -1
- package/dist/src/types/ape-framework.js +10 -10
- package/dist/src/types/ape-framework.js.map +1 -1
- package/dist/src/types/enhanced-errors.d.ts +173 -0
- package/dist/src/types/enhanced-errors.d.ts.map +1 -0
- package/dist/src/types/enhanced-errors.js +668 -0
- package/dist/src/types/enhanced-errors.js.map +1 -0
- package/dist/src/types/index.d.ts +129 -3
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +15 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/knowledge-generation.d.ts +78 -0
- package/dist/src/types/knowledge-generation.d.ts.map +1 -1
- package/dist/src/types/knowledge-generation.js +10 -6
- package/dist/src/types/knowledge-generation.js.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
- package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.js +45 -17
- package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
- package/dist/src/types/memory-entities.d.ts +7209 -0
- package/dist/src/types/memory-entities.d.ts.map +1 -0
- package/dist/src/types/memory-entities.js +395 -0
- package/dist/src/types/memory-entities.js.map +1 -0
- package/dist/src/types/reflexion-framework.d.ts +44 -0
- package/dist/src/types/reflexion-framework.d.ts.map +1 -1
- package/dist/src/types/reflexion-framework.js +7 -7
- package/dist/src/types/reflexion-framework.js.map +1 -1
- package/dist/src/types/todo-json-schemas.d.ts +7 -653
- package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
- package/dist/src/types/todo-json-schemas.js +6 -110
- package/dist/src/types/todo-json-schemas.js.map +1 -1
- package/dist/src/types/tool-arguments.d.ts +224 -0
- package/dist/src/types/tool-arguments.d.ts.map +1 -0
- package/dist/src/types/tool-arguments.js +6 -0
- package/dist/src/types/tool-arguments.js.map +1 -0
- package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
- package/dist/src/utils/actual-file-operations.js +25 -9
- package/dist/src/utils/actual-file-operations.js.map +1 -1
- package/dist/src/utils/adr-discovery.d.ts +33 -1
- package/dist/src/utils/adr-discovery.d.ts.map +1 -1
- package/dist/src/utils/adr-discovery.js +14 -9
- package/dist/src/utils/adr-discovery.js.map +1 -1
- package/dist/src/utils/adr-suggestions.d.ts +72 -0
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
- package/dist/src/utils/adr-suggestions.js +6 -0
- package/dist/src/utils/adr-suggestions.js.map +1 -1
- package/dist/src/utils/cache.d.ts.map +1 -1
- package/dist/src/utils/cache.js +22 -19
- package/dist/src/utils/cache.js.map +1 -1
- package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
- package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
- package/dist/src/utils/chain-of-thought-template.js +31 -22
- package/dist/src/utils/chain-of-thought-template.js.map +1 -1
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +1 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/directory-compat.js +1 -1
- package/dist/src/utils/directory-compat.js.map +1 -1
- package/dist/src/utils/enhanced-logging.d.ts +195 -0
- package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
- package/dist/src/utils/enhanced-logging.js +449 -0
- package/dist/src/utils/enhanced-logging.js.map +1 -0
- package/dist/src/utils/file-system.d.ts +182 -34
- package/dist/src/utils/file-system.d.ts.map +1 -1
- package/dist/src/utils/file-system.js +648 -774
- package/dist/src/utils/file-system.js.map +1 -1
- package/dist/src/utils/gitleaks-detector.d.ts +50 -0
- package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
- package/dist/src/utils/gitleaks-detector.js +334 -0
- package/dist/src/utils/gitleaks-detector.js.map +1 -0
- package/dist/src/utils/interactive-approval.d.ts +1 -1
- package/dist/src/utils/interactive-approval.d.ts.map +1 -1
- package/dist/src/utils/interactive-approval.js +22 -17
- package/dist/src/utils/interactive-approval.js.map +1 -1
- package/dist/src/utils/json-safe.d.ts.map +1 -1
- package/dist/src/utils/json-safe.js +9 -6
- package/dist/src/utils/json-safe.js.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +315 -70
- package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
- package/dist/src/utils/location-filter.d.ts +35 -10
- package/dist/src/utils/location-filter.d.ts.map +1 -1
- package/dist/src/utils/location-filter.js +360 -94
- package/dist/src/utils/location-filter.js.map +1 -1
- package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
- package/dist/src/utils/mcp-response-validator.js +34 -19
- package/dist/src/utils/mcp-response-validator.js.map +1 -1
- package/dist/src/utils/memory-entity-manager.d.ts +134 -0
- package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-entity-manager.js +851 -0
- package/dist/src/utils/memory-entity-manager.js.map +1 -0
- package/dist/src/utils/memory-health-scoring.d.ts +125 -0
- package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
- package/dist/src/utils/memory-health-scoring.js +277 -0
- package/dist/src/utils/memory-health-scoring.js.map +1 -0
- package/dist/src/utils/memory-migration-manager.d.ts +93 -0
- package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-migration-manager.js +842 -0
- package/dist/src/utils/memory-migration-manager.js.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.js +482 -0
- package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
- package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
- package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-rollback-manager.js +575 -0
- package/dist/src/utils/memory-rollback-manager.js.map +1 -0
- package/dist/src/utils/memory-transformation.d.ts +59 -0
- package/dist/src/utils/memory-transformation.d.ts.map +1 -0
- package/dist/src/utils/memory-transformation.js +742 -0
- package/dist/src/utils/memory-transformation.js.map +1 -0
- package/dist/src/utils/output-masking.d.ts +12 -0
- package/dist/src/utils/output-masking.d.ts.map +1 -1
- package/dist/src/utils/output-masking.js +5 -0
- package/dist/src/utils/output-masking.js.map +1 -1
- package/dist/src/utils/prompt-execution.d.ts.map +1 -1
- package/dist/src/utils/prompt-execution.js +72 -51
- package/dist/src/utils/prompt-execution.js.map +1 -1
- package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
- package/dist/src/utils/release-readiness-detector.js +43 -42
- package/dist/src/utils/release-readiness-detector.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +73 -44
- package/dist/src/utils/research-integration.js.map +1 -1
- package/dist/src/utils/research-questions.d.ts.map +1 -1
- package/dist/src/utils/research-questions.js +40 -14
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
- package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
- package/dist/src/utils/ripgrep-wrapper.js +255 -0
- package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +26 -15
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/dist/src/utils/todo-file-watcher.d.ts +11 -23
- package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
- package/dist/src/utils/todo-file-watcher.js +18 -156
- package/dist/src/utils/todo-file-watcher.js.map +1 -1
- package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
- package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
- package/dist/src/utils/tree-sitter-analyzer.js +885 -0
- package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
- package/package.json +51 -10
- package/dist/src/tools/smart-score-tool.d.ts +0 -173
- package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
- package/dist/src/tools/smart-score-tool.js +0 -681
- package/dist/src/tools/smart-score-tool.js.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
- package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.js +0 -922
- package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
- package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
- package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
- package/dist/src/utils/project-health-scoring.d.ts +0 -177
- package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
- package/dist/src/utils/project-health-scoring.js +0 -370
- package/dist/src/utils/project-health-scoring.js.map +0 -1
- package/dist/src/utils/todo-json-manager.d.ts +0 -71
- package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
- package/dist/src/utils/todo-json-manager.js +0 -396
- package/dist/src/utils/todo-json-manager.js.map +0 -1
- package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
- package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
- package/dist/src/utils/todo-markdown-converter.js +0 -362
- package/dist/src/utils/todo-markdown-converter.js.map +0 -1
- package/dist/src/utils/todo-migration.d.ts +0 -47
- package/dist/src/utils/todo-migration.d.ts.map +0 -1
- package/dist/src/utils/todo-migration.js +0 -261
- package/dist/src/utils/todo-migration.js.map +0 -1
|
@@ -19,8 +19,9 @@ Based on actual ADR file analysis, here are the discovered ADRs with their full
|
|
|
19
19
|
|
|
20
20
|
## Discovered ADRs (${discoveryResult.totalAdrs} total)
|
|
21
21
|
|
|
22
|
-
${discoveryResult.adrs.length > 0
|
|
23
|
-
discoveryResult.adrs
|
|
22
|
+
${discoveryResult.adrs.length > 0
|
|
23
|
+
? discoveryResult.adrs
|
|
24
|
+
.map((adr, index) => `
|
|
24
25
|
### ${index + 1}. ${adr.title}
|
|
25
26
|
- **File**: ${adr.filename}
|
|
26
27
|
- **Status**: ${adr.status}
|
|
@@ -33,13 +34,17 @@ ${adr.content || 'Content not available'}
|
|
|
33
34
|
\`\`\`
|
|
34
35
|
|
|
35
36
|
---
|
|
36
|
-
`)
|
|
37
|
+
`)
|
|
38
|
+
.join('\n')
|
|
39
|
+
: 'No ADRs found in the specified directory.'}
|
|
37
40
|
|
|
38
41
|
## Existing Rules Context
|
|
39
42
|
|
|
40
|
-
${existingRules && existingRules.length > 0
|
|
43
|
+
${existingRules && existingRules.length > 0
|
|
44
|
+
? `
|
|
41
45
|
### Current Rules (${existingRules.length})
|
|
42
|
-
${existingRules
|
|
46
|
+
${existingRules
|
|
47
|
+
.map((rule, index) => `
|
|
43
48
|
#### ${index + 1}. ${rule.name}
|
|
44
49
|
- **ID**: ${rule.id}
|
|
45
50
|
- **Description**: ${rule.description}
|
|
@@ -47,8 +52,10 @@ ${existingRules.map((rule, index) => `
|
|
|
47
52
|
- **Severity**: ${rule.severity}
|
|
48
53
|
- **Type**: ${rule.type}
|
|
49
54
|
- **Scope**: ${rule.scope}
|
|
50
|
-
`)
|
|
51
|
-
|
|
55
|
+
`)
|
|
56
|
+
.join('')}
|
|
57
|
+
`
|
|
58
|
+
: 'No existing rules provided.'}
|
|
52
59
|
|
|
53
60
|
## Rule Extraction Requirements
|
|
54
61
|
|
|
@@ -118,9 +125,9 @@ Each extracted rule should be:
|
|
|
118
125
|
summary: {
|
|
119
126
|
totalAdrs: discoveryResult.totalAdrs,
|
|
120
127
|
byStatus: discoveryResult.summary.byStatus,
|
|
121
|
-
byCategory: discoveryResult.summary.byCategory
|
|
122
|
-
}
|
|
123
|
-
}
|
|
128
|
+
byCategory: discoveryResult.summary.byCategory,
|
|
129
|
+
},
|
|
130
|
+
},
|
|
124
131
|
};
|
|
125
132
|
}
|
|
126
133
|
catch (error) {
|
|
@@ -132,7 +139,7 @@ Each extracted rule should be:
|
|
|
132
139
|
*/
|
|
133
140
|
export async function generateRulesFromPatterns(projectPath, existingRules) {
|
|
134
141
|
try {
|
|
135
|
-
const { analyzeProjectStructure } = await import('./file-system.js');
|
|
142
|
+
const { analyzeProjectStructureCompat: analyzeProjectStructure } = await import('./file-system.js');
|
|
136
143
|
// Generate project analysis prompt for AI delegation
|
|
137
144
|
const projectAnalysisPrompt = await analyzeProjectStructure(projectPath);
|
|
138
145
|
const generationPrompt = `
|
|
@@ -150,12 +157,16 @@ ${projectAnalysisPrompt.instructions}
|
|
|
150
157
|
|
|
151
158
|
## Existing Rules Context
|
|
152
159
|
|
|
153
|
-
${existingRules
|
|
160
|
+
${existingRules
|
|
161
|
+
? `
|
|
154
162
|
### Current Rules (${existingRules.length})
|
|
155
|
-
${existingRules
|
|
163
|
+
${existingRules
|
|
164
|
+
.map((rule, index) => `
|
|
156
165
|
#### ${index + 1}. ${rule}
|
|
157
|
-
`)
|
|
158
|
-
|
|
166
|
+
`)
|
|
167
|
+
.join('')}
|
|
168
|
+
`
|
|
169
|
+
: 'No existing rules provided.'}
|
|
159
170
|
|
|
160
171
|
## Pattern Analysis Requirements
|
|
161
172
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-generation.js","sourceRoot":"","sources":["../../../src/utils/rule-generation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA0DhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,eAAuB,WAAW,EAClC,aAAmC,EACnC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,IAAI,CAAC;QACH,8CAA8C;QAC9C,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEvE,0BAA0B;QAC1B,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAEvF,MAAM,gBAAgB,GAAG;;;;;sBAKP,eAAe,CAAC,SAAS;;
|
|
1
|
+
{"version":3,"file":"rule-generation.js","sourceRoot":"","sources":["../../../src/utils/rule-generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated This utility was removed as part of memory-centric architecture transformation.
|
|
3
|
+
* Please migrate to mcp-shrimp-task-manager for task management.
|
|
4
|
+
* For architectural memory, use the new memory-centric tools.
|
|
5
|
+
* Migration guide: https://github.com/tosin2013/mcp-adr-analysis-server/docs/migration.md
|
|
6
|
+
*/
|
|
1
7
|
export declare class TodoFileWatcher {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
private pollInterval;
|
|
7
|
-
constructor(todoPath?: string);
|
|
8
|
-
startWatching(intervalMs?: number): Promise<void>;
|
|
9
|
-
stopWatching(): Promise<void>;
|
|
10
|
-
private checkForChanges;
|
|
11
|
-
private parseChanges;
|
|
12
|
-
private notifyActiveIntents;
|
|
13
|
-
manualSync(): Promise<{
|
|
14
|
-
changesDetected: boolean;
|
|
15
|
-
syncStatus: string;
|
|
16
|
-
activeIntentsNotified: number;
|
|
17
|
-
}>;
|
|
18
|
-
getWatcherStatus(): Promise<{
|
|
19
|
-
isActive: boolean;
|
|
20
|
-
todoPath: string;
|
|
21
|
-
lastKnownHash: string;
|
|
22
|
-
lastSyncTime: string;
|
|
23
|
-
syncStatus: string;
|
|
24
|
-
}>;
|
|
8
|
+
constructor();
|
|
9
|
+
watch(): void;
|
|
10
|
+
stop(): void;
|
|
11
|
+
static create(): void;
|
|
25
12
|
}
|
|
13
|
+
export default TodoFileWatcher;
|
|
26
14
|
//# sourceMappingURL=todo-file-watcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-file-watcher.d.ts","sourceRoot":"","sources":["../../../src/utils/todo-file-watcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"todo-file-watcher.d.ts","sourceRoot":"","sources":["../../../src/utils/todo-file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,eAAe;;IAY1B,KAAK;IAML,IAAI;IAMJ,MAAM,CAAC,MAAM;CAKd;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,163 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated This utility was removed as part of memory-centric architecture transformation.
|
|
3
|
+
* Please migrate to mcp-shrimp-task-manager for task management.
|
|
4
|
+
* For architectural memory, use the new memory-centric tools.
|
|
5
|
+
* Migration guide: https://github.com/tosin2013/mcp-adr-analysis-server/docs/migration.md
|
|
6
|
+
*/
|
|
5
7
|
export class TodoFileWatcher {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
constructor(todoPath) {
|
|
12
|
-
this.kgManager = new KnowledgeGraphManager();
|
|
13
|
-
const config = loadConfig();
|
|
14
|
-
this.todoPath = todoPath || path.join(config.projectPath, 'TODO.md');
|
|
8
|
+
constructor() {
|
|
9
|
+
console.warn('⚠️ TodoFileWatcher is deprecated and will be removed in v2.0.0.\n' +
|
|
10
|
+
' Please migrate to mcp-shrimp-task-manager: https://github.com/tosin2013/mcp-shrimp-task-manager\n' +
|
|
11
|
+
' See migration guide: /docs/migration.md');
|
|
12
|
+
throw new Error('TodoFileWatcher was removed - use mcp-shrimp-task-manager for task management');
|
|
15
13
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
this.watcherActive = true;
|
|
21
|
-
// Initialize with current hash
|
|
22
|
-
this.lastKnownHash = await this.kgManager.calculateTodoMdHash(this.todoPath);
|
|
23
|
-
// Start polling for changes
|
|
24
|
-
this.pollInterval = setInterval(async () => {
|
|
25
|
-
try {
|
|
26
|
-
await this.checkForChanges();
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
console.error('Error checking TODO.md changes:', error);
|
|
30
|
-
}
|
|
31
|
-
}, intervalMs);
|
|
32
|
-
console.error(`[TodoFileWatcher] Started watching ${this.todoPath}`);
|
|
14
|
+
watch() {
|
|
15
|
+
throw new Error('TodoFileWatcher was removed - use mcp-shrimp-task-manager for task management');
|
|
33
16
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
this.watcherActive = false;
|
|
39
|
-
if (this.pollInterval) {
|
|
40
|
-
clearInterval(this.pollInterval);
|
|
41
|
-
this.pollInterval = null;
|
|
42
|
-
}
|
|
43
|
-
console.error(`[TodoFileWatcher] Stopped watching ${this.todoPath}`);
|
|
17
|
+
stop() {
|
|
18
|
+
throw new Error('TodoFileWatcher was removed - use mcp-shrimp-task-manager for task management');
|
|
44
19
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const detection = await this.kgManager.detectTodoChanges(this.todoPath);
|
|
50
|
-
if (detection.hasChanges) {
|
|
51
|
-
console.error(`[TodoFileWatcher] TODO.md changes detected`);
|
|
52
|
-
// Read the new content
|
|
53
|
-
let todoContent = '';
|
|
54
|
-
try {
|
|
55
|
-
todoContent = await fs.readFile(this.todoPath, 'utf-8');
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
console.error(`[TodoFileWatcher] Error reading TODO.md:`, error);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
// Parse changes and extract task modifications
|
|
62
|
-
const changes = await this.parseChanges(this.lastKnownHash, detection.currentHash, todoContent);
|
|
63
|
-
// Update sync state
|
|
64
|
-
await this.kgManager.updateSyncState({
|
|
65
|
-
lastSyncTimestamp: new Date().toISOString(),
|
|
66
|
-
todoMdHash: detection.currentHash,
|
|
67
|
-
syncStatus: changes.length > 0 ? 'pending' : 'synced',
|
|
68
|
-
lastModifiedBy: 'human',
|
|
69
|
-
version: (await this.kgManager.getSyncState()).version + 1
|
|
70
|
-
});
|
|
71
|
-
// Notify active intents about TODO changes
|
|
72
|
-
await this.notifyActiveIntents(todoContent, changes);
|
|
73
|
-
this.lastKnownHash = detection.currentHash;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async parseChanges(oldHash, newHash, todoContent) {
|
|
77
|
-
const changes = [];
|
|
78
|
-
// Simple change detection by analyzing the TODO content
|
|
79
|
-
// In a more sophisticated implementation, this would diff the actual content
|
|
80
|
-
const lines = todoContent.split('\n');
|
|
81
|
-
const taskLines = lines.filter(line => line.trim().match(/^-\s*\[[\sx]\]/) ||
|
|
82
|
-
line.trim().match(/^\d+\.\s*\[[\sx]\]/) ||
|
|
83
|
-
line.trim().match(/^##\s+/) // Section headers
|
|
84
|
-
);
|
|
85
|
-
// For now, we'll create a generic change record
|
|
86
|
-
if (oldHash !== newHash && taskLines.length > 0) {
|
|
87
|
-
changes.push({
|
|
88
|
-
type: 'modified',
|
|
89
|
-
taskId: `todo-change-${Date.now()}`,
|
|
90
|
-
description: 'TODO.md content modified externally',
|
|
91
|
-
details: {
|
|
92
|
-
taskCount: taskLines.length,
|
|
93
|
-
timestamp: new Date().toISOString(),
|
|
94
|
-
contentLength: todoContent.length
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
return changes;
|
|
99
|
-
}
|
|
100
|
-
async notifyActiveIntents(todoContent, changes) {
|
|
101
|
-
const activeIntents = await this.kgManager.getActiveIntents();
|
|
102
|
-
for (const intent of activeIntents) {
|
|
103
|
-
// Update TODO snapshot for each active intent
|
|
104
|
-
await this.kgManager.updateTodoSnapshot(intent.intentId, todoContent);
|
|
105
|
-
// Add a tool execution record for the TODO change
|
|
106
|
-
const changeDetails = changes.map(c => `${c.type}: ${c.description}`).join('; ');
|
|
107
|
-
await this.kgManager.addToolExecution(intent.intentId, 'todo_file_watcher_change_detected', { todoPath: this.todoPath }, {
|
|
108
|
-
changes: changes.length,
|
|
109
|
-
changeDetails,
|
|
110
|
-
todoContentLength: todoContent.length,
|
|
111
|
-
detectedAt: new Date().toISOString()
|
|
112
|
-
}, true, [], changes.map(c => c.taskId), undefined);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
async manualSync() {
|
|
116
|
-
const detection = await this.kgManager.detectTodoChanges(this.todoPath);
|
|
117
|
-
if (!detection.hasChanges) {
|
|
118
|
-
return {
|
|
119
|
-
changesDetected: false,
|
|
120
|
-
syncStatus: 'no_changes',
|
|
121
|
-
activeIntentsNotified: 0
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
let todoContent = '';
|
|
125
|
-
try {
|
|
126
|
-
todoContent = await fs.readFile(this.todoPath, 'utf-8');
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
return {
|
|
130
|
-
changesDetected: true,
|
|
131
|
-
syncStatus: 'error_reading_file',
|
|
132
|
-
activeIntentsNotified: 0
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
const changes = await this.parseChanges(this.lastKnownHash, detection.currentHash, todoContent);
|
|
136
|
-
await this.notifyActiveIntents(todoContent, changes);
|
|
137
|
-
await this.kgManager.updateSyncState({
|
|
138
|
-
lastSyncTimestamp: new Date().toISOString(),
|
|
139
|
-
todoMdHash: detection.currentHash,
|
|
140
|
-
syncStatus: 'synced',
|
|
141
|
-
lastModifiedBy: 'sync',
|
|
142
|
-
version: (await this.kgManager.getSyncState()).version + 1
|
|
143
|
-
});
|
|
144
|
-
this.lastKnownHash = detection.currentHash;
|
|
145
|
-
const activeIntents = await this.kgManager.getActiveIntents();
|
|
146
|
-
return {
|
|
147
|
-
changesDetected: true,
|
|
148
|
-
syncStatus: 'synced',
|
|
149
|
-
activeIntentsNotified: activeIntents.length
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
async getWatcherStatus() {
|
|
153
|
-
const syncState = await this.kgManager.getSyncState();
|
|
154
|
-
return {
|
|
155
|
-
isActive: this.watcherActive,
|
|
156
|
-
todoPath: this.todoPath,
|
|
157
|
-
lastKnownHash: this.lastKnownHash,
|
|
158
|
-
lastSyncTime: syncState.lastSyncTimestamp,
|
|
159
|
-
syncStatus: syncState.syncStatus
|
|
160
|
-
};
|
|
20
|
+
static create() {
|
|
21
|
+
throw new Error('TodoFileWatcher was removed - use mcp-shrimp-task-manager for task management');
|
|
161
22
|
}
|
|
162
23
|
}
|
|
24
|
+
export default TodoFileWatcher;
|
|
163
25
|
//# sourceMappingURL=todo-file-watcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-file-watcher.js","sourceRoot":"","sources":["../../../src/utils/todo-file-watcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"todo-file-watcher.js","sourceRoot":"","sources":["../../../src/utils/todo-file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,eAAe;IAC1B;QACE,OAAO,CAAC,IAAI,CACV,mEAAmE;YACjE,sGAAsG;YACtG,4CAA4C,CAC/C,CAAC;QACF,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,KAAK;QACH,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,IAAI;QACF,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAM;QACX,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;CACF;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree-sitter Integration for Enterprise DevOps Code Analysis
|
|
3
|
+
*
|
|
4
|
+
* Provides intelligent code analysis for multi-language DevOps stacks including:
|
|
5
|
+
* - Ansible playbooks and roles
|
|
6
|
+
* - Terraform/HCL infrastructure
|
|
7
|
+
* - Python microservices
|
|
8
|
+
* - Node.js applications
|
|
9
|
+
* - Container configurations
|
|
10
|
+
* - CI/CD pipelines
|
|
11
|
+
*
|
|
12
|
+
* Enterprise Features:
|
|
13
|
+
* - Secret detection in code
|
|
14
|
+
* - Architectural boundary validation
|
|
15
|
+
* - Multi-language dependency analysis
|
|
16
|
+
* - Security pattern recognition
|
|
17
|
+
*/
|
|
18
|
+
export interface CodeAnalysisResult {
|
|
19
|
+
language: string;
|
|
20
|
+
hasSecrets: boolean;
|
|
21
|
+
secrets: SecretMatch[];
|
|
22
|
+
imports: ImportAnalysis[];
|
|
23
|
+
functions: FunctionAnalysis[];
|
|
24
|
+
variables: VariableAnalysis[];
|
|
25
|
+
infraStructure: InfrastructureAnalysis[];
|
|
26
|
+
securityIssues: SecurityIssue[];
|
|
27
|
+
architecturalViolations: ArchitecturalViolation[];
|
|
28
|
+
}
|
|
29
|
+
export interface SecretMatch {
|
|
30
|
+
type: 'api_key' | 'password' | 'token' | 'private_key' | 'certificate' | 'credential';
|
|
31
|
+
value: string;
|
|
32
|
+
location: {
|
|
33
|
+
line: number;
|
|
34
|
+
column: number;
|
|
35
|
+
};
|
|
36
|
+
confidence: number;
|
|
37
|
+
context: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ImportAnalysis {
|
|
40
|
+
module: string;
|
|
41
|
+
type: 'import' | 'require' | 'include' | 'role' | 'module_call';
|
|
42
|
+
location: {
|
|
43
|
+
line: number;
|
|
44
|
+
column: number;
|
|
45
|
+
};
|
|
46
|
+
isExternal: boolean;
|
|
47
|
+
isDangerous: boolean;
|
|
48
|
+
reason?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface FunctionAnalysis {
|
|
51
|
+
name: string;
|
|
52
|
+
type: 'function' | 'method' | 'task' | 'resource' | 'service';
|
|
53
|
+
parameters: string[];
|
|
54
|
+
location: {
|
|
55
|
+
line: number;
|
|
56
|
+
column: number;
|
|
57
|
+
};
|
|
58
|
+
complexity: number;
|
|
59
|
+
securitySensitive: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface VariableAnalysis {
|
|
62
|
+
name: string;
|
|
63
|
+
type: 'var' | 'const' | 'let' | 'env' | 'secret' | 'config';
|
|
64
|
+
value?: string;
|
|
65
|
+
location: {
|
|
66
|
+
line: number;
|
|
67
|
+
column: number;
|
|
68
|
+
};
|
|
69
|
+
isSensitive: boolean;
|
|
70
|
+
scope: string;
|
|
71
|
+
}
|
|
72
|
+
export interface InfrastructureAnalysis {
|
|
73
|
+
resourceType: string;
|
|
74
|
+
name: string;
|
|
75
|
+
provider: 'aws' | 'gcp' | 'azure' | 'kubernetes' | 'docker' | 'openshift';
|
|
76
|
+
configuration: Record<string, any>;
|
|
77
|
+
securityRisks: string[];
|
|
78
|
+
location: {
|
|
79
|
+
line: number;
|
|
80
|
+
column: number;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export interface SecurityIssue {
|
|
84
|
+
type: 'hardcoded_secret' | 'dangerous_function' | 'insecure_config' | 'privilege_escalation';
|
|
85
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
86
|
+
message: string;
|
|
87
|
+
location: {
|
|
88
|
+
line: number;
|
|
89
|
+
column: number;
|
|
90
|
+
};
|
|
91
|
+
suggestion: string;
|
|
92
|
+
}
|
|
93
|
+
export interface ArchitecturalViolation {
|
|
94
|
+
type: 'layer_violation' | 'circular_dependency' | 'forbidden_import' | 'coupling_violation';
|
|
95
|
+
message: string;
|
|
96
|
+
location: {
|
|
97
|
+
line: number;
|
|
98
|
+
column: number;
|
|
99
|
+
};
|
|
100
|
+
suggestion: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Main Tree-sitter analyzer class for enterprise DevOps stacks
|
|
104
|
+
*/
|
|
105
|
+
export declare class TreeSitterAnalyzer {
|
|
106
|
+
private parsers;
|
|
107
|
+
private initialized;
|
|
108
|
+
constructor();
|
|
109
|
+
/**
|
|
110
|
+
* Initialize tree-sitter parsers with graceful fallback
|
|
111
|
+
*/
|
|
112
|
+
private initializeParsers;
|
|
113
|
+
private loadParser;
|
|
114
|
+
/**
|
|
115
|
+
* Analyze code file with tree-sitter intelligence
|
|
116
|
+
*/
|
|
117
|
+
analyzeFile(filePath: string, content?: string): Promise<CodeAnalysisResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Detect programming language from file extension and content
|
|
120
|
+
*/
|
|
121
|
+
private detectLanguage;
|
|
122
|
+
/**
|
|
123
|
+
* Perform intelligent analysis using tree-sitter AST
|
|
124
|
+
*/
|
|
125
|
+
private performIntelligentAnalysis;
|
|
126
|
+
/**
|
|
127
|
+
* Python-specific analysis for microservices
|
|
128
|
+
*/
|
|
129
|
+
private analyzePython;
|
|
130
|
+
/**
|
|
131
|
+
* JavaScript/TypeScript analysis for Node.js applications
|
|
132
|
+
*/
|
|
133
|
+
private analyzeJavaScript;
|
|
134
|
+
/**
|
|
135
|
+
* YAML analysis for Ansible, Kubernetes, Docker Compose
|
|
136
|
+
*/
|
|
137
|
+
private analyzeYAML;
|
|
138
|
+
/**
|
|
139
|
+
* Terraform/HCL analysis for infrastructure
|
|
140
|
+
*/
|
|
141
|
+
private analyzeTerraform;
|
|
142
|
+
/**
|
|
143
|
+
* Dockerfile analysis for container security
|
|
144
|
+
*/
|
|
145
|
+
private analyzeDockerfile;
|
|
146
|
+
/**
|
|
147
|
+
* Bash script analysis
|
|
148
|
+
*/
|
|
149
|
+
private analyzeBash;
|
|
150
|
+
/**
|
|
151
|
+
* JSON analysis for configuration files
|
|
152
|
+
*/
|
|
153
|
+
private analyzeJSON;
|
|
154
|
+
/**
|
|
155
|
+
* Universal secret detection across all languages
|
|
156
|
+
*/
|
|
157
|
+
private analyzeSecrets;
|
|
158
|
+
/**
|
|
159
|
+
* Fallback analysis using regex when tree-sitter fails
|
|
160
|
+
*/
|
|
161
|
+
private fallbackAnalysis;
|
|
162
|
+
private checkDangerousImport;
|
|
163
|
+
private extractPythonParameters;
|
|
164
|
+
private extractJSParameters;
|
|
165
|
+
private calculateComplexity;
|
|
166
|
+
private isSecuritySensitive;
|
|
167
|
+
private isSensitiveVariable;
|
|
168
|
+
private classifySecret;
|
|
169
|
+
private detectSecretPattern;
|
|
170
|
+
private isAnsibleFile;
|
|
171
|
+
private isKubernetesFile;
|
|
172
|
+
private isDockerComposeFile;
|
|
173
|
+
private analyzeAnsibleYAML;
|
|
174
|
+
private analyzeKubernetesYAML;
|
|
175
|
+
private analyzeDockerComposeYAML;
|
|
176
|
+
private analyzeTerraformSecurity;
|
|
177
|
+
private findLineNumber;
|
|
178
|
+
private isSecuritySensitiveTask;
|
|
179
|
+
private isDangerousAnsibleRole;
|
|
180
|
+
private analyzeKubernetesSecurityRisks;
|
|
181
|
+
private analyzeDockerComposeSecurityRisks;
|
|
182
|
+
}
|
|
183
|
+
export declare function createTreeSitterAnalyzer(): TreeSitterAnalyzer;
|
|
184
|
+
export declare const analyzer: TreeSitterAnalyzer;
|
|
185
|
+
//# sourceMappingURL=tree-sitter-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree-sitter-analyzer.d.ts","sourceRoot":"","sources":["../../../src/utils/tree-sitter-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqCH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,uBAAuB,EAAE,sBAAsB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC;IAChE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC1E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;IAC7F,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,WAAW,CAAS;;IAM5B;;OAEG;YACW,iBAAiB;YAmBjB,UAAU;IAyBxB;;OAEG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmBzF;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;YACW,0BAA0B;IAoDxC;;OAEG;YACW,aAAa;IAuE3B;;OAEG;YACW,iBAAiB;IAqE/B;;OAEG;YACW,WAAW;IAmBzB;;OAEG;YACW,gBAAgB;IAkC9B;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;YACW,WAAW;IA4BzB;;OAEG;YACW,WAAW;IA6BzB;;OAEG;YACW,cAAc;IA6B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;YAwDlB,qBAAqB;YAgFrB,wBAAwB;IAwEtC,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,8BAA8B;IAqCtC,OAAO,CAAC,iCAAiC;CAyC1C;AAGD,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAGD,eAAO,MAAM,QAAQ,oBAA2B,CAAC"}
|