erosolar-cli 1.7.101 → 1.7.103
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/bin/erosolar.js +12 -1
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/bin/selfTest.d.ts +14 -0
- package/dist/bin/selfTest.d.ts.map +1 -0
- package/dist/bin/selfTest.js +406 -0
- package/dist/bin/selfTest.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +12 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +81 -6
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +1 -0
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +21 -3
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/erosolar.js
CHANGED
|
@@ -16,6 +16,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
16
16
|
import { dirname, join } from 'node:path';
|
|
17
17
|
import { launchShell } from '../shell/shellApp.js';
|
|
18
18
|
import { runHeadlessApp } from '../headless/headlessApp.js';
|
|
19
|
+
import { runSelfTest } from './selfTest.js';
|
|
19
20
|
const argv = process.argv.slice(2);
|
|
20
21
|
// Handle --version flag
|
|
21
22
|
if (argv.includes('--version') || argv.includes('-v')) {
|
|
@@ -42,6 +43,7 @@ Options:
|
|
|
42
43
|
-v, --version Show version number
|
|
43
44
|
-h, --help Show this help message
|
|
44
45
|
--json Run in headless/JSON mode
|
|
46
|
+
--self-test Run self-tests in separate runtime
|
|
45
47
|
|
|
46
48
|
Interactive Commands (once running):
|
|
47
49
|
/help Show available commands
|
|
@@ -61,7 +63,16 @@ For more info: https://github.com/ErosolarAI/erosolar-by-bo
|
|
|
61
63
|
`);
|
|
62
64
|
process.exit(0);
|
|
63
65
|
}
|
|
64
|
-
|
|
66
|
+
// Handle --self-test flag
|
|
67
|
+
if (argv.includes('--self-test')) {
|
|
68
|
+
runSelfTest().then((success) => {
|
|
69
|
+
process.exit(success ? 0 : 1);
|
|
70
|
+
}).catch((error) => {
|
|
71
|
+
console.error('Self-test failed:', error instanceof Error ? error.message : error);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else if (argv.includes('--json')) {
|
|
65
76
|
runHeadlessApp({ argv }).catch((error) => {
|
|
66
77
|
console.error(error instanceof Error ? error.message : error);
|
|
67
78
|
process.exit(1);
|
package/dist/bin/erosolar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"erosolar.js","sourceRoot":"","sources":["../../src/bin/erosolar.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,wEAAwE;AACxE,6EAA6E;AAC7E,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;IACrD,oEAAoE;IACpE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;AACjE,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"erosolar.js","sourceRoot":"","sources":["../../src/bin/erosolar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Self-Test Runner for Erosolar CLI
|
|
4
|
+
*
|
|
5
|
+
* Launches the CLI in a separate process and runs extensive tests
|
|
6
|
+
* to verify functionality works correctly in a real runtime environment.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Run all self-tests
|
|
12
|
+
*/
|
|
13
|
+
export declare function runSelfTest(): Promise<boolean>;
|
|
14
|
+
//# sourceMappingURL=selfTest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfTest.d.ts","sourceRoot":"","sources":["../../src/bin/selfTest.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAqCH;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAuBpD"}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Self-Test Runner for Erosolar CLI
|
|
4
|
+
*
|
|
5
|
+
* Launches the CLI in a separate process and runs extensive tests
|
|
6
|
+
* to verify functionality works correctly in a real runtime environment.
|
|
7
|
+
*
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
import { spawn } from 'node:child_process';
|
|
11
|
+
import { dirname, join } from 'node:path';
|
|
12
|
+
import { fileURLToPath } from 'node:url';
|
|
13
|
+
import { BracketedPasteManager } from '../shell/bracketedPasteManager.js';
|
|
14
|
+
import { ComposableMessageBuilder } from '../shell/composableMessage.js';
|
|
15
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
+
const __dirname = dirname(__filename);
|
|
17
|
+
const PROJECT_DIR = join(__dirname, '../..');
|
|
18
|
+
// ANSI escape codes
|
|
19
|
+
const COLORS = {
|
|
20
|
+
reset: '\x1b[0m',
|
|
21
|
+
green: '\x1b[32m',
|
|
22
|
+
red: '\x1b[31m',
|
|
23
|
+
yellow: '\x1b[33m',
|
|
24
|
+
cyan: '\x1b[36m',
|
|
25
|
+
dim: '\x1b[2m',
|
|
26
|
+
bold: '\x1b[1m',
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Run all self-tests
|
|
30
|
+
*/
|
|
31
|
+
export async function runSelfTest() {
|
|
32
|
+
console.log(`\n${COLORS.bold}╔══════════════════════════════════════════════════════════╗${COLORS.reset}`);
|
|
33
|
+
console.log(`${COLORS.bold}║ EROSOLAR CLI SELF-TEST SUITE ║${COLORS.reset}`);
|
|
34
|
+
console.log(`${COLORS.bold}╚══════════════════════════════════════════════════════════╝${COLORS.reset}\n`);
|
|
35
|
+
const results = [];
|
|
36
|
+
// Phase 1: Unit tests (fast, in-process)
|
|
37
|
+
console.log(`${COLORS.cyan}▶ Phase 1: Unit Tests (in-process)${COLORS.reset}\n`);
|
|
38
|
+
results.push(...await runUnitTests());
|
|
39
|
+
// Phase 2: CLI launch tests (separate process)
|
|
40
|
+
console.log(`\n${COLORS.cyan}▶ Phase 2: CLI Runtime Tests (separate process)${COLORS.reset}\n`);
|
|
41
|
+
results.push(...await runCLITests());
|
|
42
|
+
// Phase 3: Integration tests (if time permits)
|
|
43
|
+
console.log(`\n${COLORS.cyan}▶ Phase 3: Integration Tests${COLORS.reset}\n`);
|
|
44
|
+
results.push(...await runIntegrationTests());
|
|
45
|
+
// Summary
|
|
46
|
+
printSummary(results);
|
|
47
|
+
return results.every(r => r.passed);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Run unit tests for core modules
|
|
51
|
+
*/
|
|
52
|
+
async function runUnitTests() {
|
|
53
|
+
const results = [];
|
|
54
|
+
// Test 1: BracketedPasteManager - Single chunk
|
|
55
|
+
results.push(await runTest('BracketedPasteManager: Single chunk paste', () => {
|
|
56
|
+
const manager = new BracketedPasteManager(true);
|
|
57
|
+
const START = '\u001b[200~';
|
|
58
|
+
const END = '\u001b[201~';
|
|
59
|
+
const content = 'line 1\nline 2\nline 3\nline 4\nline 5';
|
|
60
|
+
const result = manager.process(START + content + END);
|
|
61
|
+
if (!result.handled)
|
|
62
|
+
throw new Error('Paste not handled');
|
|
63
|
+
if (result.lineCount !== 5)
|
|
64
|
+
throw new Error(`Expected 5 lines, got ${result.lineCount}`);
|
|
65
|
+
if (!result.preview?.includes('[+4 more lines]')) {
|
|
66
|
+
throw new Error(`Preview wrong: ${result.preview}`);
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
// Test 2: BracketedPasteManager - Split chunks
|
|
70
|
+
results.push(await runTest('BracketedPasteManager: Split chunk paste', () => {
|
|
71
|
+
const manager = new BracketedPasteManager(true);
|
|
72
|
+
const START = '\u001b[200~';
|
|
73
|
+
const END = '\u001b[201~';
|
|
74
|
+
manager.process(START + 'chunk 1\nchunk 2\n');
|
|
75
|
+
const result = manager.process('chunk 3\nchunk 4' + END);
|
|
76
|
+
if (!result.handled)
|
|
77
|
+
throw new Error('Paste not handled');
|
|
78
|
+
if (result.lineCount !== 4)
|
|
79
|
+
throw new Error(`Expected 4 lines, got ${result.lineCount}`);
|
|
80
|
+
if (result.result !== 'chunk 1\nchunk 2\nchunk 3\nchunk 4') {
|
|
81
|
+
throw new Error(`Content wrong: ${JSON.stringify(result.result)}`);
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
// Test 3: BracketedPasteManager - Non-bracketed multiline
|
|
85
|
+
results.push(await runTest('BracketedPasteManager: Non-bracketed multiline', () => {
|
|
86
|
+
const manager = new BracketedPasteManager(false);
|
|
87
|
+
const result = manager.process('line A\nline B\nline C');
|
|
88
|
+
if (!result.handled)
|
|
89
|
+
throw new Error('Multi-line not detected');
|
|
90
|
+
if (result.lineCount !== 3)
|
|
91
|
+
throw new Error(`Expected 3 lines, got ${result.lineCount}`);
|
|
92
|
+
}));
|
|
93
|
+
// Test 4: ComposableMessageBuilder - Paste chips
|
|
94
|
+
results.push(await runTest('ComposableMessageBuilder: Paste chips', () => {
|
|
95
|
+
const builder = new ComposableMessageBuilder();
|
|
96
|
+
const code = 'function test() {\n return true;\n}';
|
|
97
|
+
builder.addPaste(code);
|
|
98
|
+
const chips = builder.formatPasteChips();
|
|
99
|
+
if (!chips.includes('📝 Code'))
|
|
100
|
+
throw new Error(`Code not detected: ${chips}`);
|
|
101
|
+
if (!chips.includes('3L'))
|
|
102
|
+
throw new Error(`Line count wrong: ${chips}`);
|
|
103
|
+
}));
|
|
104
|
+
// Test 5: ComposableMessageBuilder - JSON detection
|
|
105
|
+
results.push(await runTest('ComposableMessageBuilder: JSON detection', () => {
|
|
106
|
+
const builder = new ComposableMessageBuilder();
|
|
107
|
+
builder.addPaste('{\n "key": "value"\n}');
|
|
108
|
+
const chips = builder.formatPasteChips();
|
|
109
|
+
if (!chips.includes('📊 JSON'))
|
|
110
|
+
throw new Error(`JSON not detected: ${chips}`);
|
|
111
|
+
}));
|
|
112
|
+
// Test 6: Large paste handling
|
|
113
|
+
results.push(await runTest('BracketedPasteManager: Large paste (100 lines)', () => {
|
|
114
|
+
const manager = new BracketedPasteManager(true);
|
|
115
|
+
const START = '\u001b[200~';
|
|
116
|
+
const END = '\u001b[201~';
|
|
117
|
+
const lines = Array.from({ length: 100 }, (_, i) => `Line ${i + 1}`);
|
|
118
|
+
const result = manager.process(START + lines.join('\n') + END);
|
|
119
|
+
if (!result.handled)
|
|
120
|
+
throw new Error('Large paste not handled');
|
|
121
|
+
if (result.lineCount !== 100)
|
|
122
|
+
throw new Error(`Expected 100 lines, got ${result.lineCount}`);
|
|
123
|
+
}));
|
|
124
|
+
// Test 7: Paste returns result, not auto-submit (isPending false, has result)
|
|
125
|
+
results.push(await runTest('BracketedPasteManager: Paste does NOT auto-submit', () => {
|
|
126
|
+
const manager = new BracketedPasteManager(true);
|
|
127
|
+
const START = '\u001b[200~';
|
|
128
|
+
const END = '\u001b[201~';
|
|
129
|
+
const content = 'line 1\nline 2\nline 3';
|
|
130
|
+
const result = manager.process(START + content + END);
|
|
131
|
+
// Paste should be marked as handled with result - NOT as auto-submitted
|
|
132
|
+
// The key is that:
|
|
133
|
+
// - handled: true (paste was detected)
|
|
134
|
+
// - result: contains the paste content (for display/storage)
|
|
135
|
+
// - isPending: false/undefined (paste is complete)
|
|
136
|
+
// The shell's 'line' handler checks result and calls capturePaste() which does NOT auto-submit
|
|
137
|
+
if (!result.handled)
|
|
138
|
+
throw new Error('Paste not handled');
|
|
139
|
+
if (result.isPending)
|
|
140
|
+
throw new Error('Paste should not be pending after completion');
|
|
141
|
+
if (typeof result.result !== 'string')
|
|
142
|
+
throw new Error('Paste should have result content');
|
|
143
|
+
if (result.result !== content)
|
|
144
|
+
throw new Error(`Content mismatch: ${result.result}`);
|
|
145
|
+
// The presence of result WITHOUT auto-submission is the key contract
|
|
146
|
+
// The shell checks this and displays the paste without submitting to AI
|
|
147
|
+
}));
|
|
148
|
+
return results;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Run CLI tests in separate process
|
|
152
|
+
*/
|
|
153
|
+
async function runCLITests() {
|
|
154
|
+
const results = [];
|
|
155
|
+
// Test 1: CLI starts successfully
|
|
156
|
+
results.push(await runTest('CLI: Starts without errors', async () => {
|
|
157
|
+
const ctx = await launchCLI();
|
|
158
|
+
try {
|
|
159
|
+
await waitForOutput(ctx, /erosolar|welcome|ready/i, 10000);
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
await stopCLI(ctx);
|
|
163
|
+
}
|
|
164
|
+
}));
|
|
165
|
+
// Test 2: CLI responds to /help
|
|
166
|
+
results.push(await runTest('CLI: /help command works', async () => {
|
|
167
|
+
const ctx = await launchCLI();
|
|
168
|
+
try {
|
|
169
|
+
await waitForOutput(ctx, /erosolar|welcome|ready/i, 10000);
|
|
170
|
+
ctx.cli?.stdin?.write('/help\n');
|
|
171
|
+
await waitForOutput(ctx, /command|help|available/i, 5000);
|
|
172
|
+
}
|
|
173
|
+
finally {
|
|
174
|
+
await stopCLI(ctx);
|
|
175
|
+
}
|
|
176
|
+
}));
|
|
177
|
+
// Test 3: CLI handles bracketed paste WITHOUT auto-submitting to AI
|
|
178
|
+
results.push(await runTest('CLI: Paste captured, NOT auto-submitted', async () => {
|
|
179
|
+
const ctx = await launchCLI();
|
|
180
|
+
try {
|
|
181
|
+
await waitForOutput(ctx, /erosolar|welcome|ready/i, 10000);
|
|
182
|
+
const START = '\u001b[200~';
|
|
183
|
+
const END = '\u001b[201~';
|
|
184
|
+
const content = 'test line 1\ntest line 2\ntest line 3';
|
|
185
|
+
// Send paste WITHOUT pressing enter after
|
|
186
|
+
ctx.cli?.stdin?.write(START + content + END);
|
|
187
|
+
await wait(1500);
|
|
188
|
+
// The CLI should NOT have started processing (no "Thinking" or API call)
|
|
189
|
+
// Paste should just be captured and displayed, waiting for user to press Enter
|
|
190
|
+
const output = ctx.output.toLowerCase();
|
|
191
|
+
if (output.includes('thinking') || output.includes('processing')) {
|
|
192
|
+
throw new Error('Paste auto-submitted to AI! Should wait for Enter key.');
|
|
193
|
+
}
|
|
194
|
+
// Should not have errors
|
|
195
|
+
if (ctx.errors.toLowerCase().includes('error')) {
|
|
196
|
+
throw new Error(`CLI reported errors: ${ctx.errors}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
finally {
|
|
200
|
+
await stopCLI(ctx);
|
|
201
|
+
}
|
|
202
|
+
}));
|
|
203
|
+
// Test 4: CLI handles /clear command
|
|
204
|
+
results.push(await runTest('CLI: /clear command works', async () => {
|
|
205
|
+
const ctx = await launchCLI();
|
|
206
|
+
try {
|
|
207
|
+
await waitForOutput(ctx, /erosolar|welcome|ready/i, 10000);
|
|
208
|
+
ctx.cli?.stdin?.write('/clear\n');
|
|
209
|
+
await wait(500);
|
|
210
|
+
// Should not crash
|
|
211
|
+
if (ctx.errors.toLowerCase().includes('crash') || ctx.errors.toLowerCase().includes('fatal')) {
|
|
212
|
+
throw new Error(`CLI crashed on /clear: ${ctx.errors}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
finally {
|
|
216
|
+
await stopCLI(ctx);
|
|
217
|
+
}
|
|
218
|
+
}));
|
|
219
|
+
// Test 5: CLI exits cleanly with /exit or Ctrl+D
|
|
220
|
+
results.push(await runTest('CLI: Graceful shutdown (Ctrl+C/D)', async () => {
|
|
221
|
+
const ctx = await launchCLI();
|
|
222
|
+
try {
|
|
223
|
+
await waitForOutput(ctx, /erosolar|welcome|ready/i, 10000);
|
|
224
|
+
// Send Ctrl+C followed by Ctrl+D for graceful shutdown
|
|
225
|
+
ctx.cli?.stdin?.write('\x03'); // Ctrl+C
|
|
226
|
+
await wait(300);
|
|
227
|
+
ctx.cli?.stdin?.write('\x04'); // Ctrl+D
|
|
228
|
+
// Wait for process to exit
|
|
229
|
+
await new Promise((resolve) => {
|
|
230
|
+
const timeout = setTimeout(() => {
|
|
231
|
+
// Force kill if graceful shutdown didn't work - this is acceptable
|
|
232
|
+
ctx.cli?.kill('SIGTERM');
|
|
233
|
+
resolve();
|
|
234
|
+
}, 3000);
|
|
235
|
+
ctx.cli?.on('exit', () => {
|
|
236
|
+
clearTimeout(timeout);
|
|
237
|
+
resolve();
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
// Already handled
|
|
243
|
+
}
|
|
244
|
+
}));
|
|
245
|
+
return results;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Run integration tests
|
|
249
|
+
*/
|
|
250
|
+
async function runIntegrationTests() {
|
|
251
|
+
const results = [];
|
|
252
|
+
// Test 1: Version flag works
|
|
253
|
+
results.push(await runTest('Integration: --version flag', async () => {
|
|
254
|
+
const result = await runCLICommand(['--version']);
|
|
255
|
+
if (!result.output.includes('erosolar-cli v')) {
|
|
256
|
+
throw new Error(`Version not shown: ${result.output}`);
|
|
257
|
+
}
|
|
258
|
+
}));
|
|
259
|
+
// Test 2: Help flag works
|
|
260
|
+
results.push(await runTest('Integration: --help flag', async () => {
|
|
261
|
+
const result = await runCLICommand(['--help']);
|
|
262
|
+
if (!result.output.includes('Usage:')) {
|
|
263
|
+
throw new Error(`Help not shown: ${result.output}`);
|
|
264
|
+
}
|
|
265
|
+
}));
|
|
266
|
+
// Test 3: Invalid flag handling
|
|
267
|
+
results.push(await runTest('Integration: Invalid flag handling', async () => {
|
|
268
|
+
// Should not crash on unknown flags (just pass them through or ignore)
|
|
269
|
+
const result = await runCLICommand(['--invalid-flag-xyz'], 3000);
|
|
270
|
+
// Just check it doesn't crash with unhandled exception
|
|
271
|
+
if (result.errors.includes('unhandled') || result.errors.includes('uncaught')) {
|
|
272
|
+
throw new Error(`Unhandled exception on invalid flag: ${result.errors}`);
|
|
273
|
+
}
|
|
274
|
+
}));
|
|
275
|
+
return results;
|
|
276
|
+
}
|
|
277
|
+
// ============================================================================
|
|
278
|
+
// HELPER FUNCTIONS
|
|
279
|
+
// ============================================================================
|
|
280
|
+
async function runTest(name, fn) {
|
|
281
|
+
const start = Date.now();
|
|
282
|
+
try {
|
|
283
|
+
await fn();
|
|
284
|
+
const duration = Date.now() - start;
|
|
285
|
+
console.log(` ${COLORS.green}✓${COLORS.reset} ${name} ${COLORS.dim}(${duration}ms)${COLORS.reset}`);
|
|
286
|
+
return { name, passed: true, duration };
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
const duration = Date.now() - start;
|
|
290
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
291
|
+
console.log(` ${COLORS.red}✗${COLORS.reset} ${name} ${COLORS.dim}(${duration}ms)${COLORS.reset}`);
|
|
292
|
+
console.log(` ${COLORS.red}${message}${COLORS.reset}`);
|
|
293
|
+
return { name, passed: false, duration, error: message };
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
async function launchCLI() {
|
|
297
|
+
const ctx = {
|
|
298
|
+
cli: null,
|
|
299
|
+
output: '',
|
|
300
|
+
errors: '',
|
|
301
|
+
};
|
|
302
|
+
const cliPath = join(PROJECT_DIR, 'dist/bin/erosolar.js');
|
|
303
|
+
ctx.cli = spawn('node', [cliPath], {
|
|
304
|
+
cwd: PROJECT_DIR,
|
|
305
|
+
env: {
|
|
306
|
+
...process.env,
|
|
307
|
+
NO_COLOR: '1',
|
|
308
|
+
FORCE_COLOR: '0',
|
|
309
|
+
CI: '1',
|
|
310
|
+
},
|
|
311
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
312
|
+
});
|
|
313
|
+
ctx.cli.stdout?.on('data', (data) => {
|
|
314
|
+
ctx.output += data.toString();
|
|
315
|
+
});
|
|
316
|
+
ctx.cli.stderr?.on('data', (data) => {
|
|
317
|
+
ctx.errors += data.toString();
|
|
318
|
+
});
|
|
319
|
+
return ctx;
|
|
320
|
+
}
|
|
321
|
+
async function stopCLI(ctx) {
|
|
322
|
+
if (!ctx.cli)
|
|
323
|
+
return;
|
|
324
|
+
return new Promise((resolve) => {
|
|
325
|
+
const timeout = setTimeout(() => {
|
|
326
|
+
ctx.cli?.kill('SIGKILL');
|
|
327
|
+
resolve();
|
|
328
|
+
}, 3000);
|
|
329
|
+
ctx.cli.on('exit', () => {
|
|
330
|
+
clearTimeout(timeout);
|
|
331
|
+
resolve();
|
|
332
|
+
});
|
|
333
|
+
ctx.cli?.stdin?.write('\x03'); // Ctrl+C
|
|
334
|
+
setTimeout(() => {
|
|
335
|
+
ctx.cli?.stdin?.write('\x04'); // Ctrl+D
|
|
336
|
+
}, 500);
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
async function waitForOutput(ctx, pattern, timeout) {
|
|
340
|
+
const start = Date.now();
|
|
341
|
+
return new Promise((resolve, reject) => {
|
|
342
|
+
const check = () => {
|
|
343
|
+
if (pattern.test(ctx.output)) {
|
|
344
|
+
resolve();
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
if (Date.now() - start > timeout) {
|
|
348
|
+
reject(new Error(`Timeout waiting for pattern ${pattern}. Output: ${ctx.output.slice(-500)}`));
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
setTimeout(check, 100);
|
|
352
|
+
};
|
|
353
|
+
check();
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
async function wait(ms) {
|
|
357
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
358
|
+
}
|
|
359
|
+
async function runCLICommand(args, timeout = 5000) {
|
|
360
|
+
return new Promise((resolve) => {
|
|
361
|
+
const cliPath = join(PROJECT_DIR, 'dist/bin/erosolar.js');
|
|
362
|
+
let output = '';
|
|
363
|
+
let errors = '';
|
|
364
|
+
const proc = spawn('node', [cliPath, ...args], {
|
|
365
|
+
cwd: PROJECT_DIR,
|
|
366
|
+
env: { ...process.env, NO_COLOR: '1' },
|
|
367
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
368
|
+
});
|
|
369
|
+
const timer = setTimeout(() => {
|
|
370
|
+
proc.kill('SIGKILL');
|
|
371
|
+
}, timeout);
|
|
372
|
+
proc.stdout?.on('data', (data) => { output += data.toString(); });
|
|
373
|
+
proc.stderr?.on('data', (data) => { errors += data.toString(); });
|
|
374
|
+
proc.on('exit', (code) => {
|
|
375
|
+
clearTimeout(timer);
|
|
376
|
+
resolve({ output, errors, exitCode: code ?? 0 });
|
|
377
|
+
});
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
function printSummary(results) {
|
|
381
|
+
const passed = results.filter(r => r.passed).length;
|
|
382
|
+
const failed = results.filter(r => !r.passed).length;
|
|
383
|
+
const totalDuration = results.reduce((sum, r) => sum + r.duration, 0);
|
|
384
|
+
console.log(`\n${COLORS.bold}════════════════════════════════════════════════════════════${COLORS.reset}`);
|
|
385
|
+
console.log(`${COLORS.bold} TEST SUMMARY${COLORS.reset}`);
|
|
386
|
+
console.log(`${COLORS.bold}════════════════════════════════════════════════════════════${COLORS.reset}`);
|
|
387
|
+
console.log(` Total: ${results.length}`);
|
|
388
|
+
console.log(` ${COLORS.green}Passed: ${passed}${COLORS.reset}`);
|
|
389
|
+
if (failed > 0) {
|
|
390
|
+
console.log(` ${COLORS.red}Failed: ${failed}${COLORS.reset}`);
|
|
391
|
+
}
|
|
392
|
+
console.log(` Duration: ${(totalDuration / 1000).toFixed(2)}s`);
|
|
393
|
+
console.log();
|
|
394
|
+
if (failed === 0) {
|
|
395
|
+
console.log(`${COLORS.green}${COLORS.bold} ✓ ALL TESTS PASSED${COLORS.reset}\n`);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
console.log(`${COLORS.red}${COLORS.bold} ✗ SOME TESTS FAILED${COLORS.reset}`);
|
|
399
|
+
console.log(`\n Failed tests:`);
|
|
400
|
+
for (const r of results.filter(r => !r.passed)) {
|
|
401
|
+
console.log(` - ${r.name}: ${r.error}`);
|
|
402
|
+
}
|
|
403
|
+
console.log();
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
//# sourceMappingURL=selfTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfTest.js","sourceRoot":"","sources":["../../src/bin/selfTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,6 +77,8 @@ export declare class InteractiveShell {
|
|
|
77
77
|
private readonly sessionRestoreConfig;
|
|
78
78
|
private readonly _enabledPlugins;
|
|
79
79
|
private readonly pinnedChatBox;
|
|
80
|
+
private readlineOutputSuppressed;
|
|
81
|
+
private originalStdoutWrite;
|
|
80
82
|
constructor(config: ShellConfig);
|
|
81
83
|
private initializeSessionHistory;
|
|
82
84
|
private showSessionResumeNotice;
|
|
@@ -110,6 +112,16 @@ export declare class InteractiveShell {
|
|
|
110
112
|
* left the stream paused, raw mode disabled, or keypress listeners detached.
|
|
111
113
|
*/
|
|
112
114
|
private ensureReadlineReady;
|
|
115
|
+
/**
|
|
116
|
+
* Suppress readline's character echo during streaming.
|
|
117
|
+
* Characters typed will be captured but not echoed to the main output.
|
|
118
|
+
* Instead, they appear only in the persistent input box at the bottom.
|
|
119
|
+
*/
|
|
120
|
+
private suppressReadlineOutput;
|
|
121
|
+
/**
|
|
122
|
+
* Restore normal readline output after streaming completes.
|
|
123
|
+
*/
|
|
124
|
+
private restoreReadlineOutput;
|
|
113
125
|
private enqueueUserInput;
|
|
114
126
|
/**
|
|
115
127
|
* Clear any buffered input lines and pending flush timers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interactiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/interactiveShell.ts"],"names":[],"mappings":"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"}
|