4runr-os 1.0.78 → 1.0.80

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.
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Section 0 - Stable App Shell
4
+ *
5
+ * Objective: Build a minimal TUI app shell that:
6
+ * - starts reliably
7
+ * - exits cleanly
8
+ * - restores the terminal every time
9
+ * - does not register duplicate handlers or multiple render loops
10
+ *
11
+ * No UI panels, no commands, no collectors yet. Just a stable shell.
12
+ */
13
+ /**
14
+ * Start Section 0 TUI shell
15
+ *
16
+ * Rules:
17
+ * - One render loop only (or none for Section 0 - just render once)
18
+ * - No console.log() while TUI is active
19
+ * - Exit must always restore terminal state
20
+ */
21
+ export declare function startSection0(): Promise<void>;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/section0/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAaH;;;;;;;GAOG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAwDnD"}
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Section 0 - Stable App Shell
4
+ *
5
+ * Objective: Build a minimal TUI app shell that:
6
+ * - starts reliably
7
+ * - exits cleanly
8
+ * - restores the terminal every time
9
+ * - does not register duplicate handlers or multiple render loops
10
+ *
11
+ * No UI panels, no commands, no collectors yet. Just a stable shell.
12
+ */
13
+ import { createScreen } from './runtime/createScreen.js';
14
+ import { initializeLifecycle } from './runtime/lifecycle.js';
15
+ import blessed from 'neo-blessed';
16
+ const blessedLib = blessed;
17
+ // Suppress console.log during TUI (write debug logs to file if needed)
18
+ const originalConsoleLog = console.log;
19
+ const originalConsoleError = console.error;
20
+ /**
21
+ * Start Section 0 TUI shell
22
+ *
23
+ * Rules:
24
+ * - One render loop only (or none for Section 0 - just render once)
25
+ * - No console.log() while TUI is active
26
+ * - Exit must always restore terminal state
27
+ */
28
+ export async function startSection0() {
29
+ // Suppress console.log during TUI
30
+ console.log = () => { };
31
+ // Keep console.error for fatal errors (but restore before using)
32
+ let consoleErrorRestored = false;
33
+ const restoreConsoleError = () => {
34
+ if (!consoleErrorRestored) {
35
+ console.error = originalConsoleError;
36
+ consoleErrorRestored = true;
37
+ }
38
+ };
39
+ try {
40
+ // Create screen (singleton, guarded)
41
+ const screen = createScreen();
42
+ // Initialize lifecycle (exit handlers, guarded against duplicates)
43
+ initializeLifecycle(screen);
44
+ // Create a single centered text node
45
+ const message = '4Runr OS V3 — Shell OK (press q to exit)';
46
+ const textNode = blessedLib.box({
47
+ top: Math.floor((screen.height - 1) / 2),
48
+ left: Math.floor((screen.width - message.length) / 2),
49
+ width: message.length,
50
+ height: 1,
51
+ content: message,
52
+ tags: true,
53
+ style: {
54
+ fg: 'cyan',
55
+ },
56
+ });
57
+ screen.append(textNode);
58
+ // Single render (no loop for Section 0)
59
+ screen.render();
60
+ // Restore console.log after successful start (for future use if needed)
61
+ // But keep it suppressed during TUI operation
62
+ // console.log = originalConsoleLog; // Commented: keep suppressed during TUI
63
+ }
64
+ catch (error) {
65
+ // Restore console.error for error output
66
+ restoreConsoleError();
67
+ console.error('FATAL: Section 0 TUI failed to start:', error);
68
+ // Ensure terminal is restored even on error
69
+ if (process.stdout.isTTY) {
70
+ process.stdout.write('\x1b[?25h'); // Show cursor
71
+ process.stdout.write('\x1b[?1049l'); // Exit alternate screen
72
+ }
73
+ process.exit(1);
74
+ }
75
+ }
76
+ // If run directly (not imported), start the TUI
77
+ // Simple check: if this file is executed directly, start the TUI
78
+ const scriptPath = process.argv[1]?.replace(/\\/g, '/') || '';
79
+ const isMainModule = scriptPath.includes('section0/index.js') ||
80
+ scriptPath.includes('section0/index.ts') ||
81
+ import.meta.url.includes('section0/index');
82
+ if (isMainModule) {
83
+ startSection0().catch((error) => {
84
+ console.error('FATAL: Section 0 failed:', error);
85
+ process.exit(1);
86
+ });
87
+ }
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/v3/section0/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Section 0 - Create Screen
3
+ *
4
+ * Responsibilities:
5
+ * - Initialize neo-blessed screen cleanly
6
+ * - Ensure only one screen instance exists
7
+ * - Configure screen with proper settings
8
+ */
9
+ import type { Widgets } from 'neo-blessed';
10
+ /**
11
+ * Create or get the singleton screen instance
12
+ *
13
+ * Rules:
14
+ * - Must only create one screen instance
15
+ * - If screen already exists, return it (do not create another)
16
+ * - Configure with smartCSR, fullUnicode, dockBorders, warnings: false
17
+ */
18
+ export declare function createScreen(): Widgets.Screen;
19
+ /**
20
+ * Get the current screen instance (may be null)
21
+ */
22
+ export declare function getScreen(): Widgets.Screen | null;
23
+ /**
24
+ * Clear the screen instance reference (for testing/cleanup)
25
+ */
26
+ export declare function clearScreen(): void;
27
+ //# sourceMappingURL=createScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/section0/runtime/createScreen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAAC,MAAM,CAyB7C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Section 0 - Create Screen
3
+ *
4
+ * Responsibilities:
5
+ * - Initialize neo-blessed screen cleanly
6
+ * - Ensure only one screen instance exists
7
+ * - Configure screen with proper settings
8
+ */
9
+ import blessed from 'neo-blessed';
10
+ const blessedLib = blessed;
11
+ let screenInstance = null;
12
+ /**
13
+ * Create or get the singleton screen instance
14
+ *
15
+ * Rules:
16
+ * - Must only create one screen instance
17
+ * - If screen already exists, return it (do not create another)
18
+ * - Configure with smartCSR, fullUnicode, dockBorders, warnings: false
19
+ */
20
+ export function createScreen() {
21
+ if (screenInstance) {
22
+ return screenInstance;
23
+ }
24
+ screenInstance = blessedLib.screen({
25
+ smartCSR: true,
26
+ fullUnicode: true,
27
+ dockBorders: true,
28
+ warnings: false,
29
+ title: '4Runr OS (Terminal UI V3)',
30
+ });
31
+ if (!screenInstance) {
32
+ throw new Error('Failed to create blessed screen');
33
+ }
34
+ // Hide cursor on start (will be restored on exit)
35
+ if (screenInstance.program && screenInstance.program.hideCursor) {
36
+ screenInstance.program.hideCursor();
37
+ }
38
+ else if (process.stdout.isTTY) {
39
+ process.stdout.write('\x1b[?25l'); // ANSI hide cursor
40
+ }
41
+ return screenInstance;
42
+ }
43
+ /**
44
+ * Get the current screen instance (may be null)
45
+ */
46
+ export function getScreen() {
47
+ return screenInstance;
48
+ }
49
+ /**
50
+ * Clear the screen instance reference (for testing/cleanup)
51
+ */
52
+ export function clearScreen() {
53
+ screenInstance = null;
54
+ }
55
+ //# sourceMappingURL=createScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createScreen.js","sourceRoot":"","sources":["../../../../../src/ui/v3/section0/runtime/createScreen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,OAAO,MAAM,aAAa,CAAC;AAGlC,MAAM,UAAU,GAAG,OAAc,CAAC;AAElC,IAAI,cAAc,GAA0B,IAAI,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,2BAA2B;KACnC,CAAmB,CAAC;IAErB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,kDAAkD;IAClD,IAAK,cAAsB,CAAC,OAAO,IAAK,cAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACjF,cAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,mBAAmB;IACxD,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Section 0 - Lifecycle Management
3
+ *
4
+ * Responsibilities:
5
+ * - Attach exit handlers (single registration, guarded)
6
+ * - Implement safe shutdown that always restores terminal
7
+ * - Track handler attachment to prevent duplicates
8
+ */
9
+ import type { Widgets } from 'neo-blessed';
10
+ /**
11
+ * Attach exit handlers to screen
12
+ *
13
+ * Rules:
14
+ * - Must attach handlers exactly once (protected by exitHandlersAttached guard)
15
+ * - If called again, must no-op
16
+ * - Registers: q → exit, C-c → exit, escape → exit (optional)
17
+ */
18
+ export declare function attachExitHandlers(screen: Widgets.Screen): void;
19
+ /**
20
+ * Attach process-level exit handlers
21
+ *
22
+ * Rules:
23
+ * - Must attach handlers exactly once (protected by exitHandlersAttached guard)
24
+ * - If called again, must no-op
25
+ * - Registers: SIGINT, SIGTERM
26
+ * - Tracks listeners for cleanup
27
+ */
28
+ export declare function attachProcessExitHandlers(): void;
29
+ /**
30
+ * Initialize all exit handlers (screen + process)
31
+ *
32
+ * This is the main entry point for lifecycle setup.
33
+ */
34
+ export declare function initializeLifecycle(screen: Widgets.Screen): void;
35
+ /**
36
+ * Get internal debug counters (for checkpoint verification)
37
+ *
38
+ * These counters verify:
39
+ * - Exit handlers attach exactly once
40
+ * - Shutdown runs exactly once
41
+ *
42
+ * Example expectation: Pressing q triggers exactly one shutdown path.
43
+ */
44
+ export declare function getDebugCounters(): {
45
+ shutdownCallCount: number;
46
+ screenHandlerAttachmentCount: number;
47
+ processHandlerAttachmentCount: number;
48
+ };
49
+ /**
50
+ * Reset lifecycle state (for testing only)
51
+ */
52
+ export declare function resetLifecycle(): void;
53
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/section0/runtime/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAmF3C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAsB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAuBhD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4BAA4B,EAAE,MAAM,CAAC;IACrC,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAMA;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAQrC"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Section 0 - Lifecycle Management
3
+ *
4
+ * Responsibilities:
5
+ * - Attach exit handlers (single registration, guarded)
6
+ * - Implement safe shutdown that always restores terminal
7
+ * - Track handler attachment to prevent duplicates
8
+ */
9
+ import { getScreen } from './createScreen.js';
10
+ // Guards to prevent duplicate handler attachment
11
+ let screenHandlersAttached = false;
12
+ let processHandlersAttached = false;
13
+ let shuttingDown = false;
14
+ // Internal debug counters (NOT console.log - for checkpoint verification)
15
+ // These track handler attachment and shutdown calls
16
+ let shutdownCallCount = 0;
17
+ let screenHandlerAttachmentCount = 0;
18
+ let processHandlerAttachmentCount = 0;
19
+ // Track attached process listeners for cleanup
20
+ const attachedProcessListeners = [];
21
+ /**
22
+ * Shutdown function that always restores terminal state
23
+ *
24
+ * Rules:
25
+ * - Must run exactly once (protected by shuttingDown guard)
26
+ * - Steps (in order):
27
+ * 1. screen.program.showCursor()
28
+ * 2. screen.destroy() (restores terminal modes)
29
+ * 3. Remove any process listeners we attached
30
+ * 4. process.exit(0)
31
+ */
32
+ function shutdown(reason) {
33
+ // Internal debug counter
34
+ shutdownCallCount++;
35
+ // Guard: ensure shutdown runs exactly once
36
+ if (shuttingDown) {
37
+ return;
38
+ }
39
+ shuttingDown = true;
40
+ const screen = getScreen();
41
+ if (screen) {
42
+ try {
43
+ // Step 1: Show cursor
44
+ if (screen.program && screen.program.showCursor) {
45
+ screen.program.showCursor();
46
+ }
47
+ else if (process.stdout.isTTY) {
48
+ process.stdout.write('\x1b[?25h'); // ANSI show cursor
49
+ }
50
+ // Step 2: Destroy screen (restores terminal modes)
51
+ screen.destroy();
52
+ }
53
+ catch (e) {
54
+ // Ignore destroy errors, but ensure cursor is shown
55
+ if (process.stdout.isTTY) {
56
+ process.stdout.write('\x1b[?25h');
57
+ process.stdout.write('\x1b[?1049l'); // Exit alternate screen if needed
58
+ }
59
+ }
60
+ }
61
+ else {
62
+ // No screen, but ensure cursor is visible
63
+ if (process.stdout.isTTY) {
64
+ process.stdout.write('\x1b[?25h');
65
+ process.stdout.write('\x1b[?1049l');
66
+ }
67
+ }
68
+ // Step 3: Remove process listeners we attached
69
+ for (const { event, listener } of attachedProcessListeners) {
70
+ try {
71
+ process.removeListener(event, listener);
72
+ }
73
+ catch (e) {
74
+ // Ignore removal errors
75
+ }
76
+ }
77
+ attachedProcessListeners.length = 0;
78
+ // Step 4: Exit
79
+ process.exit(0);
80
+ }
81
+ /**
82
+ * Attach exit handlers to screen
83
+ *
84
+ * Rules:
85
+ * - Must attach handlers exactly once (protected by exitHandlersAttached guard)
86
+ * - If called again, must no-op
87
+ * - Registers: q → exit, C-c → exit, escape → exit (optional)
88
+ */
89
+ export function attachExitHandlers(screen) {
90
+ // Guard: ensure handlers are attached exactly once
91
+ if (screenHandlersAttached) {
92
+ return;
93
+ }
94
+ screenHandlersAttached = true;
95
+ screenHandlerAttachmentCount++;
96
+ // q → exit
97
+ screen.key(['q', 'Q'], () => {
98
+ shutdown('q pressed');
99
+ });
100
+ // C-c → exit
101
+ screen.key(['C-c'], () => {
102
+ shutdown('Ctrl+C pressed');
103
+ });
104
+ // escape → exit (optional, as requested)
105
+ screen.key(['escape'], () => {
106
+ shutdown('Escape pressed');
107
+ });
108
+ }
109
+ /**
110
+ * Attach process-level exit handlers
111
+ *
112
+ * Rules:
113
+ * - Must attach handlers exactly once (protected by exitHandlersAttached guard)
114
+ * - If called again, must no-op
115
+ * - Registers: SIGINT, SIGTERM
116
+ * - Tracks listeners for cleanup
117
+ */
118
+ export function attachProcessExitHandlers() {
119
+ // Guard: ensure handlers are attached exactly once
120
+ if (processHandlersAttached) {
121
+ return;
122
+ }
123
+ processHandlersAttached = true;
124
+ processHandlerAttachmentCount++;
125
+ const sigintHandler = () => {
126
+ shutdown('SIGINT received');
127
+ };
128
+ const sigtermHandler = () => {
129
+ shutdown('SIGTERM received');
130
+ };
131
+ process.on('SIGINT', sigintHandler);
132
+ process.on('SIGTERM', sigtermHandler);
133
+ attachedProcessListeners.push({ event: 'SIGINT', listener: sigintHandler }, { event: 'SIGTERM', listener: sigtermHandler });
134
+ }
135
+ /**
136
+ * Initialize all exit handlers (screen + process)
137
+ *
138
+ * This is the main entry point for lifecycle setup.
139
+ */
140
+ export function initializeLifecycle(screen) {
141
+ attachExitHandlers(screen);
142
+ attachProcessExitHandlers();
143
+ }
144
+ /**
145
+ * Get internal debug counters (for checkpoint verification)
146
+ *
147
+ * These counters verify:
148
+ * - Exit handlers attach exactly once
149
+ * - Shutdown runs exactly once
150
+ *
151
+ * Example expectation: Pressing q triggers exactly one shutdown path.
152
+ */
153
+ export function getDebugCounters() {
154
+ return {
155
+ shutdownCallCount,
156
+ screenHandlerAttachmentCount,
157
+ processHandlerAttachmentCount,
158
+ };
159
+ }
160
+ /**
161
+ * Reset lifecycle state (for testing only)
162
+ */
163
+ export function resetLifecycle() {
164
+ screenHandlersAttached = false;
165
+ processHandlersAttached = false;
166
+ shuttingDown = false;
167
+ attachedProcessListeners.length = 0;
168
+ shutdownCallCount = 0;
169
+ screenHandlerAttachmentCount = 0;
170
+ processHandlerAttachmentCount = 0;
171
+ }
172
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../../../src/ui/v3/section0/runtime/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"phase1Runtime.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1Runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqPH;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAqnBxD"}
1
+ {"version":3,"file":"phase1Runtime.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1Runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuPH;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAutBxD"}
@@ -28,9 +28,7 @@ import { renderResourcesPanel } from './panels/ResourcesPanel.js';
28
28
  import { isAvailable, isUnavailable } from '../state/value.js';
