erosolar-cli 2.1.203 → 2.1.205

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 (52) hide show
  1. package/dist/core/agentOrchestrator.d.ts +16 -4
  2. package/dist/core/agentOrchestrator.d.ts.map +1 -1
  3. package/dist/core/agentOrchestrator.js +181 -61
  4. package/dist/core/agentOrchestrator.js.map +1 -1
  5. package/dist/core/errors/errorTypes.d.ts +0 -6
  6. package/dist/core/errors/errorTypes.d.ts.map +1 -1
  7. package/dist/core/errors/errorTypes.js +0 -26
  8. package/dist/core/errors/errorTypes.js.map +1 -1
  9. package/dist/shell/interactiveShell.d.ts +0 -5
  10. package/dist/shell/interactiveShell.d.ts.map +1 -1
  11. package/dist/shell/interactiveShell.js +45 -205
  12. package/dist/shell/interactiveShell.js.map +1 -1
  13. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  14. package/dist/ui/UnifiedUIRenderer.js +6 -3
  15. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  16. package/package.json +1 -1
  17. package/dist/core/LazyLoader.d.ts +0 -129
  18. package/dist/core/LazyLoader.d.ts.map +0 -1
  19. package/dist/core/LazyLoader.js +0 -240
  20. package/dist/core/LazyLoader.js.map +0 -1
  21. package/dist/core/alphaZeroOrchestrator.d.ts +0 -140
  22. package/dist/core/alphaZeroOrchestrator.d.ts.map +0 -1
  23. package/dist/core/alphaZeroOrchestrator.js +0 -418
  24. package/dist/core/alphaZeroOrchestrator.js.map +0 -1
  25. package/dist/core/checkpoint.d.ts +0 -76
  26. package/dist/core/checkpoint.d.ts.map +0 -1
  27. package/dist/core/checkpoint.js +0 -278
  28. package/dist/core/checkpoint.js.map +0 -1
  29. package/dist/core/costTracker.d.ts +0 -87
  30. package/dist/core/costTracker.d.ts.map +0 -1
  31. package/dist/core/costTracker.js +0 -285
  32. package/dist/core/costTracker.js.map +0 -1
  33. package/dist/core/isolatedVerifier.d.ts +0 -40
  34. package/dist/core/isolatedVerifier.d.ts.map +0 -1
  35. package/dist/core/isolatedVerifier.js +0 -129
  36. package/dist/core/isolatedVerifier.js.map +0 -1
  37. package/dist/core/responseVerifier.d.ts +0 -98
  38. package/dist/core/responseVerifier.d.ts.map +0 -1
  39. package/dist/core/responseVerifier.js +0 -509
  40. package/dist/core/responseVerifier.js.map +0 -1
  41. package/dist/core/securityAssessment.d.ts +0 -91
  42. package/dist/core/securityAssessment.d.ts.map +0 -1
  43. package/dist/core/securityAssessment.js +0 -580
  44. package/dist/core/securityAssessment.js.map +0 -1
  45. package/dist/core/verification.d.ts +0 -137
  46. package/dist/core/verification.d.ts.map +0 -1
  47. package/dist/core/verification.js +0 -323
  48. package/dist/core/verification.js.map +0 -1
  49. package/dist/tools/softwareEngineeringTools.d.ts +0 -7
  50. package/dist/tools/softwareEngineeringTools.d.ts.map +0 -1
  51. package/dist/tools/softwareEngineeringTools.js +0 -338
  52. package/dist/tools/softwareEngineeringTools.js.map +0 -1
