4runr-os 2.0.35 → 2.0.36
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/collectors/collector_feed.d.ts.map +1 -1
- package/dist/collectors/collector_feed.js +6 -1
- package/dist/collectors/collector_feed.js.map +1 -1
- package/dist/core/commandExecutor.d.ts +56 -0
- package/dist/core/commandExecutor.d.ts.map +1 -0
- package/dist/core/commandExecutor.js +161 -0
- package/dist/core/commandExecutor.js.map +1 -0
- package/dist/core/commandRegistry.d.ts +72 -0
- package/dist/core/commandRegistry.d.ts.map +1 -0
- package/dist/core/commandRegistry.js +53 -0
- package/dist/core/commandRegistry.js.map +1 -0
- package/dist/core/commands/size.d.ts +23 -0
- package/dist/core/commands/size.d.ts.map +1 -0
- package/dist/core/commands/size.js +211 -0
- package/dist/core/commands/size.js.map +1 -0
- package/dist/core/eventBus.d.ts +29 -14
- package/dist/core/eventBus.d.ts.map +1 -1
- package/dist/core/eventBus.js +56 -23
- package/dist/core/eventBus.js.map +1 -1
- package/dist/core/opEvent.d.ts +16 -0
- package/dist/core/opEvent.d.ts.map +1 -0
- package/dist/core/opEvent.js +8 -0
- package/dist/core/opEvent.js.map +1 -0
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/ui/v3/commands/commandEngine.js +16 -2
- package/dist/ui/v3/commands/commandEngine.js.map +1 -1
- package/dist/ui/v3/index.js +32 -11
- package/dist/ui/v3/index.js.map +1 -1
- package/dist/ui/v4/engine/renderFrame.d.ts +47 -0
- package/dist/ui/v4/engine/renderFrame.d.ts.map +1 -0
- package/dist/ui/v4/engine/renderFrame.js +653 -0
- package/dist/ui/v4/engine/renderFrame.js.map +1 -0
- package/dist/ui/v4/engine/resizeController.d.ts +48 -0
- package/dist/ui/v4/engine/resizeController.d.ts.map +1 -0
- package/dist/ui/v4/engine/resizeController.js +285 -0
- package/dist/ui/v4/engine/resizeController.js.map +1 -0
- package/dist/ui/v4/engine/safeViewport.d.ts +47 -0
- package/dist/ui/v4/engine/safeViewport.d.ts.map +1 -0
- package/dist/ui/v4/engine/safeViewport.js +123 -0
- package/dist/ui/v4/engine/safeViewport.js.map +1 -0
- package/dist/ui/v4/engine/terminalProfile.d.ts +56 -0
- package/dist/ui/v4/engine/terminalProfile.d.ts.map +1 -0
- package/dist/ui/v4/engine/terminalProfile.js +115 -0
- package/dist/ui/v4/engine/terminalProfile.js.map +1 -0
- package/dist/ui/v4/index.d.ts +28 -0
- package/dist/ui/v4/index.d.ts.map +1 -0
- package/dist/ui/v4/index.js +993 -0
- package/dist/ui/v4/index.js.map +1 -0
- package/dist/ui/v4/layout/layoutEngine.d.ts +62 -0
- package/dist/ui/v4/layout/layoutEngine.d.ts.map +1 -0
- package/dist/ui/v4/layout/layoutEngine.js +294 -0
- package/dist/ui/v4/layout/layoutEngine.js.map +1 -0
- package/dist/ui/v4/runtime/keepAlive.d.ts +21 -0
- package/dist/ui/v4/runtime/keepAlive.d.ts.map +1 -0
- package/dist/ui/v4/runtime/keepAlive.js +149 -0
- package/dist/ui/v4/runtime/keepAlive.js.map +1 -0
- package/dist/ui/v4/runtime/logger.d.ts +35 -0
- package/dist/ui/v4/runtime/logger.d.ts.map +1 -0
- package/dist/ui/v4/runtime/logger.js +109 -0
- package/dist/ui/v4/runtime/logger.js.map +1 -0
- package/dist/ui/v5/index.d.ts +24 -0
- package/dist/ui/v5/index.d.ts.map +1 -0
- package/dist/ui/v5/index.js +123 -0
- package/dist/ui/v5/index.js.map +1 -0
- package/dist/ui/v5/runtime/keepAlive.d.ts +37 -0
- package/dist/ui/v5/runtime/keepAlive.d.ts.map +1 -0
- package/dist/ui/v5/runtime/keepAlive.js +122 -0
- package/dist/ui/v5/runtime/keepAlive.js.map +1 -0
- package/dist/ui/v5/runtime/restoreTerminal.d.ts +34 -0
- package/dist/ui/v5/runtime/restoreTerminal.d.ts.map +1 -0
- package/dist/ui/v5/runtime/restoreTerminal.js +100 -0
- package/dist/ui/v5/runtime/restoreTerminal.js.map +1 -0
- package/dist/ui/v5/runtime/stdoutGuard.d.ts +42 -0
- package/dist/ui/v5/runtime/stdoutGuard.d.ts.map +1 -0
- package/dist/ui/v5/runtime/stdoutGuard.js +154 -0
- package/dist/ui/v5/runtime/stdoutGuard.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ⚠️ FROZEN: This file is part of V4 TUI which is FROZEN.
|
|
3
|
+
* DO NOT MODIFY. Development moved to V5.
|
|
4
|
+
* See FROZEN.md in v4 directory.
|
|
5
|
+
*
|
|
6
|
+
* Terminal Profile - Detects terminal capabilities and safe mode
|
|
7
|
+
*
|
|
8
|
+
* Safe mode is enabled when:
|
|
9
|
+
* - Terminal doesn't support Unicode
|
|
10
|
+
* - Terminal has very limited capabilities
|
|
11
|
+
* - Running in constrained environments (CI, etc.)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Get safe terminal dimensions
|
|
15
|
+
*
|
|
16
|
+
* safeCols = Math.max(1, screen.cols - 1)
|
|
17
|
+
* safeRows = screen.rows
|
|
18
|
+
*/
|
|
19
|
+
export function getSafeTerminalSize(screen) {
|
|
20
|
+
const screenCols = screen.cols || screen.width || screen.program?.cols || 80;
|
|
21
|
+
const screenRows = screen.rows || screen.height || screen.program?.rows || 24;
|
|
22
|
+
// A) Safe cols is at least 1 less than screen cols
|
|
23
|
+
const safeCols = Math.max(1, screenCols - 1);
|
|
24
|
+
const safeRows = screenRows;
|
|
25
|
+
return { cols: safeCols, rows: safeRows };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* C) Detect if terminal supports Unicode and if safe mode should be forced
|
|
29
|
+
*
|
|
30
|
+
* Detection rules:
|
|
31
|
+
* - TERM === "locale" (broken terminal)
|
|
32
|
+
* - TERM contains dumb, unknown
|
|
33
|
+
* - Running inside AWS web connect (SSH_CONNECTION + odd TERM combos)
|
|
34
|
+
* - TUI_SAFE === "1" or TUI_SAFE_MODE === "1" (manual override)
|
|
35
|
+
*/
|
|
36
|
+
function detectUnicodeSupport() {
|
|
37
|
+
// Check environment variables
|
|
38
|
+
const term = process.env.TERM || '';
|
|
39
|
+
const lang = process.env.LANG || '';
|
|
40
|
+
// C) Force safe mode if TERM is suspicious
|
|
41
|
+
const forceSafe = process.env.TUI_SAFE === '1' ||
|
|
42
|
+
process.env.TUI_SAFE_MODE === '1' ||
|
|
43
|
+
term === 'locale' || // Your case: TERM=locale is broken
|
|
44
|
+
/dumb|unknown/i.test(term);
|
|
45
|
+
if (forceSafe) {
|
|
46
|
+
return false; // Safe mode = no Unicode
|
|
47
|
+
}
|
|
48
|
+
// Common terminals that don't support Unicode well
|
|
49
|
+
const noUnicodeTerms = ['linux', 'vt100', 'vt220', 'ansi'];
|
|
50
|
+
if (noUnicodeTerms.some(t => term.toLowerCase().includes(t))) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
// Check LANG for UTF-8
|
|
54
|
+
if (lang.toLowerCase().includes('utf-8') || lang.toLowerCase().includes('utf8')) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
// Default to true for modern terminals
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get terminal profile
|
|
62
|
+
*/
|
|
63
|
+
export function getTerminalProfile(screen) {
|
|
64
|
+
const { cols: safeCols, rows: safeRows } = getSafeTerminalSize(screen);
|
|
65
|
+
// B) Detect safe mode
|
|
66
|
+
const forceSafeMode = process.env.TUI_SAFE_MODE === '1';
|
|
67
|
+
const supportsUnicode = detectUnicodeSupport() && !forceSafeMode;
|
|
68
|
+
const isSafeMode = !supportsUnicode || forceSafeMode;
|
|
69
|
+
return {
|
|
70
|
+
isSafeMode,
|
|
71
|
+
safeCols,
|
|
72
|
+
safeRows,
|
|
73
|
+
supportsUnicode: !isSafeMode, // false in safe mode
|
|
74
|
+
supportsBorders: true, // true but ASCII-only in safe mode
|
|
75
|
+
platform: process.platform,
|
|
76
|
+
term: process.env.TERM || 'unknown',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get ASCII border characters (for safe mode)
|
|
81
|
+
*/
|
|
82
|
+
export function getBorderChars(useAscii) {
|
|
83
|
+
if (useAscii) {
|
|
84
|
+
return {
|
|
85
|
+
horizontal: '-',
|
|
86
|
+
vertical: '|',
|
|
87
|
+
topLeft: '+',
|
|
88
|
+
topRight: '+',
|
|
89
|
+
bottomLeft: '+',
|
|
90
|
+
bottomRight: '+',
|
|
91
|
+
leftT: '+',
|
|
92
|
+
rightT: '+',
|
|
93
|
+
topT: '+',
|
|
94
|
+
bottomT: '+',
|
|
95
|
+
cross: '+',
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// Unicode borders (default)
|
|
100
|
+
return {
|
|
101
|
+
horizontal: '─',
|
|
102
|
+
vertical: '│',
|
|
103
|
+
topLeft: '┌',
|
|
104
|
+
topRight: '┐',
|
|
105
|
+
bottomLeft: '└',
|
|
106
|
+
bottomRight: '┘',
|
|
107
|
+
leftT: '├',
|
|
108
|
+
rightT: '┤',
|
|
109
|
+
topT: '┬',
|
|
110
|
+
bottomT: '┴',
|
|
111
|
+
cross: '┼',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=terminalProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminalProfile.js","sourceRoot":"","sources":["../../../../src/ui/v4/engine/terminalProfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* 4Runr Terminal UI V4 - Main Entry
|
|
4
|
+
*
|
|
5
|
+
* ⚠️ FROZEN STATUS ⚠️
|
|
6
|
+
*
|
|
7
|
+
* This version is FROZEN due to display issues.
|
|
8
|
+
* Development has moved to V5.
|
|
9
|
+
*
|
|
10
|
+
* DO NOT MODIFY THIS CODE.
|
|
11
|
+
*
|
|
12
|
+
* Phase 2: Bulletproof Layout + Resize System
|
|
13
|
+
*
|
|
14
|
+
* Boot with: TUI_V4=1 (NOT RECOMMENDED)
|
|
15
|
+
*
|
|
16
|
+
* See FROZEN.md for details.
|
|
17
|
+
*/
|
|
18
|
+
declare global {
|
|
19
|
+
var __FOURRUNR_V4_TUI_RUNNING__: boolean | undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Start V4 TUI
|
|
23
|
+
*
|
|
24
|
+
* ⚠️ FROZEN: This version has display issues.
|
|
25
|
+
* Development moved to V5. Use at your own risk.
|
|
26
|
+
*/
|
|
27
|
+
export declare function startV4Shell(): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/v4/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AA4vBH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA8UlD"}
|