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.
Files changed (111) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +107 -0
  3. package/dist/app.d.ts +247 -0
  4. package/dist/app.d.ts.map +1 -0
  5. package/dist/app.js +4971 -0
  6. package/dist/app.js.map +1 -0
  7. package/dist/buildInfo.d.ts +5 -0
  8. package/dist/buildInfo.d.ts.map +1 -0
  9. package/dist/buildInfo.js +2 -0
  10. package/dist/buildInfo.js.map +1 -0
  11. package/dist/caffeinate.d.ts +72 -0
  12. package/dist/caffeinate.d.ts.map +1 -0
  13. package/dist/caffeinate.js +258 -0
  14. package/dist/caffeinate.js.map +1 -0
  15. package/dist/claudePath.d.ts +10 -0
  16. package/dist/claudePath.d.ts.map +1 -0
  17. package/dist/claudePath.js +34 -0
  18. package/dist/claudePath.js.map +1 -0
  19. package/dist/clipboard.d.ts +44 -0
  20. package/dist/clipboard.d.ts.map +1 -0
  21. package/dist/clipboard.js +442 -0
  22. package/dist/clipboard.js.map +1 -0
  23. package/dist/config.d.ts +211 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js +933 -0
  26. package/dist/config.js.map +1 -0
  27. package/dist/constants.d.ts +50 -0
  28. package/dist/constants.d.ts.map +1 -0
  29. package/dist/constants.js +81 -0
  30. package/dist/constants.js.map +1 -0
  31. package/dist/contextBuilder.d.ts +38 -0
  32. package/dist/contextBuilder.d.ts.map +1 -0
  33. package/dist/contextBuilder.js +113 -0
  34. package/dist/contextBuilder.js.map +1 -0
  35. package/dist/dependencyDetector.d.ts +57 -0
  36. package/dist/dependencyDetector.d.ts.map +1 -0
  37. package/dist/dependencyDetector.js +505 -0
  38. package/dist/dependencyDetector.js.map +1 -0
  39. package/dist/executor.d.ts +83 -0
  40. package/dist/executor.d.ts.map +1 -0
  41. package/dist/executor.js +583 -0
  42. package/dist/executor.js.map +1 -0
  43. package/dist/git.d.ts +85 -0
  44. package/dist/git.d.ts.map +1 -0
  45. package/dist/git.js +283 -0
  46. package/dist/git.js.map +1 -0
  47. package/dist/imageManager.d.ts +161 -0
  48. package/dist/imageManager.d.ts.map +1 -0
  49. package/dist/imageManager.js +674 -0
  50. package/dist/imageManager.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +437 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/input-visual-test.d.ts +9 -0
  56. package/dist/input-visual-test.d.ts.map +1 -0
  57. package/dist/input-visual-test.js +108 -0
  58. package/dist/input-visual-test.js.map +1 -0
  59. package/dist/inputBox.d.ts +228 -0
  60. package/dist/inputBox.d.ts.map +1 -0
  61. package/dist/inputBox.js +966 -0
  62. package/dist/inputBox.js.map +1 -0
  63. package/dist/logger.d.ts +136 -0
  64. package/dist/logger.d.ts.map +1 -0
  65. package/dist/logger.js +347 -0
  66. package/dist/logger.js.map +1 -0
  67. package/dist/orchestrator.d.ts +149 -0
  68. package/dist/orchestrator.d.ts.map +1 -0
  69. package/dist/orchestrator.js +821 -0
  70. package/dist/orchestrator.js.map +1 -0
  71. package/dist/planner.d.ts +86 -0
  72. package/dist/planner.d.ts.map +1 -0
  73. package/dist/planner.js +830 -0
  74. package/dist/planner.js.map +1 -0
  75. package/dist/pty-test-runner.d.ts +87 -0
  76. package/dist/pty-test-runner.d.ts.map +1 -0
  77. package/dist/pty-test-runner.js +721 -0
  78. package/dist/pty-test-runner.js.map +1 -0
  79. package/dist/screen.d.ts +44 -0
  80. package/dist/screen.d.ts.map +1 -0
  81. package/dist/screen.js +152 -0
  82. package/dist/screen.js.map +1 -0
  83. package/dist/taskQueue.d.ts +70 -0
  84. package/dist/taskQueue.d.ts.map +1 -0
  85. package/dist/taskQueue.js +282 -0
  86. package/dist/taskQueue.js.map +1 -0
  87. package/dist/tui-test-harness.d.ts +216 -0
  88. package/dist/tui-test-harness.d.ts.map +1 -0
  89. package/dist/tui-test-harness.js +527 -0
  90. package/dist/tui-test-harness.js.map +1 -0
  91. package/dist/types.d.ts +257 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +46 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/ui-visual-test.d.ts +15 -0
  96. package/dist/ui-visual-test.d.ts.map +1 -0
  97. package/dist/ui-visual-test.js +141 -0
  98. package/dist/ui-visual-test.js.map +1 -0
  99. package/dist/ui.d.ts +272 -0
  100. package/dist/ui.d.ts.map +1 -0
  101. package/dist/ui.js +1531 -0
  102. package/dist/ui.js.map +1 -0
  103. package/dist/validator.d.ts +53 -0
  104. package/dist/validator.d.ts.map +1 -0
  105. package/dist/validator.js +491 -0
  106. package/dist/validator.js.map +1 -0
  107. package/dist/versionCheck.d.ts +63 -0
  108. package/dist/versionCheck.d.ts.map +1 -0
  109. package/dist/versionCheck.js +261 -0
  110. package/dist/versionCheck.js.map +1 -0
  111. 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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CAEd;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAgB;gBAErB,KAAK,SAAK,EAAE,MAAM,SAAK;IAMnC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAuDzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,aAAa;IA2FrB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,MAAM;IAMd;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAK5B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAe3B;;OAEG;IACH,SAAS,IAAI,cAAc;IAI3B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWxC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,KAAK,IAAI,IAAI;CAWd;AAED;;;GAGG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK/B,SAAS,IAAI,OAAO;IAIpB,MAAM,IAAI,IAAI;IACd,KAAK,IAAI,IAAI;IAEb;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,WAAW,IAAI,IAAI;IACnB,aAAa,IAAI,IAAI;IACrB,cAAc,IAAI,IAAI;IACtB,aAAa,IAAI,IAAI;IAErB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAEhB;;OAEG;IACH,OAAO,IAAI,IAAI;IAEf;;OAEG;IACH,UAAU,IAAI,IAAI;IAElB;;OAEG;IACH,SAAS,IAAI,IAAI;IAEjB;;OAEG;IACH,SAAS,IAAI,IAAI;IAEjB;;OAEG;IACH,SAAS,IAAI,IAAI;CAClB;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAkB;IAC3B,OAAO,EAAE,MAAM,CAAC;gBAEX,QAAQ,EAAE,eAAe,EAAE,KAAK,SAAK;IAKjD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK5B;;OAEG;IACH,WAAW,IAAI,eAAe;CAG/B;AAED;;GAEG;AACH,qBAAa,cAAc;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,SAAK,EAAE,MAAM,SAAK;IAUnC;;;OAGG;IACH,OAAO,IAAI,IAAI;IAYf;;OAEG;IACH,SAAS,IAAI,IAAI;IAKjB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAS9C;;;OAGG;IACH,UAAU,IAAI;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE;CAGvD;AAGD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;CAehB,CAAC"}