erosolar-cli 1.7.211 → 1.7.212
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/dist/capabilities/buildCapability.d.ts +24 -0
- package/dist/capabilities/buildCapability.d.ts.map +1 -0
- package/dist/capabilities/buildCapability.js +25 -0
- package/dist/capabilities/buildCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +1 -0
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -0
- package/dist/capabilities/index.js.map +1 -1
- package/dist/core/aiErrorFixer.d.ts +70 -0
- package/dist/core/aiErrorFixer.d.ts.map +1 -0
- package/dist/core/aiErrorFixer.js +402 -0
- package/dist/core/aiErrorFixer.js.map +1 -0
- package/dist/plugins/tools/build/buildPlugin.d.ts +9 -0
- package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/build/buildPlugin.js +20 -0
- package/dist/plugins/tools/build/buildPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +2 -0
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +22 -5
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +4 -1
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +19 -9
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/updateManager.d.ts.map +1 -1
- package/dist/shell/updateManager.js +3 -102
- package/dist/shell/updateManager.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +25 -1
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/buildTools.d.ts +9 -0
- package/dist/tools/buildTools.d.ts.map +1 -0
- package/dist/tools/buildTools.js +344 -0
- package/dist/tools/buildTools.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build and Test Tools with AI-Powered Error Analysis
|
|
3
|
+
*
|
|
4
|
+
* Provides run_build, run_tests, and check_package_info tools that automatically
|
|
5
|
+
* analyze errors and suggest fixes, following Claude Code's approach.
|
|
6
|
+
*/
|
|
7
|
+
import { exec } from 'node:child_process';
|
|
8
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { promisify } from 'node:util';
|
|
11
|
+
import { createErrorFixer } from '../core/aiErrorFixer.js';
|
|
12
|
+
import { buildSandboxEnv } from './bashTools.js';
|
|
13
|
+
const execAsync = promisify(exec);
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Build Detection
|
|
16
|
+
// ============================================================================
|
|
17
|
+
function detectBuildCommand(workingDir) {
|
|
18
|
+
const packageJsonPath = join(workingDir, 'package.json');
|
|
19
|
+
if (existsSync(packageJsonPath)) {
|
|
20
|
+
try {
|
|
21
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
22
|
+
const scripts = packageJson.scripts ?? {};
|
|
23
|
+
if (scripts.build)
|
|
24
|
+
return 'npm run build';
|
|
25
|
+
if (scripts.compile)
|
|
26
|
+
return 'npm run compile';
|
|
27
|
+
if (scripts.tsc)
|
|
28
|
+
return 'npm run tsc';
|
|
29
|
+
if (existsSync(join(workingDir, 'tsconfig.json')))
|
|
30
|
+
return 'npx tsc';
|
|
31
|
+
return 'npm run build';
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return 'npm run build';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (existsSync(join(workingDir, 'Makefile')))
|
|
38
|
+
return 'make';
|
|
39
|
+
if (existsSync(join(workingDir, 'Cargo.toml')))
|
|
40
|
+
return 'cargo build';
|
|
41
|
+
if (existsSync(join(workingDir, 'pyproject.toml')))
|
|
42
|
+
return 'python -m build';
|
|
43
|
+
if (existsSync(join(workingDir, 'setup.py')))
|
|
44
|
+
return 'python setup.py build';
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
function detectTestCommand(workingDir) {
|
|
48
|
+
const packageJsonPath = join(workingDir, 'package.json');
|
|
49
|
+
if (existsSync(packageJsonPath)) {
|
|
50
|
+
try {
|
|
51
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
52
|
+
const scripts = packageJson.scripts ?? {};
|
|
53
|
+
if (scripts.test)
|
|
54
|
+
return 'npm test';
|
|
55
|
+
if (scripts['test:unit'])
|
|
56
|
+
return 'npm run test:unit';
|
|
57
|
+
if (scripts.jest)
|
|
58
|
+
return 'npm run jest';
|
|
59
|
+
if (scripts.vitest)
|
|
60
|
+
return 'npm run vitest';
|
|
61
|
+
return 'npm test';
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return 'npm test';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (existsSync(join(workingDir, 'pytest.ini')) || existsSync(join(workingDir, 'pyproject.toml'))) {
|
|
68
|
+
return 'pytest';
|
|
69
|
+
}
|
|
70
|
+
if (existsSync(join(workingDir, 'Cargo.toml')))
|
|
71
|
+
return 'cargo test';
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// Result Formatting
|
|
76
|
+
// ============================================================================
|
|
77
|
+
function formatBuildSuccess(output, durationMs) {
|
|
78
|
+
const lines = ['✓ Build succeeded', '', `[Performance] took ${durationMs.toFixed(2)}ms`];
|
|
79
|
+
if (output.trim()) {
|
|
80
|
+
const truncated = output.length > 2000
|
|
81
|
+
? output.slice(0, 2000) + `\n... [${output.length - 2000} more characters]`
|
|
82
|
+
: output;
|
|
83
|
+
lines.push('', truncated);
|
|
84
|
+
}
|
|
85
|
+
return lines.join('\n');
|
|
86
|
+
}
|
|
87
|
+
function formatBuildFailure(errors, _output, durationMs, fixer) {
|
|
88
|
+
const lines = [
|
|
89
|
+
'✗ Build failed',
|
|
90
|
+
'',
|
|
91
|
+
`[Performance] took ${durationMs.toFixed(2)}ms`,
|
|
92
|
+
'',
|
|
93
|
+
`═══ ERRORS DETECTED (${errors.length}) ═══`,
|
|
94
|
+
];
|
|
95
|
+
for (let i = 0; i < Math.min(errors.length, 10); i++) {
|
|
96
|
+
const error = errors[i];
|
|
97
|
+
if (!error)
|
|
98
|
+
continue;
|
|
99
|
+
lines.push('');
|
|
100
|
+
lines.push(`${i + 1}. [${error.errorType}] ${error.message.slice(0, 200)}`);
|
|
101
|
+
const loc = error.locations[0];
|
|
102
|
+
if (loc) {
|
|
103
|
+
lines.push(` Location: ${loc.filePath}:${loc.lineNumber ?? '?'}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (errors.length > 10) {
|
|
107
|
+
lines.push('');
|
|
108
|
+
lines.push(`... and ${errors.length - 10} more errors`);
|
|
109
|
+
}
|
|
110
|
+
if (errors.length > 0) {
|
|
111
|
+
const suggestions = fixer.getFixSuggestions(errors);
|
|
112
|
+
lines.push('');
|
|
113
|
+
lines.push(suggestions);
|
|
114
|
+
}
|
|
115
|
+
return lines.join('\n');
|
|
116
|
+
}
|
|
117
|
+
function formatTestSuccess(summary, _output, durationMs) {
|
|
118
|
+
const lines = ['✓ Tests passed', ` ${summary.passed} passed`];
|
|
119
|
+
if (summary.skipped > 0) {
|
|
120
|
+
lines.push(` ${summary.skipped} skipped`);
|
|
121
|
+
}
|
|
122
|
+
lines.push('');
|
|
123
|
+
lines.push(`[Performance] took ${durationMs.toFixed(2)}ms`);
|
|
124
|
+
return lines.join('\n');
|
|
125
|
+
}
|
|
126
|
+
function formatTestFailure(summary, errors, _output, durationMs, fixer) {
|
|
127
|
+
const lines = ['✗ Tests failed', ` ${summary.passed} passed, ${summary.failed} failed`];
|
|
128
|
+
if (summary.skipped > 0) {
|
|
129
|
+
lines.push(` ${summary.skipped} skipped`);
|
|
130
|
+
}
|
|
131
|
+
lines.push('');
|
|
132
|
+
lines.push(`[Performance] took ${durationMs.toFixed(2)}ms`);
|
|
133
|
+
if (errors.length > 0) {
|
|
134
|
+
lines.push('');
|
|
135
|
+
lines.push(`═══ FAILURES DETECTED (${errors.length}) ═══`);
|
|
136
|
+
for (let i = 0; i < Math.min(errors.length, 5); i++) {
|
|
137
|
+
const error = errors[i];
|
|
138
|
+
if (!error)
|
|
139
|
+
continue;
|
|
140
|
+
lines.push('');
|
|
141
|
+
lines.push(`${i + 1}. ${error.message.slice(0, 200)}`);
|
|
142
|
+
const loc = error.locations[0];
|
|
143
|
+
if (loc) {
|
|
144
|
+
lines.push(` Location: ${loc.filePath}:${loc.lineNumber ?? '?'}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const aiGuidance = fixer.formatForAI(errors);
|
|
149
|
+
if (aiGuidance) {
|
|
150
|
+
lines.push(aiGuidance);
|
|
151
|
+
}
|
|
152
|
+
return lines.join('\n');
|
|
153
|
+
}
|
|
154
|
+
// ============================================================================
|
|
155
|
+
// Tool Factory
|
|
156
|
+
// ============================================================================
|
|
157
|
+
export function createBuildTools(workingDir) {
|
|
158
|
+
const fixer = createErrorFixer({ workingDir });
|
|
159
|
+
return [
|
|
160
|
+
{
|
|
161
|
+
name: 'run_build',
|
|
162
|
+
description: 'Run the project build command with AI-powered error analysis. Auto-detects build system (npm, make, cargo, etc.) and provides intelligent error fixes when the build fails.',
|
|
163
|
+
parameters: {
|
|
164
|
+
type: 'object',
|
|
165
|
+
properties: {
|
|
166
|
+
command: {
|
|
167
|
+
type: 'string',
|
|
168
|
+
description: 'Build command to run. If not specified, auto-detects based on project type.',
|
|
169
|
+
},
|
|
170
|
+
timeout: {
|
|
171
|
+
type: 'number',
|
|
172
|
+
description: 'Timeout in milliseconds (default: 120000 = 2 minutes)',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
additionalProperties: false,
|
|
176
|
+
},
|
|
177
|
+
handler: async (args) => {
|
|
178
|
+
const startTime = Date.now();
|
|
179
|
+
let buildCmd = args['command'];
|
|
180
|
+
if (!buildCmd) {
|
|
181
|
+
const detected = detectBuildCommand(workingDir);
|
|
182
|
+
if (!detected) {
|
|
183
|
+
return 'Error: Could not detect build system. Please specify a build command.';
|
|
184
|
+
}
|
|
185
|
+
buildCmd = detected;
|
|
186
|
+
}
|
|
187
|
+
const timeout = args['timeout'] ?? 120000;
|
|
188
|
+
try {
|
|
189
|
+
const env = await buildSandboxEnv(workingDir);
|
|
190
|
+
const { stdout, stderr } = await execAsync(buildCmd, {
|
|
191
|
+
cwd: workingDir,
|
|
192
|
+
timeout,
|
|
193
|
+
maxBuffer: 1024 * 1024 * 10,
|
|
194
|
+
env,
|
|
195
|
+
});
|
|
196
|
+
const durationMs = Date.now() - startTime;
|
|
197
|
+
const output = [stdout, stderr].filter(Boolean).join('\n');
|
|
198
|
+
return formatBuildSuccess(output, durationMs);
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
const durationMs = Date.now() - startTime;
|
|
202
|
+
const output = [error.stdout, error.stderr, error.message].filter(Boolean).join('\n');
|
|
203
|
+
if (error.killed) {
|
|
204
|
+
return `Error: Build timed out after ${timeout}ms`;
|
|
205
|
+
}
|
|
206
|
+
const errors = fixer.analyzeOutput(output, buildCmd);
|
|
207
|
+
return formatBuildFailure(errors, output, durationMs, fixer);
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: 'run_tests',
|
|
213
|
+
description: 'Run project tests with AI-powered failure analysis. Auto-detects test framework and provides intelligent suggestions for fixing failing tests.',
|
|
214
|
+
parameters: {
|
|
215
|
+
type: 'object',
|
|
216
|
+
properties: {
|
|
217
|
+
command: {
|
|
218
|
+
type: 'string',
|
|
219
|
+
description: 'Test command to run. If not specified, auto-detects based on project type.',
|
|
220
|
+
},
|
|
221
|
+
timeout: {
|
|
222
|
+
type: 'number',
|
|
223
|
+
description: 'Timeout in milliseconds (default: 300000 = 5 minutes)',
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
additionalProperties: false,
|
|
227
|
+
},
|
|
228
|
+
handler: async (args) => {
|
|
229
|
+
const startTime = Date.now();
|
|
230
|
+
let testCmd = args['command'];
|
|
231
|
+
if (!testCmd) {
|
|
232
|
+
const detected = detectTestCommand(workingDir);
|
|
233
|
+
if (!detected) {
|
|
234
|
+
return 'Error: Could not detect test framework. Please specify a test command.';
|
|
235
|
+
}
|
|
236
|
+
testCmd = detected;
|
|
237
|
+
}
|
|
238
|
+
const timeout = args['timeout'] ?? 300000;
|
|
239
|
+
try {
|
|
240
|
+
const env = await buildSandboxEnv(workingDir);
|
|
241
|
+
const { stdout, stderr } = await execAsync(testCmd, {
|
|
242
|
+
cwd: workingDir,
|
|
243
|
+
timeout,
|
|
244
|
+
maxBuffer: 1024 * 1024 * 10,
|
|
245
|
+
env,
|
|
246
|
+
});
|
|
247
|
+
const durationMs = Date.now() - startTime;
|
|
248
|
+
const output = [stdout, stderr].filter(Boolean).join('\n');
|
|
249
|
+
const summary = fixer.parseTestSummary(output);
|
|
250
|
+
return formatTestSuccess(summary, output, durationMs);
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
const durationMs = Date.now() - startTime;
|
|
254
|
+
const output = [error.stdout, error.stderr, error.message].filter(Boolean).join('\n');
|
|
255
|
+
if (error.killed) {
|
|
256
|
+
return `Error: Tests timed out after ${timeout}ms`;
|
|
257
|
+
}
|
|
258
|
+
const summary = fixer.parseTestSummary(output);
|
|
259
|
+
const errors = fixer.analyzeOutput(output, testCmd);
|
|
260
|
+
return formatTestFailure(summary, errors, output, durationMs, fixer);
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
name: 'check_package_info',
|
|
266
|
+
description: 'Get project information (name, version, scripts, dependencies). Useful for understanding what build/test commands are available.',
|
|
267
|
+
parameters: {
|
|
268
|
+
type: 'object',
|
|
269
|
+
properties: {
|
|
270
|
+
detail: {
|
|
271
|
+
type: 'string',
|
|
272
|
+
enum: ['basic', 'full'],
|
|
273
|
+
description: 'Detail level: "basic" shows name/version, "full" includes scripts and dependencies (default: basic)',
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
additionalProperties: false,
|
|
277
|
+
},
|
|
278
|
+
handler: async (args) => {
|
|
279
|
+
const detailLevel = args['detail'] ?? 'basic';
|
|
280
|
+
const infoParts = [];
|
|
281
|
+
const packageJsonPath = join(workingDir, 'package.json');
|
|
282
|
+
if (existsSync(packageJsonPath)) {
|
|
283
|
+
try {
|
|
284
|
+
const data = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
285
|
+
infoParts.push(`Node.js Project: ${data.name ?? 'unknown'}`);
|
|
286
|
+
infoParts.push(` Version: ${data.version ?? 'unknown'}`);
|
|
287
|
+
if (detailLevel === 'full') {
|
|
288
|
+
if (data.scripts) {
|
|
289
|
+
infoParts.push(' Scripts:');
|
|
290
|
+
for (const [name, cmd] of Object.entries(data.scripts)) {
|
|
291
|
+
infoParts.push(` ${name}: ${cmd}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
if (data.dependencies) {
|
|
295
|
+
infoParts.push(` Dependencies: ${Object.keys(data.dependencies).length}`);
|
|
296
|
+
}
|
|
297
|
+
if (data.devDependencies) {
|
|
298
|
+
infoParts.push(` Dev Dependencies: ${Object.keys(data.devDependencies).length}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
// Ignore parse errors
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
const cargoTomlPath = join(workingDir, 'Cargo.toml');
|
|
307
|
+
if (existsSync(cargoTomlPath)) {
|
|
308
|
+
try {
|
|
309
|
+
const content = readFileSync(cargoTomlPath, 'utf-8');
|
|
310
|
+
const nameMatch = content.match(/name\s*=\s*["']([^"']+)["']/);
|
|
311
|
+
const versionMatch = content.match(/version\s*=\s*["']([^"']+)["']/);
|
|
312
|
+
if (nameMatch)
|
|
313
|
+
infoParts.push(`Rust Project: ${nameMatch[1]}`);
|
|
314
|
+
if (versionMatch)
|
|
315
|
+
infoParts.push(` Version: ${versionMatch[1]}`);
|
|
316
|
+
}
|
|
317
|
+
catch {
|
|
318
|
+
// Ignore
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
const pyprojectPath = join(workingDir, 'pyproject.toml');
|
|
322
|
+
if (existsSync(pyprojectPath)) {
|
|
323
|
+
try {
|
|
324
|
+
const content = readFileSync(pyprojectPath, 'utf-8');
|
|
325
|
+
const nameMatch = content.match(/name\s*=\s*["']([^"']+)["']/);
|
|
326
|
+
const versionMatch = content.match(/version\s*=\s*["']([^"']+)["']/);
|
|
327
|
+
if (nameMatch)
|
|
328
|
+
infoParts.push(`Python Project: ${nameMatch[1]}`);
|
|
329
|
+
if (versionMatch)
|
|
330
|
+
infoParts.push(` Version: ${versionMatch[1]}`);
|
|
331
|
+
}
|
|
332
|
+
catch {
|
|
333
|
+
// Ignore
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
if (infoParts.length === 0) {
|
|
337
|
+
return 'Could not detect project type or no project manifest found.';
|
|
338
|
+
}
|
|
339
|
+
return infoParts.join('\n');
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
];
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=buildTools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildTools.js","sourceRoot":"","sources":["../../src/tools/buildTools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "erosolar-cli",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.212",
|
|
4
4
|
"description": "Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning",
|
|
5
5
|
"main": "dist/bin/erosolar.js",
|
|
6
6
|
"type": "module",
|