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 读取
This commit is contained in:
2025-12-15 13:35:32 +08:00
parent eda2ccb171
commit 9f456c1029
13 changed files with 635 additions and 513 deletions
+5 -3
View File
@@ -30,13 +30,15 @@ export interface ToolCallInfo {
}
/**
* 消息(合并后的格式)
* 消息格式(存储层已经是 2-message 格式,无需 API 层合并
*
* 助手消息可能包含工具调用信息,将多个原始消息合并为一条
* 只有 user 和 assistant 两种角色:
* - user: 用户输入
* - assistant: AI 回复(包含文本和工具调用)
*/
export interface Message {
id: string;
role: 'user' | 'assistant' | 'system';
role: 'user' | 'assistant';
content: string;
timestamp: string;
/** 工具调用列表 */