centaurus-cli 2.5.2 → 2.5.3

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 (246) hide show
  1. package/AUTH_FLOW.md +138 -0
  2. package/CONFIG_GUIDE.md +249 -0
  3. package/dist/config/models.d.ts +1 -1
  4. package/dist/config/models.d.ts.map +1 -1
  5. package/dist/config/models.js +2 -0
  6. package/dist/config/models.js.map +1 -1
  7. package/dist/ui/components/App.d.ts.map +1 -1
  8. package/dist/ui/components/App.js +104 -62
  9. package/dist/ui/components/App.js.map +1 -1
  10. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  11. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  12. package/dist/ui/components/FontRecommendation.js +1 -0
  13. package/dist/ui/components/FontRecommendation.js.map +1 -0
  14. package/dist/ui/components/InputBox.d.ts.map +1 -1
  15. package/dist/ui/components/InputBox.js +3 -2
  16. package/dist/ui/components/InputBox.js.map +1 -1
  17. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  18. package/dist/ui/components/MarkdownRenderer.js +34 -9
  19. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  20. package/dist/ui/components/MessageDisplay.js +2 -2
  21. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  22. package/dist/ui/components/StreamingMessageDisplay.js +3 -3
  23. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  24. package/dist/ui/components/ThinkingDisplay.d.ts +13 -0
  25. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  26. package/dist/ui/components/ThinkingDisplay.js +41 -0
  27. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  28. package/dist/utils/version-checker.d.ts.map +1 -1
  29. package/dist/utils/version-checker.js +3 -31
  30. package/dist/utils/version-checker.js.map +1 -1
  31. package/package.json +5 -5
  32. package/dist/ai/provider-factory.d.ts +0 -6
  33. package/dist/ai/provider-factory.d.ts.map +0 -1
  34. package/dist/ai/provider-factory.js +0 -27
  35. package/dist/ai/provider-factory.js.map +0 -1
  36. package/dist/ai/providers/base.d.ts +0 -25
  37. package/dist/ai/providers/base.d.ts.map +0 -1
  38. package/dist/ai/providers/base.js +0 -9
  39. package/dist/ai/providers/base.js.map +0 -1
  40. package/dist/ai/providers/gemini.d.ts +0 -34
  41. package/dist/ai/providers/gemini.d.ts.map +0 -1
  42. package/dist/ai/providers/gemini.js +0 -146
  43. package/dist/ai/providers/gemini.js.map +0 -1
  44. package/dist/commands/view-duplication-logs.d.ts +0 -5
  45. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  46. package/dist/commands/view-duplication-logs.js +0 -14
  47. package/dist/commands/view-duplication-logs.js.map +0 -1
  48. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  49. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  50. package/dist/context/__tests__/command-detector.test.js +0 -318
  51. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  52. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  53. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  54. package/dist/context/__tests__/context-manager.test.js +0 -375
  55. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  56. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  57. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  58. package/dist/context/__tests__/error-handling.test.js +0 -447
  59. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  60. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  61. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  62. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  63. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  64. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  65. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  66. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  67. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  68. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  69. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  70. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  71. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  72. package/dist/index-custom.d.ts +0 -3
  73. package/dist/index-custom.d.ts.map +0 -1
  74. package/dist/index-custom.js +0 -65
  75. package/dist/index-custom.js.map +0 -1
  76. package/dist/prompts/system-prompt.d.ts +0 -47
  77. package/dist/prompts/system-prompt.d.ts.map +0 -1
  78. package/dist/prompts/system-prompt.js +0 -377
  79. package/dist/prompts/system-prompt.js.map +0 -1
  80. package/dist/providers/GoogleProvider.d.ts +0 -26
  81. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  82. package/dist/providers/GoogleProvider.js +0 -313
  83. package/dist/providers/GoogleProvider.js.map +0 -1
  84. package/dist/providers/Provider.d.ts +0 -114
  85. package/dist/providers/Provider.d.ts.map +0 -1
  86. package/dist/providers/Provider.js +0 -44
  87. package/dist/providers/Provider.js.map +0 -1
  88. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  89. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  90. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  91. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  92. package/dist/src/context/types.js +0 -27
  93. package/dist/src/services/ai-context-injector.js +0 -96
  94. package/dist/src/services/ai-service-client.js +0 -270
  95. package/dist/src/services/api-client.js +0 -349
  96. package/dist/src/tools/types.js +0 -1
  97. package/dist/src/types/index.js +0 -1
  98. package/dist/test/context/types.js +0 -27
  99. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  100. package/dist/test/services/ai-context-injector.js +0 -96
  101. package/dist/test/services/ai-service-client.js +0 -270
  102. package/dist/test/services/api-client.js +0 -349
  103. package/dist/test/tools/types.js +0 -1
  104. package/dist/test/types/index.js +0 -1
  105. package/dist/test-ai-context-injector.js +0 -97
  106. package/dist/tests/automated-verification.d.ts +0 -27
  107. package/dist/tests/automated-verification.d.ts.map +0 -1
  108. package/dist/tests/automated-verification.js +0 -359
  109. package/dist/tests/automated-verification.js.map +0 -1
  110. package/dist/tests/integration-tests.d.ts +0 -50
  111. package/dist/tests/integration-tests.d.ts.map +0 -1
  112. package/dist/tests/integration-tests.js +0 -648
  113. package/dist/tests/integration-tests.js.map +0 -1
  114. package/dist/tools/file-ops-test.d.ts +0 -6
  115. package/dist/tools/file-ops-test.d.ts.map +0 -1
  116. package/dist/tools/file-ops-test.js +0 -197
  117. package/dist/tools/file-ops-test.js.map +0 -1
  118. package/dist/ui/DisplayHistory.d.ts +0 -53
  119. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  120. package/dist/ui/DisplayHistory.js +0 -82
  121. package/dist/ui/DisplayHistory.js.map +0 -1
  122. package/dist/ui/clack-ui.d.ts +0 -83
  123. package/dist/ui/clack-ui.d.ts.map +0 -1
  124. package/dist/ui/clack-ui.js +0 -304
  125. package/dist/ui/clack-ui.js.map +0 -1
  126. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  127. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  128. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  129. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  130. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  131. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  132. package/dist/ui/components/DynamicMessage.js +0 -27
  133. package/dist/ui/components/DynamicMessage.js.map +0 -1
  134. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  135. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  136. package/dist/ui/components/FileViewerScreen.js +0 -74
  137. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  138. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  139. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  140. package/dist/ui/components/ScrollableContent.js +0 -6
  141. package/dist/ui/components/ScrollableContent.js.map +0 -1
  142. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  143. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  144. package/dist/ui/components/ScrollableMessageList.js +0 -133
  145. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  146. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  147. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  148. package/dist/ui/components/ScrollableScreen.js +0 -22
  149. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  150. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  151. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  152. package/dist/ui/components/StaticMessageHistory.js +0 -19
  153. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  154. package/dist/ui/components/code-block.d.ts +0 -10
  155. package/dist/ui/components/code-block.d.ts.map +0 -1
  156. package/dist/ui/components/code-block.js +0 -74
  157. package/dist/ui/components/code-block.js.map +0 -1
  158. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  159. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  160. package/dist/ui/components/confirm-prompt.js +0 -104
  161. package/dist/ui/components/confirm-prompt.js.map +0 -1
  162. package/dist/ui/components/diff-viewer.d.ts +0 -9
  163. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  164. package/dist/ui/components/diff-viewer.js +0 -57
  165. package/dist/ui/components/diff-viewer.js.map +0 -1
  166. package/dist/ui/components/input-box.d.ts +0 -18
  167. package/dist/ui/components/input-box.d.ts.map +0 -1
  168. package/dist/ui/components/input-box.js +0 -157
  169. package/dist/ui/components/input-box.js.map +0 -1
  170. package/dist/ui/components/keyboard-help.d.ts +0 -7
  171. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  172. package/dist/ui/components/keyboard-help.js +0 -43
  173. package/dist/ui/components/keyboard-help.js.map +0 -1
  174. package/dist/ui/components/loading-indicator.d.ts +0 -3
  175. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  176. package/dist/ui/components/loading-indicator.js +0 -42
  177. package/dist/ui/components/loading-indicator.js.map +0 -1
  178. package/dist/ui/components/message-display.d.ts +0 -7
  179. package/dist/ui/components/message-display.d.ts.map +0 -1
  180. package/dist/ui/components/message-display.js +0 -104
  181. package/dist/ui/components/message-display.js.map +0 -1
  182. package/dist/ui/components/misc.d.ts +0 -28
  183. package/dist/ui/components/misc.d.ts.map +0 -1
  184. package/dist/ui/components/misc.js +0 -128
  185. package/dist/ui/components/misc.js.map +0 -1
  186. package/dist/ui/components/select-prompt.d.ts +0 -13
  187. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  188. package/dist/ui/components/select-prompt.js +0 -42
  189. package/dist/ui/components/select-prompt.js.map +0 -1
  190. package/dist/ui/components/status-bar.d.ts +0 -11
  191. package/dist/ui/components/status-bar.d.ts.map +0 -1
  192. package/dist/ui/components/status-bar.js +0 -47
  193. package/dist/ui/components/status-bar.js.map +0 -1
  194. package/dist/ui/components/tool-execution.d.ts +0 -3
  195. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  196. package/dist/ui/components/tool-execution.js +0 -374
  197. package/dist/ui/components/tool-execution.js.map +0 -1
  198. package/dist/ui/components/tool-result.d.ts +0 -11
  199. package/dist/ui/components/tool-result.d.ts.map +0 -1
  200. package/dist/ui/components/tool-result.js +0 -58
  201. package/dist/ui/components/tool-result.js.map +0 -1
  202. package/dist/ui/components/welcome-banner.d.ts +0 -3
  203. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  204. package/dist/ui/components/welcome-banner.js +0 -46
  205. package/dist/ui/components/welcome-banner.js.map +0 -1
  206. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  207. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  208. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  209. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  210. package/dist/ui/render-engine.d.ts +0 -69
  211. package/dist/ui/render-engine.d.ts.map +0 -1
  212. package/dist/ui/render-engine.js +0 -197
  213. package/dist/ui/render-engine.js.map +0 -1
  214. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  215. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  216. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  217. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  218. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  219. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  220. package/dist/ui/terminal/TerminalUI.js +0 -430
  221. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  222. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  223. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  224. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  225. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  226. package/dist/ui/terminal-kit-base.d.ts +0 -117
  227. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  228. package/dist/ui/terminal-kit-base.js +0 -188
  229. package/dist/ui/terminal-kit-base.js.map +0 -1
  230. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  231. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  232. package/dist/ui/utils/duplication-detector.js +0 -227
  233. package/dist/ui/utils/duplication-detector.js.map +0 -1
  234. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  235. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  236. package/dist/ui/utils/duplication-logger.js +0 -85
  237. package/dist/ui/utils/duplication-logger.js.map +0 -1
  238. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  239. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  240. package/dist/ui/utils/terminal-scanner.js +0 -217
  241. package/dist/ui/utils/terminal-scanner.js.map +0 -1
  242. package/dist/version.d.ts +0 -2
  243. package/dist/version.d.ts.map +0 -1
  244. package/dist/version.js +0 -3
  245. package/dist/version.js.map +0 -1
  246. package/scripts/generate-version.js +0 -25
