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.
- package/AUTH_FLOW.md +138 -0
- package/CONFIG_GUIDE.md +249 -0
- package/dist/config/models.d.ts +1 -1
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +2 -0
- package/dist/config/models.js.map +1 -1
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +104 -62
- package/dist/ui/components/App.js.map +1 -1
- 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.map +1 -1
- package/dist/ui/components/InputBox.js +3 -2
- 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.js +2 -2
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +3 -3
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/ThinkingDisplay.d.ts +13 -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/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 +5 -5
- 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,157 +0,0 @@
|
|
|
1
|
-
import { term, ensureScreenBuffer, createColorAttr, colors, drawBox } from '../terminal-kit-base.js';
|
|
2
|
-
// Render the input box (static parts - border, labels)
|
|
3
|
-
export function renderInputBox(options) {
|
|
4
|
-
const { x, y, width, model, autoAcceptMode, placeholder = 'Ask anything...' } = options;
|
|
5
|
-
// Box height is fixed at 8 lines:
|
|
6
|
-
// 1: top border
|
|
7
|
-
// 2: empty line
|
|
8
|
-
// 3: header (Your Message: ... Model: X [AUTO-ACCEPT])
|
|
9
|
-
// 4: empty line
|
|
10
|
-
// 5: input line (> placeholder/text)
|
|
11
|
-
// 6: empty line
|
|
12
|
-
// 7: help text (Ctrl+T... • Ctrl+C...)
|
|
13
|
-
// 8: bottom border
|
|
14
|
-
const height = 8;
|
|
15
|
-
// Draw rounded border with dark blue color
|
|
16
|
-
drawBox({
|
|
17
|
-
x,
|
|
18
|
-
y,
|
|
19
|
-
width,
|
|
20
|
-
height,
|
|
21
|
-
borderStyle: 'rounded',
|
|
22
|
-
borderColor: colors.border, // #003b59
|
|
23
|
-
});
|
|
24
|
-
// Line 3: Header
|
|
25
|
-
const headerY = y + 2;
|
|
26
|
-
const buffer = ensureScreenBuffer();
|
|
27
|
-
// Left side: "Your Message:"
|
|
28
|
-
const headerLeftAttr = createColorAttr(colors.primary, true); // Cyan, bold
|
|
29
|
-
buffer.put({ x: x + 2, y: headerY, attr: headerLeftAttr }, 'Your Message:');
|
|
30
|
-
// Right side: Model info and auto-accept status
|
|
31
|
-
const modelLabelAttr = createColorAttr(colors.dimmed); // Gray
|
|
32
|
-
const modelValueAttr = createColorAttr(colors.primary); // Cyan
|
|
33
|
-
let rightSideText = `Model: `;
|
|
34
|
-
let rightSideX = x + width - 2; // Start from right edge
|
|
35
|
-
// Auto-accept status
|
|
36
|
-
let autoAcceptText;
|
|
37
|
-
let autoAcceptAttr;
|
|
38
|
-
if (autoAcceptMode) {
|
|
39
|
-
autoAcceptText = '[AUTO-ACCEPT: ON]';
|
|
40
|
-
autoAcceptAttr = createColorAttr(colors.success, true); // Green, bold
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
autoAcceptText = '[AUTO-ACCEPT: OFF]';
|
|
44
|
-
autoAcceptAttr = createColorAttr(colors.dimmed, false, true); // Gray, dimmed
|
|
45
|
-
}
|
|
46
|
-
// Calculate positions (right-aligned)
|
|
47
|
-
const totalRightLength = `Model: ${model} ${autoAcceptText}`.length;
|
|
48
|
-
rightSideX = x + width - totalRightLength - 2;
|
|
49
|
-
// Render right side
|
|
50
|
-
buffer.put({ x: rightSideX, y: headerY, attr: modelLabelAttr }, 'Model: ');
|
|
51
|
-
buffer.put({
|
|
52
|
-
x: rightSideX + 'Model: '.length,
|
|
53
|
-
y: headerY,
|
|
54
|
-
attr: modelValueAttr
|
|
55
|
-
}, model);
|
|
56
|
-
buffer.put({
|
|
57
|
-
x: rightSideX + `Model: ${model} `.length,
|
|
58
|
-
y: headerY,
|
|
59
|
-
attr: autoAcceptAttr
|
|
60
|
-
}, autoAcceptText);
|
|
61
|
-
// Line 5: Input prompt prefix "> "
|
|
62
|
-
const inputY = y + 4;
|
|
63
|
-
const promptAttr = createColorAttr(colors.dimmed); // Gray
|
|
64
|
-
buffer.put({ x: x + 2, y: inputY, attr: promptAttr }, '> ');
|
|
65
|
-
// Line 7: Help text
|
|
66
|
-
const helpY = y + 6;
|
|
67
|
-
const helpAttr = createColorAttr(colors.dimmed, false, true); // Gray, dimmed
|
|
68
|
-
const helpText = 'Ctrl+T to toggle auto-accept • Ctrl+C to exit';
|
|
69
|
-
buffer.put({ x: x + 2, y: helpY, attr: helpAttr }, helpText);
|
|
70
|
-
}
|
|
71
|
-
// Get input from user with simple line input
|
|
72
|
-
export async function getInput(x, y, width, placeholder, callbacks) {
|
|
73
|
-
// Calculate input field position
|
|
74
|
-
// Inside box at line 5, after "> " prompt
|
|
75
|
-
const inputX = x + 4; // x + 2 (padding) + 2 ("> " prompt)
|
|
76
|
-
const inputY = y + 4;
|
|
77
|
-
const inputWidth = width - 8; // Subtract padding and prompt
|
|
78
|
-
return new Promise((resolve) => {
|
|
79
|
-
let currentInput = '';
|
|
80
|
-
let hasSubmitted = false;
|
|
81
|
-
// Position cursor at input start
|
|
82
|
-
term.moveTo(inputX, inputY);
|
|
83
|
-
// Show cursor
|
|
84
|
-
term.hideCursor(false);
|
|
85
|
-
// Handle key events
|
|
86
|
-
const keyHandler = (name, matches, data) => {
|
|
87
|
-
if (hasSubmitted)
|
|
88
|
-
return;
|
|
89
|
-
// Handle Ctrl+C - Exit
|
|
90
|
-
if (name === 'CTRL_C') {
|
|
91
|
-
term.removeListener('key', keyHandler);
|
|
92
|
-
callbacks.onExit();
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
// Handle Ctrl+T - Toggle auto-accept
|
|
96
|
-
if (name === 'CTRL_T') {
|
|
97
|
-
callbacks.onToggleAutoAccept();
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// Handle Enter - Submit
|
|
101
|
-
if (name === 'ENTER') {
|
|
102
|
-
hasSubmitted = true;
|
|
103
|
-
term.removeListener('key', keyHandler);
|
|
104
|
-
// Clear the input line before resolving
|
|
105
|
-
term.moveTo(inputX, inputY);
|
|
106
|
-
term.eraseLine();
|
|
107
|
-
resolve(currentInput.trim());
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// Handle Backspace
|
|
111
|
-
if (name === 'BACKSPACE') {
|
|
112
|
-
if (currentInput.length > 0) {
|
|
113
|
-
currentInput = currentInput.slice(0, -1);
|
|
114
|
-
// Clear the line and rewrite
|
|
115
|
-
term.moveTo(inputX, inputY);
|
|
116
|
-
term.eraseLine();
|
|
117
|
-
term(currentInput);
|
|
118
|
-
}
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
// Handle regular character input
|
|
122
|
-
// Check if it's a character (terminal-kit provides isCharacter flag)
|
|
123
|
-
if (data && data.isCharacter && data.codepoint) {
|
|
124
|
-
if (currentInput.length < inputWidth) {
|
|
125
|
-
const char = String.fromCharCode(data.codepoint);
|
|
126
|
-
currentInput += char;
|
|
127
|
-
term(char);
|
|
128
|
-
}
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
term.on('key', keyHandler);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
// Clear input field
|
|
136
|
-
export function clearInputField(x, y, width) {
|
|
137
|
-
const inputY = y + 4;
|
|
138
|
-
const inputX = x + 4; // After "> " prompt
|
|
139
|
-
const inputWidth = width - 8;
|
|
140
|
-
// Clear the input area with spaces
|
|
141
|
-
const clearAttr = createColorAttr(colors.text);
|
|
142
|
-
const buffer = ensureScreenBuffer();
|
|
143
|
-
buffer.put({ x: inputX, y: inputY, attr: clearAttr }, ' '.repeat(inputWidth));
|
|
144
|
-
}
|
|
145
|
-
// Show placeholder text
|
|
146
|
-
export function showPlaceholder(x, y, width, placeholder) {
|
|
147
|
-
const inputY = y + 4;
|
|
148
|
-
const inputX = x + 4; // After "> " prompt
|
|
149
|
-
const inputWidth = width - 8;
|
|
150
|
-
const placeholderAttr = createColorAttr(colors.dimmed, false, true); // Gray, dimmed
|
|
151
|
-
const truncatedPlaceholder = placeholder.length > inputWidth
|
|
152
|
-
? placeholder.slice(0, inputWidth - 3) + '...'
|
|
153
|
-
: placeholder;
|
|
154
|
-
const buffer = ensureScreenBuffer();
|
|
155
|
-
buffer.put({ x: inputX, y: inputY, attr: placeholderAttr }, truncatedPlaceholder);
|
|
156
|
-
}
|
|
157
|
-
//# sourceMappingURL=input-box.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-box.js","sourceRoot":"","sources":["../../../src/ui/components/input-box.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-help.d.ts","sourceRoot":"","sources":["../../../src/ui/components/keyboard-help.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CA0CvE"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { screenBuffer, createColorAttr, colors, drawBox, pad } from '../terminal-kit-base.js';
|
|
2
|
-
// Keyboard shortcuts from UI_ELEMENTS_REFERENCE.md
|
|
3
|
-
const SHORTCUTS = [
|
|
4
|
-
{ key: 'Enter', action: 'Submit message' },
|
|
5
|
-
{ key: 'Ctrl+T', action: 'Toggle auto-accept mode' },
|
|
6
|
-
{ key: 'Ctrl+C', action: 'Exit application' },
|
|
7
|
-
{ key: '/', action: 'Start slash command' },
|
|
8
|
-
{ key: '?', action: 'Show/hide this help' },
|
|
9
|
-
];
|
|
10
|
-
// Render keyboard help overlay
|
|
11
|
-
export function renderKeyboardHelp(options) {
|
|
12
|
-
const { x, y, width } = options;
|
|
13
|
-
const height = 4 + SHORTCUTS.length + 2; // Border + header + shortcuts + footer + border
|
|
14
|
-
// Draw double-line border with cyan color
|
|
15
|
-
drawBox({
|
|
16
|
-
x,
|
|
17
|
-
y,
|
|
18
|
-
width,
|
|
19
|
-
height,
|
|
20
|
-
borderStyle: 'double',
|
|
21
|
-
borderColor: colors.primary, // #00ccff (Cyan)
|
|
22
|
-
});
|
|
23
|
-
let currentY = y + 1;
|
|
24
|
-
// Header: "Keyboard Shortcuts"
|
|
25
|
-
const headerAttr = createColorAttr(colors.primary, true); // Cyan, bold
|
|
26
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: headerAttr }, 'Keyboard Shortcuts');
|
|
27
|
-
currentY += 2; // Header + empty line
|
|
28
|
-
// Shortcuts list
|
|
29
|
-
const keyAttr = createColorAttr(colors.success, true); // Green, bold
|
|
30
|
-
const actionAttr = createColorAttr(colors.text); // White
|
|
31
|
-
for (const shortcut of SHORTCUTS) {
|
|
32
|
-
const paddedKey = pad(shortcut.key, 15, ' ', 'left'); // Pad to 15 chars
|
|
33
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: keyAttr }, paddedKey);
|
|
34
|
-
screenBuffer.put({ x: x + 2 + 15, y: currentY, attr: actionAttr }, shortcut.action);
|
|
35
|
-
currentY += 2; // Shortcut + margin
|
|
36
|
-
}
|
|
37
|
-
// Footer: "Press ? or ESC to close"
|
|
38
|
-
const footerAttr = createColorAttr(colors.dimmed, false, true); // Dimmed
|
|
39
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: footerAttr }, 'Press ? or ESC to close');
|
|
40
|
-
// Return height + bottom margin
|
|
41
|
-
return height + 1;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=keyboard-help.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-help.js","sourceRoot":"","sources":["../../../src/ui/components/keyboard-help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAE9F,mDAAmD;AACnD,MAAM,SAAS,GAAG;IAChB,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC1C,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE;IACpD,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE;IAC7C,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,EAAE;IAC3C,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,qBAAqB,EAAE;CAC5C,CAAC;AAQF,+BAA+B;AAC/B,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEhC,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gDAAgD;IAEzF,0CAA0C;IAC1C,OAAO,CAAC;QACN,CAAC;QACD,CAAC;QACD,KAAK;QACL,MAAM;QACN,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,iBAAiB;KAC/C,CAAC,CAAC;IAEH,IAAI,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IAErB,+BAA+B;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa;IACvE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAEpF,QAAQ,IAAI,CAAC,CAAC,CAAC,sBAAsB;IAErC,iBAAiB;IACjB,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc;IACrE,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;IAEzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB;QAExE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACtE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEpF,QAAQ,IAAI,CAAC,CAAC,CAAC,oBAAoB;IACrC,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS;IACzE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,yBAAyB,CAAC,CAAC;IAEzF,gCAAgC;IAChC,OAAO,MAAM,GAAG,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loading-indicator.d.ts","sourceRoot":"","sources":["../../../src/ui/components/loading-indicator.ts"],"names":[],"mappings":"AA4BA,wBAAgB,mBAAmB,SAElC;AAKD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAanE"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ensureScreenBuffer, createColorAttr, colors } from '../terminal-kit-base.js';
|
|
2
|
-
// Loading messages from UI_ELEMENTS_REFERENCE.md (exact)
|
|
3
|
-
const LOADING_MESSAGES = [
|
|
4
|
-
'Thrusting',
|
|
5
|
-
'Propelling',
|
|
6
|
-
'Boosting',
|
|
7
|
-
'Launching',
|
|
8
|
-
'Intercepting',
|
|
9
|
-
'Slingshotting',
|
|
10
|
-
'Accelerating',
|
|
11
|
-
'Cruising',
|
|
12
|
-
'Warping',
|
|
13
|
-
'Docking',
|
|
14
|
-
];
|
|
15
|
-
let selectedMessage = null;
|
|
16
|
-
// Select a random message (only once per loading session)
|
|
17
|
-
function getRandomMessage() {
|
|
18
|
-
if (!selectedMessage) {
|
|
19
|
-
const index = Math.floor(Math.random() * LOADING_MESSAGES.length);
|
|
20
|
-
selectedMessage = LOADING_MESSAGES[index];
|
|
21
|
-
}
|
|
22
|
-
return selectedMessage;
|
|
23
|
-
}
|
|
24
|
-
// Reset the selected message (call when loading is done)
|
|
25
|
-
export function resetLoadingMessage() {
|
|
26
|
-
selectedMessage = null;
|
|
27
|
-
}
|
|
28
|
-
// Render loading indicator
|
|
29
|
-
// Format: ⏳ {RandomLoadingMessage}...
|
|
30
|
-
// Returns height (1 line + bottom margin)
|
|
31
|
-
export function renderLoadingIndicator(x, y) {
|
|
32
|
-
const message = getRandomMessage();
|
|
33
|
-
const text = `⏳ ${message}...`;
|
|
34
|
-
// Cyan, bold
|
|
35
|
-
const attr = createColorAttr(colors.primary, true);
|
|
36
|
-
// Padding left: 1 space
|
|
37
|
-
const buffer = ensureScreenBuffer();
|
|
38
|
-
buffer.put({ x: x + 1, y, attr }, text);
|
|
39
|
-
// Return height: 1 line + bottom margin (1 line) = 2
|
|
40
|
-
return 2;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=loading-indicator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loading-indicator.js","sourceRoot":"","sources":["../../../src/ui/components/loading-indicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtF,yDAAyD;AACzD,MAAM,gBAAgB,GAAG;IACvB,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,cAAc;IACd,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;IACT,SAAS;CACV,CAAC;AAEF,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,0DAA0D;AAC1D,SAAS,gBAAgB;IACvB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClE,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB;IACjC,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,2BAA2B;AAC3B,sCAAsC;AACtC,0CAA0C;AAC1C,MAAM,UAAU,sBAAsB,CAAC,CAAS,EAAE,CAAS;IACzD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,OAAO,KAAK,CAAC;IAE/B,aAAa;IACb,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAEnD,wBAAwB;IACxB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAExC,qDAAqD;IACrD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Message } from '../../types/index.js';
|
|
2
|
-
export declare function renderMessage(message: Message, x: number, y: number, maxWidth: number): number;
|
|
3
|
-
export declare function renderMessages(messages: Message[], x: number, startY: number, maxWidth: number, maxHeight: number): {
|
|
4
|
-
endY: number;
|
|
5
|
-
renderedCount: number;
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=message-display.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-display.d.ts","sourceRoot":"","sources":["../../../src/ui/components/message-display.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAiD/C,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+C9F;AAGD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,OAAO,EAAE,EACnB,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAqBzC"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { ensureScreenBuffer, createColorAttr, colors, wrapText } from '../terminal-kit-base.js';
|
|
2
|
-
// Role color mapping (from UI_ELEMENTS_REFERENCE.md)
|
|
3
|
-
function getRoleColor(role) {
|
|
4
|
-
switch (role) {
|
|
5
|
-
case 'user':
|
|
6
|
-
return colors.primary; // #00ccff (Cyan)
|
|
7
|
-
case 'assistant':
|
|
8
|
-
return colors.success; // #00cc66 (Green)
|
|
9
|
-
case 'system':
|
|
10
|
-
return colors.warning; // #ffaa00 (Orange)
|
|
11
|
-
case 'tool':
|
|
12
|
-
return colors.primary; // #00ccff (Cyan)
|
|
13
|
-
default:
|
|
14
|
-
return colors.text; // #ffffff (White)
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
// Role label mapping
|
|
18
|
-
function getRoleLabel(role) {
|
|
19
|
-
switch (role) {
|
|
20
|
-
case 'user':
|
|
21
|
-
return 'You';
|
|
22
|
-
case 'assistant':
|
|
23
|
-
return 'Centaurus';
|
|
24
|
-
case 'system':
|
|
25
|
-
return 'System';
|
|
26
|
-
case 'tool':
|
|
27
|
-
return 'Tool';
|
|
28
|
-
default:
|
|
29
|
-
return role;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
// Format timestamp: HH:MM:SS AM/PM (e.g., "10:43:31 am")
|
|
33
|
-
function formatTimestamp(timestamp) {
|
|
34
|
-
if (!timestamp)
|
|
35
|
-
return '';
|
|
36
|
-
const date = new Date(timestamp);
|
|
37
|
-
return date.toLocaleTimeString('en-US', {
|
|
38
|
-
hour: '2-digit',
|
|
39
|
-
minute: '2-digit',
|
|
40
|
-
second: '2-digit',
|
|
41
|
-
hour12: true,
|
|
42
|
-
}).toLowerCase();
|
|
43
|
-
}
|
|
44
|
-
// Render a single message
|
|
45
|
-
// Returns the number of lines rendered
|
|
46
|
-
export function renderMessage(message, x, y, maxWidth) {
|
|
47
|
-
let currentY = y;
|
|
48
|
-
// Format: {RoleLabel}: {timestamp}
|
|
49
|
-
const roleLabel = getRoleLabel(message.role);
|
|
50
|
-
const timestamp = formatTimestamp(message.timestamp);
|
|
51
|
-
const roleColor = getRoleColor(message.role);
|
|
52
|
-
const roleAttr = createColorAttr(roleColor, true); // Bold
|
|
53
|
-
const timestampAttr = createColorAttr(colors.dimmed, false, true); // Dimmed
|
|
54
|
-
// Render role and timestamp
|
|
55
|
-
let headerText = `${roleLabel}:`;
|
|
56
|
-
if (timestamp) {
|
|
57
|
-
headerText += ` ${timestamp}`;
|
|
58
|
-
}
|
|
59
|
-
// Split header into role (colored, bold) and timestamp (dimmed)
|
|
60
|
-
const buffer = ensureScreenBuffer();
|
|
61
|
-
buffer.put({ x, y: currentY, attr: roleAttr }, roleLabel + ':');
|
|
62
|
-
if (timestamp) {
|
|
63
|
-
buffer.put({
|
|
64
|
-
x: x + roleLabel.length + 1,
|
|
65
|
-
y: currentY,
|
|
66
|
-
attr: timestampAttr
|
|
67
|
-
}, ' ' + timestamp);
|
|
68
|
-
}
|
|
69
|
-
currentY++;
|
|
70
|
-
// Empty line after header
|
|
71
|
-
currentY++;
|
|
72
|
-
// Render message content (indented by 2 spaces, wrapped to fit width)
|
|
73
|
-
const contentAttr = createColorAttr(colors.text); // White
|
|
74
|
-
const contentMaxWidth = maxWidth - 4; // Leave some margin
|
|
75
|
-
const wrappedLines = wrapText(message.content, contentMaxWidth);
|
|
76
|
-
for (const line of wrappedLines) {
|
|
77
|
-
buffer.put({ x: x + 2, y: currentY, attr: contentAttr }, line);
|
|
78
|
-
currentY++;
|
|
79
|
-
}
|
|
80
|
-
// Bottom margin (1 line)
|
|
81
|
-
currentY++;
|
|
82
|
-
// Return total height
|
|
83
|
-
return currentY - y;
|
|
84
|
-
}
|
|
85
|
-
// Render multiple messages
|
|
86
|
-
export function renderMessages(messages, x, startY, maxWidth, maxHeight) {
|
|
87
|
-
let currentY = startY;
|
|
88
|
-
let renderedCount = 0;
|
|
89
|
-
for (const message of messages) {
|
|
90
|
-
// Check if we have space for at least the header
|
|
91
|
-
if (currentY + 3 > startY + maxHeight) {
|
|
92
|
-
break; // Out of space
|
|
93
|
-
}
|
|
94
|
-
// Skip tool messages (they're rendered by ToolExecutionMessage)
|
|
95
|
-
if (message.toolExecution) {
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
const height = renderMessage(message, x, currentY, maxWidth);
|
|
99
|
-
currentY += height;
|
|
100
|
-
renderedCount++;
|
|
101
|
-
}
|
|
102
|
-
return { endY: currentY, renderedCount };
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=message-display.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-display.js","sourceRoot":"","sources":["../../../src/ui/components/message-display.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export interface FileOperationOptions {
|
|
2
|
-
x: number;
|
|
3
|
-
y: number;
|
|
4
|
-
width: number;
|
|
5
|
-
operation: 'create' | 'edit' | 'delete';
|
|
6
|
-
filePath: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function renderFileOperation(options: FileOperationOptions): number;
|
|
9
|
-
export interface ToolExecutionStatusOptions {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
toolName: string;
|
|
13
|
-
status: 'pending' | 'executing' | 'success' | 'error';
|
|
14
|
-
result?: string;
|
|
15
|
-
error?: string;
|
|
16
|
-
}
|
|
17
|
-
export declare function renderToolExecutionStatus(options: ToolExecutionStatusOptions): number;
|
|
18
|
-
export interface ConfigViewerOptions {
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
width: number;
|
|
22
|
-
provider: string;
|
|
23
|
-
model: string;
|
|
24
|
-
apiKeyMasked: string;
|
|
25
|
-
autoAcceptMode: boolean;
|
|
26
|
-
}
|
|
27
|
-
export declare function renderConfigViewer(options: ConfigViewerOptions): number;
|
|
28
|
-
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../src/ui/components/misc.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAsBzE;AAID,MAAM,WAAW,0BAA0B;IACzC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAsDrF;AAID,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAsDvE"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
// Miscellaneous components (FileOperation, ToolExecutionStatus, ConfigViewer)
|
|
2
|
-
// These are helper components not currently used in main flow but included for completeness
|
|
3
|
-
import { screenBuffer, createColorAttr, colors, drawBox } from '../terminal-kit-base.js';
|
|
4
|
-
function getOperationDetails(operation) {
|
|
5
|
-
switch (operation) {
|
|
6
|
-
case 'create':
|
|
7
|
-
return { color: colors.success, icon: '+', label: 'CREATE' };
|
|
8
|
-
case 'edit':
|
|
9
|
-
return { color: colors.warning, icon: '~', label: 'EDIT' };
|
|
10
|
-
case 'delete':
|
|
11
|
-
return { color: colors.error, icon: '-', label: 'DELETE' };
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export function renderFileOperation(options) {
|
|
15
|
-
const { x, y, width, operation, filePath } = options;
|
|
16
|
-
const details = getOperationDetails(operation);
|
|
17
|
-
const height = 4; // Border + header + empty + border
|
|
18
|
-
drawBox({
|
|
19
|
-
x,
|
|
20
|
-
y,
|
|
21
|
-
width,
|
|
22
|
-
height,
|
|
23
|
-
borderStyle: 'rounded',
|
|
24
|
-
borderColor: details.color,
|
|
25
|
-
});
|
|
26
|
-
// Header: {icon} {OPERATION}: {filePath}
|
|
27
|
-
const headerAttr = createColorAttr(details.color, true); // Bold
|
|
28
|
-
const headerText = `${details.icon} ${details.label}: ${filePath}`;
|
|
29
|
-
screenBuffer.put({ x: x + 2, y: y + 1, attr: headerAttr }, headerText);
|
|
30
|
-
return height + 1;
|
|
31
|
-
}
|
|
32
|
-
const TOOL_INFO = {
|
|
33
|
-
read_file: { verb: 'Reading file', emoji: '📖' },
|
|
34
|
-
write_file: { verb: 'Writing file', emoji: '✍️' },
|
|
35
|
-
edit_file: { verb: 'Editing file', emoji: '✏️' },
|
|
36
|
-
list_directory: { verb: 'Listing directory', emoji: '📁' },
|
|
37
|
-
execute_command: { verb: 'Executing command', emoji: '⚡' },
|
|
38
|
-
grep_search: { verb: 'Searching files', emoji: '🔍' },
|
|
39
|
-
};
|
|
40
|
-
export function renderToolExecutionStatus(options) {
|
|
41
|
-
const { x, y, toolName, status, result, error } = options;
|
|
42
|
-
const toolInfo = TOOL_INFO[toolName] || { verb: 'Executing', emoji: '🔧' };
|
|
43
|
-
let currentY = y;
|
|
44
|
-
if (status === 'pending') {
|
|
45
|
-
// ⏳ {verb}...
|
|
46
|
-
const attr = createColorAttr(colors.dimmed, false, true); // Dimmed
|
|
47
|
-
screenBuffer.put({ x, y: currentY, attr }, `⏳ ${toolInfo.verb}...`);
|
|
48
|
-
return 1;
|
|
49
|
-
}
|
|
50
|
-
if (status === 'executing') {
|
|
51
|
-
// {spinner icon} {emoji} {verb}...
|
|
52
|
-
const attr = createColorAttr(colors.primary, true); // Cyan, bold
|
|
53
|
-
screenBuffer.put({ x, y: currentY, attr }, `⏳ ${toolInfo.emoji} ${toolInfo.verb}...`);
|
|
54
|
-
return 1;
|
|
55
|
-
}
|
|
56
|
-
if (status === 'success') {
|
|
57
|
-
// ✓ {emoji} {verb}
|
|
58
|
-
const attr = createColorAttr(colors.success, true); // Green, bold
|
|
59
|
-
screenBuffer.put({ x, y: currentY, attr }, `✓ ${toolInfo.emoji} ${toolInfo.verb}`);
|
|
60
|
-
currentY++;
|
|
61
|
-
// Result (if < 300 chars, indented by 2 spaces)
|
|
62
|
-
if (result && result.length < 300) {
|
|
63
|
-
const resultAttr = createColorAttr(colors.dimmed); // Gray
|
|
64
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: resultAttr }, result);
|
|
65
|
-
currentY++;
|
|
66
|
-
}
|
|
67
|
-
return currentY - y;
|
|
68
|
-
}
|
|
69
|
-
if (status === 'error') {
|
|
70
|
-
// ✗ {emoji} {verb} failed
|
|
71
|
-
const attr = createColorAttr(colors.error, true); // Red, bold
|
|
72
|
-
screenBuffer.put({ x, y: currentY, attr }, `✗ ${toolInfo.emoji} ${toolInfo.verb} failed`);
|
|
73
|
-
currentY++;
|
|
74
|
-
// Error (max 200 chars, indented by 2 spaces)
|
|
75
|
-
if (error) {
|
|
76
|
-
const errorAttr = createColorAttr(colors.error); // Red
|
|
77
|
-
const truncatedError = error.slice(0, 200) + (error.length > 200 ? '...' : '');
|
|
78
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: errorAttr }, truncatedError);
|
|
79
|
-
currentY++;
|
|
80
|
-
}
|
|
81
|
-
return currentY - y;
|
|
82
|
-
}
|
|
83
|
-
return 0;
|
|
84
|
-
}
|
|
85
|
-
export function renderConfigViewer(options) {
|
|
86
|
-
const { x, y, width, provider, model, apiKeyMasked, autoAcceptMode } = options;
|
|
87
|
-
const height = 10; // Border + header + 4 config items + footer + border
|
|
88
|
-
drawBox({
|
|
89
|
-
x,
|
|
90
|
-
y,
|
|
91
|
-
width,
|
|
92
|
-
height,
|
|
93
|
-
borderStyle: 'rounded',
|
|
94
|
-
borderColor: colors.primary, // #00ccff (Cyan)
|
|
95
|
-
});
|
|
96
|
-
let currentY = y + 1;
|
|
97
|
-
// Header: "Current Configuration"
|
|
98
|
-
const headerAttr = createColorAttr(colors.primary, true); // Cyan, bold
|
|
99
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: headerAttr }, 'Current Configuration');
|
|
100
|
-
currentY += 2; // Header + empty line
|
|
101
|
-
// Config items
|
|
102
|
-
const labelAttr = createColorAttr(colors.warning); // Orange
|
|
103
|
-
const valueAttr = createColorAttr(colors.text); // White
|
|
104
|
-
// Provider
|
|
105
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: labelAttr }, 'Provider: ');
|
|
106
|
-
screenBuffer.put({ x: x + 2 + 'Provider: '.length, y: currentY, attr: valueAttr }, provider);
|
|
107
|
-
currentY += 2;
|
|
108
|
-
// Model
|
|
109
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: labelAttr }, 'Model: ');
|
|
110
|
-
screenBuffer.put({ x: x + 2 + 'Model: '.length, y: currentY, attr: valueAttr }, model);
|
|
111
|
-
currentY += 2;
|
|
112
|
-
// API Key
|
|
113
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: labelAttr }, 'API Key: ');
|
|
114
|
-
screenBuffer.put({ x: x + 2 + 'API Key: '.length, y: currentY, attr: valueAttr }, apiKeyMasked);
|
|
115
|
-
currentY += 2;
|
|
116
|
-
// Auto-Accept
|
|
117
|
-
const autoAcceptColor = autoAcceptMode ? colors.success : colors.error; // Green or Red
|
|
118
|
-
const autoAcceptValue = autoAcceptMode ? 'ON' : 'OFF';
|
|
119
|
-
const autoAcceptValueAttr = createColorAttr(autoAcceptColor);
|
|
120
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: labelAttr }, 'Auto-Accept: ');
|
|
121
|
-
screenBuffer.put({ x: x + 2 + 'Auto-Accept: '.length, y: currentY, attr: autoAcceptValueAttr }, autoAcceptValue);
|
|
122
|
-
currentY += 2;
|
|
123
|
-
// Footer: "Press ESC or Q to close"
|
|
124
|
-
const footerAttr = createColorAttr(colors.dimmed, false, true); // Dimmed
|
|
125
|
-
screenBuffer.put({ x: x + 2, y: currentY, attr: footerAttr }, 'Press ESC or Q to close');
|
|
126
|
-
return height + 1;
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=misc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/ui/components/misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface SelectPromptOptions {
|
|
2
|
-
x: number;
|
|
3
|
-
y: number;
|
|
4
|
-
width: number;
|
|
5
|
-
message: string;
|
|
6
|
-
choices: Array<{
|
|
7
|
-
label: string;
|
|
8
|
-
value: string;
|
|
9
|
-
}>;
|
|
10
|
-
}
|
|
11
|
-
export declare function renderSelectPrompt(options: SelectPromptOptions): number;
|
|
12
|
-
export declare function waitForSelection(options: SelectPromptOptions): Promise<string | null>;
|
|
13
|
-
//# sourceMappingURL=select-prompt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-prompt.d.ts","sourceRoot":"","sources":["../../../src/ui/components/select-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAqBvE;AAGD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2BxB"}
|