erosolar-cli 1.7.372 → 1.7.377
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/agentSpawningCapability.d.ts.map +1 -1
- package/dist/capabilities/agentSpawningCapability.js +29 -1
- package/dist/capabilities/agentSpawningCapability.js.map +1 -1
- package/dist/contracts/agent-schemas.json +100 -0
- package/dist/core/alphaZeroEngine.d.ts +269 -0
- package/dist/core/alphaZeroEngine.d.ts.map +1 -0
- package/dist/core/alphaZeroEngine.js +523 -0
- package/dist/core/alphaZeroEngine.js.map +1 -0
- package/dist/core/alphaZeroOrchestrator.d.ts +140 -0
- package/dist/core/alphaZeroOrchestrator.d.ts.map +1 -0
- package/dist/core/alphaZeroOrchestrator.js +418 -0
- package/dist/core/alphaZeroOrchestrator.js.map +1 -0
- package/dist/core/checkpoint.d.ts +76 -0
- package/dist/core/checkpoint.d.ts.map +1 -0
- package/dist/core/checkpoint.js +278 -0
- package/dist/core/checkpoint.js.map +1 -0
- package/dist/core/claudeCodeFeatures.d.ts +64 -0
- package/dist/core/claudeCodeFeatures.d.ts.map +1 -0
- package/dist/core/claudeCodeFeatures.js +163 -0
- package/dist/core/claudeCodeFeatures.js.map +1 -0
- package/dist/core/costTracker.d.ts +87 -0
- package/dist/core/costTracker.d.ts.map +1 -0
- package/dist/core/costTracker.js +285 -0
- package/dist/core/costTracker.js.map +1 -0
- package/dist/core/failureRecovery.d.ts +122 -0
- package/dist/core/failureRecovery.d.ts.map +1 -0
- package/dist/core/failureRecovery.js +477 -0
- package/dist/core/failureRecovery.js.map +1 -0
- package/dist/core/learningPersistence.d.ts +145 -0
- package/dist/core/learningPersistence.d.ts.map +1 -0
- package/dist/core/learningPersistence.js +477 -0
- package/dist/core/learningPersistence.js.map +1 -0
- package/dist/core/memorySystem.d.ts +67 -0
- package/dist/core/memorySystem.d.ts.map +1 -0
- package/dist/core/memorySystem.js +334 -0
- package/dist/core/memorySystem.js.map +1 -0
- package/dist/core/metricsTracker.d.ts +35 -0
- package/dist/core/metricsTracker.d.ts.map +1 -1
- package/dist/core/metricsTracker.js +67 -0
- package/dist/core/metricsTracker.js.map +1 -1
- package/dist/core/outputStyles.d.ts +48 -0
- package/dist/core/outputStyles.d.ts.map +1 -0
- package/dist/core/outputStyles.js +270 -0
- package/dist/core/outputStyles.js.map +1 -0
- package/dist/core/selfEvolution.d.ts +155 -0
- package/dist/core/selfEvolution.d.ts.map +1 -0
- package/dist/core/selfEvolution.js +1000 -0
- package/dist/core/selfEvolution.js.map +1 -0
- package/dist/core/selfImprovement.d.ts +141 -0
- package/dist/core/selfImprovement.d.ts.map +1 -0
- package/dist/core/selfImprovement.js +700 -0
- package/dist/core/selfImprovement.js.map +1 -0
- package/dist/core/updateManager.d.ts +62 -0
- package/dist/core/updateManager.d.ts.map +1 -0
- package/dist/core/updateManager.js +266 -0
- package/dist/core/updateManager.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +45 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +1157 -4
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/keyboardShortcuts.d.ts +53 -0
- package/dist/shell/keyboardShortcuts.d.ts.map +1 -0
- package/dist/shell/keyboardShortcuts.js +163 -0
- package/dist/shell/keyboardShortcuts.js.map +1 -0
- package/dist/shell/terminalInput.d.ts +1 -1
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +8 -4
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/vimMode.d.ts +66 -0
- package/dist/shell/vimMode.d.ts.map +1 -0
- package/dist/shell/vimMode.js +434 -0
- package/dist/shell/vimMode.js.map +1 -0
- package/dist/subagents/parallelAgentManager.d.ts +99 -0
- package/dist/subagents/parallelAgentManager.d.ts.map +1 -0
- package/dist/subagents/parallelAgentManager.js +249 -0
- package/dist/subagents/parallelAgentManager.js.map +1 -0
- package/dist/subagents/taskRunner.d.ts +6 -1
- package/dist/subagents/taskRunner.d.ts.map +1 -1
- package/dist/subagents/taskRunner.js +57 -2
- package/dist/subagents/taskRunner.js.map +1 -1
- package/dist/tools/planningTools.d.ts +9 -0
- package/dist/tools/planningTools.d.ts.map +1 -1
- package/dist/tools/planningTools.js +90 -0
- package/dist/tools/planningTools.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +11 -1
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +73 -9
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/display.d.ts +5 -0
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +14 -0
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/shortcutsHelp.d.ts +11 -0
- package/dist/ui/shortcutsHelp.d.ts.map +1 -1
- package/dist/ui/shortcutsHelp.js +59 -3
- package/dist/ui/shortcutsHelp.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output Styles System - Claude Code Style
|
|
3
|
+
*
|
|
4
|
+
* Configurable output styles that modify how the agent responds.
|
|
5
|
+
* Similar to Claude Code's output-styles feature.
|
|
6
|
+
*
|
|
7
|
+
* Built-in Styles:
|
|
8
|
+
* - Default: Standard system prompt for efficient software engineering
|
|
9
|
+
* - Explanatory: Educational insights between coding tasks
|
|
10
|
+
* - Learning: Collaborative learn-by-doing mode with TODO(human) markers
|
|
11
|
+
* - Concise: Minimal output, focuses on code changes only
|
|
12
|
+
*
|
|
13
|
+
* Custom styles can be created in:
|
|
14
|
+
* - ~/.erosolar/output-styles/ (user-level)
|
|
15
|
+
* - .erosolar/output-styles/ (project-level)
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync, readFileSync, readdirSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
18
|
+
import { homedir } from 'node:os';
|
|
19
|
+
import { join } from 'node:path';
|
|
20
|
+
const USER_STYLES_DIR = join(homedir(), '.erosolar', 'output-styles');
|
|
21
|
+
const PROJECT_STYLES_SUBDIR = '.erosolar/output-styles';
|
|
22
|
+
/**
|
|
23
|
+
* Built-in output styles
|
|
24
|
+
*/
|
|
25
|
+
const BUILT_IN_STYLES = {
|
|
26
|
+
default: {
|
|
27
|
+
id: 'default',
|
|
28
|
+
name: 'Default',
|
|
29
|
+
description: 'Standard efficient software engineering mode',
|
|
30
|
+
instructions: `You are an expert software engineer. Focus on:
|
|
31
|
+
- Writing clean, maintainable code
|
|
32
|
+
- Providing direct, actionable solutions
|
|
33
|
+
- Following best practices and conventions
|
|
34
|
+
- Being concise while remaining helpful
|
|
35
|
+
- Explaining only when necessary for understanding`,
|
|
36
|
+
},
|
|
37
|
+
explanatory: {
|
|
38
|
+
id: 'explanatory',
|
|
39
|
+
name: 'Explanatory',
|
|
40
|
+
description: 'Educational mode with detailed explanations',
|
|
41
|
+
instructions: `You are an expert software engineer and educator. Focus on:
|
|
42
|
+
- Explaining the "why" behind code decisions
|
|
43
|
+
- Teaching concepts as you implement solutions
|
|
44
|
+
- Providing context about patterns and best practices
|
|
45
|
+
- Breaking down complex problems step by step
|
|
46
|
+
- Offering alternative approaches when relevant
|
|
47
|
+
- Including comments that explain non-obvious code
|
|
48
|
+
|
|
49
|
+
When making changes:
|
|
50
|
+
1. Briefly explain what you're about to do and why
|
|
51
|
+
2. Implement the solution with inline comments
|
|
52
|
+
3. Summarize key learnings after completion`,
|
|
53
|
+
},
|
|
54
|
+
learning: {
|
|
55
|
+
id: 'learning',
|
|
56
|
+
name: 'Learning',
|
|
57
|
+
description: 'Collaborative learn-by-doing mode',
|
|
58
|
+
instructions: `You are a collaborative coding mentor helping the user learn by doing. Focus on:
|
|
59
|
+
- Guiding rather than solving directly
|
|
60
|
+
- Asking questions to prompt thinking
|
|
61
|
+
- Leaving room for the user to complete parts of the solution
|
|
62
|
+
- Using TODO(human) markers for tasks the user should complete
|
|
63
|
+
- Explaining concepts as they become relevant
|
|
64
|
+
- Celebrating progress and building confidence
|
|
65
|
+
|
|
66
|
+
When implementing solutions:
|
|
67
|
+
1. Start with a high-level plan
|
|
68
|
+
2. Implement core structure, leaving some parts as TODO(human)
|
|
69
|
+
3. Explain what each TODO requires
|
|
70
|
+
4. Encourage the user to try implementing those parts
|
|
71
|
+
|
|
72
|
+
Example TODO format:
|
|
73
|
+
\`\`\`
|
|
74
|
+
// TODO(human): Implement the validation logic here
|
|
75
|
+
// Hint: Check if the input is a valid email format
|
|
76
|
+
// Consider using a regex pattern like /^[^@]+@[^@]+\\.[^@]+$/
|
|
77
|
+
\`\`\``,
|
|
78
|
+
},
|
|
79
|
+
concise: {
|
|
80
|
+
id: 'concise',
|
|
81
|
+
name: 'Concise',
|
|
82
|
+
description: 'Minimal output, code-focused',
|
|
83
|
+
instructions: `Be extremely concise. Focus exclusively on code changes.
|
|
84
|
+
- No explanations unless critical for understanding
|
|
85
|
+
- No summaries or recaps
|
|
86
|
+
- Direct code modifications only
|
|
87
|
+
- Single-line responses when possible
|
|
88
|
+
- Skip pleasantries and transitions`,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Parse a custom style file (Markdown with YAML frontmatter)
|
|
93
|
+
*/
|
|
94
|
+
function parseStyleFile(content, source) {
|
|
95
|
+
try {
|
|
96
|
+
// Extract YAML frontmatter
|
|
97
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
98
|
+
if (!frontmatterMatch) {
|
|
99
|
+
// No frontmatter, use entire content as instructions
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const [, frontmatter, body] = frontmatterMatch;
|
|
103
|
+
if (!frontmatter || !body)
|
|
104
|
+
return null;
|
|
105
|
+
// Parse simple YAML (id, name, description)
|
|
106
|
+
const parseYamlField = (yaml, field) => {
|
|
107
|
+
const match = yaml.match(new RegExp(`^${field}:\\s*(.+)$`, 'm'));
|
|
108
|
+
return match ? match[1].trim().replace(/^["']|["']$/g, '') : null;
|
|
109
|
+
};
|
|
110
|
+
const id = parseYamlField(frontmatter, 'id');
|
|
111
|
+
const name = parseYamlField(frontmatter, 'name') ?? id;
|
|
112
|
+
const description = parseYamlField(frontmatter, 'description') ?? '';
|
|
113
|
+
if (!id)
|
|
114
|
+
return null;
|
|
115
|
+
return {
|
|
116
|
+
id,
|
|
117
|
+
name: name ?? id,
|
|
118
|
+
description,
|
|
119
|
+
instructions: body.trim(),
|
|
120
|
+
isBuiltIn: false,
|
|
121
|
+
source,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Load custom styles from a directory
|
|
130
|
+
*/
|
|
131
|
+
function loadStylesFromDir(dir, source) {
|
|
132
|
+
if (!existsSync(dir)) {
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
const styles = [];
|
|
136
|
+
try {
|
|
137
|
+
const files = readdirSync(dir).filter(f => f.endsWith('.md'));
|
|
138
|
+
for (const file of files) {
|
|
139
|
+
const content = readFileSync(join(dir, file), 'utf8');
|
|
140
|
+
const style = parseStyleFile(content, source);
|
|
141
|
+
if (style) {
|
|
142
|
+
styles.push(style);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
// Ignore directory read errors
|
|
148
|
+
}
|
|
149
|
+
return styles;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get all available output styles
|
|
153
|
+
*/
|
|
154
|
+
export function getAvailableStyles(workingDir) {
|
|
155
|
+
const styles = [];
|
|
156
|
+
// Add built-in styles
|
|
157
|
+
for (const [id, style] of Object.entries(BUILT_IN_STYLES)) {
|
|
158
|
+
styles.push({
|
|
159
|
+
...style,
|
|
160
|
+
isBuiltIn: true,
|
|
161
|
+
source: 'built-in',
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
// Add user styles
|
|
165
|
+
styles.push(...loadStylesFromDir(USER_STYLES_DIR, 'user'));
|
|
166
|
+
// Add project styles
|
|
167
|
+
const projectStylesDir = join(workingDir, PROJECT_STYLES_SUBDIR);
|
|
168
|
+
styles.push(...loadStylesFromDir(projectStylesDir, 'project'));
|
|
169
|
+
return styles;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get a specific output style by ID
|
|
173
|
+
*/
|
|
174
|
+
export function getOutputStyle(id, workingDir) {
|
|
175
|
+
// Check built-in styles first
|
|
176
|
+
if (id in BUILT_IN_STYLES) {
|
|
177
|
+
const style = BUILT_IN_STYLES[id];
|
|
178
|
+
return {
|
|
179
|
+
...style,
|
|
180
|
+
isBuiltIn: true,
|
|
181
|
+
source: 'built-in',
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
// Check user styles
|
|
185
|
+
const userStyles = loadStylesFromDir(USER_STYLES_DIR, 'user');
|
|
186
|
+
const userStyle = userStyles.find(s => s.id === id);
|
|
187
|
+
if (userStyle)
|
|
188
|
+
return userStyle;
|
|
189
|
+
// Check project styles
|
|
190
|
+
const projectStylesDir = join(workingDir, PROJECT_STYLES_SUBDIR);
|
|
191
|
+
const projectStyles = loadStylesFromDir(projectStylesDir, 'project');
|
|
192
|
+
const projectStyle = projectStyles.find(s => s.id === id);
|
|
193
|
+
if (projectStyle)
|
|
194
|
+
return projectStyle;
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Create a custom output style
|
|
199
|
+
*/
|
|
200
|
+
export function createCustomStyle(style, location, workingDir) {
|
|
201
|
+
const dir = location === 'user'
|
|
202
|
+
? USER_STYLES_DIR
|
|
203
|
+
: join(workingDir ?? process.cwd(), PROJECT_STYLES_SUBDIR);
|
|
204
|
+
try {
|
|
205
|
+
mkdirSync(dir, { recursive: true });
|
|
206
|
+
const content = `---
|
|
207
|
+
id: ${style.id}
|
|
208
|
+
name: ${style.name}
|
|
209
|
+
description: ${style.description}
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
${style.instructions}
|
|
213
|
+
`;
|
|
214
|
+
writeFileSync(join(dir, `${style.id}.md`), content, 'utf8');
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Format style for system prompt injection
|
|
223
|
+
*/
|
|
224
|
+
export function formatStyleForPrompt(style) {
|
|
225
|
+
return `<output-style name="${style.name}">
|
|
226
|
+
${style.instructions}
|
|
227
|
+
</output-style>`;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Style preference storage
|
|
231
|
+
*/
|
|
232
|
+
let currentStyleId = 'default';
|
|
233
|
+
export function getCurrentStyleId() {
|
|
234
|
+
return currentStyleId;
|
|
235
|
+
}
|
|
236
|
+
export function setCurrentStyleId(id) {
|
|
237
|
+
currentStyleId = id;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Format styles list for display
|
|
241
|
+
*/
|
|
242
|
+
export function formatStylesListForDisplay(styles, currentId) {
|
|
243
|
+
const lines = ['Available Output Styles:', ''];
|
|
244
|
+
const bySource = {
|
|
245
|
+
'built-in': styles.filter(s => s.source === 'built-in'),
|
|
246
|
+
'user': styles.filter(s => s.source === 'user'),
|
|
247
|
+
'project': styles.filter(s => s.source === 'project'),
|
|
248
|
+
};
|
|
249
|
+
const formatStyle = (s) => {
|
|
250
|
+
const marker = s.id === currentId ? '●' : '○';
|
|
251
|
+
return ` ${marker} ${s.name} (${s.id}) - ${s.description}`;
|
|
252
|
+
};
|
|
253
|
+
if (bySource['built-in'].length > 0) {
|
|
254
|
+
lines.push('Built-in:');
|
|
255
|
+
lines.push(...bySource['built-in'].map(formatStyle));
|
|
256
|
+
lines.push('');
|
|
257
|
+
}
|
|
258
|
+
if (bySource['user'].length > 0) {
|
|
259
|
+
lines.push('User (~/.erosolar/output-styles/):');
|
|
260
|
+
lines.push(...bySource['user'].map(formatStyle));
|
|
261
|
+
lines.push('');
|
|
262
|
+
}
|
|
263
|
+
if (bySource['project'].length > 0) {
|
|
264
|
+
lines.push('Project (.erosolar/output-styles/):');
|
|
265
|
+
lines.push(...bySource['project'].map(formatStyle));
|
|
266
|
+
lines.push('');
|
|
267
|
+
}
|
|
268
|
+
return lines.join('\n');
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=outputStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputStyles.js","sourceRoot":"","sources":["../../src/core/outputStyles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-Evolution System for erosolar-cli
|
|
3
|
+
*
|
|
4
|
+
* When erosolar-cli is run in its own source repository, this module enables
|
|
5
|
+
* fully automatic self-improvement using AlphaZero-style techniques.
|
|
6
|
+
*
|
|
7
|
+
* The system:
|
|
8
|
+
* 1. Analyzes its own source code for improvement opportunities
|
|
9
|
+
* 2. Generates fixes using dual-response + self-critique
|
|
10
|
+
* 3. Validates with build + tests
|
|
11
|
+
* 4. Commits successful changes
|
|
12
|
+
* 5. Relaunches to run the improved version
|
|
13
|
+
* 6. Continues until no more improvements found
|
|
14
|
+
*
|
|
15
|
+
* Safety:
|
|
16
|
+
* - Git checkpoint before any changes
|
|
17
|
+
* - Every change validated with build + tests
|
|
18
|
+
* - Automatic rollback on any failure
|
|
19
|
+
* - Max iterations to prevent infinite loops
|
|
20
|
+
* - Human-readable commit messages
|
|
21
|
+
*
|
|
22
|
+
* Principal Investigator: Bo Shang
|
|
23
|
+
*/
|
|
24
|
+
export interface SelfEvolutionConfig {
|
|
25
|
+
maxIterations: number;
|
|
26
|
+
minConfidence: number;
|
|
27
|
+
runTests: boolean;
|
|
28
|
+
autoRelaunch: boolean;
|
|
29
|
+
verboseLogging: boolean;
|
|
30
|
+
targetAreas: ('bugs' | 'performance' | 'types' | 'tests' | 'docs')[];
|
|
31
|
+
priorityPaths: string[];
|
|
32
|
+
anyRepo: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface SourceIssue {
|
|
35
|
+
type: 'bug' | 'type-error' | 'performance' | 'code-smell' | 'missing-test' | 'todo';
|
|
36
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
37
|
+
file: string;
|
|
38
|
+
line?: number;
|
|
39
|
+
description: string;
|
|
40
|
+
suggestedFix?: string;
|
|
41
|
+
confidence: number;
|
|
42
|
+
priority: number;
|
|
43
|
+
}
|
|
44
|
+
export interface EvolutionResult {
|
|
45
|
+
success: boolean;
|
|
46
|
+
iteration: number;
|
|
47
|
+
issuesFound: number;
|
|
48
|
+
issuesFixed: number;
|
|
49
|
+
filesChanged: string[];
|
|
50
|
+
commitHash?: string;
|
|
51
|
+
nextAction: 'continue' | 'relaunch' | 'done' | 'rollback';
|
|
52
|
+
error?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface EvolutionState {
|
|
55
|
+
isRunning: boolean;
|
|
56
|
+
startTime: string | null;
|
|
57
|
+
iteration: number;
|
|
58
|
+
totalFixed: number;
|
|
59
|
+
totalFailed: number;
|
|
60
|
+
checkpointTag: string | null;
|
|
61
|
+
lastCommit: string | null;
|
|
62
|
+
relaunchCount: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Check if we're running in the erosolar-cli source repository
|
|
66
|
+
*/
|
|
67
|
+
export declare function isErosolarRepo(workingDir: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Get the erosolar-cli version
|
|
70
|
+
*/
|
|
71
|
+
export declare function getVersion(workingDir: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* Check if the directory is a valid git repository with source code
|
|
74
|
+
*/
|
|
75
|
+
export declare function isValidSourceRepo(workingDir: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Get the repository name from package.json or directory name
|
|
78
|
+
*/
|
|
79
|
+
export declare function getRepoName(workingDir: string): string;
|
|
80
|
+
/**
|
|
81
|
+
* Analyze source code for improvement opportunities
|
|
82
|
+
*/
|
|
83
|
+
export declare function analyzeSource(workingDir: string): SourceIssue[];
|
|
84
|
+
/**
|
|
85
|
+
* Relaunch erosolar-cli with the new code
|
|
86
|
+
*/
|
|
87
|
+
export declare function relaunchWithNewCode(workingDir: string): void;
|
|
88
|
+
export interface EvolutionCallbacks {
|
|
89
|
+
onStart?: () => void;
|
|
90
|
+
onIteration?: (iteration: number, issues: SourceIssue[]) => void;
|
|
91
|
+
onFix?: (issue: SourceIssue, success: boolean) => void;
|
|
92
|
+
onRelaunch?: () => void;
|
|
93
|
+
onComplete?: (result: EvolutionResult) => void;
|
|
94
|
+
onError?: (error: string) => void;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Run the full self-evolution loop
|
|
98
|
+
*/
|
|
99
|
+
export declare function runSelfEvolution(workingDir: string, config?: Partial<SelfEvolutionConfig>, callbacks?: EvolutionCallbacks): Promise<EvolutionResult>;
|
|
100
|
+
/**
|
|
101
|
+
* Stop the evolution process
|
|
102
|
+
*/
|
|
103
|
+
export declare function stopEvolution(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get current evolution state
|
|
106
|
+
*/
|
|
107
|
+
export declare function getEvolutionState(): EvolutionState;
|
|
108
|
+
/**
|
|
109
|
+
* Emergency rollback to last checkpoint
|
|
110
|
+
*/
|
|
111
|
+
export declare function emergencyEvolutionRollback(workingDir: string): {
|
|
112
|
+
success: boolean;
|
|
113
|
+
message: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Get formatted status for display
|
|
117
|
+
*/
|
|
118
|
+
export declare function getEvolutionStatus(workingDir: string): string;
|
|
119
|
+
export interface LearnedPattern {
|
|
120
|
+
category: 'tool-implementation' | 'error-handling' | 'type-pattern' | 'api-design' | 'performance';
|
|
121
|
+
description: string;
|
|
122
|
+
example: string;
|
|
123
|
+
sourceFile: string;
|
|
124
|
+
confidence: number;
|
|
125
|
+
usageCount: number;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Learn optimal patterns from erosolar-cli's own source code
|
|
129
|
+
*/
|
|
130
|
+
export declare function learnSourcePatterns(workingDir: string): LearnedPattern[];
|
|
131
|
+
/**
|
|
132
|
+
* Get all learned patterns
|
|
133
|
+
*/
|
|
134
|
+
export declare function getLearnedPatterns(): LearnedPattern[];
|
|
135
|
+
export interface FixSuggestion {
|
|
136
|
+
issue: SourceIssue;
|
|
137
|
+
suggestedCode: string;
|
|
138
|
+
explanation: string;
|
|
139
|
+
confidence: number;
|
|
140
|
+
requiresManualReview: boolean;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Generate a fix for a source issue using learned patterns
|
|
144
|
+
* Note: This uses pattern matching; full LLM integration requires runtime context
|
|
145
|
+
*/
|
|
146
|
+
export declare function generateFix(issue: SourceIssue, workingDir: string): FixSuggestion | null;
|
|
147
|
+
/**
|
|
148
|
+
* Apply a fix to the source file
|
|
149
|
+
*/
|
|
150
|
+
export declare function applyFix(fix: FixSuggestion, workingDir: string): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* Get a summary of what can be learned from the source code
|
|
153
|
+
*/
|
|
154
|
+
export declare function getSourceLearningSummary(workingDir: string): string;
|
|
155
|
+
//# sourceMappingURL=selfEvolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfEvolution.d.ts","sourceRoot":"","sources":["../../src/core/selfEvolution.ts"],"names":[],"mappings":"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"}
|