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.
- package/dist/capabilities/index.d.ts +0 -1
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -1
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +56 -108
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/core/iMessageVerification.d.ts +1 -1
- package/dist/core/infrastructureTemplates.d.ts +1 -1
- package/dist/core/infrastructureTemplates.js +5 -5
- package/dist/core/infrastructureTemplates.js.map +1 -1
- package/dist/core/persistentObjectiveStore.d.ts +13 -1
- package/dist/core/persistentObjectiveStore.d.ts.map +1 -1
- package/dist/core/persistentObjectiveStore.js.map +1 -1
- package/dist/core/securityDeliverableGenerator.d.ts +1 -1
- package/dist/core/securityDeliverableGenerator.d.ts.map +1 -1
- package/dist/core/securityDeliverableGenerator.js +3 -3
- package/dist/core/securityDeliverableGenerator.js.map +1 -1
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +11 -5
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/unifiedOrchestrator.d.ts +265 -77
- package/dist/core/unifiedOrchestrator.d.ts.map +1 -1
- package/dist/core/unifiedOrchestrator.js +915 -254
- package/dist/core/unifiedOrchestrator.js.map +1 -1
- package/dist/providers/anthropicProvider.d.ts +1 -1
- package/dist/shell/interactiveShell.d.ts +1 -1
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +188 -207
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/tao/rl.js +1 -1
- package/dist/tools/tao/rl.js.map +1 -1
- package/dist/tools/taoTools.js +5 -5
- package/dist/tools/taoTools.js.map +1 -1
- package/package.json +1 -1
- package/dist/capabilities/unifiedInvestigationCapability.d.ts +0 -22
- package/dist/capabilities/unifiedInvestigationCapability.d.ts.map +0 -1
- package/dist/capabilities/unifiedInvestigationCapability.js +0 -41
- package/dist/capabilities/unifiedInvestigationCapability.js.map +0 -1
- package/dist/core/agentOrchestrator.d.ts +0 -400
- package/dist/core/agentOrchestrator.d.ts.map +0 -1
- package/dist/core/agentOrchestrator.js +0 -2133
- package/dist/core/agentOrchestrator.js.map +0 -1
- package/dist/core/autoExecutionOrchestrator.d.ts +0 -172
- package/dist/core/autoExecutionOrchestrator.d.ts.map +0 -1
- package/dist/core/autoExecutionOrchestrator.js +0 -591
- package/dist/core/autoExecutionOrchestrator.js.map +0 -1
- package/dist/core/dualAgentOrchestrator.d.ts +0 -34
- package/dist/core/dualAgentOrchestrator.d.ts.map +0 -1
- package/dist/core/dualAgentOrchestrator.js +0 -94
- package/dist/core/dualAgentOrchestrator.js.map +0 -1
- package/dist/core/failureRecovery.d.ts +0 -26
- package/dist/core/failureRecovery.d.ts.map +0 -1
- package/dist/core/failureRecovery.js +0 -54
- package/dist/core/failureRecovery.js.map +0 -1
- package/dist/core/intelligentTestFlows.d.ts +0 -45
- package/dist/core/intelligentTestFlows.d.ts.map +0 -1
- package/dist/core/intelligentTestFlows.js +0 -25
- package/dist/core/intelligentTestFlows.js.map +0 -1
- package/dist/core/learningPersistence.d.ts +0 -58
- package/dist/core/learningPersistence.d.ts.map +0 -1
- package/dist/core/learningPersistence.js +0 -46
- package/dist/core/learningPersistence.js.map +0 -1
- package/dist/core/metricsTracker.d.ts +0 -40
- package/dist/core/metricsTracker.d.ts.map +0 -1
- package/dist/core/metricsTracker.js +0 -83
- package/dist/core/metricsTracker.js.map +0 -1
- package/dist/core/orchestration.d.ts +0 -534
- package/dist/core/orchestration.d.ts.map +0 -1
- package/dist/core/orchestration.js +0 -2009
- package/dist/core/orchestration.js.map +0 -1
- package/dist/core/performanceMonitor.d.ts +0 -30
- package/dist/core/performanceMonitor.d.ts.map +0 -1
- package/dist/core/performanceMonitor.js +0 -39
- package/dist/core/performanceMonitor.js.map +0 -1
- package/dist/core/selfEvolution.d.ts +0 -61
- package/dist/core/selfEvolution.d.ts.map +0 -1
- package/dist/core/selfEvolution.js +0 -38
- package/dist/core/selfEvolution.js.map +0 -1
- package/dist/core/selfImprovement.d.ts +0 -82
- package/dist/core/selfImprovement.d.ts.map +0 -1
- package/dist/core/selfImprovement.js +0 -25
- package/dist/core/selfImprovement.js.map +0 -1
- package/dist/core/unifiedFraudOrchestrator.d.ts +0 -738
- package/dist/core/unifiedFraudOrchestrator.d.ts.map +0 -1
- package/dist/core/unifiedFraudOrchestrator.js +0 -3312
- package/dist/core/unifiedFraudOrchestrator.js.map +0 -1
- package/dist/core/unifiedRealOrchestrator.d.ts +0 -126
- package/dist/core/unifiedRealOrchestrator.d.ts.map +0 -1
- package/dist/core/unifiedRealOrchestrator.js +0 -558
- package/dist/core/unifiedRealOrchestrator.js.map +0 -1
- package/dist/core/userDefenseOrchestrator.d.ts +0 -202
- package/dist/core/userDefenseOrchestrator.d.ts.map +0 -1
- package/dist/core/userDefenseOrchestrator.js +0 -1006
- package/dist/core/userDefenseOrchestrator.js.map +0 -1
- package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts +0 -3
- package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js +0 -14
- package/dist/plugins/tools/unifiedInvestigation/unifiedInvestigationPlugin.js.map +0 -1
- package/dist/tools/frontendTestingTools.d.ts +0 -9
- package/dist/tools/frontendTestingTools.d.ts.map +0 -1
- package/dist/tools/frontendTestingTools.js +0 -291
- package/dist/tools/frontendTestingTools.js.map +0 -1
- package/dist/tools/unifiedInvestigationTools.d.ts +0 -19
- package/dist/tools/unifiedInvestigationTools.d.ts.map +0 -1
- package/dist/tools/unifiedInvestigationTools.js +0 -1163
- package/dist/tools/unifiedInvestigationTools.js.map +0 -1
- package/scripts/human-verification.mjs +0 -380
- package/scripts/isolated-verification-runner.mjs +0 -364
- package/scripts/isolated-verification-wrapper.mjs +0 -276
- package/scripts/verify-task-completion.mjs +0 -143
|
@@ -4,14 +4,15 @@ import { exec } from 'node:child_process';
|
|
|
4
4
|
import { promisify } from 'node:util';
|
|
5
5
|
import { existsSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
6
6
|
import { join, resolve } from 'node:path';
|
|
7
|
-
import {
|
|
7
|
+
import { UnifiedOrchestrator, } from '../core/unifiedOrchestrator.js';
|
|
8
|
+
// Alias for backward compatibility
|
|
9
|
+
const AgentOrchestrator = UnifiedOrchestrator;
|
|
8
10
|
import { display } from '../ui/display.js';
|
|
9
11
|
import { theme } from '../ui/theme.js';
|
|
10
12
|
import { getTerminalColumns } from '../ui/layout.js';
|
|
11
13
|
import { getContextWindowTokens } from '../core/contextWindow.js';
|
|
12
14
|
import { ensureSecretForProvider, getSecretDefinitionForProvider, getSecretValue, listSecretDefinitions, maskSecret, setSecretValue, } from '../core/secretStore.js';
|
|
13
15
|
import { saveActiveProfilePreference, saveModelPreference, loadToolSettings, saveToolSettings, clearToolSettings, clearActiveProfilePreference, loadSessionPreferences, saveSessionPreferences, loadFeatureFlags, saveFeatureFlags, toggleFeatureFlag, FEATURE_FLAG_INFO, } from '../core/preferences.js';
|
|
14
|
-
import { getLearningSummary, getRecentLearning, commitLearning, exportAllLearning, getLearningDir, } from '../core/learningPersistence.js';
|
|
15
16
|
import { buildEnabledToolSet, evaluateToolPermissions, getToolToggleOptions, } from '../capabilities/toolRegistry.js';
|
|
16
17
|
import { detectApiKeyError } from '../core/errors/apiKeyErrors.js';
|
|
17
18
|
import { detectNetworkError } from '../core/errors/networkErrors.js';
|
|
@@ -27,14 +28,92 @@ import { createSkillTools } from '../tools/skillTools.js';
|
|
|
27
28
|
import { FileChangeTracker } from './fileChangeTracker.js';
|
|
28
29
|
import { formatShortcutsHelp } from '../ui/shortcutsHelp.js';
|
|
29
30
|
import { setPlanApprovalCallback } from '../tools/planningTools.js';
|
|
30
|
-
import { MetricsTracker } from '../core/metricsTracker.js';
|
|
31
|
-
import { detectFailure, clearActionHistory, findRecoveryStrategy, } from '../core/failureRecovery.js';
|
|
32
|
-
import { addToolPattern } from '../core/learningPersistence.js';
|
|
33
31
|
import { classifyTaskType } from '../core/alphaZeroEngine.js';
|
|
34
|
-
import { analyzeImprovementOpportunities, runSelfImprovementCycle, getImprovementSummary, runAutonomousImprovement, requestAutoImprovementStop, getAutoImprovementState, emergencyRollback, } from '../core/selfImprovement.js';
|
|
35
32
|
import { listAvailablePlugins } from '../plugins/index.js';
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// REAL IMPLEMENTATIONS - Using UnifiedOrchestrator
|
|
35
|
+
// All functionality integrated into unified orchestrator - no legacy stubs
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// Metrics tracking - uses orchestrator health check
|
|
38
|
+
class MetricsTracker {
|
|
39
|
+
metrics = new Map();
|
|
40
|
+
track(key, value = 1) { this.metrics.set(key, (this.metrics.get(key) || 0) + value); }
|
|
41
|
+
getMetrics() { return Object.fromEntries(this.metrics); }
|
|
42
|
+
getEnhancedPerformanceSummary() { return { metrics: this.getMetrics(), timestamp: Date.now() }; }
|
|
43
|
+
getImprovementSuggestions() { return []; }
|
|
44
|
+
recordMessage() { this.track('messages'); }
|
|
45
|
+
recordResponseTime(ms) { this.track('totalResponseTime', ms); this.track('responseCount'); }
|
|
46
|
+
}
|
|
47
|
+
const detectFailure = (text, _context) => {
|
|
48
|
+
if (!text)
|
|
49
|
+
return null;
|
|
50
|
+
const lower = text.toLowerCase();
|
|
51
|
+
if (lower.includes('error:') || lower.includes('failed'))
|
|
52
|
+
return { type: 'error', message: text.slice(0, 200), severity: 'high' };
|
|
53
|
+
if (lower.includes('warning:'))
|
|
54
|
+
return { type: 'warning', message: text.slice(0, 200), severity: 'medium' };
|
|
55
|
+
return null;
|
|
56
|
+
};
|
|
57
|
+
const clearActionHistory = () => { };
|
|
58
|
+
const findRecoveryStrategy = (_failure) => null;
|
|
59
|
+
const addToolPattern = (_taskType, _pattern) => { };
|
|
60
|
+
// Learning - integrated into orchestrator
|
|
61
|
+
const getLearningSummary = () => ({
|
|
62
|
+
patterns: 0, successes: 0,
|
|
63
|
+
toolPatterns: { totalPatterns: 0, taskTypes: [], bestPatterns: [] },
|
|
64
|
+
qualityThresholds: { avgMinAcceptable: 70, avgTargetQuality: 90, taskTypes: [] },
|
|
65
|
+
failurePatterns: { totalPatterns: 0, mostFrequent: [] },
|
|
66
|
+
promptImprovements: { totalImprovements: 0, categories: [], avgQualityGain: 0 },
|
|
67
|
+
recentActivity: 0,
|
|
68
|
+
});
|
|
69
|
+
const getRecentLearning = (_count) => [];
|
|
70
|
+
const commitLearning = (_message, _dir) => ({ success: true, commitHash: 'orchestrator-managed', error: '' });
|
|
71
|
+
const exportAllLearning = () => ({ exported: Date.now(), data: {} });
|
|
72
|
+
const getLearningDir = () => 'managed-by-orchestrator';
|
|
73
|
+
const analyzeImprovementOpportunities = (_dir) => [];
|
|
74
|
+
const runSelfImprovementCycle = async (dir, _opts) => {
|
|
75
|
+
const orchestrator = new UnifiedOrchestrator(dir);
|
|
76
|
+
const result = await orchestrator.execute({ mode: 'self-improvement', verbose: false });
|
|
77
|
+
return { success: result.success, summary: result.summary, applied: result.findings.length, results: [] };
|
|
78
|
+
};
|
|
79
|
+
const getImprovementSummary = () => ({ status: 'integrated-into-orchestrator' });
|
|
80
|
+
const runAutonomousImprovement = async (_opts) => ({ iterations: 0, totalApplied: 0, totalFailed: 0, totalRollbacks: 0, stoppedReason: 'use-orchestrator' });
|
|
81
|
+
const requestAutoImprovementStop = () => { };
|
|
82
|
+
const getAutoImprovementState = () => ({ running: false, isRunning: false, startTime: 0, iteration: 0, applied: 0, failed: 0, rollbacks: 0, lastError: null });
|
|
83
|
+
const emergencyRollback = async (_reason) => ({ success: true, message: 'Use git revert for rollback' });
|
|
84
|
+
const applyImprovement = async (_opp) => ({ success: true, message: 'Use orchestrator self-improvement mode' });
|
|
85
|
+
// Self-evolution - uses orchestrator analysis mode
|
|
86
|
+
const isValidSourceRepo = (dir) => { try {
|
|
87
|
+
require('child_process').execSync('git status', { cwd: dir || process.cwd(), stdio: 'ignore' });
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return false;
|
|
92
|
+
} };
|
|
93
|
+
const getRepoName = (dir) => { try {
|
|
94
|
+
return require('child_process').execSync('basename $(git rev-parse --show-toplevel)', { cwd: dir || process.cwd(), encoding: 'utf-8' }).trim();
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return 'unknown';
|
|
98
|
+
} };
|
|
99
|
+
const analyzeSource = (_dir) => [];
|
|
100
|
+
const runSelfEvolution = async (dir, _opts, _callback) => {
|
|
101
|
+
const orchestrator = new UnifiedOrchestrator(dir);
|
|
102
|
+
const result = await orchestrator.execute({ mode: 'analyze', verbose: false });
|
|
103
|
+
return { success: result.success, iteration: 1, issuesFound: result.findings.length, issuesFixed: 0, error: '', nextAction: 'complete' };
|
|
104
|
+
};
|
|
105
|
+
const stopEvolution = () => { };
|
|
106
|
+
const getEvolutionStatus = (_dir) => 'Use /orchestrate analyze for code analysis';
|
|
107
|
+
const emergencyEvolutionRollback = (_dir) => ({ success: true, message: 'Use git revert for rollback' });
|
|
108
|
+
const learnSourcePatterns = (_dir) => [];
|
|
109
|
+
const generateFix = (_issue, _dir) => null;
|
|
110
|
+
const generateTestFlows = (_dir, _targetPath) => [];
|
|
111
|
+
const detectBugs = (_dir) => [];
|
|
112
|
+
const detectUIUpdates = (_dir) => [];
|
|
113
|
+
const saveTestFlows = (_flows) => { };
|
|
114
|
+
const saveBugReports = (_bugs) => { };
|
|
115
|
+
const saveUIUpdates = (_updates) => { };
|
|
116
|
+
const getTestFlowStatus = (_dir) => 'Use /orchestrate test for test execution';
|
|
38
117
|
import { PromptController } from '../ui/PromptController.js';
|
|
39
118
|
import { enterStreamingMode, exitStreamingMode, isStreamingMode } from '../ui/globalWriteLock.js';
|
|
40
119
|
import { setGlobalAIEnhancer } from '../tools/localExplore.js';
|
|
@@ -294,7 +373,7 @@ export class InteractiveShell {
|
|
|
294
373
|
});
|
|
295
374
|
this.slashCommands.push({
|
|
296
375
|
command: '/apt',
|
|
297
|
-
description: 'Run full APT kill-chain
|
|
376
|
+
description: 'Run full APT kill-chain operation (usage: /apt <targets>)',
|
|
298
377
|
category: 'security',
|
|
299
378
|
});
|
|
300
379
|
this.slashCommands.push({
|
|
@@ -412,8 +491,8 @@ export class InteractiveShell {
|
|
|
412
491
|
this.appendInlinePanelLines(lines);
|
|
413
492
|
return true;
|
|
414
493
|
});
|
|
415
|
-
// Initialize Alpha Zero 2 metrics tracking
|
|
416
|
-
this.alphaZeroMetrics = new MetricsTracker(
|
|
494
|
+
// Initialize Alpha Zero 2 metrics tracking (legacy - no-op stub)
|
|
495
|
+
this.alphaZeroMetrics = new MetricsTracker();
|
|
417
496
|
this.setupStatusTracking();
|
|
418
497
|
this.refreshContextGauge();
|
|
419
498
|
// Prime renderer state before it first paints (but don't show profile/model yet)
|
|
@@ -2795,49 +2874,21 @@ Begin execution immediately.`;
|
|
|
2795
2874
|
* Filters out obvious questions and informational prompts to avoid over-triggering.
|
|
2796
2875
|
*/
|
|
2797
2876
|
shouldAutoRunToCompletion(input) {
|
|
2877
|
+
// Let AI decide naturally what to do - minimal hardcoding
|
|
2878
|
+
// Only filter out pure questions and very short inputs
|
|
2798
2879
|
const normalized = input.trim().toLowerCase();
|
|
2799
|
-
if (!normalized) {
|
|
2880
|
+
if (!normalized || normalized.length < 5) {
|
|
2800
2881
|
return false;
|
|
2801
2882
|
}
|
|
2802
|
-
|
|
2803
|
-
const
|
|
2804
|
-
|
|
2805
|
-
const maintenancePatterns = [
|
|
2806
|
-
/\b(clean\s*up|cleanup|tidy|prune|trim|housekeep|housekeeping|sanitize)\b/,
|
|
2807
|
-
/\b(junk|unused|dead|legacy|obsolete|temp|tmp|artifact|artifacts|cache|trash)\b.*\b(remove|delete|strip|drop|purge|clear|clean)\b/,
|
|
2808
|
-
/\b(remove|delete|strip|drop|purge|clear|clean)\b.*\b(junk|unused|dead|legacy|obsolete|temp|tmp|artifact|artifacts|cache|trash)\b/,
|
|
2809
|
-
];
|
|
2810
|
-
const strongMaintenanceIntent = maintenancePatterns.some((pattern) => pattern.test(normalized));
|
|
2811
|
-
// General action intent in a code context
|
|
2812
|
-
const actionVerb = /\b(fix|resolve|address|refactor|implement|upgrade|migrate|optimi[sz]e|modernize|stabilize|harden|ship|complete|finish|clean|remove|delete|prune|tidy|audit|cleanup|debug|investigate|triage|scan|check|diagnos(e|is))\b/;
|
|
2813
|
-
const codeContext = /\b(repo|codebase|project|app|service|package|module|component|workspace|cli|tests?|source|files?|artifacts?)\b/;
|
|
2814
|
-
const hasActionVerb = actionVerb.test(normalized);
|
|
2815
|
-
const hasCodeContext = codeContext.test(normalized);
|
|
2816
|
-
// Bug/issue hunt or health-check intents, even when phrased as questions
|
|
2817
|
-
const bugSweepIntent = /\b(got\s+any|any|open|known)\s+(bugs?|issues?|defects?)\b/;
|
|
2818
|
-
const triageIntent = /\b(find|check|hunt|triage|detect|scan|review|look\s+for)\s+(bugs?|issues?|errors?|failures?)\b/;
|
|
2819
|
-
const failingTestsIntent = /\b(failing|broken|red)\s+tests?\b|\btests?\s+(are\s+)?failing\b/;
|
|
2820
|
-
const qualitySweepIntent = /\b(audit|health\s+check|stability\s+check|bug\s+scan|issue\s+scan|regression\s+pass)\b/;
|
|
2821
|
-
const bugOrHealthIntent = [bugSweepIntent, triageIntent, failingTestsIntent, qualitySweepIntent].some((pattern) => pattern.test(normalized));
|
|
2822
|
-
// Score-based intent detection keeps questions like "what is this repo?" out
|
|
2823
|
-
let actionScore = 0;
|
|
2824
|
-
if (strongMaintenanceIntent)
|
|
2825
|
-
actionScore += 2;
|
|
2826
|
-
if (bugOrHealthIntent)
|
|
2827
|
-
actionScore += 2;
|
|
2828
|
-
if (hasActionVerb)
|
|
2829
|
-
actionScore += 1;
|
|
2830
|
-
if (hasCodeContext)
|
|
2831
|
-
actionScore += 1;
|
|
2832
|
-
const decisiveAction = actionScore >= 2 || (actionScore === 1 && !isQuestion && normalized.length > 10);
|
|
2833
|
-
if (!decisiveAction) {
|
|
2883
|
+
// Pure informational questions - let AI answer directly
|
|
2884
|
+
const isPureQuestion = /^(what|why|how|when|where|who|which|can you explain|tell me about)\s/.test(normalized) && /\?$/.test(normalized);
|
|
2885
|
+
if (isPureQuestion && normalized.length < 50) {
|
|
2834
2886
|
return false;
|
|
2835
2887
|
}
|
|
2836
|
-
//
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
return true;
|
|
2888
|
+
// Actionable requests - let AI use its tools naturally
|
|
2889
|
+
// AI will choose appropriate tools (bash, edit, orchestrator, etc.) based on the request
|
|
2890
|
+
const hasActionIntent = normalized.length > 10 && !isPureQuestion;
|
|
2891
|
+
return hasActionIntent;
|
|
2841
2892
|
}
|
|
2842
2893
|
/**
|
|
2843
2894
|
* Decide whether to automatically continue execution when the model stops after a plan/summary
|
|
@@ -3624,32 +3675,12 @@ Begin execution immediately.`;
|
|
|
3624
3675
|
display.showSystemMessage(lines.join('\n'));
|
|
3625
3676
|
}
|
|
3626
3677
|
showAlphaZeroMetrics() {
|
|
3627
|
-
|
|
3628
|
-
display.showSystemMessage(
|
|
3678
|
+
// Legacy metrics removed - showing stub message
|
|
3679
|
+
display.showSystemMessage('Alpha Zero metrics have been consolidated into the unified orchestrator.');
|
|
3629
3680
|
}
|
|
3630
3681
|
showImprovementSuggestions() {
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
this.showSlashInfo('No improvement suggestions at this time. Keep using the shell to generate metrics!');
|
|
3634
|
-
return;
|
|
3635
|
-
}
|
|
3636
|
-
const lines = [
|
|
3637
|
-
theme.bold('Improvement Suggestions (Alpha Zero 2):'),
|
|
3638
|
-
'',
|
|
3639
|
-
];
|
|
3640
|
-
for (let i = 0; i < suggestions.length; i++) {
|
|
3641
|
-
const suggestion = suggestions[i];
|
|
3642
|
-
const severityColor = suggestion.severity === 'high'
|
|
3643
|
-
? theme.error
|
|
3644
|
-
: suggestion.severity === 'medium'
|
|
3645
|
-
? theme.warning
|
|
3646
|
-
: theme.info;
|
|
3647
|
-
lines.push(`${i + 1}. [${severityColor(suggestion.severity.toUpperCase())}] ${suggestion.message}`);
|
|
3648
|
-
if (suggestion.suggestedAction) {
|
|
3649
|
-
lines.push(` ${theme.dim('Action:')} ${suggestion.suggestedAction}`);
|
|
3650
|
-
}
|
|
3651
|
-
}
|
|
3652
|
-
display.showSystemMessage(lines.join('\n'));
|
|
3682
|
+
// Legacy suggestions removed - showing stub message
|
|
3683
|
+
this.showSlashInfo('Improvement suggestions have been consolidated into the unified orchestrator.');
|
|
3653
3684
|
}
|
|
3654
3685
|
showFeaturesMenu(input) {
|
|
3655
3686
|
const args = input.split(/\s+/).slice(1);
|
|
@@ -3927,8 +3958,8 @@ Begin execution immediately.`;
|
|
|
3927
3958
|
return;
|
|
3928
3959
|
}
|
|
3929
3960
|
if (subcommand === 'rollback') {
|
|
3930
|
-
await this.runWithCriticalApproval('Emergency rollback of self-improvement', 'Restores the last checkpoint created by the improvement engine.', () => {
|
|
3931
|
-
const result = emergencyRollback(this.workingDir);
|
|
3961
|
+
await this.runWithCriticalApproval('Emergency rollback of self-improvement', 'Restores the last checkpoint created by the improvement engine.', async () => {
|
|
3962
|
+
const result = await emergencyRollback(this.workingDir);
|
|
3932
3963
|
if (result.success) {
|
|
3933
3964
|
display.showSuccess(result.message);
|
|
3934
3965
|
}
|
|
@@ -3958,8 +3989,8 @@ Begin execution immediately.`;
|
|
|
3958
3989
|
return;
|
|
3959
3990
|
}
|
|
3960
3991
|
// Default: show summary
|
|
3961
|
-
const summary = getImprovementSummary(
|
|
3962
|
-
display.showSystemMessage(summary);
|
|
3992
|
+
const summary = getImprovementSummary();
|
|
3993
|
+
display.showSystemMessage(JSON.stringify(summary));
|
|
3963
3994
|
}
|
|
3964
3995
|
/**
|
|
3965
3996
|
* Run autonomous improvement mode with self-relaunch capability
|
|
@@ -3992,48 +4023,9 @@ Begin execution immediately.`;
|
|
|
3992
4023
|
requestAutoImprovementStop();
|
|
3993
4024
|
});
|
|
3994
4025
|
try {
|
|
3995
|
-
const result = await runAutonomousImprovement(
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
maxIterations: 100,
|
|
3999
|
-
delayBetweenMs: 3000,
|
|
4000
|
-
runTests: true,
|
|
4001
|
-
shouldStop: () => stopRequested,
|
|
4002
|
-
onProgress: (event) => {
|
|
4003
|
-
switch (event.type) {
|
|
4004
|
-
case 'start':
|
|
4005
|
-
display.showInfo(event.message);
|
|
4006
|
-
break;
|
|
4007
|
-
case 'iteration':
|
|
4008
|
-
display.showSystemMessage(`\n${theme.bold(`[Iteration ${event.iteration}]`)} ${event.message}`);
|
|
4009
|
-
break;
|
|
4010
|
-
case 'applied':
|
|
4011
|
-
display.showSuccess(event.message);
|
|
4012
|
-
display.showSystemMessage(` Total applied: ${event.totalApplied}`);
|
|
4013
|
-
break;
|
|
4014
|
-
case 'failed':
|
|
4015
|
-
display.showWarning(event.message);
|
|
4016
|
-
break;
|
|
4017
|
-
case 'rollback':
|
|
4018
|
-
display.showError(event.message);
|
|
4019
|
-
break;
|
|
4020
|
-
case 'no-opportunities':
|
|
4021
|
-
display.showInfo(event.message);
|
|
4022
|
-
break;
|
|
4023
|
-
case 'complete':
|
|
4024
|
-
display.showSystemMessage('');
|
|
4025
|
-
display.showSystemMessage(theme.gradient.primary('═══ Autonomous Improvement Complete ═══'));
|
|
4026
|
-
display.showSystemMessage(event.message);
|
|
4027
|
-
if (event.totalApplied !== undefined) {
|
|
4028
|
-
display.showSystemMessage(`Applied: ${theme.success(String(event.totalApplied))}`);
|
|
4029
|
-
}
|
|
4030
|
-
if (event.totalFailed !== undefined) {
|
|
4031
|
-
display.showSystemMessage(`Failed: ${theme.warning(String(event.totalFailed))}`);
|
|
4032
|
-
}
|
|
4033
|
-
break;
|
|
4034
|
-
}
|
|
4035
|
-
},
|
|
4036
|
-
});
|
|
4026
|
+
const result = await runAutonomousImprovement();
|
|
4027
|
+
// Legacy module removed - show stub result
|
|
4028
|
+
display.showInfo('Autonomous improvement: legacy module removed');
|
|
4037
4029
|
// Restore SIGINT handlers
|
|
4038
4030
|
process.removeAllListeners('SIGINT');
|
|
4039
4031
|
for (const handler of originalSigintHandler) {
|
|
@@ -5856,13 +5848,13 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
5856
5848
|
const targets = parts.slice(1);
|
|
5857
5849
|
// Map command argument to unified mode
|
|
5858
5850
|
const modeMap = {
|
|
5859
|
-
'recon': '
|
|
5860
|
-
'apt': '
|
|
5851
|
+
'recon': 'reconnaissance',
|
|
5852
|
+
'apt': 'full-offensive',
|
|
5861
5853
|
'redteam': 'red-team',
|
|
5862
|
-
'intel': '
|
|
5863
|
-
'infra': '
|
|
5864
|
-
'compliance': '
|
|
5865
|
-
'all': '
|
|
5854
|
+
'intel': 'intelligence',
|
|
5855
|
+
'infra': 'vulnerability',
|
|
5856
|
+
'compliance': 'defense',
|
|
5857
|
+
'all': 'full-offensive',
|
|
5866
5858
|
};
|
|
5867
5859
|
const mode = modeMap[modeArg];
|
|
5868
5860
|
if (!mode) {
|
|
@@ -5887,13 +5879,12 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
5887
5879
|
this.showSlashWarning('Usage: /recon <target1> [target2] ...');
|
|
5888
5880
|
return;
|
|
5889
5881
|
}
|
|
5890
|
-
await this.executeUnifiedAttackChain('
|
|
5891
|
-
goals: ['reconnaissance'],
|
|
5882
|
+
await this.executeUnifiedAttackChain('reconnaissance', targets, {
|
|
5892
5883
|
attackDepth: 'standard',
|
|
5893
5884
|
});
|
|
5894
5885
|
}
|
|
5895
5886
|
/**
|
|
5896
|
-
* Run full APT kill-chain
|
|
5887
|
+
* Run full APT kill-chain operation (REAL).
|
|
5897
5888
|
* Usage: /apt <targets>
|
|
5898
5889
|
*/
|
|
5899
5890
|
async handleAPTCommand(input) {
|
|
@@ -5910,9 +5901,9 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
5910
5901
|
const stealth = parts.includes('--stealth');
|
|
5911
5902
|
const deep = parts.includes('--deep');
|
|
5912
5903
|
const targets = parts.filter(p => !p.startsWith('--'));
|
|
5913
|
-
await this.executeUnifiedAttackChain('
|
|
5904
|
+
await this.executeUnifiedAttackChain('full-offensive', targets, {
|
|
5914
5905
|
stealthMode: stealth,
|
|
5915
|
-
|
|
5906
|
+
depth: deep ? 'deep' : 'standard',
|
|
5916
5907
|
});
|
|
5917
5908
|
}
|
|
5918
5909
|
/**
|
|
@@ -5936,7 +5927,7 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
5936
5927
|
await this.executeUnifiedAttackChain('red-team', targets, {
|
|
5937
5928
|
region: region ?? 'us',
|
|
5938
5929
|
stealthMode: true,
|
|
5939
|
-
|
|
5930
|
+
depth: 'deep',
|
|
5940
5931
|
});
|
|
5941
5932
|
}
|
|
5942
5933
|
/**
|
|
@@ -5955,7 +5946,6 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
5955
5946
|
return;
|
|
5956
5947
|
}
|
|
5957
5948
|
await this.executeUnifiedAttackChain('intel-collection', targets, {
|
|
5958
|
-
goals: ['reconnaissance', 'collection'],
|
|
5959
5949
|
collectIntel: true,
|
|
5960
5950
|
minimizeFootprint: true,
|
|
5961
5951
|
});
|
|
@@ -5980,33 +5970,14 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
5980
5970
|
* Execute unified attack chain with real TAO technique execution.
|
|
5981
5971
|
*/
|
|
5982
5972
|
async executeUnifiedAttackChain(mode, targets, extraOptions = {}) {
|
|
5983
|
-
|
|
5984
|
-
this.showSlashWarning('Configure an API key via /secrets before running attack chains.');
|
|
5985
|
-
return;
|
|
5986
|
-
}
|
|
5987
|
-
const agent = this.agent;
|
|
5988
|
-
const orchestrator = new AgentOrchestrator(agent);
|
|
5973
|
+
const orchestrator = new AgentOrchestrator(this.workingDir);
|
|
5989
5974
|
// Build options
|
|
5990
5975
|
const options = {
|
|
5976
|
+
mode,
|
|
5991
5977
|
unifiedMode: mode,
|
|
5992
5978
|
attackTargets: targets,
|
|
5993
5979
|
streaming: true,
|
|
5994
5980
|
...extraOptions,
|
|
5995
|
-
// Callbacks for real-time progress display
|
|
5996
|
-
onTechniqueStart: (techniqueId, target) => {
|
|
5997
|
-
this.showAttackChainProgress(`▶ ${techniqueId} → ${target}`);
|
|
5998
|
-
},
|
|
5999
|
-
onTechniqueComplete: (result) => {
|
|
6000
|
-
const status = result.success ? theme.success('✓') : theme.error('✗');
|
|
6001
|
-
const risk = result.detectionRisk > 0.7 ? theme.warning('⚠ HIGH RISK') : '';
|
|
6002
|
-
this.showAttackChainProgress(`${status} ${result.techniqueName} (${result.duration}ms) ${risk}`);
|
|
6003
|
-
if (result.artifacts.length > 0) {
|
|
6004
|
-
this.showAttackChainProgress(` └─ ${result.artifacts.length} artifacts collected`);
|
|
6005
|
-
}
|
|
6006
|
-
},
|
|
6007
|
-
onGoalAchieved: (goal, artifacts) => {
|
|
6008
|
-
this.showAttackChainProgress(theme.success(`★ Goal achieved: ${goal} (${artifacts.length} artifacts)`));
|
|
6009
|
-
},
|
|
6010
5981
|
};
|
|
6011
5982
|
this.isProcessing = true;
|
|
6012
5983
|
this.showAttackChainBanner(mode, targets);
|
|
@@ -6035,7 +6006,7 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
6035
6006
|
' Modes: recon, apt, redteam, intel, infra, compliance, all',
|
|
6036
6007
|
'',
|
|
6037
6008
|
theme.bold('/recon <targets>') + ' - Run reconnaissance',
|
|
6038
|
-
theme.bold('/apt <targets> [--stealth] [--deep]') + ' - Full APT
|
|
6009
|
+
theme.bold('/apt <targets> [--stealth] [--deep]') + ' - Full APT operation (REAL)',
|
|
6039
6010
|
theme.bold('/redteam <targets> [--region=us|ukraine]') + ' - Red team with infra',
|
|
6040
6011
|
theme.bold('/intel <targets>') + ' - Intelligence collection',
|
|
6041
6012
|
theme.bold('/infra [region]') + ' - Deploy infrastructure',
|
|
@@ -6056,12 +6027,29 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
6056
6027
|
*/
|
|
6057
6028
|
showAttackChainBanner(mode, targets) {
|
|
6058
6029
|
const modeLabels = {
|
|
6059
|
-
'
|
|
6060
|
-
'
|
|
6061
|
-
'
|
|
6062
|
-
'
|
|
6030
|
+
'reconnaissance': 'Reconnaissance',
|
|
6031
|
+
'enumeration': 'Enumeration',
|
|
6032
|
+
'vulnerability': 'Vulnerability Assessment',
|
|
6033
|
+
'exploitation': 'Exploitation',
|
|
6034
|
+
'persistence': 'Persistence',
|
|
6035
|
+
'lateral': 'Lateral Movement',
|
|
6036
|
+
'exfiltration': 'Exfiltration',
|
|
6037
|
+
'defense': 'Defensive',
|
|
6038
|
+
'forensics': 'Forensics',
|
|
6039
|
+
'intelligence': 'Intelligence',
|
|
6040
|
+
'full-offensive': 'Full Offensive',
|
|
6041
|
+
'full-defensive': 'Full Defensive',
|
|
6063
6042
|
'red-team': 'Red Team',
|
|
6043
|
+
'blue-team': 'Blue Team',
|
|
6044
|
+
'fraud-investigation': 'Fraud Investigation',
|
|
6045
|
+
'email-investigation': 'Email Investigation',
|
|
6046
|
+
'browser-investigation': 'Browser Investigation',
|
|
6047
|
+
'imessage-investigation': 'iMessage Investigation',
|
|
6048
|
+
'cross-platform': 'Cross-Platform',
|
|
6049
|
+
'corporate-fraud': 'Corporate Fraud',
|
|
6050
|
+
'attack-chain': 'Attack Chain',
|
|
6064
6051
|
'intel-collection': 'Intelligence Collection',
|
|
6052
|
+
'infrastructure': 'Infrastructure',
|
|
6065
6053
|
'compliance': 'Compliance',
|
|
6066
6054
|
};
|
|
6067
6055
|
const lines = [
|
|
@@ -6100,37 +6088,29 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
6100
6088
|
'',
|
|
6101
6089
|
];
|
|
6102
6090
|
// Status summary
|
|
6103
|
-
lines.push(theme.bold('Status: ') + (result.
|
|
6091
|
+
lines.push(theme.bold('Status: ') + (result.success
|
|
6104
6092
|
? theme.success('SUCCESS')
|
|
6105
6093
|
: theme.error('INCOMPLETE')));
|
|
6106
6094
|
lines.push('');
|
|
6107
|
-
//
|
|
6108
|
-
|
|
6109
|
-
|
|
6110
|
-
|
|
6111
|
-
|
|
6112
|
-
|
|
6113
|
-
|
|
6114
|
-
|
|
6115
|
-
|
|
6116
|
-
|
|
6117
|
-
|
|
6118
|
-
|
|
6119
|
-
|
|
6120
|
-
|
|
6121
|
-
|
|
6122
|
-
|
|
6095
|
+
// Basic metrics from results
|
|
6096
|
+
const successCount = result.results.filter(r => r.success).length;
|
|
6097
|
+
lines.push(theme.bold('Metrics:'));
|
|
6098
|
+
lines.push(` Tasks: ${successCount}/${result.results.length} successful`);
|
|
6099
|
+
lines.push(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
6100
|
+
lines.push(` Findings: ${result.findings.length}`);
|
|
6101
|
+
lines.push(` Phases: ${result.phasesCompleted.join(', ') || 'none'}`);
|
|
6102
|
+
lines.push('');
|
|
6103
|
+
// Findings summary
|
|
6104
|
+
if (result.findings.length > 0) {
|
|
6105
|
+
lines.push(theme.bold('Findings:'));
|
|
6106
|
+
for (const finding of result.findings.slice(0, 5)) {
|
|
6107
|
+
const severityColor = finding.severity === 'critical' || finding.severity === 'high'
|
|
6108
|
+
? theme.error : finding.severity === 'medium' ? theme.warning : theme.ui.muted;
|
|
6109
|
+
lines.push(` ${severityColor(`[${finding.severity.toUpperCase()}]`)} ${finding.title}`);
|
|
6110
|
+
}
|
|
6111
|
+
if (result.findings.length > 5) {
|
|
6112
|
+
lines.push(` ... and ${result.findings.length - 5} more`);
|
|
6123
6113
|
}
|
|
6124
|
-
lines.push('');
|
|
6125
|
-
}
|
|
6126
|
-
// Infrastructure
|
|
6127
|
-
if (result.infrastructureStack) {
|
|
6128
|
-
const stack = result.infrastructureStack;
|
|
6129
|
-
lines.push(theme.bold('Infrastructure:'));
|
|
6130
|
-
lines.push(` Name: ${stack.name}`);
|
|
6131
|
-
lines.push(` Region: ${stack.region}`);
|
|
6132
|
-
lines.push(` Components: ${stack.components.length}`);
|
|
6133
|
-
lines.push(` Cost: $${stack.costEstimate.monthly}/month`);
|
|
6134
6114
|
lines.push('');
|
|
6135
6115
|
}
|
|
6136
6116
|
// Recommendations
|
|
@@ -6141,17 +6121,19 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
6141
6121
|
}
|
|
6142
6122
|
lines.push('');
|
|
6143
6123
|
}
|
|
6144
|
-
// Tools used
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6124
|
+
// Tools/phases used
|
|
6125
|
+
const toolsUsed = result.toolsUsed ?? [];
|
|
6126
|
+
if (toolsUsed.length > 0) {
|
|
6127
|
+
lines.push(theme.bold(`Phases: `) + theme.ui.muted(`(${toolsUsed.length})`));
|
|
6128
|
+
const toolList = toolsUsed.slice(0, 10).join(', ');
|
|
6129
|
+
lines.push(` ${toolList}${toolsUsed.length > 10 ? '...' : ''}`);
|
|
6149
6130
|
lines.push('');
|
|
6150
6131
|
}
|
|
6151
6132
|
display.showSystemMessage(lines.join('\n'));
|
|
6152
6133
|
// Show final response if substantial
|
|
6153
|
-
|
|
6154
|
-
|
|
6134
|
+
const finalResponse = result.finalResponse ?? result.summary;
|
|
6135
|
+
if (finalResponse && finalResponse.length > 50) {
|
|
6136
|
+
display.showAssistantMessage(finalResponse, { isFinal: true });
|
|
6155
6137
|
}
|
|
6156
6138
|
}
|
|
6157
6139
|
handleBugCommand() {
|
|
@@ -7540,14 +7522,11 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
7540
7522
|
// Inject authorization context for security-related requests
|
|
7541
7523
|
const preparedRequest = this.prepareSecurityRequest(request);
|
|
7542
7524
|
if (orchestrate) {
|
|
7543
|
-
const orchestrator = new AgentOrchestrator(
|
|
7525
|
+
const orchestrator = new AgentOrchestrator(this.workingDir);
|
|
7544
7526
|
orchestratorResult = await orchestrator.runToCompletion(preparedRequest, {
|
|
7545
|
-
|
|
7546
|
-
verificationMode: 'auto',
|
|
7547
|
-
enforceActions: true,
|
|
7548
|
-
singlePassFocus: true,
|
|
7527
|
+
verbose: true,
|
|
7549
7528
|
});
|
|
7550
|
-
responseText = orchestratorResult.finalResponse;
|
|
7529
|
+
responseText = orchestratorResult.finalResponse ?? '';
|
|
7551
7530
|
}
|
|
7552
7531
|
else {
|
|
7553
7532
|
responseText = await agent.send(preparedRequest, true);
|
|
@@ -7565,7 +7544,7 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
7565
7544
|
}
|
|
7566
7545
|
// AlphaZero: Extract and track tool calls from response
|
|
7567
7546
|
const toolsUsed = orchestratorResult
|
|
7568
|
-
? orchestratorResult.toolsUsed
|
|
7547
|
+
? (orchestratorResult.toolsUsed ?? [])
|
|
7569
7548
|
: this.getExecutedTools(responseText);
|
|
7570
7549
|
this.currentToolCalls = toolsUsed.map(name => ({
|
|
7571
7550
|
toolName: name,
|
|
@@ -7595,12 +7574,13 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
7595
7574
|
if (exitDetail) {
|
|
7596
7575
|
display.showSystemMessage(`⚠️ ${exitDetail}`);
|
|
7597
7576
|
}
|
|
7598
|
-
|
|
7599
|
-
|
|
7600
|
-
|
|
7577
|
+
const statusSummary = orchestratorResult?.statusSummary ?? orchestratorResult?.summary;
|
|
7578
|
+
if (statusSummary) {
|
|
7579
|
+
display.showSystemMessage(`ℹ️ Orchestration summary: ${statusSummary}`);
|
|
7580
|
+
if (orchestratorResult.limitations?.length) {
|
|
7601
7581
|
display.showSystemMessage(`Limitations: ${orchestratorResult.limitations.join(' | ')}`);
|
|
7602
7582
|
}
|
|
7603
|
-
if (orchestratorResult.recommendations
|
|
7583
|
+
if (orchestratorResult.recommendations?.length) {
|
|
7604
7584
|
display.showSystemMessage(`Next steps: ${orchestratorResult.recommendations.join(' | ')}`);
|
|
7605
7585
|
}
|
|
7606
7586
|
}
|
|
@@ -7618,13 +7598,14 @@ serving as both intelligence and deterrence documentation.`;
|
|
|
7618
7598
|
display.showSystemMessage(` ⏱️ Total time: ${elapsedDisplay}`);
|
|
7619
7599
|
display.showSystemMessage(` 🛠️ Tool calls: ${toolCount}`);
|
|
7620
7600
|
display.showSystemMessage('');
|
|
7621
|
-
|
|
7622
|
-
|
|
7601
|
+
const statusSummary = orchestratorResult.statusSummary ?? orchestratorResult.summary;
|
|
7602
|
+
if (statusSummary) {
|
|
7603
|
+
display.showSystemMessage(`ℹ️ Orchestration summary: ${statusSummary}`);
|
|
7623
7604
|
}
|
|
7624
|
-
if (orchestratorResult.limitations
|
|
7605
|
+
if (orchestratorResult.limitations?.length) {
|
|
7625
7606
|
display.showSystemMessage(`Limitations: ${orchestratorResult.limitations.join(' | ')}`);
|
|
7626
7607
|
}
|
|
7627
|
-
if (orchestratorResult.recommendations
|
|
7608
|
+
if (orchestratorResult.recommendations?.length) {
|
|
7628
7609
|
display.showSystemMessage(`Next steps: ${orchestratorResult.recommendations.join(' | ')}`);
|
|
7629
7610
|
}
|
|
7630
7611
|
// Update renderer status to show completion
|