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.
@@ -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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"}