4runr-os 2.0.34 → 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.
Files changed (88) hide show
  1. package/dist/collectors/collector_feed.d.ts.map +1 -1
  2. package/dist/collectors/collector_feed.js +6 -1
  3. package/dist/collectors/collector_feed.js.map +1 -1
  4. package/dist/core/commandExecutor.d.ts +56 -0
  5. package/dist/core/commandExecutor.d.ts.map +1 -0
  6. package/dist/core/commandExecutor.js +161 -0
  7. package/dist/core/commandExecutor.js.map +1 -0
  8. package/dist/core/commandRegistry.d.ts +72 -0
  9. package/dist/core/commandRegistry.d.ts.map +1 -0
  10. package/dist/core/commandRegistry.js +53 -0
  11. package/dist/core/commandRegistry.js.map +1 -0
  12. package/dist/core/commands/size.d.ts +23 -0
  13. package/dist/core/commands/size.d.ts.map +1 -0
  14. package/dist/core/commands/size.js +211 -0
  15. package/dist/core/commands/size.js.map +1 -0
  16. package/dist/core/eventBus.d.ts +29 -14
  17. package/dist/core/eventBus.d.ts.map +1 -1
  18. package/dist/core/eventBus.js +56 -23
  19. package/dist/core/eventBus.js.map +1 -1
  20. package/dist/core/opEvent.d.ts +16 -0
  21. package/dist/core/opEvent.d.ts.map +1 -0
  22. package/dist/core/opEvent.js +8 -0
  23. package/dist/core/opEvent.js.map +1 -0
  24. package/dist/index.js +19 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/ui/v3/commands/commandEngine.js +73 -2
  27. package/dist/ui/v3/commands/commandEngine.js.map +1 -1
  28. package/dist/ui/v3/index.js +32 -11
  29. package/dist/ui/v3/index.js.map +1 -1
  30. package/dist/ui/v3/tui/geometry.d.ts.map +1 -1
  31. package/dist/ui/v3/tui/geometry.js +2 -7
  32. package/dist/ui/v3/tui/geometry.js.map +1 -1
  33. package/dist/ui/v3/ui/layout/phase1Layout.d.ts.map +1 -1
  34. package/dist/ui/v3/ui/layout/phase1Layout.js +15 -22
  35. package/dist/ui/v3/ui/layout/phase1Layout.js.map +1 -1
  36. package/dist/ui/v3/ui/phase1RuntimeClean.d.ts +8 -0
  37. package/dist/ui/v3/ui/phase1RuntimeClean.d.ts.map +1 -1
  38. package/dist/ui/v3/ui/phase1RuntimeClean.js +42 -6
  39. package/dist/ui/v3/ui/phase1RuntimeClean.js.map +1 -1
  40. package/dist/ui/v4/engine/renderFrame.d.ts +47 -0
  41. package/dist/ui/v4/engine/renderFrame.d.ts.map +1 -0
  42. package/dist/ui/v4/engine/renderFrame.js +653 -0
  43. package/dist/ui/v4/engine/renderFrame.js.map +1 -0
  44. package/dist/ui/v4/engine/resizeController.d.ts +48 -0
  45. package/dist/ui/v4/engine/resizeController.d.ts.map +1 -0
  46. package/dist/ui/v4/engine/resizeController.js +285 -0
  47. package/dist/ui/v4/engine/resizeController.js.map +1 -0
  48. package/dist/ui/v4/engine/safeViewport.d.ts +47 -0
  49. package/dist/ui/v4/engine/safeViewport.d.ts.map +1 -0
  50. package/dist/ui/v4/engine/safeViewport.js +123 -0
  51. package/dist/ui/v4/engine/safeViewport.js.map +1 -0
  52. package/dist/ui/v4/engine/terminalProfile.d.ts +56 -0
  53. package/dist/ui/v4/engine/terminalProfile.d.ts.map +1 -0
  54. package/dist/ui/v4/engine/terminalProfile.js +115 -0
  55. package/dist/ui/v4/engine/terminalProfile.js.map +1 -0
  56. package/dist/ui/v4/index.d.ts +28 -0
  57. package/dist/ui/v4/index.d.ts.map +1 -0
  58. package/dist/ui/v4/index.js +993 -0
  59. package/dist/ui/v4/index.js.map +1 -0
  60. package/dist/ui/v4/layout/layoutEngine.d.ts +62 -0
  61. package/dist/ui/v4/layout/layoutEngine.d.ts.map +1 -0
  62. package/dist/ui/v4/layout/layoutEngine.js +294 -0
  63. package/dist/ui/v4/layout/layoutEngine.js.map +1 -0
  64. package/dist/ui/v4/runtime/keepAlive.d.ts +21 -0
  65. package/dist/ui/v4/runtime/keepAlive.d.ts.map +1 -0
  66. package/dist/ui/v4/runtime/keepAlive.js +149 -0
  67. package/dist/ui/v4/runtime/keepAlive.js.map +1 -0
  68. package/dist/ui/v4/runtime/logger.d.ts +35 -0
  69. package/dist/ui/v4/runtime/logger.d.ts.map +1 -0
  70. package/dist/ui/v4/runtime/logger.js +109 -0
  71. package/dist/ui/v4/runtime/logger.js.map +1 -0
  72. package/dist/ui/v5/index.d.ts +24 -0
  73. package/dist/ui/v5/index.d.ts.map +1 -0
  74. package/dist/ui/v5/index.js +123 -0
  75. package/dist/ui/v5/index.js.map +1 -0
  76. package/dist/ui/v5/runtime/keepAlive.d.ts +37 -0
  77. package/dist/ui/v5/runtime/keepAlive.d.ts.map +1 -0
  78. package/dist/ui/v5/runtime/keepAlive.js +122 -0
  79. package/dist/ui/v5/runtime/keepAlive.js.map +1 -0
  80. package/dist/ui/v5/runtime/restoreTerminal.d.ts +34 -0
  81. package/dist/ui/v5/runtime/restoreTerminal.d.ts.map +1 -0
  82. package/dist/ui/v5/runtime/restoreTerminal.js +100 -0
  83. package/dist/ui/v5/runtime/restoreTerminal.js.map +1 -0
  84. package/dist/ui/v5/runtime/stdoutGuard.d.ts +42 -0
  85. package/dist/ui/v5/runtime/stdoutGuard.d.ts.map +1 -0
  86. package/dist/ui/v5/runtime/stdoutGuard.js +154 -0
  87. package/dist/ui/v5/runtime/stdoutGuard.js.map +1 -0
  88. 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"}