mcp-ai-agent-guidelines 0.7.2 → 0.7.3
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 +201 -6
- package/dist/index.js +290 -5
- package/dist/index.js.map +1 -1
- package/dist/resources/structured.d.ts.map +1 -1
- package/dist/resources/structured.js +410 -0
- package/dist/resources/structured.js.map +1 -1
- package/dist/schemas/flow-tool-schemas.d.ts +167 -0
- package/dist/schemas/flow-tool-schemas.d.ts.map +1 -0
- package/dist/schemas/flow-tool-schemas.js +149 -0
- package/dist/schemas/flow-tool-schemas.js.map +1 -0
- package/dist/tools/bridge/index.d.ts +83 -0
- package/dist/tools/bridge/index.d.ts.map +1 -0
- package/dist/tools/bridge/index.js +85 -0
- package/dist/tools/bridge/index.js.map +1 -0
- package/dist/tools/bridge/project-onboarding-bridge.d.ts +54 -0
- package/dist/tools/bridge/project-onboarding-bridge.d.ts.map +1 -0
- package/dist/tools/bridge/project-onboarding-bridge.js +220 -0
- package/dist/tools/bridge/project-onboarding-bridge.js.map +1 -0
- package/dist/tools/bridge/semantic-analyzer-bridge.d.ts +47 -0
- package/dist/tools/bridge/semantic-analyzer-bridge.d.ts.map +1 -0
- package/dist/tools/bridge/semantic-analyzer-bridge.js +174 -0
- package/dist/tools/bridge/semantic-analyzer-bridge.js.map +1 -0
- package/dist/tools/code-hygiene-analyzer.js +57 -8
- package/dist/tools/code-hygiene-analyzer.js.map +1 -1
- package/dist/tools/config/guidelines-config.d.ts +2 -14
- package/dist/tools/config/guidelines-config.d.ts.map +1 -1
- package/dist/tools/config/guidelines-config.js +45 -6
- package/dist/tools/config/guidelines-config.js.map +1 -1
- package/dist/tools/config/model-config.d.ts +2 -23
- package/dist/tools/config/model-config.d.ts.map +1 -1
- package/dist/tools/config/model-config.js.map +1 -1
- package/dist/tools/config/types/guidelines.types.d.ts +15 -0
- package/dist/tools/config/types/guidelines.types.d.ts.map +1 -0
- package/dist/tools/config/types/guidelines.types.js +3 -0
- package/dist/tools/config/types/guidelines.types.js.map +1 -0
- package/dist/tools/config/types/index.d.ts +3 -0
- package/dist/tools/config/types/index.d.ts.map +1 -0
- package/dist/tools/config/types/index.js +3 -0
- package/dist/tools/config/types/index.js.map +1 -0
- package/dist/tools/config/types/model.types.d.ts +24 -0
- package/dist/tools/config/types/model.types.d.ts.map +1 -0
- package/dist/tools/config/types/model.types.js +3 -0
- package/dist/tools/config/types/model.types.js.map +1 -0
- package/dist/tools/design/adr-generator.d.ts +1 -1
- package/dist/tools/design/adr-generator.d.ts.map +1 -1
- package/dist/tools/design/adr-generator.js.map +1 -1
- package/dist/tools/design/confirmation-module.d.ts +1 -1
- package/dist/tools/design/confirmation-module.d.ts.map +1 -1
- package/dist/tools/design/confirmation-prompt-builder.d.ts +1 -1
- package/dist/tools/design/confirmation-prompt-builder.d.ts.map +1 -1
- package/dist/tools/design/confirmation-prompt-builder.js.map +1 -1
- package/dist/tools/design/constraint-consistency-enforcer.d.ts +1 -1
- package/dist/tools/design/constraint-consistency-enforcer.d.ts.map +1 -1
- package/dist/tools/design/constraint-consistency-enforcer.js.map +1 -1
- package/dist/tools/design/constraint-manager.d.ts +14 -14
- package/dist/tools/design/constraint-manager.d.ts.map +1 -1
- package/dist/tools/design/coverage-enforcer.d.ts +1 -1
- package/dist/tools/design/coverage-enforcer.d.ts.map +1 -1
- package/dist/tools/design/cross-session-consistency-enforcer.d.ts +1 -1
- package/dist/tools/design/cross-session-consistency-enforcer.d.ts.map +1 -1
- package/dist/tools/design/design-assistant.d.ts +1 -1
- package/dist/tools/design/design-assistant.d.ts.map +1 -1
- package/dist/tools/design/design-assistant.js +22 -9
- package/dist/tools/design/design-assistant.js.map +1 -1
- package/dist/tools/design/design-phase-workflow.d.ts +1 -1
- package/dist/tools/design/design-phase-workflow.d.ts.map +1 -1
- package/dist/tools/design/index.d.ts +1 -1
- package/dist/tools/design/index.d.ts.map +1 -1
- package/dist/tools/design/methodology-selector.d.ts +1 -1
- package/dist/tools/design/methodology-selector.d.ts.map +1 -1
- package/dist/tools/design/pivot-module.d.ts +1 -1
- package/dist/tools/design/pivot-module.d.ts.map +1 -1
- package/dist/tools/design/roadmap-generator.d.ts +1 -1
- package/dist/tools/design/roadmap-generator.d.ts.map +1 -1
- package/dist/tools/design/roadmap-generator.js.map +1 -1
- package/dist/tools/design/spec-generator.d.ts +1 -1
- package/dist/tools/design/spec-generator.d.ts.map +1 -1
- package/dist/tools/design/spec-generator.js.map +1 -1
- package/dist/tools/design/strategic-pivot-prompt-builder.d.ts +1 -1
- package/dist/tools/design/strategic-pivot-prompt-builder.d.ts.map +1 -1
- package/dist/tools/design/types/artifact.types.d.ts +16 -0
- package/dist/tools/design/types/artifact.types.d.ts.map +1 -0
- package/dist/tools/design/types/artifact.types.js +3 -0
- package/dist/tools/design/types/artifact.types.js.map +1 -0
- package/dist/tools/design/types/common.types.d.ts +8 -0
- package/dist/tools/design/types/common.types.d.ts.map +1 -0
- package/dist/tools/design/types/common.types.js +3 -0
- package/dist/tools/design/types/common.types.js.map +1 -0
- package/dist/tools/design/types/consistency.types.d.ts +130 -0
- package/dist/tools/design/types/consistency.types.d.ts.map +1 -0
- package/dist/tools/design/types/consistency.types.js +3 -0
- package/dist/tools/design/types/consistency.types.js.map +1 -0
- package/dist/tools/design/types/constraint.types.d.ts +53 -0
- package/dist/tools/design/types/constraint.types.d.ts.map +1 -0
- package/dist/tools/design/types/constraint.types.js +3 -0
- package/dist/tools/design/types/constraint.types.js.map +1 -0
- package/dist/tools/design/types/coverage.types.d.ts +58 -0
- package/dist/tools/design/types/coverage.types.d.ts.map +1 -0
- package/dist/tools/design/types/coverage.types.js +3 -0
- package/dist/tools/design/types/coverage.types.js.map +1 -0
- package/dist/tools/design/types/index.d.ts +9 -0
- package/dist/tools/design/types/index.d.ts.map +1 -0
- package/dist/tools/design/types/index.js +4 -0
- package/dist/tools/design/types/index.js.map +1 -0
- package/dist/tools/design/types/methodology.types.d.ts +53 -0
- package/dist/tools/design/types/methodology.types.d.ts.map +1 -0
- package/dist/tools/design/types/methodology.types.js +3 -0
- package/dist/tools/design/types/methodology.types.js.map +1 -0
- package/dist/tools/design/types/pivot.types.d.ts +56 -0
- package/dist/tools/design/types/pivot.types.d.ts.map +1 -0
- package/dist/tools/design/types/pivot.types.js +3 -0
- package/dist/tools/design/types/pivot.types.js.map +1 -0
- package/dist/tools/design/types/session.types.d.ts +50 -0
- package/dist/tools/design/types/session.types.d.ts.map +1 -0
- package/dist/tools/design/types/session.types.js +3 -0
- package/dist/tools/design/types/session.types.js.map +1 -0
- package/dist/tools/design/types.d.ts +18 -401
- package/dist/tools/design/types.d.ts.map +1 -1
- package/dist/tools/design/types.js +17 -1
- package/dist/tools/design/types.js.map +1 -1
- package/dist/tools/guidelines-validator.js +3 -3
- package/dist/tools/mermaid-diagram-generator.d.ts.map +1 -1
- package/dist/tools/mermaid-diagram-generator.js +712 -58
- package/dist/tools/mermaid-diagram-generator.js.map +1 -1
- package/dist/tools/mode-switcher.d.ts +21 -0
- package/dist/tools/mode-switcher.d.ts.map +1 -0
- package/dist/tools/mode-switcher.js +383 -0
- package/dist/tools/mode-switcher.js.map +1 -0
- package/dist/tools/project-onboarding.d.ts +7 -0
- package/dist/tools/project-onboarding.d.ts.map +1 -0
- package/dist/tools/project-onboarding.js +344 -0
- package/dist/tools/project-onboarding.js.map +1 -0
- package/dist/tools/prompt/domain-neutral-prompt-builder.d.ts +8 -8
- package/dist/tools/prompt/hierarchical-prompt-builder.d.ts +6 -6
- package/dist/tools/prompt/hierarchy-level-selector.d.ts +7 -0
- package/dist/tools/prompt/hierarchy-level-selector.d.ts.map +1 -0
- package/dist/tools/prompt/hierarchy-level-selector.js +256 -0
- package/dist/tools/prompt/hierarchy-level-selector.js.map +1 -0
- package/dist/tools/prompt/prompt-chaining-builder.d.ts +29 -0
- package/dist/tools/prompt/prompt-chaining-builder.d.ts.map +1 -0
- package/dist/tools/prompt/prompt-chaining-builder.js +212 -0
- package/dist/tools/prompt/prompt-chaining-builder.js.map +1 -0
- package/dist/tools/prompt/prompt-flow-builder.d.ts +24 -0
- package/dist/tools/prompt/prompt-flow-builder.d.ts.map +1 -0
- package/dist/tools/prompt/prompt-flow-builder.js +422 -0
- package/dist/tools/prompt/prompt-flow-builder.js.map +1 -0
- package/dist/tools/prompt/prompting-hierarchy-evaluator.d.ts +13 -0
- package/dist/tools/prompt/prompting-hierarchy-evaluator.d.ts.map +1 -0
- package/dist/tools/prompt/prompting-hierarchy-evaluator.js +372 -0
- package/dist/tools/prompt/prompting-hierarchy-evaluator.js.map +1 -0
- package/dist/tools/prompt/spark-prompt-builder.d.ts +14 -14
- package/dist/tools/prompt/types/hierarchy.types.d.ts +42 -0
- package/dist/tools/prompt/types/hierarchy.types.d.ts.map +1 -0
- package/dist/tools/prompt/types/hierarchy.types.js +23 -0
- package/dist/tools/prompt/types/hierarchy.types.js.map +1 -0
- package/dist/tools/prompt/types/index.d.ts +2 -0
- package/dist/tools/prompt/types/index.d.ts.map +1 -0
- package/dist/tools/prompt/types/index.js +3 -0
- package/dist/tools/prompt/types/index.js.map +1 -0
- package/dist/tools/semantic-code-analyzer.d.ts +7 -0
- package/dist/tools/semantic-code-analyzer.d.ts.map +1 -0
- package/dist/tools/semantic-code-analyzer.js +380 -0
- package/dist/tools/semantic-code-analyzer.js.map +1 -0
- package/dist/tools/shared/prompt-sections.d.ts +3 -7
- package/dist/tools/shared/prompt-sections.d.ts.map +1 -1
- package/dist/tools/shared/prompt-sections.js +2 -26
- package/dist/tools/shared/prompt-sections.js.map +1 -1
- package/dist/tools/shared/prompt-utils.d.ts +2 -6
- package/dist/tools/shared/prompt-utils.d.ts.map +1 -1
- package/dist/tools/shared/prompt-utils.js.map +1 -1
- package/dist/tools/shared/types/index.d.ts +3 -0
- package/dist/tools/shared/types/index.d.ts.map +1 -0
- package/dist/tools/shared/types/index.js +3 -0
- package/dist/tools/shared/types/index.js.map +1 -0
- package/dist/tools/shared/types/prompt-sections.types.d.ts +8 -0
- package/dist/tools/shared/types/prompt-sections.types.d.ts.map +1 -0
- package/dist/tools/shared/types/prompt-sections.types.js +28 -0
- package/dist/tools/shared/types/prompt-sections.types.js.map +1 -0
- package/dist/tools/shared/types/prompt-utils.types.d.ts +7 -0
- package/dist/tools/shared/types/prompt-utils.types.d.ts.map +1 -0
- package/dist/tools/shared/types/prompt-utils.types.js +3 -0
- package/dist/tools/shared/types/prompt-utils.types.js.map +1 -0
- package/dist/tools/sprint-timeline-calculator.d.ts.map +1 -1
- package/dist/tools/sprint-timeline-calculator.js +129 -28
- package/dist/tools/sprint-timeline-calculator.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Connector for Project Onboarding
|
|
3
|
+
*
|
|
4
|
+
* Provides integration points between project onboarding and other tools
|
|
5
|
+
* Enables onboarding data to enhance all other tools with project context
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Integration helpers for project onboarding with other tools
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Extract project context from onboarding results
|
|
12
|
+
*/
|
|
13
|
+
export function extractProjectContext(onboardingResult) {
|
|
14
|
+
const context = {
|
|
15
|
+
name: "",
|
|
16
|
+
type: "other",
|
|
17
|
+
languages: [],
|
|
18
|
+
frameworks: [],
|
|
19
|
+
buildSystem: "",
|
|
20
|
+
testFramework: "",
|
|
21
|
+
structure: {
|
|
22
|
+
directories: [],
|
|
23
|
+
keyFiles: [],
|
|
24
|
+
entryPoints: [],
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
// Extract name
|
|
28
|
+
const nameMatch = onboardingResult.match(/\| Name \| ([^|]+) \|/);
|
|
29
|
+
if (nameMatch)
|
|
30
|
+
context.name = nameMatch[1].trim();
|
|
31
|
+
// Extract type
|
|
32
|
+
const typeMatch = onboardingResult.match(/\| Type \| ([^|]+) \|/);
|
|
33
|
+
if (typeMatch)
|
|
34
|
+
context.type = typeMatch[1].trim();
|
|
35
|
+
// Extract languages
|
|
36
|
+
const langMatch = onboardingResult.match(/\| Languages \| ([^|]+) \|/);
|
|
37
|
+
if (langMatch) {
|
|
38
|
+
context.languages = langMatch[1].split(",").map((l) => l.trim());
|
|
39
|
+
}
|
|
40
|
+
// Extract frameworks
|
|
41
|
+
const fwMatch = onboardingResult.match(/\| Frameworks \| ([^|]+) \|/);
|
|
42
|
+
if (fwMatch) {
|
|
43
|
+
context.frameworks = fwMatch[1].split(",").map((f) => f.trim());
|
|
44
|
+
}
|
|
45
|
+
// Extract build system
|
|
46
|
+
const buildMatch = onboardingResult.match(/\| Build System \| ([^|]+) \|/);
|
|
47
|
+
if (buildMatch)
|
|
48
|
+
context.buildSystem = buildMatch[1].trim();
|
|
49
|
+
// Extract test framework
|
|
50
|
+
const testMatch = onboardingResult.match(/\| Test Framework \| ([^|]+) \|/);
|
|
51
|
+
if (testMatch)
|
|
52
|
+
context.testFramework = testMatch[1].trim();
|
|
53
|
+
// Extract directories
|
|
54
|
+
const dirSection = onboardingResult.match(/\*\*Key Directories:\*\*\n([^*]+)/);
|
|
55
|
+
if (dirSection) {
|
|
56
|
+
context.structure.directories = dirSection[1]
|
|
57
|
+
.split("\n")
|
|
58
|
+
.map((l) => l.replace(/^-\s*`?([^`\n]+)`?/, "$1").trim())
|
|
59
|
+
.filter(Boolean);
|
|
60
|
+
}
|
|
61
|
+
// Extract key files
|
|
62
|
+
const filesSection = onboardingResult.match(/\*\*Key Files:\*\*\n([^*]+)/);
|
|
63
|
+
if (filesSection) {
|
|
64
|
+
context.structure.keyFiles = filesSection[1]
|
|
65
|
+
.split("\n")
|
|
66
|
+
.map((l) => l.replace(/^-\s*`?([^`\n]+)`?/, "$1").trim())
|
|
67
|
+
.filter(Boolean);
|
|
68
|
+
}
|
|
69
|
+
// Extract entry points
|
|
70
|
+
const entrySection = onboardingResult.match(/\*\*Entry Points:\*\*\n([^#]+)/);
|
|
71
|
+
if (entrySection) {
|
|
72
|
+
context.structure.entryPoints = entrySection[1]
|
|
73
|
+
.split("\n")
|
|
74
|
+
.map((l) => l.replace(/^-\s*`?([^`\n]+)`?/, "$1").trim())
|
|
75
|
+
.filter(Boolean);
|
|
76
|
+
}
|
|
77
|
+
return context;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Enhance any tool with project context
|
|
81
|
+
*/
|
|
82
|
+
export function enhanceToolWithProjectContext(toolInput, projectContext) {
|
|
83
|
+
if (typeof toolInput === "object" && toolInput !== null) {
|
|
84
|
+
return {
|
|
85
|
+
...toolInput,
|
|
86
|
+
projectContext: {
|
|
87
|
+
name: projectContext.name,
|
|
88
|
+
type: projectContext.type,
|
|
89
|
+
languages: projectContext.languages,
|
|
90
|
+
buildSystem: projectContext.buildSystem,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return toolInput;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Generate hierarchical prompt with project context
|
|
98
|
+
*/
|
|
99
|
+
export function generateContextualPrompt(projectContext, taskDescription) {
|
|
100
|
+
return `# Task: ${taskDescription}
|
|
101
|
+
|
|
102
|
+
## Project Context
|
|
103
|
+
- **Name**: ${projectContext.name}
|
|
104
|
+
- **Type**: ${projectContext.type}
|
|
105
|
+
- **Languages**: ${projectContext.languages.join(", ")}
|
|
106
|
+
- **Build System**: ${projectContext.buildSystem}
|
|
107
|
+
- **Test Framework**: ${projectContext.testFramework}
|
|
108
|
+
|
|
109
|
+
## Project Structure
|
|
110
|
+
### Entry Points
|
|
111
|
+
${projectContext.structure.entryPoints.map((ep) => `- ${ep}`).join("\n")}
|
|
112
|
+
|
|
113
|
+
### Key Directories
|
|
114
|
+
${projectContext.structure.directories
|
|
115
|
+
.slice(0, 5)
|
|
116
|
+
.map((d) => `- ${d}`)
|
|
117
|
+
.join("\n")}
|
|
118
|
+
|
|
119
|
+
### Key Files
|
|
120
|
+
${projectContext.structure.keyFiles
|
|
121
|
+
.slice(0, 5)
|
|
122
|
+
.map((f) => `- ${f}`)
|
|
123
|
+
.join("\n")}
|
|
124
|
+
|
|
125
|
+
## Task Requirements
|
|
126
|
+
Consider the project structure and conventions when completing this task.`;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Generate code hygiene analysis with project-specific rules
|
|
130
|
+
*/
|
|
131
|
+
export function generateProjectSpecificHygieneRules(projectContext) {
|
|
132
|
+
const rules = [];
|
|
133
|
+
// Language-specific rules
|
|
134
|
+
if (projectContext.languages.includes("TypeScript/JavaScript")) {
|
|
135
|
+
rules.push("Check for proper TypeScript type annotations");
|
|
136
|
+
rules.push("Ensure ESLint/Biome rules are followed");
|
|
137
|
+
}
|
|
138
|
+
if (projectContext.languages.includes("Python")) {
|
|
139
|
+
rules.push("Verify type hints are present");
|
|
140
|
+
rules.push("Check for PEP 8 compliance");
|
|
141
|
+
}
|
|
142
|
+
if (projectContext.languages.includes("Rust")) {
|
|
143
|
+
rules.push("Run clippy for Rust-specific lints");
|
|
144
|
+
rules.push("Check for proper ownership and borrowing patterns");
|
|
145
|
+
}
|
|
146
|
+
// Build system specific
|
|
147
|
+
if (projectContext.buildSystem.includes("npm")) {
|
|
148
|
+
rules.push("Verify package.json scripts are documented");
|
|
149
|
+
rules.push("Check for security vulnerabilities with npm audit");
|
|
150
|
+
}
|
|
151
|
+
// Test framework specific
|
|
152
|
+
if (projectContext.testFramework) {
|
|
153
|
+
rules.push(`Ensure tests follow ${projectContext.testFramework} best practices`);
|
|
154
|
+
rules.push("Verify test coverage meets project standards");
|
|
155
|
+
}
|
|
156
|
+
return rules;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Generate strategy analysis with project context
|
|
160
|
+
*/
|
|
161
|
+
export function generateStrategyWithProjectContext(projectContext) {
|
|
162
|
+
const swot = {
|
|
163
|
+
strengths: [],
|
|
164
|
+
weaknesses: [],
|
|
165
|
+
opportunities: [],
|
|
166
|
+
threats: [],
|
|
167
|
+
};
|
|
168
|
+
// Strengths based on project type
|
|
169
|
+
if (projectContext.type === "library") {
|
|
170
|
+
swot.strengths.push("Reusable component architecture");
|
|
171
|
+
}
|
|
172
|
+
if (projectContext.languages.length > 1) {
|
|
173
|
+
swot.strengths.push("Multi-language support and versatility");
|
|
174
|
+
}
|
|
175
|
+
// Weaknesses
|
|
176
|
+
if (!projectContext.testFramework ||
|
|
177
|
+
projectContext.testFramework.includes("check")) {
|
|
178
|
+
swot.weaknesses.push("Testing infrastructure may need improvement");
|
|
179
|
+
}
|
|
180
|
+
// Opportunities
|
|
181
|
+
if (projectContext.buildSystem.includes("npm")) {
|
|
182
|
+
swot.opportunities.push("Leverage npm ecosystem for rapid development");
|
|
183
|
+
}
|
|
184
|
+
// Threats
|
|
185
|
+
if (projectContext.languages.includes("JavaScript")) {
|
|
186
|
+
swot.threats.push("Rapid JavaScript ecosystem evolution requires regular updates");
|
|
187
|
+
}
|
|
188
|
+
const recommendations = [
|
|
189
|
+
`Focus on ${projectContext.type} best practices`,
|
|
190
|
+
`Leverage ${projectContext.buildSystem} for efficient builds`,
|
|
191
|
+
`Maintain consistency across ${projectContext.languages.join(", ")} codebases`,
|
|
192
|
+
];
|
|
193
|
+
return { swot, recommendations };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Create mode-specific project guidance
|
|
197
|
+
*/
|
|
198
|
+
export function generateModeGuidance(projectContext, mode) {
|
|
199
|
+
const guidance = [];
|
|
200
|
+
switch (mode) {
|
|
201
|
+
case "planning":
|
|
202
|
+
guidance.push(`Plan changes considering ${projectContext.type} architecture`);
|
|
203
|
+
guidance.push(`Review project structure: ${projectContext.structure.directories.slice(0, 3).join(", ")}`);
|
|
204
|
+
break;
|
|
205
|
+
case "editing":
|
|
206
|
+
guidance.push(`Edit files in ${projectContext.languages.join(" or ")} following project conventions`);
|
|
207
|
+
guidance.push(`Entry points: ${projectContext.structure.entryPoints.slice(0, 2).join(", ")}`);
|
|
208
|
+
break;
|
|
209
|
+
case "debugging":
|
|
210
|
+
guidance.push(`Check ${projectContext.testFramework} test outputs`);
|
|
211
|
+
guidance.push(`Use ${projectContext.buildSystem} for rebuilding`);
|
|
212
|
+
break;
|
|
213
|
+
case "refactoring":
|
|
214
|
+
guidance.push(`Maintain ${projectContext.type} structure during refactoring`);
|
|
215
|
+
guidance.push(`Preserve ${projectContext.languages.join(", ")} idioms`);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
return guidance.join("\n");
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=project-onboarding-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-onboarding-bridge.js","sourceRoot":"","sources":["../../../src/tools/bridge/project-onboarding-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Connector for Semantic Code Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Provides integration points between semantic code analyzer and other tools
|
|
5
|
+
* Enables semantic analysis to enhance prompts, strategies, and other tools
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Integration helpers for semantic code analyzer with other tools
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Enhance hierarchical prompts with semantic insights
|
|
12
|
+
*/
|
|
13
|
+
export declare function enhancePromptWithSemantics(semanticAnalysis: string, promptContext: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Generate code hygiene recommendations based on semantic analysis
|
|
16
|
+
*/
|
|
17
|
+
export declare function generateHygieneRecommendations(semanticAnalysis: string): string[];
|
|
18
|
+
/**
|
|
19
|
+
* Extract semantic insights from analysis text
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractSemanticInsights(analysisText: string): {
|
|
22
|
+
structure: string;
|
|
23
|
+
patterns: string[];
|
|
24
|
+
dependencies: string[];
|
|
25
|
+
symbols: string[];
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create refactoring suggestions based on semantic analysis
|
|
29
|
+
*/
|
|
30
|
+
export declare function suggestRefactorings(semanticAnalysis: string): {
|
|
31
|
+
priority: "high" | "medium" | "low";
|
|
32
|
+
suggestion: string;
|
|
33
|
+
reason: string;
|
|
34
|
+
}[];
|
|
35
|
+
/**
|
|
36
|
+
* Generate security analysis prompt based on semantic insights
|
|
37
|
+
*/
|
|
38
|
+
export declare function generateSecurityAnalysisPrompt(semanticAnalysis: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Integration point for strategy frameworks
|
|
41
|
+
*/
|
|
42
|
+
export declare function integrateWithStrategyFrameworks(semanticAnalysis: string, _projectContext: string): {
|
|
43
|
+
technicalDebt: string[];
|
|
44
|
+
architectureInsights: string[];
|
|
45
|
+
recommendations: string[];
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=semantic-analyzer-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-analyzer-bridge.d.ts","sourceRoot":"","sources":["../../../src/tools/bridge/semantic-analyzer-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AAEH;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,GACnB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,gBAAgB,EAAE,MAAM,GACtB,MAAM,EAAE,CAsBV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB,CAoDA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG;IAC9D,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CACf,EAAE,CAyCF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,gBAAgB,EAAE,MAAM,GACtB,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC9C,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,GACrB;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B,CAqBA"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Connector for Semantic Code Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Provides integration points between semantic code analyzer and other tools
|
|
5
|
+
* Enables semantic analysis to enhance prompts, strategies, and other tools
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Integration helpers for semantic code analyzer with other tools
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Enhance hierarchical prompts with semantic insights
|
|
12
|
+
*/
|
|
13
|
+
export function enhancePromptWithSemantics(semanticAnalysis, promptContext) {
|
|
14
|
+
// Extract key insights from semantic analysis
|
|
15
|
+
const insights = extractSemanticInsights(semanticAnalysis);
|
|
16
|
+
// Enhance prompt context with code structure information
|
|
17
|
+
return `${promptContext}
|
|
18
|
+
|
|
19
|
+
## Code Context from Semantic Analysis
|
|
20
|
+
${insights.structure}
|
|
21
|
+
|
|
22
|
+
## Identified Patterns
|
|
23
|
+
${insights.patterns.join(", ")}
|
|
24
|
+
|
|
25
|
+
## Dependencies
|
|
26
|
+
${insights.dependencies.join(", ")}`;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate code hygiene recommendations based on semantic analysis
|
|
30
|
+
*/
|
|
31
|
+
export function generateHygieneRecommendations(semanticAnalysis) {
|
|
32
|
+
const recommendations = [];
|
|
33
|
+
if (semanticAnalysis.includes("Error Handling") === false) {
|
|
34
|
+
recommendations.push("Add comprehensive error handling (try-catch blocks)");
|
|
35
|
+
}
|
|
36
|
+
if (semanticAnalysis.includes("Dependency Injection")) {
|
|
37
|
+
recommendations.push("Good use of dependency injection pattern");
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
recommendations.push("Consider using dependency injection for better testability");
|
|
41
|
+
}
|
|
42
|
+
if (semanticAnalysis.includes("Async/Await")) {
|
|
43
|
+
recommendations.push("Review async/await usage for potential race conditions");
|
|
44
|
+
}
|
|
45
|
+
return recommendations;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Extract semantic insights from analysis text
|
|
49
|
+
*/
|
|
50
|
+
export function extractSemanticInsights(analysisText) {
|
|
51
|
+
const insights = {
|
|
52
|
+
structure: "",
|
|
53
|
+
patterns: [],
|
|
54
|
+
dependencies: [],
|
|
55
|
+
symbols: [],
|
|
56
|
+
};
|
|
57
|
+
// Extract structure section
|
|
58
|
+
const structureMatch = analysisText.match(/### 🏗️ Code Structure\n\n([^#]+)/);
|
|
59
|
+
if (structureMatch) {
|
|
60
|
+
insights.structure = structureMatch[1].trim();
|
|
61
|
+
}
|
|
62
|
+
// Extract patterns
|
|
63
|
+
if (analysisText.includes("Async/Await"))
|
|
64
|
+
insights.patterns.push("Async/Await");
|
|
65
|
+
if (analysisText.includes("Error Handling"))
|
|
66
|
+
insights.patterns.push("Error Handling");
|
|
67
|
+
if (analysisText.includes("Dependency Injection"))
|
|
68
|
+
insights.patterns.push("Dependency Injection");
|
|
69
|
+
if (analysisText.includes("Factory Pattern"))
|
|
70
|
+
insights.patterns.push("Factory Pattern");
|
|
71
|
+
// Extract dependencies
|
|
72
|
+
const depsMatch = analysisText.match(/### 📦 Dependencies\n\n([^#]+)/);
|
|
73
|
+
if (depsMatch) {
|
|
74
|
+
const depLines = depsMatch[1]
|
|
75
|
+
.split("\n")
|
|
76
|
+
.filter((line) => line.includes("**"));
|
|
77
|
+
insights.dependencies = depLines
|
|
78
|
+
.map((line) => {
|
|
79
|
+
const match = line.match(/\*\*([^*]+)\*\*/);
|
|
80
|
+
return match ? match[1] : "";
|
|
81
|
+
})
|
|
82
|
+
.filter(Boolean);
|
|
83
|
+
}
|
|
84
|
+
// Extract symbols
|
|
85
|
+
const symbolsMatch = analysisText.match(/### 🔤 Symbols Identified\n\n([^#]+)/);
|
|
86
|
+
if (symbolsMatch) {
|
|
87
|
+
const symbolLines = symbolsMatch[1]
|
|
88
|
+
.split("\n")
|
|
89
|
+
.filter((line) => line.includes("-"));
|
|
90
|
+
insights.symbols = symbolLines
|
|
91
|
+
.map((line) => line.replace(/^-\s*/, "").trim())
|
|
92
|
+
.filter(Boolean);
|
|
93
|
+
}
|
|
94
|
+
return insights;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Create refactoring suggestions based on semantic analysis
|
|
98
|
+
*/
|
|
99
|
+
export function suggestRefactorings(semanticAnalysis) {
|
|
100
|
+
const suggestions = [];
|
|
101
|
+
// Check for error handling
|
|
102
|
+
if (!semanticAnalysis.includes("Error Handling")) {
|
|
103
|
+
suggestions.push({
|
|
104
|
+
priority: "high",
|
|
105
|
+
suggestion: "Add comprehensive error handling",
|
|
106
|
+
reason: "No error handling patterns detected in the code",
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// Check for complexity
|
|
110
|
+
if (semanticAnalysis.match(/Functions.*\((\d+)\)/)?.[1]) {
|
|
111
|
+
const funcCount = Number.parseInt(semanticAnalysis.match(/Functions.*\((\d+)\)/)?.[1] || "0", 10);
|
|
112
|
+
if (funcCount > 10) {
|
|
113
|
+
suggestions.push({
|
|
114
|
+
priority: "medium",
|
|
115
|
+
suggestion: "Consider breaking down into smaller modules",
|
|
116
|
+
reason: `High number of functions (${funcCount}) indicates potential for modularization`,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Check for patterns
|
|
121
|
+
if (!semanticAnalysis.includes("Dependency Injection")) {
|
|
122
|
+
suggestions.push({
|
|
123
|
+
priority: "low",
|
|
124
|
+
suggestion: "Consider dependency injection pattern",
|
|
125
|
+
reason: "Could improve testability and modularity",
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return suggestions;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate security analysis prompt based on semantic insights
|
|
132
|
+
*/
|
|
133
|
+
export function generateSecurityAnalysisPrompt(semanticAnalysis) {
|
|
134
|
+
const insights = extractSemanticInsights(semanticAnalysis);
|
|
135
|
+
return `# Security Analysis Request
|
|
136
|
+
|
|
137
|
+
## Code Structure
|
|
138
|
+
${insights.structure}
|
|
139
|
+
|
|
140
|
+
## Areas to Analyze
|
|
141
|
+
1. Input validation for all entry points
|
|
142
|
+
2. Dependency security (check ${insights.dependencies.join(", ")})
|
|
143
|
+
3. Error handling and information disclosure
|
|
144
|
+
4. Authentication and authorization patterns
|
|
145
|
+
${insights.patterns.includes("Async/Await") ? "5. Race condition analysis for async operations" : ""}
|
|
146
|
+
|
|
147
|
+
## Focus Areas
|
|
148
|
+
- Review ${insights.symbols.length} identified symbols for security issues
|
|
149
|
+
- Analyze ${insights.dependencies.length} dependencies for known vulnerabilities
|
|
150
|
+
- Check for common security anti-patterns`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Integration point for strategy frameworks
|
|
154
|
+
*/
|
|
155
|
+
export function integrateWithStrategyFrameworks(semanticAnalysis, _projectContext) {
|
|
156
|
+
const insights = extractSemanticInsights(semanticAnalysis);
|
|
157
|
+
return {
|
|
158
|
+
technicalDebt: [
|
|
159
|
+
insights.patterns.includes("Error Handling")
|
|
160
|
+
? ""
|
|
161
|
+
: "Missing error handling",
|
|
162
|
+
insights.patterns.includes("Dependency Injection")
|
|
163
|
+
? ""
|
|
164
|
+
: "Tight coupling detected",
|
|
165
|
+
].filter(Boolean),
|
|
166
|
+
architectureInsights: [
|
|
167
|
+
`Code structure: ${insights.structure}`,
|
|
168
|
+
`Patterns in use: ${insights.patterns.join(", ")}`,
|
|
169
|
+
`External dependencies: ${insights.dependencies.length}`,
|
|
170
|
+
],
|
|
171
|
+
recommendations: generateHygieneRecommendations(`### Analysis\n${semanticAnalysis}`),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=semantic-analyzer-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-analyzer-bridge.js","sourceRoot":"","sources":["../../../src/tools/bridge/semantic-analyzer-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,7 @@ function analyzeCodeHygiene(input) {
|
|
|
79
79
|
issues.push({
|
|
80
80
|
type: "Technical Debt",
|
|
81
81
|
description: "Found TODO or FIXME comments indicating incomplete work",
|
|
82
|
+
severity: "minor",
|
|
82
83
|
});
|
|
83
84
|
recommendations.push("Address pending TODO and FIXME items before production");
|
|
84
85
|
}
|
|
@@ -87,6 +88,7 @@ function analyzeCodeHygiene(input) {
|
|
|
87
88
|
issues.push({
|
|
88
89
|
type: "Debug Code",
|
|
89
90
|
description: "Found console.log statements that should be removed in production",
|
|
91
|
+
severity: "major",
|
|
90
92
|
});
|
|
91
93
|
recommendations.push("Remove debug console.log statements");
|
|
92
94
|
}
|
|
@@ -94,6 +96,7 @@ function analyzeCodeHygiene(input) {
|
|
|
94
96
|
issues.push({
|
|
95
97
|
type: "Debug Code",
|
|
96
98
|
description: "Found print statements that should use proper logging",
|
|
99
|
+
severity: "major",
|
|
97
100
|
});
|
|
98
101
|
recommendations.push("Replace print statements with proper logging");
|
|
99
102
|
}
|
|
@@ -116,6 +119,7 @@ function analyzeCodeHygiene(input) {
|
|
|
116
119
|
issues.push({
|
|
117
120
|
type: "Code Complexity",
|
|
118
121
|
description: `Found function with ${functionLines} lines - consider breaking into smaller functions`,
|
|
122
|
+
severity: "major",
|
|
119
123
|
});
|
|
120
124
|
}
|
|
121
125
|
inFunction = false;
|
|
@@ -128,6 +132,7 @@ function analyzeCodeHygiene(input) {
|
|
|
128
132
|
issues.push({
|
|
129
133
|
type: "Outdated Pattern",
|
|
130
134
|
description: "Using var instead of let/const",
|
|
135
|
+
severity: "minor",
|
|
131
136
|
});
|
|
132
137
|
recommendations.push("Replace var declarations with let or const");
|
|
133
138
|
}
|
|
@@ -139,21 +144,57 @@ function analyzeCodeHygiene(input) {
|
|
|
139
144
|
issues.push({
|
|
140
145
|
type: "Error Handling",
|
|
141
146
|
description: "Async code without proper error handling",
|
|
147
|
+
severity: "critical",
|
|
142
148
|
});
|
|
143
149
|
recommendations.push("Add try-catch blocks around async operations");
|
|
144
150
|
}
|
|
145
|
-
//
|
|
151
|
+
// Check for hardcoded credentials or sensitive data
|
|
152
|
+
if (/password\s*=\s*["']|api[_-]?key\s*=\s*["']|secret\s*=\s*["']/i.test(code)) {
|
|
153
|
+
issues.push({
|
|
154
|
+
type: "Security Risk",
|
|
155
|
+
description: "Potential hardcoded credentials or API keys detected",
|
|
156
|
+
severity: "critical",
|
|
157
|
+
});
|
|
158
|
+
recommendations.push("Move sensitive data to environment variables or secure configuration");
|
|
159
|
+
}
|
|
160
|
+
// Check for commented out code
|
|
161
|
+
const commentedLines = lines.filter((line) => {
|
|
162
|
+
const trimmed = line.trim();
|
|
163
|
+
return ((trimmed.startsWith("//") && /[a-zA-Z0-9()]/.test(trimmed.slice(2))) ||
|
|
164
|
+
(trimmed.startsWith("#") &&
|
|
165
|
+
language === "python" &&
|
|
166
|
+
/[a-zA-Z0-9()]/.test(trimmed.slice(1))));
|
|
167
|
+
}).length;
|
|
168
|
+
if (commentedLines > 3) {
|
|
169
|
+
issues.push({
|
|
170
|
+
type: "Dead Code",
|
|
171
|
+
description: `Found ${commentedLines} lines of commented code - consider removing`,
|
|
172
|
+
severity: "minor",
|
|
173
|
+
});
|
|
174
|
+
recommendations.push("Remove commented out code or move to version control history");
|
|
175
|
+
}
|
|
176
|
+
// Calculate score with severity-based penalties
|
|
146
177
|
let score = 100;
|
|
147
|
-
|
|
178
|
+
for (const issue of issues) {
|
|
179
|
+
if (issue.severity === "critical") {
|
|
180
|
+
score -= 20;
|
|
181
|
+
}
|
|
182
|
+
else if (issue.severity === "major") {
|
|
183
|
+
score -= 12;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
score -= 5;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
148
189
|
score = Math.max(0, score);
|
|
149
190
|
let scoreDescription = "";
|
|
150
|
-
if (score >=
|
|
191
|
+
if (score >= 85)
|
|
151
192
|
scoreDescription = "Excellent";
|
|
152
|
-
else if (score >= 80)
|
|
153
|
-
scoreDescription = "Good";
|
|
154
193
|
else if (score >= 70)
|
|
194
|
+
scoreDescription = "Good";
|
|
195
|
+
else if (score >= 50)
|
|
155
196
|
scoreDescription = "Fair";
|
|
156
|
-
else if (score >=
|
|
197
|
+
else if (score >= 30)
|
|
157
198
|
scoreDescription = "Needs Improvement";
|
|
158
199
|
else
|
|
159
200
|
scoreDescription = "Poor";
|
|
@@ -162,12 +203,20 @@ function analyzeCodeHygiene(input) {
|
|
|
162
203
|
nextSteps.push("Code hygiene looks good! Consider adding automated linting if not already present.");
|
|
163
204
|
}
|
|
164
205
|
else {
|
|
165
|
-
|
|
206
|
+
const criticalIssues = issues.filter((i) => i.severity === "critical").length;
|
|
207
|
+
const majorIssues = issues.filter((i) => i.severity === "major").length;
|
|
208
|
+
if (criticalIssues > 0) {
|
|
209
|
+
nextSteps.push(`Address ${criticalIssues} critical issue(s) immediately`);
|
|
210
|
+
}
|
|
211
|
+
if (majorIssues > 0) {
|
|
212
|
+
nextSteps.push(`Fix ${majorIssues} major issue(s) before merging`);
|
|
213
|
+
}
|
|
214
|
+
nextSteps.push("Address the identified issues in order of priority (critical > major > minor)");
|
|
166
215
|
nextSteps.push("Set up automated code quality checks (ESLint, Prettier, Biome, etc.)");
|
|
167
216
|
nextSteps.push("Consider implementing pre-commit hooks");
|
|
168
217
|
}
|
|
169
218
|
return {
|
|
170
|
-
issues,
|
|
219
|
+
issues: issues.map(({ severity, ...rest }) => rest),
|
|
171
220
|
recommendations,
|
|
172
221
|
score,
|
|
173
222
|
scoreDescription,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-hygiene-analyzer.js","sourceRoot":"","sources":["../../src/tools/code-hygiene-analyzer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"code-hygiene-analyzer.js","sourceRoot":"","sources":["../../src/tools/code-hygiene-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
keywords: string[];
|
|
4
|
-
weight: number;
|
|
5
|
-
strength: string;
|
|
6
|
-
issue: string;
|
|
7
|
-
recommendation: string;
|
|
8
|
-
optional?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export interface CategoryConfig {
|
|
11
|
-
base: number;
|
|
12
|
-
criteria: Criterion[];
|
|
13
|
-
bestPractices: string[];
|
|
14
|
-
}
|
|
1
|
+
import type { CategoryConfig, Criterion } from "./types/index.js";
|
|
2
|
+
export type { Criterion, CategoryConfig };
|
|
15
3
|
export declare const CATEGORY_CONFIG: Record<string, CategoryConfig>;
|
|
16
4
|
//# sourceMappingURL=guidelines-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guidelines-config.d.ts","sourceRoot":"","sources":["../../../src/tools/config/guidelines-config.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"guidelines-config.d.ts","sourceRoot":"","sources":["../../../src/tools/config/guidelines-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AAE1C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAwR1D,CAAC"}
|