29
29
  let screen = null;
30
30
  let panels = [];
31
- let commandLineBox = null; // Container box
32
- let commandLinePrompt = null; // Prompt label
33
- let commandLine = null; // The actual textbox
31
+ let commandLine = null;
34
32
  let statusStrip = null;
35
33
  let isCleaningUp = false;
36
34
  const PROMPT = '4runr> '; // Non-editable prompt prefix
@@ -114,6 +112,10 @@ function updateResourcesPanel() {
114
112
  resourcesPanel.setContent(paddingTop + content);
115
113
  }
116
114
  function cleanupAndExit(code = 0) {
115
+ // Clean up prompt protection interval if it exists
116
+ if (commandLine && commandLine._promptProtectionInterval) {
117
+ clearInterval(commandLine._promptProtectionInterval);
118
+ }
117
119
  if (isCleaningUp)
118
120
  return;
119
121
  isCleaningUp = true;
@@ -237,7 +239,28 @@ export async function startPhase1Runtime() {
237
239
  sendFocus: false,
238
240
  warnings: false,
239
241
  });
240
- // Don't hide cursor - blessed textbox needs it for proper positioning
242
+ // CRITICAL: Hide terminal cursor completely - we'll use only visual cursor character
243
+ // This must be done persistently, as blessed may try to show it during renders
244
+ const hideCursor = () => {
245
+ if (screen.program && screen.program.hideCursor) {
246
+ screen.program.hideCursor();
247
+ }
248
+ // Also use ANSI escape code as backup
249
+ if (process.stdout.isTTY) {
250
+ process.stdout.write('\x1b[?25l'); // Hide cursor
251
+ }
252
+ };
253
+ // Hide cursor immediately
254
+ hideCursor();
255
+ // CRITICAL: Hook into render to keep cursor hidden after every render
256
+ // Blessed may try to show cursor during render, so we force hide it after
257
+ const originalRender = screen.render.bind(screen);
258
+ screen.render = () => {
259
+ const result = originalRender();
260
+ // Force hide cursor after every render
261
+ hideCursor();
262
+ return result;
263
+ };
241
264
  if (!screen) {
242
265
  throw new Error('Failed to create screen');
243
266
  }
