kurihada
|
92619df026
|
feat(web): 移除 Settings 按钮,在 Header 直接显示工作目录
- 移除 ConfigPanel 及其入口按钮
- 在 Chat 页面 Header 左侧显示当前工作目录
- 初始化时并行获取会话列表和工作目录
|
2025-12-15 23:17:27 +08:00 |
|
kurihada
|
f3995d158c
|
feat(core): 实现动态系统提示词加载
- 创建 SystemPrompt 模块,根据模型类型动态加载对应的提示词
- 从 OpenCode 拷贝提示词文件 (anthropic/beast/gemini/qwen/plan.txt)
- 修改 Build/Plan Agent 预设,移除内联 prompt
- Agent 类新增 resolveSystemPrompt 方法处理提示词加载逻辑
- 构建脚本自动复制 prompts 目录到 dist
|
2025-12-15 23:05:08 +08:00 |
|
kurihada
|
013e9a2712
|
feat(core): 移除内置 Agent 的 maxSteps 限制,默认使用 Build 模式
- 移除 build/plan/general/explore 的 maxSteps 配置
- 内置 Agent 不再限制步数(与 OpenCode 保持一致)
- 用户自定义 Agent 仍可按需配置 maxSteps
- 新建 Agent 默认使用 Build 模式
|
2025-12-15 22:27:42 +08:00 |
|
kurihada
|
df811395f8
|
feat(core): 增强 General 和 Explore Agent 预设
General Agent:
- 添加详细的 prompt 引导子代理行为
- 禁用 todo_read/todo_write(避免与父 Agent 冲突)
- 增加 maxSteps 到 20
Explore Agent:
- 支持 thoroughness 参数 (quick/medium/thorough)
- 启用只读 bash 命令(ls, tree, find, git log 等)
- 禁用写入工具和 Todo 工具
- bash 默认策略改为 deny(比 Plan 更严格)
- 添加详细的探索深度指导 prompt
Plan Agent:
- 添加 web: 'ask' 权限配置
|
2025-12-15 22:01:53 +08:00 |
|
kurihada
|
35d87a04fb
|
feat(core): 增强 Plan Agent 支持细粒度 bash 权限和模式切换
- Plan Agent 细粒度 bash 权限:允许只读命令 (ls, grep, git log 等),
禁止危险操作 (rm, mv, git commit 等)
- 新增 plan_mode_respond 工具:结构化输出计划、进度和探索状态
- Agent.switchMode() 方法:支持 Build ↔ Plan 模式切换保留对话历史
- WebSocket mode_switch 消息:支持运行时动态切换模式
- 更新 Plan Agent prompt 引导使用 plan_mode_respond 工具
|
2025-12-15 20:51:57 +08:00 |
|
kurihada
|
f238368f87
|
feat(ui): 支持 Auto Edit 运行时切换立即生效
- 添加 config_update WebSocket 消息类型
- setAutoApprove 切换时立即发送配置更新到服务端
- 服务端实时更新会话的 auto-approve 配置
|
2025-12-15 19:52:06 +08:00 |
|
kurihada
|
ec3c7bccf9
|
feat(ui): 实现 Agent 模式切换和 Auto Edit 功能
- 添加 AgentModeSelector 组件,支持 Build/Plan 模式切换
- Build 模式下显示 Auto Edit 开关,自动授权文件写入/编辑
- 扩展 useChat hook 添加会话级别的 agentMode/autoApprove 状态
- 服务端支持解析和应用 Agent 模式配置
- 权限处理器实现 auto-approve 检查(仅 write/edit,不含 delete)
|
2025-12-15 19:42:51 +08:00 |
|
kurihada
|
f09f8f2b03
|
fix: 修复多个问题
- fix(core): 修复 todoManager 未初始化导致待办工具无法使用
- fix(core): 为 LSP 初始化添加 10 秒超时,防止 write_file 卡住
- fix(ui): 停止对话时保留已流式输出的内容
|
2025-12-15 18:40:07 +08:00 |
|
kurihada
|
11d4abfc50
|
feat(core): 实现 Doom Loop 检测和软性 maxSteps 限制
- 新增 doom-loop.ts: 实现 Doom Loop 检测器,检测连续 3 次相同工具调用
- 修改 agent.ts: 集成检测器,添加 onDoomLoop 回调,动态 maxSteps
- 修改 registry.ts: 默认 maxSteps 从 10 改为 50
- 更新 index.ts: 导出新模块
参考 OpenCode/OpenHands 等开源项目的多层防御策略
|
2025-12-15 18:14:09 +08:00 |
|
kurihada
|
3fd8fd98b8
|
feat(ui): 优化流式输出工具调用渲染
- 添加 tool_start/tool_end WebSocket 事件支持
- 流式消息复用 ChatMessage 组件渲染工具调用卡片
- 修复 AI SDK v5 格式兼容问题(input/output 字段)
- 修复会话恢复时 tool-result 格式错误
- 放宽 ToolState schema 中 input 字段类型为 unknown
|
2025-12-15 17:35:39 +08:00 |
|
kurihada
|
865e0906b9
|
feat(ui): 实现 @ 文件提及自动补全功能
- Core: 添加 file-index 模块,使用 ripgrep 索引文件,fuzzysort 模糊搜索
- Server: 添加 /api/files/search 端点,支持文件模糊搜索
- Server: WebSocket 消息处理中将 @filepath 转换为 ./filepath 格式
- UI: 新增 FileMenu 组件,显示文件搜索结果列表
- UI: 新增 FileMentionTag 组件,高亮显示文件提及
- UI: 新增 useFileMention hook,管理文件提及状态
- UI: ChatInput 集成 @ 触发的文件自动补全
- UI: ChatMessage 用户消息中高亮显示 @filepath
|
2025-12-15 16:32:59 +08:00 |
|
kurihada
|
5b7b0ff1e4
|
feat(ui): 实现深色/浅色主题切换功能
- 添加 CSS 变量定义浅色和深色主题色板
- 扩展 Tailwind 配置支持语义化颜色 (surface-*, fg-*, line-*, code)
- 创建 useTheme hook 管理主题状态和持久化
- 创建 ThemeToggle 组件支持三种模式 (light/dark/system)
- 迁移所有组件从硬编码 gray-* 到语义化颜色
- 支持系统主题偏好检测 (prefers-color-scheme)
- 添加主题初始化脚本防止闪烁 (FOUC)
|
2025-12-15 15:47:32 +08:00 |
|
kurihada
|
cd0dd814ab
|
feat(ui): 实现消息 parts 有序渲染
- Server: API 返回 parts 数组保持原始顺序
- Server: 添加 MessagePart 类型定义 (text/tool/reasoning)
- UI: ChatMessage 按 parts 顺序交叉渲染文本和工具调用
- UI: 新增 ToolPartItem 组件渲染单个工具 part
- UI: useChat 创建消息时添加 parts 字段
|
2025-12-15 14:46:00 +08:00 |
|
kurihada
|
2150abde7c
|
feat(agent): 实现流式输出取消功能
- 添加 AbortController 管理,支持取消正在进行的请求
- Agent.chat() 新增 abortSignal 参数,传递给 streamText/generateText
- 取消时保存用户消息和 AI 已输出的部分内容
- cancelProcessing 实际调用 abort() 中止流式请求
|
2025-12-15 14:21:24 +08:00 |
|
kurihada
|
d54b9788fa
|
fix(storage): 修复 multi-step 对话产生多个 assistant 消息问题
- 同一轮对话的后续 assistant 消息追加 Parts 到现有消息
- 修复 AI SDK tool-call 参数字段名(input 而非 args)
- 修复 setToolCompleted/setToolError 中 discriminated union 类型访问
|
2025-12-15 13:58:10 +08:00 |
|
kurihada
|
9f456c1029
|
refactor(storage): 重构消息存储为 2-message 格式
采用 OpenCode 风格的消息存储架构:
- 只有 user 和 assistant 两种角色,移除 tool/system
- ToolPart 使用状态机模式 (pending → running → completed/error)
- 新增 toModelMessages() 转换函数用于调用 AI SDK
- 删除 message-merger.ts,存储层直接返回正确格式
主要改动:
- parts.ts: ToolState 状态机(pending/running/completed/error)
- message.ts: 移除 system role,添加 parentId 关联
- converter.ts: 新增 toModelMessages() 格式转换
- manager.ts: 重构 syncMessages/partsToModelMessages
- sessions.ts: 简化路由,直接从 Core Storage 读取
|
2025-12-15 13:35:32 +08:00 |
|
kurihada
|
eda2ccb171
|
feat(api): 实现消息合并 API,支持工具调用显示
- 新增 MergedMessage、ToolCallInfo 类型定义
- 创建 message-merger.ts 消息合并工具
- 更新 sessions 路由使用合并后的消息格式
- 前端新增 ToolCallsDisplay 组件展示工具调用
- 工具调用显示状态、时长,可展开查看参数和结果
|
2025-12-15 12:21:16 +08:00 |
|
kurihada
|
e9e8bfa30a
|
fix(storage): 修复 ToolPart args 字段缺失导致的验证错误
|
2025-12-15 11:30:43 +08:00 |
|
kurihada
|
527692ec03
|
refactor(storage): 采用 OpenCode 风格三层存储结构
重构消息存储系统,从"每条消息一个文件"改为分层存储:
- Session → Message → Parts 三层结构
- 12 种 Part 类型(TextPart, ToolPart, ReasoningPart 等)
- ToolPart 状态机(pending → running → completed/error)
- 通用 Storage API(read/write/list/remove)
新增文件:
- parts.ts: Part 类型定义(Zod schema)
- message.ts: MessageInfo 类型定义
- id.ts: ID 生成器
- storage/: 分层存储实现
删除旧文件:
- storage.ts, types.ts, migration.ts
存储路径:
~/.local/share/ai-assist/
├── session/{projectId}/{sessionId}.json
├── message/{sessionId}/{messageId}.json
├── part/{messageId}/{partId}.json
└── todo/{sessionId}.json
|
2025-12-15 11:16:10 +08:00 |
|
kurihada
|
b8fcb65f73
|
fix(server): 修复消息持久化问题
- 在 adapter.ts 中为 Agent 绑定 Core SessionManager
- 添加 getOrCreateSessionManager 函数创建和恢复会话
- 修改 getOrCreateAgent 为异步函数
- 在 sessions.ts 中转换 AI SDK 消息格式为字符串
|
2025-12-15 10:45:58 +08:00 |
|
kurihada
|
bbce1de60c
|
fix(ui): 优化 WebSocket 连接和 PWA meta 标签
- WebSocket onopen 检查 isClosingRef,组件卸载后自动关闭连接
- 更新 PWA meta 标签为 mobile-web-app-capable
|
2025-12-15 10:29:49 +08:00 |
|
kurihada
|
9e55237dae
|
fix(ui): 修复 React key 警告和 forwardRef 问题
- ChatMessage/SessionItem 使用 forwardRef 支持 AnimatePresence
- useChat 为 message_received/done 事件生成唯一消息 ID
- sessions API 为历史消息添加 ID 字段
- cli 添加 @types/inquirer 依赖
|
2025-12-15 10:24:45 +08:00 |
|
kurihada
|
842cf1a3e8
|
fix(ui): 优化会话初始化逻辑
- 首次启动时自动创建会话
- 用户删除所有会话后不再自动创建,显示空状态
- 使用 localStorage 记录是否曾有会话
|
2025-12-15 10:05:17 +08:00 |
|
kurihada
|
6342a46e59
|
refactor(storage): 统一消息存储到 Core 层
问题:Server 端只存储最终文本响应,工具调用的中间消息丢失。
解决方案:
- Agent.chat() 返回 ChatResult,包含完整消息链
- Server SessionManager 简化为只管理会话元数据
- 消息 API 改为从 Core Storage 读取
- 移除 Server 端的消息存储和 addMessage 方法
影响范围:
- core: Agent.chat() 返回类型变更
- server: SessionManager 接口变更,移除消息存储
- server: GET /sessions/:id/messages 从 Core 读取
- server: 移除 POST /sessions/:id/messages 端点
|
2025-12-15 10:04:22 +08:00 |
|
kurihada
|
a657af9bb7
|
test(server): 修复 SessionManager 测试的 session 清理问题
- 添加 afterEach 钩子清理测试中创建的 session
- 引入 createTrackedSession 辅助函数追踪需要清理的 session
- 防止测试产生的 session 持久化到磁盘影响用户数据
|
2025-12-15 00:55:02 +08:00 |
|
kurihada
|
5b20420ccd
|
test(server): 增强 auth/ws/sse 测试覆盖率
- auth/token.ts: 50% → 100%
- 新增 authMiddleware 中间件完整测试
- 覆盖本地 IP 检测、远程认证、跳过路径等场景
- 新增 getAuthContext 测试
- ws.ts: 90% → 98%
- 新增 Blob/非标准数据类型处理测试
- 新增 addMessage 返回 null 场景测试
- 新增 tool_response 和 permission_response 边界测试
- sse.ts: 新增事件格式化和统计测试
测试数量: 344 → 369 (+25)
总体覆盖率: 80.82% → 82.98%
|
2025-12-15 00:36:43 +08:00 |
|
kurihada
|
7bc4f006a0
|
test(server): 补充 checkpoints/mcp/sse/adapter 测试
- 新增 checkpoints.test.ts: 29 个测试覆盖 Checkpoint 管理 API
- 新增 mcp.test.ts: 15 个测试覆盖 MCP 服务器管理 API
- 扩展 sse.test.ts: 添加 handleSSE 路由测试
- 扩展 adapter.test.ts: 添加 cancelProcessing, getContextUsage,
compressContext, processMessage 测试
覆盖率提升: 60% -> 80.82%
测试数量: 288 -> 344
|
2025-12-15 00:32:04 +08:00 |
|
kurihada
|
67e129fce2
|
fix(commands): 修复路由顺序导致 /content 端点被遮蔽的问题
- 将 /:name{.+}/execute 和 /:name{.+}/content 路由移到 /:name{.+} 之前
- Hono 的 {.+} 模式会贪婪匹配,导致 /test/content 被解析为 name='test/content'
- 更新测试用例以正确测试 /content 端点功能
|
2025-12-15 00:17:22 +08:00 |
|
kurihada
|
c44527a890
|
test(server): 添加 routes 模块单元测试
- agents.test.ts: Agent presets CRUD API (18 tests)
- tools.test.ts: Tool registration & execution (10 tests)
- files.test.ts: File browser API with path security (24 tests)
- commands.test.ts: Slash commands CRUD & execution (20 tests)
- hooks.test.ts: Hooks configuration management (20 tests)
覆盖率从 29.59% 提升到 60.35%,共 287 个测试
|
2025-12-15 00:14:27 +08:00 |
|
kurihada
|
5835799b69
|
test(server): 添加 server 模块单元测试
- 新增 vitest 配置和测试基础设施
- 添加 adapter.test.ts: 测试 Core 模块初始化和 Agent 管理 (18 tests)
- 添加 token.test.ts: 测试 Token 生成、验证和中间件 (25 tests)
- 添加 handler.test.ts: 测试权限处理器 (18 tests)
- 添加 ws.test.ts: 测试 WebSocket 连接和消息处理 (19 tests)
- 添加 sse.test.ts: 测试 SSE 事件发送 (14 tests)
- 添加 sessions.test.ts: 测试会话路由 (16 tests)
- 添加 config.test.ts: 测试配置路由 (10 tests)
- 添加 context.test.ts: 测试上下文压缩路由 (9 tests)
- 添加 providers.test.ts: 测试 Provider 管理路由 (18 tests)
- 添加 manager.test.ts: 测试 SessionManager (48 tests)
总计 195 个测试,覆盖率从 0% 提升至 29.59%
|
2025-12-15 00:07:32 +08:00 |
|
kurihada
|
503e4c4ccd
|
fix(init): 确保 Registry 在服务启动时正确初始化
- AgentRegistry: 在构造函数中同步初始化预设 Agent
- AgentRegistry: 添加 isInitialized() 方法
- initCore(): 添加 ProviderRegistry.init() 调用
- initCore(): 添加 AgentRegistry.init() 调用
修复用户配置(Provider、Agent)重启后丢失的问题
|
2025-12-14 23:40:33 +08:00 |
|
kurihada
|
aefea715b1
|
feat(context): 根据模型动态设置 contextLimit
- AgentConfig 添加 contextWindow 字段
- ProviderRegistry 添加 getModelInfo() 方法查询模型信息
- loadConfig() 从 ProviderRegistry 获取模型的 contextWindow
- Agent 构造函数使用 contextWindow 初始化压缩管理器
效果:
- Anthropic Claude: 168k (200k - 32k 输出预留)
- DeepSeek: 32k (64k - 32k 输出预留)
- 未知模型回退到默认 200k
|
2025-12-14 23:34:32 +08:00 |
|
kurihada
|
cacd9914fd
|
fix(config): 优化配置错误提示信息
- 未选择 provider 时提示"选择并配置模型提供商"
- 已选择 provider 但未配置 API Key 时提示配置该 provider
|
2025-12-14 22:44:13 +08:00 |
|
kurihada
|
07a039001d
|
feat(ui): 添加配置错误 toast 提示
当 Provider API Key 未配置时,显示 toast 提示并提供
"去配置"按钮,点击可直接打开 Providers 配置面板
|
2025-12-14 22:35:02 +08:00 |
|
kurihada
|
32064a3531
|
fix(config): 优雅处理 Provider 未配置错误
- 添加 ConfigurationError 类替代 process.exit(1)
- Server 端捕获配置错误并返回友好消息
- UI 端支持 config_error 类型的 WebSocket 消息
- 服务器不再因配置缺失而崩溃
|
2025-12-14 22:24:51 +08:00 |
|
kurihada
|
c307cd3a7c
|
refactor(agent): 将 Summary Model 改造为内置 Sub Agent
- 扩展 AgentMode 类型添加 'internal' 模式
- 新增 summary agent preset (claude-3-5-haiku)
- AgentRegistry 添加 getInternal/listInternalAgents 方法
- CompressionManager 添加 setSummaryModelFromAgentConfig
- Agent 构造函数改用 Registry 配置初始化 Summary 模型
- 清理旧的 SummaryConfig 配置系统
- UI AgentsPanel 分离显示 System/Preset/Custom agents
- UI AgentEditor 为 internal agent 显示简化编辑界面
|
2025-12-14 22:12:36 +08:00 |
|
kurihada
|
e97daaa0eb
|
refactor(settings): 移除无效的配置项
- 移除 maxTokens/temperature 滑块(后端从不使用)
- 移除 allowedPaths/deniedPaths 显示(权限通过 handler 处理)
- Settings 面板只保留 workdir 和 Summary Model 配置
|
2025-12-14 21:37:58 +08:00 |
|
kurihada
|
9e011476c8
|
refactor(config): 移除环境变量依赖,统一使用 Provider 配置系统
- 移除 .env.example 文件
- 简化 resolveApiKey 函数,只从配置文件读取 API Key
- 重构 loadConfig/loadVisionConfig/loadSummaryConfig 使用 ProviderRegistry
- 更新测试以 mock Provider 系统
|
2025-12-14 21:29:36 +08:00 |
|
kurihada
|
c9d0cbce5b
|
fix(session): 修复 getOrCreateProject 死锁问题
读写锁嵌套导致死锁:在持有读锁的情况下尝试获取写锁。
改为先释放读锁再获取写锁,并使用双重检查模式防止竞态条件。
|
2025-12-14 20:44:55 +08:00 |
|
kurihada
|
70a9a154a4
|
feat(context): 添加上下文压缩 API 和 UI 组件
Server API:
- 扩展 Agent Adapter 接口添加压缩相关方法
- 新增 context.ts 路由 (GET /sessions/:id/context, POST /sessions/:id/compress)
- 扩展 config.ts 添加摘要模型配置接口 (GET/PUT /config/summary)
UI 组件:
- 新增 ContextUsage 组件显示上下文使用情况
- 扩展 ConfigPanel 添加摘要模型配置区域
- 添加 API 客户端方法和类型定义
Web 集成:
- 在 Chat 页面头部集成 ContextUsage 紧凑模式显示
|
2025-12-14 20:33:51 +08:00 |
|
kurihada
|
f54f24b079
|
feat(context): 优化对话压缩系统
- 添加独立摘要模型配置支持(SUMMARY_PROVIDER/MODEL/API_KEY/BASE_URL)
- 添加 CompressionStatus 枚举和 DetailedCompressionResult 详细返回类型
- 实现压缩失败检测(空摘要、token膨胀)
- 添加首条 user-assistant 对保护,确保上下文连贯性
- CompressionManager 支持独立摘要模型(优先使用小模型降低成本)
- Agent 自动压缩时显示详细状态信息
- 更新相关测试用例
|
2025-12-13 11:13:20 +08:00 |
|
kurihada
|
9ff2934089
|
refactor(session): 升级存储系统架构
- 添加读写锁机制防止并发写入冲突
- 实现数据迁移框架支持版本化升级
- 分层存储结构:项目/会话/消息独立存储
- 使用 Git root commit hash 作为稳定项目 ID
- 增量消息同步避免重复写入
- 每条消息独立文件,按序号命名 (0001.json, 0002.json)
|
2025-12-13 10:41:36 +08:00 |
|
kurihada
|
26e8646518
|
feat(ui): 集成 Provider 管理到 web 和 desktop 应用
- 新增 ProviderEditor 组件用于编辑提供商配置
- ProvidersPanel 添加编辑按钮集成 ProviderEditor
- ChatPage 添加 onOpenProviders 工具栏按钮
- web/desktop App.tsx 集成 ProvidersPanel 面板
|
2025-12-13 02:01:09 +08:00 |
|
kurihada
|
6ec6fe2f9f
|
feat(provider): 添加独立的 Provider 模块管理模型提供商
实现可扩展的 Provider 系统,支持动态注册自定义提供商:
Core 模块 (packages/core/src/provider/):
- types.ts: Provider 相关类型定义
- builtin/: 内置提供商 (Anthropic, OpenAI, DeepSeek)
- registry.ts: ProviderRegistry 单例类
- config.ts: 配置持久化 (~/.ai-terminal-assistant/providers.json)
- utils.ts: 连接测试等工具函数
Server API (packages/server/src/routes/providers.ts):
- GET/POST/PUT/DELETE /providers 提供商管理
- POST /providers/:id/test 连接测试
- 自定义模型管理接口
Frontend (packages/ui/):
- ProvidersPanel 组件用于管理提供商
- API client 函数和类型定义
主要功能:
- 支持动态注册 OpenAI 兼容服务 (Ollama, vLLM 等)
- 每个提供商独立的 API Key 配置
- 预设模型列表 + 自定义模型输入
- 连接测试验证
|
2025-12-13 01:50:27 +08:00 |
|
kurihada
|
1d69fd876d
|
feat(permission): 实现 WebSocket 权限确认机制
重构权限系统,将终端 UI 代码从 core 模块移除,实现基于 WebSocket 的权限确认流程:
Core 模块清理:
- 删除 permission/prompt.ts 和 file-prompt.ts(终端交互)
- 删除 diff.ts 中的 chalk 渲染函数
- 删除 config.ts 中的 inquirer 交互
- 移除 chalk 依赖
Server 权限处理:
- 新增 permission/handler.ts,实现 WebSocket 权限请求/响应
- 更新 agent/adapter.ts 设置权限回调
- 更新 ws.ts 处理 permission_response 消息
Web 权限组件:
- 新增 PermissionDialog 组件,显示权限请求详情和 Diff
- 更新 useChat hook 管理权限状态
- 更新 Chat 页面集成权限弹窗
|
2025-12-13 01:09:35 +08:00 |
|
kurihada
|
5d4afecd48
|
refactor(core): 移除 UI 交互层,保持 core 为纯能力模块
- 删除 terminal.ts 及其测试(UI 交互应属于 cli 包)
- 清理 index.ts 中的 CLI 入口代码
- 合并 lib.ts 导出到 index.ts
- 移除 commander、inquirer 依赖
- 更新 package.json 导出配置
|
2025-12-13 00:42:07 +08:00 |
|
kurihada
|
5b7d62e793
|
chore: 忽略 Astro 自动生成目录
|
2025-12-12 23:11:21 +08:00 |
|
kurihada
|
87620a1141
|
feat(website): 添加文档页面布局和根目录快捷脚本
- 新增 DocsSidebar 文档导航侧边栏组件
- 新增 DocsLayout 文档页面布局模板
- 首页导航添加文档入口链接
- 根目录 package.json 添加各包快捷脚本
|
2025-12-12 23:09:41 +08:00 |
|
kurihada
|
2f9db8d7d8
|
feat(website): 添加项目官网
使用 Astro 框架构建的静态官网
|
2025-12-12 22:53:02 +08:00 |
|
kurihada
|
cb554c65b4
|
feat(checkpoint): 添加 Checkpoint 可视化管理功能
Core 层增强:
- 添加 safety.ts: 7点安全检查机制
- 添加 session-tracker.ts: 会话级检查点跟踪
- 添加 lock.ts: 并发控制文件锁
- 添加 lfs.ts: Git LFS 大文件支持
- 添加 path-validator.ts: 路径验证
- 添加 commit-message.ts: 智能提交消息生成
- 增强 manager.ts: 支持三种恢复模式、unrevert 撤销回滚
Server 层:
- 添加 checkpoints.ts: 16个 REST API 端点
- GET/POST /checkpoints: 列表/创建检查点
- GET/DELETE /checkpoints/🆔 获取/删除检查点
- GET /checkpoints/:id/diff: 获取差异
- POST /checkpoints/:id/restore: 恢复到检查点
- POST /checkpoints/unrevert: 撤销回滚
- GET /checkpoints/:id/safety-check: 安全检查
UI 层:
- 添加 CheckpointPanel.tsx: 检查点列表面板
- 添加 CheckpointDiffViewer.tsx: 差异查看器
- 添加 RestoreDialog.tsx: 恢复确认对话框
- 添加 16 个 API 客户端函数
- 添加完整的 TypeScript 类型定义
Web/Desktop 集成:
- 添加 History 按钮到工具栏
- 集成 CheckpointPanel 组件
|
2025-12-12 22:52:27 +08:00 |
|
kurihada
|
a225e66ad7
|
feat(agents): 添加 Agent 预设管理功能
- 创建 Server Agents API 路由 (CRUD + presets + defaults)
- 添加 UI Agent 类型定义和 API 客户端函数
- 实现 AgentsPanel 组件 (预设/自定义 Agent 列表)
- 实现 AgentEditor 组件 (创建/编辑 Agent)
- 实现 AgentDefaultsEditor 组件 (全局默认配置)
- 集成 AgentsPanel 到 Web 和 Desktop 应用
|
2025-12-12 21:23:01 +08:00 |
|
kurihada
|
9365e07df1
|
feat(hooks): 添加 Hooks 配置管理功能
- 新增 Server Hooks API 路由 (CRUD + 测试执行)
- 新增 HooksPanel 组件用于管理所有钩子类型
- 新增 HookEditor 组件用于编辑单个钩子规则
- 支持 file_edited/file_created/file_deleted/session_completed 四种钩子
- 集成到 web 和 desktop 应用
|
2025-12-12 21:02:06 +08:00 |
|
kurihada
|
622bd869f9
|
docs: 添加选择性构建规则到 CLAUDE.md
|
2025-12-12 20:42:11 +08:00 |
|
kurihada
|
bad7bfcc36
|
feat(mcp): 添加 MCP 服务器管理功能
- 新增 Server MCP API 路由 (/api/mcp/*)
- GET /servers - 获取所有服务器状态
- POST /servers/:name/connect|disconnect|enable|disable
- GET /tools - 获取所有 MCP 工具
- GET /config - 获取 MCP 配置
- 新增 UI MCPPanel 组件
- 显示服务器列表和状态指示灯
- 支持连接/断开/启用/禁用操作
- 展开查看服务器配置和工具列表
- 响应式设计支持移动端
- 集成到 Web 和 Desktop
- 添加 Plug 图标按钮到工具栏
- 点击打开 MCP 管理面板
|
2025-12-12 20:41:49 +08:00 |
|
kurihada
|
5a482f78ff
|
feat(ui): 集成命令管理面板到 web 和 desktop
- 新增 CommandPanel 组件用于命令列表/搜索/CRUD
- 新增 CommandEditor 组件用于命令编辑/创建
- web/desktop 工具栏添加 Terminal 图标按钮
- 点击按钮打开命令管理面板
|
2025-12-12 20:15:24 +08:00 |
|
kurihada
|
2973369778
|
feat(cli): 添加命令 CRUD API 方法
|
2025-12-12 18:53:25 +08:00 |
|
kurihada
|
f0385ef221
|
feat(commands): 实现命令 CRUD 完整功能
Core:
- 新增 CommandManager 类,支持创建、更新、删除命令
- 验证命令名称防止路径遍历攻击
- 自动生成 Markdown 文件(含 YAML frontmatter)
- 内置命令保护(不可修改/删除)
Server:
- POST /api/commands - 创建命令
- GET /api/commands/:name/content - 获取命令完整内容
- PUT /api/commands/:name - 更新命令
- DELETE /api/commands/:name - 删除命令
UI:
- 新增 createCommand、updateCommand、deleteCommand、getCommandContent 函数
- 新增 CreateCommandInput、UpdateCommandInput、CommandContent 类型
|
2025-12-12 18:51:38 +08:00 |
|
kurihada
|
db711648e0
|
feat(ui): 添加斜杠命令输入支持
- 新增 useCommands hook 用于加载和搜索命令
- 新增 CommandMenu 组件,支持键盘导航和选择
- ChatInput 支持 / 触发命令菜单
- 导出命令相关 API 和类型
|
2025-12-12 18:38:43 +08:00 |
|
kurihada
|
c25faa13b5
|
fix(core): 导出命令系统函数供 Server 使用
|
2025-12-12 18:29:24 +08:00 |
|
kurihada
|
61735317a0
|
feat(server): 添加统一命令系统 API
- 新增 /api/commands 路由,支持列出、查询、执行和搜索命令
- Server 通过动态导入 Core 的 CommandRegistry 和 CommandExecutor
- CLI、Web、Desktop 客户端均可通过 REST API 访问斜杠命令
- 支持三层命令优先级: project > user > builtin
|
2025-12-12 18:24:04 +08:00 |
|
kurihada
|
ada9f890c6
|
fix(ui): 修复响应式侧边栏重复渲染问题
移动端抽屉和桌面端侧边栏分别用 md:hidden 和 hidden md:flex 控制显示
|
2025-12-12 17:59:08 +08:00 |
|
kurihada
|
3ccc47ca5a
|
fix(ui): 修复删除按钮图标不显示问题
移除 motion.button 的 initial opacity 设置,避免覆盖 CSS hover 样式
|
2025-12-12 17:56:47 +08:00 |
|
kurihada
|
65a23f1e71
|
feat: 添加会话标题自动生成功能
- 后端:首次 AI 回复后自动从用户消息提取标题
- 后端:通过 WebSocket 推送 session_updated 事件
- 前端:useChat hook 处理标题更新事件
- 前端:Sidebar 组件实时更新会话标题显示
|
2025-12-12 17:45:17 +08:00 |
|
kurihada
|
f561687307
|
feat(ui): 添加 Markdown 渲染和代码高亮功能
- 新增 CodeBlock 组件,使用 Shiki 语法高亮
- 新增 Markdown 组件,支持 GFM 语法
- AI 消息自动渲染 Markdown,用户消息保持原样
- 代码块支持一键复制和语言标签显示
|
2025-12-12 17:32:25 +08:00 |
|
kurihada
|
cbbe9c7af1
|
feat(ui): 集成 shadcn/ui 原语、Framer Motion 动画和 Sonner Toast
- 添加 shadcn/ui 风格原语组件 (Button, Input, Dialog, Select, Slider, Switch, Tooltip)
- 集成 Framer Motion 动画库,添加动画预设
- 集成 Sonner Toast 通知系统
- 改造 ChatMessage 添加淡入动画和复制按钮
- 改造 Sidebar 添加动画、空状态引导和骨架屏
- 改造 ConfigPanel 使用新原语组件
- 优化 Chat 页面空状态和连接状态指示器
- 添加 tailwindcss-animate 插件
|
2025-12-12 17:20:41 +08:00 |
|
kurihada
|
67c6918b28
|
refactor(ui): 将工具栏按钮移入 Chat Header
- 移除 App.tsx 中 absolute 定位的悬浮按钮
- 将设置和文件浏览器按钮移入 Chat Header
- 通过 props 传递按钮状态和回调函数
- 修复 tsconfig.json 的 include 配置错误
|
2025-12-12 16:34:06 +08:00 |
|
kurihada
|
68ab6a2016
|
feat(ui): 创建共享 UI 组件包
将 web 和 desktop 的重复代码抽取到 @ai-assistant/ui 包:
- 添加可配置的 API 客户端 (configureApiClient)
- 迁移共享组件: ChatMessage, ChatInput, Sidebar, FileBrowser, ConfigPanel
- 迁移共享 hook: useChat
- 添加 responsive prop 支持响应式布局
- 更新 web/desktop 依赖并删除重复代码
|
2025-12-12 15:52:53 +08:00 |
|
kurihada
|
563224fa73
|
docs: 添加中文文档
|
2025-12-12 15:31:38 +08:00 |
|
kurihada
|
4ca8c413a6
|
fix(desktop): 修复桌面端 API 连接问题
- API 客户端使用完整后端 URL (localhost:3000)
- 添加 tauri-plugin-http 支持外部 HTTP 请求
- 配置 CSP 允许连接 localhost
- 同步 useChat hook 修复 WebSocket 错误处理
|
2025-12-12 15:30:01 +08:00 |
|
kurihada
|
fc5a644726
|
fix(web): 修复 WebSocket 切换 session 时的错误
- 添加 isClosingRef 标记主动关闭,避免触发错误回调
- 在 effect 开始时重置 isClosingRef 支持 StrictMode
- 增强 Vite 代理错误处理,静默 EPIPE/ECONNRESET 错误
|
2025-12-12 15:29:46 +08:00 |
|
kurihada
|
40afa10ed9
|
feat(server): 添加 session 持久化支持
- 复用 core 包的 SessionStorage 实现文件持久化
- sessions 保存到 ~/.local/share/ai-assist/sessions/
- 服务启动时自动加载已持久化的 sessions
- create/addMessage/delete 操作自动同步到文件
|
2025-12-12 15:27:16 +08:00 |
|
kurihada
|
b17649930b
|
docs: 更新项目文档
|
2025-12-12 14:28:34 +08:00 |
|
kurihada
|
2fe1c55997
|
fix(web): 修复 useChat 无限请求问题
- 用 useRef 存储回调函数,避免依赖变化导致无限循环
- 添加 onSessionNotFound 回调,会话不存在时自动创建新会话
- 限制 WebSocket 重连次数为 5 次
- 添加 web:dev 快捷脚本
|
2025-12-12 14:27:54 +08:00 |
|
kurihada
|
20765efe62
|
feat(web): 添加响应式布局和 PWA 支持
- 实现移动端响应式适配:抽屉式侧边栏、触摸优化、Safe Area 支持
- 添加 PWA 支持:vite-plugin-pwa、manifest、Service Worker 缓存
- 优化移动端输入体验:防缩放、最小触摸目标、键盘适配
|
2025-12-12 13:56:52 +08:00 |
|
kurihada
|
6ef9d95172
|
feat: 添加 Tauri 桌面应用
- 创建 packages/desktop 模块
- 实现 Tauri 2.0 + React 桌面应用
- 复用 Web 前端代码
- 添加系统托盘功能
- 实现本地文件访问命令
- 配置 Vite + Tauri 集成
- 更新 .gitignore 添加 Rust/Tauri 相关规则
|
2025-12-12 13:19:00 +08:00 |
|
kurihada
|
b5d3b7df57
|
feat: 添加配置面板组件
- 新增 ConfigPanel 组件,支持模型选择、参数调整
- 添加配置 API (getConfig/updateConfig)
- 在 App.tsx 中集成配置按钮和面板
|
2025-12-12 12:14:39 +08:00 |
|
kurihada
|
6438ecf2a6
|
feat: 实现文件浏览器功能
- 添加 /api/files 路由支持目录浏览和文件读取
- 支持 list、read、stat、tree 四个端点
- 安全路径检查防止目录遍历攻击
- 创建 FileBrowser React 组件
- 支持目录导航、文件预览、隐藏文件切换
- 在 Web UI 中添加可切换的文件浏览面板
|
2025-12-12 11:55:11 +08:00 |
|
kurihada
|
da1773b950
|
feat: 实现 TUI 组件系统
- 添加 blessed 终端 UI 库
- 创建 ChatView 组件:支持消息列表和流式输出
- 创建 SessionList 组件:会话管理和快捷键
- 创建 StatusBar 组件:连接状态显示
- 创建 TUIApp 主应用整合所有组件
- 更新 attach 命令支持 --tui/--no-tui 选项
- 添加 CLAUDE.md 项目规范文件
- 修复 Web 前端 CSS prose 类缺失问题
|
2025-12-12 11:47:24 +08:00 |
|
kurihada
|
168996a475
|
feat: 完善 Server 层并添加 CLI 和 Web 前端
Server 层增强:
- 添加 Agent 适配层,支持动态加载 core 模块
- 实现 Token 认证机制,支持本地/远程模式
- WebSocket 集成 Agent 实时对话
CLI 模块 (packages/cli):
- serve 命令启动 HTTP Server
- attach 命令连接远程 Server
- API Client 封装
Web 前端 (packages/web):
- React 18 + Vite + Tailwind CSS
- 会话管理侧边栏
- WebSocket 实时聊天界面
- 流式消息显示
|
2025-12-12 11:22:25 +08:00 |
|
kurihada
|
5e32375f0e
|
feat: 重构为 Monorepo 架构并实现 HTTP Server
架构变更:
- 采用 pnpm workspaces 实现 Monorepo 结构
- 将现有代码迁移到 packages/core
- 新增 packages/server HTTP 服务层
Server 功能:
- REST API: 会话管理、工具管理、配置管理
- WebSocket: 实时双向通信支持
- SSE: 服务端事件推送
- Hono + Bun 作为运行时
API 端点:
- GET/POST /api/sessions - 会话 CRUD
- GET/POST /api/sessions/:id/messages - 消息管理
- GET /api/sessions/:id/events - SSE 事件流
- WS /api/ws/:sessionId - WebSocket 连接
- GET/POST /api/tools - 工具管理
- GET/PUT /api/config - 配置管理
|
2025-12-12 10:42:20 +08:00 |
|
kurihada
|
59dbed926e
|
feat: 实现统一编辑模式系统
- 新增 src/editors 模块,支持三种编辑模式:
- whole: 整文件替换
- search-replace: 搜索替换(支持多块)
- diff: 统一 diff 格式
- 新增 multi_edit 工具,支持批量编辑和原子操作
- 重构 edit_file 和 write_file 工具使用新的编辑系统
- 功能特性:
- 编辑验证(唯一性检查、文件存在性检查)
- 友好的错误提示(显示匹配数量、相似内容提示)
- LSP 诊断集成
- 批量编辑支持原子操作和回滚
- 空白字符规范化处理
- 新增 30 个编辑器测试用例
|
2025-12-12 09:58:19 +08:00 |
|
kurihada
|
2208179514
|
feat: 实现 Git 深度集成
参考 aider 的实现,添加 Git 深度集成功能:
- GitRepo: 封装 simple-git 的基础 Git 操作
- AutoCommitManager: 支持 immediate/batch/manual 三种自动提交模式
- MessageGenerator: 智能生成 conventional/simple/detailed 格式的 commit message
- UndoManager: 安全的 undo 机制,仅允许撤销 AI 生成的提交
主要特性:
- 文件变更后自动提交 (batch 模式默认 3 秒延迟)
- 智能检测变更类型 (feat/fix/docs/test/chore 等)
- 自动检测 scope (从文件路径推断)
- 多重安全检查的 undo 机制
- 追踪 AI 生成的提交,防止误撤销用户提交
- 与 Hook 系统集成
添加 simple-git 依赖
编写完整测试用例 (26 个测试)
|
2025-12-11 23:41:51 +08:00 |
|
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
|
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 |
|