Skip to content

Commit 374129d

Browse files
committed
refactor(presenter): rename agent presenters
1 parent 2fa0f41 commit 374129d

140 files changed

Lines changed: 766 additions & 722 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/ARCHITECTURE.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@
77
```mermaid
88
flowchart LR
99
Renderer["Renderer / Stores / Views"] --> Preload["preload IPC bridge"]
10-
Preload --> NewAgent["newAgentPresenter"]
10+
Preload --> NewAgent["agentSessionPresenter"]
1111
NewAgent --> Registry["AgentRegistry"]
12-
Registry --> DeepChat["deepchatAgentPresenter"]
12+
Registry --> DeepChat["agentRuntimePresenter"]
1313
DeepChat --> Tool["toolPresenter"]
1414
DeepChat --> Llm["llmProviderPresenter"]
1515
Tool --> Mcp["mcpPresenter"]
1616
Tool --> AgentTools["toolPresenter/agentTools"]
1717
Llm --> Acp["llmProviderPresenter/acp"]
1818
DeepChat --> SQLite["sqlitePresenter"]
19-
NewAgent --> SessionDb["newAgentPresenter/sessionManager"]
19+
NewAgent --> SessionDb["agentSessionPresenter/sessionManager"]
2020
```
2121

2222
主结论:
2323

24-
- `newAgentPresenter` 是 renderer 唯一会话入口。
25-
- `deepchatAgentPresenter` 持有聊天 runtime、流式执行、工具交互、暂停恢复。
24+
- `agentSessionPresenter` 是 renderer 唯一会话入口。
25+
- `agentRuntimePresenter` 持有聊天 runtime、流式执行、工具交互、暂停恢复。
2626
- `toolPresenter` 统一路由 MCP tools 与本地 agent tools。
2727
- `llmProviderPresenter` 统一管理 provider 实例、流状态和 ACP provider helper。
2828

@@ -31,8 +31,8 @@ flowchart LR
3131
| 模块 | 位置 | 职责 |
3232
| --- | --- | --- |
3333
| `Presenter` 组装层 | `src/main/presenter/index.ts` | 组装 presenter 依赖,暴露主进程能力 |
34-
| `NewAgentPresenter` | `src/main/presenter/newAgentPresenter/` | 会话创建、窗口绑定、agent 注册、IPC-facing API |
35-
| `DeepChatAgentPresenter` | `src/main/presenter/deepchatAgentPresenter/` | 聊天 runtime、stream loop、tool interaction、message persistence |
34+
| `AgentSessionPresenter` | `src/main/presenter/agentSessionPresenter/` | 会话创建、窗口绑定、agent 注册、IPC-facing API |
35+
| `AgentRuntimePresenter` | `src/main/presenter/agentRuntimePresenter/` | 聊天 runtime、stream loop、tool interaction、message persistence |
3636
| `ToolPresenter` | `src/main/presenter/toolPresenter/` | 工具定义聚合、调用路由、权限预检查 |
3737
| `Agent tools` | `src/main/presenter/toolPresenter/agentTools/` | 文件系统、命令、settings 等本地工具 |
3838
| `LLMProviderPresenter` | `src/main/presenter/llmProviderPresenter/` | provider 实例、stream state、model 管理、embedding、ACP provider |
@@ -43,7 +43,7 @@ flowchart LR
4343

4444
### 1. IPC / Session orchestration
4545

46-
`newAgentPresenter` 负责:
46+
`agentSessionPresenter` 负责:
4747

4848
- 创建/删除/激活会话
4949
- 绑定 `webContentsId -> sessionId`
@@ -53,7 +53,7 @@ flowchart LR
5353

5454
### 2. Chat runtime
5555

56-
`deepchatAgentPresenter` 负责:
56+
`agentRuntimePresenter` 负责:
5757

5858
- `processMessage()``processStream()` 主循环
5959
- `sessionStore` / `messageStore` / `pendingInputStore`
@@ -82,7 +82,7 @@ flowchart LR
8282

8383
这次 retirement 后仍然保留的 legacy 边界只有:
8484

