deepminer-cli 0.1.23 → 0.1.25
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/README.md +119 -92
- package/bin/dm-cli-darwin-amd64 +0 -0
- package/bin/dm-cli-darwin-arm64 +0 -0
- package/bin/dm-cli-linux-amd64 +0 -0
- package/bin/dm-cli-windows-amd64.exe +0 -0
- package/package.json +1 -1
- package/scripts/_dm-cli +1 -0
package/README.md
CHANGED
|
@@ -4,15 +4,19 @@ DeepMiner 系统的命令行工具,用于管理认证、配置和 AI 会话。
|
|
|
4
4
|
|
|
5
5
|
## 功能特性
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
7
|
+
- **跨平台支持**: macOS、Linux、Windows
|
|
8
|
+
- **用户认证**: 用户名/密码登录,支持 JWT Token
|
|
9
|
+
- **自动 Token 管理**: Token 过期时自动刷新(本地 JWT 解析,无需 API 调用)
|
|
10
|
+
- **空间管理**: 查看和切换工作空间
|
|
11
|
+
- **配置管理**: API 端点配置
|
|
12
|
+
- **安全存储**: Token 以受限权限存储在本地
|
|
13
|
+
- **文件上传**: 上传文件到 OSS,带文件大小验证
|
|
14
|
+
- **AI 会话**: 启动 AI 助手会话,支持自定义消息和 claw_param 参数
|
|
15
|
+
- **JSON 输出**: 所有命令支持 `--json` 结构化输出,适合 AI agent 和脚本调用
|
|
16
|
+
- **错误提示**: 错误响应包含 `hint` 字段,提供可操作的修复建议
|
|
17
|
+
- **Dry Run**: `--dry-run` 预览 HTTP 请求而不实际执行
|
|
18
|
+
- **CLI Schema**: 内置 `schema` 命令输出机器可读的能力描述
|
|
19
|
+
- **zsh 自动补全**: 安装后自动配置
|
|
16
20
|
|
|
17
21
|
## 快速安装
|
|
18
22
|
|
|
@@ -23,11 +27,6 @@ npm install -g deepminer-cli
|
|
|
23
27
|
dm-cli version
|
|
24
28
|
```
|
|
25
29
|
|
|
26
|
-
验证安装:
|
|
27
|
-
```bash
|
|
28
|
-
dm-cli --help
|
|
29
|
-
```
|
|
30
|
-
|
|
31
30
|
### 方式二:从源码编译
|
|
32
31
|
|
|
33
32
|
```bash
|
|
@@ -40,25 +39,37 @@ go build -o dm-cli .
|
|
|
40
39
|
|
|
41
40
|
```bash
|
|
42
41
|
# 1. 初始化配置
|
|
43
|
-
dm-cli config init
|
|
42
|
+
dm-cli config init --endpoint https://dm-dev.xmingai.com
|
|
43
|
+
|
|
44
|
+
# 2. 登录(返回空间列表)
|
|
45
|
+
dm-cli auth login --username user@example.com --password xxx
|
|
44
46
|
|
|
45
|
-
#
|
|
46
|
-
dm-cli auth
|
|
47
|
+
# 3. 选择空间
|
|
48
|
+
dm-cli auth switch <space_id>
|
|
47
49
|
|
|
48
|
-
#
|
|
50
|
+
# 4. 查看状态
|
|
49
51
|
dm-cli auth status
|
|
50
52
|
|
|
51
|
-
#
|
|
53
|
+
# 5. 启动 AI 会话
|
|
52
54
|
dm-cli agent start-thread --message "你好"
|
|
53
55
|
|
|
54
|
-
#
|
|
55
|
-
dm-cli
|
|
56
|
+
# 6. 上传文件
|
|
57
|
+
dm-cli file upload --file document.pdf
|
|
56
58
|
|
|
57
|
-
#
|
|
59
|
+
# 7. 登出
|
|
58
60
|
dm-cli auth logout
|
|
61
|
+
```
|
|
59
62
|
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
### JSON 模式(适合 AI agent / 脚本)
|
|
64
|
+
|
|
65
|
+
所有命令加 `--json` 输出结构化 JSON:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
dm-cli auth status --json
|
|
69
|
+
# {"ok": true, "data": {"logged_in": true, "user_id": "...", "current_space": "...", ...}}
|
|
70
|
+
|
|
71
|
+
dm-cli file upload --file data.xlsx --json
|
|
72
|
+
# {"ok": true, "data": {"file_id": "...", "file_key": "...", ...}}
|
|
62
73
|
```
|
|
63
74
|
|
|
64
75
|
## 命令列表
|
|
@@ -66,17 +77,17 @@ dm-cli version
|
|
|
66
77
|
### 配置
|
|
67
78
|
|
|
68
79
|
```bash
|
|
69
|
-
dm-cli config init
|
|
70
|
-
dm-cli config show
|
|
80
|
+
dm-cli config init --endpoint <url> # 初始化配置(设置 API 端点)
|
|
81
|
+
dm-cli config show # 显示当前配置
|
|
71
82
|
```
|
|
72
83
|
|
|
73
84
|
### 认证
|
|
74
85
|
|
|
75
86
|
```bash
|
|
76
|
-
dm-cli auth login
|
|
77
|
-
dm-cli auth
|
|
78
|
-
dm-cli auth status
|
|
79
|
-
dm-cli auth
|
|
87
|
+
dm-cli auth login --username <用户名> --password <密码> # 登录(返回空间列表)
|
|
88
|
+
dm-cli auth switch <space_id> # 切换工作空间
|
|
89
|
+
dm-cli auth status # 显示登录状态
|
|
90
|
+
dm-cli auth logout # 退出登录
|
|
80
91
|
```
|
|
81
92
|
|
|
82
93
|
### 文件管理
|
|
@@ -84,67 +95,24 @@ dm-cli auth switch # 切换工作空间
|
|
|
84
95
|
```bash
|
|
85
96
|
dm-cli file upload --file <路径> # 上传文件
|
|
86
97
|
dm-cli file upload --file <路径> --name <文件名> # 上传文件(自定义名称)
|
|
87
|
-
dm-cli file upload --file <路径> --feature <类型>
|
|
88
|
-
dm-cli file upload --file <路径> --id <ID>
|
|
98
|
+
dm-cli file upload --file <路径> --feature <类型> # 上传文件(指定功能类型)
|
|
99
|
+
dm-cli file upload --file <路径> --id <ID> # 上传文件(指定文件 ID)
|
|
89
100
|
```
|
|
90
101
|
|
|
91
102
|
#### 文件大小限制
|
|
92
103
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
# 基本上传
|
|
101
|
-
dm-cli file upload --file document.pdf
|
|
102
|
-
|
|
103
|
-
# 自定义文件名
|
|
104
|
-
dm-cli file upload --file video.mp4 --name my-video.mp4
|
|
105
|
-
|
|
106
|
-
# 指定功能类型
|
|
107
|
-
dm-cli file upload --file audio.mp3 --feature thread
|
|
108
|
-
|
|
109
|
-
# 完整参数
|
|
110
|
-
dm-cli file upload --file data.xlsx --feature thread --name data.xlsx --id my-file-id
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
#### 输出说明
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
✓ 文件上传成功
|
|
117
|
-
文件名: document.pdf
|
|
118
|
-
文件大小: 2.50 MB
|
|
119
|
-
文件类型: pdf
|
|
120
|
-
文件 ID: upload_1774952597926_9acCrbNh
|
|
121
|
-
文件 Key: develop/dm-temp/.../thread/.../file.pdf
|
|
122
|
-
上传 URL: https://...
|
|
123
|
-
```
|
|
104
|
+
| 类型 | 扩展名 | 最大大小 |
|
|
105
|
+
|------|--------|----------|
|
|
106
|
+
| 视频 | mp4 | 500 MB |
|
|
107
|
+
| 音频 | mp3/wav/aac | 100 MB |
|
|
108
|
+
| 其他 | * | 300 MB |
|
|
124
109
|
|
|
125
110
|
### AI 会话
|
|
126
111
|
|
|
127
112
|
```bash
|
|
128
|
-
dm-cli agent start-thread
|
|
129
|
-
dm-cli agent start-thread --message <消息>
|
|
130
|
-
dm-cli agent start-thread --claw-param <JSON>
|
|
131
|
-
dm-cli agent start-thread --message <消息> --claw-param <JSON> # 启动会话(完整参数)
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
#### 会话启动示例
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# 使用默认消息
|
|
138
|
-
dm-cli agent start-thread
|
|
139
|
-
|
|
140
|
-
# 自定义消息
|
|
141
|
-
dm-cli agent start-thread --message "分析一下这个数据"
|
|
142
|
-
|
|
143
|
-
# 指定 claw_param(渠道和发送者信息)
|
|
144
|
-
dm-cli agent start-thread --claw-param '{"channel":"dmwork","sender_account_id":"bot"}'
|
|
145
|
-
|
|
146
|
-
# 完整参数
|
|
147
|
-
dm-cli agent start-thread --message "你好" --claw-param '{"channel":"dmwork","targets":[...]}'
|
|
113
|
+
dm-cli agent start-thread # 使用默认消息 "你好"
|
|
114
|
+
dm-cli agent start-thread --message <消息> # 自定义消息
|
|
115
|
+
dm-cli agent start-thread --message <消息> --claw-param <JSON> # 完整参数
|
|
148
116
|
```
|
|
149
117
|
|
|
150
118
|
#### claw_param 参数说明
|
|
@@ -156,7 +124,6 @@ dm-cli agent start-thread --message "你好" --claw-param '{"channel":"dmwork","
|
|
|
156
124
|
"channel": "dmwork",
|
|
157
125
|
"sender_account_id": "bot_account_id",
|
|
158
126
|
"source_user_id": "user_id",
|
|
159
|
-
"source_channel_id": "channel_id",
|
|
160
127
|
"targets": [
|
|
161
128
|
{
|
|
162
129
|
"channel": "dmwork",
|
|
@@ -168,6 +135,15 @@ dm-cli agent start-thread --message "你好" --claw-param '{"channel":"dmwork","
|
|
|
168
135
|
}
|
|
169
136
|
```
|
|
170
137
|
|
|
138
|
+
### Schema
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
dm-cli schema # 输出 CLI Schema(压缩 JSON)
|
|
142
|
+
dm-cli schema --pretty # 输出 CLI Schema(格式化 JSON)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Schema 命令输出 dm-cli 的完整能力描述,供 AI 系统或自动化工具解析。
|
|
146
|
+
|
|
171
147
|
### 其他
|
|
172
148
|
|
|
173
149
|
```bash
|
|
@@ -175,6 +151,51 @@ dm-cli version # 显示版本号
|
|
|
175
151
|
dm-cli --help # 显示帮助信息
|
|
176
152
|
```
|
|
177
153
|
|
|
154
|
+
## 全局 Flag
|
|
155
|
+
|
|
156
|
+
| Flag | 说明 |
|
|
157
|
+
|------|------|
|
|
158
|
+
| `--json` | 以 JSON 格式输出结果 |
|
|
159
|
+
| `--dry-run` | 预览 HTTP 请求而不实际执行 |
|
|
160
|
+
| `--help` | 显示帮助信息 |
|
|
161
|
+
|
|
162
|
+
### JSON 输出格式
|
|
163
|
+
|
|
164
|
+
成功:
|
|
165
|
+
```json
|
|
166
|
+
{"ok": true, "data": {...}}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
错误(含修复建议):
|
|
170
|
+
```json
|
|
171
|
+
{"ok": false, "error": {"type": "auth", "message": "未登陆", "hint": "运行 'dm-cli auth login --username <user> --password <pass>' 登录"}}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`hint` 字段提供可操作的修复建议,AI agent 可直接据此自动恢复。
|
|
175
|
+
|
|
176
|
+
### Dry Run 模式
|
|
177
|
+
|
|
178
|
+
使用 `--dry-run` 预览请求而不实际执行,适合调试和 AI agent 安全验证:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
dm-cli --dry-run auth login --username user --password pass
|
|
182
|
+
# [DRY RUN] POST https://api.example.com/api/auth/authentication/login
|
|
183
|
+
# Headers:
|
|
184
|
+
# Content-Type: application/json
|
|
185
|
+
# Body:
|
|
186
|
+
# {"username": "user", "password": "pass"}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
JSON 模式:
|
|
190
|
+
```bash
|
|
191
|
+
dm-cli --dry-run --json agent start-thread --message "你好"
|
|
192
|
+
```
|
|
193
|
+
```json
|
|
194
|
+
{"ok": true, "dry_run": true, "data": {"method": "POST", "url": "...", "headers": {...}, "body": {...}}}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
只读命令(`config show`、`auth status`、`version`、`schema`)和纯本地操作(`config init`、`auth logout`)不受 `--dry-run` 影响,正常执行。
|
|
198
|
+
|
|
178
199
|
## 文件说明
|
|
179
200
|
|
|
180
201
|
### 配置文件:`~/.dm-cli/config.json`
|
|
@@ -200,8 +221,8 @@ dm-cli --help # 显示帮助信息
|
|
|
200
221
|
|
|
201
222
|
## Token 管理工作原理
|
|
202
223
|
|
|
203
|
-
1. **认证**:
|
|
204
|
-
2. **空间选择**:
|
|
224
|
+
1. **认证**: 使用 `--username`/`--password` 凭证获得 `access_token` (JWT) 和 `refresh_token`
|
|
225
|
+
2. **空间选择**: 登录返回可用空间列表,使用 `auth switch` 选择
|
|
205
226
|
3. **存储**: Token 和元数据保存在 `~/.dm-cli/token.json`
|
|
206
227
|
4. **自动刷新**: API 调用前自动检查 Token 是否过期,过期则刷新
|
|
207
228
|
5. **401 处理**: 服务器拒绝 Token 时自动尝试刷新并重试
|
|
@@ -215,7 +236,8 @@ dm-cli/
|
|
|
215
236
|
│ ├── auth/ # 认证命令
|
|
216
237
|
│ ├── config/ # 配置命令
|
|
217
238
|
│ ├── agent/ # AI 命令
|
|
218
|
-
│
|
|
239
|
+
│ ├── file/ # 文件管理命令
|
|
240
|
+
│ └── schema/ # Schema 输出命令
|
|
219
241
|
├── internal/
|
|
220
242
|
│ ├── auth/ # 认证模块
|
|
221
243
|
│ ├── client/ # HTTP 客户端
|
|
@@ -223,9 +245,11 @@ dm-cli/
|
|
|
223
245
|
│ ├── cmdutil/ # 命令工具
|
|
224
246
|
│ ├── output/ # 输出处理
|
|
225
247
|
│ └── validate/ # 输入验证
|
|
248
|
+
├── schema/ # CLI Schema 定义(嵌入)
|
|
249
|
+
├── skills/ # AI Agent Skill 定义
|
|
226
250
|
├── main.go # 入口点
|
|
227
251
|
├── go.mod # 依赖定义
|
|
228
|
-
└── Makefile
|
|
252
|
+
└── Makefile # 构建脚本
|
|
229
253
|
```
|
|
230
254
|
|
|
231
255
|
## 开发
|
|
@@ -237,10 +261,13 @@ dm-cli/
|
|
|
237
261
|
go build -o dm-cli .
|
|
238
262
|
|
|
239
263
|
# 初始化配置
|
|
240
|
-
./dm-cli config init
|
|
264
|
+
./dm-cli config init --endpoint https://dm-dev.xmingai.com
|
|
241
265
|
|
|
242
266
|
# 登录
|
|
243
|
-
./dm-cli auth login
|
|
267
|
+
./dm-cli auth login --username user@example.com --password xxx
|
|
268
|
+
|
|
269
|
+
# 选择空间
|
|
270
|
+
./dm-cli auth switch <space_id>
|
|
244
271
|
|
|
245
272
|
# 查看状态
|
|
246
273
|
./dm-cli auth status
|
|
@@ -256,11 +283,12 @@ make build-all
|
|
|
256
283
|
## 文档
|
|
257
284
|
|
|
258
285
|
- [npm 发布指南](./NPM_RELEASE.md) - 项目维护者发布新版本
|
|
286
|
+
- [快速开始](./QUICK_START_FOR_USERS.md) - 用户快速上手
|
|
287
|
+
- [安装指南](./INSTALL.md) - 详细安装说明
|
|
259
288
|
|
|
260
289
|
## 安全考虑
|
|
261
290
|
|
|
262
291
|
- Token 存储在 `~/.dm-cli/` 目录,权限为 0600
|
|
263
|
-
- 密码输入不显示在终端
|
|
264
292
|
- JWT Token 本地解析,只读取 exp 声明(不验证签名)
|
|
265
293
|
- Token 过期时自动刷新
|
|
266
294
|
- Refresh Token 过期后需要重新登录
|
|
@@ -275,7 +303,6 @@ dm-cli auth <TAB> # 显示 auth 子命令
|
|
|
275
303
|
dm-cli config <TAB> # 显示 config 子命令
|
|
276
304
|
dm-cli agent <TAB> # 显示 agent 子命令
|
|
277
305
|
dm-cli file <TAB> # 显示 file 子命令
|
|
278
|
-
dm-cli file upload <TAB> # 显示 upload 命令的标志
|
|
279
306
|
```
|
|
280
307
|
|
|
281
308
|
## 许可证
|
package/bin/dm-cli-darwin-amd64
CHANGED
|
Binary file
|
package/bin/dm-cli-darwin-arm64
CHANGED
|
Binary file
|
package/bin/dm-cli-linux-amd64
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED