kurihada
|
1622872c55
|
feat(desktop): 集成 ServicesPanel 外部服务配置面板
- 添加 External Services 菜单入口
- 同步窗口权限配置到 capabilities schema
|
2025-12-30 15:42:17 +08:00 |
|
kurihada
|
44bed99bb4
|
feat(desktop): 添加悬浮球 Quick Ask 功能
- 实现浅灰色玻璃拟态悬浮球,带机器人头图标
- 支持点击展开对话框,淡入淡出动画
- 支持窗口拖拽,区分点击和拖拽操作
- macOS 透明窗口支持 (macOSPrivateApi)
- 悬浮球 hover 放大效果,不溢出窗口
- 添加系统托盘 Toggle Quick Ask 菜单
|
2025-12-30 15:35:21 +08:00 |
|
kurihada
|
4108b112f9
|
feat(ui): 添加外部服务配置面板 (ServicesPanel)
- 新增 ServicesPanel 组件,用于配置 Tavily 等第三方服务的 API Key
- 添加 Services API 客户端方法 (listServices, updateService, deleteService)
- 在工具栏菜单中添加 "External Services" 入口
- 支持 API Key 的配置、启用/禁用和删除
|
2025-12-30 14:34:32 +08:00 |
|
kurihada
|
c3db79c00d
|
feat: 支持 Bun standalone 单文件打包
- core: 工具描述从文件系统加载改为编译时内联生成
- core: 添加 WASM 加载器支持嵌入式 WASM 数据
- core: bash-parser 使用动态导入 web-tree-sitter
- server: 添加静态文件托管支持 (--static 参数)
- server: 新增 standalone 入口点 (嵌入 Web UI + WASM)
- scripts: 添加 build-standalone.ts 构建脚本
- 更新 .gitignore 忽略生成文件
|
2025-12-30 13:57:29 +08:00 |
|
kurihada
|
5f38753f6d
|
refactor: 清理未使用的类型定义和接口字段
- 移除 Provider 相关的 apiKeyEnvVar 字段(未实现的功能)
- 清理 Server routes 中未使用的 Core 类型导入
- 清理 UI Message 接口中未使用的 metadata 字段
|
2025-12-30 10:41:38 +08:00 |
|
kurihada
|
243f8dc860
|
feat(desktop): 同步 web 模块界面和修复会话初始化
- App.tsx: 添加 IDE 面板、StatusBar、Resizer 等组件
- App.tsx: 添加连接错误处理和用户友好提示
- App.tsx: 修复新 project 目录下不自动创建会话的问题
- Chat.tsx: 同步 web 版本的所有 UI 组件和功能
- tailwind.config.js: 添加语义化颜色 (surface, fg, line, code)
- index.css: 精简为仅包含桌面端特有样式
- ThemeProvider 设置 defaultTheme='dark' 修复代码编辑器主题
- web/App.tsx: 同步修复会话初始化逻辑
|
2025-12-18 17:48:46 +08:00 |
|
kurihada
|
3ff489fbc0
|
feat(ui): 添加 Token 消耗统计显示
- 状态栏显示当前会话 Token 消耗总量,悬停显示详情
- AI 消息底部显示本次响应的输入/输出 Token
- 会话列表顶部显示项目 Token 消耗总量
- 会话列表每项显示该会话的 Token 消耗
- 新增 Token 统计 API 客户端函数
- Server done 事件携带 usage 信息
|
2025-12-18 17:01:09 +08:00 |
|
kurihada
|
bac32fe8f6
|
feat(core): 实现 Token 消耗统计系统
- 扩展 SessionStats schema 添加 token 统计字段
- 添加 TokenUsageInfo 类型和 ChatResult.usage 字段
- AgentMessageHandler 从 AI SDK response 提取 usage
- AgentExecutor 返回 usage 到执行结果
- 新增 TokenStatsManager 管理统计:
- updateSessionStats: 更新会话 token 统计
- mergeChildSessionStats: 合并子会话统计到父会话
- getSessionStats/getProjectStats: 查询统计
- Agent.chat() 完成后自动更新统计
- Task 工具完成后合并子会话统计
- 新增 REST API: /api/stats/sessions/:id, /api/stats/projects/:id
- 添加 TokenStatsManager 单元测试 (12 tests)
|
2025-12-18 16:11:00 +08:00 |
|
kurihada
|
2c8a95daeb
|
refactor(core): 实现类型安全的工具定义系统
- 新增 defineTool 函数,使用 Zod schema 定义参数并自动推断 TypeScript 类型
- 重构文件系统工具 (read_file, write_file, edit_file, glob, grep, multi_edit) 使用 Zod 类型推断
- 重构 shell 工具 (bash, kill_shell) 使用新的类型安全系统
- 重构 task 工具 (task, task_output) 使用 Zod 验证
- 兼容 Zod v4 API (处理 _zod.def vs _def, error.issues vs error.errors)
- 导出参数类型供外部使用 (ReadFileParams, BashParams 等)
- 统一参数命名: path -> file_path
- 修复相关测试以适配新的参数结构和输出格式
- 移除不存在工具的测试文件
|
2025-12-18 15:46:11 +08:00 |
|
kurihada
|
b2bb26a92b
|
fix(core): Summary Agent 从 Global Defaults 继承模型配置
- 移除 Summary Agent 中硬编码的 Anthropic 配置
- 修改 initSummaryModel 逻辑,当 Summary Agent 未指定模型时使用主配置
- 允许用户只配置一个 provider 即可使用所有功能
|
2025-12-18 11:24:29 +08:00 |
|
kurihada
|
1801298dce
|
feat(ui): 权限确认对话框支持 Diff 预览
- 添加 Diff 按钮,点击可展开/折叠文件变更预览
- Server 端生成 diff 信息并传递到前端
- 默认折叠,用户可按需查看
|
2025-12-18 11:16:24 +08:00 |
|
kurihada
|
63af432358
|
fix(core): 修复子 Agent 使用不同 provider 时配置错误的问题
当 Agent 通过 Global Defaults 指定不同的 provider 时,
之前错误地使用主 Agent 的 apiKey 和 baseUrl,
现在会从 ProviderRegistry 获取对应 provider 的配置
|
2025-12-18 09:54:54 +08:00 |
|
kurihada
|
93fe7ebcf8
|
fix(ui): 修复中文输入法回车误发送消息问题
添加 IME composition 状态检测,在输入法组合期间阻止回车发送消息
|
2025-12-18 00:54:38 +08:00 |
|
kurihada
|
a6e7573504
|
feat(core): 优化 read_file 工具参数结构
- 将参数 path 重命名为 file_path
- 添加 offset 参数支持从指定行开始读取
- 添加 limit 参数控制读取行数(默认 2000 行)
- 输出带行号格式(类似 cat -n)
- 大文件时显示剩余行数提示
|
2025-12-18 00:43:22 +08:00 |
|
kurihada
|
22a19426ef
|
feat(core): 优化 edit_file 工具参数结构
- 将参数 path 重命名为 file_path
- 添加 replace_all 参数支持替换所有匹配项
- 更新 SearchReplaceBlock 类型支持 replaceAll 选项
- 修改验证器和应用器支持全局替换模式
|
2025-12-18 00:41:34 +08:00 |
|
kurihada
|
014dd2e6fc
|
feat(website): 扩展 Header 导航并添加示例页面
- 首页和文档页添加文档下拉菜单,快速访问各文档分类
- 新增"示例"导航链接
- 创建 examples.astro 示例页面,展示 6 种使用场景
- 移动端菜单同步更新
|
2025-12-18 00:32:24 +08:00 |
|
kurihada
|
6730ba3228
|
docs(website): 重构文档为六部分结构
- 重组侧边栏导航为六个模块:入门指南、核心功能、API参考、部署配置、客户端、扩展开发
- 移动核心功能文档到 core/ 目录 (checkpoint, edit-modes, session)
- 新增部署配置文档 (configuration, local, production)
- 新增客户端文档 (web, desktop, cli)
- 新增扩展开发文档 (custom-tools, hooks, mcp-server)
|
2025-12-18 00:23:15 +08:00 |
|
kurihada
|
7f683a8aed
|
docs(website): 完善文档页面结构
- 添加快速开始页面,包含安装、配置、启动指南
- 添加核心功能文档: Agent 系统、工具系统、MCP 集成
- 添加 API 参考文档: REST API、WebSocket、SDK 使用
- 更新侧边栏导航,重新组织文档分类
- 更新 .gitignore 允许 website docs 页面
|
2025-12-18 00:09:30 +08:00 |
|
kurihada
|
1119afae5b
|
style(website): 优化布局模板和首页样式
- Layout: 添加完整 SEO meta 标签 (Open Graph, Twitter Cards)
- Layout: 添加主题色、PWA 支持和 canonical URL
- DocsLayout: 增强响应式设计,添加移动端侧边栏
- DocsLayout: 改进导航样式和页面底部导航
- index: 功能卡片添加渐变效果和统计数据展示
- index: 改进导航栏和整体响应式布局
|
2025-12-17 23:50:53 +08:00 |
|
kurihada
|
00680b8ed3
|
feat(ui): 将权限请求改为内联显示在聊天流中
- 添加 PermissionMessagePart 类型
- 创建 PermissionRequestInline 内联组件
- 修改 useChat 将权限请求作为 Part 处理
- 移除模态对话框,不再阻断 IDE 操作
|
2025-12-17 22:03:00 +08:00 |
|
kurihada
|
2ff74e446c
|
refactor(ui,server): 移除冗余的 toolCalls 兼容字段
删除从 parts 中提取的冗余 toolCalls 数组:
- 移除 ToolCallInfo 类型定义
- 移除 Message.toolCalls 字段
- 移除 ToolCallsDisplay/ToolCallItem 组件
- 简化 sessions.ts 消息构建逻辑
|
2025-12-17 21:46:28 +08:00 |
|
kurihada
|
c6dd3695e5
|
style(ui): 美化编辑器代码显示
- 添加 CodeMirror 编辑器全局样式(字体、行号、高亮、搜索面板等)
- 添加 Diff 编辑器样式(删除/新增行高亮、行内变更等)
- CodeEditor 优化:Tab 栏动画、文件图标着色、底部状态栏
- DiffEditor 优化:头部布局、变更统计、操作类型标签
|
2025-12-17 21:35:34 +08:00 |
|
kurihada
|
fea5442d53
|
feat(ui): 添加文件 Diff 查看功能
当 AI 执行 write_file 或 edit_file 工具时,在工具结果中显示 View Diff 按钮,
点击后在 IDE 面板中显示文件修改前后的对比视图。
主要改动:
- core: edit_file/write_file 工具返回 fileDiff 元数据
- ui: 新增 DiffEditor 组件用于显示文件差异
- ui: ChatMessage 添加 View Diff 按钮
- ui: IDE 组件支持 Diff 视图切换
- ui: useChat hook 处理 fileDiff 回调
|
2025-12-17 21:11:44 +08:00 |
|
kurihada
|
3320a2a5ba
|
feat(ui): 添加编辑器与对话框联动功能
- 新增 ActiveFileInfo 类型定义
- IDE 组件支持 onActiveFileChange 回调通知活动文件变化
- ChatInput 显示当前活动文件并支持自动附加到消息
- 用户可切换自动附加开关,设置持久化到 localStorage
- 排除 / 和 : 命令避免与斜杠命令和系统命令冲突
|
2025-12-17 19:59:13 +08:00 |
|
kurihada
|
48a11ff077
|
feat: 添加 :new 系统命令创建新会话
- Core: 新增 :new/:n 命令返回 new_session action
- Server: 处理 new_session action 创建新会话
- UI: useChat 添加 onSessionSwitch 回调
- Web/Desktop: ChatPage 和 App 实现会话切换逻辑
|
2025-12-17 19:36:47 +08:00 |
|
kurihada
|
e0444a966f
|
feat: 添加系统命令支持 (:clear)
- 新增系统命令模块 (core/system-commands)
- 支持 :clear/:cls/:c 清空对话历史
- 命令注册表支持别名
- 可扩展的命令执行器
- Server 端支持
- 新增 /api/system-commands API
- WebSocket 处理系统命令消息
- 会话清空 API 端点
- UI 端支持
- 新增 SystemCommandMenu 组件
- 输入 : 时显示命令建议菜单
- 键盘导航和选择
- 底部提示添加 : 快捷键
|
2025-12-17 19:25:42 +08:00 |
|
kurihada
|
4fc6b61134
|
feat(ui): 添加编辑器和文件浏览器状态持久化
- FileExplorer: 保存展开的目录路径到 localStorage
- IDE: 保存打开的标签页和活动标签,刷新后自动恢复
- App: 调整 IDE 面板默认宽度为 70%
|
2025-12-17 18:18:06 +08:00 |
|
kurihada
|
c892069ea1
|
feat(ui): 优化 Chat 页面 Header 布局
- 移除左上角 "Chat" 标题
- Token 使用情况移至左侧
- 压缩按钮添加文字标签,更直观
- 工具栏按钮保持在右侧
|
2025-12-17 17:59:40 +08:00 |
|
kurihada
|
ddbd56a0ac
|
feat(ui): 添加工具栏溢出菜单优化响应式布局
- 新增 DropdownMenu 基础组件(基于 Radix UI)
- 新增 ToolbarOverflowMenu 组件(齿轮图标设置菜单)
- 将 Header 次要按钮收入溢出菜单
- 保留 Diagnostics 和 Sessions 按钮始终可见
- 溢出菜单放置在最右侧
|
2025-12-17 17:52:20 +08:00 |
|
kurihada
|
babe65719b
|
feat(ui): 优化 Header 和状态栏布局
- ContextUsage: 紧凑模式下始终显示压缩按钮
- StatusBar: 连接状态移至中间位置,显示绿点动画和文字
- StatusBar: 添加内部连接状态检测(通过 health API)
- Chat: 移除 Header 中的连接状态指示器
|
2025-12-17 17:40:27 +08:00 |
|
kurihada
|
619cd2d2dd
|
feat(ui): 重构模式选择器为点击切换交互
- 将 Build/Plan 下拉框和 Auto-approve 开关合并为三种模式
- Plan: 调用 plan agent,只读分析
- Ask: 调用 general agent,执行操作前需确认
- Auto: 调用 general agent,自动执行无需确认
- 点击按钮即可循环切换:Ask → Auto → Plan
- 每种模式有独特的颜色和图标便于区分
|
2025-12-17 17:18:58 +08:00 |
|
kurihada
|
fc75fcfc90
|
feat(ui): 添加可拖拽的面板分割线
- 新增 Resizer 组件,支持拖拽调整面板宽度
- IDE 和聊天区域宽度可通过拖拽分割线调整
- 宽度范围限制在 30%-80%,防止面板过小或过大
- 调整后的宽度保存到 localStorage,下次打开时保持
|
2025-12-17 17:08:08 +08:00 |
|
kurihada
|
a3ddc39771
|
feat(ui): 添加底部状态栏和优化代码编辑器空状态
- 新增 StatusBar 组件,显示 Git 分支、诊断信息和连接状态
- 添加 Git API 端点 (GET /api/files/git) 获取分支和 dirty 状态
- 优化 CodeEditor 空状态,添加图标和引导提示
- 修复 Chat 页面高度问题 (h-screen -> h-full)
|
2025-12-17 17:04:38 +08:00 |
|
kurihada
|
250d2cb4b5
|
feat(ui): 添加 IDE 组件(文件浏览器 + 代码编辑器)
- 新增 CodeEditor 组件,基于 CodeMirror 实现多标签代码编辑
- 新增 FileExplorer 组件,支持文件树展开/折叠和文件选择
- 新增 IDE 组件,整合文件浏览器和代码编辑器
- 新增 SessionPanel 组件,用于会话管理
- 添加文件写入 API(PUT /api/files/write)
- 优化布局:IDE 始终显示,移除文件切换按钮
- 工作目录路径显示在文件浏览器标题栏,支持悬浮显示完整路径
|
2025-12-17 16:55:22 +08:00 |
|
kurihada
|
ddec356117
|
refactor(website): 优化网站内容以反映 core 模块实际功能
- 首页:更新核心功能展示(9个功能卡片),移除快速开始和 GitHub 链接
- 文档布局:移除 GitHub 链接
- 侧边栏:重组导航结构,分为「已完成功能」和「规划中功能」
|
2025-12-17 15:12:52 +08:00 |
|
kurihada
|
3849bec7de
|
refactor(core): 更新内置命令的 agent 配置
- /test, /fix, /commit 使用 general agent
- /explain 使用 explore agent (更适合代码解释)
- /help 使用 guide agent (更适合帮助信息)
|
2025-12-17 14:53:35 +08:00 |
|
kurihada
|
5d1db127b2
|
refactor(core): 重命名 build agent 为 general agent
- build.ts 重命名为 general.ts
- buildAgent 重命名为 generalAgent
- 更新相关导出和测试
|
2025-12-17 14:50:40 +08:00 |
|
kurihada
|
5a6925aef3
|
feat(core): 添加后台 Shell 管理功能
- 新增 ShellManager 管理后台 Shell 进程生命周期
- bash 工具支持 run_in_background 参数在后台运行命令
- 新增 kill_shell 工具用于终止后台 Shell
- task_output 工具同时支持获取 Agent 和 Shell 任务输出
- 支持超时控制、输出限制和优雅终止
|
2025-12-17 14:36:38 +08:00 |
|
kurihada
|
72120b72c8
|
feat(core): build/plan agent 添加完整的 plan 模式工具
|
2025-12-17 14:23:14 +08:00 |
|
kurihada
|
036bdafd1e
|
refactor(core): task_output 工具使用外部描述文件
|
2025-12-17 14:18:08 +08:00 |
|
kurihada
|
f55bd8f526
|
refactor(core): 重命名 agent_output 为 task_output
- 删除 agent_output.ts,新增 task_output.ts
- 更新工具导出、注册和描述映射
- 更新 build/plan agent 预设的工具列表
- 更新 task 工具中的相关引用
|
2025-12-17 14:15:49 +08:00 |
|
kurihada
|
78551d68f3
|
feat(core): ToolParameter 支持 default、minimum、maximum、enum 字段
- 扩展 ToolParameter 类型,新增 default/minimum/maximum/enum 可选字段
- 更新 buildZodSchema 函数处理 enum 和 min/max 约束
- MCP 工具适配器解析 JSON Schema 中的扩展字段
- task_output 工具使用新字段替代 description 中的约束说明
- 新增单元测试覆盖所有扩展字段
|
2025-12-17 14:15:09 +08:00 |
|
kurihada
|
fe6ef9be9b
|
refactor(core): 移除 todoread 工具
todowrite 工具返回值已包含完整列表,todoread 工具多余
|
2025-12-17 14:00:22 +08:00 |
|
kurihada
|
6b3d62b4d6
|
refactor(core): todowrite 工具使用外部描述文件
- 将 todowrite.ts 中硬编码的 description 改为使用 loadDescription 加载
- 更新 todo_write.txt 为更详细的英文使用说明,包含使用场景和示例
|
2025-12-17 13:56:01 +08:00 |
|
kurihada
|
8d8ebb8786
|
feat(core): 更新 web 工具描述并添加域名过滤参数
- 更新 web_extract 工具描述为英文版本
- 更新 web_search 工具描述,添加搜索日期提示
- 为 web_search 添加 allowed_domains 和 blocked_domains 参数
- 添加 GET_CURRENT_DATE_FN 模板函数支持动态日期
|
2025-12-17 13:47:58 +08:00 |
|
kurihada
|
2afa7bb103
|
feat(core): 将 Tavily API Key 从环境变量迁移到系统配置
- 新增 ServiceConfig 类型和 services 配置字段
- 添加 getServiceApiKey/saveServiceConfig/deleteServiceConfig API
- 更新 web_search 和 web_extract 工具使用配置系统
- 新增 /api/services REST 端点管理第三方服务配置
|
2025-12-17 13:01:29 +08:00 |
|
kurihada
|
bb3d42e6bf
|
refactor(core): 整理工具描述文件目录结构
将 checkpoint 和 repomap 相关的描述文件移动到各自的子目录
|
2025-12-17 12:11:24 +08:00 |
|
kurihada
|
31e246f629
|
refactor(core): 移除 get_file_info 和 list_directory 工具
这些工具功能可通过 bash 命令 (ls, stat, file) 实现,不再需要单独的工具。
删除的文件:
- src/tools/filesystem/get_file_info.ts
- src/tools/filesystem/list_directory.ts
- src/tools/descriptions/filesystem/get_file_info.txt
- src/tools/descriptions/filesystem/list_directory.txt
- tests/unit/tools/filesystem/get_file_info.test.ts
- tests/unit/tools/filesystem/list_directory.test.ts
更新的文件:
- src/tools/index.ts: 移除导入和注册
- src/tools/filesystem/index.ts: 移除导出
- src/tools/load_description.ts: 移除映射
- src/agent/presets/*.ts: 移除 tools.enabled 引用
- tests/unit/tools/load_description.test.ts: 移除测试数据
|
2025-12-17 12:07:38 +08:00 |
|
kurihada
|
2abea47386
|
refactor(core): 移除不再需要的文件系统工具
删除以下工具及相关文件:
- copy_file: 复制文件
- create_directory: 创建目录
- delete_file: 删除文件
- move_file: 移动文件
- search_files: 搜索文件
清理范围:
- 工具实现文件 (5个)
- 工具描述文件 (5个)
- 单元测试文件 (6个)
- Agent presets 中的引用
- Checkpoint 系统中的触发类型
- Hook 系统中的相关处理
|
2025-12-17 12:00:46 +08:00 |
|
kurihada
|
48b458bb9a
|
feat(core): 使用模板系统重构 plan 工具并完善 build agent 配置
- enter_plan_mode/exit_plan_mode 改用 loadDescription 加载描述
- 新增 plan 工具描述文件支持模板变量
- build agent 添加完整的工具启用列表和权限配置
- build agent 启用 promptTemplate 动态模板渲染
|
2025-12-17 11:52:52 +08:00 |
|