mcp-adr-analysis-server 2.7.30 → 2.7.32

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.
Files changed (34) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/package.json +1 -1
  3. package/dist/src/resources/adrs-review-resource.d.ts +0 -82
  4. package/dist/src/resources/adrs-review-resource.d.ts.map +0 -1
  5. package/dist/src/resources/adrs-review-resource.js +0 -160
  6. package/dist/src/resources/adrs-review-resource.js.map +0 -1
  7. package/dist/src/resources/architectural-context-resource.d.ts +0 -95
  8. package/dist/src/resources/architectural-context-resource.d.ts.map +0 -1
  9. package/dist/src/resources/architectural-context-resource.js +0 -428
  10. package/dist/src/resources/architectural-context-resource.js.map +0 -1
  11. package/dist/src/resources/memory-expand-resource.d.ts +0 -90
  12. package/dist/src/resources/memory-expand-resource.d.ts.map +0 -1
  13. package/dist/src/resources/memory-expand-resource.js +0 -176
  14. package/dist/src/resources/memory-expand-resource.js.map +0 -1
  15. package/dist/src/utils/bootstrap-task-integration.d.ts +0 -214
  16. package/dist/src/utils/bootstrap-task-integration.d.ts.map +0 -1
  17. package/dist/src/utils/bootstrap-task-integration.js +0 -365
  18. package/dist/src/utils/bootstrap-task-integration.js.map +0 -1
  19. package/dist/src/utils/index.d.ts +0 -9
  20. package/dist/src/utils/index.d.ts.map +0 -1
  21. package/dist/src/utils/index.js +0 -13
  22. package/dist/src/utils/index.js.map +0 -1
  23. package/dist/src/utils/interactive-approval.d.ts +0 -63
  24. package/dist/src/utils/interactive-approval.d.ts.map +0 -1
  25. package/dist/src/utils/interactive-approval.js +0 -445
  26. package/dist/src/utils/interactive-approval.js.map +0 -1
  27. package/dist/src/utils/llm-artifact-detector.d.ts +0 -76
  28. package/dist/src/utils/llm-artifact-detector.d.ts.map +0 -1
  29. package/dist/src/utils/llm-artifact-detector.js +0 -426
  30. package/dist/src/utils/llm-artifact-detector.js.map +0 -1
  31. package/dist/src/utils/location-filter.d.ts +0 -104
  32. package/dist/src/utils/location-filter.d.ts.map +0 -1
  33. package/dist/src/utils/location-filter.js +0 -593
  34. package/dist/src/utils/location-filter.js.map +0 -1