@@ -1,85 +0,0 @@
1
- /**
2
- * File-based logging system for duplication detection
3
- * Logs to a file instead of console to avoid cluttering the terminal
4
- */
5
- import fs from 'fs';
6
- import path from 'path';
7
- import os from 'os';
8
- const LOG_DIR = path.join(os.tmpdir(), 'centaurus-cli-logs');
9
- const LOG_FILE = path.join(LOG_DIR, 'duplication-detector.log');
10
- const MAX_LOG_SIZE = 1024 * 1024; // 1MB
11
- // Ensure log directory exists
12
- try {
13
- if (!fs.existsSync(LOG_DIR)) {
14
- fs.mkdirSync(LOG_DIR, { recursive: true });
15
- }
16
- }
17
- catch (error) {
18
- // Silently fail if we can't create log directory
19
- }
20
- /**
21
- * Write a log entry to the file
22
- */
23
- export function logDuplication(message, level = 'INFO') {
24
- try {
25
- const timestamp = new Date().toISOString();
26
- const logEntry = `[${timestamp}] [${level}] ${message}\n`;
27
- // Check file size and rotate if needed
28
- if (fs.existsSync(LOG_FILE)) {
29
- const stats = fs.statSync(LOG_FILE);
30
- if (stats.size > MAX_LOG_SIZE) {
31
- // Rotate log file
32
- const backupFile = path.join(LOG_DIR, `duplication-detector.log.old`);
33
- if (fs.existsSync(backupFile)) {
34
- fs.unlinkSync(backupFile);
35
- }
36
- fs.renameSync(LOG_FILE, backupFile);
37
- }
38
- }
39
- // Append to log file
40
- fs.appendFileSync(LOG_FILE, logEntry);
41
- }
42
- catch (error) {
43
- // Silently fail if we can't write to log
44
- }
45
- }
46
- /**
47
- * Clear the log file
48
- */
49
- export function clearDuplicationLog() {
50
- try {
51
- if (fs.existsSync(LOG_FILE)) {
52
- fs.unlinkSync(LOG_FILE);
53
- }
54
- logDuplication('=== Log cleared ===', 'INFO');
55
- }
56
- catch (error) {
57
- // Silently fail
58
- }
59
- }
60
- /**
61
- * Get the log file path
62
- */
63
- export function getLogFilePath() {
64
- return LOG_FILE;
65
- }
66
- /**
67
- * Read the last N lines from the log file
68
- */
69
- export function readLastLogLines(lines = 50) {
70
- try {
71
- if (!fs.existsSync(LOG_FILE)) {
72
- return 'No log file found';
73
- }
74
- const content = fs.readFileSync(LOG_FILE, 'utf-8');
75
- const allLines = content.split('\n').filter(line => line.trim());
76
- const lastLines = allLines.slice(-lines);
77
- return lastLines.join('\n');
78
- }
79
- catch (error) {
80
- return `Error reading log: ${error}`;
81
- }
82
- }
83
- // Initialize log on module load
84
- logDuplication('=== Duplication detector initialized ===', 'INFO');
85
- //# sourceMappingURL=duplication-logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"duplication-logger.js","sourceRoot":"","sources":["../../../src/ui/utils/duplication-logger.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Terminal Output Scanner
3
- * Detects UI duplication by analyzing the actual terminal buffer content
4
- */
5
- /**
6
- * Scan terminal output for duplication patterns
7
- * Returns true if duplication is detected
8
- */
9
- export declare function scanTerminalForDuplication(): boolean;
10
- export declare function injectTerminalMarker(): void;
11
- export declare function getMarkerCount(): number;
12
- export declare function resetMarkerCount(): void;
13
- export declare function captureInkOutput(chunk: string): void;
14
- export declare function clearInkOutputBuffer(): void;
15
- export declare function pauseDetection(): void;
16
- export declare function resumeDetection(): void;
17
- export declare function hookStdout(onDuplicationDetected: () => void): void;
18
- export declare function unhookStdout(): void;
19
- //# sourceMappingURL=terminal-scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-scanner.d.ts","sourceRoot":"","sources":["../../../src/ui/utils/terminal-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAuBpD;AASD,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AASD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CA6BpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AASD,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,wBAAgB,UAAU,CAAC,qBAAqB,EAAE,MAAM,IAAI,GAAG,IAAI,CAkIlE;AAED,wBAAgB,YAAY,IAAI,IAAI,CAanC"}
@@ -1,217 +0,0 @@
1
- /**
2
- * Terminal Output Scanner
3
- * Detects UI duplication by analyzing the actual terminal buffer content
4
- */
5
- import { logDuplication } from './duplication-logger.js';
6
- // Store the last known good state
7
- let lastKnownLineCount = 0;
8
- let consecutiveDuplicationDetections = 0;
9
- /**
10
- * Scan terminal output for duplication patterns
11
- * Returns true if duplication is detected
12
- */
13
- export function scanTerminalForDuplication() {
14
- try {
15
- // Get terminal dimensions
16
- const rows = process.stdout.rows || 0;
17
- const cols = process.stdout.columns || 0;
18
- if (rows === 0 || cols === 0) {
19
- return false;
20
- }
21
- // Try to detect duplication by checking for repeated patterns
22
- // We'll use a heuristic: if we see the same distinctive text multiple times,
23
- // it's likely duplicated
24
- // Since we can't directly read the terminal buffer in Node.js,
25
- // we'll use a different approach: track cursor position changes
26
- // and detect anomalies
27
- return false; // Placeholder - terminal buffer reading not available in Node.js
28
- }
29
- catch (error) {
30
- logDuplication(`Terminal scan error: ${error}`, 'WARN');
31
- return false;
32
- }
33
- }
34
- /**
35
- * Alternative: Use a marker-based detection system
36
- * Inject invisible markers and count them
37
- */
38
- let markerCount = 0;
39
- const MARKER_ID = `\x1b]1337;marker=${Date.now()}\x07`;
40
- export function injectTerminalMarker() {
41
- // Inject an invisible marker that we can count
42
- process.stdout.write(MARKER_ID);
43
- markerCount++;
44
- logDuplication(`Marker injected, count: ${markerCount}`, 'INFO');
45
- }
46
- export function getMarkerCount() {
47
- return markerCount;
48
- }
49
- export function resetMarkerCount() {
50
- markerCount = 0;
51
- logDuplication('Marker count reset', 'INFO');
52
- }
53
- /**
54
- * Better approach: Monitor Ink's render output
55
- * Hook into Ink's output stream
56
- */
57
- let inkOutputBuffer = [];
58
- const MAX_BUFFER_SIZE = 1000;
59
- export function captureInkOutput(chunk) {
60
- inkOutputBuffer.push(chunk);
61
- // Keep buffer size manageable
62
- if (inkOutputBuffer.length > MAX_BUFFER_SIZE) {
63
- inkOutputBuffer.shift();
64
- }
65
- // Check for duplication patterns in recent output
66
- if (inkOutputBuffer.length > 10) {
67
- const recentOutput = inkOutputBuffer.slice(-10).join('');
68
- // Look for the banner ASCII art pattern
69
- const bannerPattern = /██████╗███████╗███╗ ██╗████████╗/g;
70
- const bannerMatches = recentOutput.match(bannerPattern);
71
- if (bannerMatches && bannerMatches.length > 1) {
72
- logDuplication(`Banner pattern found ${bannerMatches.length} times in recent output!`, 'ERROR');
73
- return;
74
- }
75
- // Look for InputBox pattern
76
- const inputBoxPattern = /CWD:.*Model:.*AUTO-ACCEPT:/g;
77
- const inputBoxMatches = recentOutput.match(inputBoxPattern);
78
- if (inputBoxMatches && inputBoxMatches.length > 1) {
79
- logDuplication(`InputBox pattern found ${inputBoxMatches.length} times in recent output!`, 'ERROR');
80
- }
81
- }
82
- }
83
- export function clearInkOutputBuffer() {
84
- inkOutputBuffer = [];
85
- logDuplication('Ink output buffer cleared', 'INFO');
86
- }
87
- /**
88
- * Hook into process.stdout.write to intercept all output
89
- */
90
- const originalWrite = process.stdout.write.bind(process.stdout);
91
- let isHooked = false;
92
- let detectionEnabled = true;
93
- export function pauseDetection() {
94
- detectionEnabled = false;
95
- logDuplication('Detection paused', 'INFO');
96
- }
97
- export function resumeDetection() {
98
- detectionEnabled = true;
99
- logDuplication('Detection resumed', 'INFO');
100
- }
101
- export function hookStdout(onDuplicationDetected) {
102
- if (isHooked)
103
- return;
104
- logDuplication('Hooking into stdout for duplication detection', 'INFO');
105
- isHooked = true;
106
- let outputBuffer = '';
107
- let lastCheckTime = Date.now();
108
- let recoveryScheduled = false;
109
- let lastRecoveryTime = 0;
110
- // Continuous monitoring - check buffer every 100ms
111
- const monitoringInterval = setInterval(() => {
112
- if (!detectionEnabled || recoveryScheduled) {
113
- return;
114
- }
115
- const now = Date.now();
116
- // Prevent recovery spam
117
- if (now - lastRecoveryTime < 2000) {
118
- return;
119
- }
120
- // Check for banner duplication
121
- const bannerPattern = /██████╗███████╗███╗ ██╗████████╗ █████╗ ██╗ ██╗██████╗ ██╗ ██╗███████╗/g;
122
- const bannerMatches = outputBuffer.match(bannerPattern);
123
- // Log buffer state periodically for debugging
124
- if (now % 5000 < 100) { // Every ~5 seconds
125
- const bufferPreview = outputBuffer.slice(-500).replace(/\n/g, '\\n').substring(0, 200);
126
- logDuplication(`[MONITOR] Buffer size: ${outputBuffer.length}, Banners: ${bannerMatches ? bannerMatches.length : 0}, Preview: ${bufferPreview}`, 'INFO');
127
- }
128
- if (bannerMatches && bannerMatches.length > 1) {
129
- logDuplication(`[MONITOR] DUPLICATION DETECTED! Banner found ${bannerMatches.length} times`, 'ERROR');
130
- logDuplication(`[MONITOR] Buffer content (last 1000 chars): ${outputBuffer.slice(-1000)}`, 'ERROR');
131
- recoveryScheduled = true;
132
- lastRecoveryTime = now;
133
- outputBuffer = '';
134
- pauseDetection();
135
- setImmediate(() => {
136
- logDuplication('[MONITOR] Executing recovery', 'ERROR');
137
- onDuplicationDetected();
138
- recoveryScheduled = false;
139
- setTimeout(() => {
140
- resumeDetection();
141
- outputBuffer = '';
142
- }, 800);
143
- });
144
- }
145
- }, 100); // Check every 100ms
146
- // Store interval ID for cleanup
147
- hookStdout.monitoringInterval = monitoringInterval;
148
- process.stdout.write = function (chunk, ...args) {
149
- const str = chunk.toString();
150
- // Always write to actual stdout first
151
- const result = originalWrite(chunk, ...args);
152
- // Then add to our monitoring buffer
153
- outputBuffer += str;
154
- // Skip detection if paused (during recovery)
155
- if (!detectionEnabled) {
156
- return result;
157
- }
158
- const now = Date.now();
159
- // Prevent recovery spam - at least 2 seconds between recoveries
160
- if (now - lastRecoveryTime < 2000) {
161
- return result;
162
- }
163
- // Look for banner duplication in the buffer
164
- const bannerPattern = /██████╗███████╗███╗ ██╗████████╗ █████╗ ██╗ ██╗██████╗ ██╗ ██╗███████╗/g;
165
- const bannerMatches = outputBuffer.match(bannerPattern);
166
- if (bannerMatches && bannerMatches.length > 1 && !recoveryScheduled) {
167
- logDuplication(`DUPLICATION DETECTED! Banner found ${bannerMatches.length} times in output buffer (${outputBuffer.length} bytes)`, 'ERROR');
168
- logDuplication(`Time since last recovery: ${now - lastRecoveryTime}ms`, 'ERROR');
169
- logDuplication(`Buffer content (last 2000 chars): ${outputBuffer.slice(-2000)}`, 'ERROR');
170
- recoveryScheduled = true;
171
- lastRecoveryTime = now;
172
- // IMMEDIATELY clear the output buffer
173
- outputBuffer = '';
174
- logDuplication('Output buffer cleared immediately', 'ERROR');
175
- // Pause detection during recovery
176
- pauseDetection();
177
- // Use setImmediate to defer recovery until after current render completes
178
- setImmediate(() => {
179
- logDuplication('Executing immediate recovery', 'ERROR');
180
- onDuplicationDetected();
181
- consecutiveDuplicationDetections = 0;
182
- recoveryScheduled = false;
183
- // Resume detection after recovery completes
184
- setTimeout(() => {
185
- logDuplication('Resuming detection after recovery', 'INFO');
186
- resumeDetection();
187
- outputBuffer = ''; // Clear buffer again to start fresh
188
- }, 800);
189
- });
190
- }
191
- else {
192
- // Reset counter if no duplication found
193
- if (now - lastCheckTime > 1000) {
194
- consecutiveDuplicationDetections = 0;
195
- lastCheckTime = now;
196
- }
197
- }
198
- // Keep buffer size manageable (last 150KB to catch more duplication)
199
- if (outputBuffer.length > 150000) {
200
- outputBuffer = outputBuffer.slice(-150000);
201
- }
202
- return result;
203
- };
204
- }
205
- export function unhookStdout() {
206
- if (!isHooked)
207
- return;
208
- logDuplication('Unhooking stdout', 'INFO');
209
- // Clear monitoring interval
210
- if (hookStdout.monitoringInterval) {
211
- clearInterval(hookStdout.monitoringInterval);
212
- logDuplication('Monitoring interval cleared', 'INFO');
213
- }
214
- process.stdout.write = originalWrite;
215
- isHooked = false;
216
- }
217
- //# sourceMappingURL=terminal-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminal-scanner.js","sourceRoot":"","sources":["../../../src/ui/utils/terminal-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,kCAAkC;AAClC,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAC3B,IAAI,gCAAgC,GAAG,CAAC,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAEzC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,8DAA8D;QAC9D,6EAA6E;QAC7E,yBAAyB;QAEzB,+DAA+D;QAC/D,gEAAgE;QAChE,uBAAuB;QAEvB,OAAO,KAAK,CAAC,CAAC,iEAAiE;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,wBAAwB,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,MAAM,SAAS,GAAG,oBAAoB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AAEvD,MAAM,UAAU,oBAAoB;IAClC,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,WAAW,EAAE,CAAC;IACd,cAAc,CAAC,2BAA2B,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,WAAW,GAAG,CAAC,CAAC;IAChB,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,IAAI,eAAe,GAAa,EAAE,CAAC;AACnC,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE5B,8BAA8B;IAC9B,IAAI,eAAe,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAC7C,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,kDAAkD;IAClD,IAAI,eAAe,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzD,wCAAwC;QACxC,MAAM,aAAa,GAAG,qCAAqC,CAAC;QAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAExD,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,cAAc,CAAC,wBAAwB,aAAa,CAAC,MAAM,0BAA0B,EAAE,OAAO,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,MAAM,eAAe,GAAG,6BAA6B,CAAC;QACtD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE5D,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,cAAc,CAAC,0BAA0B,eAAe,CAAC,MAAM,0BAA0B,EAAE,OAAO,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,eAAe,GAAG,EAAE,CAAC;IACrB,cAAc,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChE,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,gBAAgB,GAAG,IAAI,CAAC;AAE5B,MAAM,UAAU,cAAc;IAC5B,gBAAgB,GAAG,KAAK,CAAC;IACzB,cAAc,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,gBAAgB,GAAG,IAAI,CAAC;IACxB,cAAc,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,qBAAiC;IAC1D,IAAI,QAAQ;QAAE,OAAO;IAErB,cAAc,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC;IACxE,QAAQ,GAAG,IAAI,CAAC;IAEhB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE/B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IAEzB,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,wBAAwB;QACxB,IAAI,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,MAAM,aAAa,GAAG,+EAA+E,CAAC;QACtG,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAExD,8CAA8C;QAC9C,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,mBAAmB;YACzC,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACvF,cAAc,CAAC,0BAA0B,YAAY,CAAC,MAAM,cAAc,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,aAAa,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3J,CAAC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,cAAc,CAAC,gDAAgD,aAAa,CAAC,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtG,cAAc,CAAC,+CAA+C,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAEpG,iBAAiB,GAAG,IAAI,CAAC;YACzB,gBAAgB,GAAG,GAAG,CAAC;YACvB,YAAY,GAAG,EAAE,CAAC;YAElB,cAAc,EAAE,CAAC;YAEjB,YAAY,CAAC,GAAG,EAAE;gBAChB,cAAc,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;gBACxD,qBAAqB,EAAE,CAAC;gBACxB,iBAAiB,GAAG,KAAK,CAAC;gBAE1B,UAAU,CAAC,GAAG,EAAE;oBACd,eAAe,EAAE,CAAC;oBAClB,YAAY,GAAG,EAAE,CAAC;gBACpB,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,oBAAoB;IAE7B,gCAAgC;IAC/B,UAAkB,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAE3D,OAAO,CAAC,MAAM,CAAC,KAAa,GAAG,UAAU,KAAU,EAAE,GAAG,IAAW;QAClE,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE7B,sCAAsC;QACtC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAE7C,oCAAoC;QACpC,YAAY,IAAI,GAAG,CAAC;QAEpB,6CAA6C;QAC7C,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,gEAAgE;QAChE,IAAI,GAAG,GAAG,gBAAgB,GAAG,IAAI,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4CAA4C;QAC5C,MAAM,aAAa,GAAG,+EAA+E,CAAC;QACtG,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAExD,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpE,cAAc,CAAC,sCAAsC,aAAa,CAAC,MAAM,4BAA4B,YAAY,CAAC,MAAM,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5I,cAAc,CAAC,6BAA6B,GAAG,GAAG,gBAAgB,IAAI,EAAE,OAAO,CAAC,CAAC;YACjF,cAAc,CAAC,qCAAqC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAE1F,iBAAiB,GAAG,IAAI,CAAC;YACzB,gBAAgB,GAAG,GAAG,CAAC;YAEvB,sCAAsC;YACtC,YAAY,GAAG,EAAE,CAAC;YAClB,cAAc,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;YAE7D,kCAAkC;YAClC,cAAc,EAAE,CAAC;YAEjB,0EAA0E;YAC1E,YAAY,CAAC,GAAG,EAAE;gBAChB,cAAc,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;gBACxD,qBAAqB,EAAE,CAAC;gBACxB,gCAAgC,GAAG,CAAC,CAAC;gBACrC,iBAAiB,GAAG,KAAK,CAAC;gBAE1B,4CAA4C;gBAC5C,UAAU,CAAC,GAAG,EAAE;oBACd,cAAc,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;oBAC5D,eAAe,EAAE,CAAC;oBAClB,YAAY,GAAG,EAAE,CAAC,CAAC,oCAAoC;gBACzD,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,GAAG,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC;gBAC/B,gCAAgC,GAAG,CAAC,CAAC;gBACrC,aAAa,GAAG,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,YAAY,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACjC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,cAAc,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAE3C,4BAA4B;IAC5B,IAAK,UAAkB,CAAC,kBAAkB,EAAE,CAAC;QAC3C,aAAa,CAAE,UAAkB,CAAC,kBAAkB,CAAC,CAAC;QACtD,cAAc,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC;IACrC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC"}
package/dist/version.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare const VERSION = "2.5.2";
2
- //# sourceMappingURL=version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/dist/version.js DELETED
@@ -1,3 +0,0 @@
1
- // Auto-generated file - do not edit manually
2
- export const VERSION = '2.5.2';
3
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -1,25 +0,0 @@
1
- import { readFileSync, writeFileSync } from 'fs';
2
- import { join, dirname } from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = dirname(__filename);
7
-
8
- // Read package.json
9
- const packageJsonPath = join(__dirname, '..', 'package.json');
10
- let rawContent = readFileSync(packageJsonPath, 'utf-8');
11
-
12
- // Remove BOM if present and normalize whitespace
13
- rawContent = rawContent.replace(/^\uFEFF/, '').trim();
14
-
15
- const packageJson = JSON.parse(rawContent);
16
-
17
- // Generate version.ts
18
- const versionContent = `// Auto-generated file - do not edit manually
19
- export const VERSION = '${packageJson.version}';
20
- `;
21
-
22
- const outputPath = join(__dirname, '..', 'src', 'version.ts');
23
- writeFileSync(outputPath, versionContent, 'utf-8');
24
-
25
- console.log(`Generated version.ts with version ${packageJson.version}`);