maistro 1.0.390
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/LICENSE +15 -0
- package/README.md +107 -0
- package/dist/app.d.ts +247 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +4971 -0
- package/dist/app.js.map +1 -0
- package/dist/buildInfo.d.ts +5 -0
- package/dist/buildInfo.d.ts.map +1 -0
- package/dist/buildInfo.js +2 -0
- package/dist/buildInfo.js.map +1 -0
- package/dist/caffeinate.d.ts +72 -0
- package/dist/caffeinate.d.ts.map +1 -0
- package/dist/caffeinate.js +258 -0
- package/dist/caffeinate.js.map +1 -0
- package/dist/claudePath.d.ts +10 -0
- package/dist/claudePath.d.ts.map +1 -0
- package/dist/claudePath.js +34 -0
- package/dist/claudePath.js.map +1 -0
- package/dist/clipboard.d.ts +44 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +442 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/config.d.ts +211 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +933 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +50 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +81 -0
- package/dist/constants.js.map +1 -0
- package/dist/contextBuilder.d.ts +38 -0
- package/dist/contextBuilder.d.ts.map +1 -0
- package/dist/contextBuilder.js +113 -0
- package/dist/contextBuilder.js.map +1 -0
- package/dist/dependencyDetector.d.ts +57 -0
- package/dist/dependencyDetector.d.ts.map +1 -0
- package/dist/dependencyDetector.js +505 -0
- package/dist/dependencyDetector.js.map +1 -0
- package/dist/executor.d.ts +83 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +583 -0
- package/dist/executor.js.map +1 -0
- package/dist/git.d.ts +85 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +283 -0
- package/dist/git.js.map +1 -0
- package/dist/imageManager.d.ts +161 -0
- package/dist/imageManager.d.ts.map +1 -0
- package/dist/imageManager.js +674 -0
- package/dist/imageManager.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +437 -0
- package/dist/index.js.map +1 -0
- package/dist/input-visual-test.d.ts +9 -0
- package/dist/input-visual-test.d.ts.map +1 -0
- package/dist/input-visual-test.js +108 -0
- package/dist/input-visual-test.js.map +1 -0
- package/dist/inputBox.d.ts +228 -0
- package/dist/inputBox.d.ts.map +1 -0
- package/dist/inputBox.js +966 -0
- package/dist/inputBox.js.map +1 -0
- package/dist/logger.d.ts +136 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +347 -0
- package/dist/logger.js.map +1 -0
- package/dist/orchestrator.d.ts +149 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +821 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/planner.d.ts +86 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +830 -0
- package/dist/planner.js.map +1 -0
- package/dist/pty-test-runner.d.ts +87 -0
- package/dist/pty-test-runner.d.ts.map +1 -0
- package/dist/pty-test-runner.js +721 -0
- package/dist/pty-test-runner.js.map +1 -0
- package/dist/screen.d.ts +44 -0
- package/dist/screen.d.ts.map +1 -0
- package/dist/screen.js +152 -0
- package/dist/screen.js.map +1 -0
- package/dist/taskQueue.d.ts +70 -0
- package/dist/taskQueue.d.ts.map +1 -0
- package/dist/taskQueue.js +282 -0
- package/dist/taskQueue.js.map +1 -0
- package/dist/tui-test-harness.d.ts +216 -0
- package/dist/tui-test-harness.d.ts.map +1 -0
- package/dist/tui-test-harness.js +527 -0
- package/dist/tui-test-harness.js.map +1 -0
- package/dist/types.d.ts +257 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +46 -0
- package/dist/types.js.map +1 -0
- package/dist/ui-visual-test.d.ts +15 -0
- package/dist/ui-visual-test.d.ts.map +1 -0
- package/dist/ui-visual-test.js +141 -0
- package/dist/ui-visual-test.js.map +1 -0
- package/dist/ui.d.ts +272 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +1531 -0
- package/dist/ui.js.map +1 -0
- package/dist/validator.d.ts +53 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +491 -0
- package/dist/validator.js.map +1 -0
- package/dist/versionCheck.d.ts +63 -0
- package/dist/versionCheck.d.ts.map +1 -0
- package/dist/versionCheck.js +261 -0
- package/dist/versionCheck.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI Test Harness
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for testing terminal UI components by:
|
|
5
|
+
* 1. Capturing terminal output (stdout.write calls)
|
|
6
|
+
* 2. Simulating keyboard input (stdin events)
|
|
7
|
+
* 3. Parsing ANSI escape codes to understand rendered state
|
|
8
|
+
* 4. Computing a virtual terminal buffer to see what's "on screen"
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from 'node:events';
|
|
11
|
+
export interface TerminalCell {
|
|
12
|
+
char: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CursorPosition {
|
|
15
|
+
row: number;
|
|
16
|
+
col: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Virtual terminal that tracks what would be displayed on screen
|
|
20
|
+
*/
|
|
21
|
+
export declare class VirtualTerminal {
|
|
22
|
+
private buffer;
|
|
23
|
+
private cursor;
|
|
24
|
+
private savedCursor;
|
|
25
|
+
private savedScrollOffset;
|
|
26
|
+
private scrollOffset;
|
|
27
|
+
private width;
|
|
28
|
+
private height;
|
|
29
|
+
private rawOutput;
|
|
30
|
+
constructor(width?: number, height?: number);
|
|
31
|
+
/**
|
|
32
|
+
* Clear the terminal buffer
|
|
33
|
+
*/
|
|
34
|
+
clear(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Process raw output (including ANSI codes)
|
|
37
|
+
*/
|
|
38
|
+
write(data: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Find the end of an ANSI escape sequence
|
|
41
|
+
*/
|
|
42
|
+
private findEscapeEnd;
|
|
43
|
+
/**
|
|
44
|
+
* Process an ANSI escape sequence
|
|
45
|
+
*/
|
|
46
|
+
private processEscape;
|
|
47
|
+
private clearToEndOfScreen;
|
|
48
|
+
private clearToBeginningOfScreen;
|
|
49
|
+
private clearScreen;
|
|
50
|
+
private clearToEndOfLine;
|
|
51
|
+
private clearToBeginningOfLine;
|
|
52
|
+
private clearLine;
|
|
53
|
+
private scroll;
|
|
54
|
+
/**
|
|
55
|
+
* Get the content of a specific line (trimmed)
|
|
56
|
+
*/
|
|
57
|
+
getLine(row: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get all non-empty lines
|
|
60
|
+
*/
|
|
61
|
+
getVisibleLines(): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Get current cursor position
|
|
64
|
+
*/
|
|
65
|
+
getCursor(): CursorPosition;
|
|
66
|
+
/**
|
|
67
|
+
* Get raw output for debugging
|
|
68
|
+
*/
|
|
69
|
+
getRawOutput(): string[];
|
|
70
|
+
/**
|
|
71
|
+
* Count occurrences of a string in visible content
|
|
72
|
+
*/
|
|
73
|
+
countOccurrences(needle: string): number;
|
|
74
|
+
/**
|
|
75
|
+
* Check if content contains a string
|
|
76
|
+
*/
|
|
77
|
+
contains(needle: string): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Debug: print the terminal buffer
|
|
80
|
+
*/
|
|
81
|
+
debug(): void;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Mock stdin for simulating keyboard input
|
|
85
|
+
* Extends EventEmitter to be compatible with TestableInput interface
|
|
86
|
+
*/
|
|
87
|
+
export declare class MockStdin extends EventEmitter {
|
|
88
|
+
private _isTTY;
|
|
89
|
+
private _rawMode;
|
|
90
|
+
get isTTY(): boolean;
|
|
91
|
+
set isTTY(value: boolean);
|
|
92
|
+
setRawMode(mode: boolean): this;
|
|
93
|
+
isRawMode(): boolean;
|
|
94
|
+
resume(): void;
|
|
95
|
+
pause(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Simulate typing a string (each character sent separately)
|
|
98
|
+
*/
|
|
99
|
+
type(text: string): void;
|
|
100
|
+
/**
|
|
101
|
+
* Send a single key or escape sequence
|
|
102
|
+
*/
|
|
103
|
+
sendKey(key: string): void;
|
|
104
|
+
/**
|
|
105
|
+
* Send Enter key
|
|
106
|
+
*/
|
|
107
|
+
sendEnter(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Send Escape key
|
|
110
|
+
*/
|
|
111
|
+
sendEscape(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Send Backspace
|
|
114
|
+
*/
|
|
115
|
+
sendBackspace(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Send arrow keys
|
|
118
|
+
*/
|
|
119
|
+
sendArrowUp(): void;
|
|
120
|
+
sendArrowDown(): void;
|
|
121
|
+
sendArrowRight(): void;
|
|
122
|
+
sendArrowLeft(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Send Home key
|
|
125
|
+
*/
|
|
126
|
+
sendHome(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Send End key
|
|
129
|
+
*/
|
|
130
|
+
sendEnd(): void;
|
|
131
|
+
/**
|
|
132
|
+
* Send Delete key
|
|
133
|
+
*/
|
|
134
|
+
sendDelete(): void;
|
|
135
|
+
/**
|
|
136
|
+
* Send Ctrl+A (go to beginning)
|
|
137
|
+
*/
|
|
138
|
+
sendCtrlA(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Send Ctrl+E (go to end)
|
|
141
|
+
*/
|
|
142
|
+
sendCtrlE(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Send Ctrl+C (cancel)
|
|
145
|
+
*/
|
|
146
|
+
sendCtrlC(): void;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Mock stdout that wraps VirtualTerminal
|
|
150
|
+
* Implements TestableStream interface from ui.ts
|
|
151
|
+
*/
|
|
152
|
+
export declare class MockStdout {
|
|
153
|
+
private terminal;
|
|
154
|
+
columns: number;
|
|
155
|
+
constructor(terminal: VirtualTerminal, width?: number);
|
|
156
|
+
write(data: string): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Get the underlying virtual terminal for assertions
|
|
159
|
+
*/
|
|
160
|
+
getTerminal(): VirtualTerminal;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Test harness that combines virtual terminal and mock stdin
|
|
164
|
+
*/
|
|
165
|
+
export declare class TUITestHarness {
|
|
166
|
+
terminal: VirtualTerminal;
|
|
167
|
+
stdin: MockStdin;
|
|
168
|
+
stdout: MockStdout;
|
|
169
|
+
private originalStdin;
|
|
170
|
+
private originalStdoutWrite;
|
|
171
|
+
private originalColumns;
|
|
172
|
+
private width;
|
|
173
|
+
constructor(width?: number, height?: number);
|
|
174
|
+
/**
|
|
175
|
+
* Install the test harness (replace stdout.write to capture output)
|
|
176
|
+
* Note: stdin cannot be replaced in Node.js, use MockStdin directly for input simulation
|
|
177
|
+
*/
|
|
178
|
+
install(): void;
|
|
179
|
+
/**
|
|
180
|
+
* Uninstall the test harness (restore original stdout)
|
|
181
|
+
*/
|
|
182
|
+
uninstall(): void;
|
|
183
|
+
/**
|
|
184
|
+
* Reset the terminal buffer
|
|
185
|
+
*/
|
|
186
|
+
reset(): void;
|
|
187
|
+
/**
|
|
188
|
+
* Run a test with the harness installed
|
|
189
|
+
*/
|
|
190
|
+
run<T>(fn: () => Promise<T>): Promise<T>;
|
|
191
|
+
/**
|
|
192
|
+
* Get the mock streams for use with InteractiveUI constructor
|
|
193
|
+
* Usage: new InteractiveUI(harness.getStreams().stdin, harness.getStreams().stdout)
|
|
194
|
+
*/
|
|
195
|
+
getStreams(): {
|
|
196
|
+
stdin: MockStdin;
|
|
197
|
+
stdout: MockStdout;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
export declare const Keys: {
|
|
201
|
+
ENTER: string;
|
|
202
|
+
ESCAPE: string;
|
|
203
|
+
BACKSPACE: string;
|
|
204
|
+
DELETE: string;
|
|
205
|
+
TAB: string;
|
|
206
|
+
CTRL_C: string;
|
|
207
|
+
CTRL_A: string;
|
|
208
|
+
CTRL_E: string;
|
|
209
|
+
ARROW_UP: string;
|
|
210
|
+
ARROW_DOWN: string;
|
|
211
|
+
ARROW_RIGHT: string;
|
|
212
|
+
ARROW_LEFT: string;
|
|
213
|
+
HOME: string;
|
|
214
|
+
END: string;
|
|
215
|
+
};
|
|
216
|
+
//# sourceMappingURL=tui-test-harness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-test-harness.d.ts","sourceRoot":"","sources":["../src/tui-test-harness.ts"],"names":[],"mappings":"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"}
|