@ai-zen/cli 0.2.3 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +12 -5
  3. package/README.zh.md +12 -5
  4. package/dist/config-wizard.js +4 -4
  5. package/dist/config-wizard.js.map +1 -1
  6. package/dist/config.d.ts +5 -2
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +10 -6
  9. package/dist/config.js.map +1 -1
  10. package/dist/conversation-commands/exit.d.ts.map +1 -1
  11. package/dist/conversation-commands/exit.js +4 -6
  12. package/dist/conversation-commands/exit.js.map +1 -1
  13. package/dist/conversation-commands/new.d.ts.map +1 -1
  14. package/dist/conversation-commands/new.js +5 -7
  15. package/dist/conversation-commands/new.js.map +1 -1
  16. package/dist/conversation-commands/save.d.ts.map +1 -1
  17. package/dist/conversation-commands/save.js +2 -4
  18. package/dist/conversation-commands/save.js.map +1 -1
  19. package/dist/conversation-repository.d.ts +21 -0
  20. package/dist/conversation-repository.d.ts.map +1 -0
  21. package/dist/conversation-repository.js +11 -0
  22. package/dist/conversation-repository.js.map +1 -0
  23. package/dist/conversation-runner.d.ts.map +1 -1
  24. package/dist/conversation-runner.js +24 -9
  25. package/dist/conversation-runner.js.map +1 -1
  26. package/dist/delta-renderer.d.ts.map +1 -1
  27. package/dist/delta-renderer.js +3 -1
  28. package/dist/delta-renderer.js.map +1 -1
  29. package/dist/draft-plugin.d.ts +19 -0
  30. package/dist/draft-plugin.d.ts.map +1 -0
  31. package/dist/draft-plugin.js +30 -0
  32. package/dist/draft-plugin.js.map +1 -0
  33. package/dist/draft-repository.d.ts +34 -0
  34. package/dist/draft-repository.d.ts.map +1 -0
  35. package/dist/draft-repository.js +64 -0
  36. package/dist/draft-repository.js.map +1 -0
  37. package/dist/menus/agents.js +9 -9
  38. package/dist/menus/agents.js.map +1 -1
  39. package/dist/menus/config-display.js +4 -4
  40. package/dist/menus/config-display.js.map +1 -1
  41. package/dist/menus/config.js +13 -13
  42. package/dist/menus/config.js.map +1 -1
  43. package/dist/menus/index.d.ts.map +1 -1
  44. package/dist/menus/index.js +2 -4
  45. package/dist/menus/index.js.map +1 -1
  46. package/dist/menus/start-conversation.d.ts.map +1 -1
  47. package/dist/menus/start-conversation.js +13 -13
  48. package/dist/menus/start-conversation.js.map +1 -1
  49. package/dist/types.d.ts +5 -3
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/types.js +2 -2
  52. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.1] - 2026-08-05