@@ -1,445 +0,0 @@
1
- /**
2
- * Interactive approval workflow for smart git push
3
- *
4
- * Handles user interaction for approving/rejecting files with issues
5
- */
6
- import { createInterface } from 'readline';
7
- import { readFileSync, writeFileSync } from 'fs';
8
- /**
9
- * Main interactive approval function
10
- */
11
- export async function handleInteractiveApproval(items, options) {
12
- const result = {
13
- approved: [],
14
- rejected: [],
15
- moved: [],
16
- ignored: [],
17
- actions: [],
18
- proceed: false,
19
- };
20
- if (items.length === 0) {
21
- result.proceed = true;
22
- return result;
23
- }
24
- // Handle non-interactive mode
25
- if (!options.interactiveMode) {
26
- return handleNonInteractiveApproval(items, options);
27
- }
28
- // Display summary
29
- displayApprovalSummary(items);
30
- // Group items by severity for better UX
31
- const errorItems = items.filter(item => item.severity === 'error');
32
- const warningItems = items.filter(item => item.severity === 'warning');
33
- const infoItems = items.filter(item => item.severity === 'info');
34
- // Handle errors first (these are most critical)
35
- if (errorItems.length > 0) {
36
- console.log('\n🚨 CRITICAL ISSUES (Must be resolved before proceeding)');
37
- for (const item of errorItems) {
38
- const action = await handleItemApproval(item, options, true);
39
- result.actions.push(action);
40
- applyAction(action, result);
41
- }
42
- }
43
- // Handle warnings
44
- if (warningItems.length > 0) {
45
- console.log('\n⚠️ WARNING ISSUES (Review recommended)');
46
- for (const item of warningItems) {
47
- const action = await handleItemApproval(item, options, false);
48
- result.actions.push(action);
49
- applyAction(action, result);
50
- }
51
- }
52
- // Handle info items (auto-approve if option set)
53
- if (infoItems.length > 0) {
54
- if (options.autoApproveInfo) {
55
- console.log(`\n✅ Auto-approving ${infoItems.length} info-level items`);
56
- for (const item of infoItems) {
57
- const action = { type: 'approve', filePath: item.filePath };
58
- result.actions.push(action);
59
- applyAction(action, result);
60
- }
61
- }
62
- else {
63
- console.log('\n💡 INFO ITEMS (Low priority)');
64
- for (const item of infoItems) {
65
- const action = await handleItemApproval(item, options, false);
66
- result.actions.push(action);
67
- applyAction(action, result);
68
- }
69
- }
70
- }
71
- // Final confirmation
72
- result.proceed = await getFinalConfirmation(result, options);
73
- return result;
74
- }
75
- /**
76
- * Handle non-interactive approval
77
- */
78
- function handleNonInteractiveApproval(items, options) {
79
- const result = {
80
- approved: [],
81
- rejected: [],
82
- moved: [],
83
- ignored: [],
84
- actions: [],
85
- proceed: false,
86
- };
87
- for (const item of items) {
88
- let action;
89
- if (item.severity === 'error' && options.autoRejectErrors) {
90
- action = { type: 'reject', filePath: item.filePath, reason: 'Auto-rejected due to errors' };
91
- }
92
- else if (item.severity === 'info' && options.autoApproveInfo) {
93
- action = { type: 'approve', filePath: item.filePath };
94
- }
95
- else {
96
- // Default behavior based on severity
97
- switch (item.severity) {
98
- case 'error':
99
- action = {
100
- type: 'reject',
101
- filePath: item.filePath,
102
- reason: 'Automatic rejection due to errors',
103
- };
104
- break;
105
- case 'warning':
106
- action = item.allowedInLocation
107
- ? { type: 'approve', filePath: item.filePath }
108
- : { type: 'reject', filePath: item.filePath, reason: 'Location violation' };
109
- break;
110
- case 'info':
111
- action = { type: 'approve', filePath: item.filePath };
112
- break;
113
- }
114
- }
115
- result.actions.push(action);
116
- applyAction(action, result);
117
- }
118
- // In non-interactive mode, proceed if no errors were rejected
119
- result.proceed = result.rejected.length === 0;
120
- return result;
121
- }
122
- /**
123
- * Handle approval for a single item
124
- */
125
- async function handleItemApproval(item, options, isError) {
126
- console.log(`\n📄 ${item.filePath}`);
127
- console.log(` Severity: ${item.severity.toUpperCase()}`);
128
- console.log(` Confidence: ${(item.confidence * 100).toFixed(1)}%`);
129
- console.log(` Location Valid: ${item.allowedInLocation ? '✅' : '❌'}`);
130
- // Display issues
131
- console.log('\n Issues:');
132
- for (const issue of item.issues) {
133
- console.log(` - ${issue.severity.toUpperCase()}: ${issue.message}`);
134
- if (issue.line) {
135
- console.log(` Line ${issue.line}`);
136
- }
137
- if (issue.context) {
138
- const contextLines = issue.context.split('\n').slice(0, 3);
139
- console.log(` Context: ${contextLines.join(' | ')}`);
140
- }
141
- }
142
- // Display suggestions
143
- if (item.suggestions.length > 0) {
144
- console.log('\n Suggestions:');
145
- for (let i = 0; i < item.suggestions.length; i++) {
146
- console.log(` ${i + 1}. ${item.suggestions[i]}`);
147
- }
148
- }
149
- // Get user choice
150
- const choices = buildChoices(item, isError);
151
- const choice = await getUserChoice(choices, options);
152
- return processChoice(choice, item, options);
153
- }
154
- /**
155
- * Build available choices for user
156
- */
157
- function buildChoices(item, isError) {
158
- const choices = [
159
- { key: 'a', description: 'Approve (include in commit)', available: !isError },
160
- { key: 'r', description: 'Reject (exclude from commit)', available: true },
161
- { key: 'i', description: 'Ignore (add to .gitignore)', available: true },
162
- { key: 'm', description: 'Move to different location', available: !item.allowedInLocation },
163
- { key: 'v', description: 'View file content', available: true },
164
- { key: 'e', description: 'Edit file', available: true },
165
- { key: 's', description: 'Skip for now', available: false }, // Not implemented yet
166
- { key: 'h', description: 'Show help', available: true },
167
- ];
168
- return choices;
169
- }
170
- /**
171
- * Get user choice
172
- */
173
- async function getUserChoice(choices, options) {
174
- const availableChoices = choices.filter(c => c.available);
175
- console.log('\n Available actions:');
176
- for (const choice of availableChoices) {
177
- console.log(` [${choice.key}] ${choice.description}`);
178
- }
179
- if (options.batchMode) {
180
- console.log(' [all] Apply to all similar files');
181
- }
182
- const rl = createInterface({
183
- input: process.stdin,
184
- output: process.stdout,
185
- });
186
- return new Promise(resolve => {
187
- const askQuestion = () => {
188
- rl.question('\n Your choice: ', answer => {
189
- const choice = answer.trim().toLowerCase();
190
- if (choice === 'h') {
191
- displayHelp();
192
- askQuestion();
193
- }
194
- else if (availableChoices.some(c => c.key === choice) || choice === 'all') {
195
- rl.close();
196
- resolve(choice);
197
- }
198
- else {
199
- console.log(' Invalid choice. Please try again.');
200
- askQuestion();
201
- }
202
- });
203
- };
204
- askQuestion();
205
- });
206
- }
207
- /**
208
- * Process user choice into action
209
- */
210
- function processChoice(choice, item, options) {
211
- switch (choice) {
212
- case 'a':
213
- return { type: 'approve', filePath: item.filePath };
214
- case 'r':
215
- return { type: 'reject', filePath: item.filePath, reason: 'User rejected' };
216
- case 'i':
217
- return { type: 'ignore', filePath: item.filePath };
218
- case 'm': {
219
- const targetDir = getMoveTarget(item);
220
- return { type: 'move', filePath: item.filePath, target: targetDir };
221
- }
222
- case 'v':
223
- viewFileContent(item.filePath);
224
- return processChoice(choice, item, options); // Re-prompt after viewing
225
- case 'e':
226
- editFile(item.filePath);
227
- return processChoice(choice, item, options); // Re-prompt after editing
228
- default:
229
- return { type: 'reject', filePath: item.filePath, reason: 'Invalid choice' };
230
- }
231
- }
232
- /**
233
- * Get move target from suggestions
234
- */
235
- function getMoveTarget(item) {
236
- const moveSuggestions = item.suggestions.filter(s => s.includes('Move') || s.includes('move'));
237
- if (moveSuggestions.length > 0) {
238
- console.log('\n Suggested locations:');
239
- for (let i = 0; i < moveSuggestions.length; i++) {
240
- console.log(` ${i + 1}. ${moveSuggestions[i]}`);
241
- }
242
- // For now, extract first suggested directory
243
- const firstSuggestion = moveSuggestions[0];
244
- if (firstSuggestion) {
245
- const dirMatch = firstSuggestion.match(/(?:to|in)\s+(\w+\/)/);
246
- return dirMatch ? dirMatch[1] : 'scripts/';
247
- }
248
- }
249
- return 'scripts/'; // Default fallback
250
- }
251
- /**
252
- * View file content
253
- */
254
- function viewFileContent(filePath) {
255
- try {
256
- const content = readFileSync(filePath, 'utf8');
257
- const lines = content.split('\n');
258
- console.log(`\n Content of ${filePath}:`);
259
- console.log(' ' + '='.repeat(50));
260
- // Show first 20 lines
261
- for (let i = 0; i < Math.min(20, lines.length); i++) {
262
- console.log(` ${(i + 1).toString().padStart(3)}: ${lines[i]}`);
263
- }
264
- if (lines.length > 20) {
265
- console.log(` ... (${lines.length - 20} more lines)`);
266
- }
267
- console.log(' ' + '='.repeat(50));
268
- }
269
- catch (error) {
270
- console.log(` Error reading file: ${error instanceof Error ? error.message : String(error)}`);
271
- }
272
- }
273
- /**
274
- * Edit file (placeholder - would open in editor)
275
- */
276
- function editFile(filePath) {
277
- console.log(`\n Opening ${filePath} in editor...`);
278
- console.log(' (This would open your default editor in a real implementation)');
279
- console.log(' Press Enter to continue after editing...');
280
- // In a real implementation, this would:
281
- // 1. Open the file in the user's default editor
282
- // 2. Wait for the editor to close
283
- // 3. Re-analyze the file for issues
284
- }
285
- /**
286
- * Apply action to result
287
- */
288
- function applyAction(action, result) {
289
- switch (action.type) {
290
- case 'approve':
291
- result.approved.push(action.filePath);
292
- break;
293
- case 'reject':
294
- result.rejected.push(action.filePath);
295
- break;
296
- case 'move':
297
- if (action.target) {
298
- result.moved.push({ from: action.filePath, to: action.target });
299
- }
300
- break;
301
- case 'ignore':
302
- result.ignored.push(action.filePath);
303
- break;
304
- }
305
- }
306
- /**
307
- * Display approval summary
308
- */
309
- function displayApprovalSummary(items) {
310
- console.log('\n' + '='.repeat(60));
311
- console.log('🔍 SMART GIT PUSH - VALIDATION RESULTS');
312
- console.log('='.repeat(60));
313
- const errorCount = items.filter(item => item.severity === 'error').length;
314
- const warningCount = items.filter(item => item.severity === 'warning').length;
315
- const infoCount = items.filter(item => item.severity === 'info').length;
316
- console.log(`📊 Summary: ${items.length} files with issues`);
317
- console.log(` 🚨 Errors: ${errorCount}`);
318
- console.log(` ⚠️ Warnings: ${warningCount}`);
319
- console.log(` 💡 Info: ${infoCount}`);
320
- if (errorCount > 0) {
321
- console.log('\n❌ Files with errors must be resolved before proceeding');
322
- }
323
- console.log('\n📋 Review each file and choose an action:');
324
- }
325
- /**
326
- * Get final confirmation
327
- */
328
- async function getFinalConfirmation(result, options) {
329
- console.log('\n' + '='.repeat(60));
330
- console.log('📋 FINAL SUMMARY');
331
- console.log('='.repeat(60));
332
- console.log(`✅ Approved: ${result.approved.length} files`);
333
- console.log(`❌ Rejected: ${result.rejected.length} files`);
334
- console.log(`📁 To Move: ${result.moved.length} files`);
335
- console.log(`🙈 To Ignore: ${result.ignored.length} files`);
336
- if (result.approved.length > 0) {
337
- console.log('\n✅ Files to be committed:');
338
- for (const file of result.approved) {
339
- console.log(` - ${file}`);
340
- }
341
- }
342
- if (result.rejected.length > 0) {
343
- console.log('\n❌ Files excluded from commit:');
344
- for (const file of result.rejected) {
345
- console.log(` - ${file}`);
346
- }
347
- }
348
- if (result.moved.length > 0) {
349
- console.log('\n📁 Files to be moved:');
350
- for (const move of result.moved) {
351
- console.log(` - ${move.from} → ${move.to}`);
352
- }
353
- }
354
- if (options.dryRun) {
355
- console.log('\n🔍 DRY RUN - No actual changes will be made');
356
- return true;
357
- }
358
- const rl = createInterface({
359
- input: process.stdin,
360
- output: process.stdout,
361
- });
362
- return new Promise(resolve => {
363
- rl.question('\n🚀 Proceed with git push? (y/N): ', answer => {
364
- rl.close();
365
- const proceed = answer.trim().toLowerCase() === 'y' || answer.trim().toLowerCase() === 'yes';
366
- resolve(proceed);
367
- });
368
- });
369
- }
370
- /**
371
- * Display help
372
- */
373
- function displayHelp() {
374
- console.log('\n' + '='.repeat(40));
375
- console.log('📖 HELP');
376
- console.log('='.repeat(40));
377
- console.log('Actions:');
378
- console.log(' [a] Approve - Include file in commit');
379
- console.log(' [r] Reject - Exclude file from commit');
380
- console.log(' [i] Ignore - Add file to .gitignore');
381
- console.log(' [m] Move - Move file to appropriate location');
382
- console.log(' [v] View - Show file content');
383
- console.log(' [e] Edit - Open file in editor');
384
- console.log(' [h] Help - Show this help');
385
- console.log('');
386
- console.log('Tips:');
387
- console.log(' - Files with errors must be resolved before proceeding');
388
- console.log(' - Use [m] to move files to proper directories');
389
- console.log(' - Use [i] to permanently ignore temporary files');
390
- console.log(' - Use [v] to examine file content before deciding');
391
- console.log('='.repeat(40));
392
- }
393
- /**
394
- * Batch approval for similar files
395
- */
396
- export function batchApproval(items, action, criteria) {
397
- const actions = [];
398
- const referenceItem = items.find(item => item.filePath === action.filePath);
399
- if (!referenceItem) {
400
- return [action];
401
- }
402
- for (const item of items) {
403
- let matches = true;
404
- if (criteria.sameSeverity && item.severity !== referenceItem.severity) {
405
- matches = false;
406
- }
407
- if (criteria.sameIssueType) {
408
- const itemTypes = item.issues.map(i => i.type);
409
- const refTypes = referenceItem.issues.map(i => i.type);
410
- if (!itemTypes.some(type => refTypes.includes(type))) {
411
- matches = false;
412
- }
413
- }
414
- if (matches) {
415
- actions.push({
416
- type: action.type,
417
- filePath: item.filePath,
418
- target: action.target,
419
- reason: `Batch ${action.type} - similar to ${action.filePath}`,
420
- });
421
- }
422
- }
423
- return actions;
424
- }
425
- /**
426
- * Save approval preferences for future use
427
- */
428
- export async function saveApprovalPreferences(actions, configPath = '.smartgit-approvals.json') {
429
- try {
430
- const preferences = {
431
- timestamp: new Date().toISOString(),
432
- actions: actions.map(action => ({
433
- pattern: action.filePath.replace(/[^/]+$/, '*'), // Replace filename with wildcard
434
- type: action.type,
435
- reason: action.reason,
436
- })),
437
- };
438
- writeFileSync(configPath, JSON.stringify(preferences, null, 2));
439
- console.log(`\n💾 Approval preferences saved to ${configPath}`);
440
- }
441
- catch (error) {
442
- console.log(`\n⚠️ Could not save preferences: ${error instanceof Error ? error.message : String(error)}`);
443
- }
444
- }
445
- //# sourceMappingURL=interactive-approval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactive-approval.js","sourceRoot":"","sources":["../../../src/utils/interactive-approval.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- /**
2
- * LLM Artifact Detection System
3
- *
4
- * Detects files and content generated by LLMs that may not be suitable for production
5
- * Focuses on development artifacts, debug scripts, and temporary files
6
- */
7
- export interface LLMArtifactPattern {
8
- name: string;
9
- description: string;
10
- category: 'debug' | 'testing' | 'documentation' | 'experimental' | 'temporary' | 'tutorial';
11
- severity: 'error' | 'warning' | 'info';
12
- filePattern?: RegExp;
13
- contentPattern?: RegExp;
14
- combinedPattern?: (fileName: string, content: string) => boolean;
15
- locationExceptions: string[];
16
- confidence: number;
17
- }
18
- export interface LLMArtifactMatch {
19
- pattern: LLMArtifactPattern;
20
- matchType: 'filename' | 'content' | 'combined';
21
- match: string;
22
- line?: number;
23
- context?: string;
24
- confidence: number;
25
- suggestions: string[];
26
- }
27
- export interface LLMArtifactResult {
28
- filePath: string;
29
- isLLMArtifact: boolean;
30
- matches: LLMArtifactMatch[];
31
- overallConfidence: number;
32
- severity: 'error' | 'warning' | 'info';
33
- recommendations: string[];
34
- allowedInCurrentLocation: boolean;
35
- }
36
- /**
37
- * Comprehensive LLM artifact patterns
38
- */
39
- export declare const LLM_ARTIFACT_PATTERNS: LLMArtifactPattern[];
40
- /**
41
- * Detect LLM artifacts in a file
42
- */
43
- export declare function detectLLMArtifacts(filePath: string, content: string, customPatterns?: LLMArtifactPattern[]): LLMArtifactResult;
44
- /**
45
- * Batch analyze multiple files
46
- */
47
- export declare function batchDetectLLMArtifacts(files: Array<{
48
- path: string;
49
- content: string;
50
- }>, customPatterns?: LLMArtifactPattern[]): LLMArtifactResult[];
51
- /**
52
- * Get summary statistics for LLM artifact detection
53
- */
54
- export declare function getLLMArtifactSummary(results: LLMArtifactResult[]): {
55
- totalFiles: number;
56
- artifactFiles: number;
57
- allowedFiles: number;
58
- errorCount: number;
59
- warningCount: number;
60
- infoCount: number;
61
- categorySummary: Record<string, number>;
62
- topPatterns: Array<{
63
- name: string;
64
- count: number;
65
- }>;
66
- };
67
- /**
68
- * Create a custom LLM artifact pattern
69
- */
70
- export declare function createLLMPattern(name: string, description: string, category: LLMArtifactPattern['category'], severity: LLMArtifactPattern['severity'], options: {
71
- filePattern?: string;
72
- contentPattern?: string;
73
- locationExceptions?: string[];
74
- confidence?: number;
75
- }): LLMArtifactPattern;
76
- //# sourceMappingURL=llm-artifact-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm-artifact-detector.d.ts","sourceRoot":"","sources":["../../../src/utils/llm-artifact-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5F,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACjE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,EAuLrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,kBAAkB,EAAO,GACxC,iBAAiB,CAqDnB;AAyMD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,cAAc,GAAE,kBAAkB,EAAO,GACxC,iBAAiB,EAAE,CAErB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD,CAgCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACxC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACxC,OAAO,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,kBAAkB,CAWpB"}