erosolar-cli 2.1.247 → 2.1.249
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 +175 -3
- package/dist/capabilities/orchestrationCapability.d.ts.map +1 -1
- package/dist/capabilities/orchestrationCapability.js +614 -85
- package/dist/capabilities/orchestrationCapability.js.map +1 -1
- package/dist/core/agentOrchestrator.d.ts.map +1 -1
- package/dist/core/agentOrchestrator.js +18 -1
- package/dist/core/agentOrchestrator.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +4 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +40 -19
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +16 -0
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +74 -16
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/package.json +2 -2
|
@@ -5,23 +5,195 @@
|
|
|
5
5
|
* - Government procedures (law enforcement, compliance)
|
|
6
6
|
* - Infrastructure deployment (US, Ukraine, EU, Asia)
|
|
7
7
|
* - Security deliverables (pentest reports, incident response)
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
8
|
+
* - Validation & error analysis (TypeScript, build, test, lint)
|
|
9
|
+
* - Hypothesis testing & failure recovery
|
|
10
|
+
* - Result verification (prevents hallucinated success)
|
|
10
11
|
*/
|
|
11
12
|
import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
|
|
13
|
+
export declare enum ErrorType {
|
|
14
|
+
BUILD_ERROR = "build_error",
|
|
15
|
+
TEST_FAILURE = "test_failure",
|
|
16
|
+
TYPE_ERROR = "type_error",
|
|
17
|
+
LINT_ERROR = "lint_error",
|
|
18
|
+
IMPORT_ERROR = "import_error",
|
|
19
|
+
SYNTAX_ERROR = "syntax_error",
|
|
20
|
+
FILE_NOT_FOUND = "file_not_found",
|
|
21
|
+
PERMISSION_ERROR = "permission_error",
|
|
22
|
+
EDIT_CONFLICT = "edit_conflict",
|
|
23
|
+
NEWLINE_IN_STRING = "newline_in_string",
|
|
24
|
+
UNKNOWN = "unknown"
|
|
25
|
+
}
|
|
26
|
+
export interface ErrorLocation {
|
|
27
|
+
filePath: string;
|
|
28
|
+
lineNumber?: number;
|
|
29
|
+
column?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface ErrorFix {
|
|
32
|
+
description: string;
|
|
33
|
+
filePath: string;
|
|
34
|
+
oldContent: string;
|
|
35
|
+
newContent: string;
|
|
36
|
+
confidence: number;
|
|
37
|
+
autoApplicable: boolean;
|
|
38
|
+
requiresConfirmation: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface ParsedError {
|
|
41
|
+
errorType: ErrorType;
|
|
42
|
+
message: string;
|
|
43
|
+
rawOutput: string;
|
|
44
|
+
locations: ErrorLocation[];
|
|
45
|
+
suggestedFixes: ErrorFix[];
|
|
46
|
+
relatedErrors: string[];
|
|
47
|
+
metadata: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
export interface ValidationError {
|
|
50
|
+
type: 'typescript' | 'test' | 'lint' | 'build';
|
|
51
|
+
file?: string;
|
|
52
|
+
line?: number;
|
|
53
|
+
column?: number;
|
|
54
|
+
code?: string;
|
|
55
|
+
message: string;
|
|
56
|
+
severity: 'error' | 'warning';
|
|
57
|
+
rawOutput?: string;
|
|
58
|
+
suggestedFix?: SuggestedFix;
|
|
59
|
+
}
|
|
60
|
+
export interface SuggestedFix {
|
|
61
|
+
description: string;
|
|
62
|
+
autoFixable: boolean;
|
|
63
|
+
fixType: 'edit' | 'command' | 'manual';
|
|
64
|
+
fixDetails: {
|
|
65
|
+
file?: string;
|
|
66
|
+
oldContent?: string;
|
|
67
|
+
newContent?: string;
|
|
68
|
+
command?: string;
|
|
69
|
+
manualSteps?: string[];
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export interface ValidationResult {
|
|
73
|
+
success: boolean;
|
|
74
|
+
phase: 'typescript' | 'build' | 'test' | 'lint' | 'all';
|
|
75
|
+
errors: ValidationError[];
|
|
76
|
+
warnings: ValidationError[];
|
|
77
|
+
summary: string;
|
|
78
|
+
durationMs: number;
|
|
79
|
+
autoFixableCount: number;
|
|
80
|
+
insights?: ValidationInsights;
|
|
81
|
+
}
|
|
82
|
+
export interface ValidationInsights {
|
|
83
|
+
rootCauseHints: string[];
|
|
84
|
+
recoveryPlan: string[];
|
|
85
|
+
dominantErrorCodes: {
|
|
86
|
+
code: string;
|
|
87
|
+
count: number;
|
|
88
|
+
}[];
|
|
89
|
+
topFiles: {
|
|
90
|
+
file: string;
|
|
91
|
+
count: number;
|
|
92
|
+
}[];
|
|
93
|
+
}
|
|
94
|
+
export interface Hypothesis {
|
|
95
|
+
id: string;
|
|
96
|
+
description: string;
|
|
97
|
+
confidence: number;
|
|
98
|
+
evidence: Evidence[];
|
|
99
|
+
testResults?: TestResult[];
|
|
100
|
+
status: 'pending' | 'testing' | 'validated' | 'rejected';
|
|
101
|
+
}
|
|
102
|
+
export interface Evidence {
|
|
103
|
+
type: 'observation' | 'data' | 'test_result' | 'user_feedback';
|
|
104
|
+
content: string;
|
|
105
|
+
weight: number;
|
|
106
|
+
timestamp: Date;
|
|
107
|
+
}
|
|
108
|
+
export interface TestResult {
|
|
109
|
+
testName: string;
|
|
110
|
+
passed: boolean;
|
|
111
|
+
output: string;
|
|
112
|
+
duration: number;
|
|
113
|
+
timestamp: Date;
|
|
114
|
+
}
|
|
115
|
+
export interface FailureSignal {
|
|
116
|
+
type: 'build' | 'test' | 'tool' | 'user-feedback' | 'verification' | 'loop-detected';
|
|
117
|
+
severity: 'critical' | 'major' | 'minor';
|
|
118
|
+
message: string;
|
|
119
|
+
context?: Record<string, unknown>;
|
|
120
|
+
timestamp: string;
|
|
121
|
+
}
|
|
122
|
+
export interface RecoveryStrategy {
|
|
123
|
+
id: string;
|
|
124
|
+
failureType: string;
|
|
125
|
+
errorPattern: string;
|
|
126
|
+
recoverySteps: string[];
|
|
127
|
+
successRate: number;
|
|
128
|
+
timesUsed: number;
|
|
129
|
+
lastSuccess: string;
|
|
130
|
+
}
|
|
131
|
+
export type VerificationStatus = 'VERIFIED_SUCCESS' | 'VERIFIED_FAILURE' | 'UNVERIFIED' | 'PARTIAL_SUCCESS' | 'REQUIRES_USER_ACTION';
|
|
132
|
+
export interface VerifiedResult {
|
|
133
|
+
status: VerificationStatus;
|
|
134
|
+
summary: string;
|
|
135
|
+
details: string;
|
|
136
|
+
verificationChecks?: VerificationCheck[];
|
|
137
|
+
suggestedActions?: string[];
|
|
138
|
+
verifiedAt: string;
|
|
139
|
+
durationMs?: number;
|
|
140
|
+
}
|
|
141
|
+
export interface VerificationCheck {
|
|
142
|
+
check: string;
|
|
143
|
+
passed: boolean;
|
|
144
|
+
details?: string;
|
|
145
|
+
}
|
|
146
|
+
declare class ErrorAnalyzer {
|
|
147
|
+
analyzeOutput(output: string, command?: string): ParsedError[];
|
|
148
|
+
formatForAI(errors: ParsedError[]): string;
|
|
149
|
+
private detectOutputType;
|
|
150
|
+
private parseTypeScriptErrors;
|
|
151
|
+
private parseNpmErrors;
|
|
152
|
+
private parseTestErrors;
|
|
153
|
+
private parseGenericErrors;
|
|
154
|
+
private generateFixes;
|
|
155
|
+
}
|
|
156
|
+
declare class HypothesisEngine {
|
|
157
|
+
private hypotheses;
|
|
158
|
+
private readonly maxHypotheses;
|
|
159
|
+
constructor(maxHypotheses?: number);
|
|
160
|
+
generateHypothesis(description: string, initialEvidence?: Evidence[]): Hypothesis;
|
|
161
|
+
addEvidence(hypothesisId: string, evidence: Evidence): void;
|
|
162
|
+
getBestHypothesis(): Hypothesis | null;
|
|
163
|
+
getAllHypotheses(): Hypothesis[];
|
|
164
|
+
clear(): void;
|
|
165
|
+
private calculateConfidence;
|
|
166
|
+
private pruneHypotheses;
|
|
167
|
+
}
|
|
168
|
+
declare function detectFailure(output: string, context: {
|
|
169
|
+
userMessage?: string;
|
|
170
|
+
}): FailureSignal | null;
|
|
171
|
+
declare function formatVerifiedResult(result: VerifiedResult): string;
|
|
172
|
+
declare function analyzeOutput(output: string, patterns: {
|
|
173
|
+
success: RegExp[];
|
|
174
|
+
failure: RegExp[];
|
|
175
|
+
}, exitCode?: number): {
|
|
176
|
+
isSuccess: boolean;
|
|
177
|
+
isFailure: boolean;
|
|
178
|
+
confidence: 'high' | 'medium' | 'low';
|
|
179
|
+
};
|
|
12
180
|
export interface OrchestrationCapabilityOptions {
|
|
13
181
|
workingDir?: string;
|
|
14
182
|
enableGovernment?: boolean;
|
|
15
183
|
enableInfrastructure?: boolean;
|
|
16
184
|
enableSecurity?: boolean;
|
|
17
185
|
enableAPT?: boolean;
|
|
186
|
+
enableValidation?: boolean;
|
|
187
|
+
enableHypothesis?: boolean;
|
|
188
|
+
enableRecovery?: boolean;
|
|
18
189
|
defaultRegion?: 'us' | 'ukraine' | 'eu' | 'asia' | 'global';
|
|
19
190
|
}
|
|
20
191
|
export declare class OrchestrationCapabilityModule implements CapabilityModule {
|
|
21
192
|
readonly id = "capability.orchestration";
|
|
22
|
-
readonly description = "Unified orchestration for
|
|
193
|
+
readonly description = "Unified orchestration for gov, infra, security, validation, hypothesis testing, and failure recovery";
|
|
23
194
|
private readonly options;
|
|
24
195
|
constructor(options?: OrchestrationCapabilityOptions);
|
|
25
196
|
create(context: CapabilityContext): Promise<CapabilityContribution>;
|
|
26
197
|
}
|
|
198
|
+
export { ErrorAnalyzer, HypothesisEngine, detectFailure, formatVerifiedResult, analyzeOutput };
|
|
27
199
|
//# sourceMappingURL=orchestrationCapability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrationCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/orchestrationCapability.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"orchestrationCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/orchestrationCapability.ts"],"names":[],"mappings":"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"}
|