@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
|
+
* Code Quality Checker
|
|
3
|
+
* Checks code quality standards (error handling, logging, type safety, etc.)
|
|
4
|
+
*/
|
|
5
|
+
export class QualityChecker {
|
|
6
|
+
/**
|
|
7
|
+
* Check code quality standards
|
|
8
|
+
*/
|
|
9
|
+
async check(files) {
|
|
10
|
+
return files.map((file) => this.checkFile(file));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Check quality of a single file
|
|
14
|
+
*/
|
|
15
|
+
checkFile(file) {
|
|
16
|
+
const language = file.language || 'unknown';
|
|
17
|
+
const checks = [];
|
|
18
|
+
// Universal checks
|
|
19
|
+
checks.push(...this.checkErrorHandling(file, language));
|
|
20
|
+
checks.push(...this.checkLogging(file, language));
|
|
21
|
+
checks.push(...this.checkDocumentation(file, language));
|
|
22
|
+
// Language-specific checks
|
|
23
|
+
switch (language) {
|
|
24
|
+
case 'typescript':
|
|
25
|
+
checks.push(...this.checkTypeScript(file));
|
|
26
|
+
break;
|
|
27
|
+
case 'python':
|
|
28
|
+
checks.push(...this.checkPython(file));
|
|
29
|
+
break;
|
|
30
|
+
case 'go':
|
|
31
|
+
checks.push(...this.checkGo(file));
|
|
32
|
+
break;
|
|
33
|
+
case 'rust':
|
|
34
|
+
checks.push(...this.checkRust(file));
|
|
35
|
+
break;
|
|
36
|
+
case 'csharp':
|
|
37
|
+
checks.push(...this.checkCsharp(file));
|
|
38
|
+
break;
|
|
39
|
+
case 'php':
|
|
40
|
+
checks.push(...this.checkPhp(file));
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
return checks;
|
|
44
|
+
}
|
|
45
|
+
checkErrorHandling(file, language) {
|
|
46
|
+
const checks = [];
|
|
47
|
+
const content = file.content;
|
|
48
|
+
let hasErrorHandling = false;
|
|
49
|
+
let message = '';
|
|
50
|
+
switch (language) {
|
|
51
|
+
case 'typescript':
|
|
52
|
+
case 'javascript':
|
|
53
|
+
hasErrorHandling = content.includes('try') && content.includes('catch');
|
|
54
|
+
message = 'Try-catch error handling';
|
|
55
|
+
break;
|
|
56
|
+
case 'python':
|
|
57
|
+
hasErrorHandling = content.includes('try') && content.includes('except');
|
|
58
|
+
message = 'Try-except error handling';
|
|
59
|
+
break;
|
|
60
|
+
case 'go':
|
|
61
|
+
hasErrorHandling = content.includes('error');
|
|
62
|
+
message = 'Error return value checking';
|
|
63
|
+
break;
|
|
64
|
+
case 'rust':
|
|
65
|
+
hasErrorHandling = content.includes('Result') || content.includes('?');
|
|
66
|
+
message = 'Result type error handling';
|
|
67
|
+
break;
|
|
68
|
+
case 'csharp':
|
|
69
|
+
hasErrorHandling = content.includes('try') && content.includes('catch');
|
|
70
|
+
message = 'Try-catch error handling';
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
checks.push({
|
|
74
|
+
aspect: 'errorHandling',
|
|
75
|
+
pass: hasErrorHandling,
|
|
76
|
+
message: hasErrorHandling ? `✓ ${message}` : `✗ Missing ${message}`,
|
|
77
|
+
details: hasErrorHandling
|
|
78
|
+
? 'Code includes proper error handling'
|
|
79
|
+
: 'Code should include error handling for robustness',
|
|
80
|
+
});
|
|
81
|
+
return checks;
|
|
82
|
+
}
|
|
83
|
+
checkLogging(file, language) {
|
|
84
|
+
const checks = [];
|
|
85
|
+
const content = file.content;
|
|
86
|
+
let hasLogging = false;
|
|
87
|
+
switch (language) {
|
|
88
|
+
case 'typescript':
|
|
89
|
+
case 'javascript':
|
|
90
|
+
hasLogging = content.includes('logger') || content.includes('console.');
|
|
91
|
+
break;
|
|
92
|
+
case 'python':
|
|
93
|
+
hasLogging = content.includes('logging') || content.includes('logger');
|
|
94
|
+
break;
|
|
95
|
+
case 'go':
|
|
96
|
+
hasLogging = content.includes('log.');
|
|
97
|
+
break;
|
|
98
|
+
case 'rust':
|
|
99
|
+
hasLogging = content.includes('log::');
|
|
100
|
+
break;
|
|
101
|
+
case 'csharp':
|
|
102
|
+
hasLogging = content.includes('Logger') || content.includes('ILogger');
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
checks.push({
|
|
106
|
+
aspect: 'logging',
|
|
107
|
+
pass: hasLogging,
|
|
108
|
+
message: hasLogging ? '✓ Logging present' : '✗ Missing logging statements',
|
|
109
|
+
details: hasLogging
|
|
110
|
+
? 'Code includes logging for debugging'
|
|
111
|
+
: 'Code should include logging for observability',
|
|
112
|
+
});
|
|
113
|
+
return checks;
|
|
114
|
+
}
|
|
115
|
+
checkDocumentation(file, language) {
|
|
116
|
+
const checks = [];
|
|
117
|
+
const content = file.content;
|
|
118
|
+
const lines = content.split('\n');
|
|
119
|
+
let hasDocumentation = false;
|
|
120
|
+
switch (language) {
|
|
121
|
+
case 'typescript':
|
|
122
|
+
hasDocumentation = content.includes('/**') || content.includes('//');
|
|
123
|
+
break;
|
|
124
|
+
case 'python':
|
|
125
|
+
hasDocumentation = content.includes('"""') || content.includes("'''");
|
|
126
|
+
break;
|
|
127
|
+
case 'go':
|
|
128
|
+
hasDocumentation = content.includes('//');
|
|
129
|
+
break;
|
|
130
|
+
case 'rust':
|
|
131
|
+
hasDocumentation = content.includes('///') || content.includes('//');
|
|
132
|
+
break;
|
|
133
|
+
case 'csharp':
|
|
134
|
+
hasDocumentation = content.includes('///') || content.includes('//');
|
|
135
|
+
break;
|
|
136
|
+
case 'php':
|
|
137
|
+
hasDocumentation = content.includes('/**') || content.includes('//');
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
checks.push({
|
|
141
|
+
aspect: 'documentation',
|
|
142
|
+
pass: hasDocumentation,
|
|
143
|
+
message: hasDocumentation ? '✓ Documentation present' : '✗ Missing documentation',
|
|
144
|
+
details: hasDocumentation
|
|
145
|
+
? 'Code includes comments/documentation'
|
|
146
|
+
: 'Code should include documentation',
|
|
147
|
+
});
|
|
148
|
+
return checks;
|
|
149
|
+
}
|
|
150
|
+
checkTypeScript(file) {
|
|
151
|
+
const checks = [];
|
|
152
|
+
const content = file.content;
|
|
153
|
+
// Check for type annotations
|
|
154
|
+
const hasTypeAnnotations = content.includes(':') || content.includes('interface') || content.includes('type ');
|
|
155
|
+
checks.push({
|
|
156
|
+
aspect: 'typeAnnotations',
|
|
157
|
+
pass: hasTypeAnnotations,
|
|
158
|
+
message: hasTypeAnnotations ? '✓ Type annotations present' : '✗ Missing type annotations',
|
|
159
|
+
details: 'TypeScript should include type definitions',
|
|
160
|
+
});
|
|
161
|
+
// Check for async/await patterns
|
|
162
|
+
const hasAsyncAwait = content.includes('async') || content.includes('await') || content.includes('Promise');
|
|
163
|
+
checks.push({
|
|
164
|
+
aspect: 'asyncPatterns',
|
|
165
|
+
pass: hasAsyncAwait || !content.includes('async'),
|
|
166
|
+
message: hasAsyncAwait ? '✓ Proper async/await usage' : '⚠ Mixed async patterns',
|
|
167
|
+
details: 'Use async/await for cleaner asynchronous code',
|
|
168
|
+
});
|
|
169
|
+
return checks;
|
|
170
|
+
}
|
|
171
|
+
checkPython(file) {
|
|
172
|
+
const checks = [];
|
|
173
|
+
const content = file.content;
|
|
174
|
+
// Check for type hints
|
|
175
|
+
const hasTypeHints = content.includes('->') ||
|
|
176
|
+
content.includes(':') ||
|
|
177
|
+
content.includes('List[') ||
|
|
178
|
+
content.includes('Dict[');
|
|
179
|
+
checks.push({
|
|
180
|
+
aspect: 'typeHints',
|
|
181
|
+
pass: hasTypeHints,
|
|
182
|
+
message: hasTypeHints ? '✓ Type hints present' : '⚠ Limited type hints',
|
|
183
|
+
details: 'Python 3.6+ should include type hints',
|
|
184
|
+
});
|
|
185
|
+
// Check for docstrings
|
|
186
|
+
const hasDocstrings = content.includes('"""') || content.includes("'''");
|
|
187
|
+
checks.push({
|
|
188
|
+
aspect: 'docstrings',
|
|
189
|
+
pass: hasDocstrings,
|
|
190
|
+
message: hasDocstrings ? '✓ Docstrings present' : '✗ Missing docstrings',
|
|
191
|
+
details: 'Functions should have docstrings',
|
|
192
|
+
});
|
|
193
|
+
return checks;
|
|
194
|
+
}
|
|
195
|
+
checkGo(file) {
|
|
196
|
+
const checks = [];
|
|
197
|
+
const content = file.content;
|
|
198
|
+
// Check for proper error handling pattern
|
|
199
|
+
const hasErrorCheck = content.includes('if err != nil');
|
|
200
|
+
checks.push({
|
|
201
|
+
aspect: 'errorHandlingStyle',
|
|
202
|
+
pass: hasErrorCheck,
|
|
203
|
+
message: hasErrorCheck ? '✓ Go error pattern used' : '⚠ Inconsistent error handling',
|
|
204
|
+
details: 'Go should check errors explicitly',
|
|
205
|
+
});
|
|
206
|
+
return checks;
|
|
207
|
+
}
|
|
208
|
+
checkRust(file) {
|
|
209
|
+
const checks = [];
|
|
210
|
+
const content = file.content;
|
|
211
|
+
// Check for ownership patterns
|
|
212
|
+
const hasOwnershipPatterns = content.includes('&') || content.includes('move') || content.includes('ref');
|
|
213
|
+
checks.push({
|
|
214
|
+
aspect: 'ownership',
|
|
215
|
+
pass: hasOwnershipPatterns || content.length < 200,
|
|
216
|
+
message: '✓ Ownership patterns appropriate',
|
|
217
|
+
details: 'Rust ownership is properly handled',
|
|
218
|
+
});
|
|
219
|
+
return checks;
|
|
220
|
+
}
|
|
221
|
+
checkCsharp(file) {
|
|
222
|
+
const checks = [];
|
|
223
|
+
const content = file.content;
|
|
224
|
+
// Check for XML documentation
|
|
225
|
+
const hasXmlDocs = content.includes('///');
|
|
226
|
+
checks.push({
|
|
227
|
+
aspect: 'xmlDocumentation',
|
|
228
|
+
pass: hasXmlDocs,
|
|
229
|
+
message: hasXmlDocs ? '✓ XML documentation present' : '⚠ Missing XML documentation',
|
|
230
|
+
details: 'Public members should have XML documentation',
|
|
231
|
+
});
|
|
232
|
+
// Check for using statements
|
|
233
|
+
const hasUsingStatements = content.includes('using (') || content.includes('using ');
|
|
234
|
+
checks.push({
|
|
235
|
+
aspect: 'resourceManagement',
|
|
236
|
+
pass: hasUsingStatements || !content.includes('Dispose'),
|
|
237
|
+
message: hasUsingStatements
|
|
238
|
+
? '✓ Using statements for resource management'
|
|
239
|
+
: '✓ No resource management needed',
|
|
240
|
+
details: 'Resources should be properly disposed',
|
|
241
|
+
});
|
|
242
|
+
return checks;
|
|
243
|
+
}
|
|
244
|
+
checkPhp(file) {
|
|
245
|
+
const checks = [];
|
|
246
|
+
const content = file.content;
|
|
247
|
+
const hasNamespace = content.includes('namespace ');
|
|
248
|
+
checks.push({
|
|
249
|
+
aspect: 'namespace',
|
|
250
|
+
pass: hasNamespace,
|
|
251
|
+
message: hasNamespace ? '✓ Namespace declared' : '✗ Missing namespace declaration',
|
|
252
|
+
details: 'PSR-4 requires namespaces that match the directory structure.',
|
|
253
|
+
});
|
|
254
|
+
const hasStrictTypes = content.includes('declare(strict_types=1)');
|
|
255
|
+
checks.push({
|
|
256
|
+
aspect: 'strictTypes',
|
|
257
|
+
pass: hasStrictTypes,
|
|
258
|
+
message: hasStrictTypes ? '✓ strict_types enabled' : '⚠ Missing strict_types declaration',
|
|
259
|
+
details: 'Enable strict typing for safer code.',
|
|
260
|
+
});
|
|
261
|
+
return checks;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=quality-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-checker.js","sourceRoot":"","sources":["../../src/coder/quality-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Syntax Validator
|
|
3
|
+
* Validates generated code syntax correctness
|
|
4
|
+
*/
|
|
5
|
+
export declare class SyntaxValidator {
|
|
6
|
+
init(): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Validate code syntax for a given language
|
|
9
|
+
*/
|
|
10
|
+
validate(code: string, language: string): Promise<{
|
|
11
|
+
isValid: boolean;
|
|
12
|
+
errors: string[];
|
|
13
|
+
}>;
|
|
14
|
+
private validateTypeScript;
|
|
15
|
+
private validatePython;
|
|
16
|
+
private validateGo;
|
|
17
|
+
private validateRust;
|
|
18
|
+
private validateCsharp;
|
|
19
|
+
private validatePhp;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=syntax-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax-validator.d.ts","sourceRoot":"","sources":["../../src/coder/syntax-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,eAAe;IACpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA4B/F,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,WAAW;CAmBpB"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Syntax Validator
|
|
3
|
+
* Validates generated code syntax correctness
|
|
4
|
+
*/
|
|
5
|
+
export class SyntaxValidator {
|
|
6
|
+
async init() {
|
|
7
|
+
// Initialize any syntax validation tools
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Validate code syntax for a given language
|
|
11
|
+
*/
|
|
12
|
+
async validate(code, language) {
|
|
13
|
+
const errors = [];
|
|
14
|
+
switch (language) {
|
|
15
|
+
case 'typescript':
|
|
16
|
+
case 'javascript':
|
|
17
|
+
return this.validateTypeScript(code);
|
|
18
|
+
case 'python':
|
|
19
|
+
return this.validatePython(code);
|
|
20
|
+
case 'go':
|
|
21
|
+
return this.validateGo(code);
|
|
22
|
+
case 'rust':
|
|
23
|
+
return this.validateRust(code);
|
|
24
|
+
case 'csharp':
|
|
25
|
+
return this.validateCsharp(code);
|
|
26
|
+
case 'php':
|
|
27
|
+
return this.validatePhp(code);
|
|
28
|
+
default:
|
|
29
|
+
return { isValid: true, errors: [] };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
validateTypeScript(code) {
|
|
33
|
+
const errors = [];
|
|
34
|
+
// Check balanced braces
|
|
35
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
36
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
37
|
+
if (openBraces !== closeBraces) {
|
|
38
|
+
errors.push(`Mismatched braces: ${openBraces} open, ${closeBraces} close`);
|
|
39
|
+
}
|
|
40
|
+
// Check balanced parentheses
|
|
41
|
+
const openParens = (code.match(/\(/g) || []).length;
|
|
42
|
+
const closeParens = (code.match(/\)/g) || []).length;
|
|
43
|
+
if (openParens !== closeParens) {
|
|
44
|
+
errors.push(`Mismatched parentheses: ${openParens} open, ${closeParens} close`);
|
|
45
|
+
}
|
|
46
|
+
// Check balanced brackets
|
|
47
|
+
const openBrackets = (code.match(/\[/g) || []).length;
|
|
48
|
+
const closeBrackets = (code.match(/\]/g) || []).length;
|
|
49
|
+
if (openBrackets !== closeBrackets) {
|
|
50
|
+
errors.push(`Mismatched brackets: ${openBrackets} open, ${closeBrackets} close`);
|
|
51
|
+
}
|
|
52
|
+
// Check for unclosed strings
|
|
53
|
+
const singleQuotes = (code.match(/(?<!\\)'/g) || []).length;
|
|
54
|
+
const doubleQuotes = (code.match(/(?<!\\)"/g) || []).length;
|
|
55
|
+
const backticks = (code.match(/(?<!\\)`/g) || []).length;
|
|
56
|
+
if (singleQuotes % 2 !== 0) {
|
|
57
|
+
errors.push('Unclosed single quote');
|
|
58
|
+
}
|
|
59
|
+
if (doubleQuotes % 2 !== 0) {
|
|
60
|
+
errors.push('Unclosed double quote');
|
|
61
|
+
}
|
|
62
|
+
if (backticks % 2 !== 0) {
|
|
63
|
+
errors.push('Unclosed backtick/template literal');
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
isValid: errors.length === 0,
|
|
67
|
+
errors,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
validatePython(code) {
|
|
71
|
+
const errors = [];
|
|
72
|
+
const lines = code.split('\n');
|
|
73
|
+
// Check indentation consistency
|
|
74
|
+
let expectedIndent = 0;
|
|
75
|
+
let indentStack = [0];
|
|
76
|
+
for (let i = 0; i < lines.length; i++) {
|
|
77
|
+
const line = lines[i];
|
|
78
|
+
if (line.trim() === '' || line.trim().startsWith('#'))
|
|
79
|
+
continue;
|
|
80
|
+
const indent = line.length - line.trimStart().length;
|
|
81
|
+
const trimmed = line.trim();
|
|
82
|
+
// Line ending with colon should increase indent
|
|
83
|
+
if (trimmed.endsWith(':')) {
|
|
84
|
+
expectedIndent += 4;
|
|
85
|
+
}
|
|
86
|
+
// Dedent check
|
|
87
|
+
if (indent < expectedIndent && !trimmed.startsWith('def ') && !trimmed.startsWith('class ')) {
|
|
88
|
+
expectedIndent = Math.max(0, expectedIndent - 4);
|
|
89
|
+
}
|
|
90
|
+
if (indent % 4 !== 0) {
|
|
91
|
+
errors.push(`Line ${i + 1}: Indentation not multiple of 4`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Check balanced delimiters
|
|
95
|
+
const openParens = (code.match(/\(/g) || []).length;
|
|
96
|
+
const closeParens = (code.match(/\)/g) || []).length;
|
|
97
|
+
if (openParens !== closeParens) {
|
|
98
|
+
errors.push(`Mismatched parentheses: ${openParens} open, ${closeParens} close`);
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
isValid: errors.length === 0,
|
|
102
|
+
errors,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
validateGo(code) {
|
|
106
|
+
const errors = [];
|
|
107
|
+
// Check for required package statement
|
|
108
|
+
if (!code.includes('package ')) {
|
|
109
|
+
errors.push('Missing package declaration');
|
|
110
|
+
}
|
|
111
|
+
// Check balanced braces
|
|
112
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
113
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
114
|
+
if (openBraces !== closeBraces) {
|
|
115
|
+
errors.push(`Mismatched braces: ${openBraces} open, ${closeBraces} close`);
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
isValid: errors.length === 0,
|
|
119
|
+
errors,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
validateRust(code) {
|
|
123
|
+
const errors = [];
|
|
124
|
+
// Check balanced braces
|
|
125
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
126
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
127
|
+
if (openBraces !== closeBraces) {
|
|
128
|
+
errors.push(`Mismatched braces: ${openBraces} open, ${closeBraces} close`);
|
|
129
|
+
}
|
|
130
|
+
// Check for semicolons at statement ends (basic check)
|
|
131
|
+
const statements = code.match(/\w+\s*\(.*?\)/g) || [];
|
|
132
|
+
statements.forEach((stmt, idx) => {
|
|
133
|
+
// This is a very basic check
|
|
134
|
+
});
|
|
135
|
+
return {
|
|
136
|
+
isValid: errors.length === 0,
|
|
137
|
+
errors,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
validateCsharp(code) {
|
|
141
|
+
const errors = [];
|
|
142
|
+
// Check balanced braces
|
|
143
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
144
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
145
|
+
if (openBraces !== closeBraces) {
|
|
146
|
+
errors.push(`Mismatched braces: ${openBraces} open, ${closeBraces} close`);
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
isValid: errors.length === 0,
|
|
150
|
+
errors,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
validatePhp(code) {
|
|
154
|
+
const errors = [];
|
|
155
|
+
if (!code.includes('<?php')) {
|
|
156
|
+
errors.push('Missing PHP opening tag');
|
|
157
|
+
}
|
|
158
|
+
const openBraces = (code.match(/{/g) || []).length;
|
|
159
|
+
const closeBraces = (code.match(/}/g) || []).length;
|
|
160
|
+
if (openBraces !== closeBraces) {
|
|
161
|
+
errors.push(`Mismatched braces: ${openBraces} open, ${closeBraces} close`);
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
isValid: errors.length === 0,
|
|
165
|
+
errors,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=syntax-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax-validator.js","sourceRoot":"","sources":["../../src/coder/syntax-validator.ts"],"names":[],"mappings":"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"}
|
package/dist/coder.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coder.d.ts","sourceRoot":"","sources":["../src/coder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/coder.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coder.js","sourceRoot":"","sources":["../src/coder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqC,MAAM,eAAe,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class AgentError extends Error {
|
|
2
|
+
code: string;
|
|
3
|
+
statusCode: number;
|
|
4
|
+
constructor(code: string, message: string, statusCode?: number);
|
|
5
|
+
}
|
|
6
|
+
export declare const ERROR_CODES: {
|
|
7
|
+
AGENT_INIT_FAILED: string;
|
|
8
|
+
AGENT_EXECUTION_FAILED: string;
|
|
9
|
+
PROVIDER_ERROR: string;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IAE1B,IAAI,EAAE,MAAM;IAEZ,UAAU,EAAE,MAAM;gBAFlB,IAAI,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACR,UAAU,GAAE,MAAY;CAKlC;AAED,eAAO,MAAM,WAAW;;;;CAIvB,CAAC"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class AgentError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
statusCode;
|
|
4
|
+
constructor(code, message, statusCode = 500) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.code = code;
|
|
7
|
+
this.statusCode = statusCode;
|
|
8
|
+
this.name = 'AgentError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export const ERROR_CODES = {
|
|
12
|
+
AGENT_INIT_FAILED: 'AGENT_INIT_FAILED',
|
|
13
|
+
AGENT_EXECUTION_FAILED: 'AGENT_EXECUTION_FAILED',
|
|
14
|
+
PROVIDER_ERROR: 'PROVIDER_ERROR',
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAE1B;IAEA;IAHT,YACS,IAAY,EACnB,OAAe,EACR,aAAqB,GAAG;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAQ;QAEZ,eAAU,GAAV,UAAU,CAAc;QAG/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;IAChD,cAAc,EAAE,gBAAgB;CACjC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI agent implementations for Omaikit
|
|
3
|
+
*/
|
|
4
|
+
export * from './agent.js';
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
export * from './logger.js';
|
|
7
|
+
export * from './errors.js';
|
|
8
|
+
export * from './ai-provider/factory.js';
|
|
9
|
+
export * from './tools/index.js';
|
|
10
|
+
export { Planner } from './planner/planner.js';
|
|
11
|
+
export { CoderAgent } from './coder/coder.js';
|
|
12
|
+
export { TesterAgent, TesterAgentInput, TesterAgentOutput } from './tester/tester.js';
|
|
13
|
+
export { ManagerAgent } from './manager/manager.js';
|
|
14
|
+
export { PlanValidator } from './planner/plan-validator.js';
|
|
15
|
+
export { PromptTemplates } from './planner/prompt-templates.js';
|
|
16
|
+
export { PlanParser } from './planner/plan-parser.js';
|
|
17
|
+
export { ClarificationHandler } from './planner/clarification-handler.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI agent implementations for Omaikit
|
|
3
|
+
*/
|
|
4
|
+
export * from './agent.js';
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
export * from './logger.js';
|
|
7
|
+
export * from './errors.js';
|
|
8
|
+
export * from './ai-provider/factory.js';
|
|
9
|
+
export * from './tools/index.js';
|
|
10
|
+
export { Planner } from './planner/planner.js';
|
|
11
|
+
export { CoderAgent } from './coder/coder.js';
|
|
12
|
+
export { TesterAgent } from './tester/tester.js';
|
|
13
|
+
export { ManagerAgent } from './manager/manager.js';
|
|
14
|
+
export { PlanValidator } from './planner/plan-validator.js';
|
|
15
|
+
export { PromptTemplates } from './planner/prompt-templates.js';
|
|
16
|
+
export { PlanParser } from './planner/plan-parser.js';
|
|
17
|
+
export { ClarificationHandler } from './planner/clarification-handler.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAuC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAGpD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAGpD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGtD"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class Logger {
|
|
2
|
+
info(message, meta) {
|
|
3
|
+
console.info(message, meta ?? '');
|
|
4
|
+
}
|
|
5
|
+
warn(message, meta) {
|
|
6
|
+
console.warn(message, meta ?? '');
|
|
7
|
+
}
|
|
8
|
+
error(message, meta) {
|
|
9
|
+
console.error(message, meta ?? '');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACjB,IAAI,CAAC,OAAe,EAAE,IAA8B;QAClD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,OAAe,EAAE,IAA8B;QAClD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,OAAe,EAAE,IAA8B;QACnD,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Agent } from '../agent.js';
|
|
2
|
+
import type { AgentInput, AgentOutput } from '../types.js';
|
|
3
|
+
import { Logger } from '../logger.js';
|
|
4
|
+
import type { ToolContext } from '../tools/types.js';
|
|
5
|
+
import { ToolRegistry } from '../tools/registry.js';
|
|
6
|
+
export interface ManagerAgentInput extends AgentInput {
|
|
7
|
+
rootPath?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
action?: 'init-context' | 'analyze';
|
|
10
|
+
}
|
|
11
|
+
export declare class ManagerAgent extends Agent {
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
private toolRegistry;
|
|
15
|
+
private provider?;
|
|
16
|
+
private memoryStore;
|
|
17
|
+
private cfg;
|
|
18
|
+
constructor(logger?: Logger);
|
|
19
|
+
init(): Promise<void>;
|
|
20
|
+
getTools(): ToolRegistry;
|
|
21
|
+
getToolContext(rootPath?: string): ToolContext;
|
|
22
|
+
execute(input: ManagerAgentInput): Promise<AgentOutput>;
|
|
23
|
+
writeContext(rootPath: string, description?: string): Promise<string>;
|
|
24
|
+
private writeContextWithScanner;
|
|
25
|
+
private generateContext;
|
|
26
|
+
private buildContextPrompt;
|
|
27
|
+
private parseContextJson;
|
|
28
|
+
private writeContextFile;
|
|
29
|
+
private isTestEnv;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjD,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,YAAa,SAAQ,KAAK;IAC9B,IAAI,SAAa;IACjB,OAAO,SAAW;IAEzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAM;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,GAAG,CAAgB;gBAEf,MAAM,CAAC,EAAE,MAAM;IAOrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,QAAQ,IAAI,YAAY;IAIxB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW;IAQxC,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmCvD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAc7D,uBAAuB;YAMvB,eAAe;IAuC7B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;YAeV,gBAAgB;IAa9B,OAAO,CAAC,SAAS;CAGlB"}
|