Commit Graph

165 Commits

Author SHA1 Message Date
kurihada dddec9b6d5 feat: 添加 Git 工具集和重组描述文件目录结构
Git 工具集:
- 新增 10 个 Git 工具: status, diff, log, branch, add, commit, push, pull, checkout, stash
- 新增 GitPermissionChecker 权限检查器
- 读操作默认允许,写操作需要用户确认

目录结构优化:
- 重组 descriptions 目录,按工具类别分子目录 (shell, filesystem, web, git, todo)
- 更新 load_description.ts 支持子目录加载
- 更新 build 脚本支持递归复制描述文件
2025-12-11 10:30:40 +08:00
kurihada 43cfe483fb feat: 添加 web_extract 网页内容提取工具
- 使用 Tavily Extract API 从 URL 提取网页内容
- 支持批量提取(最多 20 个 URL)
- 支持 basic/advanced 提取深度
- 支持 markdown/text 输出格式
- 可选提取图片列表
- 复用 WebPermissionChecker 进行权限管控
2025-12-11 10:09:19 +08:00
kurihada 3c922fe16c feat: 添加 web_search 工具和权限管控
- 新增 web_search 工具,使用 Tavily SDK 进行网络搜索
- 支持搜索深度(basic/advanced)和主题(general/news/finance)配置
- 新增 WebPermissionChecker 权限检查器
- 搜索操作默认需要用户确认,支持会话级权限记忆
- 配置文件支持 tavilyApiKey 存储
2025-12-11 01:32:32 +08:00
kurihada 924fd7b9c6 fix: 修复会话历史丢失工具调用和 LSP 启动错误输出
- 保存完整的响应消息(包括工具调用和结果)到会话历史
- LSP 服务器未安装时静默忽略,不输出错误信息
2025-12-11 00:56:35 +08:00
kurihada 09839b15a0 feat: 添加文件写入 diff 预览和 LSP 诊断优化
- 文件写入/编辑前显示 diff 对比供用户确认
- LSP 诊断只显示错误和警告,忽略 hint/info
- 优化 LSP 等待时间:首次启动 2s,后续 300ms
2025-12-11 00:44:42 +08:00
kurihada 929f6f7850 feat: 添加 LSP 代码诊断功能
- 实现 LSP 客户端,支持与语言服务器通信
- 支持多种语言: TypeScript, Python, Go, Rust, C/C++ 等
- write_file/edit_file 工具集成 LSP 诊断,写入后自动检查代码错误
- 添加 CLI 命令管理语言服务器 (ai-assist lsp list/install/info)
- 智能等待机制:首次启动 LSP 等待 2s,后续仅需 300ms
- 将 read_file/write_file/edit_file 设为核心工具,确保文件操作使用正确的工具
- 更新系统提示词,引导 AI 使用文件工具而非 bash 命令
2025-12-11 00:01:58 +08:00
kurihada 1e0ecc2de7 feat: 添加会话持久化和 Todo 工具
会话持久化:
- 新增 SessionManager 和 SessionStorage,支持会话自动保存和恢复
- 会话数据存储在 ~/.local/share/ai-assist/,遵循 XDG 规范
- 支持对话历史、已发现工具、待办事项的持久化
- 启动时自动恢复同一工作目录的上次会话
- 支持会话归档和历史会话管理

Todo 工具:
- 新增 todoread 工具:读取当前会话的待办事项列表
- 新增 todowrite 工具:创建和更新待办事项
- 支持 pending/in_progress/completed 三种状态
- 待办事项随会话自动持久化

其他改进:
- ToolResult 类型新增可选的 metadata 字段
- Agent 支持会话管理器集成
- clearHistory 改为异步方法
2025-12-10 22:55:37 +08:00
kurihada bc1ece3dad feat: 实现 Tool Search Tool 动态工具发现机制
- 新增 ToolRegistry 工具注册表,支持核心工具和延迟加载工具分离
- 新增 tool_search 元工具,支持关键词搜索发现可用工具
- 新增基于关键词的搜索算法,按相关度评分排序
- 为所有工具添加 metadata(分类、关键词、延迟加载标识)
- 修改 Agent 支持动态工具注入,tool_search 结果自动添加到可用工具
- 核心工具(tool_search, bash)始终加载,其他工具按需发现
2025-12-10 19:51:25 +08:00
kurihada e435b2f8f8 feat: 新增 6 个工具并重组目录结构
新增工具:
- grep_content: 在文件内容中搜索文本/正则表达式
- get_file_info: 获取文件元信息(大小、权限、时间等)
- move_file: 移动或重命名文件/目录
- copy_file: 复制文件或目录(支持递归)
- delete_file: 删除文件或目录
- create_directory: 创建目录

目录重组:
- src/tools/shell/ - Shell 相关工具(bash)
- src/tools/filesystem/ - 文件系统工具(12个)
- 每个子目录有独立的 index.ts 导出

权限系统扩展:
- 新增操作类型: grep, info, move, copy, mkdir
- 读取类操作默认允许,写入类操作需要确认
2025-12-10 18:32:39 +08:00
kurihada 60a046357b feat: 添加权限管理系统
- 实现 tree-sitter 解析 bash 命令,准确识别管道、&&、子shell 等复杂命令
- 新增权限检查器模式,支持 allow/deny/ask 三级权限控制
- BashPermissionChecker: 支持命令模式匹配和外部目录访问检测
- FilePermissionChecker: 支持文件操作分级(read/write/edit/list/search/delete)
- 敏感路径规则:系统目录拒绝,SSH/AWS 等凭证目录需确认
- 会话级权限记忆,用户决定可在当前会话内生效
- 所有工具(bash、read_file、write_file、edit_file、list_directory、search_files)已集成权限检查
2025-12-10 18:32:26 +08:00
kurihada af1185c4d7 优化工具 2025-12-10 17:11:46 +08:00
kurihada 4b451b2d58 支持多轮工具调用 2025-12-10 16:40:48 +08:00
kurihada 9973e8ec06 修复多轮对话bug 2025-12-10 16:35:04 +08:00
kurihada a53bf1d6e4 支持DeepSeek 2025-12-10 16:24:06 +08:00
kurihada ff3ec65139 Initial commit 2025-12-10 16:04:26 +08:00