@ai-zen/cli 0.2.2 → 0.3.0
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.
- package/CHANGELOG.md +20 -0
- package/README.md +12 -5
- package/README.zh.md +12 -5
- package/dist/conversation-commands/exit.d.ts.map +1 -1
- package/dist/conversation-commands/exit.js +4 -6
- package/dist/conversation-commands/exit.js.map +1 -1
- package/dist/conversation-commands/new.d.ts.map +1 -1
- package/dist/conversation-commands/new.js +5 -7
- package/dist/conversation-commands/new.js.map +1 -1
- package/dist/conversation-commands/save.d.ts.map +1 -1
- package/dist/conversation-commands/save.js +2 -4
- package/dist/conversation-commands/save.js.map +1 -1
- package/dist/conversation-repository.d.ts +21 -0
- package/dist/conversation-repository.d.ts.map +1 -0
- package/dist/conversation-repository.js +11 -0
- package/dist/conversation-repository.js.map +1 -0
- package/dist/conversation-runner.d.ts.map +1 -1
- package/dist/conversation-runner.js +7 -8
- package/dist/conversation-runner.js.map +1 -1
- package/dist/draft-plugin.d.ts +19 -0
- package/dist/draft-plugin.d.ts.map +1 -0
- package/dist/draft-plugin.js +30 -0
- package/dist/draft-plugin.js.map +1 -0
- package/dist/draft-repository.d.ts +34 -0
- package/dist/draft-repository.d.ts.map +1 -0
- package/dist/draft-repository.js +64 -0
- package/dist/draft-repository.js.map +1 -0
- package/dist/menus/agents.js +9 -9
- package/dist/menus/agents.js.map +1 -1
- package/dist/menus/index.d.ts.map +1 -1
- package/dist/menus/index.js +2 -4
- package/dist/menus/index.js.map +1 -1
- package/dist/menus/start-conversation.d.ts.map +1 -1
- package/dist/menus/start-conversation.js +13 -13
- package/dist/menus/start-conversation.js.map +1 -1
- package/dist/types.d.ts +5 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.0] - 2026-08-01
|
|
4
|
+
|
|
5
|
+
### 💥 破坏性变更
|
|
6
|
+
|
|
7
|
+
- **会话/草稿持久化下放 CLI** — SDK 0.5.0 移除了会话/草稿产品层(`ConversationRepository` / `DraftRepository` / `AutoDraftPlugin`)。CLI 自建本地存储:
|
|
8
|
+
- 新增 `src/conversation-repository.ts` — `conversationRepository`(复用 SDK `EntityRepository`)
|
|
9
|
+
- 新增 `src/draft-repository.ts` — `DraftRepository` + `draftRepository` 单例(草稿无 id 字段,单独实现)
|
|
10
|
+
- 新增 `src/draft-plugin.ts` — CLI 草稿插件 `DraftPlugin`(替代被移除的 `AutoDraftPlugin`,`onInnerLoopEnd` 自动保存)
|
|
11
|
+
- **更新 `@ai-zen/agents-sdk` 到 0.5.0** — 内置工具类化(`SdkCallbackTool` + `ToolEnv` 注入)、`Provider` 支持 `cwd`/`env`、`generateImage` 类化为 `GenerateImageTool`
|
|
12
|
+
|
|
13
|
+
### 🎯 优化
|
|
14
|
+
|
|
15
|
+
- **依赖同步线上版本** — `@ai-zen/agents-core` `3.0.1`、`@ai-zen/agents-sdk` `0.5.0`(开发期曾使用本地 `link:` 调试,已还原为 npm 版本号)
|
|
16
|
+
|
|
17
|
+
## [0.2.3] - 2026-07-29
|
|
18
|
+
|
|
19
|
+
### 🎯 优化
|
|
20
|
+
|
|
21
|
+
- **更新 `@ai-zen/agents-sdk` 到 0.4.0** — load_mcp 返回值改为结构化 JSON(含完整 inputSchema),日志 API 改为全局单例 `getLogger()`/`setLogger()`
|
|
22
|
+
|
|
3
23
|
## [0.2.2] - 2026-07-27
|
|
4
24
|
|
|
5
25
|
### 🎯 优化
|
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
|
|
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 `
|
|
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
|
-
"
|
|
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 提供
|
|
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 的 `
|
|
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
|
-
"
|
|
265
|
+
"mcpServers": {
|
|
259
266
|
"my-server": {
|
|
260
267
|
"transport": "stdio",
|
|
261
268
|
"command": "node",
|
|
@@ -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;
|
|
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 {
|
|
4
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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 {
|
|
7
|
-
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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":"
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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;AA6E9C,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,CA6JpF"}
|
|
@@ -7,19 +7,20 @@
|
|
|
7
7
|
import chalk from "chalk";
|
|
8
8
|
import inquirer from "inquirer";
|
|
9
9
|
import { AgentNS } from "@ai-zen/agents-core";
|
|
10
|
-
import { AutoMigratePlugin,
|
|
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
|
|
13
|
+
import { readConfig } from "./config.js";
|
|
14
14
|
import { CwdTrackerPlugin } from "./cwd-tracker-plugin.js";
|
|
15
|
+
import { DraftPlugin } from "./draft-plugin.js";
|
|
16
|
+
import { conversationRepository } from "./conversation-repository.js";
|
|
15
17
|
import { ensureEndpointConfig } from "./config-wizard.js";
|
|
16
18
|
import { formatShortTime } from "./format-time.js";
|
|
17
19
|
import { dispatchCommand, getCommandNames } from "./conversation-commands/index.js";
|
|
18
|
-
const conversationRepo = new ConversationRepository(CONVERSATIONS_DIR);
|
|
19
20
|
/** 保存当前对话到 conversations 目录 */
|
|
20
21
|
async function saveCurrentConversation(name, messages, modelId, existingId, agentId) {
|
|
21
22
|
const id = existingId || name.replace(/[\\/:*?"<>|]/g, "_");
|
|
22
|
-
await
|
|
23
|
+
await conversationRepository.write({
|
|
23
24
|
id,
|
|
24
25
|
agentId: agentId || "default",
|
|
25
26
|
modelId,
|
|
@@ -73,12 +74,10 @@ export async function runConversation(options) {
|
|
|
73
74
|
agent.use(new CwdTrackerPlugin());
|
|
74
75
|
// 2. autoRefreshTools — 每次 send 前刷新文件系统工具
|
|
75
76
|
agent.use(new AutoRefreshToolsPlugin());
|
|
76
|
-
// 2.
|
|
77
|
-
agent.use(new
|
|
78
|
-
draftsDir: DRAFTS_DIR,
|
|
77
|
+
// 2. draftPlugin — 每次 send 后自动保存草稿(CLI 产品特性,不依赖 SDK;始终写入 _current.json,统一草稿检测入口)
|
|
78
|
+
agent.use(new DraftPlugin({
|
|
79
79
|
agentId: agentId || "default",
|
|
80
80
|
modelId,
|
|
81
|
-
conversationId,
|
|
82
81
|
cwd: process.cwd(),
|
|
83
82
|
}));
|
|
84
83
|
// 3. autoMigrate — 检测 token 超限时自动迁移
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-runner.js","sourceRoot":"","sources":["../src/conversation-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EACL,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"conversation-runner.js","sourceRoot":"","sources":["../src/conversation-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DraftPlugin — CLI 草稿自动保存插件。
|
|
3
|
+
*
|
|
4
|
+
* 草稿是 CLI 的产品特性(交互式对话暂存),不依赖 SDK。
|
|
5
|
+
* 每次内循环结束后把当前消息列表写入草稿,供下次启动恢复。
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentPlugin, SendContext } from "@ai-zen/agents-sdk";
|
|
8
|
+
export interface DraftPluginOptions {
|
|
9
|
+
agentId: string;
|
|
10
|
+
modelId: string;
|
|
11
|
+
conversationId?: string;
|
|
12
|
+
cwd?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class DraftPlugin implements AgentPlugin {
|
|
15
|
+
private options;
|
|
16
|
+
constructor(options: DraftPluginOptions);
|
|
17
|
+
onInnerLoopEnd(ctx: SendContext): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=draft-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-plugin.d.ts","sourceRoot":"","sources":["../src/draft-plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGnE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,WAAY,YAAW,WAAW;IACjC,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAEzC,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBtD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DraftPlugin — CLI 草稿自动保存插件。
|
|
3
|
+
*
|
|
4
|
+
* 草稿是 CLI 的产品特性(交互式对话暂存),不依赖 SDK。
|
|
5
|
+
* 每次内循环结束后把当前消息列表写入草稿,供下次启动恢复。
|
|
6
|
+
*/
|
|
7
|
+
import { draftRepository } from "./draft-repository.js";
|
|
8
|
+
export class DraftPlugin {
|
|
9
|
+
options;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.options = options;
|
|
12
|
+
}
|
|
13
|
+
async onInnerLoopEnd(ctx) {
|
|
14
|
+
const { agentId, modelId, conversationId, cwd } = this.options;
|
|
15
|
+
try {
|
|
16
|
+
await draftRepository.write({
|
|
17
|
+
conversationId,
|
|
18
|
+
agentId,
|
|
19
|
+
modelId,
|
|
20
|
+
messages: ctx.agent.messages,
|
|
21
|
+
cwd,
|
|
22
|
+
updatedAt: new Date().toISOString(),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
console.warn(`[draft] 保存失败: ${err?.message ?? err}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=draft-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-plugin.js","sourceRoot":"","sources":["../src/draft-plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AASxD,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;IAEnD,KAAK,CAAC,cAAc,CAAC,GAAgB;QACnC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,KAAK,CAAC;gBAC1B,cAAc;gBACd,OAAO;gBACP,OAAO;gBACP,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ;gBAC5B,GAAG;gBACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI 草稿存储 — Draft 类型与草稿仓储。
|
|
3
|
+
*
|
|
4
|
+
* 草稿是 CLI 的产品特性(交互式对话暂存),Draft 无 id 字段,单独实现。
|
|
5
|
+
* 文件名基于 conversationId:
|
|
6
|
+
* - 有 conversationId → ${conversationId}.json
|
|
7
|
+
* - 无 conversationId → _current.json
|
|
8
|
+
*/
|
|
9
|
+
import type { AgentNS } from "@ai-zen/agents-core";
|
|
10
|
+
export interface Draft {
|
|
11
|
+
conversationId?: string;
|
|
12
|
+
agentId: string;
|
|
13
|
+
modelId: string;
|
|
14
|
+
messages: AgentNS.Message[];
|
|
15
|
+
cwd?: string;
|
|
16
|
+
updatedAt: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 草稿仓储。
|
|
20
|
+
* 文件名基于 conversationId:
|
|
21
|
+
* - 有 conversationId → ${conversationId}.json
|
|
22
|
+
* - 无 conversationId → _current.json
|
|
23
|
+
*/
|
|
24
|
+
export declare class DraftRepository {
|
|
25
|
+
private dir;
|
|
26
|
+
constructor(dir: string);
|
|
27
|
+
private path;
|
|
28
|
+
read(conversationId?: string): Promise<Draft | null>;
|
|
29
|
+
write(draft: Draft): Promise<void>;
|
|
30
|
+
delete(conversationId?: string): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
/** CLI 草稿存储单例 */
|
|
33
|
+
export declare const draftRepository: DraftRepository;
|
|
34
|
+
//# sourceMappingURL=draft-repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-repository.d.ts","sourceRoot":"","sources":["../src/draft-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,WAAW,KAAK;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;GAKG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,MAAM;IAE/B,OAAO,CAAC,IAAI;IAIN,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAcpD,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAalC,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASrD;AAED,iBAAiB;AACjB,eAAO,MAAM,eAAe,iBAAkC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI 草稿存储 — Draft 类型与草稿仓储。
|
|
3
|
+
*
|
|
4
|
+
* 草稿是 CLI 的产品特性(交互式对话暂存),Draft 无 id 字段,单独实现。
|
|
5
|
+
* 文件名基于 conversationId:
|
|
6
|
+
* - 有 conversationId → ${conversationId}.json
|
|
7
|
+
* - 无 conversationId → _current.json
|
|
8
|
+
*/
|
|
9
|
+
import { promises as fs } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { DRAFTS_DIR } from "./config.js";
|
|
12
|
+
const CURRENT_DRAFT = "_current.json";
|
|
13
|
+
/**
|
|
14
|
+
* 草稿仓储。
|
|
15
|
+
* 文件名基于 conversationId:
|
|
16
|
+
* - 有 conversationId → ${conversationId}.json
|
|
17
|
+
* - 无 conversationId → _current.json
|
|
18
|
+
*/
|
|
19
|
+
export class DraftRepository {
|
|
20
|
+
dir;
|
|
21
|
+
constructor(dir) {
|
|
22
|
+
this.dir = dir;
|
|
23
|
+
}
|
|
24
|
+
path(conversationId) {
|
|
25
|
+
return join(this.dir, conversationId ? `${conversationId}.json` : CURRENT_DRAFT);
|
|
26
|
+
}
|
|
27
|
+
async read(conversationId) {
|
|
28
|
+
const p = this.path(conversationId);
|
|
29
|
+
try {
|
|
30
|
+
await fs.access(p);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
return JSON.parse(await fs.readFile(p, "utf-8"));
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async write(draft) {
|
|
43
|
+
try {
|
|
44
|
+
await fs.access(this.dir);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
await fs.mkdir(this.dir, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
await fs.writeFile(this.path(draft.conversationId), JSON.stringify(draft, null, 2), "utf-8");
|
|
50
|
+
}
|
|
51
|
+
async delete(conversationId) {
|
|
52
|
+
const p = this.path(conversationId);
|
|
53
|
+
try {
|
|
54
|
+
await fs.access(p);
|
|
55
|
+
await fs.unlink(p);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// 文件不存在,忽略
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** CLI 草稿存储单例 */
|
|
63
|
+
export const draftRepository = new DraftRepository(DRAFTS_DIR);
|
|
64
|
+
//# sourceMappingURL=draft-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft-repository.js","sourceRoot":"","sources":["../src/draft-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAE3B,IAAI,CAAC,cAAuB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAuB;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAU,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAY;QACtB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAC9B,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,cAAuB;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;CACF;AAED,iBAAiB;AACjB,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC"}
|
package/dist/menus/agents.js
CHANGED
|
@@ -5,7 +5,7 @@ import { AgentRepository, } from "@ai-zen/agents-sdk";
|
|
|
5
5
|
import { AGENTS_DIR, readConfig, saveConfig } from "../config.js";
|
|
6
6
|
import { formatFullTime } from "../format-time.js";
|
|
7
7
|
import { selectItemAndAction, confirmAction, SEPARATOR_LONG, } from "./common.js";
|
|
8
|
-
const
|
|
8
|
+
const agentRepository = new AgentRepository(AGENTS_DIR);
|
|
9
9
|
/**
|
|
10
10
|
* 获取消息列表中的文本摘要
|
|
11
11
|
*/
|
|
@@ -41,7 +41,7 @@ function formatAgentDetails(agent, isDefault) {
|
|
|
41
41
|
*/
|
|
42
42
|
async function getDefaultAgent() {
|
|
43
43
|
const config = await readConfig();
|
|
44
|
-
return config.defaultAgent ? (await
|
|
44
|
+
return config.defaultAgent ? (await agentRepository.read(config.defaultAgent)) ?? undefined : undefined;
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Agent 管理
|
|
@@ -49,7 +49,7 @@ async function getDefaultAgent() {
|
|
|
49
49
|
export async function manageAgentsInteractive() {
|
|
50
50
|
while (true) {
|
|
51
51
|
console.log(chalk.blue.bold("\n🤖 Agent 管理\n"));
|
|
52
|
-
const agents = await
|
|
52
|
+
const agents = await agentRepository.list();
|
|
53
53
|
if (agents.length === 0) {
|
|
54
54
|
console.log(chalk.yellow("📭 没有可用的 Agent\n"));
|
|
55
55
|
const { create } = await inquirer.prompt([
|
|
@@ -131,13 +131,13 @@ async function createAgentInteractive() {
|
|
|
131
131
|
},
|
|
132
132
|
]);
|
|
133
133
|
let id = name.toLowerCase().replace(/[^a-zA-Z0-9\u4e00-\u9fa5_-]/g, "_");
|
|
134
|
-
if (await
|
|
134
|
+
if (await agentRepository.read(id)) {
|
|
135
135
|
const suffix = Math.random().toString(36).substring(2, 6);
|
|
136
136
|
id = `${id}_${suffix}`;
|
|
137
137
|
console.log(chalk.yellow(`⚠️ 名称生成的 ID 已存在,已调整为: ${id}\n`));
|
|
138
138
|
}
|
|
139
139
|
const now = new Date().toISOString();
|
|
140
|
-
await
|
|
140
|
+
await agentRepository.write({
|
|
141
141
|
id,
|
|
142
142
|
name,
|
|
143
143
|
description,
|
|
@@ -150,7 +150,7 @@ async function createAgentInteractive() {
|
|
|
150
150
|
}
|
|
151
151
|
/** 编辑 Agent */
|
|
152
152
|
async function editAgentInteractive(agentId) {
|
|
153
|
-
const agent = await
|
|
153
|
+
const agent = await agentRepository.read(agentId);
|
|
154
154
|
if (!agent)
|
|
155
155
|
return;
|
|
156
156
|
const currentSystem = agent.messages.find((m) => m.role === AgentNS.Role.System && typeof m.content === "string");
|
|
@@ -190,7 +190,7 @@ async function editAgentInteractive(agentId) {
|
|
|
190
190
|
],
|
|
191
191
|
},
|
|
192
192
|
]);
|
|
193
|
-
await
|
|
193
|
+
await agentRepository.write({
|
|
194
194
|
...agent,
|
|
195
195
|
name,
|
|
196
196
|
description,
|
|
@@ -202,12 +202,12 @@ async function editAgentInteractive(agentId) {
|
|
|
202
202
|
}
|
|
203
203
|
/** 删除 Agent */
|
|
204
204
|
async function deleteAgentInteractive(agentId) {
|
|
205
|
-
const agent = await
|
|
205
|
+
const agent = await agentRepository.read(agentId);
|
|
206
206
|
if (!agent)
|
|
207
207
|
return;
|
|
208
208
|
const confirmed = await confirmAction(`确定要删除 Agent "${agent.name}" 吗?`, false);
|
|
209
209
|
if (confirmed) {
|
|
210
|
-
await
|
|
210
|
+
await agentRepository.delete(agentId);
|
|
211
211
|
const config = await readConfig();
|
|
212
212
|
if (config.defaultAgent === agentId) {
|
|
213
213
|
config.defaultAgent = "";
|
package/dist/menus/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/menus/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EACL,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,MAAM,
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/menus/agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/menus/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/menus/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA2DlD"}
|
package/dist/menus/index.js
CHANGED
|
@@ -4,19 +4,17 @@
|
|
|
4
4
|
import { createRequire } from "module";
|
|
5
5
|
import chalk from "chalk";
|
|
6
6
|
import inquirer from "inquirer";
|
|
7
|
-
import { DraftRepository } from "@ai-zen/agents-sdk";
|
|
8
7
|
import { startNewConversation, continueConversation, continueDraft } from "./start-conversation.js";
|
|
9
8
|
import { manageConversations } from "./conversations.js";
|
|
10
9
|
import { manageAgentsInteractive } from "./agents.js";
|
|
11
10
|
import { showInteractiveConfig } from "./config.js";
|
|
12
|
-
import { DRAFTS_DIR } from "../config.js";
|
|
13
11
|
import { formatMessageTime } from "../format-time.js";
|
|
12
|
+
import { draftRepository } from "../draft-repository.js";
|
|
14
13
|
const require = createRequire(import.meta.url);
|
|
15
14
|
const { version } = require("../../package.json");
|
|
16
|
-
const draftRepo = new DraftRepository(DRAFTS_DIR);
|
|
17
15
|
export async function showMainMenu() {
|
|
18
16
|
console.log(chalk.blue.bold(`\n🤖 AI-Zen CLI v${version}\n`));
|
|
19
|
-
const draft = await
|
|
17
|
+
const draft = await draftRepository.read();
|
|
20
18
|
const choices = [];
|
|
21
19
|
if (draft) {
|
|
22
20
|
choices.push({
|
package/dist/menus/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/menus/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/menus/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAsC,EAAE,CAAC;IAEtD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CACV;YACE,IAAI,EAAE,mBAAmB,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG;YACrF,KAAK,EAAE,gBAAgB;SACxB,EACD,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,CAChD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,EAC1C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,EAC9C,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,EAChD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EACrC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAChC,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACvC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;YACjB,OAAO;SACR;KACF,CAAC,CAAC;IAEH,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,gBAAgB;YACnB,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,oBAAoB,EAAE,CAAC;YAC7B,MAAM;QACR,KAAK,UAAU;YACb,MAAM,oBAAoB,EAAE,CAAC;YAC7B,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,mBAAmB,EAAE,CAAC;YAC5B,MAAM;QACR,KAAK,eAAe;YAClB,MAAM,uBAAuB,EAAE,CAAC;YAChC,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,qBAAqB,EAAE,CAAC;YAC9B,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-conversation.d.ts","sourceRoot":"","sources":["../../src/menus/start-conversation.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"start-conversation.d.ts","sourceRoot":"","sources":["../../src/menus/start-conversation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFxE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBnD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C1D"}
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import chalk from "chalk";
|
|
5
5
|
import inquirer from "inquirer";
|
|
6
|
-
import { AgentRepository
|
|
6
|
+
import { AgentRepository } from "@ai-zen/agents-sdk";
|
|
7
7
|
import { runConversation } from "../conversation-runner.js";
|
|
8
|
-
import { readConfig, AGENTS_DIR
|
|
8
|
+
import { readConfig, AGENTS_DIR } from "../config.js";
|
|
9
9
|
import { formatRelativeTime, formatShortTime, formatFileSize, formatMessageTime } from "../format-time.js";
|
|
10
10
|
import { getConversationsList } from "./conversations.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
11
|
+
import { conversationRepository } from "../conversation-repository.js";
|
|
12
|
+
import { draftRepository } from "../draft-repository.js";
|
|
13
|
+
const agentRepository = new AgentRepository(AGENTS_DIR);
|
|
14
14
|
/**
|
|
15
15
|
* 开始新对话
|
|
16
16
|
*/
|
|
17
17
|
export async function startNewConversation(query) {
|
|
18
18
|
try {
|
|
19
19
|
const config = await readConfig();
|
|
20
|
-
const agents = await
|
|
20
|
+
const agents = await agentRepository.list();
|
|
21
21
|
let agentId;
|
|
22
22
|
let modelId;
|
|
23
23
|
if (agents.length === 1) {
|
|
@@ -27,7 +27,7 @@ export async function startNewConversation(query) {
|
|
|
27
27
|
modelId = agent.modelId;
|
|
28
28
|
}
|
|
29
29
|
else if (agents.length > 1) {
|
|
30
|
-
const defaultAgent = config.defaultAgent ? (await
|
|
30
|
+
const defaultAgent = config.defaultAgent ? (await agentRepository.read(config.defaultAgent)) : undefined;
|
|
31
31
|
const { selectedAgentId } = await inquirer.prompt([
|
|
32
32
|
{
|
|
33
33
|
type: "list",
|
|
@@ -46,7 +46,7 @@ export async function startNewConversation(query) {
|
|
|
46
46
|
if (selectedAgentId === "__cancel__")
|
|
47
47
|
return;
|
|
48
48
|
if (selectedAgentId !== "__none__") {
|
|
49
|
-
const agent = await
|
|
49
|
+
const agent = await agentRepository.read(selectedAgentId);
|
|
50
50
|
if (agent) {
|
|
51
51
|
agentId = agent.id;
|
|
52
52
|
if (agent.modelId)
|
|
@@ -81,7 +81,7 @@ export async function startNewConversation(query) {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
// 选完 Agent/模型后,进入对话前,将草稿归档
|
|
84
|
-
const draft = await
|
|
84
|
+
const draft = await draftRepository.read();
|
|
85
85
|
if (draft) {
|
|
86
86
|
try {
|
|
87
87
|
const draftName = `草稿-${formatShortTime(draft.updatedAt)}`;
|
|
@@ -93,9 +93,9 @@ export async function startNewConversation(query) {
|
|
|
93
93
|
createdAt: new Date().toISOString(),
|
|
94
94
|
updatedAt: new Date().toISOString(),
|
|
95
95
|
};
|
|
96
|
-
await
|
|
96
|
+
await conversationRepository.write(conv);
|
|
97
97
|
console.log(chalk.green(`📦 草稿已自动保存为对话存档: "${draftName}" (${formatMessageTime(draft.messages.length, draft.updatedAt)})\n`));
|
|
98
|
-
await
|
|
98
|
+
await draftRepository.delete();
|
|
99
99
|
}
|
|
100
100
|
catch (error) {
|
|
101
101
|
console.error(chalk.red(`❌ 草稿自动存档失败: ${error}\n`));
|
|
@@ -112,7 +112,7 @@ export async function startNewConversation(query) {
|
|
|
112
112
|
* 继续草稿对话
|
|
113
113
|
*/
|
|
114
114
|
export async function continueDraft() {
|
|
115
|
-
const draft = await
|
|
115
|
+
const draft = await draftRepository.read();
|
|
116
116
|
if (!draft) {
|
|
117
117
|
console.log(chalk.yellow("\n📭 没有未完成的对话\n"));
|
|
118
118
|
return;
|
|
@@ -155,7 +155,7 @@ export async function continueConversation() {
|
|
|
155
155
|
if (convId === "__cancel__")
|
|
156
156
|
return;
|
|
157
157
|
try {
|
|
158
|
-
const conversation = await
|
|
158
|
+
const conversation = await conversationRepository.read(convId);
|
|
159
159
|
if (!conversation) {
|
|
160
160
|
console.log(chalk.red(`\n❌ 对话 "${convId}" 不存在\n`));
|
|
161
161
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-conversation.js","sourceRoot":"","sources":["../../src/menus/start-conversation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,
|
|
1
|
+
{"version":3,"file":"start-conversation.js","sourceRoot":"","sources":["../../src/menus/start-conversation.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLI 类型定义
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* 配置/Agent 等共享实体类型委托给 @ai-zen/agents-sdk。
|
|
5
|
+
* 会话(Conversation)/草稿(Draft)是 CLI 的产品数据,定义在 conversation-repository.ts / draft-repository.ts。
|
|
6
6
|
*/
|
|
7
|
-
export type { AppConfig, Endpoint, Model, ImageModel, AgentDefinition, AgentPermissions,
|
|
7
|
+
export type { AppConfig, Endpoint, Model, ImageModel, AgentDefinition, AgentPermissions, McpServerConfig, McpServerManifest, } from "@ai-zen/agents-sdk";
|
|
8
|
+
export type { Conversation } from "./conversation-repository.js";
|
|
9
|
+
export type { Draft } from "./draft-repository.js";
|
|
8
10
|
import type { SdkAgent } from "@ai-zen/agents-sdk";
|
|
9
11
|
export interface ConversationContext {
|
|
10
12
|
agent: SdkAgent;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,SAAS,EACT,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,SAAS,EACT,QAAQ,EACR,KAAK,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLI 类型定义
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* 配置/Agent 等共享实体类型委托给 @ai-zen/agents-sdk。
|
|
5
|
+
* 会话(Conversation)/草稿(Draft)是 CLI 的产品数据,定义在 conversation-repository.ts / draft-repository.ts。
|
|
6
6
|
*/
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=types.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-zen/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "AI-ZEN CLI - interactive conversation terminal with file tools and draft recovery",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@ai-zen/agents-core": "3.0.1",
|
|
24
|
-
"@ai-zen/agents-sdk": "0.
|
|
24
|
+
"@ai-zen/agents-sdk": "0.5.0",
|
|
25
25
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
26
26
|
"chalk": "^5.3.0",
|
|
27
27
|
"dayjs": "^1.11.21",
|