Skip to content

Commit e8aec9a

Browse files
committed
chore: update docs
1 parent 0511b26 commit e8aec9a

File tree

1 file changed

+48
-5
lines changed

1 file changed

+48
-5
lines changed

docs/FLOWS.md

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
sequenceDiagram
99
autonumber
1010
participant User as 用户
11-
participant UI as ChatInput.vue
11+
participant UI as ChatInput/ChatView.vue
12+
participant Store as chatStore.sendMessage()
13+
participant IPC as presenter:call (IPC)
1214
participant AgentP as AgentPresenter.sendMessage()
1315
participant MsgMgr as MessageManager
1416
participant StreamGen as StreamGenerationHandler
@@ -19,7 +21,9 @@ sequenceDiagram
1921
participant EventBus as EventBus
2022
2123
User->>UI: 输入内容并点击发送
22-
UI->>AgentP: sendMessage(agentId, content)
24+
UI->>Store: handleSend(message)
25+
Store->>IPC: presenter:call(agentPresenter.sendMessage)
26+
IPC->>AgentP: sendMessage(agentId, content)
2327
2428
Note over AgentP,MsgMgr: 1. 创建用户消息
2529
AgentP->>MsgMgr: sendMessage(agentId, content, 'user')
@@ -76,7 +80,7 @@ sequenceDiagram
7680
else permission 事件
7781
AgentLoop->>EventBus: send { tool_call: 'permission-required' }
7882
AgentLoop->>AgentLoop: needContinue = false (等待用户响应)
79-
break 退出循环等待用户批准
83+
Note over AgentLoop: 退出循环等待用户批准
8084
end
8185
8286
alt stop event
@@ -85,7 +89,7 @@ sequenceDiagram
8589
Note over AgentLoop: 继续循环
8690
else end/max_tokens
8791
Note over AgentLoop: 结束循环
88-
需要 break
92+
Note over AgentLoop: 需要 break
8993
end
9094
end
9195
end
@@ -119,7 +123,46 @@ sequenceDiagram
119123
- StreamGenerationHandler.startStreamCompletion: `src/main/presenter/agentPresenter/streaming/streamGenerationHandler.ts:54-179`
120124
- agentLoopHandler.startStreamCompletion: `src/main/presenter/agentPresenter/loop/agentLoopHandler.ts:145-668`
121125

122-
## 2. Agent Loop 详细流程
126+
## 2. 渲染与流式更新流程(含 Minimap)
127+
128+
```mermaid
129+
sequenceDiagram
130+
autonumber
131+
participant UI as ChatInput/ChatView (Renderer)
132+
participant Store as chatStore (Renderer)
133+
participant IPC as presenter:call (IPC)
134+
participant AgentP as AgentPresenter (Main)
135+
participant StreamGen as StreamGenerationHandler (Main)
136+
participant LLM as LLMProviderPresenter (Main)
137+
participant LLMH as LLMEventHandler (Main)
138+
participant Sched as StreamUpdateScheduler (Main)
139+
participant Cache as messageRuntimeCache (Renderer)
140+
participant List as MessageList/Minimap (Renderer)
141+
142+
UI->>Store: send(message)
143+
Store->>IPC: presenter:call(agentPresenter.sendMessage)
144+
IPC->>AgentP: sendMessage(agentId, content)
145+
AgentP->>StreamGen: generateAIResponse + startStreamCompletion
146+
StreamGen->>LLM: startStreamCompletion()
147+
LLM-->>LLMH: stream chunks
148+
LLMH->>Sched: enqueueDelta(content/tool_call/usage)
149+
Sched-->>Store: STREAM_EVENTS.RESPONSE (init/delta)
150+
Store->>Cache: cacheMessage/ensureMessageId
151+
Cache-->>List: messageItems/minimapMessages
152+
LLMH-->>Sched: flushAll(final)
153+
Sched-->>Store: STREAM_EVENTS.RESPONSE (final)
154+
LLMH-->>Store: STREAM_EVENTS.END/ERROR
155+
```
156+
157+
**关键文件位置**
158+
- chatStore.sendMessage + stream handlers: `src/renderer/src/stores/chat.ts`
159+
- Presenter IPC: `src/renderer/src/composables/usePresenter.ts`, `src/main/presenter/index.ts`
160+
- AgentPresenter.sendMessage: `src/main/presenter/agentPresenter/index.ts`
161+
- StreamGenerationHandler.startStreamCompletion: `src/main/presenter/agentPresenter/streaming/streamGenerationHandler.ts`
162+
- LLMEventHandler + StreamUpdateScheduler: `src/main/presenter/agentPresenter/streaming/llmEventHandler.ts`, `src/main/presenter/agentPresenter/streaming/streamUpdateScheduler.ts`
163+
- MessageList/Minimap: `src/renderer/src/components/message/MessageList.vue`, `src/renderer/src/components/message/MessageMinimap.vue`
164+
165+
## 3. Agent Loop 详细流程
123166

124167
```mermaid
125168
sequenceDiagram

0 commit comments

Comments
 (0)