abel533
d9b8c795b6
feat: add TaskStopTool, TaskOutputTool, and SleepTool
...
- TaskStopTool: cancel running tasks via TaskManager.cancelTask()
- TaskOutputTool: retrieve task results with status-aware formatting
- SleepTool: Thread.sleep() with 5-minute max and interrupt support
- Registered all 3 tools in AppConfig (total: 22 tools)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
08ebc72416
feat: enhance GrepTool with output_mode, case_insensitive, multiline, context lines
...
Add 7 new parameters to match TS GrepTool capabilities:
- output_mode: content/files_with_matches/count (3 modes like TS)
- case_insensitive: -i flag support
- multiline: cross-line pattern matching (ripgrep only)
- context_before/context_after: -B/-A context lines
- type: file type filter (e.g., 'java', 'py') for ripgrep
- head_limit: configurable result limit (was hardcoded 100)
All parameters correctly wired to rg, grep, and findstr backends.
Description updated with output mode documentation and escaping notes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
c5440a2b4c
feat: enhance system prompt and tool descriptions to match TS version
...
Phase 1A implementation:
SystemPromptBuilder.java (142 lines -> ~290 lines):
- Add CyberRisk security boundary instruction
- Add System section (permission modes, prompt injection defense)
- Add Doing Tasks section (coding style, security, collaboration)
- Add Actions section (operation risk management, dangerous ops protection)
- Add Tone & Style section (emoji control, concise output, code references)
- Add Output Efficiency section (direct communication)
- Add Language preference support
- Restructure into modular section builder methods matching TS architecture
Tool description enhancements (8 tools):
- BashTool: add security boundaries, git best practices, no-substitute rule
- FileWriteTool: add must-Read-first rule, prefer-Edit guidance
- GrepTool: add never-use-Bash-grep rule, search guidance
- AgentTool: add when-to-use/not-use guidance, sub-prompt enhanced
- FileEditTool: add indentation preservation, prefer-edit-existing rule
- TodoWriteTool: add proactive usage guidance, state machine rules
- TaskUpdateTool: add status workflow documentation
- ConfigTool: add available settings list
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
3b47c5e818
feat: cursor movement in input field
...
- Left/Right arrow keys move cursor within text
- Home/End jump to line start/end
- Insert text at cursor position (not just at end)
- Backspace/Delete work at cursor position
- Paste inserts at cursor position
- History browsing sets cursor to end
- Visual cursor: inverse style on character under cursor
- Hide terminal hardware cursor in normal input (use rendered cursor)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
8946ca93f2
feat: dynamic terminal title matching official Claude Code behavior
...
- Title updates on every user message (not just the first)
- Shows current tool name during execution: '⠂ Bash · user topic'
- Animation pauses during permission prompts (matches isWaitingForApproval)
- Clears tool name when tool completes
- Priority: sessionTitle (from user input) > 'Claude Code' (fallback)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
d63a10c221
fix: hide cursor during selection mode and agent execution
...
- Permission selection: cursor hidden (❯ marker indicates selection)
- AskUser selection: cursor hidden (same reason)
- Agent running: cursor hidden (no text input needed)
- AskUser input mode: cursor still visible at text position
- Normal idle: cursor visible at input position
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
f05732a60c
fix: terminal title uses jink writeRaw instead of raw PrintStream
...
Terminal title now writes OSC 0 through Ink.Instance.writeRaw()
which goes directly to the JLine terminal. This eliminates garbled
characters caused by writing through intercepted System.out/err or
to streams that bypass the terminal's ANSI processing.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
ecb88b25a0
fix: restore header border, defer title init, fix title encoding
...
- Restore bordered headerBox as single scrollable item in messagesArea
- Defer terminal title init to first render() (after jink ready)
- Title uses ConsolePatcher.getOriginalOut() to bypass interception
- Ctrl+C fix in jink: INT signal handler now respects exitOnCtrlC flag
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
db3de65c3c
fix: header scrolls with messages, auto-scroll pauses on scroll-up
...
- Header/logo moved from fixed layout to messagesArea first items
(matches official LogoHeader behavior: scrolls with messages, not pinned)
- addMessageInternal preserves scrollOffset when user has scrolled up
(matches official sticky-scroll: only auto-scrolls when at bottom)
- Terminal title uses ConsolePatcher.getOriginalOut() to bypass interception
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
4523e7e4d3
fix: markdown ####, Ctrl+C exit bug, terminal title
...
- MarkdownToText: support heading levels 1-6 (was 1-3, causing #### raw display)
- Ctrl+C: agent cancel no longer starts exit window (matching official double-press flow)
- Terminal title: dynamic OSC 0 title with animated spinner during work, static idle prefix
- Matches official useTerminalTitle hook + AnimatedTerminalTitle component
- Session title inferred from first user message (simplified vs AI generation)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
43e62fb8fc
feat: 增强系统提示词 — 对齐官方工具使用指南
...
添加 'Using your tools' 段落(匹配官方 Claude Code):
- 专用工具优先于 Bash(FileRead/FileEdit/Glob/Grep)
- WebSearch/WebFetch 主动使用指令:遇到实时信息需求时
必须使用 WebSearch,不要说无法获取实时信息
- 并行工具调用指导
- TodoWrite 任务管理指导
解决 AI 不主动使用 WebSearch 工具的问题
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
54c3cb41a9
feat: 工具执行流式输出预览
...
- ToolEvent 新增 PROGRESS 阶段,工具可在执行中报告进度
- ToolContext 添加 progressCallback,工具可通过 reportProgress() 报告输出行
- BashTool 在读取每行输出时实时报告进度
- AgentLoop 在工具执行前设置进度回调,执行后清除
- ToolCallMsg 支持 outputLines 字段,保留最后 5 行流式预览
- 运行中的工具在消息区显示实时输出(灰色,截断至 120 字符)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
012d5dfae6
feat: 添加 Ctrl+R 反向历史搜索
...
- Ctrl+R 进入搜索模式,输入关键词实时过滤历史记录
- 输入区显示 bash 风格搜索提示: (reverse-i-search)\query': result
- 再按 Ctrl+R 搜索更旧的匹配项
- Enter 选定结果放入输入框,Esc 退出搜索
- 快捷键栏显示搜索模式操作提示
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
6c5580ccd7
feat: 添加斜杠命令 Tab 自动补全
...
- 输入 / 开头时,前缀匹配所有已注册命令
- Tab 键补全唯一匹配,多个匹配时循环选择
- 输入区显示 ghost text(灰色补全后缀提示)
- 快捷键栏显示匹配命令列表(最多5个)
- 当前 Tab 选中项高亮显示
- Backspace/Esc/Submit 时同步更新建议列表
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
f995a34d66
feat: 对齐官方快捷键和动画行为
...
Phase A (快速修复):
- Ctrl+C 双击窗口从 2000ms 改为 800ms(匹配官方)
- 添加 Ctrl+L 强制重绘
- 添加 Ctrl+Home/End 跳到顶部/底部
Phase B (动画改进):
- Thinking 显示持续时间: 'Thinking...' → 'Thinking (5s)...'
(2秒后开始显示时间,匹配官方行为)
- Processing 显示输出 token 计数
- 底部自动滚动已正确实现(新消息 scrollOffset=0)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
99a4ccf059
feat: 块光标 + 动画移至消息区 + 权限交互选择
...
块光标:
- 输入区使用 █ 块光标(匹配原版 Claude Code 风格)
- Agent 运行中输入区只显示 ❯ █
动画效果:
- 思考/处理动画从输入区移至消息区底部
- 使用旋转帧 ◐◓◑◒ + Thinking.../Processing... 文字
- Agent 运行中快捷键栏显示 'esc to interrupt'
权限确认:
- 从 Y/A/N/D 文本输入改为交互选择模式
- 3个选项:Yes / Yes, and don't ask again / No
- 支持 ↑↓ 选择、Enter 确认、Esc 取消、1-3 快捷选择
- Tool use 消息显示蓝色分隔线 + 工具详情
- 新增 requestTextInput() 用于无选项的简单文本输入
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
5ad2628b1a
feat: Ctrl+C 双击退出(匹配原版 Claude Code 行为)
...
- 第一次 Ctrl+C: Agent 运行中则取消任务,空闲时清空输入
- 第二次 Ctrl+C (2秒内): 退出应用
- 快捷键栏显示 'Press Ctrl-C again to exit' 黄色提示
- 2秒超时后自动清除提示(虚拟线程定时)
- 移除未使用的 cmdCount 字段
- 保留 Esc 中断和 Ctrl+D 退出作为备选
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
a20dffa7a0
fix: 改进滚动 maxOffset 计算
...
使用 totalItems - visibleLines 替代 totalItems - 1
避免滚动到只剩1行内容的极端情况
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
a30dfa9ad0
fix: 修复滚动限制 + 自动检测Shell类型
...
滚动修复:
- scroll() 使用实际渲染行数而非消息数计算 maxOffset
- 解决 /help 等多行输出无法滚动到顶部的问题
Shell 检测:
- Windows 自动检测 PowerShell 7+ > Windows PowerShell > cmd.exe
- 动态调整 BashTool 描述,告知AI使用正确的命令语法
- 系统提示词包含详细的 Shell 使用指南(PowerShell cmdlets)
- header 显示检测到的 Shell 类型
- Unix 优先 bash,回退 sh
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
e47a3445df
fix: 修复代码审查发现的线程安全和边界问题
...
- render() 中对 volatile 字段取快照,避免跨线程竞争
- 光标位置 clamp 到 >= 0,防止小终端越界
- spinner 线程使用独立 spinnerLock 保护启停操作
- PrintStream 使用 try-with-resources 避免资源泄漏
- 终端高度 < 20 时隐藏标题框腾出空间
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
d4f9c8104f
enhance: 改进取消机制 — 流式token和工具调用中也检查cancelled
...
- streamIteration 中 token 回调检查 cancelled 标志
- executeToolCalls 中每个工具调用前检查 cancelled
- 被取消的工具调用返回 'Cancelled by user'
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
1b53357ded
feat: Ctrl+C 中断 Agent 运行(而非退出应用)
...
- 使用 Ink.render(component, false) 禁用默认 Ctrl+C 退出
- Ctrl+C 在 Agent 运行中触发 cancel(),停止当前循环
- Ctrl+C 在空闲时清空输入
- 保留 Ctrl+D 作为退出快捷键
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
ffb94bb2f7
feat: 添加 Escape/Ctrl+C 中断 Agent 运行功能
...
- AgentLoop 添加 cancel()/resetCancel() 中断机制
- executeLoop 在每次迭代前和API调用后检查取消标志
- Escape 键和 Ctrl+C 在 Agent 运行时触发中断
- 快捷键栏更新提示
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
91190e180b
ui: 改进消息显示,添加空行分隔和更友好的初始提示
...
- 初始消息改为 Ready 提示(header已包含工具/命令信息)
- 用户消息前添加空行分隔,提升对话可读性
- 保持工具调用和系统消息紧凑展示
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
f28d2328ef
refactor: 权限/AskUser回调改为虚拟线程执行,避免锁竞争
...
- handlePermissionInput 回调在虚拟线程中执行
- confirmAskUser 回调在虚拟线程中执行
- 移除 confirmAskUser 中多余的 synchronized 嵌套
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
7199b4f2dd
fix: 修复消息区溢出布局问题,恢复Spacer弹性空白
...
- 消息区添加 .height(maxMessageLines) + .overflow(HIDDEN) 防止溢出
- 恢复 Spacer.create() 在消息少时填充空白
- AskUser工具添加调试日志帮助排查结构化回调
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
65bd5b5d9a
feat: interactive AskUser with arrow-key selection
...
- Add interactive option selection for AskUserQuestion tool
(arrow keys ↑↓, Enter confirm, 1-9 quick select, Esc cancel)
- Last option with '其他/Other' enters free text input mode
- New ASK_USER_STRUCTURED_CALLBACK in AskUserQuestionTool
accepts (question, options) BiFunction for structured interaction
- ClaudeCodeComponent renders option list with ❯ indicator
- Cursor position adjusts for variable-height ask area
- Falls back to simple text prompt when no options provided
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
2f645b9d85
enhance: improve header colors, streaming markdown, scroll preservation
...
- Header: use colored values (API cyan, model green, dir yellow, etc.)
- Markdown: render progressively during streaming (not just after completion)
- Streaming cursor appended to last rendered line
- Scroll: preserve user scroll offset during streaming token updates
- Previously reset to 0 on every token, now keeps user position
- All process info (tool calls, thinking) persists after completion
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
9a437889b7
enhance: ASCII logo header, thinking animation, markdown rendering
...
- Restore original ASCII coffee cup logo in header (dual-column layout)
- Fix shortcutBar to single line with height(1) constraint
- Add spinning animation for thinking indicator (◐◓◑◒ cycle at 120ms)
- Create MarkdownToText converter for assistant messages:
- Headers (# ## ###) with distinct colors and prefixes
- Bold (**text**) rendering
- Inline code (\code\) in yellow
- Code blocks with language label and │ prefix
- Ordered/unordered lists with bullet points
- Streaming messages show raw text; completed messages use markdown
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
b72fcfea79
fix: add thread safety for concurrent state modifications
...
- Add stateLock to synchronize all getState/setState read-modify-write
operations across UI thread and AgentLoop background threads
- Synchronize onInput, onPaste, addMessage, appendToStreamingMessage,
finishStreamingMessage, completeLastToolCall, setThinking, runAgent
- Extract addMessageInternal() to avoid double-locking
- Harden extractToolSummary with explicit indexOf checks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
75ecaeca58
enhance: improve tool call display with smart arg extraction
...
- Add extractToolSummary() to show human-readable tool arguments
(command: $ ..., file_path: path, pattern: ..., query: ...)
- Tool running state shows 'running...' suffix
- Tool completed state shows 'done' suffix
- Match original Claude Code tool status rendering style
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
02ab8c2777
enhance: improve assistant message rendering and console patching
...
- Split multi-line assistant messages into separate rendered lines
- Add streaming cursor (▌) indicator for in-progress responses
- Add patchConsole() to intercept System.out/err during TUI mode
- Handle empty assistant message edge case
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
45283c87e4
fix: improve command handling and add paste support
...
- Add ToolRegistry to ClaudeCodeComponent for proper command context
- Use ByteArrayOutputStream to capture command output in TUI mode
- Add onPaste() override for efficient multi-line paste handling
- Fix constructor to accept toolRegistry parameter
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
199ad6259b
refactor: cleanup unused imports, add conversation summary tracking
...
- Remove unused MarkdownRenderer import and field from ClaudeCodeComponent
- Add onFirstUserInput callback for conversation summary tracking
- Wire conversation summary in JinkReplSession
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
abel533
601a1c9ea9
feat: add jink TUI framework integration
...
- Add jink dependency (io.mybatis.jink:jink:0.3.0-SNAPSHOT)
- Create UIMessage sealed interface for TUI message model
- Create ClaudeCodeComponent (main jink Component with full layout)
- Header box with rounded magenta border
- Message list with virtual scrolling
- Separator lines above/below input area
- Input area with prompt and placeholder
- Status bar and shortcut key bar
- Create JinkReplSession (jink-based REPL replacing JLine readLine loop)
- AgentLoop integration via callbacks -> setState
- Permission confirmation inline in TUI
- Streaming token display
- Update ClaudeCodeRunner to prefer jink TUI with legacy fallback
- Update AppConfig with JinkReplSession bean
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
fa565d8c07
feat: 压缩和权限gap功能增强 - PTL gap解析, 时间感知微压缩, token估算安全系数, PLAN模式, 拒绝追踪
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
730551cb3f
feat: 多层上下文压缩 + 多级权限管理系统
...
权限管理:
- PermissionTypes: 权限行为/模式/规则/决策/选择类型系统
- PermissionSettings: 用户级/项目级/会话级权限持久化(settings.json)
- PermissionRuleEngine: 多层规则引擎(deny→allow→readOnly→mode→dangerous→ASK)
- DangerousPatterns: 危险shell命令检测(rm -rf, eval, exec等)
- ReplSession: Y/A/N/D四选项权限确认UI
- ConfigCommand: permission-mode/list/reset子命令
- AgentLoop: 集成规则引擎,PermissionChoice回调
上下文压缩:
- TokenTracker: 上下文窗口监控(93%自动压缩/82%警告/98%阻塞)
- MicroCompact: 微压缩,裁剪旧tool_result(无API调用)
- SessionMemoryCompact: Session Memory压缩,AI摘要旧消息保留近期段
- FullCompact: 全量压缩+PTL重试(按API Round逐步丢弃)
- AutoCompactManager: 压缩编排器(micro→session→full),含熔断机制
- CompactCommand: 改造为委托FullCompact
- StatusLine: token使用百分比+颜色告警(绿→黄→红→闪烁)
- AppConfig: 注册PermissionSettings/RuleEngine/AutoCompactManager Bean
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
d17beb8a85
fix: 工具调用前刷新流式行缓冲 - 修复AI文本丢失
...
- lineBuffer/mdState提升为实例字段(工具事件回调可访问)
- 工具START事件先flushStreamLineBuffer()再渲染工具状态
- 修复: AI在工具调用前发送的文本(无\\n结尾)现在正确显示
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
b2066c0cc7
feat: 流式Markdown渲染 - 行缓冲+ANSI样式输出
...
- MarkdownRenderer新增StreamState和renderStreamingLine()方法
- 流式输出改为行缓冲模式:累积token到换行再渲染输出
- 支持:粗体/斜体→ANSI样式, 代码块→语法高亮边框,
列表→●圆点, 标题→彩色, 引用→竖线, 链接→下划线
- 代码块状态跨行追踪(StreamState)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
2e8e1eb819
fix: TodoWriteTool标记为readOnly - 内存操作无需权限确认
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
86a47282cf
fix: CLI交互样式优化 - 参考Claude Code/Copilot CLI效果
...
- 移除输入框横线(readLine阻塞限制,无法实现上下同时显示)
- ● 前缀移至 onStreamStart 回调(避免被 spinner 覆盖)
- 每段 AI 文本都获得独立的 ● 前缀(工具调用后续文也有)
- 工具 START 事件确保换行后再渲染(避免与AI文本混行)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
3c852d4446
fix: 工具调用后续文本缩进 - streamNewLine字段共享状态
...
- 将 isNewLine 局部变量提升为 streamNewLine 实例字段
- 工具 START/END 事件回调中同步标记换行状态
- 确保工具调用后的 AI 续文也有 4 空格缩进对齐
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
e3f60a5933
fix: CLI交互优化 - 流式缩进+输入框横线+日志降噪
...
- 流式输出: ● 标识与文本同行,续行4空格缩进对齐
- 输入框: 上下横线(─)分隔输入区域,宽度自适应终端
- 日志: 工具异常日志降为debug级别,避免终端输出stack trace
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
ff734d6b0d
i18n: 全部用户可见字符串统一为英文(46个文件)
...
- 所有Command/Tool/Core/MCP/Plugin中的中文提示改为英文
- Javadoc注释和行内注释保留中文不变
- AI提示词(compact/commit/review等)改为英文
- 编译验证通过
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
1172ab6b08
fix: 命令描述统一为英文+修复/history双斜杠bug
...
- CompactCommand: 中文描述改为英文
- HistoryCommand: 中文描述改为英文 + name()去掉多余的/前缀
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
831461aff0
fix: /help命令动态展示全部28个已注册命令
...
- CommandContext增加commandRegistry字段
- HelpCommand从registry动态获取命令列表(不再硬编码6个)
- 自动对齐命令名称,附显示别名
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
031a868286
fix: Banner布局微调 - Logo缩1字符+API URL展示+Provider改为Protocol
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
d8a7171325
fix: Banner边框上下对齐 - 加入ANSI可见宽度计算+右侧闭合│+精确padding
...
- 顶部边框公式修正: innerWidth - titleVisibleLen
- 每行body加右侧闭合│边框
- visibleLength()去除ANSI转义计算真实宽度
- 右侧信息区域自动pad到固定宽度
- Logo宽度调整为20字符
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
e7eb5e33b1
fix: Banner Logo改为纯ASCII冒烟咖啡杯,修复emoji导致的边框对齐问题
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
c52d5313a2
style: CLI视觉样式升级 - 边框Banner+●圆点+⎿结果+耗时显示
...
- BannerPrinter: 带边框的启动Banner(╭╮╰╯框线+咖啡杯Logo+双列布局)
- ToolStatusRenderer: 彩色●圆点标识+⎿结果前缀(Claude Code风格)
- ThinkingRenderer: <thought>标签块显示(Copilot CLI风格)
- ReplSession: AI回复●前缀+✻耗时显示+智能Banner选择
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago