From 3dc5c68135d4196676d396b75f5562155f1d2845 Mon Sep 17 00:00:00 2001 From: chiguyong Date: Sat, 13 Jun 2026 02:41:46 +0800 Subject: [PATCH] feat(gui): refactor terminal panel with One Dark Pro theme and Ant Design Modal (U5) - TerminalView: replace native HTML confirmation with Ant Design Modal, make command history sidebar collapsible (default collapsed) - TerminalEmulator: use One Dark Pro CSS variables for ANSI colors, replace all hardcoded colors with Design Tokens - CommandHistory: replace all hardcoded colors with Design Tokens --- .../components/terminal/CommandHistory.vue | 59 +++-- .../components/terminal/TerminalEmulator.vue | 54 +++-- .../frontend/src/views/TerminalView.vue | 204 +++++++----------- 3 files changed, 139 insertions(+), 178 deletions(-) diff --git a/src/agentkit/server/frontend/src/components/terminal/CommandHistory.vue b/src/agentkit/server/frontend/src/components/terminal/CommandHistory.vue index 4b83816..2a3ef10 100644 --- a/src/agentkit/server/frontend/src/components/terminal/CommandHistory.vue +++ b/src/agentkit/server/frontend/src/components/terminal/CommandHistory.vue @@ -15,8 +15,7 @@ >
{{ record.exit_code === 0 ? '✓' : '✗' }} @@ -37,6 +36,7 @@ @@ -95,38 +97,38 @@ function ansiToHtml(text: string): string { display: flex; flex-direction: column; height: 100%; - background: #1e1e1e; - border-radius: 6px; + background: var(--code-bg); + border-radius: var(--radius-md); overflow: hidden; - font-family: 'Menlo', 'Monaco', 'Courier New', monospace; + font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', Menlo, Consolas, monospace; } .terminal-emulator__output { flex: 1; overflow-y: auto; - padding: 12px; - font-size: 13px; - line-height: 1.5; - color: #d4d4d4; + padding: var(--space-3); + font-size: var(--font-sm); + line-height: var(--leading-normal); + color: var(--code-fg); } .terminal-emulator__welcome { - color: #888; + color: var(--code-comment); font-style: italic; } .terminal-emulator__input { display: flex; align-items: center; - padding: 8px 12px; - border-top: 1px solid #333; - background: #252526; + padding: var(--space-2) var(--space-3); + border-top: 1px solid rgba(255, 255, 255, 0.1); + background: rgba(0, 0, 0, 0.2); } .terminal-emulator__prompt { - color: #4caf50; - margin-right: 8px; - font-size: 13px; + color: var(--code-string); + margin-right: var(--space-2); + font-size: var(--font-sm); white-space: nowrap; } @@ -135,17 +137,25 @@ function ansiToHtml(text: string): string { background: transparent; border: none; outline: none; - color: #d4d4d4; + color: var(--code-fg); font-family: inherit; - font-size: 13px; + font-size: var(--font-sm); } .terminal-emulator__input-field::placeholder { - color: #555; + color: var(--code-comment); } .terminal-line { white-space: pre-wrap; word-break: break-all; } + +/* ANSI color classes using One Dark Pro palette */ +.terminal-line :deep(.ansi-green) { color: var(--code-string); } +.terminal-line :deep(.ansi-yellow) { color: var(--code-number); } +.terminal-line :deep(.ansi-red) { color: var(--code-variable); } +.terminal-line :deep(.ansi-cyan) { color: var(--code-function); } +.terminal-line :deep(.ansi-blue) { color: var(--code-function); } +.terminal-line :deep(.ansi-magenta) { color: var(--code-keyword); } diff --git a/src/agentkit/server/frontend/src/views/TerminalView.vue b/src/agentkit/server/frontend/src/views/TerminalView.vue index fd40ff6..dcead2b 100644 --- a/src/agentkit/server/frontend/src/views/TerminalView.vue +++ b/src/agentkit/server/frontend/src/views/TerminalView.vue @@ -2,59 +2,56 @@
- -
-
-
- - 命令确认 -
-
- {{ terminalStore.pendingConfirmation.command }} -
-
- {{ terminalStore.pendingConfirmation.reason }} -
-
- -
- - -
-
-
+
+
+ +
+
-
- -
+ + +
+
+ {{ terminalStore.pendingConfirmation?.command }} +
+
+ {{ terminalStore.pendingConfirmation?.reason }} +
+ + 添加到会话白名单 + +
+