feat(ui): 添加子 Agent 进度显示功能

当 build agent 调用 guide/explore 等子 agent 时,
用户可以在 web 页面实时看到子 agent 的执行进度

实现方案:
- Core: 使用 EventEmitter 模式发射子 agent 事件
- Server: 订阅事件并转发到 WebSocket
- UI: 处理事件并渲染 SubagentProgress 组件

新增文件:
- packages/core/src/agent/events.ts
- packages/ui/src/components/SubagentProgress.tsx

修改文件:
- core: executor.ts, manager.ts, types.ts, task.ts
- server: adapter.ts, types.ts
- ui: useChat.ts, types.ts
- web: Chat.tsx
This commit is contained in:
2025-12-16 19:38:36 +08:00
parent f0ff887129
commit 08d481483c
13 changed files with 921 additions and 19 deletions
+8 -1
View File
@@ -13,6 +13,7 @@ import {
ChatInput,
PermissionDialog,
ContextUsage,
SubagentProgress,
} from '@ai-assistant/ui';
interface ChatPageProps {
@@ -63,6 +64,7 @@ export function ChatPage({
setAgentMode,
setAutoApprove,
currentAgent,
currentSubagent,
} = useChat({
sessionId,
onError: (error) => {
@@ -298,7 +300,12 @@ export function ChatPage({
<ChatMessage message={streamingMessage} isStreaming />
)}
{isLoading && !streamingMessage && <TypingIndicator agentName={currentAgent} />}
{/* 子 Agent 进度显示 */}
{currentSubagent && (
<SubagentProgress subagent={currentSubagent} />
)}
{isLoading && !streamingMessage && !currentSubagent && <TypingIndicator agentName={currentAgent} />}
<div ref={messagesEndRef} />
</div>