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
@@ -487,7 +487,6 @@ describe('Agent Adapter', () => {
const mockSessionManager = {
exists: vi.fn().mockReturnValue(true),
updateStatus: vi.fn(),
addMessage: vi.fn().mockResolvedValue({ id: 'msg-1', role: 'assistant', content: 'placeholder' }),
};
vi.doMock('../../../src/session/manager.js', () => ({
@@ -523,8 +522,7 @@ describe('Agent Adapter', () => {
exists: vi.fn().mockReturnValue(true),
get: vi.fn().mockReturnValue({ id: 'session-1', name: 'Test' }),
updateStatus: vi.fn(),
addMessage: vi.fn().mockResolvedValue({ id: 'msg-1', role: 'assistant', content: 'response' }),
getMessages: vi.fn().mockReturnValue([]),
updateMessageCount: vi.fn(),
};
vi.doMock('../../../src/session/manager.js', () => ({