erosolar-cli 2.1.238 → 2.1.240

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 (142) hide show
  1. package/README.md +9 -0
  2. package/dist/contracts/tools.schema.json +3 -1
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +5 -1
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/agentOrchestrator.d.ts +4 -0
  7. package/dist/core/agentOrchestrator.d.ts.map +1 -1
  8. package/dist/core/agentOrchestrator.js +58 -6
  9. package/dist/core/agentOrchestrator.js.map +1 -1
  10. package/dist/core/autoExecutionOrchestrator.d.ts +172 -0
  11. package/dist/core/autoExecutionOrchestrator.d.ts.map +1 -0
  12. package/dist/core/autoExecutionOrchestrator.js +591 -0
  13. package/dist/core/autoExecutionOrchestrator.js.map +1 -0
  14. package/dist/core/contextManager.d.ts.map +1 -1
  15. package/dist/core/contextManager.js.map +1 -1
  16. package/dist/core/dualAgentOrchestrator.d.ts +34 -0
  17. package/dist/core/dualAgentOrchestrator.d.ts.map +1 -0
  18. package/dist/core/dualAgentOrchestrator.js +94 -0
  19. package/dist/core/dualAgentOrchestrator.js.map +1 -0
  20. package/dist/core/errors/safetyValidator.d.ts +25 -12
  21. package/dist/core/errors/safetyValidator.d.ts.map +1 -1
  22. package/dist/core/errors/safetyValidator.js +165 -17
  23. package/dist/core/errors/safetyValidator.js.map +1 -1
  24. package/dist/core/governmentProcedures.d.ts +118 -0
  25. package/dist/core/governmentProcedures.d.ts.map +1 -0
  26. package/dist/core/governmentProcedures.js +912 -0
  27. package/dist/core/governmentProcedures.js.map +1 -0
  28. package/dist/core/infrastructureTemplates.d.ts +123 -0
  29. package/dist/core/infrastructureTemplates.d.ts.map +1 -0
  30. package/dist/core/infrastructureTemplates.js +1326 -0
  31. package/dist/core/infrastructureTemplates.js.map +1 -0
  32. package/dist/core/integrityVerification.d.ts +250 -0
  33. package/dist/core/integrityVerification.d.ts.map +1 -0
  34. package/dist/core/integrityVerification.js +616 -0
  35. package/dist/core/integrityVerification.js.map +1 -0
  36. package/dist/core/orchestration.d.ts +534 -0
  37. package/dist/core/orchestration.d.ts.map +1 -0
  38. package/dist/core/orchestration.js +2009 -0
  39. package/dist/core/orchestration.js.map +1 -0
  40. package/dist/core/persistentObjectiveStore.d.ts +292 -0
  41. package/dist/core/persistentObjectiveStore.d.ts.map +1 -0
  42. package/dist/core/persistentObjectiveStore.js +613 -0
  43. package/dist/core/persistentObjectiveStore.js.map +1 -0
  44. package/dist/core/preferences.js +1 -1
  45. package/dist/core/preferences.js.map +1 -1
  46. package/dist/core/reliabilityPrompt.d.ts.map +1 -1
  47. package/dist/core/reliabilityPrompt.js +3 -0
  48. package/dist/core/reliabilityPrompt.js.map +1 -1
  49. package/dist/core/securityDeliverableGenerator.d.ts +292 -0
  50. package/dist/core/securityDeliverableGenerator.d.ts.map +1 -0
  51. package/dist/core/securityDeliverableGenerator.js +1590 -0
  52. package/dist/core/securityDeliverableGenerator.js.map +1 -0
  53. package/dist/core/taskCompletionDetector.d.ts.map +1 -1
  54. package/dist/core/taskCompletionDetector.js +4 -1
  55. package/dist/core/taskCompletionDetector.js.map +1 -1
  56. package/dist/shell/autoExecutor.d.ts.map +1 -1
  57. package/dist/shell/autoExecutor.js +32 -3
  58. package/dist/shell/autoExecutor.js.map +1 -1
  59. package/dist/shell/interactiveShell.d.ts +9 -0
  60. package/dist/shell/interactiveShell.d.ts.map +1 -1
  61. package/dist/shell/interactiveShell.js +282 -190
  62. package/dist/shell/interactiveShell.js.map +1 -1
  63. package/dist/tools/bashTools.d.ts +3 -5
  64. package/dist/tools/bashTools.d.ts.map +1 -1
  65. package/dist/tools/bashTools.js +259 -161
  66. package/dist/tools/bashTools.js.map +1 -1
  67. package/dist/tools/tao/index.d.ts +4 -4
  68. package/dist/tools/tao/index.d.ts.map +1 -1
  69. package/dist/tools/tao/index.js +15 -5
  70. package/dist/tools/tao/index.js.map +1 -1
  71. package/dist/tools/tao/rl.d.ts +164 -0
  72. package/dist/tools/tao/rl.d.ts.map +1 -0
  73. package/dist/tools/tao/rl.js +2998 -0
  74. package/dist/tools/tao/rl.js.map +1 -0
  75. package/dist/tools/taoTools.d.ts +2 -2
  76. package/dist/tools/taoTools.d.ts.map +1 -1
  77. package/dist/tools/taoTools.js +103 -20
  78. package/dist/tools/taoTools.js.map +1 -1
  79. package/dist/ui/PromptController.d.ts +3 -0
  80. package/dist/ui/PromptController.d.ts.map +1 -1
  81. package/dist/ui/PromptController.js +3 -0
  82. package/dist/ui/PromptController.js.map +1 -1
  83. package/dist/ui/UnifiedUIRenderer.d.ts +4 -0
  84. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  85. package/dist/ui/UnifiedUIRenderer.js +37 -6
  86. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  87. package/dist/ui/display.d.ts +9 -1
  88. package/dist/ui/display.d.ts.map +1 -1
  89. package/dist/ui/display.js +66 -9
  90. package/dist/ui/display.js.map +1 -1
  91. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  92. package/dist/ui/shortcutsHelp.js +1 -0
  93. package/dist/ui/shortcutsHelp.js.map +1 -1
  94. package/package.json +3 -2
  95. package/dist/capabilities/askUserCapability.d.ts +0 -14
  96. package/dist/capabilities/askUserCapability.d.ts.map +0 -1
  97. package/dist/capabilities/askUserCapability.js +0 -134
  98. package/dist/capabilities/askUserCapability.js.map +0 -1
  99. package/dist/capabilities/codeGenerationCapability.d.ts +0 -13
  100. package/dist/capabilities/codeGenerationCapability.d.ts.map +0 -1
  101. package/dist/capabilities/codeGenerationCapability.js +0 -25
  102. package/dist/capabilities/codeGenerationCapability.js.map +0 -1
  103. package/dist/capabilities/performanceMonitoringCapability.d.ts +0 -108
  104. package/dist/capabilities/performanceMonitoringCapability.d.ts.map +0 -1
  105. package/dist/capabilities/performanceMonitoringCapability.js +0 -176
  106. package/dist/capabilities/performanceMonitoringCapability.js.map +0 -1
  107. package/dist/capabilities/todoCapability.d.ts +0 -19
  108. package/dist/capabilities/todoCapability.d.ts.map +0 -1
  109. package/dist/capabilities/todoCapability.js +0 -170
  110. package/dist/capabilities/todoCapability.js.map +0 -1
  111. package/dist/core/baseToolFactory.d.ts +0 -187
  112. package/dist/core/baseToolFactory.d.ts.map +0 -1
  113. package/dist/core/baseToolFactory.js +0 -352
  114. package/dist/core/baseToolFactory.js.map +0 -1
  115. package/dist/core/intelligentSummarizer.d.ts +0 -79
  116. package/dist/core/intelligentSummarizer.d.ts.map +0 -1
  117. package/dist/core/intelligentSummarizer.js +0 -273
  118. package/dist/core/intelligentSummarizer.js.map +0 -1
  119. package/dist/core/memorySystem.d.ts +0 -67
  120. package/dist/core/memorySystem.d.ts.map +0 -1
  121. package/dist/core/memorySystem.js +0 -334
  122. package/dist/core/memorySystem.js.map +0 -1
  123. package/dist/core/outputStyles.d.ts +0 -48
  124. package/dist/core/outputStyles.d.ts.map +0 -1
  125. package/dist/core/outputStyles.js +0 -270
  126. package/dist/core/outputStyles.js.map +0 -1
  127. package/dist/core/toolPatternAnalyzer.d.ts +0 -87
  128. package/dist/core/toolPatternAnalyzer.d.ts.map +0 -1
  129. package/dist/core/toolPatternAnalyzer.js +0 -272
  130. package/dist/core/toolPatternAnalyzer.js.map +0 -1
  131. package/dist/tools/backgroundBashTools.d.ts +0 -21
  132. package/dist/tools/backgroundBashTools.d.ts.map +0 -1
  133. package/dist/tools/backgroundBashTools.js +0 -215
  134. package/dist/tools/backgroundBashTools.js.map +0 -1
  135. package/dist/tools/code-quality-dashboard.d.ts +0 -57
  136. package/dist/tools/code-quality-dashboard.d.ts.map +0 -1
  137. package/dist/tools/code-quality-dashboard.js +0 -218
  138. package/dist/tools/code-quality-dashboard.js.map +0 -1
  139. package/dist/tools/tao/rlEngine.d.ts +0 -40
  140. package/dist/tools/tao/rlEngine.d.ts.map +0 -1
  141. package/dist/tools/tao/rlEngine.js +0 -237
  142. package/dist/tools/tao/rlEngine.js.map +0 -1
