@omaikit/agents 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/dist/agent.d.ts +31 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +30 -0
- package/dist/agent.js.map +1 -0
- package/dist/ai-provider/anthropic.d.ts +13 -0
- package/dist/ai-provider/anthropic.d.ts.map +1 -0
- package/dist/ai-provider/anthropic.js +85 -0
- package/dist/ai-provider/anthropic.js.map +1 -0
- package/dist/ai-provider/factory.d.ts +3 -0
- package/dist/ai-provider/factory.d.ts.map +1 -0
- package/dist/ai-provider/factory.js +22 -0
- package/dist/ai-provider/factory.js.map +1 -0
- package/dist/ai-provider/openai.d.ts +16 -0
- package/dist/ai-provider/openai.d.ts.map +1 -0
- package/dist/ai-provider/openai.js +252 -0
- package/dist/ai-provider/openai.js.map +1 -0
- package/dist/ai-provider/provider.d.ts +25 -0
- package/dist/ai-provider/provider.d.ts.map +1 -0
- package/dist/ai-provider/provider.js +2 -0
- package/dist/ai-provider/provider.js.map +1 -0
- package/dist/ai-provider/token-manager.d.ts +12 -0
- package/dist/ai-provider/token-manager.d.ts.map +1 -0
- package/dist/ai-provider/token-manager.js +63 -0
- package/dist/ai-provider/token-manager.js.map +1 -0
- package/dist/coder/code-parser.d.ts +23 -0
- package/dist/coder/code-parser.d.ts.map +1 -0
- package/dist/coder/code-parser.js +184 -0
- package/dist/coder/code-parser.js.map +1 -0
- package/dist/coder/coder.d.ts +79 -0
- package/dist/coder/coder.d.ts.map +1 -0
- package/dist/coder/coder.js +476 -0
- package/dist/coder/coder.js.map +1 -0
- package/dist/coder/dependency-resolver.d.ts +23 -0
- package/dist/coder/dependency-resolver.d.ts.map +1 -0
- package/dist/coder/dependency-resolver.js +94 -0
- package/dist/coder/dependency-resolver.js.map +1 -0
- package/dist/coder/language-handlers.d.ts +38 -0
- package/dist/coder/language-handlers.d.ts.map +1 -0
- package/dist/coder/language-handlers.js +264 -0
- package/dist/coder/language-handlers.js.map +1 -0
- package/dist/coder/linter-integration.d.ts +37 -0
- package/dist/coder/linter-integration.d.ts.map +1 -0
- package/dist/coder/linter-integration.js +200 -0
- package/dist/coder/linter-integration.js.map +1 -0
- package/dist/coder/prompt-templates.d.ts +13 -0
- package/dist/coder/prompt-templates.d.ts.map +1 -0
- package/dist/coder/prompt-templates.js +78 -0
- package/dist/coder/prompt-templates.js.map +1 -0
- package/dist/coder/quality-checker.d.ts +31 -0
- package/dist/coder/quality-checker.d.ts.map +1 -0
- package/dist/coder/quality-checker.js +264 -0
- package/dist/coder/quality-checker.js.map +1 -0
- package/dist/coder/syntax-validator.d.ts +21 -0
- package/dist/coder/syntax-validator.d.ts.map +1 -0
- package/dist/coder/syntax-validator.js +169 -0
- package/dist/coder/syntax-validator.js.map +1 -0
- package/dist/coder.d.ts +2 -0
- package/dist/coder.d.ts.map +1 -0
- package/dist/coder.js +2 -0
- package/dist/coder.js.map +1 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +16 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +6 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +12 -0
- package/dist/logger.js.map +1 -0
- package/dist/manager/manager.d.ts +31 -0
- package/dist/manager/manager.d.ts.map +1 -0
- package/dist/manager/manager.js +162 -0
- package/dist/manager/manager.js.map +1 -0
- package/dist/memory/memory-store.d.ts +20 -0
- package/dist/memory/memory-store.d.ts.map +1 -0
- package/dist/memory/memory-store.js +68 -0
- package/dist/memory/memory-store.js.map +1 -0
- package/dist/planner/clarification-handler.d.ts +11 -0
- package/dist/planner/clarification-handler.d.ts.map +1 -0
- package/dist/planner/clarification-handler.js +60 -0
- package/dist/planner/clarification-handler.js.map +1 -0
- package/dist/planner/plan-parser.d.ts +11 -0
- package/dist/planner/plan-parser.d.ts.map +1 -0
- package/dist/planner/plan-parser.js +136 -0
- package/dist/planner/plan-parser.js.map +1 -0
- package/dist/planner/plan-validator.d.ts +29 -0
- package/dist/planner/plan-validator.d.ts.map +1 -0
- package/dist/planner/plan-validator.js +123 -0
- package/dist/planner/plan-validator.js.map +1 -0
- package/dist/planner/planner.d.ts +25 -0
- package/dist/planner/planner.d.ts.map +1 -0
- package/dist/planner/planner.js +334 -0
- package/dist/planner/planner.js.map +1 -0
- package/dist/planner/prompt-templates.d.ts +9 -0
- package/dist/planner/prompt-templates.d.ts.map +1 -0
- package/dist/planner/prompt-templates.js +168 -0
- package/dist/planner/prompt-templates.js.map +1 -0
- package/dist/planner.d.ts +2 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +2 -0
- package/dist/planner.js.map +1 -0
- package/dist/reviewer/reviewer.d.ts +29 -0
- package/dist/reviewer/reviewer.d.ts.map +1 -0
- package/dist/reviewer/reviewer.js +40 -0
- package/dist/reviewer/reviewer.js.map +1 -0
- package/dist/reviewer.d.ts +2 -0
- package/dist/reviewer.d.ts.map +1 -0
- package/dist/reviewer.js +2 -0
- package/dist/reviewer.js.map +1 -0
- package/dist/tester/coverage-analyzer.d.ts +9 -0
- package/dist/tester/coverage-analyzer.d.ts.map +1 -0
- package/dist/tester/coverage-analyzer.js +18 -0
- package/dist/tester/coverage-analyzer.js.map +1 -0
- package/dist/tester/coverage-validator.d.ts +10 -0
- package/dist/tester/coverage-validator.d.ts.map +1 -0
- package/dist/tester/coverage-validator.js +14 -0
- package/dist/tester/coverage-validator.js.map +1 -0
- package/dist/tester/framework-detector.d.ts +4 -0
- package/dist/tester/framework-detector.d.ts.map +1 -0
- package/dist/tester/framework-detector.js +26 -0
- package/dist/tester/framework-detector.js.map +1 -0
- package/dist/tester/prompt-templates.d.ts +6 -0
- package/dist/tester/prompt-templates.d.ts.map +1 -0
- package/dist/tester/prompt-templates.js +30 -0
- package/dist/tester/prompt-templates.js.map +1 -0
- package/dist/tester/test-executor.d.ts +11 -0
- package/dist/tester/test-executor.d.ts.map +1 -0
- package/dist/tester/test-executor.js +24 -0
- package/dist/tester/test-executor.js.map +1 -0
- package/dist/tester/test-parser.d.ts +10 -0
- package/dist/tester/test-parser.d.ts.map +1 -0
- package/dist/tester/test-parser.js +83 -0
- package/dist/tester/test-parser.js.map +1 -0
- package/dist/tester/test-patterns.d.ts +10 -0
- package/dist/tester/test-patterns.d.ts.map +1 -0
- package/dist/tester/test-patterns.js +65 -0
- package/dist/tester/test-patterns.js.map +1 -0
- package/dist/tester/tester.d.ts +56 -0
- package/dist/tester/tester.d.ts.map +1 -0
- package/dist/tester/tester.js +246 -0
- package/dist/tester/tester.js.map +1 -0
- package/dist/tester.d.ts +3 -0
- package/dist/tester.d.ts.map +1 -0
- package/dist/tester.js +2 -0
- package/dist/tester.js.map +1 -0
- package/dist/tools/default-registry.d.ts +3 -0
- package/dist/tools/default-registry.d.ts.map +1 -0
- package/dist/tools/default-registry.js +12 -0
- package/dist/tools/default-registry.js.map +1 -0
- package/dist/tools/edit.d.ts +4 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +95 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/read.d.ts +4 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +39 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/registry.d.ts +11 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +31 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search.d.ts +4 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +52 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/types.d.ts +37 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/utils.d.ts +10 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +76 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Handler Registry
|
|
3
|
+
* Provides language-specific code generation and validation support
|
|
4
|
+
*/
|
|
5
|
+
export class LanguageHandlers {
|
|
6
|
+
handlers;
|
|
7
|
+
constructor() {
|
|
8
|
+
this.handlers = new Map();
|
|
9
|
+
this.registerDefaultHandlers();
|
|
10
|
+
}
|
|
11
|
+
registerDefaultHandlers() {
|
|
12
|
+
// Generic fallback
|
|
13
|
+
this.register({
|
|
14
|
+
name: 'generic',
|
|
15
|
+
extensions: ['.txt'],
|
|
16
|
+
syntaxValidator: () => true,
|
|
17
|
+
dependencyExtractor: () => [],
|
|
18
|
+
linterConfig: {},
|
|
19
|
+
formatter: (code) => code,
|
|
20
|
+
errorHandlingPattern: 'try-catch',
|
|
21
|
+
loggingPattern: 'logger.info/error',
|
|
22
|
+
});
|
|
23
|
+
// TypeScript/JavaScript
|
|
24
|
+
this.register({
|
|
25
|
+
name: 'typescript',
|
|
26
|
+
extensions: ['.ts', '.tsx'],
|
|
27
|
+
syntaxValidator: this.validateTypeScript,
|
|
28
|
+
dependencyExtractor: this.extractTypeScriptDependencies,
|
|
29
|
+
linterConfig: {
|
|
30
|
+
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
|
|
31
|
+
rules: {
|
|
32
|
+
'no-console': 'warn',
|
|
33
|
+
'no-unused-vars': 'error',
|
|
34
|
+
'consistent-return': 'error',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
formatter: (code) => code, // Prettier would handle this
|
|
38
|
+
errorHandlingPattern: 'try-catch',
|
|
39
|
+
loggingPattern: 'logger.log/error/warn',
|
|
40
|
+
});
|
|
41
|
+
this.register({
|
|
42
|
+
name: 'javascript',
|
|
43
|
+
extensions: ['.js', '.jsx'],
|
|
44
|
+
syntaxValidator: this.validateJavaScript,
|
|
45
|
+
dependencyExtractor: this.extractJavaScriptDependencies,
|
|
46
|
+
linterConfig: {
|
|
47
|
+
extends: 'eslint:recommended',
|
|
48
|
+
rules: {
|
|
49
|
+
'no-unused-vars': 'error',
|
|
50
|
+
'consistent-return': 'error',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
formatter: (code) => code,
|
|
54
|
+
errorHandlingPattern: 'try-catch',
|
|
55
|
+
loggingPattern: 'console.log/error',
|
|
56
|
+
});
|
|
57
|
+
// Python
|
|
58
|
+
this.register({
|
|
59
|
+
name: 'python',
|
|
60
|
+
extensions: ['.py'],
|
|
61
|
+
syntaxValidator: this.validatePython,
|
|
62
|
+
dependencyExtractor: this.extractPythonDependencies,
|
|
63
|
+
linterConfig: {
|
|
64
|
+
extend: 'pylint:all',
|
|
65
|
+
disable: ['missing-docstring'],
|
|
66
|
+
max_line_length: 100,
|
|
67
|
+
},
|
|
68
|
+
formatter: (code) => code, // Black would handle this
|
|
69
|
+
errorHandlingPattern: 'try-except',
|
|
70
|
+
loggingPattern: 'logging.log/error/warning',
|
|
71
|
+
});
|
|
72
|
+
// Go
|
|
73
|
+
this.register({
|
|
74
|
+
name: 'go',
|
|
75
|
+
extensions: ['.go'],
|
|
76
|
+
syntaxValidator: this.validateGo,
|
|
77
|
+
dependencyExtractor: this.extractGoDependencies,
|
|
78
|
+
linterConfig: {
|
|
79
|
+
golangci_lint: {
|
|
80
|
+
linters: ['vet', 'golint', 'ineffassign'],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
formatter: (code) => code, // gofmt would handle this
|
|
84
|
+
errorHandlingPattern: 'error-return',
|
|
85
|
+
loggingPattern: 'log.Printf/Println',
|
|
86
|
+
});
|
|
87
|
+
// Rust
|
|
88
|
+
this.register({
|
|
89
|
+
name: 'rust',
|
|
90
|
+
extensions: ['.rs'],
|
|
91
|
+
syntaxValidator: this.validateRust,
|
|
92
|
+
dependencyExtractor: this.extractRustDependencies,
|
|
93
|
+
linterConfig: {
|
|
94
|
+
lint: ['clippy'],
|
|
95
|
+
},
|
|
96
|
+
formatter: (code) => code, // rustfmt would handle this
|
|
97
|
+
errorHandlingPattern: 'result-type',
|
|
98
|
+
loggingPattern: 'log::info/error/warn',
|
|
99
|
+
});
|
|
100
|
+
// C#
|
|
101
|
+
this.register({
|
|
102
|
+
name: 'csharp',
|
|
103
|
+
extensions: ['.cs'],
|
|
104
|
+
syntaxValidator: this.validateCsharp,
|
|
105
|
+
dependencyExtractor: this.extractCsharpDependencies,
|
|
106
|
+
linterConfig: {
|
|
107
|
+
roslyn_analyzers: ['enabled'],
|
|
108
|
+
},
|
|
109
|
+
formatter: (code) => code,
|
|
110
|
+
errorHandlingPattern: 'try-catch',
|
|
111
|
+
loggingPattern: 'ILogger.Log/Error',
|
|
112
|
+
});
|
|
113
|
+
// PHP
|
|
114
|
+
this.register({
|
|
115
|
+
name: 'php',
|
|
116
|
+
extensions: ['.php'],
|
|
117
|
+
syntaxValidator: this.validatePhp,
|
|
118
|
+
dependencyExtractor: this.extractPhpDependencies,
|
|
119
|
+
linterConfig: {
|
|
120
|
+
standard: 'PSR12',
|
|
121
|
+
},
|
|
122
|
+
formatter: (code) => code,
|
|
123
|
+
errorHandlingPattern: 'try-catch',
|
|
124
|
+
loggingPattern: 'logger->info/error',
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
register(handler) {
|
|
128
|
+
this.handlers.set(handler.name, handler);
|
|
129
|
+
this.handlers.set(handler.extensions[0].slice(1), handler); // Register by extension too
|
|
130
|
+
}
|
|
131
|
+
getHandler(language) {
|
|
132
|
+
const handler = this.handlers.get(language);
|
|
133
|
+
if (handler) {
|
|
134
|
+
return handler;
|
|
135
|
+
}
|
|
136
|
+
return this.handlers.get('generic');
|
|
137
|
+
}
|
|
138
|
+
supportedLanguages() {
|
|
139
|
+
return Array.from(new Set(Array.from(this.handlers.values()).map((h) => h.name)));
|
|
140
|
+
}
|
|
141
|
+
getHandlerByExtension(extension) {
|
|
142
|
+
return this.handlers.get(extension);
|
|
143
|
+
}
|
|
144
|
+
// Validation methods
|
|
145
|
+
validateTypeScript(code) {
|
|
146
|
+
// Basic validation - check for balanced braces and parens
|
|
147
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
148
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
149
|
+
const openParens = (code.match(/\(/g) || []).length;
|
|
150
|
+
const closeParens = (code.match(/\)/g) || []).length;
|
|
151
|
+
return openBraces === closeBraces && openParens === closeParens;
|
|
152
|
+
}
|
|
153
|
+
validateJavaScript(code) {
|
|
154
|
+
return this.validateTypeScript(code);
|
|
155
|
+
}
|
|
156
|
+
validatePython(code) {
|
|
157
|
+
// Python: check indentation and basic syntax
|
|
158
|
+
const lines = code.split('\n');
|
|
159
|
+
let lastIndent = 0;
|
|
160
|
+
for (const line of lines) {
|
|
161
|
+
if (line.trim() === '' || line.trim().startsWith('#'))
|
|
162
|
+
continue;
|
|
163
|
+
const indent = line.length - line.trimStart().length;
|
|
164
|
+
// Allow increase of up to 4 spaces
|
|
165
|
+
if (indent > lastIndent && indent - lastIndent > 4) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
lastIndent = indent;
|
|
169
|
+
}
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
validateGo(code) {
|
|
173
|
+
// Basic Go validation
|
|
174
|
+
return code.includes('package ') && this.validateTypeScript(code);
|
|
175
|
+
}
|
|
176
|
+
validateRust(code) {
|
|
177
|
+
// Basic Rust validation
|
|
178
|
+
return this.validateTypeScript(code);
|
|
179
|
+
}
|
|
180
|
+
validateCsharp(code) {
|
|
181
|
+
// Basic C# validation
|
|
182
|
+
return this.validateTypeScript(code);
|
|
183
|
+
}
|
|
184
|
+
validatePhp(code) {
|
|
185
|
+
const hasPhpTag = code.includes('<?php');
|
|
186
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
187
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
188
|
+
return hasPhpTag && openBraces === closeBraces;
|
|
189
|
+
}
|
|
190
|
+
// Dependency extraction methods
|
|
191
|
+
extractTypeScriptDependencies(code) {
|
|
192
|
+
const imports = [];
|
|
193
|
+
const importRegex = /(?:import|from)\s+['"]([^'"]+)['"]/g;
|
|
194
|
+
let match;
|
|
195
|
+
while ((match = importRegex.exec(code)) !== null) {
|
|
196
|
+
imports.push(match[1]);
|
|
197
|
+
}
|
|
198
|
+
return [...new Set(imports)];
|
|
199
|
+
}
|
|
200
|
+
extractJavaScriptDependencies(code) {
|
|
201
|
+
return this.extractTypeScriptDependencies(code).concat(...(code.match(/require\(['"]([^'"]+)['"]\)/g) || []).map((m) => m.match(/require\(['"]([^'"]+)['"]\)/)?.[1] || ''));
|
|
202
|
+
}
|
|
203
|
+
extractPythonDependencies(code) {
|
|
204
|
+
const imports = [];
|
|
205
|
+
const fromImportRegex = /from\s+([^\s]+)\s+import/g;
|
|
206
|
+
const importRegex = /import\s+([^\s]+)/g;
|
|
207
|
+
let match;
|
|
208
|
+
while ((match = fromImportRegex.exec(code)) !== null) {
|
|
209
|
+
imports.push(match[1]);
|
|
210
|
+
}
|
|
211
|
+
while ((match = importRegex.exec(code)) !== null) {
|
|
212
|
+
imports.push(match[1]);
|
|
213
|
+
}
|
|
214
|
+
return [...new Set(imports)];
|
|
215
|
+
}
|
|
216
|
+
extractGoDependencies(code) {
|
|
217
|
+
const imports = [];
|
|
218
|
+
const importRegex = /import\s+(?:\(([^)]+)\)|"([^"]+)")/g;
|
|
219
|
+
let match;
|
|
220
|
+
while ((match = importRegex.exec(code)) !== null) {
|
|
221
|
+
const group = match[1] || match[2];
|
|
222
|
+
if (group) {
|
|
223
|
+
group.split('\n').forEach((line) => {
|
|
224
|
+
const pkg = line.match(/"([^"]+)"/)?.[1];
|
|
225
|
+
if (pkg)
|
|
226
|
+
imports.push(pkg);
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return [...new Set(imports)];
|
|
231
|
+
}
|
|
232
|
+
extractRustDependencies(code) {
|
|
233
|
+
const imports = [];
|
|
234
|
+
const useRegex = /use\s+([^;]+);/g;
|
|
235
|
+
let match;
|
|
236
|
+
while ((match = useRegex.exec(code)) !== null) {
|
|
237
|
+
imports.push(match[1].trim());
|
|
238
|
+
}
|
|
239
|
+
return [...new Set(imports)];
|
|
240
|
+
}
|
|
241
|
+
extractCsharpDependencies(code) {
|
|
242
|
+
const imports = [];
|
|
243
|
+
const usingRegex = /using\s+([^\s;]+);/g;
|
|
244
|
+
let match;
|
|
245
|
+
while ((match = usingRegex.exec(code)) !== null) {
|
|
246
|
+
imports.push(match[1]);
|
|
247
|
+
}
|
|
248
|
+
return [...new Set(imports)];
|
|
249
|
+
}
|
|
250
|
+
extractPhpDependencies(code) {
|
|
251
|
+
const dependencies = [];
|
|
252
|
+
const useRegex = /use\s+([^;]+);/g;
|
|
253
|
+
const requireRegex = /(require|include)(_once)?\s*\(?['"]([^'"]+)['"]\)?/g;
|
|
254
|
+
let match;
|
|
255
|
+
while ((match = useRegex.exec(code)) !== null) {
|
|
256
|
+
dependencies.push(match[1].trim());
|
|
257
|
+
}
|
|
258
|
+
while ((match = requireRegex.exec(code)) !== null) {
|
|
259
|
+
dependencies.push(match[3].trim());
|
|
260
|
+
}
|
|
261
|
+
return [...new Set(dependencies)];
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=language-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-handlers.js","sourceRoot":"","sources":["../../src/coder/language-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Linter Integration
|
|
3
|
+
* Integrates language-specific linters for code quality checking
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeFile } from '@omaikit/models';
|
|
6
|
+
export interface LintIssue {
|
|
7
|
+
rule: string;
|
|
8
|
+
severity: 'error' | 'warning' | 'info';
|
|
9
|
+
message: string;
|
|
10
|
+
line?: number;
|
|
11
|
+
column?: number;
|
|
12
|
+
suggestion?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface LintResult {
|
|
15
|
+
file: string;
|
|
16
|
+
issues: LintIssue[];
|
|
17
|
+
score: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class LinterIntegration {
|
|
20
|
+
private languageHandlers;
|
|
21
|
+
constructor();
|
|
22
|
+
init(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Lint generated code files
|
|
25
|
+
*/
|
|
26
|
+
lint(files: CodeFile[]): Promise<LintResult[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Lint a single file
|
|
29
|
+
*/
|
|
30
|
+
private lintFile;
|
|
31
|
+
private lintTypeScript;
|
|
32
|
+
private lintPython;
|
|
33
|
+
private lintGo;
|
|
34
|
+
private lintRust;
|
|
35
|
+
private lintCsharp;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=linter-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linter-integration.d.ts","sourceRoot":"","sources":["../../src/coder/linter-integration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,gBAAgB,CAAmB;;IAMrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIpD;;OAEG;IACH,OAAO,CAAC,QAAQ;IA+BhB,OAAO,CAAC,cAAc;IA+DtB,OAAO,CAAC,UAAU;IAuClB,OAAO,CAAC,MAAM;IAsBd,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,UAAU;CA4BnB"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Linter Integration
|
|
3
|
+
* Integrates language-specific linters for code quality checking
|
|
4
|
+
*/
|
|
5
|
+
import { LanguageHandlers } from './language-handlers.js';
|
|
6
|
+
export class LinterIntegration {
|
|
7
|
+
languageHandlers;
|
|
8
|
+
constructor() {
|
|
9
|
+
this.languageHandlers = new LanguageHandlers();
|
|
10
|
+
}
|
|
11
|
+
async init() {
|
|
12
|
+
// Initialize linters
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Lint generated code files
|
|
16
|
+
*/
|
|
17
|
+
async lint(files) {
|
|
18
|
+
return files.map((file) => this.lintFile(file));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Lint a single file
|
|
22
|
+
*/
|
|
23
|
+
lintFile(file) {
|
|
24
|
+
const language = file.language || 'unknown';
|
|
25
|
+
const issues = [];
|
|
26
|
+
// Perform language-specific linting
|
|
27
|
+
switch (language) {
|
|
28
|
+
case 'typescript':
|
|
29
|
+
case 'javascript':
|
|
30
|
+
return this.lintTypeScript(file);
|
|
31
|
+
case 'python':
|
|
32
|
+
return this.lintPython(file);
|
|
33
|
+
case 'go':
|
|
34
|
+
return this.lintGo(file);
|
|
35
|
+
case 'rust':
|
|
36
|
+
return this.lintRust(file);
|
|
37
|
+
case 'csharp':
|
|
38
|
+
return this.lintCsharp(file);
|
|
39
|
+
default:
|
|
40
|
+
return {
|
|
41
|
+
file: file.path,
|
|
42
|
+
issues: [],
|
|
43
|
+
score: 100,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
lintTypeScript(file) {
|
|
48
|
+
const issues = [];
|
|
49
|
+
const lines = file.content.split('\n');
|
|
50
|
+
let score = 100;
|
|
51
|
+
lines.forEach((line, idx) => {
|
|
52
|
+
const lineNum = idx + 1;
|
|
53
|
+
// Check for console statements (should use logger)
|
|
54
|
+
if (line.includes('console.log') || line.includes('console.error')) {
|
|
55
|
+
issues.push({
|
|
56
|
+
rule: 'no-console',
|
|
57
|
+
severity: 'warning',
|
|
58
|
+
message: 'Use logger instead of console',
|
|
59
|
+
line: lineNum,
|
|
60
|
+
suggestion: 'Replace with logger.info() or logger.error()',
|
|
61
|
+
});
|
|
62
|
+
score -= 2;
|
|
63
|
+
}
|
|
64
|
+
// Check for var usage (should use const/let)
|
|
65
|
+
if (line.match(/\bvar\b/)) {
|
|
66
|
+
issues.push({
|
|
67
|
+
rule: 'no-var',
|
|
68
|
+
severity: 'error',
|
|
69
|
+
message: 'Use const or let instead of var',
|
|
70
|
+
line: lineNum,
|
|
71
|
+
suggestion: 'Replace var with const',
|
|
72
|
+
});
|
|
73
|
+
score -= 5;
|
|
74
|
+
}
|
|
75
|
+
// Check line length
|
|
76
|
+
if (line.length > 100) {
|
|
77
|
+
issues.push({
|
|
78
|
+
rule: 'max-len',
|
|
79
|
+
severity: 'info',
|
|
80
|
+
message: 'Line exceeds 100 characters',
|
|
81
|
+
line: lineNum,
|
|
82
|
+
suggestion: 'Break line into multiple lines',
|
|
83
|
+
});
|
|
84
|
+
score -= 1;
|
|
85
|
+
}
|
|
86
|
+
// Check for trailing whitespace
|
|
87
|
+
if (line.endsWith(' ') || line.endsWith('\t')) {
|
|
88
|
+
issues.push({
|
|
89
|
+
rule: 'no-trailing-spaces',
|
|
90
|
+
severity: 'info',
|
|
91
|
+
message: 'Trailing whitespace',
|
|
92
|
+
line: lineNum,
|
|
93
|
+
});
|
|
94
|
+
score -= 1;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
file: file.path,
|
|
99
|
+
issues,
|
|
100
|
+
score: Math.max(0, score),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
lintPython(file) {
|
|
104
|
+
const issues = [];
|
|
105
|
+
let score = 100;
|
|
106
|
+
const lines = file.content.split('\n');
|
|
107
|
+
lines.forEach((line, idx) => {
|
|
108
|
+
const lineNum = idx + 1;
|
|
109
|
+
// Check for print statements (should use logging)
|
|
110
|
+
if (line.includes('print(')) {
|
|
111
|
+
issues.push({
|
|
112
|
+
rule: 'no-print',
|
|
113
|
+
severity: 'warning',
|
|
114
|
+
message: 'Use logging instead of print',
|
|
115
|
+
line: lineNum,
|
|
116
|
+
suggestion: 'Use logger.info() or logger.error()',
|
|
117
|
+
});
|
|
118
|
+
score -= 2;
|
|
119
|
+
}
|
|
120
|
+
// Check line length
|
|
121
|
+
if (line.length > 100) {
|
|
122
|
+
issues.push({
|
|
123
|
+
rule: 'line-too-long',
|
|
124
|
+
severity: 'info',
|
|
125
|
+
message: 'Line exceeds 100 characters',
|
|
126
|
+
line: lineNum,
|
|
127
|
+
});
|
|
128
|
+
score -= 1;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
file: file.path,
|
|
133
|
+
issues,
|
|
134
|
+
score: Math.max(0, score),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
lintGo(file) {
|
|
138
|
+
const issues = [];
|
|
139
|
+
let score = 100;
|
|
140
|
+
// Check for error handling
|
|
141
|
+
if (!file.content.includes('error')) {
|
|
142
|
+
issues.push({
|
|
143
|
+
rule: 'unhandled-error',
|
|
144
|
+
severity: 'warning',
|
|
145
|
+
message: 'No error handling found',
|
|
146
|
+
suggestion: 'Add error checking for function calls',
|
|
147
|
+
});
|
|
148
|
+
score -= 5;
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
file: file.path,
|
|
152
|
+
issues,
|
|
153
|
+
score: Math.max(0, score),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
lintRust(file) {
|
|
157
|
+
const issues = [];
|
|
158
|
+
let score = 100;
|
|
159
|
+
// Rust compiler is strict, mostly check for style
|
|
160
|
+
if (!file.content.includes('// ') && file.content.length > 100) {
|
|
161
|
+
issues.push({
|
|
162
|
+
rule: 'missing-comments',
|
|
163
|
+
severity: 'info',
|
|
164
|
+
message: 'Code could benefit from more comments',
|
|
165
|
+
});
|
|
166
|
+
score -= 2;
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
file: file.path,
|
|
170
|
+
issues,
|
|
171
|
+
score: Math.max(0, score),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
lintCsharp(file) {
|
|
175
|
+
const issues = [];
|
|
176
|
+
let score = 100;
|
|
177
|
+
const lines = file.content.split('\n');
|
|
178
|
+
lines.forEach((line, idx) => {
|
|
179
|
+
const lineNum = idx + 1;
|
|
180
|
+
// Check for missing XML documentation
|
|
181
|
+
if (line.match(/^\s*(public|protected)\s+(class|interface|struct|enum|async\s)?/)) {
|
|
182
|
+
if (!lines[idx - 1]?.includes('///')) {
|
|
183
|
+
issues.push({
|
|
184
|
+
rule: 'missing-xml-doc',
|
|
185
|
+
severity: 'info',
|
|
186
|
+
message: 'Public member missing XML documentation',
|
|
187
|
+
line: lineNum,
|
|
188
|
+
});
|
|
189
|
+
score -= 2;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
return {
|
|
194
|
+
file: file.path,
|
|
195
|
+
issues,
|
|
196
|
+
score: Math.max(0, score),
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=linter-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linter-integration.js","sourceRoot":"","sources":["../../src/coder/linter-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Generation Prompt Templates
|
|
3
|
+
*/
|
|
4
|
+
import type { Task } from '@omaikit/models';
|
|
5
|
+
export declare class PromptTemplates {
|
|
6
|
+
/**
|
|
7
|
+
* Generate a prompt for code generation
|
|
8
|
+
*/
|
|
9
|
+
generatePrompt(task: Task, projectContext: any, plan: any): Promise<string>;
|
|
10
|
+
private getBasePrompt;
|
|
11
|
+
private formatContextSummary;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=prompt-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-templates.d.ts","sourceRoot":"","sources":["../../src/coder/prompt-templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,eAAe;IAC1B;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCjF,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,oBAAoB;CA0B7B"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Generation Prompt Templates
|
|
3
|
+
*/
|
|
4
|
+
export class PromptTemplates {
|
|
5
|
+
/**
|
|
6
|
+
* Generate a prompt for code generation
|
|
7
|
+
*/
|
|
8
|
+
async generatePrompt(task, projectContext, plan) {
|
|
9
|
+
const basePrompt = this.getBasePrompt();
|
|
10
|
+
const contextSummary = this.formatContextSummary(projectContext, plan);
|
|
11
|
+
return `
|
|
12
|
+
${basePrompt}
|
|
13
|
+
|
|
14
|
+
## Task Details
|
|
15
|
+
Title: ${task.title}
|
|
16
|
+
Description: ${task.description}
|
|
17
|
+
Type: ${task.type}
|
|
18
|
+
Estimated Effort: ${task.estimatedEffort} hours
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria
|
|
21
|
+
${task.acceptanceCriteria.map((c) => `- ${c}`).join('\n')}
|
|
22
|
+
|
|
23
|
+
## Project Context (from .omaikit/context.json)
|
|
24
|
+
${contextSummary}
|
|
25
|
+
|
|
26
|
+
## Standards
|
|
27
|
+
- PSR-12
|
|
28
|
+
- PSR-4
|
|
29
|
+
- SOLID
|
|
30
|
+
- KISS
|
|
31
|
+
- DRY
|
|
32
|
+
- Clean Code principles
|
|
33
|
+
|
|
34
|
+
## Requirements
|
|
35
|
+
1. Write production-ready code with proper error handling
|
|
36
|
+
2. Include logging statements for debugging
|
|
37
|
+
3. Add clear documentation where needed
|
|
38
|
+
4. Keep functions small and focused
|
|
39
|
+
5. Keep the code testable and maintainable
|
|
40
|
+
|
|
41
|
+
## Output Format
|
|
42
|
+
Provide the generated code as a single response with file paths and content.
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
getBasePrompt() {
|
|
46
|
+
return `You are a senior software engineer generating production-ready code that:
|
|
47
|
+
- Follows PSR-12 and PSR-4
|
|
48
|
+
- Applies SOLID, KISS, DRY, and Clean Code principles
|
|
49
|
+
- Matches the existing project conventions from context
|
|
50
|
+
- Uses structured logging (or the project's logger)`;
|
|
51
|
+
}
|
|
52
|
+
formatContextSummary(projectContext, plan) {
|
|
53
|
+
const project = projectContext?.project ?? projectContext;
|
|
54
|
+
const analysis = projectContext?.analysis ?? {};
|
|
55
|
+
const name = project?.name || 'Unknown project';
|
|
56
|
+
const rootPath = project?.rootPath || 'Unknown root';
|
|
57
|
+
const description = project?.description
|
|
58
|
+
? `Description: ${project.description}`
|
|
59
|
+
: 'Description: (none)';
|
|
60
|
+
const languages = Array.isArray(analysis.languages) ? analysis.languages.join(', ') : 'unknown';
|
|
61
|
+
const fileCount = typeof analysis.fileCount === 'number' ? analysis.fileCount : 'unknown';
|
|
62
|
+
const totalLOC = typeof analysis.totalLOC === 'number' ? analysis.totalLOC : 'unknown';
|
|
63
|
+
const dependencies = Array.isArray(analysis.dependencies)
|
|
64
|
+
? analysis.dependencies.slice(0, 12).join(', ')
|
|
65
|
+
: 'unknown';
|
|
66
|
+
const planTitle = plan?.title ? `Plan: ${plan.title}` : 'Plan: (none)';
|
|
67
|
+
return [
|
|
68
|
+
`Project: ${name}`,
|
|
69
|
+
`Root: ${rootPath}`,
|
|
70
|
+
description,
|
|
71
|
+
planTitle,
|
|
72
|
+
`Languages: ${languages}`,
|
|
73
|
+
`Files: ${fileCount}, LOC: ${totalLOC}`,
|
|
74
|
+
`Dependencies (sample): ${dependencies}`,
|
|
75
|
+
].join('\n');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=prompt-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-templates.js","sourceRoot":"","sources":["../../src/coder/prompt-templates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,IAAU,EAAE,cAAmB,EAAE,IAAS;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAEvE,OAAO;EACT,UAAU;;;SAGH,IAAI,CAAC,KAAK;eACJ,IAAI,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI;oBACG,IAAI,CAAC,eAAe;;;EAGtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGvD,cAAc;;;;;;;;;;;;;;;;;;;CAmBf,CAAC;IACA,CAAC;IAEO,aAAa;QACnB,OAAO;;;;oDAIyC,CAAC;IACnD,CAAC;IAEO,oBAAoB,CAAC,cAAmB,EAAE,IAAS;QACzD,MAAM,OAAO,GAAG,cAAc,EAAE,OAAO,IAAI,cAAc,CAAC;QAC1D,MAAM,QAAQ,GAAG,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,iBAAiB,CAAC;QAChD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,cAAc,CAAC;QACrD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW;YACtC,CAAC,CAAC,gBAAgB,OAAO,CAAC,WAAW,EAAE;YACvC,CAAC,CAAC,qBAAqB,CAAC;QAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,MAAM,SAAS,GAAG,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;YACvD,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAEvE,OAAO;YACL,YAAY,IAAI,EAAE;YAClB,SAAS,QAAQ,EAAE;YACnB,WAAW;YACX,SAAS;YACT,cAAc,SAAS,EAAE;YACzB,UAAU,SAAS,UAAU,QAAQ,EAAE;YACvC,0BAA0B,YAAY,EAAE;SACzC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Quality Checker
|
|
3
|
+
* Checks code quality standards (error handling, logging, type safety, etc.)
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeFile } from '@omaikit/models';
|
|
6
|
+
export interface QualityCheck {
|
|
7
|
+
aspect: string;
|
|
8
|
+
pass: boolean;
|
|
9
|
+
message: string;
|
|
10
|
+
details?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class QualityChecker {
|
|
13
|
+
/**
|
|
14
|
+
* Check code quality standards
|
|
15
|
+
*/
|
|
16
|
+
check(files: CodeFile[]): Promise<QualityCheck[][]>;
|
|
17
|
+
/**
|
|
18
|
+
* Check quality of a single file
|
|
19
|
+
*/
|
|
20
|
+
private checkFile;
|
|
21
|
+
private checkErrorHandling;
|
|
22
|
+
private checkLogging;
|
|
23
|
+
private checkDocumentation;
|
|
24
|
+
private checkTypeScript;
|
|
25
|
+
private checkPython;
|
|
26
|
+
private checkGo;
|
|
27
|
+
private checkRust;
|
|
28
|
+
private checkCsharp;
|
|
29
|
+
private checkPhp;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=quality-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-checker.d.ts","sourceRoot":"","sources":["../../src/coder/quality-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;IAIzD;;OAEG;IACH,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,QAAQ;CAsBjB"}
|