85-
- `src/main/presenter/newAgentPresenter/legacyImportService.ts`
85+
- `src/main/presenter/agentSessionPresenter/legacyImportService.ts`
8686
- legacy import hook / status tracking
8787
-`conversations/messages` 表,作为 import-only 与导出数据源
8888
- `SessionPresenter` 作为 main 内部数据平面,不再是 renderer 主聊天入口

docs/FLOWS.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
```mermaid
99
sequenceDiagram
1010
participant R as Renderer
11-
participant N as NewAgentPresenter
11+
participant N as AgentSessionPresenter
1212
participant A as AgentRegistry
13-
participant D as DeepChatAgentPresenter
13+
participant D as AgentRuntimePresenter
1414
participant S as NewSessionManager
1515
1616
R->>N: createSession(input, webContentsId)
@@ -24,9 +24,9 @@ sequenceDiagram
2424

2525
关键文件:
2626

27-
- `src/main/presenter/newAgentPresenter/index.ts`
28-
- `src/main/presenter/newAgentPresenter/sessionManager.ts`
29-
- `src/main/presenter/deepchatAgentPresenter/index.ts`
27+
- `src/main/presenter/agentSessionPresenter/index.ts`
28+
- `src/main/presenter/agentSessionPresenter/sessionManager.ts`
29+
- `src/main/presenter/agentRuntimePresenter/index.ts`
3030

3131
## 2. DeepChat 消息处理主循环
3232

@@ -48,16 +48,16 @@ flowchart TD
4848

4949
关键文件:
5050

51-
- `src/main/presenter/deepchatAgentPresenter/process.ts`
52-
- `src/main/presenter/deepchatAgentPresenter/dispatch.ts`
53-
- `src/main/presenter/deepchatAgentPresenter/contextBuilder.ts`
54-
- `src/main/presenter/deepchatAgentPresenter/messageStore.ts`
51+
- `src/main/presenter/agentRuntimePresenter/process.ts`
52+
- `src/main/presenter/agentRuntimePresenter/dispatch.ts`
53+
- `src/main/presenter/agentRuntimePresenter/contextBuilder.ts`
54+
- `src/main/presenter/agentRuntimePresenter/messageStore.ts`
5555

5656
## 3. 工具调用与权限
5757

5858
```mermaid
5959
sequenceDiagram
60-
participant D as DeepChatAgentPresenter
60+
participant D as AgentRuntimePresenter
6161
participant T as ToolPresenter
6262
participant M as MCP Presenter
6363
participant G as AgentToolManager
@@ -94,8 +94,8 @@ sequenceDiagram
9494
```mermaid
9595
sequenceDiagram
9696
participant R as Renderer
97-
participant N as NewAgentPresenter
98-
participant D as DeepChatAgentPresenter
97+
participant N as AgentSessionPresenter
98+
participant D as AgentRuntimePresenter
9999
participant L as LLMProviderPresenter
100100
participant A as ACP helpers
101101
@@ -109,7 +109,7 @@ sequenceDiagram
109109

110110
关键文件:
111111

112-
- `src/main/presenter/newAgentPresenter/index.ts`
112+
- `src/main/presenter/agentSessionPresenter/index.ts`
113113
- `src/main/presenter/llmProviderPresenter/index.ts`
114114
- `src/main/presenter/llmProviderPresenter/acp/`
115115

@@ -118,7 +118,7 @@ sequenceDiagram
118118
```mermaid
119119
sequenceDiagram
120120
participant Hook as lifecycle import hook
121-
participant N as NewAgentPresenter
121+
participant N as AgentSessionPresenter
122122
participant I as LegacyChatImportService
123123
participant DB as SQLite / legacy tables
124124
@@ -133,5 +133,5 @@ sequenceDiagram
133133

134134
关键文件:
135135

136-
- `src/main/presenter/newAgentPresenter/legacyImportService.ts`
136+
- `src/main/presenter/agentSessionPresenter/legacyImportService.ts`
137137
- `src/main/presenter/lifecyclePresenter/hooks/after-start/legacyImportHook.ts`