@@ -1,273 +0,0 @@
1
- /**
2
- * Intelligent Tool Output Summarizer
3
- *
4
- * Critical for Claude Code operations: prevents context window overload while
5
- * maintaining essential information. Based on analysis of real Claude Code behavior.
6
- */
7
- /**
8
- * Intelligent summarizer that understands tool semantics
9
- * and extracts only what the AI needs to continue effectively
10
- */
11
- export class IntelligentToolSummarizer {
12
- // Thresholds for when to summarize (in characters)
13
- ALWAYS_SUMMARIZE_THRESHOLD = 15000;
14
- CONTEXT_AWARE_THRESHOLD = 8000;
15
- /**
16
- * Summarize tool output intelligently based on tool type and context
17
- */
18
- summarize(context) {
19
- const { toolName, output, outputSize } = context;
20
- // Never summarize if output is already small
21
- if (outputSize < 1000) {
22
- return {
23
- summary: output,
24
- wasSummarized: false,
25
- originalSize: outputSize,
26
- summarySize: outputSize,
27
- compressionRatio: 1.0,
28
- retainedKeyInfo: [],
29
- };
30
- }
31
- // Determine if we should summarize based on context
32
- const shouldSummarize = this.shouldSummarize(context);
33
- if (!shouldSummarize) {
34
- return {
35
- summary: output,
36
- wasSummarized: false,
37
- originalSize: outputSize,
38
- summarySize: outputSize,
39
- compressionRatio: 1.0,
40
- retainedKeyInfo: [],
41
- };
42
- }
43
- // Apply tool-specific summarization
44
- const summary = this.summarizeByToolType(toolName, output, context);
45
- return {
46
- summary,
47
- wasSummarized: true,
48
- originalSize: outputSize,
49
- summarySize: summary.length,
50
- compressionRatio: summary.length / outputSize,
51
- retainedKeyInfo: this.extractKeyInfo(toolName, output),
52
- };
53
- }
54
- /**
55
- * Determine if output should be summarized based on size and context
56
- */
57
- shouldSummarize(context) {
58
- const { outputSize, sessionDuration, previousToolCalls } = context;
59
- // Always summarize huge outputs
60
- if (outputSize > this.ALWAYS_SUMMARIZE_THRESHOLD) {
61
- return true;
62
- }
63
- // Be more aggressive if session is long or many tools have been called
64
- const isLongSession = sessionDuration > 300000; // 5 minutes
65
- const manyToolCalls = previousToolCalls.length > 20;
66
- if ((isLongSession || manyToolCalls) && outputSize > this.CONTEXT_AWARE_THRESHOLD) {
67
- return true;
68
- }
69
- return false;
70
- }
71
- /**
72
- * Apply tool-specific summarization strategies
73
- */
74
- summarizeByToolType(toolName, output, context) {
75
- const lowerTool = toolName.toLowerCase();
76
- // Read/file operations - show structure and key snippets
77
- if (lowerTool.includes('read') || lowerTool.includes('file')) {
78
- return this.summarizeFileContent(output, context);
79
- }
80
- // Search/grep operations - show match count and samples
81
- if (lowerTool.includes('search') || lowerTool.includes('grep') || lowerTool.includes('find')) {
82
- return this.summarizeSearchResults(output, context);
83
- }
84
- // Glob/list operations - show count and sample paths
85
- if (lowerTool.includes('glob') || lowerTool.includes('list')) {
86
- return this.summarizePathList(output);
87
- }
88
- // Test/build operations - show summary and failures
89
- if (lowerTool.includes('test') || lowerTool.includes('build') || lowerTool.includes('validate')) {
90
- return this.summarizeTestOutput(output);
91
- }
92
- // Bash/command execution - show key output and errors
93
- if (lowerTool.includes('bash') || lowerTool.includes('exec') || lowerTool.includes('command')) {
94
- return this.summarizeBashOutput(output);
95
- }
96
- // Analysis tools - keep full output for new tools
97
- if (lowerTool.includes('analyze') || lowerTool.includes('hypothesis') || lowerTool.includes('bug')) {
98
- return output; // Don't summarize our new analysis tools
99
- }
100
- // Default: intelligent truncation with key info extraction
101
- return this.defaultSummarization(output);
102
- }
103
- /**
104
- * Summarize file content - show structure and important sections
105
- */
106
- summarizeFileContent(output, context) {
107
- const lines = output.split('\n');
108
- const totalLines = lines.length;
109
- // For code files, extract structure (imports, exports, function/class definitions)
110
- const filePath = context.args['file_path'] || context.args['path'];
111
- const isCodeFile = typeof filePath === 'string' && /\.(ts|js|tsx|jsx|py|java|cpp|rs)$/.test(filePath);
112
- if (isCodeFile) {
113
- const structure = this.extractCodeStructure(lines);
114
- const filePathStr = typeof filePath === 'string' ? filePath : 'unknown';
115
- return `File: ${filePathStr}\nLines: ${totalLines}\n\nStructure:\n${structure}\n\n[Content summarized - ${totalLines} lines total]`;
116
- }
117
- // For other files, show beginning and end
118
- const preview = lines.slice(0, 30).join('\n');
119
- const epilogue = totalLines > 50 ? `\n...\n[${totalLines - 30} more lines omitted]` : '';
120
- return `${preview}${epilogue}`;
121
- }
122
- /**
123
- * Extract code structure (imports, classes, functions)
124
- */
125
- extractCodeStructure(lines) {
126
- const structure = [];
127
- for (const line of lines) {
128
- const trimmed = line.trim();
129
- // Imports/requires
130
- if (trimmed.startsWith('import ') || trimmed.startsWith('from ') ||
131
- trimmed.startsWith('require(') || trimmed.startsWith('const ') && trimmed.includes('require(')) {
132
- structure.push(trimmed);
133
- }
134
- // Class/interface/type definitions
135
- else if (/^(export\s+)?(class|interface|type|enum)\s+\w+/.test(trimmed)) {
136
- structure.push(trimmed.replace(/\{.*/, '{...}'));
137
- }
138
- // Function definitions
139
- else if (/^(export\s+)?(async\s+)?function\s+\w+/.test(trimmed) ||
140
- /^(export\s+)?const\s+\w+\s*=\s*(async\s*)?\(/.test(trimmed)) {
141
- structure.push(`${(trimmed.split('{')[0] ?? trimmed).trim()} {...}`);
142
- }
143
- }
144
- return structure.slice(0, 50).join('\n') || '[No significant structure found]';
145
- }
146
- /**
147
- * Summarize search results - show count and samples
148
- */
149
- summarizeSearchResults(output, context) {
150
- const lines = output.split('\n').filter(l => l.trim());
151
- const totalMatches = lines.length;
152
- if (totalMatches === 0) {
153
- return 'No matches found';
154
- }
155
- // Show first few matches and last few
156
- const sampleSize = 10;
157
- const firstSamples = lines.slice(0, sampleSize).join('\n');
158
- const lastSamples = totalMatches > sampleSize * 2
159
- ? `\n...\n${lines.slice(-5).join('\n')}`
160
- : '';
161
- const pattern = context.args['pattern'] || context.args['query'];
162
- return `Found ${totalMatches} matches for "${pattern}"\n\n${firstSamples}${lastSamples}`;
163
- }
164
- /**
165
- * Summarize path lists - show count and samples
166
- */
167
- summarizePathList(output) {
168
- const paths = output.split('\n').filter(p => p.trim());
169
- const total = paths.length;
170
- if (total === 0) {
171
- return 'No files found';
172
- }
173
- // Group by directory for better overview
174
- const byDir = new Map();
175
- for (const path of paths) {
176
- const dir = path.substring(0, path.lastIndexOf('/')) || '.';
177
- if (!byDir.has(dir))
178
- byDir.set(dir, []);
179
- const dirFiles = byDir.get(dir);
180
- if (dirFiles)
181
- dirFiles.push(path);
182
- }
183
- const dirSummary = Array.from(byDir.entries())
184
- .slice(0, 15)
185
- .map(([dir, files]) => `${dir}/ (${files.length} files)`)
186
- .join('\n');
187
- const samplePaths = paths.slice(0, 20).join('\n');
188
- const remaining = total > 20 ? `\n... and ${total - 20} more files` : '';
189
- return `Found ${total} files\n\nDirectory summary:\n${dirSummary}\n\nSample paths:\n${samplePaths}${remaining}`;
190
- }
191
- /**
192
- * Summarize test/build output - focus on failures
193
- */
194
- summarizeTestOutput(output) {
195
- const lines = output.split('\n');
196
- // Extract key test info
197
- const passed = (output.match(/(\d+) passed/i) || [])[1];
198
- const failed = (output.match(/(\d+) failed/i) || [])[1];
199
- const errors = lines.filter(l => /error|fail|✗|✕|×/i.test(l) && !l.includes('0 errors'));
200
- let summary = 'Test Results:\n';
201
- if (passed)
202
- summary += `✓ ${passed} passed\n`;
203
- if (failed)
204
- summary += `✗ ${failed} failed\n`;
205
- if (errors.length > 0) {
206
- summary += `\nFailures:\n${errors.slice(0, 20).join('\n')}`;
207
- if (errors.length > 20) {
208
- summary += `\n... and ${errors.length - 20} more errors`;
209
- }
210
- }
211
- return summary;
212
- }
213
- /**
214
- * Summarize bash command output - keep errors and key info
215
- */
216
- summarizeBashOutput(output) {
217
- const lines = output.split('\n');
218
- // If output has errors, prioritize those
219
- const errorLines = lines.filter(l => /error|fail|fatal|exception|warning/i.test(l));
220
- if (errorLines.length > 0) {
221
- return `Command output (${lines.length} lines):\n\nKey messages:\n${errorLines.slice(0, 30).join('\n')}`;
222
- }
223
- // Otherwise show beginning and end
224
- const preview = lines.slice(0, 20).join('\n');
225
- const epilogue = lines.length > 40
226
- ? `\n...\n${lines.slice(-10).join('\n')}`
227
- : lines.slice(20, 40).join('\n');
228
- return `${preview}${epilogue}`;
229
- }
230
- /**
231
- * Default summarization for unknown tool types
232
- */
233
- defaultSummarization(output) {
234
- const lines = output.split('\n');
235
- const total = lines.length;
236
- const preview = lines.slice(0, 50).join('\n');
237
- const epilogue = total > 100
238
- ? `\n...\n${lines.slice(-20).join('\n')}\n\n[${total - 70} lines omitted]`
239
- : total > 50
240
- ? `\n...\n${lines.slice(-10).join('\n')}`
241
- : '';
242
- return `${preview}${epilogue}`;
243
- }
244
- /**
245
- * Extract key information from output for tracking
246
- */
247
- extractKeyInfo(toolName, output) {
248
- const info = [];
249
- const lowerTool = toolName.toLowerCase();
250
- // For file operations, extract file paths
251
- if (lowerTool.includes('read') || lowerTool.includes('write') || lowerTool.includes('edit')) {
252
- const pathMatches = output.match(/(?:file|path):\s*([^\s\n]+)/gi);
253
- if (pathMatches)
254
- info.push(...pathMatches.slice(0, 5));
255
- }
256
- // For search, extract match counts
257
- if (lowerTool.includes('search') || lowerTool.includes('grep')) {
258
- const countMatch = output.match(/(\d+)\s+(matches|results|found)/i);
259
- if (countMatch)
260
- info.push(countMatch[0]);
261
- }
262
- // Extract error messages
263
- const errors = output.match(/error:.*$/gim);
264
- if (errors)
265
- info.push(...errors.slice(0, 3));
266
- return info;
267
- }
268
- }
269
- /**
270
- * Global singleton instance
271
- */
272
- export const intelligentSummarizer = new IntelligentToolSummarizer();
273
- //# sourceMappingURL=intelligentSummarizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intelligentSummarizer.js","sourceRoot":"","sources":["../../src/core/intelligentSummarizer.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Memory System - Erosolar-CLI Style (EROSOLAR.md)
3
- *
4
- * Hierarchical memory files for persistent context and project-specific instructions.
5
- * Similar to Erosolar-CLI's CLAUDE.md system.
6
- *
7
- * Memory Hierarchy (highest to lowest priority):
8
- * 1. Enterprise policy (~/.erosolar/EROSOLAR.md at OS level)
9
- * 2. User memory (~/.erosolar/EROSOLAR.md)
10
- * 3. Project memory (./EROSOLAR.md or ./.erosolar/EROSOLAR.md)
11
- * 4. Directory memory (./subdirectory/EROSOLAR.md - recursive discovery)
12
- *
13
- * Features:
14
- * - Automatic loading on session start
15
- * - Recursive discovery in file tree
16
- * - Import syntax (@path/to/import) for referencing other files
17
- * - Maximum 5-level import depth
18
- * - Quick addition via # prefix input
19
- * - Direct editing with /memory command
20
- */
21
- export interface MemoryFile {
22
- path: string;
23
- content: string;
24
- source: 'enterprise' | 'user' | 'project' | 'directory';
25
- priority: number;
26
- }
27
- export interface MemoryEntry {
28
- content: string;
29
- timestamp: number;
30
- source: string;
31
- }
32
- export interface MemorySystem {
33
- loadAllMemory(workingDir: string): MemoryFile[];
34
- loadMemoryFile(path: string): MemoryFile | null;
35
- saveToProjectMemory(workingDir: string, content: string): boolean;
36
- saveToUserMemory(content: string): boolean;
37
- appendToProjectMemory(workingDir: string, content: string): boolean;
38
- appendToUserMemory(content: string): boolean;
39
- getMemoryPaths(workingDir: string): string[];
40
- resolveImports(content: string, basePath: string, depth?: number): string;
41
- parseAtReferences(input: string, workingDir: string): {
42
- cleanInput: string;
43
- references: ReferencedFile[];
44
- };
45
- }
46
- export interface ReferencedFile {
47
- path: string;
48
- content: string;
49
- lineRange?: {
50
- start: number;
51
- end: number;
52
- };
53
- }
54
- /**
55
- * Create the memory system
56
- */
57
- export declare function createMemorySystem(): MemorySystem;
58
- /**
59
- * Format memory content for display in system prompt
60
- */
61
- export declare function formatMemoryForPrompt(memoryFiles: MemoryFile[]): string;
62
- /**
63
- * Format referenced files for prompt context
64
- */
65
- export declare function formatReferencesForPrompt(references: ReferencedFile[]): string;
66
- export declare function getMemorySystem(): MemorySystem;
67
- //# sourceMappingURL=memorySystem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memorySystem.d.ts","sourceRoot":"","sources":["../../src/core/memorySystem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAChD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAChD,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACpE,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1E,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC;CAC5G;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAsKD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAwJjD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAmBvE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,CAe9E;AAOD,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}