refactor: 聊天室 Agent 重构 — ToolLoopAgent + 论坛式布局

后端:
- 删除 agent-stream.ts,新建 alfred-agent.ts (ToolLoopAgent 工厂)
- 新建 get-current-time.ts 工具 (zod schema)
- 重构 send.ts: createAgentUIStreamResponse + onFinish 可靠持久化

前端:
- 删除 MessageBubble.tsx,新建 ToolCallCard.tsx (四态)
- 重构 ChatPanel.tsx: 论坛式 Card 布局 + PartRenderer 分派
- 移除 @ant-design/x 依赖,改用 antd 组件 + streamdown

依赖:
+ zod + streamdown
- @ant-design/x - @ant-design/x-markdown

测试: 306 pass, typecheck/lint 0 errors
This commit is contained in:
2026-05-31 17:25:29 +08:00
parent f83f434863
commit 6eeb4ced7b
16 changed files with 698 additions and 322 deletions

View File

@@ -150,13 +150,58 @@ body {
flex: 1;
}
.app-chat-panel-sender {
padding: var(--ant-padding-sm) var(--ant-padding);
.chat-input-area {
padding: 8px 16px;
border-top: 1px solid var(--ant-color-border-secondary);
}
.app-chat-message-bubble {
white-space: pre-wrap;
word-break: break-word;
line-height: 1.6;
.msg-user .ant-card-body {
background: var(--ant-color-bg-text-hover);
}
.msg-ai .ant-card-body {
background: var(--ant-color-bg-container);
}
.message-body {
margin-top: 8px;
}
.message-body pre {
background: var(--ant-color-bg-layout);
padding: 8px 12px;
border-radius: 6px;
overflow-x: auto;
font-size: 13px;
}
.chat-scroll-area {
flex: 1;
overflow: auto;
padding: 16px;
}
.chat-loading-indicator {
padding: 8px;
}
.chat-textarea {
flex: 1;
}
.message-body-text {
margin-bottom: 0;
}
.step-divider {
margin: 4px 0;
}
.tool-result-pre {
font-size: 12px;
margin: 0;
}
.avatar-ai {
background-color: var(--ant-color-primary);
}