10 Commits

Author SHA1 Message Date
kurihada 63af432358 fix(core): 修复子 Agent 使用不同 provider 时配置错误的问题
当 Agent 通过 Global Defaults 指定不同的 provider 时,
之前错误地使用主 Agent 的 apiKey 和 baseUrl,
现在会从 ProviderRegistry 获取对应 provider 的配置
2025-12-18 09:54:54 +08:00
kurihada 5d1db127b2 refactor(core): 重命名 build agent 为 general agent
- build.ts 重命名为 general.ts
- buildAgent 重命名为 generalAgent
- 更新相关导出和测试
2025-12-17 14:50:40 +08:00
kurihada eb80b2c9e6 fix(core): 修复测试用例以匹配最新实现
- todo-manager.test: 修复空日期字符串导致的 Invalid time value 错误
- config-loader.test: 更新测试以匹配简化后的配置加载逻辑
- mcp/config.test: 修复配置路径匹配问题
- task.test/task-extended.test: 添加缺失的 agentEventEmitter mock
- presets/index.test: 更新预设 Agent 数量和 maxSteps 测试
- agent.test: 添加缺失的 mock 函数并修正模式切换测试
- 删除过时的 session/manager.test 和 storage.test (使用已废弃的 API)
2025-12-16 22:33:46 +08:00
kurihada 1d380d0bcb refactor(core): 统一模板引擎到 src/template/ 目录
- 将 agent/prompt-template/ 目录合并到 src/template/
- 新增通用模板函数 renderTemplate、render
- 新增 Agent 特定函数 renderPromptTemplate、renderPrompt
- 新增 createToolDescriptionContext 支持工具描述模板变量
- 支持 ${GREP_TOOL_NAME} 等 Claude Code 风格变量
- 更新所有相关导入路径
2025-12-16 16:05:10 +08:00
kurihada 30f35a6562 refactor(core): 重命名 grep_content 工具为 grep
- 重命名 grep_content.ts 为 grep.ts
- 更新工具名称从 grep_content 改为 grep
- 更新所有引用该工具的代码和测试文件
- 更新描述文件名称
2025-12-16 15:03:33 +08:00
kurihada 452f19e2a9 refactor(core): 移除未使用的 prompt-template templates 目录 2025-12-16 14:19:36 +08:00
kurihada 58f1bc8718 feat(core): 实现动态提示词模板系统
- 新增 prompt-template 模块,支持运行时变量替换
- 支持 ${variable}、${obj.prop}、${cond ? "a" : "b"} 语法
- AgentInfo 新增 promptTemplate 字段标记动态模板
- Plan Agent 提示词改用模板语法,支持动态工具名和计划文件路径
- AgentExecutor.buildSystemPrompt 集成模板渲染
- 新增 27 个单元测试验证模板功能
2025-12-16 14:15:10 +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 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 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