4
+
5
+ ### 🚀 新功能
6
+
7
+ - **升级 `@ai-zen/agents-sdk` 到 0.5.3** — 随 SDK 新能力开箱即用:
8
+ - **初始化默认释放 socket-pty MCP 配置** — SDK `bootstrap()` 新增 `ensureDefaultMcpConfig()`,CLI 首启在 `~/.ai-zen/mcp.json` 自动写入含 `socket-pty` 终端的默认 MCP 配置(`npx -y @ai-zen/socket-pty mcp`),文件已存在则幂等不覆盖
9
+ - **`load_mcp` 透传 server description** — 枚举各 MCP 服务器描述供 LLM 参考(对齐 `load_skill`)
10
+ - **新增 `ContextGuardPlugin` 上下文安全护栏** — 在发请求前检测用量,超过 `maxTokens×1.2`(超阈 20%)时抛出 `ContextOverflowError` 中断对话,防止读入超大文件导致上下文失控;与 `AutoMigratePlugin` 职责分离、区间互补
11
+
12
+ ### 🔧 修复
13
+
14
+ - **自动迁移后未立即保存新对话为草稿** — `AutoMigratePlugin` 的迁移发生在 `onAfterSend`(所有内循环已结束、`DraftPlugin` 的 `onInnerLoopEnd` 不再触发),迁移替换 `agent.messages` 后的新开场白未被及时落盘,用户在中途退出会丢失迁移后的开场白。现于 `onMigrated` 回调中迁移完成后立即将新消息写入草稿(`_current.json`),与「原对话先保存为 `conversations/`」形成完整闭环
15
+
16
+ ### 🎯 优化
17
+
18
+ - **MCP 配置结构统一为业界标准 `mcpServers`** — 以 SDK(`discoverMcpServers`)为准,CLI 的 `McpConfig` 顶层字段由 `servers` 改为 `mcpServers`、server 传输字段由 `transport` 改为 `type`。消除格式漂移,CLI 管理界面(`zen config`)与 SDK 默认释放的 mcp.json 完全对齐,socket-pty 默认配置可被正确显示与管理
19
+
20
+ ### ✅ 测试
21
+
22
+ - 更新 `config.test.ts` 中 MCP 读写相关断言以匹配新的 `mcpServers` 结构与 `type` 字段
23
+
24
+ ## [0.3.0] - 2026-08-01
25
+
26
+ ### 💥 破坏性变更
27
+
28
+ - **会话/草稿持久化下放 CLI** — SDK 0.5.0 移除了会话/草稿产品层(`ConversationRepository` / `DraftRepository` / `AutoDraftPlugin`)。CLI 自建本地存储:
29
+ - 新增 `src/conversation-repository.ts` — `conversationRepository`(复用 SDK `EntityRepository`)
30
+ - 新增 `src/draft-repository.ts` — `DraftRepository` + `draftRepository` 单例(草稿无 id 字段,单独实现)
31
+ - 新增 `src/draft-plugin.ts` — CLI 草稿插件 `DraftPlugin`(替代被移除的 `AutoDraftPlugin`,`onInnerLoopEnd` 自动保存)
32
+ - **更新 `@ai-zen/agents-sdk` 到 0.5.0** — 内置工具类化(`SdkCallbackTool` + `ToolEnv` 注入)、`Provider` 支持 `cwd`/`env`、`generateImage` 类化为 `GenerateImageTool`
33
+
34
+ ### 🎯 优化
35
+
36
+ - **依赖同步线上版本** — `@ai-zen/agents-core` `3.0.1`、`@ai-zen/agents-sdk` `0.5.0`(开发期曾使用本地 `link:` 调试,已还原为 npm 版本号)
37
+
3
38
  ## [0.2.3] - 2026-07-29
4
39
 
5
40
  ### 🎯 优化
package/README.md CHANGED
@@ -190,7 +190,7 @@ Same-named servers in higher priority override lower ones.
190
190
 
191
191
  ## Built-in Tools
192
192
 
193
- The CLI provides 16 built-in file system tools, implemented by `@ai-zen/agents-sdk`:
193
+ The CLI provides 17 built-in file system tools, implemented by `@ai-zen/agents-sdk`:
194
194
 
195
195
  | Tool | Description |
196
196
  |------|-------------|
@@ -199,17 +199,24 @@ The CLI provides 16 built-in file system tools, implemented by `@ai-zen/agents-s
199
199
  | `writeFile` | Write content to file |
200
200
  | `edit` | Replace text in files (single replacement) |
201
201
  | `batchEdit` | Batch replace text in files |
202
+ | `exec` | Execute shell commands |
203
+ | `exec_async` | Execute a shell command asynchronously (returns immediately) |
202
204
  | `mkdir` | Create directories |
203
205
  | `rm` | Delete files or directories |
204
206
  | `glob` | Scan files with glob patterns |
205
207
  | `ls` | List directory contents |
206
208
  | `exist` | Check if path exists |
207
- | `exec` | Execute shell commands |
208
209
  | `findText` | Search text in files |
209
210
  | `downloadFile` | Download file from URL |
210
- | `generateImage` | Generate images from text |
211
211
  | `rename` | Rename or move files |
212
212
  | `copy` | Copy files or directories |
213
+ | `sleep` | Wait for a specified number of milliseconds |
214
+
215
+ Conditionally injected (requires `defaultImageModel` in config):
216
+
217
+ | Tool | Description |
218
+ |------|-------------|
219
+ | `generateImage` | Generate images from text |
213
220
 
214
221
  ### Dynamic Tools
215
222
 
@@ -225,7 +232,7 @@ In addition to built-in tools, the SDK provides 5 dynamic loading tools that are
225
232
 
226
233
  ## Tool Assembly Pipeline
227
234
 
228
- Tools are assembled in three phases by the SDK's `Capabilities` class:
235
+ Tools are assembled in three phases by the SDK's `Provider` capability pipeline:
229
236
 
230
237
  1. **Discovery** — Scan filesystem for built-in tools, user tools, SubAgents, Skills, and MCP servers
231
238
  2. **Filtering** — Apply permissions (`allow`/`deny`) and security exclusions (recursion protection)
@@ -255,7 +262,7 @@ MCP servers are configured in `mcp.json` files:
255
262
 
256
263
  ```json