docs/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
```text
88
Renderer
99
-> preload IPC
10-
-> newAgentPresenter
11-
-> deepchatAgentPresenter
10+
-> agentSessionPresenter
11+
-> agentRuntimePresenter
1212
-> llmProviderPresenter / toolPresenter / mcpPresenter
1313
-> sqlitePresenter
1414
```
@@ -21,7 +21,7 @@ Renderer
2121
| --- | --- |
2222
| [ARCHITECTURE.md](./ARCHITECTURE.md) | 当前主架构总览 |
2323
| [FLOWS.md](./FLOWS.md) | 当前消息、工具、ACP、导入流程 |
24-
| [architecture/agent-system.md](./architecture/agent-system.md) | `newAgentPresenter` / `deepchatAgentPresenter` 细节 |
24+
| [architecture/agent-system.md](./architecture/agent-system.md) | `agentSessionPresenter` / `agentRuntimePresenter` 细节 |
2525
| [architecture/tool-system.md](./architecture/tool-system.md) | `ToolPresenter`、agent tools、ACP helper 分层 |
2626
| [architecture/session-management.md](./architecture/session-management.md) | 新会话管理与 legacy 数据平面边界 |
2727
| [guides/code-navigation.md](./guides/code-navigation.md) | 当前代码导航入口 |

docs/architecture/agent-system.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
```mermaid
99
flowchart TD
10-
UI["Renderer / IPC"] --> NewAgent["NewAgentPresenter"]
10+
UI["Renderer / IPC"] --> NewAgent["AgentSessionPresenter"]
1111
NewAgent --> Registry["AgentRegistry"]
12-
Registry --> DeepChat["DeepChatAgentPresenter"]
12+
Registry --> DeepChat["AgentRuntimePresenter"]
1313
DeepChat --> Context["contextBuilder"]
1414
DeepChat --> Process["process.ts"]
1515
DeepChat --> Dispatch["dispatch.ts"]
@@ -21,16 +21,16 @@ flowchart TD
2121

2222
主原则:
2323

24-
- renderer 只面向 `newAgentPresenter`
25-
- `newAgentPresenter` 只做 session orchestration,不执行聊天 loop
26-
- `deepchatAgentPresenter` 独占聊天 runtime
24+
- renderer 只面向 `agentSessionPresenter`
25+
- `agentSessionPresenter` 只做 session orchestration,不执行聊天 loop
26+
- `agentRuntimePresenter` 独占聊天 runtime
2727

2828
## 模块布局
2929

30-
### `newAgentPresenter/`
30+
### `agentSessionPresenter/`
3131

3232
```text
33-
newAgentPresenter/
33+
agentSessionPresenter/
3434
├── index.ts
3535
├── agentRegistry.ts
3636
├── sessionManager.ts
@@ -46,10 +46,10 @@ newAgentPresenter/
4646
- 暴露 renderer IPC 方法
4747
- 保留 legacy import 流程
4848

49-
### `deepchatAgentPresenter/`
49+
### `agentRuntimePresenter/`
5050

