kurihada
|
bca19b7741
|
test: 补充单元测试提升代码覆盖率
新增测试文件:
- agent/executor-extended.test.ts, presets/
- context/manager-extended.test.ts
- core/agent.test.ts, providers.test.ts
- lsp/cli.test.ts, client-extended.test.ts, index.test.ts
- permission/file-prompt.test.ts, prompt.test.ts
- skills/builtin/
- tools/filesystem/write_file-extended.test.ts
- tools/git/git_commit-extended.test.ts
- tools/load_description.test.ts
- tools/todo/todo-manager.test.ts
- tools/tool-search.test.ts
- types/
- utils/config-extended.test.ts, diff-extended.test.ts
修改现有测试:
- agent/manager.test.ts
- tools/skill/skill.test.ts
- utils/config.test.ts, diff.test.ts, image.test.ts
|
2025-12-11 20:37:03 +08:00 |
|
kurihada
|
f8b0cd4bec
|
test: 补充 task、copy_file、skill_search 工具测试
- task-extended.test.ts: 覆盖 Vision Agent、模型选择、后台运行
- copy_file-extended.test.ts: 覆盖递归复制、权限检查边界情况
- skill_search-extended.test.ts: 覆盖来源标记、未分类分组、参数显示
覆盖率提升:
- task.ts: 97.91%
- copy_file.ts: 100%
- skill_search.ts: 98.61%
|
2025-12-11 20:33:14 +08:00 |
|
kurihada
|
d0d0e8dbaf
|
refactor: 清理代码结构,统一重复定义,移除未使用代码
- 提取 Provider 配置到公共模块 core/providers.ts
- 统一 PermissionAction/PermissionRule 类型定义到 permission/types.ts
- 移除 core/agent.ts 中未使用的 legacyTools 系统
- 移除 tools/index.ts 中未使用的 allTools 导出
- 减少约 125 行重复/冗余代码
|
2025-12-11 18:42:07 +08:00 |
|
kurihada
|
abbb03bf50
|
feat: 重构 Vision 处理架构,支持自动委托 Vision Agent
- 主 Agent 收到图片后自动检测是否支持 vision,不支持时委托 Vision Agent 处理
- 添加 qwen-ai-provider-v5 支持百炼/DashScope API
- Task 工具支持 images 参数,可传递图片给子 Agent
- Vision Agent 使用独立的 VisionConfig 配置
- 移除 UI 层的 vision fallback 逻辑,统一在 Agent 层处理
- 删除废弃的 src/utils/vision.ts(原生 fetch 实现)
|
2025-12-11 18:21:36 +08:00 |
|
kurihada
|
32fdb244f0
|
feat: 添加 OpenAI 兼容 API 支持和独立 Vision 服务
- 添加 OpenAI AI SDK provider 支持 (@ai-sdk/openai)
- 支持 OpenAI 兼容服务的 baseUrl 配置(如阿里云百炼)
- 添加独立的 Vision 配置(visionProvider/visionApiKey/visionBaseUrl/visionModel)
- 实现图片引用语法 @path/to/image.png,支持带空格的路径
- 当主模型不支持 vision 时,自动调用配置的 Vision 服务分析图片
- 添加图片处理工具函数和单元测试
|
2025-12-11 17:49:16 +08:00 |
|
kurihada
|
a476a4240c
|
feat: 添加 Commands 系统支持斜杠命令
实现类似 OpenCode 的 Commands 功能:
- 支持 Markdown 格式定义命令,带 YAML frontmatter
- 变量替换:$ARGUMENTS, $1/$2, @filepath, !`shell`
- 三级加载:builtin < user < project
- 7 个内置命令:init, review, test, fix, explain, commit, help
- 集成终端 UI 支持 /commands 列表和命令执行
- 完整单元测试覆盖 (46 tests)
|
2025-12-11 16:12:28 +08:00 |
|
kurihada
|
723558ff22
|
feat: 添加 Skills 系统支持可复用提示模板
- 新增 Skill 类型定义和加载器,支持 YAML/JSON/Markdown 格式
- 实现 Skill 注册表,支持搜索、分类和优先级覆盖
- 添加 8 个内置 Skills: code-review, explain-code, generate-docs 等
- 创建 skill 和 skill_search 工具供 Agent 调用
- 支持从用户目录和项目目录加载自定义 Skills
- 添加完整的单元测试覆盖
|
2025-12-11 15:56:19 +08:00 |
|
kurihada
|
ad5d30b262
|
feat: 添加后台 Agent 执行和模型选择功能
- 新增 AgentManager 管理后台 Agent 生命周期
- Task 工具支持 run_in_background 参数实现后台执行
- Task 工具支持 model 参数选择 sonnet/opus/haiku 模型
- 新增 agent_output 工具查询后台 Agent 执行状态和结果
- 添加 AgentManager 和 AgentOutput 工具单元测试
|
2025-12-11 15:46:30 +08:00 |
|
kurihada
|
729fb2d42a
|
feat: 添加完整的单元测试套件
- 新增 vitest 测试框架配置
- 添加 54 个测试文件,共 951 个测试用例
- 覆盖核心模块:
- Agent: executor, registry, config-loader, permission-merger
- Context: manager, compaction, prune, token-counter
- Permission: manager, bash/file/git/web checkers, wildcard
- Session: manager, storage
- Tools: filesystem (12个), git (10个), web, shell, todo, task
- LSP: client, server, language
- Utils: config, diff
- UI: terminal
|
2025-12-11 14:45:24 +08:00 |
|
kurihada
|
f4df6483a6
|
feat: Agent 模式切换时应用工具过滤
- 在 getAvailableTools() 中根据 AgentToolConfig 过滤工具
- 支持 enabled 白名单、disabled 黑名单、noTask 配置
- 切换回 default 时恢复原始 systemPrompt
- /agent 命令显示当前可用工具数量
|
2025-12-11 13:23:45 +08:00 |
|
kurihada
|
bfe3bc63b3
|
feat: 添加 /agent 命令支持交互式切换 Agent 模式
- 在 AgentRegistry 添加 listPrimaryAgents() 方法
- 在 Agent 类添加 setAgentMode/getAgentMode 方法
- 在 TerminalUI 实现 /agent 命令:
- /agent 显示当前模式和可用列表
- /agent <name> 切换到指定 Agent
- /agent default 切换回默认模式
- 提示符显示当前 Agent 模式(如 @plan You >)
- 为 build Agent 添加 prompt 配置
|
2025-12-11 13:19:58 +08:00 |
|
kurihada
|
82f0a0ccde
|
feat: 添加多代理系统和 Task 子任务功能
Agent 模块:
- types.ts: Agent 类型定义 (AgentInfo, AgentPermission 等)
- permission-merger.ts: 三级权限合并逻辑 (系统->全局->Agent)
- config-loader.ts: 支持 YAML/JSON 配置文件加载
- registry.ts: Agent 注册表,管理预设和自定义 Agent
- executor.ts: Agent 执行器,支持工具过滤和权限控制
- presets/: 预设 Agent (general, explore, code-reviewer, build, plan)
Task 工具:
- task.ts: 执行子任务,委派给指定 Agent 处理
- 支持子会话创建和管理
会话扩展:
- 支持父子会话关系 (parentId, agentName)
- 新增 createChildSession, saveChildSession 方法
配置:
- 支持 .ai-assist/agents.yaml 用户自定义 Agent
- 支持通配符模式的 Bash 权限规则
|
2025-12-11 11:21:08 +08:00 |
|
kurihada
|
c6f8ba95ec
|
feat: 添加对话压缩功能和上下文使用情况显示
- 新增 context 模块实现 Prune 和 Compaction 压缩策略
- Prune: 将旧工具调用结果替换为占位符
- Compaction: 使用 AI 生成对话摘要
- CLI 提示符显示上下文使用量 [used/available]
- 添加 /compact 命令手动压缩对话
- 添加 /context 命令查看上下文详情
- Agent 集成自动压缩 (85%阈值) 和强制压缩功能
|
2025-12-11 10:59:43 +08:00 |
|
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 |
|