257
264
  {
258
- "servers": {
265
+ "mcpServers": {
259
266
  "my-server": {
260
267
  "transport": "stdio",
261
268
  "command": "node",
package/README.zh.md CHANGED
@@ -190,7 +190,7 @@ MCP 服务器配置从多个来源合并(优先级从高到低):
190
190
 
191
191
  ## 内置工具
192
192
 
193
- CLI 提供 16 个内置文件系统工具,由 `@ai-zen/agents-sdk` 实现:
193
+ CLI 提供 17 个内置文件系统工具,由 `@ai-zen/agents-sdk` 实现:
194
194
 
195
195
  | 工具 | 说明 |
196
196
  |------|------|
@@ -199,17 +199,24 @@ CLI 提供 16 个内置文件系统工具,由 `@ai-zen/agents-sdk` 实现:
199
199
  | `writeFile` | 写入文件 |
200
200
  | `edit` | 替换文件中的文本(单次替换) |
201
201
  | `batchEdit` | 批量编辑文本 |
202
+ | `exec` | 执行 shell 命令 |
203
+ | `exec_async` | 异步执行 shell 命令(立即返回,不等待结果) |
202
204
  | `mkdir` | 创建目录 |
203
205
  | `rm` | 删除文件或目录 |
204
206
  | `glob` | 通配符扫描文件 |
205
207
  | `ls` | 列出目录 |
206
208
  | `exist` | 检查路径是否存在 |
207
- | `exec` | 执行 shell 命令 |
208
209
  | `findText` | 在文件中查找文本 |
209
210
  | `downloadFile` | 从 URL 下载文件 |
210
- | `generateImage` | 根据描述生成图片 |
211
211
  | `rename` | 重命名或移动文件 |
212
212
  | `copy` | 复制文件或目录 |
213
+ | `sleep` | 等待指定毫秒数 |
214
+
215
+ 条件注入(需配置 `defaultImageModel`):
216
+
217
+ | 工具 | 说明 |
218
+ |------|------|
219
+ | `generateImage` | 根据描述生成图片 |
213
220
 
214
221
  ### 动态工具
215
222
 
@@ -225,7 +232,7 @@ CLI 提供 16 个内置文件系统工具,由 `@ai-zen/agents-sdk` 实现:
225
232
 
226
233
  ## 工具装配流程
227
234
 
228
- 工具装配由 SDK 的 `Capabilities` 类管理,分为三个阶段:
235
+ 工具装配由 SDK 的 `Provider` 能力管线管理,分为三个阶段:
229
236
 
230
237
  1. **发现** — 扫描文件系统获取内置工具、用户工具、SubAgent、Skill 和 MCP 服务器
231
238
  2. **过滤** — 应用权限(`allow`/`deny`)和安全排除(递归保护)
@@ -255,7 +262,7 @@ MCP 服务器配置在 `mcp.json` 文件中:
255
262
 
256
263
  ```json
257
264
  {
258
- "servers": {
265
+ "mcpServers": {
259
266
  "my-server": {
260
267
  "transport": "stdio",
261
268
  "command": "node",
@@ -24,10 +24,10 @@ export async function ensureEndpointConfig(modelId) {
24
24
  throw new Error(`端点 ${model.endpointId} 不存在`);
25
25
  if (!endpoint.apiKey) {
26
26
  console.log(chalk.yellow.bold(`\n⚠️ 端点 "${endpoint.name}" 的 API Key 未设置\n`));
27
- console.log(chalk.white(`💡 请前往对应平台获取 API Key:`));
28
- console.log(chalk.white(` - OpenAI: https://platform.openai.com/api-keys`));
29
- console.log(chalk.white(` - BigModelCN (智谱AI): https://open.bigmodel.cn/usercenter/apikeys`));
30
- console.log(chalk.white(` - DeepSeek: https://platform.deepseek.com/api_keys\n`));
27
+ console.log(`💡 请前往对应平台获取 API Key:`);
28
+ console.log(` - OpenAI: https://platform.openai.com/api-keys`);
29
+ console.log(` - BigModelCN (智谱AI): https://open.bigmodel.cn/usercenter/apikeys`);
30
+ console.log(` - DeepSeek: https://platform.deepseek.com/api_keys\n`);
31
31
  const { apiKey } = await inquirer.prompt([
32
32
  {
33
33
  type: "password",
@@ -1 +1 @@
1
- {"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../src/config-wizard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAgB;IACzD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,IAAI,KAAwB,CAAC;IAE7B,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC,YAAY;YACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;IACzE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,CAAC;IAE7D,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC;QAEpF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACvC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO,QAAQ,CAAC,IAAI,aAAa;gBAC1C,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,cAAc;aACnE;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../src/config-wizard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAgB;IACzD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,IAAI,KAAwB,CAAC;IAE7B,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC,YAAY;YACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;IACzE,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,CAAC;IAE7D,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QAEvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACvC;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO,QAAQ,CAAC,IAAI,aAAa;gBAC1C,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,cAAc;aACnE;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/config.d.ts CHANGED
@@ -71,7 +71,8 @@ export declare function readConfig(): Promise<AppConfig>;
71
71
  export declare function saveConfig(config: AppConfig): Promise<void>;
72
72
  export interface McpServersMap {
73
73
  [name: string]: {
74
- transport: "stdio" | "http" | "sse";
74
+ /** 传输方式,业界标准字段名 `type`(与 SDK normalizeConfig 一致) */
75
+ type?: "stdio" | "http" | "sse";
75
76
  command?: string;
76
77
  args?: string[];
77
78
  env?: Record<string, string>;
@@ -80,10 +81,12 @@ export interface McpServersMap {
80
81
  };
81
82
  }
82
83
  export interface McpConfig {
83
- servers: McpServersMap;
84
+ /** 业界标准 mcpServers 顶层字段(与 SDK @ai-zen/agents-sdk 保持一致) */
85
+ mcpServers: McpServersMap;
84
86
  }
85
87
  /**
86
88
  * 读取全局 ~/.ai-zen/mcp.json,不存在时返回空结构。
89
+ * 采用业界标准 `mcpServers` 顶层字段(与 SDK discoverMcpServers 一致)。
87
90
  */
88
91
  export declare function readMcpConfig(): Promise<McpConfig>;
89
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,eAAO,MAAM,UAAU,QAGtB,CAAC;AAIF,eAAO,MAAM,OAAO,QAA0B,CAAC;AAC/C,eAAO,MAAM,WAAW,QAAkC,CAAC;AAC3D,eAAO,MAAM,iBAAiB,QAAiC,CAAC;AAChE,eAAO,MAAM,UAAU,QAA0B,CAAC;AAIlD,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,cAAc,QAAiC,CAAC;AAC7D,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,SAAS,QAA4B,CAAC;AAInD,eAAO,MAAM,sBAAsB,QAA+C,CAAC;AACnF,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,iBAAiB,QAA0C,CAAC;AASzE,eAAO,MAAM,sBAAsB,QAAkC,CAAC;AACtE,eAAO,MAAM,2BAA2B,QAAoC,CAAC;AAI7E,eAAO,MAAM,kBAAkB,QAAiC,CAAC;AACjE,eAAO,MAAM,yBAAyB,QAAqC,CAAC;AAC5E,eAAO,MAAM,8BAA8B,QAAuC,CAAC;AAInF,eAAO,MAAM,eAAe,QAA+B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,QAA6C,CAAC;AAClF,eAAO,MAAM,sBAAsB,QAAmC,CAAC;AAQvE;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAcrD;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAGrD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAID,MAAM,WAAW,aAAa;IAC5B,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAWxD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxE;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAY/D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,eAAO,MAAM,UAAU,QAGtB,CAAC;AAIF,eAAO,MAAM,OAAO,QAA0B,CAAC;AAC/C,eAAO,MAAM,WAAW,QAAkC,CAAC;AAC3D,eAAO,MAAM,iBAAiB,QAAiC,CAAC;AAChE,eAAO,MAAM,UAAU,QAA0B,CAAC;AAIlD,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,cAAc,QAAiC,CAAC;AAC7D,eAAO,MAAM,UAAU,QAA6B,CAAC;AACrD,eAAO,MAAM,SAAS,QAA4B,CAAC;AAInD,eAAO,MAAM,sBAAsB,QAA+C,CAAC;AACnF,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,iBAAiB,QAA0C,CAAC;AASzE,eAAO,MAAM,sBAAsB,QAAkC,CAAC;AACtE,eAAO,MAAM,2BAA2B,QAAoC,CAAC;AAI7E,eAAO,MAAM,kBAAkB,QAAiC,CAAC;AACjE,eAAO,MAAM,yBAAyB,QAAqC,CAAC;AAC5E,eAAO,MAAM,8BAA8B,QAAuC,CAAC;AAInF,eAAO,MAAM,eAAe,QAA+B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,QAA6C,CAAC;AAClF,eAAO,MAAM,sBAAsB,QAAmC,CAAC;AAQvE;;;;;;GAMG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAcrD;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAGrD;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAID,MAAM,WAAW,aAAa;IAC5B,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,oDAAoD;QACpD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAaxD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxE;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAa/D"}
package/dist/config.js CHANGED
@@ -110,19 +110,22 @@ export async function saveConfig(config) {
110
110
  }
111
111
  /**
112
112
  * 读取全局 ~/.ai-zen/mcp.json,不存在时返回空结构。
113
+ * 采用业界标准 `mcpServers` 顶层字段(与 SDK discoverMcpServers 一致)。
113
114
  */
114
115
  export async function readMcpConfig() {
115
116
  try {
116
117
  await fs.access(MCP_CONFIG_FILE);
117
118
  }
118
119
  catch {
119
- return { servers: {} };
120
+ return { mcpServers: {} };
120
121
  }
121
122
  try {
122
- return JSON.parse(await fs.readFile(MCP_CONFIG_FILE, "utf-8"));
123
+ const raw = JSON.parse(await fs.readFile(MCP_CONFIG_FILE, "utf-8"));
124
+ // 兼容并归一:以 mcpServers 为准,缺失时回退到空的 mcpServers
125
+ return { mcpServers: raw.mcpServers ?? {} };
123
126
  }
124
127
  catch {
125
- return { servers: {} };
128
+ return { mcpServers: {} };
126
129
  }
127
130
  }
128
131
  /**
@@ -139,13 +142,14 @@ export async function readProjectMcpConfig() {
139
142
  await fs.access(path);
140
143
  }
141
144
  catch {
142
- return { servers: {} };
145
+ return { mcpServers: {} };
143
146
  }
144
147
  try {
145
- return JSON.parse(await fs.readFile(path, "utf-8"));
148
+ const raw = JSON.parse(await fs.readFile(path, "utf-8"));
149
+ return { mcpServers: raw.mcpServers ?? {} };
146
150
  }
147
151
  catch {
148
- return { servers: {} };
152
+ return { mcpServers: {} };
149
153
  }
150
154
  }
151
155
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../src/conversation-commands/exit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKvD,wBAAsB,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BxE"}
1
+ {"version":3,"file":"exit.d.ts","sourceRoot":"","sources":["../../src/conversation-commands/exit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAsB,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BxE"}
@@ -1,9 +1,7 @@
1
1
  import chalk from "chalk";
2
2
  import inquirer from "inquirer";
3
- import { ConversationRepository, DraftRepository } from "@ai-zen/agents-sdk";
4
- import { CONVERSATIONS_DIR, DRAFTS_DIR } from "../config.js";
5
- const conversationRepo = new ConversationRepository(CONVERSATIONS_DIR);
6
- const draftRepo = new DraftRepository(DRAFTS_DIR);
3
+ import { conversationRepository } from "../conversation-repository.js";
4
+ import { draftRepository } from "../draft-repository.js";
7
5
  export async function handleExit(ctx) {
8
6
  const agent = ctx.agent;
9
7
  if (agent.messages.length > 1) {
@@ -18,7 +16,7 @@ export async function handleExit(ctx) {
18
16
  if (saveBeforeExit) {
19
17
  try {
20
18
  const id = ctx.currentId || ctx.currentName.replace(/[\\/:*?"<>|]/g, "_");
21
- conversationRepo.write({
19
+ await conversationRepository.write({
22
20
  id,
23
21
  agentId: ctx.agentId || "default",
24
22
  modelId: ctx.modelId,
@@ -27,7 +25,7 @@ export async function handleExit(ctx) {
27
25
  updatedAt: new Date().toISOString(),
28
26
  });
29
27
  console.log(chalk.green(`\n✅ 对话已保存: ${ctx.currentName} (ID: ${id})\n`));
30
- draftRepo.delete();
28
+ await draftRepository.delete();
31
29
  }
32
30
  catch (error) {
33
31
  console.error(chalk.red(`\n❌ 保存失败: ${error}\n`));
@@ -1 +1 @@
1
- {"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/conversation-commands/exit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;AACvE,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAwB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC/C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAC1E,gBAAgB,CAAC,KAAK,CAAC;oBACrB,EAAE;oBACF,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;oBACjC,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,WAAW,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxE,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"exit.js","sourceRoot":"","sources":["../../src/conversation-commands/exit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAwB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC/C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAC1E,MAAM,sBAAsB,CAAC,KAAK,CAAC;oBACjC,EAAE;oBACF,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;oBACjC,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,WAAW,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACxE,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/conversation-commands/new.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKlD,wBAAsB,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CvE"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../src/conversation-commands/new.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAsB,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CvE"}
@@ -1,11 +1,9 @@
1
1
  import chalk from "chalk";
2
2
  import inquirer from "inquirer";
3
3
  import { Message } from "@ai-zen/agents-core";
4
- import { ConversationRepository, DraftRepository } from "@ai-zen/agents-sdk";
5
4
  import { formatShortTime } from "../format-time.js";
6
- import { CONVERSATIONS_DIR, DRAFTS_DIR } from "../config.js";
7
- const conversationRepo = new ConversationRepository(CONVERSATIONS_DIR);
8
- const draftRepo = new DraftRepository(DRAFTS_DIR);
5
+ import { conversationRepository } from "../conversation-repository.js";
6
+ import { draftRepository } from "../draft-repository.js";
9
7
  export async function handleNew(ctx) {
10
8
  const agent = ctx.agent;
11
9
  const { confirmNew } = await inquirer.prompt([
@@ -21,11 +19,11 @@ export async function handleNew(ctx) {
21
19
  return;
22
20
  }
23
21
  // 将当前草稿存档(如果有),避免丢失
24
- const draft = await draftRepo.read();
22
+ const draft = await draftRepository.read();
25
23
  if (draft && draft.messages.length > 1) {
26
24
  const name = `草稿-${formatShortTime(draft.updatedAt)}`;
27
25
  const id = name.replace(/[\\/:*?"<>|]/g, "_");
28
- await conversationRepo.write({
26
+ await conversationRepository.write({
29
27
  id,
30
28
  agentId: draft.agentId || "default",
31
29
  modelId: draft.modelId,
@@ -34,7 +32,7 @@ export async function handleNew(ctx) {
34
32
  updatedAt: new Date().toISOString(),
35
33
  });
36
34
  console.log(chalk.gray(`📦 当前对话已存档: ${name}\n`));
37
- await draftRepo.delete();
35
+ await draftRepository.delete();
38
36
  }
39
37
  // 重置为 Agent 定义的初始消息(system prompt + few-shot 示例等)
40
38
  agent.messages = agent.definition.messages.map((m) => new Message(m));
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/conversation-commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAW,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;AACvE,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAwB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC3C;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,gBAAgB,CAAC,KAAK,CAAC;YAC3B,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS;YACnC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,QAAQ,GAAI,KAAK,CAAC,UAAU,CAAC,QAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,UAAU;IACV,GAAG,CAAC,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;IACpE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;IAEf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/conversation-commands/new.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAW,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAwB;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC3C;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,oBAAoB;YAC7B,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,sBAAsB,CAAC,KAAK,CAAC;YACjC,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS;YACnC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC;QACjD,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,QAAQ,GAAI,KAAK,CAAC,UAAU,CAAC,QAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,UAAU;IACV,GAAG,CAAC,WAAW,GAAG,MAAM,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;IACpE,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;IAEf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/conversation-commands/save.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIvD,wBAAsB,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BxE"}
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/conversation-commands/save.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAsB,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BxE"}
@@ -1,8 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import inquirer from "inquirer";
3
- import { ConversationRepository } from "@ai-zen/agents-sdk";
4
- import { CONVERSATIONS_DIR } from "../config.js";
5
- const conversationRepo = new ConversationRepository(CONVERSATIONS_DIR);
3
+ import { conversationRepository } from "../conversation-repository.js";
6
4
  export async function handleSave(ctx) {
7
5
  const agent = ctx.agent;
8
6
  const { name } = await inquirer.prompt([
@@ -15,7 +13,7 @@ export async function handleSave(ctx) {
15
13
  ]);
16
14
  try {
17
15
  const id = ctx.currentId || name.replace(/[\\/:*?"<>|]/g, "_");
18
- conversationRepo.write({
16
+ await conversationRepository.write({
19
17
  id,
20
18
  agentId: ctx.agentId || "default",
21
19
  modelId: ctx.modelId,
@@ -1 +1 @@
1
- {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/conversation-commands/save.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAwB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACrC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,GAAG,CAAC,WAAW;SACzB;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC/D,gBAAgB,CAAC,KAAK,CAAC;YACrB,EAAE;YACF,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACvB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/conversation-commands/save.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAwB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACrC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,GAAG,CAAC,WAAW;SACzB;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,sBAAsB,CAAC,KAAK,CAAC;YACjC,EAAE;YACF,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,SAAS;YACjC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACvB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CLI 会话存储 — Conversation 类型与会话仓储。
3
+ *
4
+ * 会话是 CLI 的产品数据,由 CLI 自己维护(SDK 只负责驱动与能力)。
5
+ * 复用 SDK 的 EntityRepository,按 id 一个 JSON 文件(${conversationsDir}/${id}.json)。
6
+ */
7
+ import { EntityRepository } from "@ai-zen/agents-sdk";
8
+ import type { AgentNS } from "@ai-zen/agents-core";
9
+ export interface Conversation {
10
+ id: string;
11
+ agentId: string;
12
+ modelId: string;
13
+ messages: AgentNS.Message[];
14
+ lastPromptTokens?: number;
15
+ cwd?: string;
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ }
19
+ /** 会话仓储:每个会话一个 JSON 文件(${conversationsDir}/${id}.json) */
20
+ export declare const conversationRepository: EntityRepository<Conversation>;
21
+ //# sourceMappingURL=conversation-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-repository.d.ts","sourceRoot":"","sources":["../src/conversation-repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,gCAAwD,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CLI 会话存储 — Conversation 类型与会话仓储。
3
+ *
4
+ * 会话是 CLI 的产品数据,由 CLI 自己维护(SDK 只负责驱动与能力)。
5
+ * 复用 SDK 的 EntityRepository,按 id 一个 JSON 文件(${conversationsDir}/${id}.json)。
6
+ */
7
+ import { EntityRepository } from "@ai-zen/agents-sdk";
8
+ import { CONVERSATIONS_DIR } from "./config.js";
9
+ /** 会话仓储:每个会话一个 JSON 文件(${conversationsDir}/${id}.json) */
10
+ export const conversationRepository = new EntityRepository(CONVERSATIONS_DIR);
11
+ //# sourceMappingURL=conversation-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-repository.js","sourceRoot":"","sources":["../src/conversation-repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAahD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,gBAAgB,CAAe,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-runner.d.ts","sourceRoot":"","sources":["../src/conversation-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA+E9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+JpF"}
1
+ {"version":3,"file":"conversation-runner.d.ts","sourceRoot":"","sources":["../src/conversation-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA8E9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4KpF"}
@@ -7,19 +7,21 @@
7
7
  import chalk from "chalk";
8
8
  import inquirer from "inquirer";
9
9
  import { AgentNS } from "@ai-zen/agents-core";
10
- import { AutoMigratePlugin, AutoDraftPlugin, AutoRefreshToolsPlugin, ConversationRepository, } from "@ai-zen/agents-sdk";
10
+ import { AutoMigratePlugin, AutoRefreshToolsPlugin, } from "@ai-zen/agents-sdk";
11
11
  import { DeltaRenderer } from "./delta-renderer.js";
12
12
  import { createAgent, createMigrationAgent } from "./agent-creator.js";
13
- import { readConfig, CONVERSATIONS_DIR, DRAFTS_DIR } from "./config.js";
13
+ import { readConfig } from "./config.js";
14
14
  import { CwdTrackerPlugin } from "./cwd-tracker-plugin.js";
15
+ import { DraftPlugin } from "./draft-plugin.js";
16
+ import { draftRepository } from "./draft-repository.js";
17
+ import { conversationRepository } from "./conversation-repository.js";
15
18
  import { ensureEndpointConfig } from "./config-wizard.js";
16
19
  import { formatShortTime } from "./format-time.js";
17
20
  import { dispatchCommand, getCommandNames } from "./conversation-commands/index.js";
18
- const conversationRepo = new ConversationRepository(CONVERSATIONS_DIR);
19
21
  /** 保存当前对话到 conversations 目录 */
20
22
  async function saveCurrentConversation(name, messages, modelId, existingId, agentId) {
21
23
  const id = existingId || name.replace(/[\\/:*?"<>|]/g, "_");
22
- await conversationRepo.write({
24
+ await conversationRepository.write({
23
25
  id,
24
26
  agentId: agentId || "default",
25
27
  modelId,
@@ -73,12 +75,10 @@ export async function runConversation(options) {
73
75
  agent.use(new CwdTrackerPlugin());
74
76
  // 2. autoRefreshTools — 每次 send 前刷新文件系统工具
75
77
  agent.use(new AutoRefreshToolsPlugin());
76
- // 2. autoDraft — 每次 send 后自动保存草稿
77
- agent.use(new AutoDraftPlugin({
78
- draftsDir: DRAFTS_DIR,
78
+ // 2. draftPlugin — 每次 send 后自动保存草稿(CLI 产品特性,不依赖 SDK;始终写入 _current.json,统一草稿检测入口)
79
+ agent.use(new DraftPlugin({
79
80
  agentId: agentId || "default",
80
81
  modelId,
81
- conversationId,
82
82
  cwd: process.cwd(),
83
83
  }));
84
84
  // 3. autoMigrate — 检测 token 超限时自动迁移
@@ -101,6 +101,22 @@ export async function runConversation(options) {
101
101
  ctx.currentId = undefined;
102
102
  console.log(chalk.green.bold(`\n🚀 任务迁移完成!已开启新会话,共 ${agent.messages.length} 条消息。\n`));
103
103
  console.log(chalk.gray("💡 你可以继续提问,新助手已通过交接文档了解之前的全部工作。\n"));
104
+ // 迁移后立即把新开场白保存为草稿(_current.json),
105
+ // 避免迁移发生在 onAfterSend(DraftPlugin 的 onInnerLoopEnd 已不再触发)
106
+ // 导致迁移后的新对话未被及时落盘,用户中途退出时丢失迁移后的开场白。
107
+ try {
108
+ await draftRepository.write({
109
+ conversationId: ctx.currentId, // undefined → 写入 _current.json
110
+ agentId: ctx.agentId || "default",
111
+ modelId: ctx.modelId,
112
+ messages: agent.messages,
113
+ cwd: process.cwd(),
114
+ updatedAt: new Date().toISOString(),
115
+ });
116
+ }
117
+ catch (err) {
118
+ console.warn(`[draft] 迁移后保存草稿失败: ${err?.message ?? err}`);
119
+ }
104
120
  },
105
121
  }));
106
122
  }
@@ -122,7 +138,6 @@ export async function runConversation(options) {
122
138
  reasoningHeader: "\n\n💭 思考中...\n",
123
139
  contentHeader: "\n\n💭 回答中...\n",
124
140
  reasoningStyle: chalk.blue,
125
- contentStyle: chalk.white,
126
141
  });
127
142
  const onRun = () => { renderer.reset(); };
128
143
  const onChunk = (chunk) => {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-runner.js","sourceRoot":"","sources":["../src/conversation-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-runner.js","sourceRoot":"","sources":["../src/conversation-runner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delta-renderer.d.ts","sourceRoot":"","sources":["../src/delta-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAc9C,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,IAAI,CAAiC;gBAEjC,IAAI,GAAE,oBAAyB;IAU3C;;;;OAIG;IACH,MAAM,CACJ,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,YAAY,GAAE,OAAO,CAAC,YAAY,GAAG,IAAW,GAC/C,IAAI;IAiCP,qBAAqB;IACrB,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,eAAe;CAgExB"}
1
+ {"version":3,"file":"delta-renderer.d.ts","sourceRoot":"","sources":["../src/delta-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAiB9C,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB;IACtB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,IAAI,CAAiC;gBAEjC,IAAI,GAAE,oBAAyB;IAU3C;;;;OAIG;IACH,MAAM,CACJ,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,YAAY,GAAE,OAAO,CAAC,YAAY,GAAG,IAAW,GAC/C,IAAI;IAiCP,qBAAqB;IACrB,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,eAAe;CAgExB"}
@@ -1,5 +1,7 @@
1
1
  import chalk from "chalk";
2
2
  import { AgentNS } from "@ai-zen/agents-core";
3
+ /** 无颜色样式:普通文本保持终端默认前景色,避免在浅色背景下看不清 */
4
+ const noStyle = (s) => s;
3
5
  // ==================== 流式渲染器 ====================
4
6
  /**
5
7
  * 流式 Delta 渲染器,管理 reasoning/content/tool_calls 的状态和输出
@@ -14,7 +16,7 @@ export class DeltaRenderer {
14
16
  reasoningHeader: opts.reasoningHeader ?? "",
15
17
  contentHeader: opts.contentHeader ?? "",
16
18
  reasoningStyle: opts.reasoningStyle ?? chalk.blue,
17
- contentStyle: opts.contentStyle ?? chalk.white,
19
+ contentStyle: opts.contentStyle ?? noStyle,
18
20
  indent: opts.indent ?? "",
19
21
  };
20
22
  }