Commit Graph

11 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 89673e28cb feat: 实现检查点系统 (Shadow Git 架构)
- 添加 Shadow Git 存储后端,使用隔离的 git 仓库管理快照
- 实现检查点管理器,支持自动/手动检查点创建
- 添加 5 个检查点工具:
  - undo: 快速撤销到上一个检查点
  - checkpoint_create: 创建命名检查点
  - checkpoint_list: 列出所有检查点
  - checkpoint_diff: 显示检查点与当前状态的差异
  - checkpoint_restore: 恢复到指定检查点
- 支持嵌套 .git 目录处理,避免冲突
- 添加事件系统监听检查点生命周期
- 编写完整测试用例 (21 个测试)
2025-12-11 23:00:47 +08:00
kurihada 9818e02ed1 feat: 添加 AST RepoMap 代码仓库地图功能
- 实现基于 Tree-sitter 的代码符号提取 (支持 TS/JS/Python)
- 实现 PageRank 算法进行符号相关性排序
- 支持个性化权重调整 (提及的标识符、聊天文件等)
- 添加磁盘缓存避免重复解析
- 集成 repo_map 工具到工具系统
- 添加 15 个单元测试
2025-12-11 22:26:43 +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 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 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