erosolar-cli 2.1.270 → 2.1.271

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 (112) hide show
  1. package/dist/capabilities/index.d.ts +0 -1
  2. package/dist/capabilities/index.d.ts.map +1 -1
  3. package/dist/capabilities/index.js +1 -1
  4. package/dist/capabilities/index.js.map +1 -1
  5. package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
  6. package/dist/capabilities/orchestrationCapability.js +56 -108
  7. package/dist/capabilities/orchestrationCapability.js.map +1 -1
  8. package/dist/core/iMessageVerification.d.ts +1 -1
  9. package/dist/core/infrastructureTemplates.d.ts +1 -1
  10. package/dist/core/infrastructureTemplates.js +5 -5
  11. package/dist/core/infrastructureTemplates.js.map +1 -1
  12. package/dist/core/persistentObjectiveStore.d.ts +13 -1
  13. package/dist/core/persistentObjectiveStore.d.ts.map +1 -1
  14. package/dist/core/persistentObjectiveStore.js.map +1 -1
  15. package/dist/core/securityDeliverableGenerator.d.ts +1 -1
  16. package/dist/core/securityDeliverableGenerator.d.ts.map +1 -1
  17. package/dist/core/securityDeliverableGenerator.js +3 -3
  18. package/dist/core/securityDeliverableGenerator.js.map +1 -1
  19. package/dist/core/toolRuntime.d.ts.map +1 -1
  20. package/dist/core/toolRuntime.js +11 -5
  21. package/dist/core/toolRuntime.js.map +1 -1
  22. package/dist/core/types.js.map +1 -1
  23. package/dist/core/unifiedOrchestrator.d.ts +265 -77
  24. package/dist/core/unifiedOrchestrator.d.ts.map +1 -1
  25. package/dist/core/unifiedOrchestrator.js +915 -254
  26. package/dist/core/unifiedOrchestrator.js.map +1 -1
  27. package/dist/providers/anthropicProvider.d.ts +1 -1
  28. package/dist/shell/interactiveShell.d.ts +1 -1
  29. package/dist/shell/interactiveShell.d.ts.map +1 -1
  30. package/dist/shell/interactiveShell.js +188 -207
  31. package/dist/shell/interactiveShell.js.map +1 -1
  32. package/dist/tools/tao/rl.js +1 -1
  33. package/dist/tools/tao/rl.js.map +1 -1
  34. package/dist/tools/taoTools.js +5 -5
  35. package/dist/tools/taoTools.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/capabilities/unifiedInvestigationCapability.d.ts +0 -22
  38. package/dist/capabilities/unifiedInvestigationCapability.d.ts.map +0 -1
  39. package/dist/capabilities/unifiedInvestigationCapability.js +0 -41
  40. package/dist/capabilities/unifiedInvestigationCapability.js.map +0 -1
  41. package/dist/core/agentOrchestrator.d.ts +0 -400
  42. package/dist/core/agentOrchestrator.d.ts.map +0 -1
  43. package/dist/core/agentOrchestrator.js +0 -2133
  44. package/dist/core/agentOrchestrator.js.map +0 -1
  45. package/dist/core/autoExecutionOrchestrator.d.ts +0 -172
  46. package/dist/core/autoExecutionOrchestrator.d.ts.map +0 -1
  47. package/dist/core/autoExecutionOrchestrator.js +0 -591
  48. package/dist/core/autoExecutionOrchestrator.js.map +0 -1
  49. package/dist/core/dualAgentOrchestrator.d.ts +0 -34
  50. package/dist/core/dualAgentOrchestrator.d.ts.map +0 -1
  51. package/dist/core/dualAgentOrchestrator.js +0 -94
  52. package/dist/core/dualAgentOrchestrator.js.map +0 -1
  53. package/dist/core/failureRecovery.d.ts +0 -26
  54. package/dist/core/failureRecovery.d.ts.map +0 -1
  55. package/dist/core/failureRecovery.js +0 -54
  56. package/dist/core/failureRecovery.js.map +0 -1
  57. package/dist/core/intelligentTestFlows.d.ts +0 -45
  58. package/dist/core/intelligentTestFlows.d.ts.map +0 -1
  59. package/dist/core/intelligentTestFlows.js +0 -25
  60. package/dist/core/intelligentTestFlows.js.map +0 -1
  61. package/dist/core/learningPersistence.d.ts +0 -58
  62. package/dist/core/learningPersistence.d.ts.map +0 -1
  63. package/dist/core/learningPersistence.js +0 -46
  64. package/dist/core/learningPersistence.js.map +0 -1
  65. package/dist/core/metricsTracker.d.ts +0 -40
  66. package/dist/core/metricsTracker.d.ts.map +0 -1
  67. package/dist/core/metricsTracker.js +0 -83
  68. package/dist/core/metricsTracker.js.map +0 -1
  69. package/dist/core/orchestration.d.ts +0 -534
  70. package/dist/core/orchestration.d.ts.map +0 -1
  71. package/dist/core/orchestration.js +0 -2009
  72. package/dist/core/orchestration.js.map +0 -1
  73. package/dist/core/performanceMonitor.d.ts +0 -30
  74. package/dist/core/performanceMonitor.d.ts.map +0 -1
  75. package/dist/core/performanceMonitor.js +0 -39
  76. package/dist/core/performanceMonitor.js.map +0 -1
  77. package/dist/core/selfEvolution.d.ts +0 -61
  78. package/dist/core/selfEvolution.d.ts.map +0 -1
  79. package/dist/core/selfEvolution.js +0 -38
  80. package/dist/core/selfEvolution.js.map +0 -1
  81. package/dist/core/selfImprovement.d.ts +0 -82
  82. package/dist/core/selfImprovement.d.ts.map +0 -1
  83. package/dist/core/selfImprovement.js +0 -25
  84. package/dist/core/selfImprovement.js.map +0 -1
  85. package/dist/core/unifiedFraudOrchestrator.d.ts +0 -738
  86. package/dist/core/unifiedFraudOrchestrator.d.ts.map +0 -1
  87. package/dist/core/unifiedFraudOrchestrator.js +0 -3312
  88. package/dist/core/unifiedFraudOrchestrator.js.map +0 -1
  89. package/dist/core/unifiedRealOrchestrator.d.ts +0 -126
  90. package/dist/core/unifiedRealOrchestrator.d.ts.map +0 -1
  91. package/dist/core/unifiedRealOrchestrator.js +0 -558
  92. package/dist/core/unifiedRealOrchestrator.js.map +0 -1
  93. package/dist/core/userDefenseOrchestrator.d.ts +0 -202
  94. package/dist/core/userDefenseOrchestrator.d.ts.map +0 -1
  95. package/dist/core/userDefenseOrchestrator.js +0 -1006
  96. package/dist/core/userDefenseOrchestrator.js.map +0 -1
  97. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts +0 -3
  98. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts.map +0 -1
  99. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js +0 -14
  100. package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js.map +0 -1
  101. package/dist/tools/frontendTestingTools.d.ts +0 -9
  102. package/dist/tools/frontendTestingTools.d.ts.map +0 -1
  103. package/dist/tools/frontendTestingTools.js +0 -291
  104. package/dist/tools/frontendTestingTools.js.map +0 -1
  105. package/dist/tools/unifiedInvestigationTools.d.ts +0 -19
  106. package/dist/tools/unifiedInvestigationTools.d.ts.map +0 -1
  107. package/dist/tools/unifiedInvestigationTools.js +0 -1163
  108. package/dist/tools/unifiedInvestigationTools.js.map +0 -1
  109. package/scripts/human-verification.mjs +0 -380
  110. package/scripts/isolated-verification-runner.mjs +0 -364
  111. package/scripts/isolated-verification-wrapper.mjs +0 -276
  112. package/scripts/verify-task-completion.mjs +0 -143
