4runr-os 2.0.68 → 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 -119
- 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,8 +49,11 @@ export async function startV5Shell() {
|
|
|
50
49
|
let kernel = null;
|
|
51
50
|
let resizeController = null;
|
|
52
51
|
try {
|
|
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
|
|
53
54
|
// Create screen - blessed will detect terminal size automatically
|
|
54
|
-
//
|
|
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
|
|
55
57
|
screen = blessed.screen({
|
|
56
58
|
smartCSR: true,
|
|
57
59
|
fastCSR: false,
|
|
@@ -59,24 +61,13 @@ export async function startV5Shell() {
|
|
|
59
61
|
fullUnicode: false,
|
|
60
62
|
autoPadding: false,
|
|
61
63
|
dockBorders: false,
|
|
62
|
-
input: process.stdin,
|
|
63
64
|
output: process.stdout,
|
|
65
|
+
input: process.stdin, // Let blessed handle stdin - we'll use screen.on('keypress')
|
|
64
66
|
});
|
|
65
|
-
// CRITICAL: Override blessed's program.cols/rows to force safe dimensions
|
|
66
|
-
// This prevents blessed from rendering beyond safe bounds
|
|
67
|
-
const vp = getViewport(screen);
|
|
68
|
-
const screenProgram = screen.program;
|
|
69
|
-
if (screenProgram) {
|
|
70
|
-
// Override the actual terminal dimensions that blessed uses
|
|
71
|
-
const originalCols = screenProgram.cols;
|
|
72
|
-
const originalRows = screenProgram.rows;
|
|
73
|
-
screenProgram.cols = vp.safeCols;
|
|
74
|
-
screenProgram.rows = vp.safeRows;
|
|
75
|
-
process.stderr.write(`[V5] Forced screen dimensions: ${vp.safeCols}x${vp.safeRows} (was ${originalCols}x${originalRows})\n`);
|
|
76
|
-
}
|
|
77
67
|
// CRITICAL: Attach runtime keep-alive AFTER screen creation
|
|
78
68
|
attachRuntime(screen);
|
|
79
69
|
// Hide cursor initially
|
|
70
|
+
const screenProgram = screen.program;
|
|
80
71
|
if (screenProgram && typeof screenProgram.hideCursor === 'function') {
|
|
81
72
|
screenProgram.hideCursor();
|
|
82
73
|
}
|
|
@@ -105,144 +96,80 @@ export async function startV5Shell() {
|
|
|
105
96
|
cleanup();
|
|
106
97
|
process.exit(0);
|
|
107
98
|
});
|
|
108
|
-
// Handle
|
|
109
|
-
// 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)
|
|
110
100
|
let commandBuffer = '';
|
|
111
101
|
const PROMPT = '4runr> ';
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
process.stdin.setRawMode(true);
|
|
115
|
-
process.stdin.setEncoding('utf8');
|
|
116
|
-
if (process.stdin.isPaused()) {
|
|
117
|
-
process.stdin.resume();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
// Handle stdin data directly (like V3)
|
|
121
|
-
const stdinHandler = (data) => {
|
|
102
|
+
// Use blessed's keypress handler - this works better than raw stdin
|
|
103
|
+
screen.on('keypress', (ch, key) => {
|
|
122
104
|
try {
|
|
123
|
-
if (!screen)
|
|
124
|
-
return;
|
|
125
|
-
const input = data.toString();
|
|
105
|
+
if (!screen || !widgets?.command || !key)
|
|
106
|
+
return;
|
|
126
107
|
// Ctrl+C
|
|
127
|
-
if (
|
|
108
|
+
if (key.name === 'C-c' || ch === '\x03') {
|
|
128
109
|
process.stderr.write('\n[V5] Ctrl+C pressed - exiting...\n');
|
|
129
110
|
cleanup();
|
|
130
111
|
process.exit(0);
|
|
131
112
|
return;
|
|
132
113
|
}
|
|
133
114
|
// Enter key
|
|
134
|
-
if (
|
|
115
|
+
if (key.name === 'enter' || key.name === 'return') {
|
|
135
116
|
const command = commandBuffer.trim();
|
|
136
117
|
commandBuffer = '';
|
|
137
118
|
// Update command widget display
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const innerWidth = Math.max(1, cmdWidget.width - 4);
|
|
142
|
-
cmdWidget.setContent('\n ' + PROMPT);
|
|
143
|
-
screen.render(); // Force immediate render
|
|
144
|
-
}
|
|
145
|
-
catch (e) {
|
|
146
|
-
// Ignore render errors
|
|
147
|
-
}
|
|
148
|
-
}
|
|
119
|
+
const cmdWidget = widgets.command;
|
|
120
|
+
cmdWidget.setContent('\n ' + PROMPT);
|
|
121
|
+
screen.render();
|
|
149
122
|
// Handle debug commands
|
|
150
123
|
if (command && handleDebugCommand(command, debugContext)) {
|
|
151
|
-
|
|
152
|
-
screen.render();
|
|
153
|
-
}
|
|
154
|
-
catch (e) {
|
|
155
|
-
// Ignore render errors
|
|
156
|
-
}
|
|
124
|
+
screen.render();
|
|
157
125
|
}
|
|
158
126
|
else {
|
|
159
|
-
|
|
160
|
-
screen.render();
|
|
161
|
-
}
|
|
162
|
-
catch (e) {
|
|
163
|
-
// Ignore render errors
|
|
164
|
-
}
|
|
127
|
+
screen.render();
|
|
165
128
|
}
|
|
166
129
|
return;
|
|
167
130
|
}
|
|
168
131
|
// Backspace
|
|
169
|
-
if (
|
|
132
|
+
if (key.name === 'backspace' || key.name === 'delete') {
|
|
170
133
|
if (commandBuffer.length > 0) {
|
|
171
134
|
commandBuffer = commandBuffer.slice(0, -1);
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (displayText.length > innerWidth) {
|
|
179
|
-
displayText = displayText.substring(displayText.length - innerWidth);
|
|
180
|
-
}
|
|
181
|
-
cmdWidget.setContent('\n ' + displayText);
|
|
182
|
-
screen.render(); // Force immediate render
|
|
183
|
-
}
|
|
184
|
-
catch (e) {
|
|
185
|
-
// Ignore render errors
|
|
186
|
-
}
|
|
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);
|
|
187
141
|
}
|
|
142
|
+
cmdWidget.setContent('\n ' + displayText);
|
|
143
|
+
screen.render();
|
|
188
144
|
}
|
|
189
145
|
else {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
cmdWidget.setContent('\n ' + PROMPT);
|
|
194
|
-
screen.render(); // Force immediate render
|
|
195
|
-
}
|
|
196
|
-
catch (e) {
|
|
197
|
-
// Ignore render errors
|
|
198
|
-
}
|
|
199
|
-
}
|
|
146
|
+
const cmdWidget = widgets.command;
|
|
147
|
+
cmdWidget.setContent('\n ' + PROMPT);
|
|
148
|
+
screen.render();
|
|
200
149
|
}
|
|
201
150
|
return;
|
|
202
151
|
}
|
|
203
|
-
// Printable characters
|
|
204
|
-
if (
|
|
205
|
-
commandBuffer +=
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const innerWidth = Math.max(1, cmdWidget.width - 4); // Account for borders
|
|
213
|
-
let displayText = fullText;
|
|
214
|
-
// Truncate if too long
|
|
215
|
-
if (displayText.length > innerWidth) {
|
|
216
|
-
displayText = displayText.substring(displayText.length - innerWidth);
|
|
217
|
-
}
|
|
218
|
-
// Set content with proper formatting (blessed boxes need newline for first line)
|
|
219
|
-
cmdWidget.setContent('\n ' + displayText);
|
|
220
|
-
// Ensure widget is focused (visible/hidden are read-only properties)
|
|
221
|
-
screen.focused = cmdWidget;
|
|
222
|
-
if (typeof cmdWidget.focus === 'function') {
|
|
223
|
-
cmdWidget.focus();
|
|
224
|
-
}
|
|
225
|
-
// Force immediate render - CRITICAL for visibility
|
|
226
|
-
screen.render();
|
|
227
|
-
}
|
|
228
|
-
catch (e) {
|
|
229
|
-
// Log error but don't crash
|
|
230
|
-
process.stderr.write(`[V5] Input handler error: ${e}\n`);
|
|
231
|
-
}
|
|
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);
|
|
232
161
|
}
|
|
162
|
+
cmdWidget.setContent('\n ' + displayText);
|
|
163
|
+
screen.focused = cmdWidget;
|
|
164
|
+
if (typeof cmdWidget.focus === 'function') {
|
|
165
|
+
cmdWidget.focus();
|
|
166
|
+
}
|
|
167
|
+
screen.render();
|
|
233
168
|
}
|
|
234
169
|
}
|
|
235
170
|
catch (error) {
|
|
236
|
-
|
|
237
|
-
process.stderr.write(`[V5] Unhandled input error: ${error}\n`);
|
|
171
|
+
process.stderr.write(`[V5] Input handler error: ${error}\n`);
|
|
238
172
|
}
|
|
239
|
-
};
|
|
240
|
-
// Remove any existing listeners first
|
|
241
|
-
process.stdin.removeAllListeners('data');
|
|
242
|
-
process.stdin.on('data', stdinHandler);
|
|
243
|
-
// Cleanup on exit
|
|
244
|
-
process.on('exit', () => {
|
|
245
|
-
process.stdin.removeListener('data', stdinHandler);
|
|
246
173
|
});
|
|
247
174
|
// Focus command input immediately and set initial prompt
|
|
248
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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"}
|