@@ -1,338 +0,0 @@
1
- // @ts-nocheck - Temporarily disabled type checking for this file (work in progress)
2
- import { readFileSync, existsSync, statSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- /**
5
- * Software Engineering Tools for enhanced code quality and development experience
6
- * Provides real-time code analysis, complexity monitoring, and quality metrics
7
- */
8
- export function createSoftwareEngineeringTools(workingDir) {
9
- return [
10
- {
11
- name: 'analyze_code_quality',
12
- description: 'Analyze code quality metrics for a specific file including complexity, maintainability, and potential issues.',
13
- parameters: {
14
- type: 'object',
15
- properties: {
16
- path: {
17
- type: 'string',
18
- description: 'The file path to analyze (relative to working directory or absolute)',
19
- minLength: 1,
20
- },
21
- include_suggestions: {
22
- type: 'boolean',
23
- description: 'Include specific improvement suggestions (default: true)',
24
- },
25
- },
26
- required: ['path'],
27
- additionalProperties: false,
28
- },
29
- handler: async (args) => {
30
- const filePath = resolveFilePath(workingDir, args['path']);
31
- const includeSuggestions = args['include_suggestions'] ?? true;
32
- if (!existsSync(filePath)) {
33
- return `Error: File not found: ${filePath}`;
34
- }
35
- try {
36
- const content = readFileSync(filePath, 'utf-8');
37
- const analysis = analyzeFileQuality(content, filePath);
38
- let result = `📊 Code Quality Analysis for ${filePath}\n\n`;
39
- result += `📈 Complexity Metrics:\n`;
40
- result += ` â€ĸ Cyclomatic Complexity: ${analysis.cyclomaticComplexity}\n`;
41
- result += ` â€ĸ Cognitive Complexity: ${analysis.cognitiveComplexity}\n`;
42
- result += ` â€ĸ Maintainability Index: ${analysis.maintainabilityIndex}/100\n`;
43
- result += ` â€ĸ Lines of Code: ${analysis.linesOfCode}\n`;
44
- result += ` â€ĸ Functions: ${analysis.functionCount}\n\n`;
45
- if (analysis.issues.length > 0) {
46
- result += `âš ī¸ Quality Issues:\n`;
47
- analysis.issues.forEach(issue => {
48
- result += ` â€ĸ ${issue.severity}: ${issue.message} (line ${issue.line})\n`;
49
- });
50
- result += `\n`;
51
- }
52
- if (includeSuggestions && analysis.suggestions.length > 0) {
53
- result += `💡 Improvement Suggestions:\n`;
54
- analysis.suggestions.forEach(suggestion => {
55
- result += ` â€ĸ ${suggestion}\n`;
56
- });
57
- }
58
- return result;
59
- }
60
- catch (error) {
61
- return `Error analyzing file: ${error instanceof Error ? error.message : error}`;
62
- }
63
- },
64
- },
65
- {
66
- name: 'detect_code_smells',
67
- description: 'Detect common code smells and anti-patterns in a file or directory.',
68
- parameters: {
69
- type: 'object',
70
- properties: {
71
- path: {
72
- type: 'string',
73
- description: 'The file or directory path to analyze',
74
- minLength: 1,
75
- },
76
- patterns: {
77
- type: 'array',
78
- items: { type: 'string' },
79
- description: 'Specific code smell patterns to detect (optional)',
80
- },
81
- },
82
- required: ['path'],
83
- additionalProperties: false,
84
- },
85
- handler: async (args) => {
86
- const targetPath = resolveFilePath(workingDir, args['path']);
87
- const patterns = args['patterns'] || [
88
- 'long_method',
89
- 'complex_conditional',
90
- 'duplicate_code',
91
- 'deep_nesting',
92
- 'too_many_parameters'
93
- ];
94
- if (!existsSync(targetPath)) {
95
- return `Error: Path not found: ${targetPath}`;
96
- }
97
- const stats = statSync(targetPath);
98
- if (stats.isDirectory()) {
99
- return analyzeDirectoryForSmells(targetPath, patterns);
100
- }
101
- else {
102
- return analyzeFileForSmells(targetPath, patterns);
103
- }
104
- },
105
- },
106
- {
107
- name: 'calculate_technical_debt',
108
- description: 'Calculate technical debt metrics for the current project or specific files.',
109
- parameters: {
110
- type: 'object',
111
- properties: {
112
- scope: {
113
- type: 'string',
114
- enum: ['file', 'directory', 'project'],
115
- description: 'Scope of analysis (default: project)',
116
- },
117
- path: {
118
- type: 'string',
119
- description: 'Specific path for file or directory analysis (required if scope is file or directory)',
120
- },
121
- },
122
- additionalProperties: false,
123
- },
124
- handler: async (args) => {
125
- const scope = args['scope'] || 'project';
126
- const targetPath = args['path'] ? resolveFilePath(workingDir, args['path']) : workingDir;
127
- return calculateTechnicalDebt(targetPath, scope);
128
- },
129
- },
130
- ];
131
- }
132
- // Helper functions
133
- function resolveFilePath(workingDir, path) {
134
- if (path.startsWith('/')) {
135
- return path;
136
- }
137
- return join(workingDir, path);
138
- }
139
- function analyzeFileQuality(content, filePath) {
140
- const lines = content.split('\n');
141
- const issues = [];
142
- const suggestions = [];
143
- // Basic metrics
144
- const linesOfCode = lines.length;
145
- const functionCount = (content.match(/function\s+\w+|const\s+\w+\s*=\s*\(|class\s+\w+/g) || []).length;
146
- // Complexity analysis (simplified)
147
- const cyclomaticComplexity = calculateCyclomaticComplexity(content);
148
- const cognitiveComplexity = calculateCognitiveComplexity(content);
149
- const maintainabilityIndex = calculateMaintainabilityIndex(cyclomaticComplexity, linesOfCode, functionCount);
150
- // Detect specific issues
151
- detectLongFunctions(content, lines, issues);
152
- detectComplexConditionals(content, lines, issues);
153
- detectDeepNesting(content, lines, issues);
154
- detectDuplicateCode(content, lines, issues);
155
- // Generate suggestions
156
- if (cyclomaticComplexity > 10) {
157
- suggestions.push('Consider breaking down complex functions into smaller, focused functions');
158
- }
159
- if (cognitiveComplexity > 15) {
160
- suggestions.push('Simplify complex logic by extracting helper functions or using early returns');
161
- }
162
- if (maintainabilityIndex < 65) {
163
- suggestions.push('Focus on improving code readability and reducing complexity');
164
- }
165
- return {
166
- linesOfCode,
167
- functionCount,
168
- cyclomaticComplexity,
169
- cognitiveComplexity,
170
- maintainabilityIndex,
171
- issues,
172
- suggestions
173
- };
174
- }
175
- function calculateCyclomaticComplexity(content) {
176
- // Simplified cyclomatic complexity calculation
177
- const decisionPoints = (content.match(/if\s*\(|else\s+if\s*\(|case\s+|\?\s*:|&&|\|\|/g) || []).length;
178
- return Math.max(1, decisionPoints + 1);
179
- }
180
- function calculateCognitiveComplexity(content) {
181
- // Simplified cognitive complexity calculation
182
- let complexity = 0;
183
- const lines = content.split('\n');
184
- lines.forEach(line => {
185
- // Increase complexity for nested structures
186
- const nestingDepth = (line.match(/\{/g) || []).length - (line.match(/\}/g) || []).length;
187
- complexity += nestingDepth;
188
- // Increase for complex conditions
189
- if (line.includes('if') || line.includes('else') || line.includes('case')) {
190
- complexity += 1;
191
- }
192
- // Increase for logical operators
193
- complexity += (line.match(/&&|\|\|/g) || []).length;
194
- });
195
- return Math.max(1, complexity);
196
- }
197
- function calculateMaintainabilityIndex(cyclomaticComplexity, linesOfCode, functionCount) {
198
- // Simplified maintainability index calculation
199
- const baseScore = 171;
200
- const complexityPenalty = 5.2 * Math.log(cyclomaticComplexity);
201
- const volumePenalty = 0.23 * linesOfCode;
202
- const functionPenalty = 16.2 * Math.log(functionCount || 1);
203
- const score = baseScore - complexityPenalty - volumePenalty - functionPenalty;
204
- return Math.max(0, Math.min(100, Math.round(score)));
205
- }
206
- function detectLongFunctions(content, lines, issues) {
207
- const functionMatches = content.matchAll(/function\s+(\w+)|const\s+(\w+)\s*=\s*\(/g);
208
- for (const match of functionMatches) {
209
- const functionName = match[1] || match[2];
210
- // Simplified: count lines between function declaration and next function/end
211
- const startLine = lines.findIndex(line => line.includes(functionName));
212
- if (startLine !== -1) {
213
- let endLine = lines.length;
214
- for (let i = startLine + 1; i < lines.length; i++) {
215
- if (lines[i].match(/^\s*(function|const|class)\s+\w/)) {
216
- endLine = i;
217
- break;
218
- }
219
- }
220
- const functionLength = endLine - startLine;
221
- if (functionLength > 50) {
222
- issues.push({
223
- severity: 'WARNING',
224
- message: `Function "${functionName}" is too long (${functionLength} lines)`,
225
- line: startLine + 1
226
- });
227
- }
228
- }
229
- }
230
- }
231
- function detectComplexConditionals(content, lines, issues) {
232
- lines.forEach((line, index) => {
233
- if (line.includes('if') || line.includes('else if')) {
234
- const conditionComplexity = (line.match(/&&|\|\|/g) || []).length;
235
- if (conditionComplexity > 2) {
236
- issues.push({
237
- severity: 'WARNING',
238
- message: `Complex conditional with ${conditionComplexity} logical operators`,
239
- line: index + 1
240
- });
241
- }
242
- }
243
- });
244
- }
245
- function detectDeepNesting(content, lines, issues) {
246
- let currentDepth = 0;
247
- let maxDepth = 0;
248
- let maxDepthLine = 0;
249
- lines.forEach((line, index) => {
250
- currentDepth += (line.match(/\{/g) || []).length;
251
- currentDepth -= (line.match(/\}/g) || []).length;
252
- if (currentDepth > maxDepth) {
253
- maxDepth = currentDepth;
254
- maxDepthLine = index + 1;
255
- }
256
- });
257
- if (maxDepth > 4) {
258
- issues.push({
259
- severity: 'WARNING',
260
- message: `Deep nesting detected (depth: ${maxDepth})`,
261
- line: maxDepthLine
262
- });
263
- }
264
- }
265
- function detectDuplicateCode(content, lines, issues) {
266
- // Simplified duplicate code detection
267
- const codeBlocks = content.split(/\n\s*\n/);
268
- const seenBlocks = new Map();
269
- codeBlocks.forEach((block, index) => {
270
- if (block.trim().length > 20) { // Only consider substantial blocks
271
- const normalized = block.replace(/\s+/g, ' ').trim();
272
- if (seenBlocks.has(normalized)) {
273
- const firstOccurrence = seenBlocks.get(normalized);
274
- issues.push({
275
- severity: 'INFO',
276
- message: `Potential duplicate code block (similar to line ${firstOccurrence})`,
277
- line: index + 1
278
- });
279
- }
280
- else {
281
- seenBlocks.set(normalized, index + 1);
282
- }
283
- }
284
- });
285
- }
286
- function analyzeFileForSmells(filePath, patterns) {
287
- try {
288
- const content = readFileSync(filePath, 'utf-8');
289
- const lines = content.split('\n');
290
- const smells = [];
291
- patterns.forEach(pattern => {
292
- switch (pattern) {
293
- case 'long_method':
294
- detectLongFunctions(content, lines, smells);
295
- break;
296
- case 'complex_conditional':
297
- detectComplexConditionals(content, lines, smells);
298
- break;
299
- case 'deep_nesting':
300
- detectDeepNesting(content, lines, smells);
301
- break;
302
- case 'duplicate_code':
303
- detectDuplicateCode(content, lines, smells);
304
- break;
305
- }
306
- });
307
- if (smells.length === 0) {
308
- return `✅ No significant code smells detected in ${filePath}`;
309
- }
310
- let result = `🔍 Code Smell Analysis for ${filePath}\n\n`;
311
- smells.forEach(smell => {
312
- result += `${smell.severity === 'WARNING' ? 'âš ī¸' : 'â„šī¸'} ${smell.message}\n`;
313
- });
314
- return result;
315
- }
316
- catch (error) {
317
- return `Error analyzing file for smells: ${error instanceof Error ? error.message : error}`;
318
- }
319
- }
320
- function analyzeDirectoryForSmells(dirPath, patterns) {
321
- // Simplified directory analysis
322
- return `📁 Directory analysis for ${dirPath} with patterns: ${patterns.join(', ')}\n` +
323
- `Note: Full directory analysis requires additional implementation`;
324
- }
325
- function calculateTechnicalDebt(targetPath, scope) {
326
- // Simplified technical debt calculation
327
- const debtScore = Math.floor(Math.random() * 100); // Placeholder
328
- const estimatedHours = Math.ceil(debtScore / 10);
329
- return `💰 Technical Debt Analysis (${scope})\n\n` +
330
- `📊 Debt Score: ${debtScore}/100\n` +
331
- `âąī¸ Estimated Remediation: ${estimatedHours} hours\n` +
332
- `📈 Priority: ${debtScore > 70 ? 'HIGH' : debtScore > 40 ? 'MEDIUM' : 'LOW'}\n\n` +
333
- `💡 Recommendations:\n` +
334
- ` â€ĸ Focus on high-complexity files first\n` +
335
- ` â€ĸ Add unit tests for critical paths\n` +
336
- ` â€ĸ Refactor long functions and complex conditionals`;
337
- }
338
- //# sourceMappingURL=softwareEngineeringTools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"softwareEngineeringTools.js","sourceRoot":"","sources":["../../src/tools/softwareEngineeringTools.ts"],"names":[],"mappings":"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"}