4runr-os 2.0.61 → 2.0.62
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 +23 -48
- package/dist/ui/v5/index.js.map +1 -1
- package/dist/ui/v5/layout/clampRect.d.ts +6 -5
- package/dist/ui/v5/layout/clampRect.d.ts.map +1 -1
- package/dist/ui/v5/layout/clampRect.js +18 -9
- package/dist/ui/v5/layout/clampRect.js.map +1 -1
- package/dist/ui/v5/layout/layoutEngine.js +4 -4
- package/dist/ui/v5/layout/layoutEngine.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,CA2OlD"}
|
package/dist/ui/v5/index.js
CHANGED
|
@@ -51,12 +51,8 @@ export async function startV5Shell() {
|
|
|
51
51
|
let kernel = null;
|
|
52
52
|
let resizeController = null;
|
|
53
53
|
try {
|
|
54
|
-
// CRITICAL: Prepare stdin BEFORE creating screen
|
|
55
|
-
process.stdin.resume();
|
|
56
|
-
if (process.stdin.isTTY && !process.stdin.isRaw) {
|
|
57
|
-
process.stdin.setRawMode(true);
|
|
58
|
-
}
|
|
59
54
|
// Create screen - blessed will detect terminal size automatically
|
|
55
|
+
// NOTE: Blessed takes control of stdin, so we handle input via blessed's key system
|
|
60
56
|
screen = blessed.screen({
|
|
61
57
|
smartCSR: true,
|
|
62
58
|
fastCSR: false,
|
|
@@ -64,6 +60,8 @@ export async function startV5Shell() {
|
|
|
64
60
|
fullUnicode: false,
|
|
65
61
|
autoPadding: false,
|
|
66
62
|
dockBorders: false,
|
|
63
|
+
input: process.stdin,
|
|
64
|
+
output: process.stdout,
|
|
67
65
|
});
|
|
68
66
|
// CRITICAL: Override blessed's program.cols/rows to force safe dimensions
|
|
69
67
|
// This prevents blessed from rendering beyond safe bounds
|
|
@@ -108,40 +106,30 @@ export async function startV5Shell() {
|
|
|
108
106
|
cleanup();
|
|
109
107
|
process.exit(0);
|
|
110
108
|
});
|
|
111
|
-
// Handle command input via
|
|
109
|
+
// Handle command input via blessed's key system
|
|
110
|
+
// Blessed takes control of stdin, so we use screen.on('keypress') and screen.key()
|
|
112
111
|
let commandBuffer = '';
|
|
113
112
|
const PROMPT = '4runr> ';
|
|
114
|
-
//
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
process.stdin.setEncoding('utf8');
|
|
120
|
-
if (process.stdin.isPaused()) {
|
|
121
|
-
process.stdin.resume();
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// Handle stdin data directly (more reliable than blessed keypress in browser terminals)
|
|
125
|
-
const stdinHandler = (data) => {
|
|
126
|
-
const input = data.toString();
|
|
113
|
+
// Handle all keypresses when command widget is focused
|
|
114
|
+
screen.on('keypress', (ch, key) => {
|
|
115
|
+
// Only process if command widget exists
|
|
116
|
+
if (!widgets?.command || !key)
|
|
117
|
+
return;
|
|
127
118
|
// Ctrl+C
|
|
128
|
-
if (
|
|
119
|
+
if (key.name === 'C-c' || (ch === '\x03')) {
|
|
129
120
|
process.stderr.write('\n[V5] Ctrl+C pressed - exiting...\n');
|
|
130
121
|
cleanup();
|
|
131
122
|
process.exit(0);
|
|
132
123
|
return;
|
|
133
124
|
}
|
|
134
125
|
// Enter key
|
|
135
|
-
if (
|
|
126
|
+
if (key.name === 'enter' || key.name === 'return') {
|
|
136
127
|
const command = commandBuffer.trim();
|
|
137
128
|
commandBuffer = '';
|
|
138
129
|
// Update command widget display
|
|
139
|
-
|
|
140
|
-
widgets.command.setContent(PROMPT);
|
|
141
|
-
}
|
|
130
|
+
widgets.command.setContent(PROMPT);
|
|
142
131
|
// Handle debug commands
|
|
143
132
|
if (command && handleDebugCommand(command, debugContext)) {
|
|
144
|
-
// Command handled
|
|
145
133
|
const currentVersion = getLayoutVersion();
|
|
146
134
|
safeRender(screen, currentVersion);
|
|
147
135
|
return;
|
|
@@ -152,38 +140,25 @@ export async function startV5Shell() {
|
|
|
152
140
|
return;
|
|
153
141
|
}
|
|
154
142
|
// Backspace
|
|
155
|
-
if (
|
|
143
|
+
if (key.name === 'backspace' || key.name === 'delete') {
|
|
156
144
|
if (commandBuffer.length > 0) {
|
|
157
145
|
commandBuffer = commandBuffer.slice(0, -1);
|
|
158
|
-
|
|
159
|
-
widgets.command.setContent(PROMPT + commandBuffer);
|
|
160
|
-
}
|
|
146
|
+
widgets.command.setContent(PROMPT + commandBuffer);
|
|
161
147
|
}
|
|
162
148
|
else {
|
|
163
|
-
|
|
164
|
-
widgets.command.setContent(PROMPT);
|
|
165
|
-
}
|
|
149
|
+
widgets.command.setContent(PROMPT);
|
|
166
150
|
}
|
|
167
151
|
const currentVersion = getLayoutVersion();
|
|
168
152
|
safeRender(screen, currentVersion);
|
|
169
153
|
return;
|
|
170
154
|
}
|
|
171
|
-
// Printable characters
|
|
172
|
-
if (
|
|
173
|
-
commandBuffer +=
|
|
174
|
-
|
|
175
|
-
widgets.command.setContent(PROMPT + commandBuffer);
|
|
176
|
-
}
|
|
155
|
+
// Printable characters
|
|
156
|
+
if (ch && ch.length === 1 && ch >= ' ' && ch <= '~') {
|
|
157
|
+
commandBuffer += ch;
|
|
158
|
+
widgets.command.setContent(PROMPT + commandBuffer);
|
|
177
159
|
const currentVersion = getLayoutVersion();
|
|
178
160
|
safeRender(screen, currentVersion);
|
|
179
161
|
}
|
|
180
|
-
};
|
|
181
|
-
// Remove any existing listeners first
|
|
182
|
-
process.stdin.removeAllListeners('data');
|
|
183
|
-
process.stdin.on('data', stdinHandler);
|
|
184
|
-
// Cleanup on exit
|
|
185
|
-
process.on('exit', () => {
|
|
186
|
-
process.stdin.removeListener('data', stdinHandler);
|
|
187
162
|
});
|
|
188
163
|
// Focus command input immediately and set initial prompt
|
|
189
164
|
// Use setImmediate to ensure screen is fully rendered first
|
|
@@ -191,15 +166,15 @@ export async function startV5Shell() {
|
|
|
191
166
|
if (widgets?.command && screen) {
|
|
192
167
|
try {
|
|
193
168
|
const cmdWidget = widgets.command;
|
|
194
|
-
cmdWidget.setContent(
|
|
195
|
-
// Force focus
|
|
169
|
+
cmdWidget.setContent(PROMPT);
|
|
170
|
+
// Force focus - blessed needs this to receive keypress events
|
|
196
171
|
if (typeof cmdWidget.focus === 'function') {
|
|
197
172
|
cmdWidget.focus();
|
|
198
173
|
}
|
|
199
174
|
screen.focused = cmdWidget;
|
|
200
175
|
// Ensure screen renders
|
|
201
176
|
screen.render();
|
|
202
|
-
process.stderr.write(
|
|
177
|
+
process.stderr.write(`[V5] Command widget focused (width: ${cmdWidget.width}, height: ${cmdWidget.height})\n`);
|
|
203
178
|
}
|
|
204
179
|
catch (e) {
|
|
205
180
|
process.stderr.write(`[V5] Focus error: ${e}\n`);
|
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;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQxD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,8EAA8E;IAC9E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,+CAA+C;IAC/C,IAAK,UAAkB,CAAC,2BAA2B,EAAE,CAAC;QACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,8CAA8C;IAC7C,UAAkB,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAEvD,2DAA2D;IAC3D,eAAe,EAAE,CAAC;IAElB,IAAI,MAAM,GAA0B,IAAI,CAAC;IACzC,IAAI,MAAM,GAAoB,IAAI,CAAC;IACnC,IAAI,gBAAgB,GAA4B,IAAI,CAAC;IAErD,IAAI,CAAC;QACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/v5/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,15 +13,16 @@ export type Rect = {
|
|
|
13
13
|
/**
|
|
14
14
|
* Clamp rectangle to fit within safe bounds
|
|
15
15
|
*
|
|
16
|
-
* CRITICAL RULE: x + w <= safeCols -
|
|
16
|
+
* CRITICAL RULE: x + w <= safeCols - buffer
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* For right-edge panels: buffer = 3 (aggressive)
|
|
19
|
+
* For command panel: buffer = 1 (less aggressive, needs full width)
|
|
20
|
+
* For other panels: buffer = 2 (moderate)
|
|
20
21
|
*
|
|
21
22
|
* Rules:
|
|
22
23
|
* 1) Clamp x/y within bounds
|
|
23
|
-
* 2) Clamp w/h so x+w <= safeCols-
|
|
24
|
+
* 2) Clamp w/h so x+w <= safeCols-buffer and y+h <= safeRows-buffer
|
|
24
25
|
* 3) Enforce w>=1, h>=1
|
|
25
26
|
*/
|
|
26
|
-
export declare function clampRect(r: Rect, safeCols: number, safeRows: number): Rect;
|
|
27
|
+
export declare function clampRect(r: Rect, safeCols: number, safeRows: number, panelId?: string): Rect;
|
|
27
28
|
//# sourceMappingURL=clampRect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clampRect.d.ts","sourceRoot":"","sources":["../../../../src/ui/v5/layout/clampRect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"clampRect.d.ts","sourceRoot":"","sources":["../../../../src/ui/v5/layout/clampRect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CA4B7F"}
|
|
@@ -7,26 +7,35 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* Clamp rectangle to fit within safe bounds
|
|
9
9
|
*
|
|
10
|
-
* CRITICAL RULE: x + w <= safeCols -
|
|
10
|
+
* CRITICAL RULE: x + w <= safeCols - buffer
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* For right-edge panels: buffer = 3 (aggressive)
|
|
13
|
+
* For command panel: buffer = 1 (less aggressive, needs full width)
|
|
14
|
+
* For other panels: buffer = 2 (moderate)
|
|
14
15
|
*
|
|
15
16
|
* Rules:
|
|
16
17
|
* 1) Clamp x/y within bounds
|
|
17
|
-
* 2) Clamp w/h so x+w <= safeCols-
|
|
18
|
+
* 2) Clamp w/h so x+w <= safeCols-buffer and y+h <= safeRows-buffer
|
|
18
19
|
* 3) Enforce w>=1, h>=1
|
|
19
20
|
*/
|
|
20
|
-
export function clampRect(r, safeCols, safeRows) {
|
|
21
|
+
export function clampRect(r, safeCols, safeRows, panelId) {
|
|
21
22
|
let { x, y, w, h } = r;
|
|
22
23
|
// Clamp x/y to non-negative
|
|
23
24
|
x = Math.max(0, x);
|
|
24
25
|
y = Math.max(0, y);
|
|
25
|
-
//
|
|
26
|
-
|
|
26
|
+
// Determine buffer based on panel type
|
|
27
|
+
let buffer = 2; // Default moderate buffer
|
|
28
|
+
if (panelId === 'command') {
|
|
29
|
+
buffer = 1; // Command panel needs more width
|
|
30
|
+
}
|
|
31
|
+
else if (panelId === 'network' || panelId === 'capabilities') {
|
|
32
|
+
buffer = 3; // Right-edge panels need aggressive buffer
|
|
33
|
+
}
|
|
34
|
+
// CRITICAL: Clamp width so x+w <= safeCols-buffer
|
|
35
|
+
const maxW = Math.max(1, safeCols - buffer - x);
|
|
27
36
|
w = Math.min(w, maxW);
|
|
28
|
-
// CRITICAL: Clamp height so y+h <= safeRows-
|
|
29
|
-
const maxH = Math.max(1, safeRows -
|
|
37
|
+
// CRITICAL: Clamp height so y+h <= safeRows-buffer
|
|
38
|
+
const maxH = Math.max(1, safeRows - buffer - y);
|
|
30
39
|
h = Math.min(h, maxH);
|
|
31
40
|
// Enforce minimums
|
|
32
41
|
w = Math.max(1, w);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clampRect.js","sourceRoot":"","sources":["../../../../src/ui/v5/layout/clampRect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH
|
|
1
|
+
{"version":3,"file":"clampRect.js","sourceRoot":"","sources":["../../../../src/ui/v5/layout/clampRect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,CAAO,EAAE,QAAgB,EAAE,QAAgB,EAAE,OAAgB;IACrF,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAEvB,4BAA4B;IAC5B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB,uCAAuC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,0BAA0B;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,iCAAiC;IAC/C,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/D,MAAM,GAAG,CAAC,CAAC,CAAC,2CAA2C;IACzD,CAAC;IAED,kDAAkD;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEtB,mDAAmD;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEtB,mBAAmB;IACnB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -59,10 +59,10 @@ function computeNormalLayout(safeCols, safeRows, leftW, rightW) {
|
|
|
59
59
|
// Command line
|
|
60
60
|
command: { x: 0, y: mainH, w: safeCols, h: CMD_HEIGHT },
|
|
61
61
|
};
|
|
62
|
-
// Clamp all rects
|
|
62
|
+
// Clamp all rects (pass panelId for context-aware clamping)
|
|
63
63
|
const clampedRects = {};
|
|
64
64
|
for (const [id, rect] of Object.entries(rects)) {
|
|
65
|
-
clampedRects[id] = clampRect(rect, safeCols, safeRows);
|
|
65
|
+
clampedRects[id] = clampRect(rect, safeCols, safeRows, id);
|
|
66
66
|
}
|
|
67
67
|
return {
|
|
68
68
|
mode: 'normal',
|
|
@@ -86,10 +86,10 @@ function computeNarrowLayout(safeCols, safeRows) {
|
|
|
86
86
|
capabilities: { x: 0, y: (panelH * 5) + Math.min(remainder, 5), w: safeCols, h: panelH + (remainder > 5 ? 1 : 0) },
|
|
87
87
|
command: { x: 0, y: mainH, w: safeCols, h: CMD_HEIGHT },
|
|
88
88
|
};
|
|
89
|
-
// Clamp all rects
|
|
89
|
+
// Clamp all rects (pass panelId for context-aware clamping)
|
|
90
90
|
const clampedRects = {};
|
|
91
91
|
for (const [id, rect] of Object.entries(rects)) {
|
|
92
|
-
clampedRects[id] = clampRect(rect, safeCols, safeRows);
|
|
92
|
+
clampedRects[id] = clampRect(rect, safeCols, safeRows, id);
|
|
93
93
|
}
|
|
94
94
|
return {
|
|
95
95
|
mode: 'narrow',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layoutEngine.js","sourceRoot":"","sources":["../../../../src/ui/v5/layout/layoutEngine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"layoutEngine.js","sourceRoot":"","sources":["../../../../src/ui/v5/layout/layoutEngine.ts"],"names":[],"mappings":"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"}
|