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 端点
This commit is contained in:
2025-12-15 10:04:22 +08:00
parent a657af9bb7
commit 6342a46e59
14 changed files with 273 additions and 503 deletions
+11 -1
View File
@@ -12,7 +12,13 @@ import { vi } from 'vitest';
export function createMockAgent() {
return {
setRegistry: vi.fn(),
chat: vi.fn().mockResolvedValue('mock response'),
chat: vi.fn().mockResolvedValue({
text: 'mock response',
messages: [
{ role: 'user', content: 'test' },
{ role: 'assistant', content: 'mock response' },
],
}),
getToolCount: vi.fn().mockReturnValue({ core: 5, discovered: 0, total: 5 }),
getContextUsageFormatted: vi.fn().mockReturnValue('10k / 200k'),
getContextUsage: vi.fn().mockReturnValue({
@@ -25,6 +31,10 @@ export function createMockAgent() {
getCompressionManager: vi.fn().mockReturnValue({
shouldCompress: vi.fn().mockReturnValue(false),
}),
getHistory: vi.fn().mockReturnValue([
{ role: 'user', content: 'test' },
{ role: 'assistant', content: 'mock response' },
]),
};
}