diff --git a/src/main/java/com/claudecode/command/impl/ClearCommand.java b/src/main/java/com/claudecode/command/impl/ClearCommand.java index 8e8fe80..396ab89 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(" ✓ Conversation history cleared."); + return AnsiStyle.green(" [OK] 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 70bfdac..f7b2bf5 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(" ✓ Context compacted: " + before + " messages → 1 (system prompt only)"); + return AnsiStyle.green(" [OK] 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 0b862bf..55c0b91 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 2b0e528..6251112 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 d901d2a..d9262af 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 d04d780..63c6cf4 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 5f940f6..efcf8d8 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 + " ✓ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET + out.println(AnsiStyle.GREEN + " [OK] " + 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 + " ✗ " + AnsiStyle.BOLD + toolName + AnsiStyle.RESET + out.println(AnsiStyle.RED + " [FAIL] " + 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 f969667..0fa35f8 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 4198531..f8aa6ba 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 终端模式:Tab补全和行编辑可能受限")); - out.println(AnsiStyle.yellow(" 建议在 Windows Terminal / PowerShell / cmd.exe 中运行")); + 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")); } 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 135dff5..cd42edc 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 4e0d9e4..8599f3b 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 "✅ Edited " + path + " (replaced " + oldLines + " lines with " + newLines + " lines)"; + return "[OK] 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 "✏️ Editing " + input.getOrDefault("file_path", "file"); + return "[Edit] " + 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 54159bb..d7e61f3 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 "📄 Reading " + input.getOrDefault("file_path", "file"); + return "[Read] " + 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 41627a4..6eda2d6 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 "✅ Updated " + path + " (" + lines + " lines)"; + return "[OK] Updated " + path + " (" + lines + " lines)"; } else { - return "✅ Created " + path + " (" + lines + " lines)"; + return "[OK] Created " + path + " (" + lines + " lines)"; } } catch (IOException e) { @@ -79,6 +79,6 @@ public class FileWriteTool implements Tool { @Override public String activityDescription(Map input) { - return "✏️ Writing " + input.getOrDefault("file_path", "file"); + return "[Write] " + 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 95233de..3a6d548 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 "🔍 Searching " + input.getOrDefault("pattern", "files"); + return "[Search] " + 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 433ae95..a2be5d7 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 "🔍 Searching for '" + input.getOrDefault("pattern", "...") + "'"; + return "[Grep] '" + input.getOrDefault("pattern", "...") + "'"; } }