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
abel533
f9072534ef
feat: jlink打包脚本 - 创建最小JRE发行版(Windows/Linux/macOS)
...
- packaging/build-dist.ps1: PowerShell跨平台构建脚本
- packaging/build-dist.sh: Bash构建脚本
- BUILD.md: 完整构建安装指南
- 自动jdeps分析 + jlink精简JRE(~49MB)+ fat jar + 启动脚本
- 发行包约120MB,免安装JDK直接运行
- 删除旧run.bat/run.ps1
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
2d704cc014
docs: 更新README - 添加三层压缩和多级权限管理功能说明
...
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
c989d3b451
docs: 添加仓库分支说明,包含 main/claude/learn 三个分支的介绍和链接
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
1e35cbe222
docs: 更新文档 - CLI样式升级+i18n+修复重复章节
...
- 修改记录.md: 新增CLI视觉样式升级+i18n英文统一条目
- 需求文档.md: 工具/命令数量更新为18/28, 新增CLI样式和i18n状态, 删除重复的表格数据
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
1e84fb79a9
chore: 将TODO.md移出版本控制并加入.gitignore
...
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
liuzh
1fc7a6a495
docs: 全面更新文档 - README/需求文档/修改记录
...
README.md:
- 功能特性分 P0/P1/P2 三级展示
- 工具列表更新为 18 个(含 P0/P2 工具)
- 命令列表更新为 28 个(分基础/P0/P1/P2 四组)
- 新增 MCP 服务器配置和使用说明
- 新增插件系统使用说明(JAR 加载、目录结构)
- 新增 Vim 模式和 Hook 系统使用说明
- 架构图更新:含 mcp/、plugin/、core/ 新组件
- 核心流程图更新:含 Hook 和权限确认
- 对应关系表新增 MCP/Plugin/Hook/Task 映射
需求文档.md:
- 5.1 实现清单更新为 18 工具 + 28 命令
- 5.2 P0/P1/P2 标记为全部已实现
- 仅保留 P3 跳过项目
修改记录.md:
- 新增 P0/P1/P2 四条修改记录(倒序排列)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
79736cf16f
feat: P2全部功能 - MCP协议+插件系统+任务管理+CLI增强
...
A组 CLI增强:
- DiffRenderer: 彩色diff渲染(行号/stat摘要/unified格式)
- /hooks: 查看已注册Hook列表
- /review: AI代码审查(支持--staged/文件路径)
- /stats: 会话使用统计(tokens/费用/API调用/运行时长)
- /branch: 对话分支管理(save/load/list/delete)
- /rewind: 回退对话历史
- /tag: 对话位置标签
- /security-review: AI安全审查
B组 任务系统:
- TaskManager: 后台任务管理(线程安全/自动执行/手动管理)
- TaskCreate/TaskGet/TaskList/TaskUpdate 4个工具
- ConfigTool: 配置读写工具
C组 MCP协议:
- McpClient: MCP客户端(JSON-RPC 2.0/工具发现/资源读取)
- McpTransport: 传输层接口
- StdioTransport: StdIO传输实现(子进程/异步读写)
- McpManager: 多MCP服务器管理(配置加载/生命周期)
- McpToolBridge: MCP工具桥接为本地Tool
- /mcp: MCP服务器管理命令
D组 插件系统:
- Plugin接口 + PluginContext + PluginManager
- JAR插件加载(ClassLoader隔离/Manifest读取)
- OutputStylePlugin: 内置输出样式插件
- /plugin: 插件管理命令
集成: AppConfig注册全部18工具+28命令
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
da26f02498
feat: P1完成 - Hook系统+Vim模式+Banner增强
...
- 新增 HookManager: 支持 PreToolUse/PostToolUse/PrePrompt/PostResponse 4种钩子
- Hook 优先级排序, PreToolUse 可中止工具执行, PostToolUse 可修改结果
- AgentLoop 集成 Hook 系统到工具调用流程
- ReplSession 支持 Vim 编辑模式 (CLAUDE_CODE_VIM=1 启用)
- Banner 显示命令数量和 Vim 模式标识
- 修复重复 isDumb 变量
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
749062fba7
feat: P1功能增强 - 3命令+代码高亮+状态行
...
新增3个命令:
- /resume: 恢复已保存的对话(支持list/序号选择)
- /export: 导出对话为Markdown文件
- /commit: 创建Git commit(支持AI生成commit message)
代码语法高亮(MarkdownRenderer增强):
- 支持Java/JS/TS/Python/Bash/SQL关键字着色
- 字符串字面量黄色、数字紫色、注释灰色斜体
- 注解(@Annotation )亮黄色
- true/false/null 红色
- 新增引用块、有序列表、复选框、链接渲染
- 代码块边框对齐
底部状态行(StatusLine):
- 模型名、Token用量、费用、API调用次数、工作目录
- 非dumb终端自动启用
- 每次Agent循环后刷新显示
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
82a28b7aa7
feat: P0功能补全 - 5命令+2工具+权限确认+Thinking显示
...
新增5个命令:
- /diff: 显示Git未提交变更(支持--staged/--stat)
- /version: 显示版本和环境信息
- /skills: 列出所有可用技能
- /memory: 查看/编辑CLAUDE.md(支持add/edit/user子命令)
- /copy: 复制最近AI回复到剪贴板
新增2个工具:
- WebSearchTool: DuckDuckGo搜索(免费,无需API Key)
- AskUserQuestionTool: AI向用户提问(通过ToolContext回调)
权限确认机制:
- 非只读工具执行前提示用户确认(Y/n/always)
- 支持always一次授权全部后续操作
- 在AgentLoop.executeToolCalls中拦截
Thinking内容显示:
- AgentLoop新增onThinkingContent回调
- 从ChatResponse metadata提取thinking内容
- ThinkingRenderer渲染思考过程(缩进暗色格式)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
7dc4d142b3
docs: Phase6 完整README文档 + 修改记录更新
...
新增 README.md:
- 功能特性概览(11工具、11命令、双API、流式输出等)
- 快速开始指南(环境变量、启动方式)
- 完整使用说明(对话、多行输入、斜杠命令、工具、CLAUDE.md、Skills)
- 架构设计(模块结构图、核心流程、双Provider架构)
- 配置参考(application.yml、环境变量表)
- 开发说明(构建、打包、已知问题)
- TypeScript→Java 对应关系表
更新 修改记录.md:
- 补全 Phase 1~5 所有修改记录
- 每个Phase的详细变更说明和关联需求
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
094057f0d2
feat: Phase5C+5D /compact AI摘要压缩 + 多行输入支持
...
/compact 增强:
- 用AI生成对话历史摘要替代简单清空
- 压缩后保留:原始系统提示 + AI摘要 + 最后一轮对话
- AI摘要保留关键决策、代码变更、文件路径等技术细节
- 摘要生成失败时静默降级(仅保留最近对话)
多行输入:
- 支持反斜杠(\\)续行:行末输入\\后回车继续下一行
- 续行提示符: ' ... '
- JLine SECONDARY_PROMPT_PATTERN 配置
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
399cea4478
feat: Phase5B 对话历史持久化
...
新增 ConversationPersistence:
- 退出REPL时自动保存对话到 ~/.claude-code-java/conversations/
- JSON格式存储:系统消息、用户消息、助手消息(含工具调用)、工具响应
- 支持保存、加载最近对话、列出所有对话
- 文件名格式: yyyyMMdd_HHmmss_摘要.json
新增 /history 命令:
- 列出最近10条保存的对话记录
- 显示时间、摘要、消息数、工作目录
ReplSession 更新:
- 自动记录对话摘要(第一次用户输入前40字)
- JLine模式和Scanner模式退出时都保存对话
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
fd262bf98d
feat: Phase5A 流式输出支持,逐token实时显示
...
AgentLoop 重构:
- 新增 runStreaming(input, onToken) 流式模式
- 使用 chatModel.stream(Prompt) -> Flux<ChatResponse>
- 统一 executeLoop() 核心循环支持阻塞/流式两种模式
- 流式分片工具调用按ID去重累积
- 流式失败自动降级到阻塞模式
- AssistantMessage 使用 Builder 模式构建(构造器是protected)
- 新增 onStreamStart 回调(第一个token到达时停止spinner)
- 新增 getChatModel() / replaceHistory() 方法(为后续compact准备)
ReplSession 更新:
- handleInput 使用 runStreaming 替代 run
- 逐token直接输出到终端(out.print + flush)
- spinner在第一个token到达时自动停止
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
de8349079f
fix: ProviderInfo读取统一后的AI_MODEL环境变量
...
修复providerInfo() Bean中OpenAI分支仍读取旧变量名AI_OPENAI_MODEL的问题,
以及Anthropic分支仍读取ANTHROPIC_BASE_URL的问题。
现在两个分支都统一使用AI_BASE_URL和AI_MODEL。
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
640822de19
refactor: 统一API环境变量命名,AI_API_KEY/AI_BASE_URL/AI_MODEL通用
...
两种Provider使用相同的环境变量,切换Provider只需改CLAUDE_CODE_PROVIDER:
- AI_API_KEY: API密钥(两种Provider通用)
- AI_BASE_URL: 基础URL(OpenAI默认api.openai.com,Anthropic默认api.anthropic.com)
- AI_MODEL: 模型名(OpenAI默认gpt-4o,Anthropic默认claude-sonnet-4-20250514)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
2adbfa56bc
feat: 支持OpenAI/Anthropic双API提供者切换,Banner显示URL和模型
...
通过 claude-code.provider 配置切换API提供者:
- openai(默认): 使用 OpenAI 兼容 API,支持各种代理服务
- anthropic: 使用 Anthropic 原生 API
配置方式:
- 环境变量: CLAUDE_CODE_PROVIDER=openai|anthropic
- application.yml: claude-code.provider
Banner 增强:
- 启动时显示当前 Provider、Model、API URL
- Scanner降级模式也显示同样信息
启动脚本更新:
- run.ps1/run.bat 添加完整的双provider配置说明
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
7a6c2fcc02
feat: Phase4 命令系统与上下文增强
...
新增基础设施:
- TokenTracker: 真实Token使用量追踪和费用估算(按模型定价)
- SkillLoader: .claude/skills/ 扫描加载,支持YAML frontmatter元数据
- GitContext: Git分支/状态/最近提交收集,注入系统提示词
新增命令 (4个):
- /init: 项目CLAUDE.md初始化向导,自动检测项目类型(Maven/Gradle/Node/Python等)
- /status: 会话状态仪表板(模型、Token、内存、运行时间等)
- /context: 上下文概览(CLAUDE.md、Skills、Git、系统提示词大小)
- /config: 配置查看/设置(支持model快捷切换和API key显示)
增强命令 (3个):
- /cost: 从占位→真实Token统计,显示input/output/cache tokens和费用
- /model: 支持快捷名称切换(sonnet/opus/haiku),显示可用模型列表
- /compact: 增强显示压缩前后消息数和Token使用量
系统提示词增强:
- 集成Skills摘要和Git上下文到系统提示词
- 新增Shell环境信息和更详细的Guidelines
命令总数: 6 → 10, 工具总数: 11
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
e09c3de91e
feat: Phase3 新增5个工具 (ListFiles, WebFetch, TodoWrite, Agent, NotebookEdit)
...
新增工具:
- ListFilesTool: 目录列表,支持递归深度、隐藏文件过滤、文件大小显示
- WebFetchTool: HTTP内容获取,HTML→文本转换,大小限制100KB,超时30s
- TodoWriteTool: 待办任务管理(add/update/complete/delete/list),内存存储
- AgentTool: 子Agent调用,通过ToolContext工厂方法创建独立AgentLoop
- NotebookEditTool: Jupyter notebook编辑(read/insert/replace/delete/move)
配置更新:
- AppConfig注册11个工具(原6+新5)
- AgentLoop工厂方法注入ToolContext,支持AgentTool创建子Agent
工具总数: 6 → 11
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
549cc79dc6
fix: 修复Windows终端UTF-8编码问题,恢复emoji字符
...
根因: System.out使用平台默认编码(CP936/GBK),emoji无法编码显示为?。
修复方案:
1. JVM参数: -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8 -Dfile.encoding=UTF-8
2. 代码层: PrintStream使用StandardCharsets.UTF_8
3. 启动脚本: run.bat添加chcp 65001, run.ps1设置Console编码
同时revert之前的emoji→ASCII替换,恢复原始emoji符号。
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 month ago
liuzh
cc0d3f8b00
Revert "fix: 将所有emoji/Unicode特殊字符替换为ASCII安全字符"
...
This reverts commit 3cd67ffe451be2cc7a66b5c554966f1d5aa58c7c.
1 month ago