4runr-os 1.0.82 → 1.0.84
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/v3/section1/index.d.ts.map +1 -1
- package/dist/ui/v3/section1/index.js +78 -1
- package/dist/ui/v3/section1/index.js.map +1 -1
- package/dist/ui/v3/section1/runtime/commandLine.d.ts +1 -1
- package/dist/ui/v3/section1/runtime/commandLine.d.ts.map +1 -1
- package/dist/ui/v3/section1/runtime/commandLine.js +13 -8
- package/dist/ui/v3/section1/runtime/commandLine.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/section1/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAsGH;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/section1/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAsGH;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA0KnD"}
|
|
@@ -16,7 +16,7 @@ import blessed from 'neo-blessed';
|
|
|
16
16
|
import { createScreen } from '../section0/runtime/createScreen.js';
|
|
17
17
|
import { initializeLifecycle } from '../section0/runtime/lifecycle.js';
|
|
18
18
|
import { computePhase1Layout } from '../ui/layout/phase1Layout.js';
|
|
19
|
-
import { createCommandLineWidgets, focusCommandInput, attachCommandLineHandlers, updateStatusStrip } from './runtime/commandLine.js';
|
|
19
|
+
import { createCommandLineWidgets, focusCommandInput, attachCommandLineHandlers, updateStatusStrip, resetCommandLineHandlers } from './runtime/commandLine.js';
|
|
20
20
|
import { lockAllPanelsFocus, overrideTabNavigation } from './runtime/focusLock.js';
|
|
21
21
|
const blessedLib = blessed;
|
|
22
22
|
let screen = null;
|
|
@@ -138,6 +138,83 @@ export async function startSection1() {
|
|
|
138
138
|
});
|
|
139
139
|
// Attach command line handlers (deduplicated)
|
|
140
140
|
attachCommandLineHandlers(screen, commandLineWidgets, handleCommandSubmit);
|
|
141
|
+
// Handle resize (CRITICAL: Preserve handlers and refocus)
|
|
142
|
+
screen.on('resize', () => {
|
|
143
|
+
if (!screen || !commandLineWidgets)
|
|
144
|
+
return;
|
|
145
|
+
// Recompute layout
|
|
146
|
+
const newLayoutResult = computePhase1Layout(screen.width, screen.height);
|
|
147
|
+
if (!newLayoutResult.ok || !newLayoutResult.layout) {
|
|
148
|
+
return; // Can't resize, keep current layout
|
|
149
|
+
}
|
|
150
|
+
const newLayout = newLayoutResult.layout;
|
|
151
|
+
// Update panel positions
|
|
152
|
+
const panelRects = [
|
|
153
|
+
newLayout.posture,
|
|
154
|
+
newLayout.resources,
|
|
155
|
+
newLayout.assets,
|
|
156
|
+
newLayout.operations,
|
|
157
|
+
newLayout.network,
|
|
158
|
+
newLayout.capabilities,
|
|
159
|
+
];
|
|
160
|
+
for (let i = 0; i < panels.length && i < panelRects.length; i++) {
|
|
161
|
+
const panel = panels[i];
|
|
162
|
+
const rect = panelRects[i];
|
|
163
|
+
panel.top = rect.top;
|
|
164
|
+
panel.left = rect.left;
|
|
165
|
+
panel.width = rect.width;
|
|
166
|
+
panel.height = rect.height;
|
|
167
|
+
}
|
|
168
|
+
// Update command line widgets positions
|
|
169
|
+
const commandLineRect = newLayout.commandLine;
|
|
170
|
+
const statusWidth = 40;
|
|
171
|
+
const promptWidth = 8; // "4runr> "
|
|
172
|
+
const gap = 1;
|
|
173
|
+
const inputWidth = commandLineRect.width - promptWidth - gap - statusWidth - gap;
|
|
174
|
+
commandLineWidgets.labelBox.top = commandLineRect.top;
|
|
175
|
+
commandLineWidgets.labelBox.left = commandLineRect.left;
|
|
176
|
+
commandLineWidgets.inputTextbox.top = commandLineRect.top;
|
|
177
|
+
commandLineWidgets.inputTextbox.left = commandLineRect.left + promptWidth + gap;
|
|
178
|
+
commandLineWidgets.inputTextbox.width = inputWidth;
|
|
179
|
+
commandLineWidgets.statusStrip.top = commandLineRect.top;
|
|
180
|
+
commandLineWidgets.statusStrip.left = commandLineRect.left + promptWidth + gap + inputWidth + gap;
|
|
181
|
+
// CRITICAL: Re-attach handlers after resize (blessed might lose them)
|
|
182
|
+
// Reset the guard to allow re-attachment
|
|
183
|
+
resetCommandLineHandlers();
|
|
184
|
+
attachCommandLineHandlers(screen, commandLineWidgets, handleCommandSubmit);
|
|
185
|
+
// CRITICAL: Refocus textbox after resize
|
|
186
|
+
setImmediate(() => {
|
|
187
|
+
if (commandLineWidgets) {
|
|
188
|
+
focusCommandInput(commandLineWidgets, 'resize');
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
screen.render();
|
|
192
|
+
});
|
|
193
|
+
// Add screen-level Ctrl+C handler (CRITICAL: Must work always)
|
|
194
|
+
// Use both screen key and ensure process handler works
|
|
195
|
+
screen.key(['C-c'], () => {
|
|
196
|
+
// Direct shutdown - don't rely on process handlers
|
|
197
|
+
if (screen) {
|
|
198
|
+
try {
|
|
199
|
+
// Show cursor
|
|
200
|
+
if (screen.program && screen.program.showCursor) {
|
|
201
|
+
screen.program.showCursor();
|
|
202
|
+
}
|
|
203
|
+
else if (process.stdout.isTTY) {
|
|
204
|
+
process.stdout.write('\x1b[?25h');
|
|
205
|
+
}
|
|
206
|
+
screen.destroy();
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
// Ignore
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (process.stdout.isTTY) {
|
|
213
|
+
process.stdout.write('\x1b[?25h');
|
|
214
|
+
process.stdout.write('\x1b[?1049l');
|
|
215
|
+
}
|
|
216
|
+
process.exit(0);
|
|
217
|
+
});
|
|
141
218
|
// Initial focus (once on startup, after render)
|
|
142
219
|
// Use setImmediate to ensure focus happens after initial render
|
|
143
220
|
setImmediate(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/v3/section1/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAEH,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/v3/section1/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export declare function attachCommandLineHandlers(screen: Widgets.Screen, widget
|
|
|
43
43
|
*/
|
|
44
44
|
export declare function updateStatusStrip(widgets: CommandLineWidgets, content: string): void;
|
|
45
45
|
/**
|
|
46
|
-
* Reset handler attachment guard (for testing)
|
|
46
|
+
* Reset handler attachment guard (for testing or re-attachment)
|
|
47
47
|
*/
|
|
48
48
|
export declare function resetCommandLineHandlers(): void;
|
|
49
49
|
//# sourceMappingURL=commandLine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandLine.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/section1/runtime/commandLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC;CAC1B;AASD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,kBAAkB,CAmEpB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CASN;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI,
|
|
1
|
+
{"version":3,"file":"commandLine.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/section1/runtime/commandLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC;CAC1B;AASD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,kBAAkB,CAmEpB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CASN;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI,CAiEN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,GACd,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -13,8 +13,8 @@ const blessedLib = blessed;
|
|
|
13
13
|
const PROMPT = '4runr> ';
|
|
14
14
|
const PROMPT_WIDTH = PROMPT.length;
|
|
15
15
|
const GAP = 1; // Gap between label and input
|
|
16
|
-
//
|
|
17
|
-
let
|
|
16
|
+
// Track which textbox has handlers attached (to allow re-attachment after resize)
|
|
17
|
+
let lastTextboxWithHandlers = null;
|
|
18
18
|
/**
|
|
19
19
|
* Create the three command line widgets
|
|
20
20
|
*
|
|
@@ -111,12 +111,17 @@ export function focusCommandInput(widgets, reason) {
|
|
|
111
111
|
* - Use screen keys only for global exit shortcuts (q, Ctrl+C)
|
|
112
112
|
*/
|
|
113
113
|
export function attachCommandLineHandlers(screen, widgets, onSubmit, onCancel) {
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
const { inputTextbox } = widgets;
|
|
115
|
+
// If handlers already attached to this textbox, skip
|
|
116
|
+
if (lastTextboxWithHandlers === inputTextbox) {
|
|
116
117
|
return;
|
|
117
118
|
}
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
// Remove old handlers if switching textboxes (shouldn't happen, but safety)
|
|
120
|
+
if (lastTextboxWithHandlers && lastTextboxWithHandlers !== inputTextbox) {
|
|
121
|
+
// Handlers are bound to the widget, so old widget will be destroyed
|
|
122
|
+
// No need to manually remove
|
|
123
|
+
}
|
|
124
|
+
lastTextboxWithHandlers = inputTextbox;
|
|
120
125
|
// Handle Enter key explicitly (blessed textbox needs this)
|
|
121
126
|
inputTextbox.key('enter', () => {
|
|
122
127
|
// Get value from textbox (blessed textbox uses .value property)
|
|
@@ -165,9 +170,9 @@ export function updateStatusStrip(widgets, content) {
|
|
|
165
170
|
widgets.statusStrip.setContent(content);
|
|
166
171
|
}
|
|
167
172
|
/**
|
|
168
|
-
* Reset handler attachment guard (for testing)
|
|
173
|
+
* Reset handler attachment guard (for testing or re-attachment)
|
|
169
174
|
*/
|
|
170
175
|
export function resetCommandLineHandlers() {
|
|
171
|
-
|
|
176
|
+
lastTextboxWithHandlers = null;
|
|
172
177
|
}
|
|
173
178
|
//# sourceMappingURL=commandLine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandLine.js","sourceRoot":"","sources":["../../../../../src/ui/v3/section1/runtime/commandLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,OAAO,MAAM,aAAa,CAAC;AAGlC,MAAM,UAAU,GAAG,OAAc,CAAC;AAQlC,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,8BAA8B;AAE7C,
|
|
1
|
+
{"version":3,"file":"commandLine.js","sourceRoot":"","sources":["../../../../../src/ui/v3/section1/runtime/commandLine.ts"],"names":[],"mappings":"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"}
|