@@ -318,15 +341,11 @@ export async function startPhase1Runtime() {
318
341
  input: false,
319
342
  });
320
343
  statusStrip.setLabel(' {grey-fg}STATUS{/}');
321
- // Create command line using proper blessed structure:
322
- // 1. Container box
323
- // 2. Prompt label (read-only text)
324
- // 3. Textbox positioned after prompt
344
+ // Create command line (right side of bottom bar)
345
+ // CRITICAL: Use a plain box instead of textbox to avoid blessed's input duplication bugs
325
346
  const commandWidth = layout.commandLine.width - statusWidth - 1; // Remaining width
326
- const PROMPT_LEN = PROMPT.length;
327
- // Container box for command line
328
- commandLineBox = blessedLib.box({
329
- parent: screen,
347
+ let commandInputValue = PROMPT; // Track input value manually
348
+ commandLine = blessedLib.box({
330
349
  top: layout.commandLine.top,
331
350
  left: layout.commandLine.left + statusWidth + 1,
332
351
  width: commandWidth,
@@ -334,55 +353,157 @@ export async function startPhase1Runtime() {
334
353
  border: {
335
354
  type: 'line',
336
355
  },
337
- label: ' {cyan-fg}COMMAND LINE{/}',
338
- padding: {
339
- left: 1,
340
- right: 1,
341
- top: 0,
342
- bottom: 0,
343
- },
356
+ tags: true,
357
+ content: PROMPT,
344
358
  style: {
345
359
  border: {
346
360
  fg: 'cyan',
347
361
  },
362
+ fg: 'white',
348
363
  focus: {
349
364
  border: {
350
365
  fg: 'green',
351
366
  },
367
+ fg: 'white',
352
368
  },
353
369
  },
354
- });
355
- // Prompt label (read-only text, no tags to avoid character counting issues)
356
- commandLinePrompt = blessedLib.text({
357
- parent: commandLineBox,
358
- top: 0,
359
- left: 0,
360
- height: 1,
361
- width: PROMPT_LEN,
362
- content: PROMPT, // Plain text, no tags
363
- style: {
364
- fg: 'white',
365
- },
366
- });
367
- // Actual textbox for input (positioned after prompt)
368
- commandLine = blessedLib.textbox({
369
- parent: commandLineBox,
370
- top: 0,
371
- left: PROMPT_LEN,
372
- height: 1,
373
- width: `100%-${PROMPT_LEN}`,
374
- inputOnFocus: true,
375
- keys: true,
376
- mouse: false, // Disable mouse to prevent focus issues
377
- padding: 0,
378
- style: {
379
- fg: 'white',
380
- },
381
- // CRITICAL: Prevent textbox from losing focus
382
- alwaysFocus: true,
370
+ // Make it focusable but NOT use blessed's input handling
371
+ focusable: true,
372
+ keyable: true,
373
+ input: false, // CRITICAL: Disable blessed's input handling
374
+ keys: false, // We'll handle keys manually
375
+ mouse: false,
376
+ // CRITICAL: Position cursor at 0,0 relative to the box (inside the border)
377
+ scrollable: false,
378
+ alwaysScroll: false,
383
379
  });
384
380
  if (!commandLine)
385
381
  throw new Error('Command line not initialized');
382
+ commandLine.setLabel(' {cyan-fg}COMMAND LINE{/}');
383
+ // Manual input handling - bypass blessed textbox completely
384
+ let isProcessingKey = false;
385
+ // Make updateCommandLineDisplay a variable so we can update it on resize
386
+ // Add a visible cursor character at the end of the input
387
+ let updateCommandLineDisplay = () => {
388
+ if (commandLine && screen) {
389
+ // Append a cursor character to show where typing will appear
390
+ // Use a block cursor (inverted colors) that appears inside the box on the first line
391
+ // The cursor character is part of the content string, so it's automatically aligned
392
+ const cursorChar = '{inverse} {/}'; // Inverted space (block cursor)
393
+ const displayValue = commandInputValue + cursorChar;
394
+ commandLine.setContent(displayValue);
395
+ // Render will automatically hide cursor via our hook above
396
+ screen.render();
397
+ }
398
+ };
399
+ // Handle ALL keyboard input manually at screen level
400
+ // This gives us complete control and prevents duplicates
401
+ // CRITICAL: Only bind this ONCE - never rebind on resize
402
+ if (screen._keypressHandlerBound) {
403
+ console.error('[BUG] Screen keypress handler already bound!');
404
+ }
405
+ else {
406
+ screen._keypressHandlerBound = true;
407
+ console.log('[DEBUG] Binding screen keypress handler (should see this ONCE)');
408
+ }
409
+ screen.on('keypress', (ch, key) => {
410
+ // Only process if command line is focused
411
+ if (screen?.focused !== commandLine)
412
+ return;
413
+ // Prevent duplicate processing
414
+ if (isProcessingKey)
415
+ return;
416
+ isProcessingKey = true;
417
+ try {
418
+ // Handle special keys
419
+ if (key) {
420
+ if (key.name === 'enter') {
421
+ // Submit command - directly call the submit handler logic
422
+ const value = commandInputValue;
423
+ const commandPart = value.startsWith(PROMPT)
424
+ ? value.slice(PROMPT.length).trim()
425
+ : value.trim();
426
+ if (commandPart) {
427
+ // Emit submit event (compatible with existing code)
428
+ commandLine.emit('submit', value);
429
+ }
430
+ else {
431
+ // Empty command - just reset
432
+ commandInputValue = PROMPT;
433
+ updateCommandLineDisplay();
434
+ }
435
+ return;
436
+ }
437
+ if (key.name === 'backspace' || key.name === 'delete') {
438
+ // Prevent deleting prompt
439
+ if (commandInputValue.length > PROMPT.length) {
440
+ commandInputValue = commandInputValue.slice(0, -1);
441
+ updateCommandLineDisplay();
442
+ }
443
+ return;
444
+ }
445
+ if (key.name === 'home') {
446
+ // Move cursor to after prompt (we don't have cursor, so just ignore)
447
+ return;
448
+ }
449
+ if (key.name === 'up') {
450
+ // History navigation - trigger the handler
451
+ if (commandHistory.length === 0)
452
+ return;
453
+ if (historyIndex === -1) {
454
+ historyIndex = commandHistory.length - 1;
455
+ }
456
+ else if (historyIndex > 0) {
457
+ historyIndex--;
458
+ }
459
+ if (historyIndex >= 0 && historyIndex < commandHistory.length) {
460
+ const historyCmd = commandHistory[historyIndex];
461
+ commandInputValue = `${PROMPT}${historyCmd}`;
462
+ currentCommandValue = commandInputValue;
463
+ updateCommandLineDisplay();
464
+ }
465
+ return;
466
+ }
467
+ if (key.name === 'down') {
468
+ // History navigation - trigger the handler
469
+ if (historyIndex === -1)
470
+ return;
471
+ if (historyIndex < commandHistory.length - 1) {
472
+ historyIndex++;
473
+ const historyCmd = commandHistory[historyIndex];
474
+ commandInputValue = `${PROMPT}${historyCmd}`;
475
+ currentCommandValue = commandInputValue;
476
+ }
477
+ else {
478
+ historyIndex = -1;
479
+ commandInputValue = PROMPT;
480
+ currentCommandValue = PROMPT;
481
+ }
482
+ updateCommandLineDisplay();
483
+ return;
484
+ }
485
+ if (key.name === 'escape') {
486
+ commandInputValue = PROMPT;
487
+ updateCommandLineDisplay();
488
+ return;
489
+ }
490
+ }
491
+ // Handle printable characters
492
+ if (ch && ch.length === 1 && ch >= ' ' && ch <= '~') {
493
+ // Append character
494
+ commandInputValue += ch;
495
+ updateCommandLineDisplay();
496
+ }
497
+ }
498
+ finally {
499
+ // Reset flag after a short delay to allow natural typing
500
+ setTimeout(() => {
501
+ isProcessingKey = false;
502
+ }, 10);
503
+ }
504
+ });
505
+ // Prompt protection is now handled in the manual keypress handler above
506
+ // No need for separate protection since we control all input
386
507
  // Handle command submission (Phase 3: EventBus)
387
508
  // CRITICAL: Bind handlers exactly ONCE - never in render loops or intervals
388
509
  if (!commandLine)
@@ -413,8 +534,8 @@ export async function startPhase1Runtime() {
413
534
  return;
414
535
  }
415
536
  // Add command to history (S0.4)
416
- // Value is already just the command part (no prompt - textbox doesn't include it)
417
- const commandPart = value.trim();
537
+ // Extract just the command part (remove prompt if present)
538
+ const commandPart = value.startsWith(PROMPT) ? value.slice(PROMPT.length).trim() : value.trim();
418
539
  if (commandPart) {
419
540
  commandHistory.push(commandPart);
420
541
  // Keep last 100 commands
@@ -438,11 +559,10 @@ export async function startPhase1Runtime() {
438
559
  cleanupAndExit(0);
439
560
  return;
440
561
  }
441
- // Clear input after submission
442
- if (commandLine) {
443
- commandLine.setValue('');
444
- commandLine.clearValue();
445
- }
562
+ // Clear input and restore prompt after submission
563
+ currentCommandValue = PROMPT;
564
+ commandInputValue = PROMPT;
565
+ updateCommandLineDisplay();
446
566
  // S0.1: Reassert focus after command to keep cursor in command line
447
567
  reassertFocus();
448
568
  // Update operations panel and rerender
@@ -457,11 +577,15 @@ export async function startPhase1Runtime() {
457
577
  }
458
578
  });
459
579
  // S0.4: Command history navigation (Up/Down)
460
- // CRITICAL: Only bind on textbox, NOT on screen - screen handlers cause duplicate input
461
- commandLine.key('up', () => {
580
+ // These are bound once at startup, never in intervals
581
+ // Note: Up/Down are handled in the manual keypress handler, but we keep these for compatibility
582
+ screen.key('up', () => {
583
+ if (screen?.focused !== commandLine)
584
+ return;
462
585
  if (commandHistory.length === 0)
463
586
  return;
464
587
  if (historyIndex === -1) {
588
+ // Start browsing from most recent
465
589
  historyIndex = commandHistory.length - 1;
466
590
  }
467
591
  else if (historyIndex > 0) {
@@ -469,7 +593,10 @@ export async function startPhase1Runtime() {
469
593
  }
470
594
  if (historyIndex >= 0 && historyIndex < commandHistory.length) {
471
595
  const historyCmd = commandHistory[historyIndex];
472
- commandLine.setValue(historyCmd);
596
+ const fullValue = `${PROMPT}${historyCmd}`;
597
+ commandInputValue = fullValue;
598
+ currentCommandValue = fullValue;
599
+ updateCommandLineDisplay();
473
600
  }
474
601
  });
475
602
  commandLine.key('down', () => {
@@ -478,11 +605,17 @@ export async function startPhase1Runtime() {
478
605
  if (historyIndex < commandHistory.length - 1) {
479
606
  historyIndex++;
480
607
  const historyCmd = commandHistory[historyIndex];
481
- commandLine.setValue(historyCmd);
608
+ const fullValue = `${PROMPT}${historyCmd}`;
609
+ commandInputValue = fullValue;
610
+ currentCommandValue = fullValue;
611
+ updateCommandLineDisplay();
482
612
  }
483
613
  else {
614
+ // Reached end of history - clear input (but keep prompt)
484
615
  historyIndex = -1;
485
- commandLine.setValue('');
616
+ commandInputValue = PROMPT;
617
+ currentCommandValue = PROMPT;
618
+ updateCommandLineDisplay();
486
619
  }
487
620
  });
488
621
  // S0.4: Esc clears input (handled in manual keypress handler above)
@@ -524,8 +657,8 @@ export async function startPhase1Runtime() {
524
657
  panels.forEach(panel => currentScreen.remove(panel));
525
658
  if (statusStrip)
526
659
  currentScreen.remove(statusStrip);
527
- if (commandLineBox)
528
- currentScreen.remove(commandLineBox);
660
+ if (commandLine)
661
+ currentScreen.remove(commandLine);
529
662
  // Clear arrays
530
663
  panels = [];
531
664
  // Recreate with new layout
@@ -559,95 +692,61 @@ export async function startPhase1Runtime() {
559
692
  if (!statusStrip)
560
693
  throw new Error('Status strip not initialized');
561
694
  statusStrip.setLabel(' {grey-fg}STATUS{/}');
562
- // Recreate command line using proper blessed structure
695
+ // Recreate command line using box (not textbox) to match initial setup
696
+ // CRITICAL: Use box, not textbox, to avoid duplicate input handling
563
697
  const newCommandWidth = newLayout.commandLine.width - newStatusWidth - 1;
564
- const PROMPT_LEN = PROMPT.length;
565
- // Preserve current input value
566
- const currentValue = commandLine ? commandLine.getValue() : '';
567
- // Container box
568
- commandLineBox = blessedLib.box({
569
- parent: currentScreen,
698
+ commandLine = blessedLib.box({
570
699
  top: newLayout.commandLine.top,
571
700
  left: newLayout.commandLine.left + newStatusWidth + 1,
572
701
  width: newCommandWidth,
573
702
  height: newLayout.commandLine.height,
574
703
  border: { type: 'line' },
575
- label: ' {cyan-fg}COMMAND LINE{/}',
576
- padding: { left: 1, right: 1, top: 0, bottom: 0 },
704
+ tags: true,
705
+ content: commandInputValue || PROMPT, // Preserve current input value
577
706
  style: {
578
707
  border: { fg: 'cyan' },
579
- focus: { border: { fg: 'green' } },
708
+ fg: 'white',
709
+ focus: { border: { fg: 'green' }, fg: 'white' },
580
710
  },
581
- });
582
- // Prompt label
583
- commandLinePrompt = blessedLib.text({
584
- parent: commandLineBox,
585
- top: 0,
586
- left: 0,
587
- height: 1,
588
- width: PROMPT_LEN,
589
- content: PROMPT,
590
- style: { fg: 'white' },
591
- });
592
- // Textbox
593
- commandLine = blessedLib.textbox({
594
- parent: commandLineBox,
595
- top: 0,
596
- left: PROMPT_LEN,
597
- height: 1,
598
- width: `100%-${PROMPT_LEN}`,
599
- inputOnFocus: true,
600
- keys: true,
601
- mouse: true,
602
- padding: 0,
603
- style: { fg: 'white' },
604
- });
711
+ focusable: true,
712
+ keyable: true,
713
+ input: false, // CRITICAL: Disable blessed's input handling
714
+ keys: false, // We handle keys manually
715
+ mouse: false,
716
+ }); // Cast for compatibility
605
717
  if (!commandLine)
606
718
  throw new Error('Command line not initialized');
607
- // Restore value
608
- if (currentValue) {
609
- commandLine.setValue(currentValue);
610
- }
611
- // Rebind handlers (they're on the textbox, not screen)
612
- commandLine.on('submit', (value) => {
613
- // This will be handled by the existing handler
614
- commandLine.emit('submit', value);
615
- });
616
- commandLine.key('up', () => {
617
- if (commandHistory.length === 0)
618
- return;
619
- if (historyIndex === -1) {
620
- historyIndex = commandHistory.length - 1;
621
- }
622
- else if (historyIndex > 0) {
623
- historyIndex--;
624
- }
625
- if (historyIndex >= 0 && historyIndex < commandHistory.length) {
626
- commandLine.setValue(commandHistory[historyIndex]);
627
- }
628
- });
629
- commandLine.key('down', () => {
630
- if (historyIndex === -1)
631
- return;
632
- if (historyIndex < commandHistory.length - 1) {
633
- historyIndex++;
634
- commandLine.setValue(commandHistory[historyIndex]);
719
+ commandLine.setLabel(' {cyan-fg}COMMAND LINE{/}');
720
+ // CRITICAL: Do NOT rebind screen keypress handler - it's already bound once
721
+ // Do NOT rebind submit/key handlers - they're already on the screen
722
+ // Just update the display function to use the new widget
723
+ const updateCommandLineDisplayResize = () => {
724
+ if (commandLine) {
725
+ commandLine.setContent(commandInputValue);
726
+ currentScreen?.render();
635
727
  }
636
- else {
637
- historyIndex = -1;
638
- commandLine.setValue('');
728
+ };
729
+ // Update the global updateCommandLineDisplay function to use new widget
730
+ updateCommandLineDisplay = () => {
731
+ if (commandLine && currentScreen) {
732
+ // Append a cursor character to show where typing will appear
733
+ // Use a block cursor (inverted colors) that appears inside the box on the first line
734
+ // The cursor character is part of the content string, so it's automatically aligned
735
+ const cursorChar = '{inverse} {/}'; // Inverted space (block cursor)
736
+ const displayValue = commandInputValue + cursorChar;
737
+ commandLine.setContent(displayValue);
738
+ // Render will automatically hide cursor via our hook above
739
+ currentScreen.render();
639
740
  }
640
- });
641
- commandLine.key('escape', () => {
642
- commandLine.setValue('');
643
- historyIndex = -1;
644
- });
741
+ };
742
+ // Update display with preserved value
743
+ updateCommandLineDisplay();
645
744
  // Append all widgets
646
745
  panels.forEach(panel => currentScreen.append(panel));
647
746
  if (statusStrip)
648
747
  currentScreen.append(statusStrip);
649
- if (commandLineBox) {
650
- currentScreen.append(commandLineBox);
748
+ if (commandLine) {
749
+ currentScreen.append(commandLine);
651
750
  // S0.1 & S0.4: Force focus back to command line
652
751
  reassertFocus();
653
752
  }
@@ -669,11 +768,11 @@ export async function startPhase1Runtime() {
669
768
  screen?.render();
670
769
  });
671
770
  }
672
- // CRITICAL: Append command line container FIRST so it gets focus by default
771
+ // CRITICAL: Append command line FIRST so it gets focus by default
673
772
  if (!screen)
674
773
  throw new Error('Screen not initialized');
675
- if (commandLineBox) {
676
- screen.append(commandLineBox);
774
+ if (commandLine) {
775
+ screen.append(commandLine);
677
776
  // ONLY the command line should be focusable and receive input
678
777
  commandLine.focusable = true;
679
778
  commandLine.keyable = true;
@@ -709,24 +808,17 @@ export async function startPhase1Runtime() {
709
808
  // S0.4: Prevent focus from entering panels - hard lock
710
809
  // Set screen to only allow focus on command line
711
810
  const focusScreen = screen;
712
- if (focusScreen && commandLine) {
713
- // CRITICAL: Lock focus to command line - redirect any focus changes
811
+ if (focusScreen) {
714
812
  focusScreen.on('focus', (widget) => {
715
- // If focus tries to go anywhere except command line, redirect it
716
- if (widget && widget !== commandLine && widget !== commandLineBox && widget !== commandLinePrompt) {
717
- setTimeout(() => {
718
- reassertFocus();
719
- }, 0);
813
+ // If focus tries to go to a panel, redirect to command line
814
+ if (widget && typeof widget !== 'string' && panels.includes(widget)) {
815
+ reassertFocus();
720
816
  }
721
817
  });
722
818
  // S0.4: Mouse clicks do nothing except refocus input
723
819
  focusScreen.on('click', () => {
724
820
  reassertFocus();
725
821
  });
726
- // CRITICAL: Prevent Tab from moving focus
727
- focusScreen.key('tab', () => {
728
- reassertFocus();
729
- });
730
822
  }
731
823
  // Update operations panel with feed content
732
824
  updateOperationsPanel();
@@ -761,7 +853,10 @@ export async function startPhase1Runtime() {
761
853
  // Error is already logged if DEBUG_NO_TUI=1
762
854
  }
763
855
  // Reassert focus periodically to keep cursor in command line
764
- reassertFocus();
856
+ // But only if user isn't actively typing (check if we're processing a key)
857
+ if (!isProcessingKey) {
858
+ reassertFocus();
859
+ }
765
860
  screen?.render();
766
861
  }, 1500);
767
862
  // Store interval for cleanup
@@ -1 +1 @@
1
- {"version":3,"file":"phase1Runtime.js","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1Runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase1Runtime.js","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1Runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "1.0.78",
3
+ "version": "1.0.80",
4
4
  "type": "module",
5
5
  "description": "4Runr AI Agent OS - Interactive terminal for managing AI agents",
6
6
  "main": "dist/index.js",