4runr-os 2.0.69 → 2.0.70
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/ui/v5/index.d.ts.map +1 -1
- package/dist/ui/v5/index.js +46 -121
- package/dist/ui/v5/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/v5/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAeH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/v5/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAeH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAkPlD"}
|
package/dist/ui/v5/index.js
CHANGED
|
@@ -27,7 +27,6 @@ import { attachRuntime, detachRuntime } from './runtime/keepAlive.js';
|
|
|
27
27
|
import { UIKernel } from './kernel/kernel.js';
|
|
28
28
|
import { ResizeController } from './resize/resizeController.js';
|
|
29
29
|
import { handleDebugCommand } from './debug/debugCommands.js';
|
|
30
|
-
import { getViewport } from './viewport/getViewport.js';
|
|
31
30
|
/**
|
|
32
31
|
* Start V5 TUI Display Kernel
|
|
33
32
|
*/
|
|
@@ -50,17 +49,11 @@ export async function startV5Shell() {
|
|
|
50
49
|
let kernel = null;
|
|
51
50
|
let resizeController = null;
|
|
52
51
|
try {
|
|
53
|
-
// CRITICAL:
|
|
54
|
-
//
|
|
55
|
-
if (process.stdin.isTTY) {
|
|
56
|
-
process.stdin.setRawMode(true);
|
|
57
|
-
process.stdin.setEncoding('utf8');
|
|
58
|
-
if (process.stdin.isPaused()) {
|
|
59
|
-
process.stdin.resume();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
52
|
+
// CRITICAL: Let blessed handle stdin - we'll use screen.on('keypress') instead
|
|
53
|
+
// This avoids conflicts and works better with blessed's internal state
|
|
62
54
|
// Create screen - blessed will detect terminal size automatically
|
|
63
|
-
//
|
|
55
|
+
// CRITICAL: Let blessed use its natural dimensions - don't override them
|
|
56
|
+
// We'll apply margins in layout calculations, not by breaking blessed's internals
|
|
64
57
|
screen = blessed.screen({
|
|
65
58
|
smartCSR: true,
|
|
66
59
|
fastCSR: false,
|
|
@@ -69,23 +62,12 @@ export async function startV5Shell() {
|
|
|
69
62
|
autoPadding: false,
|
|
70
63
|
dockBorders: false,
|
|
71
64
|
output: process.stdout,
|
|
72
|
-
//
|
|
65
|
+
input: process.stdin, // Let blessed handle stdin - we'll use screen.on('keypress')
|
|
73
66
|
});
|
|
74
|
-
// CRITICAL: Override blessed's program.cols/rows to force safe dimensions
|
|
75
|
-
// This prevents blessed from rendering beyond safe bounds
|
|
76
|
-
const vp = getViewport(screen);
|
|
77
|
-
const screenProgram = screen.program;
|
|
78
|
-
if (screenProgram) {
|
|
79
|
-
// Override the actual terminal dimensions that blessed uses
|
|
80
|
-
const originalCols = screenProgram.cols;
|
|
81
|
-
const originalRows = screenProgram.rows;
|
|
82
|
-
screenProgram.cols = vp.safeCols;
|
|
83
|
-
screenProgram.rows = vp.safeRows;
|
|
84
|
-
process.stderr.write(`[V5] Forced screen dimensions: ${vp.safeCols}x${vp.safeRows} (was ${originalCols}x${originalRows})\n`);
|
|
85
|
-
}
|
|
86
67
|
// CRITICAL: Attach runtime keep-alive AFTER screen creation
|
|
87
68
|
attachRuntime(screen);
|
|
88
69
|
// Hide cursor initially
|
|
70
|
+
const screenProgram = screen.program;
|
|
89
71
|
if (screenProgram && typeof screenProgram.hideCursor === 'function') {
|
|
90
72
|
screenProgram.hideCursor();
|
|
91
73
|
}
|
|
@@ -114,137 +96,80 @@ export async function startV5Shell() {
|
|
|
114
96
|
cleanup();
|
|
115
97
|
process.exit(0);
|
|
116
98
|
});
|
|
117
|
-
// Handle
|
|
118
|
-
// Blessed's keypress handler doesn't work well in browser terminals
|
|
99
|
+
// Handle input via blessed's keypress system (works with blessed's internal state)
|
|
119
100
|
let commandBuffer = '';
|
|
120
101
|
const PROMPT = '4runr> ';
|
|
121
|
-
//
|
|
122
|
-
|
|
123
|
-
const stdinHandler = (data) => {
|
|
102
|
+
// Use blessed's keypress handler - this works better than raw stdin
|
|
103
|
+
screen.on('keypress', (ch, key) => {
|
|
124
104
|
try {
|
|
125
|
-
if (!screen)
|
|
126
|
-
return;
|
|
127
|
-
const input = data.toString();
|
|
105
|
+
if (!screen || !widgets?.command || !key)
|
|
106
|
+
return;
|
|
128
107
|
// Ctrl+C
|
|
129
|
-
if (
|
|
108
|
+
if (key.name === 'C-c' || ch === '\x03') {
|
|
130
109
|
process.stderr.write('\n[V5] Ctrl+C pressed - exiting...\n');
|
|
131
110
|
cleanup();
|
|
132
111
|
process.exit(0);
|
|
133
112
|
return;
|
|
134
113
|
}
|
|
135
114
|
// Enter key
|
|
136
|
-
if (
|
|
115
|
+
if (key.name === 'enter' || key.name === 'return') {
|
|
137
116
|
const command = commandBuffer.trim();
|
|
138
117
|
commandBuffer = '';
|
|
139
118
|
// Update command widget display
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
const innerWidth = Math.max(1, cmdWidget.width - 4);
|
|
144
|
-
cmdWidget.setContent('\n ' + PROMPT);
|
|
145
|
-
screen.render(); // Force immediate render
|
|
146
|
-
}
|
|
147
|
-
catch (e) {
|
|
148
|
-
// Ignore render errors
|
|
149
|
-
}
|
|
150
|
-
}
|
|
119
|
+
const cmdWidget = widgets.command;
|
|
120
|
+
cmdWidget.setContent('\n ' + PROMPT);
|
|
121
|
+
screen.render();
|
|
151
122
|
// Handle debug commands
|
|
152
123
|
if (command && handleDebugCommand(command, debugContext)) {
|
|
153
|
-
|
|
154
|
-
screen.render();
|
|
155
|
-
}
|
|
156
|
-
catch (e) {
|
|
157
|
-
// Ignore render errors
|
|
158
|
-
}
|
|
124
|
+
screen.render();
|
|
159
125
|
}
|
|
160
126
|
else {
|
|
161
|
-
|
|
162
|
-
screen.render();
|
|
163
|
-
}
|
|
164
|
-
catch (e) {
|
|
165
|
-
// Ignore render errors
|
|
166
|
-
}
|
|
127
|
+
screen.render();
|
|
167
128
|
}
|
|
168
129
|
return;
|
|
169
130
|
}
|
|
170
131
|
// Backspace
|
|
171
|
-
if (
|
|
132
|
+
if (key.name === 'backspace' || key.name === 'delete') {
|
|
172
133
|
if (commandBuffer.length > 0) {
|
|
173
134
|
commandBuffer = commandBuffer.slice(0, -1);
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
if (displayText.length > innerWidth) {
|
|
181
|
-
displayText = displayText.substring(displayText.length - innerWidth);
|
|
182
|
-
}
|
|
183
|
-
cmdWidget.setContent('\n ' + displayText);
|
|
184
|
-
screen.render(); // Force immediate render
|
|
185
|
-
}
|
|
186
|
-
catch (e) {
|
|
187
|
-
// Ignore render errors
|
|
188
|
-
}
|
|
135
|
+
const cmdWidget = widgets.command;
|
|
136
|
+
const fullText = PROMPT + commandBuffer;
|
|
137
|
+
const innerWidth = Math.max(1, cmdWidget.width - 4);
|
|
138
|
+
let displayText = fullText;
|
|
139
|
+
if (displayText.length > innerWidth) {
|
|
140
|
+
displayText = displayText.substring(displayText.length - innerWidth);
|
|
189
141
|
}
|
|
142
|
+
cmdWidget.setContent('\n ' + displayText);
|
|
143
|
+
screen.render();
|
|
190
144
|
}
|
|
191
145
|
else {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
cmdWidget.setContent('\n ' + PROMPT);
|
|
196
|
-
screen.render(); // Force immediate render
|
|
197
|
-
}
|
|
198
|
-
catch (e) {
|
|
199
|
-
// Ignore render errors
|
|
200
|
-
}
|
|
201
|
-
}
|
|
146
|
+
const cmdWidget = widgets.command;
|
|
147
|
+
cmdWidget.setContent('\n ' + PROMPT);
|
|
148
|
+
screen.render();
|
|
202
149
|
}
|
|
203
150
|
return;
|
|
204
151
|
}
|
|
205
|
-
// Printable characters
|
|
206
|
-
if (
|
|
207
|
-
commandBuffer +=
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const innerWidth = Math.max(1, cmdWidget.width - 4); // Account for borders
|
|
215
|
-
let displayText = fullText;
|
|
216
|
-
// Truncate if too long
|
|
217
|
-
if (displayText.length > innerWidth) {
|
|
218
|
-
displayText = displayText.substring(displayText.length - innerWidth);
|
|
219
|
-
}
|
|
220
|
-
// Set content with proper formatting (blessed boxes need newline for first line)
|
|
221
|
-
cmdWidget.setContent('\n ' + displayText);
|
|
222
|
-
// Ensure widget is focused (visible/hidden are read-only properties)
|
|
223
|
-
screen.focused = cmdWidget;
|
|
224
|
-
if (typeof cmdWidget.focus === 'function') {
|
|
225
|
-
cmdWidget.focus();
|
|
226
|
-
}
|
|
227
|
-
// Force immediate render - CRITICAL for visibility
|
|
228
|
-
screen.render();
|
|
229
|
-
}
|
|
230
|
-
catch (e) {
|
|
231
|
-
// Log error but don't crash
|
|
232
|
-
process.stderr.write(`[V5] Input handler error: ${e}\n`);
|
|
233
|
-
}
|
|
152
|
+
// Printable characters
|
|
153
|
+
if (ch && ch.length === 1 && ch >= ' ' && ch <= '~') {
|
|
154
|
+
commandBuffer += ch;
|
|
155
|
+
const cmdWidget = widgets.command;
|
|
156
|
+
const fullText = PROMPT + commandBuffer;
|
|
157
|
+
const innerWidth = Math.max(1, cmdWidget.width - 4);
|
|
158
|
+
let displayText = fullText;
|
|
159
|
+
if (displayText.length > innerWidth) {
|
|
160
|
+
displayText = displayText.substring(displayText.length - innerWidth);
|
|
234
161
|
}
|
|
162
|
+
cmdWidget.setContent('\n ' + displayText);
|
|
163
|
+
screen.focused = cmdWidget;
|
|
164
|
+
if (typeof cmdWidget.focus === 'function') {
|
|
165
|
+
cmdWidget.focus();
|
|
166
|
+
}
|
|
167
|
+
screen.render();
|
|
235
168
|
}
|
|
236
169
|
}
|
|
237
170
|
catch (error) {
|
|
238
|
-
|
|
239
|
-
process.stderr.write(`[V5] Unhandled input error: ${error}\n`);
|
|
171
|
+
process.stderr.write(`[V5] Input handler error: ${error}\n`);
|
|
240
172
|
}
|
|
241
|
-
};
|
|
242
|
-
// Remove any existing listeners first
|
|
243
|
-
process.stdin.removeAllListeners('data');
|
|
244
|
-
process.stdin.on('data', stdinHandler);
|
|
245
|
-
// Cleanup on exit
|
|
246
|
-
process.on('exit', () => {
|
|
247
|
-
process.stdin.removeListener('data', stdinHandler);
|
|
248
173
|
});
|
|
249
174
|
// Focus command input immediately and set initial prompt
|
|
250
175
|
// Use setImmediate to ensure screen is fully rendered first
|
package/dist/ui/v5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/v5/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/v5/index.ts"],"names":[],"mappings":"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"}
|