centaurus-cli 2.5.2 → 2.6.0
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/cli-adapter.d.ts +6 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +215 -29
- package/dist/cli-adapter.js.map +1 -1
- package/dist/commands/CommandParser.js +2 -2
- package/dist/commands/CommandParser.js.map +1 -1
- package/dist/config/defaultConfig.js +1 -1
- package/dist/config/defaultConfig.js.map +1 -1
- package/dist/config/models.d.ts +50 -5
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +144 -20
- package/dist/config/models.js.map +1 -1
- package/dist/config/types.d.ts +3 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +3 -1
- package/dist/config/types.js.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/services/ai-service-client.d.ts +8 -2
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +2 -1
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/services/environment-context-injector.d.ts +69 -0
- package/dist/services/environment-context-injector.d.ts.map +1 -0
- package/dist/services/environment-context-injector.js +198 -0
- package/dist/services/environment-context-injector.js.map +1 -0
- package/dist/tools/ToolRegistry.d.ts.map +1 -1
- package/dist/tools/ToolRegistry.js +120 -26
- package/dist/tools/ToolRegistry.js.map +1 -1
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +30 -6
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +70 -23
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/find-files.d.ts +47 -0
- package/dist/tools/find-files.d.ts.map +1 -0
- package/dist/tools/find-files.js +190 -0
- package/dist/tools/find-files.js.map +1 -0
- package/dist/tools/get-diff.d.ts +45 -0
- package/dist/tools/get-diff.d.ts.map +1 -0
- package/dist/tools/get-diff.js +138 -0
- package/dist/tools/get-diff.js.map +1 -0
- package/dist/tools/grep-search.d.ts +85 -0
- package/dist/tools/grep-search.d.ts.map +1 -0
- package/dist/tools/grep-search.js +497 -0
- package/dist/tools/grep-search.js.map +1 -0
- package/dist/tools/inspect-symbol.d.ts +27 -0
- package/dist/tools/inspect-symbol.d.ts.map +1 -0
- package/dist/tools/inspect-symbol.js +259 -0
- package/dist/tools/inspect-symbol.js.map +1 -0
- package/dist/tools/validation.d.ts +49 -0
- package/dist/tools/validation.d.ts.map +1 -0
- package/dist/tools/validation.js +125 -0
- package/dist/tools/validation.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts +3 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +272 -72
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/ContextWindowIndicator.d.ts +8 -0
- package/dist/ui/components/ContextWindowIndicator.d.ts.map +1 -0
- package/dist/ui/components/ContextWindowIndicator.js +34 -0
- package/dist/ui/components/ContextWindowIndicator.js.map +1 -0
- package/dist/ui/components/FontRecommendation.d.ts +1 -0
- package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
- package/dist/ui/components/FontRecommendation.js +1 -0
- package/dist/ui/components/FontRecommendation.js.map +1 -0
- package/dist/ui/components/InputBox.d.ts +2 -0
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +9 -4
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +34 -9
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +9 -2
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +11 -3
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/ThinkingDisplay.d.ts +12 -0
- package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
- package/dist/ui/components/ThinkingDisplay.js +41 -0
- package/dist/ui/components/ThinkingDisplay.js.map +1 -0
- package/dist/utils/markdown-parser.d.ts +4 -0
- package/dist/utils/markdown-parser.d.ts.map +1 -1
- package/dist/utils/markdown-parser.js +15 -1
- package/dist/utils/markdown-parser.js.map +1 -1
- package/dist/utils/version-checker.d.ts.map +1 -1
- package/dist/utils/version-checker.js +3 -31
- package/dist/utils/version-checker.js.map +1 -1
- package/package.json +6 -5
- package/README.md +0 -501
- package/dist/ai/provider-factory.d.ts +0 -6
- package/dist/ai/provider-factory.d.ts.map +0 -1
- package/dist/ai/provider-factory.js +0 -27
- package/dist/ai/provider-factory.js.map +0 -1
- package/dist/ai/providers/base.d.ts +0 -25
- package/dist/ai/providers/base.d.ts.map +0 -1
- package/dist/ai/providers/base.js +0 -9
- package/dist/ai/providers/base.js.map +0 -1
- package/dist/ai/providers/gemini.d.ts +0 -34
- package/dist/ai/providers/gemini.d.ts.map +0 -1
- package/dist/ai/providers/gemini.js +0 -146
- package/dist/ai/providers/gemini.js.map +0 -1
- package/dist/commands/view-duplication-logs.d.ts +0 -5
- package/dist/commands/view-duplication-logs.d.ts.map +0 -1
- package/dist/commands/view-duplication-logs.js +0 -14
- package/dist/commands/view-duplication-logs.js.map +0 -1
- package/dist/context/__tests__/command-detector.test.d.ts +0 -14
- package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
- package/dist/context/__tests__/command-detector.test.js +0 -318
- package/dist/context/__tests__/command-detector.test.js.map +0 -1
- package/dist/context/__tests__/context-manager.test.d.ts +0 -16
- package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
- package/dist/context/__tests__/context-manager.test.js +0 -375
- package/dist/context/__tests__/context-manager.test.js.map +0 -1
- package/dist/context/__tests__/error-handling.test.d.ts +0 -15
- package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
- package/dist/context/__tests__/error-handling.test.js +0 -447
- package/dist/context/__tests__/error-handling.test.js.map +0 -1
- package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
- package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
- package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
- package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
- package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
- package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
- package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
- package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
- package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
- package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
- package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
- package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
- package/dist/index-custom.d.ts +0 -3
- package/dist/index-custom.d.ts.map +0 -1
- package/dist/index-custom.js +0 -65
- package/dist/index-custom.js.map +0 -1
- package/dist/prompts/system-prompt.d.ts +0 -47
- package/dist/prompts/system-prompt.d.ts.map +0 -1
- package/dist/prompts/system-prompt.js +0 -377
- package/dist/prompts/system-prompt.js.map +0 -1
- package/dist/providers/GoogleProvider.d.ts +0 -26
- package/dist/providers/GoogleProvider.d.ts.map +0 -1
- package/dist/providers/GoogleProvider.js +0 -313
- package/dist/providers/GoogleProvider.js.map +0 -1
- package/dist/providers/Provider.d.ts +0 -114
- package/dist/providers/Provider.d.ts.map +0 -1
- package/dist/providers/Provider.js +0 -44
- package/dist/providers/Provider.js.map +0 -1
- package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
- package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
- package/dist/services/__tests__/ai-context-injector.test.js +0 -326
- package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
- package/dist/src/context/types.js +0 -27
- package/dist/src/services/ai-context-injector.js +0 -96
- package/dist/src/services/ai-service-client.js +0 -270
- package/dist/src/services/api-client.js +0 -349
- package/dist/src/tools/types.js +0 -1
- package/dist/src/types/index.js +0 -1
- package/dist/test/context/types.js +0 -27
- package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
- package/dist/test/services/ai-context-injector.js +0 -96
- package/dist/test/services/ai-service-client.js +0 -270
- package/dist/test/services/api-client.js +0 -349
- package/dist/test/tools/types.js +0 -1
- package/dist/test/types/index.js +0 -1
- package/dist/test-ai-context-injector.js +0 -97
- package/dist/tests/automated-verification.d.ts +0 -27
- package/dist/tests/automated-verification.d.ts.map +0 -1
- package/dist/tests/automated-verification.js +0 -359
- package/dist/tests/automated-verification.js.map +0 -1
- package/dist/tests/integration-tests.d.ts +0 -50
- package/dist/tests/integration-tests.d.ts.map +0 -1
- package/dist/tests/integration-tests.js +0 -648
- package/dist/tests/integration-tests.js.map +0 -1
- package/dist/tools/file-ops-test.d.ts +0 -6
- package/dist/tools/file-ops-test.d.ts.map +0 -1
- package/dist/tools/file-ops-test.js +0 -197
- package/dist/tools/file-ops-test.js.map +0 -1
- package/dist/ui/DisplayHistory.d.ts +0 -53
- package/dist/ui/DisplayHistory.d.ts.map +0 -1
- package/dist/ui/DisplayHistory.js +0 -82
- package/dist/ui/DisplayHistory.js.map +0 -1
- package/dist/ui/clack-ui.d.ts +0 -83
- package/dist/ui/clack-ui.d.ts.map +0 -1
- package/dist/ui/clack-ui.js +0 -304
- package/dist/ui/clack-ui.js.map +0 -1
- package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
- package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
- package/dist/ui/components/DisplayItemRenderer.js +0 -53
- package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
- package/dist/ui/components/DynamicMessage.d.ts +0 -13
- package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
- package/dist/ui/components/DynamicMessage.js +0 -27
- package/dist/ui/components/DynamicMessage.js.map +0 -1
- package/dist/ui/components/FileViewerScreen.d.ts +0 -14
- package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
- package/dist/ui/components/FileViewerScreen.js +0 -74
- package/dist/ui/components/FileViewerScreen.js.map +0 -1
- package/dist/ui/components/ScrollableContent.d.ts +0 -7
- package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
- package/dist/ui/components/ScrollableContent.js +0 -6
- package/dist/ui/components/ScrollableContent.js.map +0 -1
- package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
- package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
- package/dist/ui/components/ScrollableMessageList.js +0 -133
- package/dist/ui/components/ScrollableMessageList.js.map +0 -1
- package/dist/ui/components/ScrollableScreen.d.ts +0 -9
- package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
- package/dist/ui/components/ScrollableScreen.js +0 -22
- package/dist/ui/components/ScrollableScreen.js.map +0 -1
- package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
- package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
- package/dist/ui/components/StaticMessageHistory.js +0 -19
- package/dist/ui/components/StaticMessageHistory.js.map +0 -1
- package/dist/ui/components/code-block.d.ts +0 -10
- package/dist/ui/components/code-block.d.ts.map +0 -1
- package/dist/ui/components/code-block.js +0 -74
- package/dist/ui/components/code-block.js.map +0 -1
- package/dist/ui/components/confirm-prompt.d.ts +0 -12
- package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
- package/dist/ui/components/confirm-prompt.js +0 -104
- package/dist/ui/components/confirm-prompt.js.map +0 -1
- package/dist/ui/components/diff-viewer.d.ts +0 -9
- package/dist/ui/components/diff-viewer.d.ts.map +0 -1
- package/dist/ui/components/diff-viewer.js +0 -57
- package/dist/ui/components/diff-viewer.js.map +0 -1
- package/dist/ui/components/input-box.d.ts +0 -18
- package/dist/ui/components/input-box.d.ts.map +0 -1
- package/dist/ui/components/input-box.js +0 -157
- package/dist/ui/components/input-box.js.map +0 -1
- package/dist/ui/components/keyboard-help.d.ts +0 -7
- package/dist/ui/components/keyboard-help.d.ts.map +0 -1
- package/dist/ui/components/keyboard-help.js +0 -43
- package/dist/ui/components/keyboard-help.js.map +0 -1
- package/dist/ui/components/loading-indicator.d.ts +0 -3
- package/dist/ui/components/loading-indicator.d.ts.map +0 -1
- package/dist/ui/components/loading-indicator.js +0 -42
- package/dist/ui/components/loading-indicator.js.map +0 -1
- package/dist/ui/components/message-display.d.ts +0 -7
- package/dist/ui/components/message-display.d.ts.map +0 -1
- package/dist/ui/components/message-display.js +0 -104
- package/dist/ui/components/message-display.js.map +0 -1
- package/dist/ui/components/misc.d.ts +0 -28
- package/dist/ui/components/misc.d.ts.map +0 -1
- package/dist/ui/components/misc.js +0 -128
- package/dist/ui/components/misc.js.map +0 -1
- package/dist/ui/components/select-prompt.d.ts +0 -13
- package/dist/ui/components/select-prompt.d.ts.map +0 -1
- package/dist/ui/components/select-prompt.js +0 -42
- package/dist/ui/components/select-prompt.js.map +0 -1
- package/dist/ui/components/status-bar.d.ts +0 -11
- package/dist/ui/components/status-bar.d.ts.map +0 -1
- package/dist/ui/components/status-bar.js +0 -47
- package/dist/ui/components/status-bar.js.map +0 -1
- package/dist/ui/components/tool-execution.d.ts +0 -3
- package/dist/ui/components/tool-execution.d.ts.map +0 -1
- package/dist/ui/components/tool-execution.js +0 -374
- package/dist/ui/components/tool-execution.js.map +0 -1
- package/dist/ui/components/tool-result.d.ts +0 -11
- package/dist/ui/components/tool-result.d.ts.map +0 -1
- package/dist/ui/components/tool-result.js +0 -58
- package/dist/ui/components/tool-result.js.map +0 -1
- package/dist/ui/components/welcome-banner.d.ts +0 -3
- package/dist/ui/components/welcome-banner.d.ts.map +0 -1
- package/dist/ui/components/welcome-banner.js +0 -46
- package/dist/ui/components/welcome-banner.js.map +0 -1
- package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
- package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
- package/dist/ui/hooks/useDisplayHistory.js +0 -45
- package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
- package/dist/ui/render-engine.d.ts +0 -69
- package/dist/ui/render-engine.d.ts.map +0 -1
- package/dist/ui/render-engine.js +0 -197
- package/dist/ui/render-engine.js.map +0 -1
- package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
- package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
- package/dist/ui/terminal/TerminalRenderer.js +0 -154
- package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
- package/dist/ui/terminal/TerminalUI.d.ts +0 -139
- package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
- package/dist/ui/terminal/TerminalUI.js +0 -430
- package/dist/ui/terminal/TerminalUI.js.map +0 -1
- package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
- package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
- package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
- package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
- package/dist/ui/terminal-kit-base.d.ts +0 -117
- package/dist/ui/terminal-kit-base.d.ts.map +0 -1
- package/dist/ui/terminal-kit-base.js +0 -188
- package/dist/ui/terminal-kit-base.js.map +0 -1
- package/dist/ui/utils/duplication-detector.d.ts +0 -32
- package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
- package/dist/ui/utils/duplication-detector.js +0 -227
- package/dist/ui/utils/duplication-detector.js.map +0 -1
- package/dist/ui/utils/duplication-logger.d.ts +0 -21
- package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
- package/dist/ui/utils/duplication-logger.js +0 -85
- package/dist/ui/utils/duplication-logger.js.map +0 -1
- package/dist/ui/utils/terminal-scanner.d.ts +0 -19
- package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
- package/dist/ui/utils/terminal-scanner.js +0 -217
- package/dist/ui/utils/terminal-scanner.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -3
- package/dist/version.js.map +0 -1
- 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":"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"}
|
package/dist/version.d.ts
DELETED
package/dist/version.d.ts.map
DELETED
|
@@ -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
package/dist/version.js.map
DELETED
|
@@ -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}`);
|