@@ -1,558 +0,0 @@
1
- /**
2
- * Unified Real Orchestrator
3
- *
4
- * REAL EXECUTION ONLY - NO SIMULATIONS
5
- *
6
- * This orchestrator executes ONLY real operations:
7
- * - Real shell commands with actual output
8
- * - Real file operations with actual results
9
- * - Real tool calls with genuine responses
10
- * - Real progress tracking based on actual work
11
- *
12
- * All output is genuine - nothing fabricated or randomized.
13
- */
14
- import { execSync } from 'child_process';
15
- import * as fs from 'fs';
16
- import * as path from 'path';
17
- import { reportToolProgress } from './toolRuntime.js';
18
- // ============================================================================
19
- // UNIFIED REAL ORCHESTRATOR
20
- // ============================================================================
21
- export class UnifiedRealOrchestrator {
22
- workingDir;
23
- verbose = true;
24
- results = [];
25
- running = false;
26
- constructor(workingDir) {
27
- this.workingDir = workingDir || process.cwd();
28
- }
29
- /**
30
- * Main entry point - execute a real objective
31
- */
32
- async execute(objective, options = {}) {
33
- this.verbose = options.verbose ?? true;
34
- this.results = [];
35
- this.running = true;
36
- const startTime = Date.now();
37
- this.print('═'.repeat(70));
38
- this.print('UNIFIED REAL ORCHESTRATOR');
39
- this.print(`Objective: ${objective}`);
40
- this.print(`Directory: ${this.workingDir}`);
41
- this.print('═'.repeat(70));
42
- this.print('');
43
- // Phase 1: Plan
44
- this.print('[Phase 1] Creating execution plan...');
45
- const plan = this.createPlan(objective);
46
- this.print(` → ${plan.tasks.length} tasks identified`);
47
- this.print('');
48
- // Phase 2: Execute
49
- this.print('[Phase 2] Executing tasks...');
50
- for (let i = 0; i < plan.tasks.length && this.running; i++) {
51
- const task = plan.tasks[i];
52
- if (!task)
53
- continue;
54
- this.print(` [${i + 1}/${plan.tasks.length}] ${task.description}`);
55
- // Report real progress
56
- reportToolProgress({
57
- current: i + 1,
58
- total: plan.tasks.length,
59
- message: task.description,
60
- });
61
- const result = options.dryRun
62
- ? this.dryRunTask(task)
63
- : await this.executeTask(task);
64
- this.results.push(result);
65
- if (result.success) {
66
- this.print(` ✓ Success (${result.duration}ms)`);
67
- if (this.verbose && result.output.trim()) {
68
- this.printOutput(result.output, 3);
69
- }
70
- }
71
- else {
72
- this.print(` ✗ Failed: ${result.error}`);
73
- }
74
- }
75
- this.print('');
76
- // Phase 3: Summarize
77
- const endTime = Date.now();
78
- const completedTasks = this.results.filter(r => r.success).length;
79
- const failedTasks = this.results.filter(r => !r.success).length;
80
- const orchestrationResult = {
81
- objective,
82
- success: failedTasks === 0,
83
- results: this.results,
84
- summary: this.generateSummary(),
85
- startTime,
86
- endTime,
87
- totalDuration: endTime - startTime,
88
- completedTasks,
89
- failedTasks,
90
- };
91
- this.print('[Phase 3] Complete');
92
- this.print(` Total: ${plan.tasks.length} tasks`);
93
- this.print(` Success: ${completedTasks}`);
94
- this.print(` Failed: ${failedTasks}`);
95
- this.print(` Duration: ${orchestrationResult.totalDuration}ms`);
96
- this.print('═'.repeat(70));
97
- return orchestrationResult;
98
- }
99
- /**
100
- * Create execution plan from objective - REAL analysis
101
- */
102
- createPlan(objective) {
103
- const tasks = [];
104
- const lower = objective.toLowerCase();
105
- // Git operations
106
- if (lower.includes('git') || lower.includes('commit') || lower.includes('push') || lower.includes('status')) {
107
- tasks.push({ id: 'git-status', description: 'Check git status', type: 'shell', command: 'git status' });
108
- if (lower.includes('log') || lower.includes('history')) {
109
- tasks.push({ id: 'git-log', description: 'Show recent commits', type: 'shell', command: 'git log --oneline -10' });
110
- }
111
- if (lower.includes('diff')) {
112
- tasks.push({ id: 'git-diff', description: 'Show changes', type: 'shell', command: 'git diff' });
113
- }
114
- if (lower.includes('branch')) {
115
- tasks.push({ id: 'git-branch', description: 'List branches', type: 'shell', command: 'git branch -a' });
116
- }
117
- }
118
- // Build operations
119
- if (lower.includes('build') || lower.includes('compile') || lower.includes('typescript')) {
120
- tasks.push({ id: 'check-pkg', description: 'Check package.json', type: 'shell', command: 'cat package.json | head -20' });
121
- tasks.push({ id: 'npm-build', description: 'Run build', type: 'shell', command: 'npm run build 2>&1' });
122
- }
123
- // Test operations
124
- if (lower.includes('test')) {
125
- tasks.push({ id: 'npm-test', description: 'Run tests', type: 'shell', command: 'npm test 2>&1 || echo "Tests completed"' });
126
- }
127
- // Lint operations
128
- if (lower.includes('lint')) {
129
- tasks.push({ id: 'npm-lint', description: 'Run linter', type: 'shell', command: 'npm run lint 2>&1 || echo "Lint completed"' });
130
- }
131
- // File search
132
- if (lower.includes('find') || lower.includes('search') || lower.includes('grep')) {
133
- const patternMatch = objective.match(/(?:find|search|grep)\s+["']?([^"'\s]+)["']?/i);
134
- const pattern = patternMatch?.[1] || '*';
135
- tasks.push({ id: 'find-files', description: `Search for "${pattern}"`, type: 'shell', command: `find . -name "${pattern}" -type f 2>/dev/null | head -50` });
136
- }
137
- // Code analysis
138
- if (lower.includes('analyze') || lower.includes('audit') || lower.includes('check')) {
139
- tasks.push({ id: 'count-loc', description: 'Count lines of code', type: 'shell', command: 'find . -name "*.ts" -o -name "*.js" | head -100 | xargs wc -l 2>/dev/null | tail -1' });
140
- tasks.push({ id: 'npm-audit', description: 'Security audit', type: 'shell', command: 'npm audit 2>&1 | head -30 || echo "Audit complete"' });
141
- tasks.push({ id: 'list-deps', description: 'List dependencies', type: 'shell', command: 'npm ls --depth=0 2>&1 | head -20' });
142
- }
143
- // Security operations - REAL security tool execution
144
- if (lower.includes('security') || lower.includes('vuln') || lower.includes('scan')) {
145
- tasks.push({ id: 'npm-audit-full', description: 'Full npm security audit', type: 'shell', command: 'npm audit --json 2>&1 | head -100 || echo "{}"' });
146
- tasks.push({ id: 'check-secrets', description: 'Check for exposed secrets', type: 'shell', command: 'grep -r -E "(password|secret|api[_-]?key|token)\\s*[:=]" --include="*.ts" --include="*.js" --include="*.json" . 2>/dev/null | grep -v node_modules | head -20 || echo "No secrets found"' });
147
- tasks.push({ id: 'check-env', description: 'Check environment files', type: 'shell', command: 'find . -name ".env*" -o -name "*.env" 2>/dev/null | head -10' });
148
- tasks.push({ id: 'outdated-deps', description: 'Check outdated dependencies', type: 'shell', command: 'npm outdated 2>&1 | head -20 || echo "All up to date"' });
149
- }
150
- // Network/port scanning (if nmap available) - REAL network scan
151
- if (lower.includes('network') || lower.includes('port') || lower.includes('nmap')) {
152
- tasks.push({ id: 'check-listening', description: 'Check listening ports', type: 'shell', command: 'lsof -i -P -n | grep LISTEN 2>/dev/null | head -20 || netstat -an | grep LISTEN | head -20 || echo "No port info available"' });
153
- tasks.push({ id: 'check-connections', description: 'Check active connections', type: 'shell', command: 'lsof -i -P -n 2>/dev/null | head -30 || netstat -an | head -30 || echo "No connection info"' });
154
- }
155
- // Process inspection - REAL process list
156
- if (lower.includes('process') || lower.includes('ps') || lower.includes('running')) {
157
- tasks.push({ id: 'list-processes', description: 'List running processes', type: 'shell', command: 'ps aux | head -30' });
158
- tasks.push({ id: 'node-processes', description: 'List Node.js processes', type: 'shell', command: 'ps aux | grep -i node | grep -v grep || echo "No Node processes"' });
159
- }
160
- // System info - REAL system information
161
- if (lower.includes('system') || lower.includes('info') || lower.includes('env')) {
162
- tasks.push({ id: 'system-info', description: 'Get system information', type: 'shell', command: 'uname -a' });
163
- tasks.push({ id: 'disk-space', description: 'Check disk space', type: 'shell', command: 'df -h . 2>/dev/null || echo "Unknown"' });
164
- tasks.push({ id: 'memory-info', description: 'Check memory', type: 'shell', command: 'vm_stat 2>/dev/null | head -10 || free -h 2>/dev/null || echo "Memory info unavailable"' });
165
- }
166
- // Docker operations - REAL docker commands
167
- if (lower.includes('docker') || lower.includes('container')) {
168
- tasks.push({ id: 'docker-ps', description: 'List Docker containers', type: 'shell', command: 'docker ps -a 2>&1 | head -20 || echo "Docker not available"' });
169
- tasks.push({ id: 'docker-images', description: 'List Docker images', type: 'shell', command: 'docker images 2>&1 | head -20 || echo "Docker not available"' });
170
- }
171
- // ══════════════════════════════════════════════════════════════════════
172
- // OFFENSIVE SECURITY OPERATIONS - REAL EXECUTION ONLY
173
- // ══════════════════════════════════════════════════════════════════════
174
- // Reconnaissance - REAL recon operations
175
- if (lower.includes('recon') || lower.includes('reconnaissance') || lower.includes('discover')) {
176
- tasks.push({ id: 'recon-dns', description: 'DNS enumeration', type: 'shell', command: 'dig +short ANY $(hostname -d 2>/dev/null || echo "local") 2>/dev/null || echo "DNS unavailable"' });
177
- tasks.push({ id: 'recon-arp', description: 'ARP table scan', type: 'shell', command: 'arp -a 2>/dev/null | head -20 || echo "ARP unavailable"' });
178
- tasks.push({ id: 'recon-routes', description: 'Network routes', type: 'shell', command: 'netstat -rn 2>/dev/null | head -20 || route -n 2>/dev/null | head -20 || echo "Routes unavailable"' });
179
- tasks.push({ id: 'recon-interfaces', description: 'Network interfaces', type: 'shell', command: 'ifconfig 2>/dev/null || ip addr 2>/dev/null || echo "Interfaces unavailable"' });
180
- tasks.push({ id: 'recon-hosts', description: 'Known hosts', type: 'shell', command: 'cat /etc/hosts 2>/dev/null | grep -v "^#" | head -20' });
181
- }
182
- // Offensive enumeration - REAL enumeration
183
- if (lower.includes('enum') || lower.includes('enumerat') || lower.includes('offensive')) {
184
- tasks.push({ id: 'enum-users', description: 'Enumerate users', type: 'shell', command: 'dscl . list /Users 2>/dev/null || cat /etc/passwd 2>/dev/null | cut -d: -f1 | head -30' });
185
- tasks.push({ id: 'enum-groups', description: 'Enumerate groups', type: 'shell', command: 'dscl . list /Groups 2>/dev/null || cat /etc/group 2>/dev/null | cut -d: -f1 | head -30' });
186
- tasks.push({ id: 'enum-sudo', description: 'Check sudo access', type: 'shell', command: 'sudo -l 2>/dev/null || echo "Sudo check requires password"' });
187
- tasks.push({ id: 'enum-suid', description: 'Find SUID binaries', type: 'shell', command: 'find /usr -perm -4000 -type f 2>/dev/null | head -20 || echo "SUID scan complete"' });
188
- tasks.push({ id: 'enum-cron', description: 'Check cron jobs', type: 'shell', command: 'crontab -l 2>/dev/null || echo "No crontab"; ls -la /etc/cron* 2>/dev/null | head -20' });
189
- tasks.push({ id: 'enum-ssh', description: 'SSH configuration', type: 'shell', command: 'cat ~/.ssh/config 2>/dev/null | head -30 || echo "No SSH config"; ls -la ~/.ssh 2>/dev/null' });
190
- }
191
- // Credential hunting - REAL credential search
192
- if (lower.includes('cred') || lower.includes('password') || lower.includes('secret') || lower.includes('hunt')) {
193
- tasks.push({ id: 'cred-history', description: 'Shell history secrets', type: 'shell', command: 'grep -E "(password|passwd|secret|token|api.?key)" ~/.bash_history ~/.zsh_history 2>/dev/null | tail -20 || echo "No secrets in history"' });
194
- tasks.push({ id: 'cred-env', description: 'Environment secrets', type: 'shell', command: 'env 2>/dev/null | grep -iE "(pass|secret|token|key|api)" | head -10 || echo "No env secrets"' });
195
- tasks.push({ id: 'cred-configs', description: 'Config file secrets', type: 'shell', command: 'find . -name "*.conf" -o -name "*.cfg" -o -name "*.ini" 2>/dev/null | head -10 | xargs grep -l -iE "(password|secret)" 2>/dev/null || echo "No config secrets"' });
196
- tasks.push({ id: 'cred-git', description: 'Git credential exposure', type: 'shell', command: 'git log -p --all -S password 2>/dev/null | head -50 || echo "No git password history"' });
197
- tasks.push({ id: 'cred-keychain', description: 'Keychain items (macOS)', type: 'shell', command: 'security dump-keychain 2>/dev/null | head -50 || echo "Keychain access denied"' });
198
- }
199
- // Service exploitation - REAL service checks
200
- if (lower.includes('service') || lower.includes('exploit') || lower.includes('attack')) {
201
- tasks.push({ id: 'svc-launchd', description: 'LaunchDaemons/Agents', type: 'shell', command: 'ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents 2>/dev/null | head -30' });
202
- tasks.push({ id: 'svc-listening', description: 'All listening services', type: 'shell', command: 'lsof -iTCP -sTCP:LISTEN -P -n 2>/dev/null || netstat -tlnp 2>/dev/null || echo "Service scan complete"' });
203
- tasks.push({ id: 'svc-versions', description: 'Service versions', type: 'shell', command: 'which httpd nginx mysql postgres redis 2>/dev/null | xargs -I{} sh -c "{} --version 2>/dev/null || echo {} unknown"' });
204
- }
205
- // Persistence mechanisms - REAL persistence checks
206
- if (lower.includes('persist') || lower.includes('backdoor') || lower.includes('maintain')) {
207
- tasks.push({ id: 'persist-startup', description: 'Startup items', type: 'shell', command: 'ls -la /Library/StartupItems ~/Library/StartupItems 2>/dev/null; launchctl list 2>/dev/null | head -20' });
208
- tasks.push({ id: 'persist-login', description: 'Login items', type: 'shell', command: 'osascript -e "tell application \\"System Events\\" to get name of every login item" 2>/dev/null || echo "Login items unavailable"' });
209
- tasks.push({ id: 'persist-profiles', description: 'Shell profiles', type: 'shell', command: 'cat ~/.bash_profile ~/.bashrc ~/.zshrc 2>/dev/null | grep -E "(alias|export|source)" | head -20' });
210
- }
211
- // Lateral movement preparation - REAL lateral checks
212
- if (lower.includes('lateral') || lower.includes('pivot') || lower.includes('spread')) {
213
- tasks.push({ id: 'lateral-ssh', description: 'SSH known hosts', type: 'shell', command: 'cat ~/.ssh/known_hosts 2>/dev/null | cut -d" " -f1 | head -20 || echo "No known hosts"' });
214
- tasks.push({ id: 'lateral-shares', description: 'Network shares', type: 'shell', command: 'df -h 2>/dev/null | grep -E "^//" | head -10; smbutil statshares -a 2>/dev/null | head -10 || echo "No shares"' });
215
- tasks.push({ id: 'lateral-rdp', description: 'RDP/VNC services', type: 'shell', command: 'lsof -i :3389 -i :5900 2>/dev/null || echo "No RDP/VNC detected"' });
216
- }
217
- // Data exfiltration prep - REAL data discovery
218
- if (lower.includes('exfil') || lower.includes('data') || lower.includes('collect')) {
219
- tasks.push({ id: 'exfil-docs', description: 'Sensitive documents', type: 'shell', command: 'find ~ -type f \\( -name "*.pdf" -o -name "*.docx" -o -name "*.xlsx" \\) 2>/dev/null | head -20' });
220
- tasks.push({ id: 'exfil-db', description: 'Database files', type: 'shell', command: 'find . -type f \\( -name "*.db" -o -name "*.sqlite" -o -name "*.sql" \\) 2>/dev/null | head -20' });
221
- tasks.push({ id: 'exfil-keys', description: 'Private keys', type: 'shell', command: 'find ~ -type f \\( -name "*.pem" -o -name "*.key" -o -name "id_rsa" \\) 2>/dev/null | head -10' });
222
- tasks.push({ id: 'exfil-archive', description: 'Archives', type: 'shell', command: 'find ~ -type f \\( -name "*.zip" -o -name "*.tar*" -o -name "*.7z" \\) -size +1M 2>/dev/null | head -10' });
223
- }
224
- // Full offensive security assessment - combines all above
225
- if (lower.includes('full') || lower.includes('complete') || lower.includes('all')) {
226
- // Add all offensive tasks if not already added
227
- if (!tasks.some(t => t.id.startsWith('recon-'))) {
228
- tasks.push({ id: 'full-recon', description: 'Full reconnaissance', type: 'shell', command: 'echo "=== RECON ===" && ifconfig 2>/dev/null | head -20 && arp -a 2>/dev/null | head -10' });
229
- }
230
- if (!tasks.some(t => t.id.startsWith('enum-'))) {
231
- tasks.push({ id: 'full-enum', description: 'Full enumeration', type: 'shell', command: 'echo "=== ENUM ===" && whoami && id && groups 2>/dev/null' });
232
- }
233
- if (!tasks.some(t => t.id.startsWith('cred-'))) {
234
- tasks.push({ id: 'full-creds', description: 'Credential scan', type: 'shell', command: 'echo "=== CREDS ===" && find . -name ".env*" 2>/dev/null | head -5' });
235
- }
236
- }
237
- // ══════════════════════════════════════════════════════════════════════
238
- // SOFTWARE ENGINEERING OPERATIONS - REAL EXECUTION ONLY
239
- // ══════════════════════════════════════════════════════════════════════
240
- // Self-modification / Code improvement
241
- if (lower.includes('self') || lower.includes('improve') || lower.includes('modify') || lower.includes('upgrade')) {
242
- tasks.push({ id: 'self-status', description: 'Check own repo status', type: 'shell', command: 'git status --porcelain 2>/dev/null | head -20' });
243
- tasks.push({ id: 'self-version', description: 'Current version', type: 'shell', command: 'cat package.json 2>/dev/null | grep \'"version"\' | head -1' });
244
- tasks.push({ id: 'self-deps', description: 'Check dependencies', type: 'shell', command: 'npm outdated 2>/dev/null | head -15 || echo "All up to date"' });
245
- tasks.push({ id: 'self-audit', description: 'Security audit', type: 'shell', command: 'npm audit 2>/dev/null | head -20 || echo "Audit complete"' });
246
- tasks.push({ id: 'self-lint', description: 'Lint check', type: 'shell', command: 'npm run lint 2>&1 | tail -20 || echo "No lint script"' });
247
- tasks.push({ id: 'self-types', description: 'TypeScript check', type: 'shell', command: 'npx tsc --noEmit 2>&1 | tail -30 || echo "Type check complete"' });
248
- }
249
- // Repository management
250
- if (lower.includes('repo') || lower.includes('repository') || lower.includes('manage')) {
251
- tasks.push({ id: 'repo-status', description: 'Git status', type: 'shell', command: 'git status' });
252
- tasks.push({ id: 'repo-branch', description: 'Current branch', type: 'shell', command: 'git branch -v' });
253
- tasks.push({ id: 'repo-log', description: 'Recent commits', type: 'shell', command: 'git log --oneline -15' });
254
- tasks.push({ id: 'repo-remote', description: 'Remote info', type: 'shell', command: 'git remote -v' });
255
- tasks.push({ id: 'repo-stash', description: 'Stash list', type: 'shell', command: 'git stash list 2>/dev/null || echo "No stashes"' });
256
- tasks.push({ id: 'repo-tags', description: 'Recent tags', type: 'shell', command: 'git tag --sort=-creatordate | head -10' });
257
- }
258
- // Code quality analysis
259
- if (lower.includes('quality') || lower.includes('lint') || lower.includes('style')) {
260
- tasks.push({ id: 'quality-eslint', description: 'ESLint analysis', type: 'shell', command: 'npx eslint . --ext .ts,.js --format compact 2>&1 | tail -30 || echo "ESLint complete"' });
261
- tasks.push({ id: 'quality-prettier', description: 'Prettier check', type: 'shell', command: 'npx prettier --check "src/**/*.ts" 2>&1 | tail -20 || echo "Prettier check complete"' });
262
- tasks.push({ id: 'quality-complexity', description: 'Code complexity', type: 'shell', command: 'find src -name "*.ts" | head -20 | xargs wc -l | sort -n | tail -10' });
263
- tasks.push({ id: 'quality-todos', description: 'Find TODOs/FIXMEs', type: 'shell', command: 'grep -rn "TODO\\|FIXME\\|HACK\\|XXX" src --include="*.ts" 2>/dev/null | head -20 || echo "No TODOs found"' });
264
- }
265
- // Refactoring assistance
266
- if (lower.includes('refactor') || lower.includes('clean') || lower.includes('organize')) {
267
- tasks.push({ id: 'refactor-unused', description: 'Find unused exports', type: 'shell', command: 'grep -r "^export " src --include="*.ts" 2>/dev/null | wc -l && echo "total exports"' });
268
- tasks.push({ id: 'refactor-imports', description: 'Check circular imports', type: 'shell', command: 'find src -name "*.ts" -exec grep -l "from \"..\\./" {} \\; 2>/dev/null | wc -l && echo "files with relative imports"' });
269
- tasks.push({ id: 'refactor-duplicates', description: 'Find duplicate code', type: 'shell', command: 'find src -name "*.ts" | xargs -I{} basename {} | sort | uniq -d | head -10 || echo "No duplicate filenames"' });
270
- tasks.push({ id: 'refactor-large', description: 'Large files', type: 'shell', command: 'find src -name "*.ts" -exec wc -l {} \\; 2>/dev/null | sort -n | tail -10' });
271
- }
272
- // Testing operations
273
- if (lower.includes('test') || lower.includes('spec') || lower.includes('coverage')) {
274
- tasks.push({ id: 'test-run', description: 'Run tests', type: 'shell', command: 'npm test 2>&1 | tail -30 || echo "Tests complete"' });
275
- tasks.push({ id: 'test-coverage', description: 'Test coverage', type: 'shell', command: 'npm run test:coverage 2>&1 | tail -20 || echo "No coverage script"' });
276
- tasks.push({ id: 'test-files', description: 'Find test files', type: 'shell', command: 'find . -name "*.test.ts" -o -name "*.spec.ts" 2>/dev/null | head -20' });
277
- }
278
- // Build operations
279
- if (lower.includes('build') || lower.includes('compile') || lower.includes('dist')) {
280
- tasks.push({ id: 'build-clean', description: 'Clean build', type: 'shell', command: 'rm -rf dist .tsbuildinfo 2>/dev/null; echo "Cleaned"' });
281
- tasks.push({ id: 'build-compile', description: 'Compile TypeScript', type: 'shell', command: 'npx tsc 2>&1 | tail -20' });
282
- tasks.push({ id: 'build-check', description: 'Verify dist', type: 'shell', command: 'ls -la dist 2>/dev/null | head -20 || echo "No dist folder"' });
283
- tasks.push({ id: 'build-size', description: 'Build size', type: 'shell', command: 'du -sh dist 2>/dev/null || echo "No dist"' });
284
- }
285
- // Dependency management
286
- if (lower.includes('dep') || lower.includes('package') || lower.includes('npm') || lower.includes('install')) {
287
- tasks.push({ id: 'dep-list', description: 'List dependencies', type: 'shell', command: 'npm ls --depth=0 2>&1 | head -30' });
288
- tasks.push({ id: 'dep-outdated', description: 'Outdated packages', type: 'shell', command: 'npm outdated 2>&1 || echo "All current"' });
289
- tasks.push({ id: 'dep-audit', description: 'Security audit', type: 'shell', command: 'npm audit 2>&1 | head -30 || echo "Audit complete"' });
290
- tasks.push({ id: 'dep-duplicates', description: 'Duplicate deps', type: 'shell', command: 'npm ls 2>&1 | grep "deduped" | wc -l && echo "deduped packages"' });
291
- tasks.push({ id: 'dep-size', description: 'Node modules size', type: 'shell', command: 'du -sh node_modules 2>/dev/null || echo "No node_modules"' });
292
- }
293
- // Release/publish operations
294
- if (lower.includes('release') || lower.includes('publish') || lower.includes('version')) {
295
- tasks.push({ id: 'release-version', description: 'Current version', type: 'shell', command: 'cat package.json | grep \'"version"\' | head -1' });
296
- tasks.push({ id: 'release-changes', description: 'Unreleased changes', type: 'shell', command: 'git log $(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~10)..HEAD --oneline 2>/dev/null | head -15' });
297
- tasks.push({ id: 'release-tags', description: 'Recent versions', type: 'shell', command: 'git tag --sort=-creatordate | head -5' });
298
- tasks.push({ id: 'release-npm', description: 'NPM info', type: 'shell', command: 'npm view $(cat package.json | grep \'"name"\' | cut -d\\" -f4) version 2>/dev/null || echo "Not published"' });
299
- }
300
- // Documentation
301
- if (lower.includes('doc') || lower.includes('readme') || lower.includes('comment')) {
302
- tasks.push({ id: 'doc-readme', description: 'Check README', type: 'shell', command: 'wc -l README.md 2>/dev/null || echo "No README"' });
303
- tasks.push({ id: 'doc-jsdoc', description: 'JSDoc coverage', type: 'shell', command: 'grep -r "/\\*\\*" src --include="*.ts" 2>/dev/null | wc -l && echo "JSDoc comments"' });
304
- tasks.push({ id: 'doc-types', description: 'Type definitions', type: 'shell', command: 'find src -name "*.d.ts" 2>/dev/null | wc -l && echo "type definition files"' });
305
- }
306
- // Cleanup operations
307
- if (lower.includes('cleanup') || lower.includes('prune') || lower.includes('remove unused')) {
308
- tasks.push({ id: 'cleanup-modules', description: 'Prune node_modules', type: 'shell', command: 'npm prune 2>&1 | tail -10 || echo "Prune complete"' });
309
- tasks.push({ id: 'cleanup-cache', description: 'Clear npm cache', type: 'shell', command: 'npm cache verify 2>&1 | tail -5' });
310
- tasks.push({ id: 'cleanup-git', description: 'Git garbage collect', type: 'shell', command: 'git gc --auto 2>&1 || echo "GC complete"' });
311
- tasks.push({ id: 'cleanup-temp', description: 'Find temp files', type: 'shell', command: 'find . -name "*.tmp" -o -name "*.bak" -o -name "*~" 2>/dev/null | head -10 || echo "No temp files"' });
312
- }
313
- // Health check - comprehensive project health
314
- if (lower.includes('health') || lower.includes('status') || lower.includes('check')) {
315
- tasks.push({ id: 'health-git', description: 'Git health', type: 'shell', command: 'git status --short 2>/dev/null | wc -l && echo "uncommitted changes"' });
316
- tasks.push({ id: 'health-build', description: 'Build health', type: 'shell', command: 'npm run build 2>&1 | tail -5' });
317
- tasks.push({ id: 'health-deps', description: 'Dependency health', type: 'shell', command: 'npm audit 2>&1 | grep -E "found [0-9]+ vulnerabilities" || echo "No vulnerabilities"' });
318
- tasks.push({ id: 'health-types', description: 'Type health', type: 'shell', command: 'npx tsc --noEmit 2>&1 | grep -c "error" || echo "0 type errors"' });
319
- }
320
- // Directory listing
321
- if (lower.includes('list') || lower.includes('ls') || lower.includes('dir')) {
322
- tasks.push({ id: 'list-dir', description: 'List directory', type: 'shell', command: 'ls -la' });
323
- }
324
- // Read file
325
- if (lower.includes('read') || lower.includes('show') || lower.includes('cat')) {
326
- const fileMatch = objective.match(/(?:read|show|cat)\s+(\S+)/i);
327
- if (fileMatch?.[1]) {
328
- tasks.push({ id: 'read-file', description: `Read ${fileMatch[1]}`, type: 'shell', command: `cat "${fileMatch[1]}" 2>&1 | head -100` });
329
- }
330
- }
331
- // Default tasks if none matched
332
- if (tasks.length === 0) {
333
- tasks.push({ id: 'pwd', description: 'Show current directory', type: 'shell', command: 'pwd' });
334
- tasks.push({ id: 'ls', description: 'List files', type: 'shell', command: 'ls -la' });
335
- tasks.push({ id: 'disk', description: 'Check disk usage', type: 'shell', command: 'du -sh . 2>/dev/null || echo "Unknown"' });
336
- }
337
- return { objective, tasks, estimatedSteps: tasks.length };
338
- }
339
- /**
340
- * Execute a single task - REAL execution
341
- */
342
- async executeTask(task) {
343
- const startTime = Date.now();
344
- try {
345
- let output;
346
- switch (task.type) {
347
- case 'shell':
348
- output = await this.executeShell(task.command || '');
349
- break;
350
- case 'file_read':
351
- output = await this.readFile(task.filePath || '');
352
- break;
353
- case 'file_write':
354
- output = await this.writeFile(task.filePath || '', task.content || '');
355
- break;
356
- case 'file_search':
357
- output = await this.searchFiles(task.pattern || '*');
358
- break;
359
- case 'analysis':
360
- output = await this.analyzeCode(task.filePath || '.');
361
- break;
362
- case 'composite':
363
- output = await this.executeComposite(task.subtasks || []);
364
- break;
365
- default:
366
- output = 'Unknown task type';
367
- }
368
- return {
369
- taskId: task.id,
370
- success: true,
371
- output,
372
- duration: Date.now() - startTime,
373
- timestamp: Date.now(),
374
- };
375
- }
376
- catch (error) {
377
- return {
378
- taskId: task.id,
379
- success: false,
380
- output: '',
381
- error: error instanceof Error ? error.message : String(error),
382
- duration: Date.now() - startTime,
383
- timestamp: Date.now(),
384
- };
385
- }
386
- }
387
- /**
388
- * Dry run a task (no actual execution)
389
- */
390
- dryRunTask(task) {
391
- return {
392
- taskId: task.id,
393
- success: true,
394
- output: `[DRY RUN] Would execute: ${task.command || task.type}`,
395
- duration: 0,
396
- timestamp: Date.now(),
397
- };
398
- }
399
- /**
400
- * Execute shell command - REAL
401
- */
402
- async executeShell(command) {
403
- return new Promise((resolve, reject) => {
404
- try {
405
- const output = execSync(command, {
406
- cwd: this.workingDir,
407
- encoding: 'utf-8',
408
- timeout: 60000,
409
- maxBuffer: 10 * 1024 * 1024,
410
- stdio: ['pipe', 'pipe', 'pipe'],
411
- });
412
- resolve(output);
413
- }
414
- catch (error) {
415
- // Command may fail but still produce output
416
- if (error && typeof error === 'object') {
417
- const execError = error;
418
- if (execError.stdout) {
419
- resolve(execError.stdout);
420
- }
421
- else if (execError.stderr) {
422
- resolve(execError.stderr);
423
- }
424
- else {
425
- reject(new Error(execError.message || 'Command failed'));
426
- }
427
- }
428
- else {
429
- reject(error);
430
- }
431
- }
432
- });
433
- }
434
- /**
435
- * Read file - REAL
436
- */
437
- async readFile(filePath) {
438
- const fullPath = path.resolve(this.workingDir, filePath);
439
- return fs.readFileSync(fullPath, 'utf-8');
440
- }
441
- /**
442
- * Write file - REAL
443
- */
444
- async writeFile(filePath, content) {
445
- const fullPath = path.resolve(this.workingDir, filePath);
446
- fs.writeFileSync(fullPath, content, 'utf-8');
447
- return `Written ${content.length} bytes to ${filePath}`;
448
- }
449
- /**
450
- * Search files - REAL
451
- */
452
- async searchFiles(pattern) {
453
- return this.executeShell(`find . -name "${pattern}" -type f 2>/dev/null | head -50`);
454
- }
455
- /**
456
- * Analyze code - REAL
457
- */
458
- async analyzeCode(targetPath) {
459
- const results = [];
460
- // Count files
461
- const fileCount = await this.executeShell(`find "${targetPath}" -type f -name "*.ts" -o -name "*.js" | wc -l`);
462
- results.push(`Files: ${fileCount.trim()}`);
463
- // Count lines
464
- const lineCount = await this.executeShell(`find "${targetPath}" -type f \\( -name "*.ts" -o -name "*.js" \\) | head -100 | xargs wc -l 2>/dev/null | tail -1`);
465
- results.push(`Lines: ${lineCount.trim()}`);
466
- return results.join('\n');
467
- }
468
- /**
469
- * Execute composite task - REAL
470
- */
471
- async executeComposite(subtasks) {
472
- const outputs = [];
473
- for (const subtask of subtasks) {
474
- const result = await this.executeTask(subtask);
475
- outputs.push(`[${subtask.id}] ${result.success ? '✓' : '✗'}: ${result.output.slice(0, 100)}`);
476
- }
477
- return outputs.join('\n');
478
- }
479
- /**
480
- * Generate summary - based on REAL results
481
- */
482
- generateSummary() {
483
- const lines = ['EXECUTION SUMMARY', '─'.repeat(40)];
484
- for (const result of this.results) {
485
- const icon = result.success ? '✓' : '✗';
486
- lines.push(`${icon} ${result.taskId} (${result.duration}ms)`);
487
- if (result.error) {
488
- lines.push(` Error: ${result.error}`);
489
- }
490
- }
491
- lines.push('─'.repeat(40));
492
- const success = this.results.filter(r => r.success).length;
493
- const total = this.results.length;
494
- lines.push(`Result: ${success}/${total} tasks completed`);
495
- return lines.join('\n');
496
- }
497
- /**
498
- * Print to console
499
- */
500
- print(message) {
501
- console.log(message);
502
- }
503
- /**
504
- * Print truncated output
505
- */
506
- printOutput(output, maxLines) {
507
- const lines = output.trim().split('\n');
508
- for (let i = 0; i < Math.min(lines.length, maxLines); i++) {
509
- this.print(` ${lines[i]}`);
510
- }
511
- if (lines.length > maxLines) {
512
- this.print(` ... (${lines.length - maxLines} more lines)`);
513
- }
514
- }
515
- /**
516
- * Stop execution
517
- */
518
- stop() {
519
- this.running = false;
520
- this.print('\n[Orchestrator] Stopping...');
521
- }
522
- /**
523
- * Static report generator
524
- */
525
- static generateReport(result) {
526
- let report = '═'.repeat(70) + '\n';
527
- report += 'REAL EXECUTION REPORT\n';
528
- report += '═'.repeat(70) + '\n\n';
529
- report += `Objective: ${result.objective}\n`;
530
- report += `Status: ${result.success ? 'SUCCESS' : 'FAILED'}\n`;
531
- report += `Duration: ${result.totalDuration}ms\n\n`;
532
- report += '─── Tasks ───\n';
533
- for (const r of result.results) {
534
- const icon = r.success ? '✓' : '✗';
535
- report += `${icon} ${r.taskId} (${r.duration}ms)\n`;
536
- if (r.output.trim()) {
537
- const preview = r.output.trim().split('\n')[0]?.substring(0, 60) || '';
538
- report += ` → ${preview}\n`;
539
- }
540
- if (r.error) {
541
- report += ` Error: ${r.error}\n`;
542
- }
543
- }
544
- report += '\n─── Summary ───\n';
545
- report += `Completed: ${result.completedTasks}/${result.results.length}\n`;
546
- report += `Failed: ${result.failedTasks}\n`;
547
- report += '\n' + '═'.repeat(70) + '\n';
548
- return report;
549
- }
550
- }
551
- /**
552
- * Convenience function for quick execution
553
- */
554
- export async function executeRealTask(objective, options) {
555
- const orchestrator = new UnifiedRealOrchestrator(options?.workingDir);
556
- return orchestrator.execute(objective, options);
557
- }
558
- //# sourceMappingURL=unifiedRealOrchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unifiedRealOrchestrator.js","sourceRoot":"","sources":["../../src/core/unifiedRealOrchestrator.ts"],"names":[],"mappings":"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"}