erosolar-cli 2.1.266 → 2.1.268
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/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +49 -128
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/core/unifiedRealOrchestrator.d.ts.map +1 -1
- package/dist/core/unifiedRealOrchestrator.js +28 -0
- package/dist/core/unifiedRealOrchestrator.js.map +1 -1
- package/package.json +1 -1
- package/agents/general.rules.json.bak +0 -278
- package/agents/general.rules.json.bak2 +0 -306
- package/dist/core/completeAttackOrchestrator.d.ts +0 -103
- package/dist/core/completeAttackOrchestrator.d.ts.map +0 -1
- package/dist/core/completeAttackOrchestrator.js +0 -308
- package/dist/core/completeAttackOrchestrator.js.map +0 -1
- package/dist/core/realExecutionOrchestrator.d.ts +0 -93
- package/dist/core/realExecutionOrchestrator.d.ts.map +0 -1
- package/dist/core/realExecutionOrchestrator.js +0 -306
- package/dist/core/realExecutionOrchestrator.js.map +0 -1
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Real Execution Orchestrator
|
|
3
|
-
*
|
|
4
|
-
* Executes REAL operations with actual tool calls - NO simulations.
|
|
5
|
-
* All progress and results are genuine outputs from real execution.
|
|
6
|
-
*
|
|
7
|
-
* USE CASES:
|
|
8
|
-
* - Code analysis and refactoring
|
|
9
|
-
* - Build and test automation
|
|
10
|
-
* - File operations and search
|
|
11
|
-
* - Git operations
|
|
12
|
-
* - Development workflow tasks
|
|
13
|
-
*
|
|
14
|
-
* Principles:
|
|
15
|
-
* 1. NO Math.random() for results
|
|
16
|
-
* 2. Every action executes real tools
|
|
17
|
-
* 3. All progress reflects actual work done
|
|
18
|
-
* 4. Thinking/reasoning printed to chat
|
|
19
|
-
*/
|
|
20
|
-
import { execSync } from 'child_process';
|
|
21
|
-
import { reportToolProgress } from './toolRuntime.js';
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// REAL EXECUTION ORCHESTRATOR
|
|
24
|
-
// ============================================================================
|
|
25
|
-
export class RealExecutionOrchestrator {
|
|
26
|
-
steps = [];
|
|
27
|
-
currentStep = 0;
|
|
28
|
-
verbose = false;
|
|
29
|
-
workingDirectory;
|
|
30
|
-
constructor() {
|
|
31
|
-
this.workingDirectory = process.cwd();
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Execute a real task with actual tool calls
|
|
35
|
-
*/
|
|
36
|
-
async execute(config) {
|
|
37
|
-
const startTime = Date.now();
|
|
38
|
-
this.verbose = config.verbose ?? true;
|
|
39
|
-
this.workingDirectory = config.workingDirectory ?? process.cwd();
|
|
40
|
-
this.steps = [];
|
|
41
|
-
this.currentStep = 0;
|
|
42
|
-
this.log('='.repeat(70));
|
|
43
|
-
this.log('REAL EXECUTION ORCHESTRATOR');
|
|
44
|
-
this.log(`Task: ${config.task}`);
|
|
45
|
-
this.log(`Working Directory: ${this.workingDirectory}`);
|
|
46
|
-
this.log('='.repeat(70));
|
|
47
|
-
this.log('');
|
|
48
|
-
// Phase 1: Analyze the task and create execution plan
|
|
49
|
-
this.log('[Phase 1] Analyzing task and creating execution plan...');
|
|
50
|
-
const plan = await this.analyzeTask(config.task);
|
|
51
|
-
this.log(` Created ${plan.length} execution steps`);
|
|
52
|
-
this.log('');
|
|
53
|
-
// Phase 2: Execute each step
|
|
54
|
-
this.log('[Phase 2] Executing steps...');
|
|
55
|
-
for (let i = 0; i < this.steps.length; i++) {
|
|
56
|
-
const step = this.steps[i];
|
|
57
|
-
if (!step)
|
|
58
|
-
continue;
|
|
59
|
-
this.currentStep = i;
|
|
60
|
-
step.status = 'running';
|
|
61
|
-
step.startTime = Date.now();
|
|
62
|
-
this.log(` [${i + 1}/${this.steps.length}] ${step.description}`);
|
|
63
|
-
reportToolProgress({
|
|
64
|
-
current: i + 1,
|
|
65
|
-
total: this.steps.length,
|
|
66
|
-
message: step.description,
|
|
67
|
-
});
|
|
68
|
-
try {
|
|
69
|
-
if (config.dryRun) {
|
|
70
|
-
this.log(` [DRY RUN] Would execute: ${step.command || step.tool}`);
|
|
71
|
-
step.status = 'skipped';
|
|
72
|
-
step.output = '[Dry run - not executed]';
|
|
73
|
-
}
|
|
74
|
-
else if (step.command) {
|
|
75
|
-
const output = await this.executeCommand(step.command);
|
|
76
|
-
step.output = output;
|
|
77
|
-
step.status = 'completed';
|
|
78
|
-
this.log(` ✓ Completed`);
|
|
79
|
-
if (this.verbose && output.trim()) {
|
|
80
|
-
const lines = output.trim().split('\n').slice(0, 5);
|
|
81
|
-
for (const line of lines) {
|
|
82
|
-
this.log(` ${line}`);
|
|
83
|
-
}
|
|
84
|
-
if (output.trim().split('\n').length > 5) {
|
|
85
|
-
this.log(` ... (${output.trim().split('\n').length - 5} more lines)`);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else if (step.tool) {
|
|
90
|
-
const output = await this.executeTool(step.tool, step.args || {});
|
|
91
|
-
step.output = output;
|
|
92
|
-
step.status = 'completed';
|
|
93
|
-
this.log(` ✓ Completed`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
step.status = 'failed';
|
|
98
|
-
step.error = error instanceof Error ? error.message : String(error);
|
|
99
|
-
this.log(` ✗ Failed: ${step.error}`);
|
|
100
|
-
}
|
|
101
|
-
step.endTime = Date.now();
|
|
102
|
-
}
|
|
103
|
-
this.log('');
|
|
104
|
-
// Phase 3: Generate summary
|
|
105
|
-
const endTime = Date.now();
|
|
106
|
-
const completedSteps = this.steps.filter(s => s.status === 'completed').length;
|
|
107
|
-
const failedSteps = this.steps.filter(s => s.status === 'failed').length;
|
|
108
|
-
const result = {
|
|
109
|
-
task: config.task,
|
|
110
|
-
success: failedSteps === 0,
|
|
111
|
-
steps: this.steps,
|
|
112
|
-
totalSteps: this.steps.length,
|
|
113
|
-
completedSteps,
|
|
114
|
-
failedSteps,
|
|
115
|
-
startTime,
|
|
116
|
-
endTime,
|
|
117
|
-
totalRuntime: endTime - startTime,
|
|
118
|
-
summary: this.generateSummary(),
|
|
119
|
-
};
|
|
120
|
-
this.log('[Phase 3] Execution Complete');
|
|
121
|
-
this.log(` Total Steps: ${result.totalSteps}`);
|
|
122
|
-
this.log(` Completed: ${result.completedSteps}`);
|
|
123
|
-
this.log(` Failed: ${result.failedSteps}`);
|
|
124
|
-
this.log(` Runtime: ${(result.totalRuntime / 1000).toFixed(2)}s`);
|
|
125
|
-
this.log('='.repeat(70));
|
|
126
|
-
return result;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Analyze task and create execution steps
|
|
130
|
-
*/
|
|
131
|
-
async analyzeTask(task) {
|
|
132
|
-
const lowerTask = task.toLowerCase();
|
|
133
|
-
// File operations
|
|
134
|
-
if (lowerTask.includes('list') || lowerTask.includes('find') || lowerTask.includes('search')) {
|
|
135
|
-
this.addStep('List files in directory', 'ls -la');
|
|
136
|
-
if (lowerTask.includes('recursive')) {
|
|
137
|
-
this.addStep('Find all files recursively', 'find . -type f -name "*" | head -100');
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// Git operations
|
|
141
|
-
if (lowerTask.includes('git') || lowerTask.includes('commit') || lowerTask.includes('status')) {
|
|
142
|
-
this.addStep('Check git status', 'git status');
|
|
143
|
-
this.addStep('Show recent commits', 'git log --oneline -10');
|
|
144
|
-
if (lowerTask.includes('diff')) {
|
|
145
|
-
this.addStep('Show git diff', 'git diff');
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Build operations
|
|
149
|
-
if (lowerTask.includes('build') || lowerTask.includes('compile')) {
|
|
150
|
-
this.addStep('Check for package.json', 'test -f package.json && echo "Found" || echo "Not found"');
|
|
151
|
-
this.addStep('Run build command', 'npm run build 2>&1 || echo "Build command not available"');
|
|
152
|
-
}
|
|
153
|
-
// Test operations
|
|
154
|
-
if (lowerTask.includes('test')) {
|
|
155
|
-
this.addStep('Run tests', 'npm test 2>&1 || echo "No tests configured"');
|
|
156
|
-
}
|
|
157
|
-
// Analysis operations
|
|
158
|
-
if (lowerTask.includes('analyze') || lowerTask.includes('audit') || lowerTask.includes('check')) {
|
|
159
|
-
this.addStep('Count lines of code', 'find . -name "*.ts" -o -name "*.js" | xargs wc -l 2>/dev/null | tail -1 || echo "0"');
|
|
160
|
-
this.addStep('Check for security issues', 'npm audit --json 2>/dev/null | head -50 || echo "{}"');
|
|
161
|
-
this.addStep('List dependencies', 'npm ls --depth=0 2>/dev/null | head -30 || echo "No dependencies"');
|
|
162
|
-
}
|
|
163
|
-
// Read operations
|
|
164
|
-
if (lowerTask.includes('read') || lowerTask.includes('show') || lowerTask.includes('cat')) {
|
|
165
|
-
const fileMatch = task.match(/(?:read|show|cat)\s+(\S+)/i);
|
|
166
|
-
if (fileMatch && fileMatch[1]) {
|
|
167
|
-
this.addStep(`Read file: ${fileMatch[1]}`, `cat "${fileMatch[1]}" 2>&1 | head -100`);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
// Default: show directory info
|
|
171
|
-
if (this.steps.length === 0) {
|
|
172
|
-
this.addStep('Show current directory', 'pwd');
|
|
173
|
-
this.addStep('List directory contents', 'ls -la');
|
|
174
|
-
this.addStep('Show disk usage', 'du -sh . 2>/dev/null || echo "Unknown"');
|
|
175
|
-
}
|
|
176
|
-
return this.steps;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Add an execution step
|
|
180
|
-
*/
|
|
181
|
-
addStep(description, command, tool, args) {
|
|
182
|
-
this.steps.push({
|
|
183
|
-
id: this.steps.length + 1,
|
|
184
|
-
description,
|
|
185
|
-
command,
|
|
186
|
-
tool,
|
|
187
|
-
args,
|
|
188
|
-
status: 'pending',
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Execute a shell command - REAL execution
|
|
193
|
-
*/
|
|
194
|
-
async executeCommand(command) {
|
|
195
|
-
return new Promise((resolve, reject) => {
|
|
196
|
-
try {
|
|
197
|
-
const output = execSync(command, {
|
|
198
|
-
cwd: this.workingDirectory,
|
|
199
|
-
encoding: 'utf-8',
|
|
200
|
-
timeout: 30000,
|
|
201
|
-
maxBuffer: 10 * 1024 * 1024,
|
|
202
|
-
});
|
|
203
|
-
resolve(output);
|
|
204
|
-
}
|
|
205
|
-
catch (error) {
|
|
206
|
-
if (error && typeof error === 'object' && 'stdout' in error) {
|
|
207
|
-
// Command failed but produced output
|
|
208
|
-
resolve(String(error.stdout || ''));
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
reject(error);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Execute a tool - REAL execution
|
|
218
|
-
*/
|
|
219
|
-
async executeTool(tool, args) {
|
|
220
|
-
// This would integrate with the actual tool runtime
|
|
221
|
-
// For now, map common tools to commands
|
|
222
|
-
switch (tool) {
|
|
223
|
-
case 'read_file':
|
|
224
|
-
return this.executeCommand(`cat "${args['file_path'] || args['path']}"`);
|
|
225
|
-
case 'list_files':
|
|
226
|
-
return this.executeCommand(`ls -la "${args['path'] || '.'}"`);
|
|
227
|
-
case 'glob':
|
|
228
|
-
return this.executeCommand(`find . -name "${args['pattern'] || '*'}" | head -50`);
|
|
229
|
-
case 'grep':
|
|
230
|
-
return this.executeCommand(`grep -r "${args['pattern']}" ${args['path'] || '.'} | head -50`);
|
|
231
|
-
default:
|
|
232
|
-
return `Tool "${tool}" executed with args: ${JSON.stringify(args)}`;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Generate execution summary
|
|
237
|
-
*/
|
|
238
|
-
generateSummary() {
|
|
239
|
-
const completed = this.steps.filter(s => s.status === 'completed');
|
|
240
|
-
const failed = this.steps.filter(s => s.status === 'failed');
|
|
241
|
-
let summary = 'EXECUTION SUMMARY\n';
|
|
242
|
-
summary += '-'.repeat(40) + '\n';
|
|
243
|
-
for (const step of this.steps) {
|
|
244
|
-
const icon = step.status === 'completed' ? '✓' : step.status === 'failed' ? '✗' : '○';
|
|
245
|
-
summary += `${icon} ${step.description}\n`;
|
|
246
|
-
if (step.error) {
|
|
247
|
-
summary += ` Error: ${step.error}\n`;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
summary += '-'.repeat(40) + '\n';
|
|
251
|
-
summary += `Completed: ${completed.length}/${this.steps.length}\n`;
|
|
252
|
-
if (failed.length > 0) {
|
|
253
|
-
summary += `Failed: ${failed.length}\n`;
|
|
254
|
-
}
|
|
255
|
-
return summary;
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Log message to console (real output)
|
|
259
|
-
*/
|
|
260
|
-
log(message) {
|
|
261
|
-
console.log(message);
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Static method to generate report from result
|
|
265
|
-
*/
|
|
266
|
-
static generateReport(result) {
|
|
267
|
-
let report = '='.repeat(70) + '\n';
|
|
268
|
-
report += 'REAL EXECUTION REPORT\n';
|
|
269
|
-
report += '='.repeat(70) + '\n\n';
|
|
270
|
-
report += `Task: ${result.task}\n`;
|
|
271
|
-
report += `Status: ${result.success ? 'SUCCESS' : 'FAILED'}\n`;
|
|
272
|
-
report += `Runtime: ${(result.totalRuntime / 1000).toFixed(2)}s\n\n`;
|
|
273
|
-
report += '--- Steps ---\n';
|
|
274
|
-
for (const step of result.steps) {
|
|
275
|
-
const icon = step.status === 'completed' ? '✓' : step.status === 'failed' ? '✗' : '○';
|
|
276
|
-
report += `${icon} [${step.id}] ${step.description} (${step.status})\n`;
|
|
277
|
-
if (step.command) {
|
|
278
|
-
report += ` Command: ${step.command}\n`;
|
|
279
|
-
}
|
|
280
|
-
if (step.output && step.output.trim()) {
|
|
281
|
-
const preview = step.output.trim().split('\n')[0]?.substring(0, 60);
|
|
282
|
-
report += ` Output: ${preview}...\n`;
|
|
283
|
-
}
|
|
284
|
-
if (step.error) {
|
|
285
|
-
report += ` Error: ${step.error}\n`;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
report += '\n--- Summary ---\n';
|
|
289
|
-
report += `Total Steps: ${result.totalSteps}\n`;
|
|
290
|
-
report += `Completed: ${result.completedSteps}\n`;
|
|
291
|
-
report += `Failed: ${result.failedSteps}\n`;
|
|
292
|
-
report += '\n' + '='.repeat(70) + '\n';
|
|
293
|
-
return report;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Export a simple function for direct use
|
|
298
|
-
*/
|
|
299
|
-
export async function executeReal(task, options) {
|
|
300
|
-
const orchestrator = new RealExecutionOrchestrator();
|
|
301
|
-
return orchestrator.execute({
|
|
302
|
-
task,
|
|
303
|
-
...options,
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
//# sourceMappingURL=realExecutionOrchestrator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"realExecutionOrchestrator.js","sourceRoot":"","sources":["../../src/core/realExecutionOrchestrator.ts"],"names":[],"mappings":"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"}
|