mcp-adr-analysis-server 2.0.3 → 2.0.6
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/dist/src/index.d.ts +28 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +703 -325
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/adr-suggestion-prompts.d.ts +1 -0
- package/dist/src/prompts/adr-suggestion-prompts.d.ts.map +1 -1
- package/dist/src/prompts/adr-suggestion-prompts.js +14 -6
- package/dist/src/prompts/adr-suggestion-prompts.js.map +1 -1
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +31 -15
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.d.ts +4 -1
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +72 -114
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/content-masking-tool.d.ts +7 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
- package/dist/src/tools/content-masking-tool.js +134 -17
- package/dist/src/tools/content-masking-tool.js.map +1 -1
- package/dist/src/tools/deployment-guidance-tool.d.ts +21 -0
- package/dist/src/tools/deployment-guidance-tool.d.ts.map +1 -0
- package/dist/src/tools/deployment-guidance-tool.js +289 -0
- package/dist/src/tools/deployment-guidance-tool.js.map +1 -0
- 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 +209 -25
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/research-question-tool.d.ts +4 -0
- package/dist/src/tools/research-question-tool.d.ts.map +1 -1
- package/dist/src/tools/research-question-tool.js +42 -4
- package/dist/src/tools/research-question-tool.js.map +1 -1
- package/dist/src/tools/rule-generation-tool.d.ts +4 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
- package/dist/src/tools/rule-generation-tool.js +136 -16
- package/dist/src/tools/rule-generation-tool.js.map +1 -1
- package/dist/src/tools/todo-management-tool.d.ts +166 -0
- package/dist/src/tools/todo-management-tool.d.ts.map +1 -0
- package/dist/src/tools/todo-management-tool.js +472 -0
- package/dist/src/tools/todo-management-tool.js.map +1 -0
- package/dist/src/types/conversation-context.d.ts +93 -0
- package/dist/src/types/conversation-context.d.ts.map +1 -0
- package/dist/src/types/conversation-context.js +101 -0
- package/dist/src/types/conversation-context.js.map +1 -0
- package/dist/src/utils/actual-file-operations.d.ts +40 -0
- package/dist/src/utils/actual-file-operations.d.ts.map +1 -0
- package/dist/src/utils/actual-file-operations.js +309 -0
- package/dist/src/utils/actual-file-operations.js.map +1 -0
- package/dist/src/utils/adr-discovery.d.ts +36 -0
- package/dist/src/utils/adr-discovery.d.ts.map +1 -0
- package/dist/src/utils/adr-discovery.js +237 -0
- package/dist/src/utils/adr-discovery.js.map +1 -0
- package/dist/src/utils/adr-suggestions.d.ts +2 -1
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
- package/dist/src/utils/adr-suggestions.js +8 -2
- package/dist/src/utils/adr-suggestions.js.map +1 -1
- package/dist/src/utils/apply-cot-enhancement.d.ts +46 -0
- package/dist/src/utils/apply-cot-enhancement.d.ts.map +1 -0
- package/dist/src/utils/apply-cot-enhancement.js +165 -0
- package/dist/src/utils/apply-cot-enhancement.js.map +1 -0
- package/dist/src/utils/chain-of-thought-template.d.ts +48 -0
- package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -0
- package/dist/src/utils/chain-of-thought-template.js +191 -0
- package/dist/src/utils/chain-of-thought-template.js.map +1 -0
- package/dist/src/utils/deployment-analysis.d.ts +1 -0
- package/dist/src/utils/deployment-analysis.d.ts.map +1 -1
- package/dist/src/utils/deployment-analysis.js +82 -39
- package/dist/src/utils/deployment-analysis.js.map +1 -1
- package/dist/src/utils/environment-analysis.d.ts +6 -1
- package/dist/src/utils/environment-analysis.d.ts.map +1 -1
- package/dist/src/utils/environment-analysis.js +176 -87
- package/dist/src/utils/environment-analysis.js.map +1 -1
- package/dist/src/utils/file-system.d.ts +1 -0
- package/dist/src/utils/file-system.d.ts.map +1 -1
- package/dist/src/utils/file-system.js +24 -47
- package/dist/src/utils/file-system.js.map +1 -1
- package/dist/src/utils/prompt-execution.d.ts.map +1 -1
- package/dist/src/utils/prompt-execution.js +67 -3
- package/dist/src/utils/prompt-execution.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts +4 -0
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +275 -84
- 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 +134 -38
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/rule-generation.d.ts +2 -1
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +65 -36
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/package.json +5 -5
|
@@ -15,6 +15,7 @@ export async function suggestAdrs(args) {
|
|
|
15
15
|
const { projectPath = process.cwd(), analysisType = 'comprehensive', beforeCode, afterCode, changeDescription, commitMessages, existingAdrs, enhancedMode = true, // Default to enhanced mode
|
|
16
16
|
learningEnabled = true, // Default to learning enabled
|
|
17
17
|
knowledgeEnhancement = true, // Default to knowledge enhancement
|
|
18
|
+
conversationContext, // Context from calling LLM
|
|
18
19
|
} = args;
|
|
19
20
|
try {
|
|
20
21
|
const { analyzeImplicitDecisions, analyzeCodeChanges } = await import('../utils/adr-suggestions.js');
|
|
@@ -48,7 +49,7 @@ export async function suggestAdrs(args) {
|
|
|
48
49
|
if (learningEnabled) {
|
|
49
50
|
try {
|
|
50
51
|
const reflexionConfig = createToolReflexionConfig('suggest_adrs');
|
|
51
|
-
const baseResult = await analyzeImplicitDecisions(projectPath, existingAdrs);
|
|
52
|
+
const baseResult = await analyzeImplicitDecisions(projectPath, existingAdrs, conversationContext);
|
|
52
53
|
const reflexionResult = await executeWithReflexion({
|
|
53
54
|
prompt: baseResult.analysisPrompt + knowledgeContext,
|
|
54
55
|
instructions: baseResult.instructions,
|
|
@@ -65,12 +66,12 @@ export async function suggestAdrs(args) {
|
|
|
65
66
|
}
|
|
66
67
|
catch (error) {
|
|
67
68
|
console.error('[WARNING] Reflexion enhancement failed:', error);
|
|
68
|
-
const result = await analyzeImplicitDecisions(projectPath, existingAdrs);
|
|
69
|
+
const result = await analyzeImplicitDecisions(projectPath, existingAdrs, conversationContext);
|
|
69
70
|
enhancedPrompt = result.analysisPrompt + knowledgeContext;
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
else {
|
|
73
|
-
const result = await analyzeImplicitDecisions(projectPath, existingAdrs);
|
|
74
|
+
const result = await analyzeImplicitDecisions(projectPath, existingAdrs, conversationContext);
|
|
74
75
|
enhancedPrompt = result.analysisPrompt + knowledgeContext;
|
|
75
76
|
enhancementInfo = `
|
|
76
77
|
## Enhancement Status
|
|
@@ -81,7 +82,7 @@ export async function suggestAdrs(args) {
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
else {
|
|
84
|
-
const result = await analyzeImplicitDecisions(projectPath, existingAdrs);
|
|
85
|
+
const result = await analyzeImplicitDecisions(projectPath, existingAdrs, conversationContext);
|
|
85
86
|
enhancedPrompt = result.analysisPrompt;
|
|
86
87
|
enhancementInfo = `
|
|
87
88
|
## Enhancement Status
|
|
@@ -90,7 +91,7 @@ export async function suggestAdrs(args) {
|
|
|
90
91
|
|
|
91
92
|
`;
|
|
92
93
|
}
|
|
93
|
-
const baseResult = await analyzeImplicitDecisions(projectPath, existingAdrs);
|
|
94
|
+
const baseResult = await analyzeImplicitDecisions(projectPath, existingAdrs, conversationContext);
|
|
94
95
|
return {
|
|
95
96
|
content: [
|
|
96
97
|
{
|
|
@@ -292,7 +293,7 @@ ${memoryResult.prompt}
|
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
// Step 3: Get the base analysis
|
|
295
|
-
const implicitResult = await analyzeImplicitDecisions(projectPath, existingAdrs);
|
|
296
|
+
const implicitResult = await analyzeImplicitDecisions(projectPath, existingAdrs, conversationContext);
|
|
296
297
|
// Step 4: Apply Reflexion execution if learning is enabled
|
|
297
298
|
if (learningEnabled) {
|
|
298
299
|
try {
|
|
@@ -575,112 +576,80 @@ ${writeFilePrompt.prompt}
|
|
|
575
576
|
}
|
|
576
577
|
}
|
|
577
578
|
/**
|
|
578
|
-
*
|
|
579
|
+
* Discover existing ADRs in the project using internal file system tools
|
|
579
580
|
*/
|
|
580
581
|
export async function discoverExistingAdrs(args) {
|
|
581
|
-
const { adrDirectory = 'docs/adrs', includeContent = false } = args;
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
- Look for files with \`.md\` extension
|
|
593
|
-
- Check for common ADR naming patterns (e.g., \`ADR-001-\`, \`001-\`, etc.)
|
|
594
|
-
|
|
595
|
-
2. **Content Analysis** ${includeContent ? '(with content)' : '(metadata only)'}
|
|
596
|
-
- Read each ADR file to extract metadata
|
|
597
|
-
- Identify title, status, date, and key information
|
|
598
|
-
- ${includeContent ? 'Extract full content for analysis' : 'Focus on headers and metadata'}
|
|
599
|
-
|
|
600
|
-
3. **ADR Inventory Generation**
|
|
601
|
-
- Create a list of all discovered ADRs
|
|
602
|
-
- Extract titles, statuses, and dates
|
|
603
|
-
- Generate a summary of the ADR collection
|
|
604
|
-
|
|
605
|
-
## Search Patterns
|
|
606
|
-
|
|
607
|
-
Look for files matching these patterns:
|
|
608
|
-
- \`${adrDirectory}/**/*.md\`
|
|
609
|
-
- Files starting with numbers (e.g., \`001-\`, \`0001-\`)
|
|
610
|
-
- Files containing "ADR" in the name
|
|
611
|
-
- Files with architectural decision keywords
|
|
612
|
-
|
|
613
|
-
## Alternative Locations
|
|
614
|
-
|
|
615
|
-
If no ADRs are found in \`${adrDirectory}\`, also check:
|
|
616
|
-
- \`docs/\` directory
|
|
617
|
-
- \`documentation/\` directory
|
|
618
|
-
- \`decisions/\` directory
|
|
619
|
-
- Root directory for isolated ADR files
|
|
582
|
+
const { adrDirectory = 'docs/adrs', includeContent = false, projectPath = process.cwd() } = args;
|
|
583
|
+
try {
|
|
584
|
+
// Use the new ADR discovery utility
|
|
585
|
+
const { discoverAdrsInDirectory } = await import('../utils/adr-discovery.js');
|
|
586
|
+
const discoveryResult = await discoverAdrsInDirectory(adrDirectory, includeContent, projectPath);
|
|
587
|
+
// Format the results for MCP response
|
|
588
|
+
return {
|
|
589
|
+
content: [
|
|
590
|
+
{
|
|
591
|
+
type: 'text',
|
|
592
|
+
text: `# ADR Discovery Results
|
|
620
593
|
|
|
621
|
-
##
|
|
594
|
+
## Discovery Summary
|
|
595
|
+
- **Directory**: ${discoveryResult.directory}
|
|
596
|
+
- **Total ADRs Found**: ${discoveryResult.totalAdrs}
|
|
597
|
+
- **Include Content**: ${includeContent ? 'Yes' : 'No (metadata only)'}
|
|
622
598
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
599
|
+
## Discovered ADRs
|
|
600
|
+
|
|
601
|
+
${discoveryResult.adrs.length > 0 ?
|
|
602
|
+
discoveryResult.adrs.map(adr => `
|
|
603
|
+
### ${adr.title}
|
|
604
|
+
- **File**: ${adr.filename}
|
|
605
|
+
- **Status**: ${adr.status}
|
|
606
|
+
- **Date**: ${adr.date || 'Not specified'}
|
|
607
|
+
- **Path**: ${adr.path}
|
|
608
|
+
${adr.metadata?.number ? `- **Number**: ${adr.metadata.number}` : ''}
|
|
609
|
+
${adr.metadata?.category ? `- **Category**: ${adr.metadata.category}` : ''}
|
|
610
|
+
${adr.metadata?.tags?.length ? `- **Tags**: ${adr.metadata.tags.join(', ')}` : ''}
|
|
611
|
+
${includeContent && adr.content ? `
|
|
612
|
+
|
|
613
|
+
#### Content Preview
|
|
614
|
+
\`\`\`markdown
|
|
615
|
+
${adr.content.slice(0, 500)}${adr.content.length > 500 ? '...' : ''}
|
|
616
|
+
\`\`\`
|
|
617
|
+
` : ''}
|
|
618
|
+
`).join('\n')
|
|
619
|
+
: 'No ADRs found in the specified directory.'}
|
|
630
620
|
|
|
631
|
-
|
|
632
|
-
2. **Identify ADRs**: Look for markdown files with ADR patterns
|
|
633
|
-
3. **Extract Metadata**: Get title, status, date from each ADR
|
|
634
|
-
4. **Generate Summary**: Create categorized summary of findings
|
|
635
|
-
5. **Provide Recommendations**: Suggest next steps based on discovery
|
|
621
|
+
## Summary Statistics
|
|
636
622
|
|
|
637
|
-
|
|
623
|
+
### By Status
|
|
624
|
+
${Object.entries(discoveryResult.summary.byStatus)
|
|
625
|
+
.map(([status, count]) => `- **${status}**: ${count}`)
|
|
626
|
+
.join('\n') || 'No status information available'}
|
|
638
627
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
const executionResult = await executePromptWithFallback(discoveryPrompt, instructions, {
|
|
644
|
-
temperature: 0.1,
|
|
645
|
-
maxTokens: 4000,
|
|
646
|
-
systemPrompt: `You are an expert in architectural documentation analysis and file system operations.
|
|
647
|
-
Scan the specified directory to discover existing ADRs and provide comprehensive analysis.
|
|
648
|
-
Focus on extracting accurate metadata and providing actionable insights about the ADR collection.
|
|
649
|
-
Use appropriate file system tools to scan directories and read file contents.`,
|
|
650
|
-
responseFormat: 'text'
|
|
651
|
-
});
|
|
652
|
-
if (executionResult.isAIGenerated) {
|
|
653
|
-
// AI execution successful - return actual ADR discovery results
|
|
654
|
-
return formatMCPResponse({
|
|
655
|
-
...executionResult,
|
|
656
|
-
content: `# ADR Discovery Results
|
|
657
|
-
|
|
658
|
-
## Discovery Information
|
|
659
|
-
- **ADR Directory**: ${adrDirectory}
|
|
660
|
-
- **Include Content**: ${includeContent ? 'Yes' : 'No (metadata only)'}
|
|
628
|
+
### By Category
|
|
629
|
+
${Object.entries(discoveryResult.summary.byCategory)
|
|
630
|
+
.map(([category, count]) => `- **${category}**: ${count}`)
|
|
631
|
+
.join('\n') || 'No category information available'}
|
|
661
632
|
|
|
662
|
-
##
|
|
633
|
+
## Recommendations
|
|
663
634
|
|
|
664
|
-
${
|
|
635
|
+
${discoveryResult.recommendations.map(rec => `- ${rec}`).join('\n')}
|
|
665
636
|
|
|
666
637
|
## Next Steps
|
|
667
638
|
|
|
668
|
-
Based on the discovered ADRs:
|
|
639
|
+
Based on the discovered ADRs, you can:
|
|
669
640
|
|
|
670
|
-
1. **
|
|
671
|
-
2. **
|
|
672
|
-
3. **
|
|
673
|
-
4. **Generate New ADRs**: Use discovered patterns to suggest new ADRs
|
|
674
|
-
5. **Create ADR Index**: Maintain an up-to-date catalog of all ADRs
|
|
641
|
+
1. **Analyze for Missing Decisions**: Use the \`suggest_adrs\` tool with the discovered ADR titles
|
|
642
|
+
2. **Generate Implementation TODOs**: Use the \`generate_adr_todo\` tool
|
|
643
|
+
3. **Create New ADRs**: Use the \`generate_adr_from_decision\` tool for new decisions
|
|
675
644
|
|
|
676
|
-
|
|
645
|
+
### Example Commands
|
|
677
646
|
|
|
678
647
|
To suggest new ADRs based on discovered ones:
|
|
679
648
|
\`\`\`json
|
|
680
649
|
{
|
|
681
650
|
"tool": "suggest_adrs",
|
|
682
651
|
"args": {
|
|
683
|
-
"existingAdrs":
|
|
652
|
+
"existingAdrs": ${JSON.stringify(discoveryResult.adrs.map(adr => adr.title))},
|
|
684
653
|
"analysisType": "comprehensive"
|
|
685
654
|
}
|
|
686
655
|
}
|
|
@@ -696,32 +665,21 @@ To generate a todo list from discovered ADRs:
|
|
|
696
665
|
}
|
|
697
666
|
}
|
|
698
667
|
\`\`\`
|
|
699
|
-
`,
|
|
700
|
-
});
|
|
701
|
-
}
|
|
702
|
-
else {
|
|
703
|
-
// Fallback to prompt-only mode
|
|
704
|
-
return {
|
|
705
|
-
content: [
|
|
706
|
-
{
|
|
707
|
-
type: 'text',
|
|
708
|
-
text: `# ADR Discovery: AI-Driven Scan
|
|
709
|
-
|
|
710
|
-
## Instructions for AI Agent
|
|
711
668
|
|
|
712
|
-
|
|
669
|
+
## Raw Discovery Data
|
|
713
670
|
|
|
714
|
-
|
|
671
|
+
For programmatic use, the raw discovery data is:
|
|
715
672
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
},
|
|
723
|
-
],
|
|
673
|
+
\`\`\`json
|
|
674
|
+
${JSON.stringify(discoveryResult, null, 2)}
|
|
675
|
+
\`\`\`
|
|
676
|
+
`
|
|
677
|
+
}
|
|
678
|
+
]
|
|
724
679
|
};
|
|
725
680
|
}
|
|
681
|
+
catch (error) {
|
|
682
|
+
throw new McpAdrError(`Failed to discover ADRs: ${error instanceof Error ? error.message : String(error)}`, 'DISCOVERY_ERROR');
|
|
683
|
+
}
|
|
726
684
|
}
|
|
727
685
|
//# sourceMappingURL=adr-suggestion-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-suggestion-tool.js","sourceRoot":"","sources":["../../../src/tools/adr-suggestion-tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adr-suggestion-tool.js","sourceRoot":"","sources":["../../../src/tools/adr-suggestion-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE7F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAYjC;IACC,MAAM,EACJ,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAC3B,YAAY,GAAG,eAAe,EAC9B,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,YAAY,GAAG,IAAI,EAAE,2BAA2B;IAChD,eAAe,GAAG,IAAI,EAAE,8BAA8B;IACtD,oBAAoB,GAAG,IAAI,EAAE,mCAAmC;IAChE,mBAAmB,EAAE,2BAA2B;MACjD,GAAG,IAAI,CAAC;IAET,IAAI,CAAC;QACH,MAAM,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CACnE,6BAA6B,CAC9B,CAAC;QAEF,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,IAAI,eAAe,GAAG,EAAE,CAAC;gBAEzB,gCAAgC;gBAChC,IAAI,YAAY,IAAI,CAAC,oBAAoB,IAAI,eAAe,CAAC,EAAE,CAAC;oBAC9D,IAAI,gBAAgB,GAAG,EAAE,CAAC;oBAE1B,4DAA4D;oBAC5D,IAAI,oBAAoB,EAAE,CAAC;wBACzB,IAAI,CAAC;4BACH,MAAM,eAAe,GAAG,MAAM,8BAA8B,CAAC;gCAC3D,WAAW;gCACX,YAAY,EAAE,EAAE;gCAChB,QAAQ,EAAE,EAAE;gCACZ,WAAW,EAAE,6BAA6B;6BAC3C,EAAE;gCACD,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;gCAC1C,KAAK,EAAE,OAAO;gCACd,YAAY,EAAE,IAAI;6BACnB,CAAC,CAAC;4BAEH,gBAAgB,GAAG,+BAA+B,eAAe,CAAC,MAAM,IAAI,CAAC;wBAC/E,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;oBAED,4BAA4B;oBAC5B,IAAI,eAAe,EAAE,CAAC;wBACpB,IAAI,CAAC;4BACH,MAAM,eAAe,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;4BAClE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;4BAElG,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC;gCACjD,MAAM,EAAE,UAAU,CAAC,cAAc,GAAG,gBAAgB;gCACpD,YAAY,EAAE,UAAU,CAAC,YAAY;gCACrC,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE;6BAC3E,EAAE,eAAe,CAAC,CAAC;4BAEpB,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC;4BACxC,eAAe,GAAG;;8BAEF,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;;CAI9E,CAAC;wBACU,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;4BAChE,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;4BAC9F,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;wBAC5D,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;wBAC9F,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;wBAC1D,eAAe,GAAG;;8BAEA,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;CAG9E,CAAC;oBACQ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;oBAC9F,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;oBACvC,eAAe,GAAG;;;;;CAK3B,CAAC;gBACM,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;gBAElG,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;;EAElB,eAAe;;EAEf,UAAU,CAAC,YAAY;;;;EAIvB,cAAc;;;;;;;;;;;;;;;;CAgBf;yBACY;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACpD,MAAM,IAAI,WAAW,CACnB,4EAA4E,EAC5E,eAAe,CAChB,CAAC;gBACJ,CAAC;gBAED,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,IAAI,eAAe,GAAG,EAAE,CAAC;gBAEzB,gCAAgC;gBAChC,IAAI,YAAY,IAAI,CAAC,oBAAoB,IAAI,eAAe,CAAC,EAAE,CAAC;oBAC9D,IAAI,gBAAgB,GAAG,EAAE,CAAC;oBAE1B,qDAAqD;oBACrD,IAAI,oBAAoB,EAAE,CAAC;wBACzB,IAAI,CAAC;4BACH,MAAM,eAAe,GAAG,MAAM,8BAA8B,CAAC;gCAC3D,WAAW,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;gCACzC,YAAY,EAAE,EAAE;gCAChB,QAAQ,EAAE,EAAE;gCACZ,WAAW,EAAE,sBAAsB;6BACpC,EAAE;gCACD,OAAO,EAAE,CAAC,YAAY,EAAE,0BAA0B,CAAC;gCACnD,KAAK,EAAE,OAAO;gCACd,YAAY,EAAE,IAAI;6BACnB,CAAC,CAAC;4BAEH,gBAAgB,GAAG,+BAA+B,eAAe,CAAC,MAAM,IAAI,CAAC;wBAC/E,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;wBACjE,CAAC;oBACH,CAAC;oBAED,4BAA4B;oBAC5B,IAAI,eAAe,EAAE,CAAC;wBACpB,IAAI,CAAC;4BACH,MAAM,eAAe,GAAG,yBAAyB,CAAC,cAAc,EAAE;gCAChE,kBAAkB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC;6BAC9D,CAAC,CAAC;4BAEH,MAAM,UAAU,GAAG,MAAM,kBAAkB,CACzC,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,CACf,CAAC;4BAEF,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC;gCACjD,MAAM,EAAE,UAAU,CAAC,cAAc,GAAG,gBAAgB;gCACpD,YAAY,EAAE,UAAU,CAAC,YAAY;gCACrC,OAAO,EAAE;oCACP,YAAY,EAAE,cAAc;oCAC5B,iBAAiB;oCACjB,iBAAiB,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM;iCAC5C;6BACF,EAAE,eAAe,CAAC,CAAC;4BAEpB,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC;4BACxC,eAAe,GAAG;;8BAEF,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;;CAI9E,CAAC;wBACU,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;4BAChE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,CACf,CAAC;4BACF,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;wBAC5D,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,CACf,CAAC;wBACF,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;wBAC1D,eAAe,GAAG;;8BAEA,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;CAG9E,CAAC;oBACQ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,CACf,CAAC;oBACF,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;oBACvC,eAAe,GAAG;;;;;CAK3B,CAAC;gBACM,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CACzC,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,CACf,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;;EAElB,eAAe;;EAEf,UAAU,CAAC,YAAY;;;;EAIvB,cAAc;;;;;;;;;;;;;;;;CAgBf;yBACY;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAC1B,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAE1B,wDAAwD;gBACxD,IAAI,oBAAoB,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,MAAM,8BAA8B,CAAC;4BAC3D,WAAW;4BACX,YAAY,EAAE,EAAE,EAAE,qCAAqC;4BACvD,QAAQ,EAAE,EAAE;4BACZ,WAAW,EAAE,uBAAuB;4BACpC,YAAY,EAAE,YAAY,IAAI,EAAE;yBACjC,EAAE;4BACD,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC;4BAC3D,KAAK,EAAE,cAAc;4BACrB,YAAY,EAAE,IAAI;yBACnB,CAAC,CAAC;wBAEH,gBAAgB,GAAG;;;;;EAK7B,eAAe,CAAC,MAAM;;;CAGvB,CAAC;oBACQ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;wBAC/D,gBAAgB,GAAG,6CAA6C,CAAC;oBACnE,CAAC;gBACH,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACH,4DAA4D;wBAC5D,MAAM,YAAY,GAAG,MAAM,wBAAwB,CACjD,gBAAgB,EAChB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,EAC5D,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAC3C,CAAC;wBAEF,gBAAgB,GAAG;;;;;EAK7B,YAAY,CAAC,MAAM;;;CAGpB,CAAC;oBACQ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;wBACrE,gBAAgB,GAAG,yCAAyC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBAED,gCAAgC;gBAChC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;gBAEtG,2DAA2D;gBAC3D,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,yBAAyB,CAAC,cAAc,EAAE;4BAChE,eAAe,EAAE,UAAU;4BAC3B,kBAAkB,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,SAAS,CAAC;4BAC5D,YAAY,EAAE,GAAG;yBAClB,CAAC,CAAC;wBAEH,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC;4BACjD,MAAM,EAAE,cAAc,CAAC,cAAc;4BACrC,YAAY,EAAE,cAAc,CAAC,YAAY;4BACzC,OAAO,EAAE;gCACP,WAAW;gCACX,YAAY,EAAE,eAAe;gCAC7B,YAAY;gCACZ,iBAAiB,EAAE,oBAAoB;gCACvC,eAAe,EAAE,IAAI;6BACtB;yBACF,EAAE,eAAe,CAAC,CAAC;wBAEpB,cAAc,GAAG;;;EAG3B,eAAe,CAAC,MAAM;;;CAGvB,CAAC;oBACQ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;wBAC9D,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;oBACjD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC;gBACjD,CAAC;gBAED,mEAAmE;gBACnE,MAAM,eAAe,GAAG,MAAM,0BAA0B,CACtD,cAAc,EACd,cAAc,CAAC,YAAY,EAC3B;oBACE,WAAW,EAAE,GAAG;oBAChB,SAAS,EAAE,IAAI;iBAChB,CACF,CAAC;gBAEF,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC;oBAClC,2DAA2D;oBAC3D,OAAO,iBAAiB,CAAC;wBACvB,GAAG,eAAe;wBAClB,OAAO,EAAE;;;8BAGS,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;4BACnD,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;uBACjD,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;sBAG1C,WAAW;uBACV,YAAY,EAAE,MAAM,IAAI,CAAC;;;EAG9C,gBAAgB;;EAEhB,gBAAgB;;;;EAIhB,eAAe,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BxB;qBACU,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,+BAA+B;oBAC/B,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE;;;;;8BAKQ,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;4BACnD,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;uBACjD,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;;;sBAG1C,WAAW;uBACV,YAAY,EAAE,MAAM,IAAI,CAAC;;;EAG9C,gBAAgB;;EAEhB,gBAAgB;;;;EAIhB,cAAc,CAAC,YAAY;;;;EAI3B,cAAc;;;;;;;;;;;;;;;;;;;;CAoBf;6BACc;yBACF;qBACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED;gBACE,MAAM,IAAI,WAAW,CAAC,0BAA0B,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CACnB,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACnF,kBAAkB,CACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAY7C;IACC,MAAM,EACJ,YAAY,EACZ,cAAc,GAAG,QAAQ,EACzB,YAAY,GAAG,EAAE,EACjB,YAAY,GAAG,WAAW,GAC3B,GAAG,IAAI,CAAC;IAET,IAAI,CAAC;QACH,MAAM,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CACzF,6BAA6B,CAC9B,CAAC;QAEF,IACE,CAAC,YAAY,CAAC,KAAK;YACnB,CAAC,YAAY,CAAC,OAAO;YACrB,CAAC,YAAY,CAAC,QAAQ;YACtB,CAAC,YAAY,CAAC,YAAY,EAC1B,CAAC;YACD,MAAM,IAAI,WAAW,CACnB,uEAAuE,EACvE,eAAe,CAChB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAEzF,8BAA8B;QAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,QAAQ,EAAE,CAAC;QAE/C,4CAA4C;QAC5C,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,MAAM,0BAA0B,CACtD,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,YAAY,EACnB;YACE,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,MAAM;SACvB,CACF,CAAC;QAEF,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC;YAClC,sDAAsD;YACtD,OAAO,iBAAiB,CAAC;gBACvB,GAAG,eAAe;gBAClB,OAAO,EAAE,oBAAoB,YAAY,CAAC,KAAK;;;oBAGnC,SAAS;kBACX,QAAQ;mBACP,QAAQ;yBACF,cAAc,CAAC,WAAW,EAAE;;;;EAInD,eAAe,CAAC,OAAO;;;;;;;;cAQX,YAAY;;;;;YAKd,QAAQ;KACf,eAAe,CAAC,OAAO;;;;;;aAMf,QAAQ;;;;;;;;;;;;;;;;;yBAiBI,cAAc,CAAC,WAAW,EAAE;mCAClB,SAAS;CAC3C;aACM,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YAC/E,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5D,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YAE/E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qBAAqB,YAAY,CAAC,KAAK;;EAEvD,MAAM,CAAC,YAAY;;;oBAGD,SAAS;kBACX,QAAQ;mBACP,QAAQ;yBACF,cAAc,CAAC,WAAW,EAAE;;;EAGnD,eAAe,CAAC,MAAM;;;;EAItB,MAAM,CAAC,gBAAgB;;;;;;EAMvB,eAAe,CAAC,MAAM;;;CAGvB;qBACU;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CACnB,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACnF,kBAAkB,CACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAI1C;IACC,MAAM,EACJ,YAAY,GAAG,WAAW,EAC1B,cAAc,GAAG,KAAK,EACtB,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAC5B,GAAG,IAAI,CAAC;IAET,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAE9E,MAAM,eAAe,GAAG,MAAM,uBAAuB,CACnD,YAAY,EACZ,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,sCAAsC;QACtC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;;;mBAGG,eAAe,CAAC,SAAS;0BAClB,eAAe,CAAC,SAAS;yBAC1B,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB;;;;EAIpE,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACjC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;MAC5B,GAAG,CAAC,KAAK;cACD,GAAG,CAAC,QAAQ;gBACV,GAAG,CAAC,MAAM;cACZ,GAAG,CAAC,IAAI,IAAI,eAAe;cAC3B,GAAG,CAAC,IAAI;EACpB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;EAClE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;EACxE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;EAC/E,cAAc,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;;;;EAIhC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;;CAElE,CAAC,CAAC,CAAC,EAAE;CACL,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACX,CAAC,CAAC,2CACJ;;;;;EAKE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;yBAC/C,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,MAAM,OAAO,KAAK,EAAE,CAAC;yBACrD,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAiC;;;EAGhD,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;yBACjD,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,QAAQ,OAAO,KAAK,EAAE,CAAC;yBACzD,IAAI,CAAC,IAAI,CAAC,IAAI,mCAAmC;;;;EAIlD,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;sBAiB7C,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;uBAWzD,YAAY;;;;;;;;;;;EAWjC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;;CAEzC;iBACQ;aACF;SACF,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CACnB,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACpF,iBAAiB,CAClB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tool for content masking and sensitive information detection
|
|
3
3
|
* Implements prompt-driven security analysis
|
|
4
|
+
* Enhanced with Generated Knowledge Prompting (GKP) for security and privacy expertise
|
|
4
5
|
*/
|
|
5
6
|
/**
|
|
6
7
|
* Analyze content for sensitive information
|
|
8
|
+
* Enhanced with Generated Knowledge Prompting for security and privacy expertise
|
|
7
9
|
*/
|
|
8
10
|
export declare function analyzeContentSecurity(args: {
|
|
9
11
|
content: string;
|
|
10
12
|
contentType?: 'code' | 'documentation' | 'configuration' | 'logs' | 'general';
|
|
11
13
|
userDefinedPatterns?: string[];
|
|
14
|
+
knowledgeEnhancement?: boolean;
|
|
15
|
+
enhancedMode?: boolean;
|
|
12
16
|
}): Promise<any>;
|
|
13
17
|
/**
|
|
14
18
|
* Generate masking instructions for detected sensitive content
|
|
19
|
+
* Enhanced with Generated Knowledge Prompting for security and privacy expertise
|
|
15
20
|
*/
|
|
16
21
|
export declare function generateContentMasking(args: {
|
|
17
22
|
content: string;
|
|
@@ -27,6 +32,8 @@ export declare function generateContentMasking(args: {
|
|
|
27
32
|
suggestedMask?: string;
|
|
28
33
|
}>;
|
|
29
34
|
maskingStrategy?: 'full' | 'partial' | 'placeholder' | 'environment';
|
|
35
|
+
knowledgeEnhancement?: boolean;
|
|
36
|
+
enhancedMode?: boolean;
|
|
30
37
|
}): Promise<any>;
|
|
31
38
|
/**
|
|
32
39
|
* Configure custom sensitive patterns for a project
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-masking-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/content-masking-tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"content-masking-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/content-masking-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9E,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CAuHf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,KAAK,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;IACrE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CA4Gf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GAAG,OAAO,CAAC,GAAG,CAAC,CA6Jf;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;CACtD,GAAG,OAAO,CAAC,GAAG,CAAC,CAuDf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,GAAG,CAAC,CA2Df"}
|
|
@@ -1,38 +1,78 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tool for content masking and sensitive information detection
|
|
3
3
|
* Implements prompt-driven security analysis
|
|
4
|
+
* Enhanced with Generated Knowledge Prompting (GKP) for security and privacy expertise
|
|
4
5
|
*/
|
|
5
6
|
import { McpAdrError } from '../types/index.js';
|
|
6
7
|
/**
|
|
7
8
|
* Analyze content for sensitive information
|
|
9
|
+
* Enhanced with Generated Knowledge Prompting for security and privacy expertise
|
|
8
10
|
*/
|
|
9
11
|
export async function analyzeContentSecurity(args) {
|
|
10
|
-
const { content, contentType = 'general', userDefinedPatterns
|
|
12
|
+
const { content, contentType = 'general', userDefinedPatterns, knowledgeEnhancement = true, // Default to GKP enabled
|
|
13
|
+
enhancedMode = true // Default to enhanced mode
|
|
14
|
+
} = args;
|
|
11
15
|
try {
|
|
12
16
|
const { analyzeSensitiveContent } = await import('../utils/content-masking.js');
|
|
13
17
|
if (!content || content.trim().length === 0) {
|
|
14
18
|
throw new McpAdrError('Content is required for security analysis', 'INVALID_INPUT');
|
|
15
19
|
}
|
|
20
|
+
let enhancedPrompt = '';
|
|
21
|
+
let knowledgeContext = '';
|
|
22
|
+
// Generate security and privacy knowledge if enabled
|
|
23
|
+
if (enhancedMode && knowledgeEnhancement) {
|
|
24
|
+
try {
|
|
25
|
+
const { generateArchitecturalKnowledge } = await import('../utils/knowledge-generation.js');
|
|
26
|
+
const knowledgeResult = await generateArchitecturalKnowledge({
|
|
27
|
+
projectPath: process.cwd(),
|
|
28
|
+
technologies: [],
|
|
29
|
+
patterns: [],
|
|
30
|
+
projectType: 'security-content-analysis'
|
|
31
|
+
}, {
|
|
32
|
+
domains: ['security-patterns'],
|
|
33
|
+
depth: 'intermediate',
|
|
34
|
+
cacheEnabled: true
|
|
35
|
+
});
|
|
36
|
+
knowledgeContext = `\n## Security & Privacy Knowledge Enhancement\n\n${knowledgeResult.prompt}\n\n---\n`;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error('[WARNING] GKP knowledge generation failed for content security analysis:', error);
|
|
40
|
+
knowledgeContext = '<!-- Security knowledge generation unavailable -->\n';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
16
43
|
const result = await analyzeSensitiveContent(content, contentType, userDefinedPatterns);
|
|
44
|
+
enhancedPrompt = knowledgeContext + result.analysisPrompt;
|
|
17
45
|
// Execute the security analysis with AI if enabled, otherwise return prompt
|
|
18
46
|
const { executePromptWithFallback, formatMCPResponse } = await import('../utils/prompt-execution.js');
|
|
19
|
-
const executionResult = await executePromptWithFallback(
|
|
47
|
+
const executionResult = await executePromptWithFallback(enhancedPrompt, result.instructions, {
|
|
20
48
|
temperature: 0.1,
|
|
21
49
|
maxTokens: 4000,
|
|
22
50
|
systemPrompt: `You are a cybersecurity expert specializing in sensitive information detection.
|
|
23
51
|
Analyze the provided content to identify potential security risks, secrets, and sensitive data.
|
|
52
|
+
Leverage the provided cybersecurity and data privacy knowledge to create comprehensive, industry-standard analysis.
|
|
24
53
|
Provide detailed findings with confidence scores and practical remediation recommendations.
|
|
25
|
-
|
|
54
|
+
Consider regulatory compliance requirements, data classification standards, and modern security practices.
|
|
55
|
+
Focus on actionable security insights that can prevent data exposure and ensure compliance.`,
|
|
26
56
|
responseFormat: 'text'
|
|
27
57
|
});
|
|
28
58
|
if (executionResult.isAIGenerated) {
|
|
29
59
|
// AI execution successful - return actual security analysis results
|
|
30
60
|
return formatMCPResponse({
|
|
31
61
|
...executionResult,
|
|
32
|
-
content: `# Content Security Analysis Results
|
|
62
|
+
content: `# Content Security Analysis Results (GKP Enhanced)
|
|
63
|
+
|
|
64
|
+
## Enhancement Features
|
|
65
|
+
- **Generated Knowledge Prompting**: ${knowledgeEnhancement ? '✅ Enabled' : '❌ Disabled'}
|
|
66
|
+
- **Enhanced Mode**: ${enhancedMode ? '✅ Enabled' : '❌ Disabled'}
|
|
67
|
+
- **Knowledge Domains**: Cybersecurity, data privacy, regulatory compliance, secret management
|
|
33
68
|
|
|
34
69
|
## Analysis Information
|
|
35
70
|
- **Content Type**: ${contentType}
|
|
71
|
+
|
|
72
|
+
${knowledgeContext ? `## Applied Security Knowledge
|
|
73
|
+
|
|
74
|
+
${knowledgeContext}
|
|
75
|
+
` : ''}
|
|
36
76
|
- **Content Length**: ${content.length} characters
|
|
37
77
|
- **User-Defined Patterns**: ${userDefinedPatterns?.length || 0} patterns
|
|
38
78
|
|
|
@@ -62,7 +102,7 @@ To apply masking to identified sensitive content, use the \`generate_content_mas
|
|
|
62
102
|
content: [
|
|
63
103
|
{
|
|
64
104
|
type: 'text',
|
|
65
|
-
text: `# Sensitive Content Analysis\n\n${result.instructions}\n\n## AI Analysis Prompt\n\n${
|
|
105
|
+
text: `# Sensitive Content Analysis (GKP Enhanced)\n\n## Enhancement Status\n- **Generated Knowledge Prompting**: ${knowledgeEnhancement ? '\u2705 Applied' : '\u274c Disabled'}\n- **Enhanced Mode**: ${enhancedMode ? '\u2705 Applied' : '\u274c Disabled'}\n\n${knowledgeContext ? `## Security Knowledge Context\n\n${knowledgeContext}\n` : ''}\n\n${result.instructions}\n\n## Enhanced AI Analysis Prompt\n\n${enhancedPrompt}`,
|
|
66
106
|
},
|
|
67
107
|
],
|
|
68
108
|
};
|
|
@@ -74,6 +114,7 @@ To apply masking to identified sensitive content, use the \`generate_content_mas
|
|
|
74
114
|
}
|
|
75
115
|
/**
|
|
76
116
|
* Generate masking instructions for detected sensitive content
|
|
117
|
+
* Enhanced with Generated Knowledge Prompting for security and privacy expertise
|
|
77
118
|
*/
|
|
78
119
|
export async function generateContentMasking(args) {
|
|
79
120
|
const { content, detectedItems, maskingStrategy = 'full' } = args;
|
|
@@ -174,21 +215,55 @@ The applied masking provides:
|
|
|
174
215
|
export async function configureCustomPatterns(args) {
|
|
175
216
|
const { projectPath, existingPatterns } = args;
|
|
176
217
|
try {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
218
|
+
// Use actual file operations to scan project structure
|
|
219
|
+
const { scanProjectStructure } = await import('../utils/actual-file-operations.js');
|
|
220
|
+
// Actually scan project structure
|
|
221
|
+
const projectStructure = await scanProjectStructure(projectPath, { readContent: true, maxFileSize: 10000 });
|
|
180
222
|
const customPatternPrompt = `
|
|
181
223
|
# Custom Pattern Configuration Generation
|
|
182
224
|
|
|
183
|
-
|
|
225
|
+
Based on actual project structure analysis, here are the findings:
|
|
184
226
|
|
|
185
|
-
## Project
|
|
227
|
+
## Project Structure
|
|
228
|
+
- **Root Path**: ${projectStructure.rootPath}
|
|
229
|
+
- **Total Files**: ${projectStructure.totalFiles}
|
|
230
|
+
- **Directories**: ${projectStructure.directories.join(', ')}
|
|
186
231
|
|
|
187
|
-
|
|
232
|
+
## Package Management Files
|
|
233
|
+
${projectStructure.packageFiles.length > 0 ?
|
|
234
|
+
projectStructure.packageFiles.map(f => `
|
|
235
|
+
### ${f.filename}
|
|
236
|
+
\`\`\`
|
|
237
|
+
${f.content.slice(0, 500)}${f.content.length > 500 ? '\n... (truncated)' : ''}
|
|
238
|
+
\`\`\`
|
|
239
|
+
`).join('\n') : '- No package files found'}
|
|
188
240
|
|
|
189
|
-
##
|
|
241
|
+
## Environment Configuration Files
|
|
242
|
+
${projectStructure.environmentFiles.length > 0 ?
|
|
243
|
+
projectStructure.environmentFiles.map(f => `
|
|
244
|
+
### ${f.filename}
|
|
245
|
+
\`\`\`
|
|
246
|
+
${f.content.slice(0, 300)}${f.content.length > 300 ? '\n... (truncated)' : ''}
|
|
247
|
+
\`\`\`
|
|
248
|
+
`).join('\n') : '- No environment files found'}
|
|
190
249
|
|
|
191
|
-
|
|
250
|
+
## Configuration Files
|
|
251
|
+
${projectStructure.configFiles.length > 0 ?
|
|
252
|
+
projectStructure.configFiles.map(f => `
|
|
253
|
+
### ${f.filename}
|
|
254
|
+
\`\`\`
|
|
255
|
+
${f.content.slice(0, 300)}${f.content.length > 300 ? '\n... (truncated)' : ''}
|
|
256
|
+
\`\`\`
|
|
257
|
+
`).join('\n') : '- No config files found'}
|
|
258
|
+
|
|
259
|
+
## Script Files
|
|
260
|
+
${projectStructure.scriptFiles.length > 0 ?
|
|
261
|
+
projectStructure.scriptFiles.map(f => `
|
|
262
|
+
### ${f.filename}
|
|
263
|
+
\`\`\`
|
|
264
|
+
${f.content.slice(0, 400)}${f.content.length > 400 ? '\n... (truncated)' : ''}
|
|
265
|
+
\`\`\`
|
|
266
|
+
`).join('\n') : '- No script files found'}
|
|
192
267
|
|
|
193
268
|
## Existing Patterns Context
|
|
194
269
|
|
|
@@ -201,8 +276,8 @@ ${existingPatterns.map((pattern, index) => `
|
|
|
201
276
|
|
|
202
277
|
## Pattern Generation Requirements
|
|
203
278
|
|
|
204
|
-
1. **Analyze project-specific content types** that need masking
|
|
205
|
-
2. **Identify sensitive data patterns** in code and documentation
|
|
279
|
+
1. **Analyze project-specific content types** that need masking based on actual file content
|
|
280
|
+
2. **Identify sensitive data patterns** in code and documentation shown above
|
|
206
281
|
3. **Generate regex patterns** for consistent content masking
|
|
207
282
|
4. **Create appropriate replacements** that maintain context
|
|
208
283
|
5. **Ensure patterns don't conflict** with existing ones
|
|
@@ -226,11 +301,53 @@ Please provide custom pattern configuration in JSON format:
|
|
|
226
301
|
"conflicts": ["any", "potential", "conflicts"]
|
|
227
302
|
}
|
|
228
303
|
\`\`\`
|
|
304
|
+
`;
|
|
305
|
+
const instructions = `
|
|
306
|
+
# Custom Pattern Configuration Instructions
|
|
307
|
+
|
|
308
|
+
This analysis provides **actual project file contents** for comprehensive pattern generation.
|
|
309
|
+
|
|
310
|
+
## Analysis Scope
|
|
311
|
+
- **Project Path**: ${projectPath}
|
|
312
|
+
- **Package Files**: ${projectStructure.packageFiles.length} found
|
|
313
|
+
- **Environment Files**: ${projectStructure.environmentFiles.length} found
|
|
314
|
+
- **Config Files**: ${projectStructure.configFiles.length} found
|
|
315
|
+
- **Script Files**: ${projectStructure.scriptFiles.length} found
|
|
316
|
+
- **Total Files Analyzed**: ${projectStructure.totalFiles}
|
|
317
|
+
- **Existing Patterns**: ${existingPatterns?.length || 0} patterns
|
|
318
|
+
|
|
319
|
+
## Next Steps
|
|
320
|
+
1. **Submit the configuration prompt** to an AI agent for pattern analysis
|
|
321
|
+
2. **Parse the JSON response** to get custom patterns and recommendations
|
|
322
|
+
3. **Review generated patterns** for accuracy and completeness
|
|
323
|
+
4. **Implement patterns** in the content masking system
|
|
324
|
+
|
|
325
|
+
## Expected AI Response Format
|
|
326
|
+
The AI will return a JSON object with:
|
|
327
|
+
- \`patterns\`: Array of custom pattern configurations
|
|
328
|
+
- \`recommendations\`: Best practices and implementation guidance
|
|
329
|
+
- \`conflicts\`: Potential conflicts with existing patterns
|
|
330
|
+
|
|
331
|
+
## Usage Example
|
|
332
|
+
\`\`\`typescript
|
|
333
|
+
const result = await configureCustomPatterns({ projectPath, existingPatterns });
|
|
334
|
+
// Submit result.configurationPrompt to AI agent
|
|
335
|
+
// Parse AI response for custom pattern configuration
|
|
336
|
+
\`\`\`
|
|
229
337
|
`;
|
|
230
338
|
const result = {
|
|
231
339
|
configurationPrompt: customPatternPrompt,
|
|
232
|
-
instructions
|
|
233
|
-
|
|
340
|
+
instructions,
|
|
341
|
+
actualData: {
|
|
342
|
+
projectStructure,
|
|
343
|
+
summary: {
|
|
344
|
+
totalFiles: projectStructure.totalFiles,
|
|
345
|
+
packageFiles: projectStructure.packageFiles.length,
|
|
346
|
+
environmentFiles: projectStructure.environmentFiles.length,
|
|
347
|
+
configFiles: projectStructure.configFiles.length,
|
|
348
|
+
scriptFiles: projectStructure.scriptFiles.length
|
|
349
|
+
}
|
|
350
|
+
}
|
|
234
351
|
};
|
|
235
352
|
return {
|
|
236
353
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-masking-tool.js","sourceRoot":"","sources":["../../../src/tools/content-masking-tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"content-masking-tool.js","sourceRoot":"","sources":["../../../src/tools/content-masking-tool.ts"],"names":[],"mappings":"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"}
|