Commit Graph

15 Commits

Author SHA1 Message Date
kurihada 630ce9fd4b feat: 实现 Hook 系统
参考 open-code 的实现,添加工具执行前后的 hook 功能:

- 添加 Hook 类型定义 (tool.execute.before/after, file.edited/created/deleted 等)
- 实现 HookManager 管理器,支持插件注册和事件触发
- 实现配置文件加载器,支持 .ai-assistant.json/jsonc 格式
- 支持 glob 模式匹配文件触发 shell 命令
- 集成到 Agent 工具执行流程
- 添加 minimatch 依赖用于 glob 匹配
- 编写完整测试用例 (27 个测试)

配置示例:
```json
{
  "hooks": {
    "file_edited": {
      "*.ts": [{ "command": ["npx", "tsc", "--noEmit"] }]
    }
  }
}
```
2025-12-11 23:12:04 +08:00
kurihada 4beaf088d0 feat: 添加 MCP (Model Context Protocol) 集成支持
实现 MCP 协议集成,允许通过外部服务器扩展工具能力:

核心模块:
- types.ts: MCP 类型定义 (LocalMCPServer, RemoteMCPServer, MCPTool 等)
- config.ts: 配置加载、验证,支持 {env:VAR} 环境变量语法
- transports/stdio.ts: stdio 传输层实现 (JSON-RPC 2.0)
- client.ts: MCP 客户端,处理协议握手和工具调用
- manager.ts: 多服务器生命周期管理
- tool-adapter.ts: 将 MCP 工具转换为内部格式

CLI 命令:
- ai-assist mcp list: 列出服务器状态
- ai-assist mcp tools: 列出可用工具
- ai-assist mcp test <server>: 测试连接

配置支持:
- 用户级 (~/.ai-assist/config.json) 和项目级配置
- JSON/YAML 格式
- 通配符模式工具启用/禁用
2025-12-11 21:18:41 +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 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 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 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 3c922fe16c feat: 添加 web_search 工具和权限管控
- 新增 web_search 工具,使用 Tavily SDK 进行网络搜索
- 支持搜索深度(basic/advanced)和主题(general/news/finance)配置
- 新增 WebPermissionChecker 权限检查器
- 搜索操作默认需要用户确认,支持会话级权限记忆
- 配置文件支持 tavilyApiKey 存储
2025-12-11 01:32:32 +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 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 a53bf1d6e4 支持DeepSeek 2025-12-10 16:24:06 +08:00
kurihada ff3ec65139 Initial commit 2025-12-10 16:04:26 +08:00