5151
```text
52-
deepchatAgentPresenter/
52+
agentRuntimePresenter/
5353
├── index.ts
5454
├── process.ts
5555
├── dispatch.ts
@@ -75,12 +75,12 @@ deepchatAgentPresenter/
7575

7676
|| 主文件 | 责任 |
7777
| --- | --- | --- |
78-
| Session orchestration | `src/main/presenter/newAgentPresenter/index.ts` | session 生命周期与 IPC |
79-
| Agent runtime | `src/main/presenter/deepchatAgentPresenter/index.ts` | run state、取消、恢复、模型/权限切换 |
80-
| Stream loop | `src/main/presenter/deepchatAgentPresenter/process.ts` | 调用 provider、累计 blocks、驱动 tool loop |
81-
| Tool dispatch | `src/main/presenter/deepchatAgentPresenter/dispatch.ts` | 调用 `ToolPresenter`、暂停交互、生成 tool 结果 |
82-
| Context build | `src/main/presenter/deepchatAgentPresenter/contextBuilder.ts` | 历史裁剪、resume context、token budget |
83-
| Persistence | `src/main/presenter/deepchatAgentPresenter/messageStore.ts` | 消息持久化与故障恢复 |
78+
| Session orchestration | `src/main/presenter/agentSessionPresenter/index.ts` | session 生命周期与 IPC |
79+
| Agent runtime | `src/main/presenter/agentRuntimePresenter/index.ts` | run state、取消、恢复、模型/权限切换 |
80+
| Stream loop | `src/main/presenter/agentRuntimePresenter/process.ts` | 调用 provider、累计 blocks、驱动 tool loop |
81+
| Tool dispatch | `src/main/presenter/agentRuntimePresenter/dispatch.ts` | 调用 `ToolPresenter`、暂停交互、生成 tool 结果 |
82+
| Context build | `src/main/presenter/agentRuntimePresenter/contextBuilder.ts` | 历史裁剪、resume context、token budget |
83+
| Persistence | `src/main/presenter/agentRuntimePresenter/messageStore.ts` | 消息持久化与故障恢复 |
8484

8585
## 兼容边界
8686

@@ -101,10 +101,10 @@ deepchatAgentPresenter/
101101

102102
如果要追一条真实消息链路,推荐顺序:
103103

104-
1. `src/main/presenter/newAgentPresenter/index.ts`
105-
2. `src/main/presenter/deepchatAgentPresenter/index.ts`
106-
3. `src/main/presenter/deepchatAgentPresenter/process.ts`
107-
4. `src/main/presenter/deepchatAgentPresenter/dispatch.ts`
104+
1. `src/main/presenter/agentSessionPresenter/index.ts`
105+
2. `src/main/presenter/agentRuntimePresenter/index.ts`
106+
3. `src/main/presenter/agentRuntimePresenter/process.ts`
107+
4. `src/main/presenter/agentRuntimePresenter/dispatch.ts`
108108
5. `src/main/presenter/toolPresenter/index.ts`
109109

110110
## 历史说明

docs/architecture/baselines/dependency-report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ Generated on 2026-04-03.
1313
- `presenter/index.ts`: 39
1414
- `presenter/llmProviderPresenter/managers/providerInstanceManager.ts`: 38
1515
- `presenter/configPresenter/index.ts`: 22
16-
- `presenter/deepchatAgentPresenter/index.ts`: 20
16+
- `presenter/agentRuntimePresenter/index.ts`: 20
1717
- `presenter/lifecyclePresenter/hooks/index.ts`: 17
1818
- `presenter/sqlitePresenter/index.ts`: 16
1919
- `presenter/remoteControlPresenter/index.ts`: 15
2020
- `presenter/llmProviderPresenter/index.ts`: 14
2121
- `presenter/toolPresenter/agentTools/agentToolManager.ts`: 14
22-
- `presenter/newAgentPresenter/index.ts`: 13
22+
- `presenter/agentSessionPresenter/index.ts`: 13
2323
- `presenter/llmProviderPresenter/acp/index.ts`: 12
2424
- `presenter/filePresenter/mime.ts`: 11
2525
- `presenter/mcpPresenter/inMemoryServers/builder.ts`: 11
@@ -64,7 +64,7 @@ Generated on 2026-04-03.
6464
- `presenter/index.ts -> presenter/mcpPresenter/index.ts -> presenter/mcpPresenter/serverManager.ts -> presenter/mcpPresenter/mcpClient.ts -> presenter/mcpPresenter/inMemoryServers/builder.ts -> presenter/mcpPresenter/inMemoryServers/builtinKnowledgeServer.ts -> presenter/index.ts`
6565
- `presenter/index.ts -> presenter/mcpPresenter/index.ts -> presenter/mcpPresenter/toolManager.ts -> presenter/index.ts`
6666
- `presenter/index.ts -> presenter/mcpPresenter/index.ts -> presenter/index.ts`
67-
- `presenter/sqlitePresenter/index.ts -> presenter/newAgentPresenter/legacyImportService.ts -> presenter/sqlitePresenter/index.ts`
67+
- `presenter/sqlitePresenter/index.ts -> presenter/agentSessionPresenter/legacyImportService.ts -> presenter/sqlitePresenter/index.ts`
6868
- `presenter/index.ts -> presenter/syncPresenter/index.ts -> presenter/index.ts`
6969

7070
## renderer

docs/architecture/baselines/test-failure-groups.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Baseline captured on `2026-04-03`.
44

55
## 真实行为回归 / 契约漂移
66

7-
- `test/main/presenter/newAgentPresenter/integration.test.ts`
7+
- `test/main/presenter/agentSessionPresenter/integration.test.ts`
88
- `configPresenter.getAgentType()` mock 契约缺失暴露了会话编排对配置查询的硬依赖。
99
- `test/main/presenter/floatingButtonPresenter/*.test.ts`
1010
- 布局断言和当前窗口吸边行为不一致。
@@ -19,7 +19,7 @@ Baseline captured on `2026-04-03`.
1919

2020
- `test/main/presenter/mcpClient.test.ts`
2121
- 仍然断言旧的 runtime command translation 细节。
22-
- `test/main/presenter/newAgentPresenter/messageManager.test.ts`
22+
- `test/main/presenter/agentSessionPresenter/messageManager.test.ts`
2323
- 仍然调用已不再暴露的方法。
2424
- `test/renderer/composables/useSearchConfig.test.ts`
2525
- 测试存在,但实现文件缺失。

docs/architecture/session-management.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
retirement 之后,会话管理被明确拆成两层:
44

5-
- 活跃聊天层:`newAgentPresenter` + `NewSessionManager`
5+
- 活跃聊天层:`agentSessionPresenter` + `NewSessionManager`
66
- 兼容数据层:`SessionPresenter`
77

88
## 当前职责边界
99

1010
| 组件 | 位置 | 当前职责 |
1111
| --- | --- | --- |
12-
| `NewAgentPresenter` | `src/main/presenter/newAgentPresenter/index.ts` | renderer 唯一 session 入口 |
13-
| `NewSessionManager` | `src/main/presenter/newAgentPresenter/sessionManager.ts` | `new_sessions` 记录、窗口绑定、session CRUD |
14-
| `NewMessageManager` | `src/main/presenter/newAgentPresenter/messageManager.ts` | 新会话消息读取与 agent routing |
15-
| `DeepChatSessionStore` | `src/main/presenter/deepchatAgentPresenter/sessionStore.ts` | 活跃 runtime 状态 |
16-
| `DeepChatMessageStore` | `src/main/presenter/deepchatAgentPresenter/messageStore.ts` | 新消息持久化 |
12+
| `AgentSessionPresenter` | `src/main/presenter/agentSessionPresenter/index.ts` | renderer 唯一 session 入口 |
13+
| `NewSessionManager` | `src/main/presenter/agentSessionPresenter/sessionManager.ts` | `new_sessions` 记录、窗口绑定、session CRUD |
14+
| `NewMessageManager` | `src/main/presenter/agentSessionPresenter/messageManager.ts` | 新会话消息读取与 agent routing |
15+
| `DeepChatSessionStore` | `src/main/presenter/agentRuntimePresenter/sessionStore.ts` | 活跃 runtime 状态 |
16+
| `DeepChatMessageStore` | `src/main/presenter/agentRuntimePresenter/messageStore.ts` | 新消息持久化 |
1717
| `SessionPresenter` | `src/main/presenter/sessionPresenter/index.ts` | legacy conversation/thread/export 兼容层 |
1818
| `sessionPresenter/messageFormatter.ts` | `src/main/presenter/sessionPresenter/messageFormatter.ts` | 用户消息上下文格式化与 exporter 复用 |
1919

@@ -22,9 +22,9 @@ retirement 之后,会话管理被明确拆成两层:
2222
```mermaid
2323
sequenceDiagram
2424
participant R as Renderer
25-
participant N as NewAgentPresenter
25+
participant N as AgentSessionPresenter
2626
participant S as NewSessionManager
27-
participant D as DeepChatAgentPresenter
27+
participant D as AgentRuntimePresenter
2828
2929
R->>N: createSession()
3030
N->>S: create()
@@ -70,4 +70,4 @@ sequenceDiagram
7070
- 维护 exporter 使用的用户消息归一化
7171

7272
如果是当前聊天会话创建、发送消息、取消生成、tool interaction,请直接从
73-
`newAgentPresenter``deepchatAgentPresenter` 开始读。
73+
`agentSessionPresenter``agentRuntimePresenter` 开始读。

docs/architecture/tool-system.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
```mermaid
2222
graph LR
23-
DeepChat["DeepChatAgentPresenter"] --> ToolPresenter["ToolPresenter"]
23+
DeepChat["AgentRuntimePresenter"] --> ToolPresenter["ToolPresenter"]
2424
ToolPresenter --> Mapper["ToolMapper"]
2525
ToolPresenter --> Mcp["McpPresenter"]
2626
ToolPresenter --> AgentTools["AgentToolManager"]
@@ -37,14 +37,14 @@ graph LR
3737
2.`AgentToolManager` 拉取本地 agent tools。
3838
3.`ToolMapper` 记录来源,并在重名时优先保留 MCP tool。
3939

40-
这意味着 `deepchatAgentPresenter` 不需要知道 tool 的真实来源,只需要持有统一的
40+
这意味着 `agentRuntimePresenter` 不需要知道 tool 的真实来源,只需要持有统一的
4141
`MCPToolDefinition[]`
4242

4343
## 调用工具
4444

4545
```mermaid
4646
sequenceDiagram
47-
participant D as DeepChatAgentPresenter
47+
participant D as AgentRuntimePresenter
4848
participant T as ToolPresenter
4949
participant Map as ToolMapper
5050
participant M as MCP tools
@@ -76,7 +76,7 @@ port 负责提供:
7676
- conversation workdir 解析
7777
- 已批准路径查询
7878
- settings approval 消费
79-
- `newAgentPresenter` 会话上下文桥接
79+
- `agentSessionPresenter` 会话上下文桥接
8080

8181
权限能力拆分:
8282

docs/archives/legacy-agentpresenter-architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
本文档从高层视角介绍 DeepChat 的系统架构,帮助开发者快速理解项目结构和组件关系。
44

5-
> **Note (2026-03-09):** 本文档描述的是原始 AgentPresenter 架构。新架构(P0 实现)使用 `newAgentPresenter` + `deepchatAgentPresenter` 作为主要入口,详见 [P0 Implementation Summary](./P0_IMPLEMENTATION_SUMMARY.md)
5+
> **Note (2026-03-09):** 本文档描述的是原始 AgentPresenter 架构。当前主入口是 `agentSessionPresenter` + `agentRuntimePresenter`(formerly `newAgentPresenter` + `deepchatAgentPresenter`,详见 [P0 Implementation Summary](./P0_IMPLEMENTATION_SUMMARY.md)
66
77
## 🏗️ 核心组件关系
88

docs/archives/legacy-agentpresenter-flows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
本文档使用时序图详细描述 DeepChat 的关键业务流程,帮助开发者理解运行时行为。
44

5-
> **Note (2026-03-09):** 本文档描述的是原始 AgentPresenter 流程。新架构流程(newAgentPresenter + deepchatAgentPresenter)已实现,核心流程类似但入口不同。详见 [P0 Implementation Summary](./P0_IMPLEMENTATION_SUMMARY.md)
5+
> **Note (2026-03-09):** 本文档描述的是原始 AgentPresenter 流程。当前主流程入口是 `agentSessionPresenter` + `agentRuntimePresenter`(formerly `newAgentPresenter` + `deepchatAgentPresenter`);核心流程类似但入口不同。详见 [P0 Implementation Summary](./P0_IMPLEMENTATION_SUMMARY.md)
66
77
## 1. 发送消息完整流程
88

0 commit comments

Comments
 (0)