4runr-os 2.0.50 → 2.0.52
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 +36 -64
- 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;AAcH,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;AAcH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuNlD"}
|
package/dist/ui/v5/index.js
CHANGED
|
@@ -32,9 +32,9 @@ import { handleDebugCommand } from './debug/debugCommands.js';
|
|
|
32
32
|
* Start V5 TUI Display Kernel
|
|
33
33
|
*/
|
|
34
34
|
export async function startV5Shell() {
|
|
35
|
-
// Check TTY before booting
|
|
36
|
-
if (!process.
|
|
37
|
-
process.stderr.write('V5 TUI requires a TTY. Exiting.\n');
|
|
35
|
+
// Check TTY before booting (use stdin, not stdout, since stdout may be piped)
|
|
36
|
+
if (!process.stdin.isTTY) {
|
|
37
|
+
process.stderr.write('V5 TUI requires a TTY (stdin must be a TTY). Exiting.\n');
|
|
38
38
|
process.exit(1);
|
|
39
39
|
}
|
|
40
40
|
// Singleton guard - prevent multiple instances
|
|
@@ -88,44 +88,33 @@ export async function startV5Shell() {
|
|
|
88
88
|
resizeController,
|
|
89
89
|
operationsPanel: kernel.getOperationsPanel(),
|
|
90
90
|
};
|
|
91
|
-
// Handle input - use
|
|
92
|
-
let commandBuffer = '';
|
|
91
|
+
// Handle input - use blessed's input system (don't interfere with blessed's stdin handling)
|
|
93
92
|
const widgets = kernel.getWidgets();
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const stdinHandler = (data) => {
|
|
108
|
-
const input = data.toString();
|
|
109
|
-
// Debug: Log received input (for first few characters)
|
|
110
|
-
if (commandBuffer.length < 5) {
|
|
111
|
-
process.stderr.write(`[V5 DEBUG] Received input: ${JSON.stringify(input)} (length=${input.length})\n`);
|
|
112
|
-
}
|
|
113
|
-
// Ctrl+C
|
|
114
|
-
if (input === '\x03') {
|
|
115
|
-
process.stderr.write('\n[V5] Ctrl+C pressed - exiting...\n');
|
|
116
|
-
cleanup();
|
|
117
|
-
process.exit(0);
|
|
93
|
+
// Handle Ctrl+C
|
|
94
|
+
screen.key(['C-c'], () => {
|
|
95
|
+
process.stderr.write('\n[V5] Ctrl+C pressed - exiting...\n');
|
|
96
|
+
cleanup();
|
|
97
|
+
process.exit(0);
|
|
98
|
+
});
|
|
99
|
+
// Handle command input via blessed's key system
|
|
100
|
+
// Use screen.key() to capture all keys when command widget is focused
|
|
101
|
+
let commandBuffer = '';
|
|
102
|
+
// Handle all printable characters and special keys
|
|
103
|
+
screen.on('keypress', (ch, key) => {
|
|
104
|
+
// Only process if command widget exists
|
|
105
|
+
if (!widgets?.command || !key)
|
|
118
106
|
return;
|
|
107
|
+
// Debug: Log first few keystrokes
|
|
108
|
+
if (commandBuffer.length < 5) {
|
|
109
|
+
process.stderr.write(`[V5 DEBUG] keypress: ch=${JSON.stringify(ch)}, key.name=${key.name}, key.full=${key.full}\n`);
|
|
119
110
|
}
|
|
120
|
-
// Enter key
|
|
121
|
-
if (
|
|
111
|
+
// Enter key - execute command
|
|
112
|
+
if (key.name === 'enter' || key.name === 'return') {
|
|
122
113
|
const command = commandBuffer.trim();
|
|
123
114
|
process.stderr.write(`[V5 DEBUG] Executing command: ${JSON.stringify(command)}\n`);
|
|
124
115
|
commandBuffer = '';
|
|
125
116
|
// Update command widget display
|
|
126
|
-
|
|
127
|
-
widgets.command.setContent('');
|
|
128
|
-
}
|
|
117
|
+
widgets.command.setContent('');
|
|
129
118
|
// Handle debug commands
|
|
130
119
|
if (command && handleDebugCommand(command, debugContext)) {
|
|
131
120
|
// Command handled
|
|
@@ -139,41 +128,28 @@ export async function startV5Shell() {
|
|
|
139
128
|
return;
|
|
140
129
|
}
|
|
141
130
|
// Backspace
|
|
142
|
-
if (
|
|
131
|
+
if (key.name === 'backspace' || key.name === 'delete') {
|
|
143
132
|
if (commandBuffer.length > 0) {
|
|
144
133
|
commandBuffer = commandBuffer.slice(0, -1);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
process.stderr.write(`[V5 DEBUG] Backspace: buffer="${commandBuffer}"\n`);
|
|
148
|
-
}
|
|
149
|
-
const currentVersion = getLayoutVersion();
|
|
150
|
-
safeRender(screen, currentVersion);
|
|
134
|
+
widgets.command.setContent(commandBuffer);
|
|
135
|
+
process.stderr.write(`[V5 DEBUG] Backspace: buffer="${commandBuffer}"\n`);
|
|
151
136
|
}
|
|
137
|
+
const currentVersion = getLayoutVersion();
|
|
138
|
+
safeRender(screen, currentVersion);
|
|
152
139
|
return;
|
|
153
140
|
}
|
|
154
|
-
// Printable characters
|
|
155
|
-
if (
|
|
156
|
-
commandBuffer +=
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
process.stderr.write(`[V5 DEBUG] Typed: "${input}", buffer="${commandBuffer}"\n`);
|
|
160
|
-
}
|
|
141
|
+
// Printable characters
|
|
142
|
+
if (ch && ch.length === 1 && ch >= ' ' && ch <= '~') {
|
|
143
|
+
commandBuffer += ch;
|
|
144
|
+
widgets.command.setContent(commandBuffer);
|
|
145
|
+
process.stderr.write(`[V5 DEBUG] Typed: "${ch}", buffer="${commandBuffer}"\n`);
|
|
161
146
|
const currentVersion = getLayoutVersion();
|
|
162
147
|
safeRender(screen, currentVersion);
|
|
163
148
|
}
|
|
164
|
-
else {
|
|
165
|
-
// Log unhandled
|
|
166
|
-
process.stderr.write(`[V5 DEBUG] Unhandled
|
|
149
|
+
else if (ch) {
|
|
150
|
+
// Log unhandled characters
|
|
151
|
+
process.stderr.write(`[V5 DEBUG] Unhandled char: ${JSON.stringify(ch)} (key.name=${key.name})\n`);
|
|
167
152
|
}
|
|
168
|
-
};
|
|
169
|
-
// Remove any existing listeners first
|
|
170
|
-
process.stdin.removeAllListeners('data');
|
|
171
|
-
process.stdin.on('data', stdinHandler);
|
|
172
|
-
// Also handle Ctrl+C via screen.key (backup)
|
|
173
|
-
screen.key(['C-c'], () => {
|
|
174
|
-
process.stderr.write('\n[V5] Ctrl+C pressed - exiting...\n');
|
|
175
|
-
cleanup();
|
|
176
|
-
process.exit(0);
|
|
177
153
|
});
|
|
178
154
|
// Focus command input immediately
|
|
179
155
|
if (widgets?.command) {
|
|
@@ -190,10 +166,6 @@ export async function startV5Shell() {
|
|
|
190
166
|
else {
|
|
191
167
|
process.stderr.write(`[V5 DEBUG] WARNING: Command widget not found!\n`);
|
|
192
168
|
}
|
|
193
|
-
// Cleanup stdin handler on exit
|
|
194
|
-
process.on('exit', () => {
|
|
195
|
-
process.stdin.removeListener('data', stdinHandler);
|
|
196
|
-
});
|
|
197
169
|
}
|
|
198
170
|
catch (error) {
|
|
199
171
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
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;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAS9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/v5/index.ts"],"names":[],"mappings":"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"}
|