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.
Files changed (97) hide show
  1. package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
  2. package/dist/capabilities/agentSpawningCapability.js +29 -1
  3. package/dist/capabilities/agentSpawningCapability.js.map +1 -1
  4. package/dist/contracts/agent-schemas.json +100 -0
  5. package/dist/core/alphaZeroEngine.d.ts +269 -0
  6. package/dist/core/alphaZeroEngine.d.ts.map +1 -0
  7. package/dist/core/alphaZeroEngine.js +523 -0
  8. package/dist/core/alphaZeroEngine.js.map +1 -0
  9. package/dist/core/alphaZeroOrchestrator.d.ts +140 -0
  10. package/dist/core/alphaZeroOrchestrator.d.ts.map +1 -0
  11. package/dist/core/alphaZeroOrchestrator.js +418 -0
  12. package/dist/core/alphaZeroOrchestrator.js.map +1 -0
  13. package/dist/core/checkpoint.d.ts +76 -0
  14. package/dist/core/checkpoint.d.ts.map +1 -0
  15. package/dist/core/checkpoint.js +278 -0
  16. package/dist/core/checkpoint.js.map +1 -0
  17. package/dist/core/claudeCodeFeatures.d.ts +64 -0
  18. package/dist/core/claudeCodeFeatures.d.ts.map +1 -0
  19. package/dist/core/claudeCodeFeatures.js +163 -0
  20. package/dist/core/claudeCodeFeatures.js.map +1 -0
  21. package/dist/core/costTracker.d.ts +87 -0
  22. package/dist/core/costTracker.d.ts.map +1 -0
  23. package/dist/core/costTracker.js +285 -0
  24. package/dist/core/costTracker.js.map +1 -0
  25. package/dist/core/failureRecovery.d.ts +122 -0
  26. package/dist/core/failureRecovery.d.ts.map +1 -0
  27. package/dist/core/failureRecovery.js +477 -0
  28. package/dist/core/failureRecovery.js.map +1 -0
  29. package/dist/core/learningPersistence.d.ts +145 -0
  30. package/dist/core/learningPersistence.d.ts.map +1 -0
  31. package/dist/core/learningPersistence.js +477 -0
  32. package/dist/core/learningPersistence.js.map +1 -0
  33. package/dist/core/memorySystem.d.ts +67 -0
  34. package/dist/core/memorySystem.d.ts.map +1 -0
  35. package/dist/core/memorySystem.js +334 -0
  36. package/dist/core/memorySystem.js.map +1 -0
  37. package/dist/core/metricsTracker.d.ts +35 -0
  38. package/dist/core/metricsTracker.d.ts.map +1 -1
  39. package/dist/core/metricsTracker.js +67 -0
  40. package/dist/core/metricsTracker.js.map +1 -1
  41. package/dist/core/outputStyles.d.ts +48 -0
  42. package/dist/core/outputStyles.d.ts.map +1 -0
  43. package/dist/core/outputStyles.js +270 -0
  44. package/dist/core/outputStyles.js.map +1 -0
  45. package/dist/core/selfEvolution.d.ts +155 -0
  46. package/dist/core/selfEvolution.d.ts.map +1 -0
  47. package/dist/core/selfEvolution.js +1000 -0
  48. package/dist/core/selfEvolution.js.map +1 -0
  49. package/dist/core/selfImprovement.d.ts +141 -0
  50. package/dist/core/selfImprovement.d.ts.map +1 -0
  51. package/dist/core/selfImprovement.js +700 -0
  52. package/dist/core/selfImprovement.js.map +1 -0
  53. package/dist/core/updateManager.d.ts +62 -0
  54. package/dist/core/updateManager.d.ts.map +1 -0
  55. package/dist/core/updateManager.js +266 -0
  56. package/dist/core/updateManager.js.map +1 -0
  57. package/dist/shell/interactiveShell.d.ts +45 -0
  58. package/dist/shell/interactiveShell.d.ts.map +1 -1
  59. package/dist/shell/interactiveShell.js +1157 -4
  60. package/dist/shell/interactiveShell.js.map +1 -1
  61. package/dist/shell/keyboardShortcuts.d.ts +53 -0
  62. package/dist/shell/keyboardShortcuts.d.ts.map +1 -0
  63. package/dist/shell/keyboardShortcuts.js +163 -0
  64. package/dist/shell/keyboardShortcuts.js.map +1 -0
  65. package/dist/shell/terminalInput.d.ts +1 -1
  66. package/dist/shell/terminalInput.d.ts.map +1 -1
  67. package/dist/shell/terminalInput.js +8 -4
  68. package/dist/shell/terminalInput.js.map +1 -1
  69. package/dist/shell/vimMode.d.ts +66 -0
  70. package/dist/shell/vimMode.d.ts.map +1 -0
  71. package/dist/shell/vimMode.js +434 -0
  72. package/dist/shell/vimMode.js.map +1 -0
  73. package/dist/subagents/parallelAgentManager.d.ts +99 -0
  74. package/dist/subagents/parallelAgentManager.d.ts.map +1 -0
  75. package/dist/subagents/parallelAgentManager.js +249 -0
  76. package/dist/subagents/parallelAgentManager.js.map +1 -0
  77. package/dist/subagents/taskRunner.d.ts +6 -1
  78. package/dist/subagents/taskRunner.d.ts.map +1 -1
  79. package/dist/subagents/taskRunner.js +57 -2
  80. package/dist/subagents/taskRunner.js.map +1 -1
  81. package/dist/tools/planningTools.d.ts +9 -0
  82. package/dist/tools/planningTools.d.ts.map +1 -1
  83. package/dist/tools/planningTools.js +90 -0
  84. package/dist/tools/planningTools.js.map +1 -1
  85. package/dist/ui/ShellUIAdapter.d.ts +11 -1
  86. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  87. package/dist/ui/ShellUIAdapter.js +73 -9
  88. package/dist/ui/ShellUIAdapter.js.map +1 -1
  89. package/dist/ui/display.d.ts +5 -0
  90. package/dist/ui/display.d.ts.map +1 -1
  91. package/dist/ui/display.js +14 -0
  92. package/dist/ui/display.js.map +1 -1
  93. package/dist/ui/shortcutsHelp.d.ts +11 -0
  94. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  95. package/dist/ui/shortcutsHelp.js +59 -3
  96. package/dist/ui/shortcutsHelp.js.map +1 -1
  97. 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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"}