From cc0d3f8b00632bb5af7758aa9fd6b298eda15e00 Mon Sep 17 00:00:00 2001 From: liuzh Date: Wed, 1 Apr 2026 20:43:31 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"fix:=20=E5=B0=86=E6=89=80=E6=9C=89emo?= =?UTF-8?q?ji/Unicode=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2=E4=B8=BAASCII=E5=AE=89=E5=85=A8=E5=AD=97=E7=AC=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 3cd67ffe451be2cc7a66b5c554966f1d5aa58c7c. --- .../java/com/claudecode/command/impl/ClearCommand.java | 2 +- .../com/claudecode/command/impl/CompactCommand.java | 4 ++-- .../java/com/claudecode/command/impl/ModelCommand.java | 2 +- .../java/com/claudecode/console/BannerPrinter.java | 6 +++--- .../java/com/claudecode/console/MarkdownRenderer.java | 2 +- .../java/com/claudecode/console/ThinkingRenderer.java | 4 ++-- .../com/claudecode/console/ToolStatusRenderer.java | 6 +++--- .../java/com/claudecode/repl/ClaudeCodeCompleter.java | 2 +- src/main/java/com/claudecode/repl/ReplSession.java | 10 +++++----- src/main/java/com/claudecode/tool/impl/BashTool.java | 2 +- .../java/com/claudecode/tool/impl/FileEditTool.java | 4 ++-- .../java/com/claudecode/tool/impl/FileReadTool.java | 2 +- .../java/com/claudecode/tool/impl/FileWriteTool.java | 6 +++--- src/main/java/com/claudecode/tool/impl/GlobTool.java | 2 +- src/main/java/com/claudecode/tool/impl/GrepTool.java | 2 +- 15 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/claudecode/command/impl/ClearCommand.java b/src/main/java/com/claudecode/command/impl/ClearCommand.java index 396ab89..8e8fe80 100644 --- a/src/main/java/com/claudecode/command/impl/ClearCommand.java +++ b/src/main/java/com/claudecode/command/impl/ClearCommand.java @@ -24,6 +24,6 @@ public class ClearCommand implements SlashCommand { if (context.agentLoop() != null) { context.agentLoop().reset(); } - return AnsiStyle.green(" [OK] Conversation history cleared."); + return AnsiStyle.green(" ✓ Conversation history cleared."); } } diff --git a/src/main/java/com/claudecode/command/impl/CompactCommand.java b/src/main/java/com/claudecode/command/impl/CompactCommand.java index f7b2bf5..70bfdac 100644 --- a/src/main/java/com/claudecode/command/impl/CompactCommand.java +++ b/src/main/java/com/claudecode/command/impl/CompactCommand.java @@ -27,8 +27,8 @@ public class CompactCommand implements SlashCommand { if (context.agentLoop() != null) { int before = context.agentLoop().getMessageHistory().size(); context.agentLoop().reset(); - return AnsiStyle.green(" [OK] Context compacted: " + before + " messages -> 1 (system prompt only)"); + return AnsiStyle.green(" ✓ Context compacted: " + before + " messages → 1 (system prompt only)"); } - return AnsiStyle.yellow(" [!] No active conversation to compact."); + return AnsiStyle.yellow(" ⚠ No active conversation to compact."); } } diff --git a/src/main/java/com/claudecode/command/impl/ModelCommand.java b/src/main/java/com/claudecode/command/impl/ModelCommand.java index 55c0b91..0b862bf 100644 --- a/src/main/java/com/claudecode/command/impl/ModelCommand.java +++ b/src/main/java/com/claudecode/command/impl/ModelCommand.java @@ -38,7 +38,7 @@ public class ModelCommand implements SlashCommand { if (args != null && !args.isBlank()) { sb.append("\n"); - sb.append(AnsiStyle.yellow(" [!] Model switching not yet implemented. Set AI_MODEL env variable.")); + sb.append(AnsiStyle.yellow(" ⚠ Model switching not yet implemented. Set AI_MODEL env variable.")); } return sb.toString(); diff --git a/src/main/java/com/claudecode/console/BannerPrinter.java b/src/main/java/com/claudecode/console/BannerPrinter.java index 6251112..2b0e528 100644 --- a/src/main/java/com/claudecode/console/BannerPrinter.java +++ b/src/main/java/com/claudecode/console/BannerPrinter.java @@ -34,7 +34,7 @@ public class BannerPrinter { out.println(banner); out.println(AnsiStyle.bold(" Claude Code (Java)") + AnsiStyle.dim(" v" + VERSION)); - out.println(AnsiStyle.dim(" Powered by Spring AI | Type /help for commands")); + out.println(AnsiStyle.dim(" Powered by Spring AI • Type /help for commands")); out.println(); } @@ -43,9 +43,9 @@ public class BannerPrinter { */ public static void printCompact(PrintStream out) { out.println(); - out.println(AnsiStyle.BRIGHT_CYAN + AnsiStyle.BOLD + " > Claude Code (Java)" + AnsiStyle.RESET + out.println(AnsiStyle.BRIGHT_CYAN + AnsiStyle.BOLD + " ◆ Claude Code (Java)" + AnsiStyle.RESET + AnsiStyle.dim(" v" + VERSION)); - out.println(AnsiStyle.dim(" Type /help for commands | Ctrl+D to exit")); + out.println(AnsiStyle.dim(" Type /help for commands • Ctrl+D to exit")); out.println(); } } diff --git a/src/main/java/com/claudecode/console/MarkdownRenderer.java b/src/main/java/com/claudecode/console/MarkdownRenderer.java index d9262af..d901d2a 100644 --- a/src/main/java/com/claudecode/console/MarkdownRenderer.java +++ b/src/main/java/com/claudecode/console/MarkdownRenderer.java @@ -53,7 +53,7 @@ public class MarkdownRenderer { } // 列表项 else if (line.stripLeading().startsWith("- ") || line.stripLeading().startsWith("* ")) { - out.println(" " + AnsiStyle.CYAN + "-" + AnsiStyle.RESET + " " + renderInline(line.stripLeading().substring(2))); + out.println(" " + AnsiStyle.CYAN + "•" + AnsiStyle.RESET + " " + renderInline(line.stripLeading().substring(2))); } // 分隔线 else if (line.strip().matches("^-{3,}$") || line.strip().matches("^\\*{3,}$")) { diff --git a/src/main/java/com/claudecode/console/ThinkingRenderer.java b/src/main/java/com/claudecode/console/ThinkingRenderer.java index 63c6cf4..d04d780 100644 --- a/src/main/java/com/claudecode/console/ThinkingRenderer.java +++ b/src/main/java/com/claudecode/console/ThinkingRenderer.java @@ -22,7 +22,7 @@ public class ThinkingRenderer { } out.println(); - out.println(AnsiStyle.DIM + AnsiStyle.ITALIC + " [Thinking...]" + AnsiStyle.RESET); + out.println(AnsiStyle.DIM + AnsiStyle.ITALIC + " 💭 Thinking..." + AnsiStyle.RESET); // 显示 thinking 内容(缩进并用暗色) for (String line : thinkingContent.lines().toList()) { @@ -33,7 +33,7 @@ public class ThinkingRenderer { /** 渲染 thinking 开始标记 */ public void renderStart() { - out.print(AnsiStyle.DIM + AnsiStyle.ITALIC + " [Thinking...]" + AnsiStyle.RESET); + out.print(AnsiStyle.DIM + AnsiStyle.ITALIC + " 💭 Thinking..." + AnsiStyle.RESET); } /** 渲染 thinking 结束标记 */ diff --git a/src/main/java/com/claudecode/console/ToolStatusRenderer.java b/src/main/java/com/claudecode/console/ToolStatusRenderer.java index efcf8d8..5f940f6 100644 --- a/src/main/java/com/claudecode/console/ToolStatusRenderer.java +++ b/src/main/java/com/claudecode/console/ToolStatusRenderer.java @@ -18,7 +18,7 @@ public class ToolStatusRenderer { /** 渲染工具调用开始 */ public void renderStart(String toolName, String args) { out.println(AnsiStyle.dim(" ─────────────────────────────────────────")); - out.print(AnsiStyle.YELLOW + " * " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET); + out.print(AnsiStyle.YELLOW + " ⚙ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET); out.println(AnsiStyle.dim(" running...")); // 如果有简短参数,显示 if (args != null && !args.isBlank()) { @@ -37,7 +37,7 @@ public class ToolStatusRenderer { display = display.substring(0, 497) + "..."; } - out.println(AnsiStyle.GREEN + " [OK] " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET + out.println(AnsiStyle.GREEN + " ✓ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET + AnsiStyle.dim(" done")); if (display != null && !display.isBlank()) { // 缩进输出每一行 @@ -50,7 +50,7 @@ public class ToolStatusRenderer { /** 渲染工具错误 */ public void renderError(String toolName, String error) { - out.println(AnsiStyle.RED + " [FAIL] " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET + out.println(AnsiStyle.RED + " ✗ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET + AnsiStyle.red(" error")); if (error != null) { out.println(AnsiStyle.red(" " + error)); diff --git a/src/main/java/com/claudecode/repl/ClaudeCodeCompleter.java b/src/main/java/com/claudecode/repl/ClaudeCodeCompleter.java index 0fa35f8..f969667 100644 --- a/src/main/java/com/claudecode/repl/ClaudeCodeCompleter.java +++ b/src/main/java/com/claudecode/repl/ClaudeCodeCompleter.java @@ -61,7 +61,7 @@ public class ClaudeCodeCompleter implements Completer { if (alias.startsWith(prefix)) { candidates.add(new Candidate( "/" + alias, - alias + " -> " + name, + alias + " → " + name, "Aliases", cmd.description(), null, null, true diff --git a/src/main/java/com/claudecode/repl/ReplSession.java b/src/main/java/com/claudecode/repl/ReplSession.java index f8aa6ba..4198531 100644 --- a/src/main/java/com/claudecode/repl/ReplSession.java +++ b/src/main/java/com/claudecode/repl/ReplSession.java @@ -154,7 +154,7 @@ public class ReplSession { handleInput(input, cmdContext); } - out.println(AnsiStyle.dim("\n Goodbye!\n")); + out.println(AnsiStyle.dim("\n Goodbye! 👋\n")); } } @@ -174,8 +174,8 @@ public class ReplSession { out.println(AnsiStyle.dim(" Terminal: " + termInfo)); if (isDumb) { - out.println(AnsiStyle.yellow(" [!] Dumb terminal: Tab completion and line editing may be limited")); - out.println(AnsiStyle.yellow(" Run in Windows Terminal / PowerShell / cmd.exe for best experience")); + out.println(AnsiStyle.yellow(" ⚠ Dumb 终端模式:Tab补全和行编辑可能受限")); + out.println(AnsiStyle.yellow(" 建议在 Windows Terminal / PowerShell / cmd.exe 中运行")); } else { out.println(AnsiStyle.dim(" Tip: Tab to complete commands, ↑↓ to browse history, Ctrl+D to exit")); } @@ -211,7 +211,7 @@ public class ReplSession { handleInput(input, cmdContext); } - out.println(AnsiStyle.dim("\n Goodbye!\n")); + out.println(AnsiStyle.dim("\n Goodbye! 👋\n")); } // ==================== 公共输入处理 ==================== @@ -237,7 +237,7 @@ public class ReplSession { out.println(); } catch (Exception e) { spinner.stop(); - out.println(AnsiStyle.red("\n [ERROR] " + e.getMessage())); + out.println(AnsiStyle.red("\n ✗ Error: " + e.getMessage())); log.error("Agent 循环异常", e); out.println(); } diff --git a/src/main/java/com/claudecode/tool/impl/BashTool.java b/src/main/java/com/claudecode/tool/impl/BashTool.java index cd42edc..135dff5 100644 --- a/src/main/java/com/claudecode/tool/impl/BashTool.java +++ b/src/main/java/com/claudecode/tool/impl/BashTool.java @@ -108,6 +108,6 @@ public class BashTool implements Tool { if (cmd.length() > 60) { cmd = cmd.substring(0, 57) + "..."; } - return "> " + cmd; + return "⚡ " + cmd; } } diff --git a/src/main/java/com/claudecode/tool/impl/FileEditTool.java b/src/main/java/com/claudecode/tool/impl/FileEditTool.java index 8599f3b..4e0d9e4 100644 --- a/src/main/java/com/claudecode/tool/impl/FileEditTool.java +++ b/src/main/java/com/claudecode/tool/impl/FileEditTool.java @@ -87,7 +87,7 @@ public class FileEditTool implements Tool { long oldLines = oldString.lines().count(); long newLines = newString.lines().count(); - return "[OK] Edited " + path + " (replaced " + oldLines + " lines with " + newLines + " lines)"; + return "✅ Edited " + path + " (replaced " + oldLines + " lines with " + newLines + " lines)"; } catch (IOException e) { return "Error editing file: " + e.getMessage(); @@ -96,6 +96,6 @@ public class FileEditTool implements Tool { @Override public String activityDescription(Map input) { - return "[Edit] " + input.getOrDefault("file_path", "file"); + return "✏️ Editing " + input.getOrDefault("file_path", "file"); } } diff --git a/src/main/java/com/claudecode/tool/impl/FileReadTool.java b/src/main/java/com/claudecode/tool/impl/FileReadTool.java index d7e61f3..54159bb 100644 --- a/src/main/java/com/claudecode/tool/impl/FileReadTool.java +++ b/src/main/java/com/claudecode/tool/impl/FileReadTool.java @@ -118,6 +118,6 @@ public class FileReadTool implements Tool { @Override public String activityDescription(Map input) { - return "[Read] " + input.getOrDefault("file_path", "file"); + return "📄 Reading " + input.getOrDefault("file_path", "file"); } } diff --git a/src/main/java/com/claudecode/tool/impl/FileWriteTool.java b/src/main/java/com/claudecode/tool/impl/FileWriteTool.java index 6eda2d6..41627a4 100644 --- a/src/main/java/com/claudecode/tool/impl/FileWriteTool.java +++ b/src/main/java/com/claudecode/tool/impl/FileWriteTool.java @@ -67,9 +67,9 @@ public class FileWriteTool implements Tool { long lines = content.lines().count(); if (existed) { - return "[OK] Updated " + path + " (" + lines + " lines)"; + return "✅ Updated " + path + " (" + lines + " lines)"; } else { - return "[OK] Created " + path + " (" + lines + " lines)"; + return "✅ Created " + path + " (" + lines + " lines)"; } } catch (IOException e) { @@ -79,6 +79,6 @@ public class FileWriteTool implements Tool { @Override public String activityDescription(Map input) { - return "[Write] " + input.getOrDefault("file_path", "file"); + return "✏️ Writing " + input.getOrDefault("file_path", "file"); } } diff --git a/src/main/java/com/claudecode/tool/impl/GlobTool.java b/src/main/java/com/claudecode/tool/impl/GlobTool.java index 3a6d548..95233de 100644 --- a/src/main/java/com/claudecode/tool/impl/GlobTool.java +++ b/src/main/java/com/claudecode/tool/impl/GlobTool.java @@ -122,6 +122,6 @@ public class GlobTool implements Tool { @Override public String activityDescription(Map input) { - return "[Search] " + input.getOrDefault("pattern", "files"); + return "🔍 Searching " + input.getOrDefault("pattern", "files"); } } diff --git a/src/main/java/com/claudecode/tool/impl/GrepTool.java b/src/main/java/com/claudecode/tool/impl/GrepTool.java index a2be5d7..433ae95 100644 --- a/src/main/java/com/claudecode/tool/impl/GrepTool.java +++ b/src/main/java/com/claudecode/tool/impl/GrepTool.java @@ -164,6 +164,6 @@ public class GrepTool implements Tool { @Override public String activityDescription(Map input) { - return "[Grep] '" + input.getOrDefault("pattern", "...") + "'"; + return "🔍 Searching for '" + input.getOrDefault("pattern", "...") + "'"; } }