sino-bc-cli 1.8.0 → 1.8.2
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 +150 -26
- package/dist/SKILL.md +10 -106
- package/dist/affordance/biz-line.md +63 -0
- package/dist/api-doc/README.md +22 -9
- package/dist/api-doc/biz-line-query.md +9 -5
- package/dist/api-doc/biz-line-strategy.md +9 -5
- package/dist/index.js +1 -1
- package/dist/skills/sino-bc-biz-line/SKILL.md +64 -0
- package/dist/skills/sino-bc-biz-line/references/enums.md +7 -0
- package/dist/skills/sino-bc-biz-line/references/long-tail-api.md +16 -0
- package/dist/skills/sino-bc-shared/SKILL.md +39 -0
- package/dist/skills/sino-bc-shared/references/config-and-env.md +12 -0
- package/dist/skills/sino-bc-shared/references/mcp-reload.md +9 -0
- package/dist/skills/sino-bc-shared/references/output-contract.md +20 -0
- package/dist/skills/sino-bc-shared/references/write-approval.md +18 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -84,9 +84,9 @@ npm ls -g --depth=0 sino-bc-cli # 确认全局安装的版本
|
|
|
84
84
|
sino-bc-cli /init
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
`/init` 会把 `
|
|
87
|
+
`/init` 会把 `skills/sino-bc-shared` 与 `skills/sino-bc-biz-line`(含 `references/`)写入用户主目录的 Agent 技能目录(`~/.agents/skills/sino-bc-shared` 等),并删除旧的 `sino-bc-cli/` 技能目录。根 `SKILL.md` 只做入口,不作为唯一安装源。Cursor / Claude / Codex / 飞书豆包工作 才能识别到本技能。飞书豆包工作侧还需:技能·连接器 → 管理 → **本地** → 刷新。查看包内技能:`sino-bc-cli /skill`。
|
|
88
88
|
|
|
89
|
-
>
|
|
89
|
+
> 每次升级版本后请重新执行一次 `sino-bc-cli /init`,以刷新本地技能文件。
|
|
90
90
|
|
|
91
91
|
### ⑥ 免安装临时执行
|
|
92
92
|
|
|
@@ -136,25 +136,40 @@ sino-bc-cli/
|
|
|
136
136
|
│ ├── core/ # 🧠 核心模块层
|
|
137
137
|
│ │ ├── index.ts # 核心模块统一导出
|
|
138
138
|
│ │ ├── cli-app.ts # CLI 应用主类(参数解析、帮助展示、命令分发)
|
|
139
|
+
│ │ ├── route.ts # argv 路由(斜杠命令 / 域 + Shortcut)
|
|
139
140
|
│ │ └── command-registry.ts # 命令注册器(注册、查找、执行、注销命令)
|
|
140
141
|
│ │
|
|
141
142
|
│ ├── commands/ # 📦 命令实现层(每命令一个文件,可独立扩展)
|
|
142
143
|
│ │ ├── index.ts # 命令批量注册入口
|
|
143
144
|
│ │ ├── init.command.ts # /init 命令实现(注册 Agent 技能 + 初始化变量配置 + 拉取启动 MCP)
|
|
144
|
-
│ │ ├── api-list.command.ts # /api-list
|
|
145
|
-
│ │ ├── api
|
|
146
|
-
│ │ ├── bc-api.command.ts # /bc-api 命令实现(调用业务线查询 / 业务线策略接口)
|
|
145
|
+
│ │ ├── api-list.command.ts # /api-list 命令实现(列出接口、给出调用命令并打开文档)
|
|
146
|
+
│ │ ├── bc-api.command.ts # /bc-api 已下线,仅打印迁移提示并非 0 退出
|
|
147
147
|
│ │ ├── get-config.command.ts # /get-config 命令实现(查看变量配置与 MCP 配置)
|
|
148
148
|
│ │ ├── set-config.command.ts # /set-config 命令实现(修改变量配置)
|
|
149
149
|
│ │ ├── mcp-reload.command.ts # /mcp-reload 命令实现(按 mcp.json 重启 MCP)
|
|
150
|
+
│ │ ├── skill.command.ts # /skill 命令实现(列出包内技能或打开 SKILL.md)
|
|
150
151
|
│ │ └── uninstall.command.ts # /uninstall 命令实现(关闭 MCP、清理技能目录与配置并卸载)
|
|
151
152
|
│ │
|
|
153
|
+
│ ├── shortcuts/ # ⚡ Shortcut 执行面(业务命令,域 + `+cmd`)
|
|
154
|
+
│ │ ├── index.ts # 注册表与执行器(flag 解析、输出格式、写确认门)
|
|
155
|
+
│ │ ├── flags.ts # Shortcut 面参数解析(含公共 flag)
|
|
156
|
+
│ │ ├── types.ts # Shortcut 声明与执行上下文类型
|
|
157
|
+
│ │ └── biz-line/ # biz-line 域
|
|
158
|
+
│ │ ├── index.ts # 该域全部 Shortcut 登记处
|
|
159
|
+
│ │ ├── read.ts # 只读 Shortcut(+channels/+categories/+list/+strategies/+top)
|
|
160
|
+
│ │ ├── write.ts # 写 Shortcut(+save/+update/+status/+delete/+strategy-*)
|
|
161
|
+
│ │ ├── raw-api.ts # biz-line api <name> 点名调用
|
|
162
|
+
│ │ └── helpers.ts # 按名解析业务线、字典名称映射等编排
|
|
163
|
+
│ │
|
|
152
164
|
│ ├── utils/ # 🛠 工具类层(高内聚的可复用工具)
|
|
153
165
|
│ │ ├── index.ts # 工具模块统一导出
|
|
154
166
|
│ │ ├── logger.ts # 日志工具(多级别彩色输出 + 时间戳)
|
|
155
167
|
│ │ ├── browser.ts # 浏览器工具(跨平台 URL 打开,兼容 Win/macOS/Linux)
|
|
156
168
|
│ │ ├── crypto.ts # 加密工具(MD5、SHA-256、AES、Base64、签名生成)
|
|
157
169
|
│ │ ├── http.ts # HTTP 工具(axios 封装:请求/响应拦截、自动重试)
|
|
170
|
+
│ │ ├── gateway-client.ts # 网关调用唯一出口(拼地址、注入鉴权与来源头、解包 result)
|
|
171
|
+
│ │ ├── presenter.ts # 输出与退出码(table / JSON 信封,stdout / stderr 分流)
|
|
172
|
+
│ │ ├── cli-error.ts # 带分类的 CLI 错误(validation / config / api / 待确认)
|
|
158
173
|
│ │ ├── common.ts # 通用工具(日期、深拷贝、防抖节流、ID 生成等)
|
|
159
174
|
│ │ ├── prompt.ts # 终端交互(复用单一 readline 会话:提问、选择、确认)
|
|
160
175
|
│ │ ├── config-store.ts # 变量配置读写(字段元信息 + 读 / 写 / 删)
|
|
@@ -167,10 +182,16 @@ sino-bc-cli/
|
|
|
167
182
|
│ │ └── index.ts # 全局接口、枚举定义(ICommand、LogLevel 等)
|
|
168
183
|
│ │
|
|
169
184
|
│ └── constants/ # 🔧 常量配置层
|
|
170
|
-
│ └── index.ts # CLI
|
|
185
|
+
│ └── index.ts # CLI 配置、命令名称、Shortcut 域、默认值
|
|
186
|
+
│
|
|
187
|
+
├── skills/ # Agent 技能树(shared + biz-line,含 references)
|
|
188
|
+
├── affordance/ # 各 Shortcut 的 WHEN / 别用 / 示例
|
|
189
|
+
├── tests/ # ✅ 单元测试(node --test + ts-node)
|
|
190
|
+
│ ├── helpers/ # HTTP 执行器桩、输出流桩
|
|
191
|
+
│ └── *.test.ts # 路由、flag、网关、输出契约、各类 Shortcut
|
|
171
192
|
│
|
|
172
193
|
├── dist/ # 📤 构建输出目录(构建后自动生成)
|
|
173
|
-
│ └── ... # 单文件混淆压缩产物 + SKILL.md + api-doc(不含 SourceMap)
|
|
194
|
+
│ └── ... # 单文件混淆压缩产物 + SKILL.md + skills/ + affordance/ + api-doc(不含 SourceMap)
|
|
174
195
|
│
|
|
175
196
|
├── package.json # 📄 项目配置(依赖、脚本、bin 命令)
|
|
176
197
|
├── tsconfig.json # 📄 TypeScript 编译配置
|
|
@@ -246,10 +267,24 @@ npm run dev -- [参数]
|
|
|
246
267
|
# 示例:查看帮助
|
|
247
268
|
npm run dev -- --help
|
|
248
269
|
|
|
249
|
-
#
|
|
250
|
-
npm run dev --
|
|
270
|
+
# 示例:执行业务命令
|
|
271
|
+
npm run dev -- biz-line +list --name <业务线名称>
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### 4.1 运行测试
|
|
275
|
+
|
|
276
|
+
单元测试用 Node 内置 runner(`node --test`)配 `ts-node`,不额外引入测试框架:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# 跑全部用例
|
|
280
|
+
npm test
|
|
281
|
+
|
|
282
|
+
# 类型检查(tsc --noEmit)
|
|
283
|
+
npm run typecheck
|
|
251
284
|
```
|
|
252
285
|
|
|
286
|
+
用例放在 `tests/`,通过注入 HTTP 执行器桩断言请求,不产生真实网络调用。
|
|
287
|
+
|
|
253
288
|
### 5. 全局安装(推荐)
|
|
254
289
|
|
|
255
290
|
将 CLI 工具链接为全局命令,可在任意目录下直接使用 `sino-bc-cli`:
|
|
@@ -270,10 +305,10 @@ npm i sino-bc-cli -g
|
|
|
270
305
|
sino-bc-cli --help
|
|
271
306
|
sino-bc-cli /init
|
|
272
307
|
sino-bc-cli /api-list
|
|
273
|
-
sino-bc-cli
|
|
308
|
+
sino-bc-cli biz-line +list --name <业务线名称>
|
|
274
309
|
```
|
|
275
310
|
|
|
276
|
-
`npm i sino-bc-cli -g` 完成后会自动执行 `/init`,把 `
|
|
311
|
+
`npm i sino-bc-cli -g` 完成后会自动执行 `/init`,把 `sino-bc-shared` 与 `sino-bc-biz-line` 写到用户主目录的 Agent 技能目录(`~/.agents/skills/sino-bc-shared` 等),并清掉旧的 `sino-bc-cli/`。飞书豆包工作:技能·连接器 → 管理 → **本地** → 刷新。若未出现,手动执行:
|
|
277
312
|
|
|
278
313
|
```bash
|
|
279
314
|
sino-bc-cli /init
|
|
@@ -285,17 +320,60 @@ sino-bc-cli /init
|
|
|
285
320
|
|
|
286
321
|
## 📖 命令说明
|
|
287
322
|
|
|
288
|
-
|
|
323
|
+
命令分两类:**生命周期命令**用 `/` 前缀,负责安装与配置;**业务命令**是 Shortcut 执行面,形如 `<域> +<命令>`。
|
|
324
|
+
|
|
325
|
+
### 生命周期命令
|
|
289
326
|
|
|
290
327
|
| 命令 | 说明 |
|
|
291
328
|
| :---------- | :-------------------------------------------------------------------------------------------- |
|
|
292
|
-
| `/init` | 注册 `
|
|
293
|
-
| `/
|
|
294
|
-
| `/
|
|
329
|
+
| `/init` | 注册 `sino-bc-shared` / `sino-bc-biz-line` 到 Agent 技能目录(并删除旧 `sino-bc-cli/`),交互设置环境 / `API_KEY`,并拉取启动 MCP |
|
|
330
|
+
| `/skill` | 列出包内 Agent 技能;传入 name 打开对应 `SKILL.md` |
|
|
331
|
+
| `/api-list` | 列出全部可调用接口及其调用命令,Shortcut 行带一句 WHEN;Cursor / VS Code 终端中 Ctrl+单击接口名或文档路径打开本地文档,也可输入序号或传入 name |
|
|
295
332
|
| `/get-config` | 查看变量配置与 `mcp.json`;密钥默认打码,`--show-secret` 显示明文,`--json` 输出 JSON |
|
|
296
333
|
| `/set-config` | 修改变量配置(环境 / API_KEY);不带参数时逐项交互修改 |
|
|
297
334
|
| `/mcp-reload` | 重新读取 `~/.sino-bc-cli/mcp.json`,同步到 Cursor / Codex / Claude / VS Code 并重新握手 |
|
|
298
335
|
| `/uninstall` | 关闭本 CLI 写入的 MCP,删除技能目录与变量配置文件,并从全局 npm 卸载本 CLI |
|
|
336
|
+
| `/bc-api` | **已下线**。只打印迁移提示并非 0 退出,改用 `biz-line +<shortcut>` 或 `biz-line api <name>` |
|
|
337
|
+
|
|
338
|
+
### 业务命令(`biz-line`)
|
|
339
|
+
|
|
340
|
+
| 命令 | 说明 |
|
|
341
|
+
| :--- | :--- |
|
|
342
|
+
| `biz-line +channels` | 查询投放渠道列表(`code` 即业务线里的 `mediaChannelId`) |
|
|
343
|
+
| `biz-line +categories` | 查询投放行业与品类字典树 |
|
|
344
|
+
| `biz-line +list` | 查询业务线;`--name` / `--id` / `--channel` / `--industry` / `--category`,不传即查全部 |
|
|
345
|
+
| `biz-line +strategies` | 查周策略与表现;`--name` 会先解析业务线 ID,也可直接 `--id` |
|
|
346
|
+
| `biz-line +top` | 行业 / 品类 Top 业务线;两者至少传一个,同时传则只按行业 |
|
|
347
|
+
| `biz-line +save` / `+update` / `+status` / `+delete` | ⚠️ 业务线写操作 |
|
|
348
|
+
| `biz-line +strategy-save` / `+strategy-update` / `+strategy-delete` | ⚠️ 周策略写操作 |
|
|
349
|
+
| `biz-line api <name> --data '<json>'` | 按接口 `name` 点名调用,覆盖导出、对比、消耗等长尾接口 |
|
|
350
|
+
|
|
351
|
+
`--channel` / `--industry` / `--category` 同时接受数字 ID 与名称(如 `--channel TikTok`);传名称时会先查字典再映射,映射不到会报错并列出可选值。
|
|
352
|
+
|
|
353
|
+
### Shortcut 面公共参数
|
|
354
|
+
|
|
355
|
+
| 参数 | 说明 |
|
|
356
|
+
| :--- | :--- |
|
|
357
|
+
| `--format json\|table` | 输出格式。TTY 默认 `table`,非 TTY 默认 `json` |
|
|
358
|
+
| `--dry-run` | 只打印将要发起的 method / URL / 请求体,不发请求 |
|
|
359
|
+
| `--yes` | 跳过写操作确认,直接发起请求 |
|
|
360
|
+
|
|
361
|
+
### 输出契约与退出码
|
|
362
|
+
|
|
363
|
+
非 TTY(管道 / CI / Agent)默认输出 JSON 信封。成功走 stdout,失败走 stderr:
|
|
364
|
+
|
|
365
|
+
```json
|
|
366
|
+
{ "ok": true, "env": "prod", "command": "biz-line +list", "data": [], "meta": { "count": 0 } }
|
|
367
|
+
{ "ok": false, "env": "prod", "command": "biz-line +delete", "error": { "type": "confirmation_required", "message": "...", "hint": "..." } }
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
`data` 只包含上游 `result`。**判断成功请看 `ok` 或进程退出码,不要看上游 `code`。**
|
|
371
|
+
|
|
372
|
+
| 退出码 | 含义 |
|
|
373
|
+
| :----- | :--- |
|
|
374
|
+
| `0` | 成功 |
|
|
375
|
+
| `10` | 写操作待确认,**不是错误**;向用户确认后在原命令末尾追加 `--yes` 重试 |
|
|
376
|
+
| 其他非 0 | 失败,详见 `error.type`(`validation` / `config` / `api`) |
|
|
299
377
|
|
|
300
378
|
### 变量配置文件
|
|
301
379
|
|
|
@@ -306,7 +384,7 @@ MCP Server 存放在 `<用户主目录>/.sino-bc-cli/mcp.json`,结构与 Curso
|
|
|
306
384
|
| 字段 | 命令行键名 | 默认值 | 说明 |
|
|
307
385
|
| :--- | :--------- | :----- | :--- |
|
|
308
386
|
| `env` | `env` | `prod` | 目标环境,可选 `test` / `pre` / `prod` |
|
|
309
|
-
| `apiKey` | `api-key` | 内置默认 Key | 网关鉴权用的 API Key
|
|
387
|
+
| `apiKey` | `api-key` | 内置默认 Key | 网关鉴权用的 API Key(业务命令使用) |
|
|
310
388
|
|
|
311
389
|
```bash
|
|
312
390
|
# 查看(密钥打码)
|
|
@@ -351,7 +429,7 @@ sino-bc-cli /mcp-reload
|
|
|
351
429
|
|
|
352
430
|
### 环境与请求网关
|
|
353
431
|
|
|
354
|
-
|
|
432
|
+
业务命令的请求地址由 [`src/constants/gateway.ts`](./src/constants/gateway.ts) 的 `GATEWAY_CONFIG` 决定,统一走 `joinGatewayUrl(env, path)` 拼接,实际请求由 [`src/utils/gateway-client.ts`](./src/utils/gateway-client.ts) 这一个出口发出。业务线路径带 `/sino-opti-hive`。iCenter 请写入 `mcp.json` 后 `/mcp-reload`。
|
|
355
433
|
|
|
356
434
|
| `ENV` | 说明 | 网关地址 |
|
|
357
435
|
| :----- | :------- | :----------------------------------- |
|
|
@@ -394,22 +472,46 @@ sino-bc-cli /mcp-reload
|
|
|
394
472
|
|
|
395
473
|
执行效果:把 `mcp.json` 里的 Server 同步到 Cursor(`~/.cursor/mcp.json`)、Codex(`~/.codex/config.toml`)、Claude Code(`~/.claude.json`)、VS Code 用户级 `mcp.json`,并对带 `url` 的 Server 做 initialize 握手。
|
|
396
474
|
|
|
397
|
-
#### ④
|
|
475
|
+
#### ④ 查询业务线数据
|
|
398
476
|
|
|
399
477
|
```bash
|
|
400
|
-
|
|
478
|
+
# 按名称查业务线
|
|
479
|
+
sino-bc-cli biz-line +list --name <业务线名称>
|
|
480
|
+
|
|
481
|
+
# 按渠道筛选(接受名称或 ID)
|
|
482
|
+
sino-bc-cli biz-line +list --channel TikTok
|
|
483
|
+
|
|
484
|
+
# 查某条业务线的周策略与表现
|
|
485
|
+
sino-bc-cli biz-line +strategies --name <业务线名称>
|
|
486
|
+
|
|
487
|
+
# 行业 Top
|
|
488
|
+
sino-bc-cli biz-line +top --industry APP --top-n 5
|
|
489
|
+
|
|
490
|
+
# 没有 Shortcut 的长尾接口
|
|
491
|
+
sino-bc-cli biz-line api biz-line-strategy-compare \
|
|
492
|
+
--data '{"bizLineId":123,"currentId":2,"prevId":1}'
|
|
401
493
|
```
|
|
402
494
|
|
|
403
|
-
|
|
495
|
+
执行效果:向配置文件指定环境的网关发起请求,路径统一带 `/sino-opti-hive` 前缀,自动注入 `Authorization` 与 `X-GATEWAY-TYPE: A2C-CLI`。接口清单见 [`src/api-doc/README.md`](./src/api-doc/README.md)。
|
|
496
|
+
|
|
497
|
+
#### ⑤ 执行写操作(需确认)
|
|
404
498
|
|
|
405
|
-
|
|
499
|
+
```bash
|
|
500
|
+
# 先预览请求,不会真正发起
|
|
501
|
+
sino-bc-cli biz-line +status --id 123 --status 3 --dry-run
|
|
502
|
+
|
|
503
|
+
# 确认无误后追加 --yes
|
|
504
|
+
sino-bc-cli biz-line +status --id 123 --status 3 --yes
|
|
505
|
+
```
|
|
406
506
|
|
|
407
|
-
|
|
507
|
+
> ⚠️ 写操作会变更线上数据。不加 `--yes` 时:交互式终端会展示环境与关键参数并询问;非交互式环境以退出码 `10` 返回 `confirmation_required`,需人工确认后再重试。
|
|
508
|
+
|
|
509
|
+
#### ⑥ 启用 Debug 模式运行
|
|
408
510
|
|
|
409
511
|
```bash
|
|
410
|
-
sino-bc-cli --debug /
|
|
512
|
+
sino-bc-cli --debug /api-list
|
|
411
513
|
# 或使用短选项
|
|
412
|
-
sino-bc-cli -d /
|
|
514
|
+
sino-bc-cli -d /api-list
|
|
413
515
|
```
|
|
414
516
|
|
|
415
517
|
Debug 模式会输出详细的日志,包括参数解析、命令注册、接口调用过程等信息,便于排查问题。
|
|
@@ -438,6 +540,12 @@ Debug 模式会输出详细的日志,包括参数解析、命令注册、接
|
|
|
438
540
|
# 编译 TypeScript 为 JavaScript(输出到 dist/)
|
|
439
541
|
npm run build
|
|
440
542
|
|
|
543
|
+
# 类型检查(不产出文件)
|
|
544
|
+
npm run typecheck
|
|
545
|
+
|
|
546
|
+
# 跑单元测试
|
|
547
|
+
npm test
|
|
548
|
+
|
|
441
549
|
# 开发模式:直接运行 TypeScript 源码(ts-node)
|
|
442
550
|
npm run dev -- [参数]
|
|
443
551
|
|
|
@@ -455,7 +563,23 @@ npm run rebuild
|
|
|
455
563
|
|
|
456
564
|
## 🔧 扩展新命令(开发者指南)
|
|
457
565
|
|
|
458
|
-
|
|
566
|
+
先判断要加的是哪一类:
|
|
567
|
+
|
|
568
|
+
- **生命周期命令**(安装、配置、维护,用 `/` 前缀)→ 加到 `src/commands/`
|
|
569
|
+
- **业务命令**(调接口拿数据,形如 `biz-line +xxx`)→ 加到 `src/shortcuts/`
|
|
570
|
+
|
|
571
|
+
### A. 新增业务 Shortcut
|
|
572
|
+
|
|
573
|
+
1. **写声明**:在 `src/shortcuts/biz-line/read.ts` 或 `write.ts` 里新增一条 `IShortcutDefinition`,声明 `command`、`risk`、`flags`,并在 `resolve()` 里返回目标接口与请求体
|
|
574
|
+
2. **登记**:加入 `src/shortcuts/biz-line/index.ts` 的 `BIZ_LINE_SHORTCUTS` 数组
|
|
575
|
+
3. **补测试**:在 `tests/` 下用 HTTP 桩断言请求与输出
|
|
576
|
+
4. **同步文档**:`skills/sino-bc-biz-line` 的意图表、`affordance/biz-line.md` 的 WHEN、`src/api-doc/` 的字段口径;根 `SKILL.md` 只做入口
|
|
577
|
+
|
|
578
|
+
参数解析、输出格式、写操作确认门、错误归类都由 `src/shortcuts/index.ts` 统一承担,声明里不要自己发 HTTP。接口 `name` 一律取自 `src/constants/biz-line-api-doc.ts`,不要新造。
|
|
579
|
+
|
|
580
|
+
> 只是想调一个已有接口,通常不需要写新 Shortcut——直接 `biz-line api <name> --data '<json>'` 即可。Shortcut 应当带来智能默认值、参数编排或更友好的输出,否则不值得新增。
|
|
581
|
+
|
|
582
|
+
### B. 新增生命周期命令
|
|
459
583
|
|
|
460
584
|
1. **新建命令文件**:在 `src/commands/` 下创建 `xxx.command.ts`
|
|
461
585
|
2. **实现 ICommand 接口**:编写 `name`、`description` 和 `execute()` 方法
|
|
@@ -486,7 +610,7 @@ import { ExampleCommand } from "./example.command"; // 新增导入
|
|
|
486
610
|
export const commands: ICommand[] = [
|
|
487
611
|
new InitCommand(),
|
|
488
612
|
new ApiListCommand(),
|
|
489
|
-
new
|
|
613
|
+
new GetConfigCommand(),
|
|
490
614
|
new ExampleCommand(), // 新增注册
|
|
491
615
|
];
|
|
492
616
|
```
|
package/dist/SKILL.md
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sino-bc-cli
|
|
3
3
|
description: >
|
|
4
|
-
Use when 查询或操作 BeyondClick
|
|
5
|
-
|
|
6
|
-
红绿灯、客户满意度、消耗、ROAS;或用户提到 sino-bc-cli、/init、/api-list、
|
|
7
|
-
/bc-api、/get-config、/set-config、/mcp-reload、/uninstall、
|
|
8
|
-
sino-opti-hive、A2C-CLI。
|
|
4
|
+
Use when 查询或操作 BeyondClick 业务线,或配置 sino-bc-cli / MCP。
|
|
5
|
+
完整规则在 sino-bc-shared 与 sino-bc-biz-line;本文件只做入口。
|
|
9
6
|
metadata:
|
|
10
7
|
requires:
|
|
11
8
|
bins: ["sino-bc-cli"]
|
|
@@ -13,110 +10,17 @@ metadata:
|
|
|
13
10
|
|
|
14
11
|
# sino-bc-cli
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
iCenter 不走本 CLI 接口清单:用户把 MCP Server 写进 `~/.sino-bc-cli/mcp.json`,`/init` 或 `/mcp-reload` 会同步到 Cursor / Codex / Claude / VS Code。
|
|
13
|
+
Agent 技能已拆成两份,**不要只读这一页**。
|
|
18
14
|
|
|
19
|
-
|
|
15
|
+
1. 配置、信封、确认门、禁止拼 HTTP、MCP:[`skills/sino-bc-shared/SKILL.md`](skills/sino-bc-shared/SKILL.md)
|
|
16
|
+
2. 业务线意图与 Shortcut:[`skills/sino-bc-biz-line/SKILL.md`](skills/sino-bc-biz-line/SKILL.md)
|
|
20
17
|
|
|
21
|
-
-
|
|
22
|
-
- 新建/编辑/删除业务线或周策略(须先确认环境和写操作意图)
|
|
23
|
-
- 用户点名 `/api-list`、`/bc-api`、`/mcp-reload`、sino-opti-hive
|
|
24
|
-
- 用户要给 Cursor / Codex / Claude / VS Code 增加或重启 MCP
|
|
25
|
-
|
|
26
|
-
不要用本技能处理:本仓库源码开发、扩展命令、npm 发版(见 `README.md` / `ReleaseSteps.md`)。
|
|
27
|
-
|
|
28
|
-
## 调用约定
|
|
29
|
-
|
|
30
|
-
| 项 | 规则 |
|
|
31
|
-
| --- | --- |
|
|
32
|
-
| 环境 | `test` / `pre` / `prod`,取自变量配置文件,默认 `prod` |
|
|
33
|
-
| 网关 | `https://test-agent.beyondclick.com`(当前三环境同一地址;`/bc-api` 走网关,不直连服务地址) |
|
|
34
|
-
| 业务线前缀 | `/sino-opti-hive` |
|
|
35
|
-
| 鉴权 | `Authorization: Bearer <API_KEY>`;取自变量配置文件,未设置时用 CLI 内置默认值 |
|
|
36
|
-
| 来源头 | 必须带 `X-GATEWAY-TYPE: A2C-CLI`(CLI 固定写入,不开放配置) |
|
|
37
|
-
| 请求体 | 按用户条件组装;禁止原样提交文档示例业务线 ID |
|
|
38
|
-
| iCenter / 其他 MCP | 编辑 `~/.sino-bc-cli/mcp.json` 后执行 `sino-bc-cli /mcp-reload` |
|
|
39
|
-
|
|
40
|
-
### 变量配置文件
|
|
41
|
-
|
|
42
|
-
环境、`API_KEY` 存放在 `<用户主目录>/.sino-bc-cli/config.json`,由 `/init` 创建、`/set-config` 修改。
|
|
43
|
-
MCP Server 存放在 `<用户主目录>/.sino-bc-cli/mcp.json`(与 Cursor 同结构),用户自行增删后执行 `/mcp-reload`。
|
|
44
|
-
需要知道当前生效取值时执行 `sino-bc-cli /get-config --json`(密钥默认打码,加 `--show-secret` 才是明文)。
|
|
45
|
-
|
|
46
|
-
`/bc-api` 不接收任何参数,且必须在交互式终端里选接口、只用文档默认 body。
|
|
47
|
-
Agent 在非 TTY 下跑这条会直接报错退出;需要真实查询时用 `/api-list` 发现接口后直接 HTTP。
|
|
48
|
-
|
|
49
|
-
## Agent 流程
|
|
50
|
-
|
|
51
|
-
1. 对照下方意图表选定 `name`。拿不准先跑 `sino-bc-cli /api-list`。
|
|
52
|
-
2. 读本地文档再组参。全局安装:`$(npm root -g)/sino-bc-cli/dist/api-doc/`;本仓库:`src/api-doc/`。`sino-bc-cli /api-list <name>` 会打开对应 markdown。
|
|
53
|
-
3. 写操作(描述含 ⚠️)先向用户确认环境和意图,未确认不发。
|
|
54
|
-
4. 按约定发 GET/POST,解析 `success` / `code` / `message` / `result`。
|
|
55
|
-
5. 回复用业务语言摘要;文档路径写成 Markdown 链接。完整 Key 不要回显。
|
|
56
|
-
6. 用户要查 iCenter 广告策略时,使用已配置的 MCP 工具,不要走 `/bc-api`。
|
|
18
|
+
安装与刷新(会写入上述两份并删除旧的 `sino-bc-cli/` 技能目录):
|
|
57
19
|
|
|
58
20
|
```bash
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-H "Content-Type: application/json" \
|
|
62
|
-
-H "X-GATEWAY-TYPE: A2C-CLI" \
|
|
63
|
-
-d '{"name":"用户给出的业务线名"}'
|
|
21
|
+
sino-bc-cli /init
|
|
22
|
+
sino-bc-cli /skill
|
|
64
23
|
```
|
|
65
24
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
## 意图 → 接口
|
|
69
|
-
|
|
70
|
-
### 业务线查询(只读,文档 `biz-line-query.md`)
|
|
71
|
-
|
|
72
|
-
| 用户在问 | name | 注意 |
|
|
73
|
-
| --- | --- | --- |
|
|
74
|
-
| 有哪些投放渠道 | `biz-line-open-channels` | GET;`code` = 业务线里的 `mediaChannelId` |
|
|
75
|
-
| 投放行业 / 品类树 | `biz-line-open-placement-categories` | GET;一级行业(1=APP / 2=ECBR / 3=游戏),二级=品类 |
|
|
76
|
-
| 业务线有哪些 / 按名或渠道筛 | `biz-line-open-list` | POST;空 `{}` = 全部 |
|
|
77
|
-
| 某几条业务线的周策略和表现 | `biz-line-open-strategies` | POST;必填 `bizLineIds` |
|
|
78
|
-
| 行业/品类里表现最好的业务线 | `biz-line-open-strategy-top` | 行业、品类至少传一个;传了行业则忽略品类 |
|
|
79
|
-
|
|
80
|
-
### 业务线策略(文档 `biz-line-strategy.md`)
|
|
81
|
-
|
|
82
|
-
| 用户在问 | name | 注意 |
|
|
83
|
-
| --- | --- | --- |
|
|
84
|
-
| 业务线分页列表 | `biz-line-list` | |
|
|
85
|
-
| 业务线详情 | `biz-line-detail` | `{ "id": <bizLineId> }` |
|
|
86
|
-
| 新建 / 编辑 / 切状态 / 删除业务线 | `biz-line-save` / `update` / `status-update` / `del` | ⚠️ 写操作 |
|
|
87
|
-
| 导出业务线列表 | `biz-line-list-export` | `result` 为文件 URL |
|
|
88
|
-
| 周策略分页 / 详情 / 周期列表 | `biz-line-strategy-list` / `detail` / `period-list` | |
|
|
89
|
-
| 新建策略前看上期摘要 | `biz-line-strategy-preview-info` | 周期为自然周 周一~周日 |
|
|
90
|
-
| 新建 / 编辑 / 删除策略 | `biz-line-strategy-save` / `update` / `del` | ⚠️;编辑带 `version` 乐观锁 |
|
|
91
|
-
| 两期策略对比 | `biz-line-strategy-compare` | |
|
|
92
|
-
| 策略周期消耗 | `biz-line-strategy-spend` | |
|
|
93
|
-
| 导出该业务线全部策略 | `biz-line-strategy-export-all` | 路径拼写是 `exprot-all`,不要改成 export |
|
|
94
|
-
|
|
95
|
-
红绿灯:`1`/`6` 绿,`2`/`5` 黄,`3`/`4` 红。客户满意度:`1` 满意,`2` 不满意。业务线状态:`1` 进行中 / `2` 已完成 / `3` 已暂停。
|
|
96
|
-
|
|
97
|
-
## 命令(给人用)
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
sino-bc-cli /api-list
|
|
101
|
-
sino-bc-cli /api-list biz-line-open-list
|
|
102
|
-
sino-bc-cli /bc-api
|
|
103
|
-
|
|
104
|
-
sino-bc-cli /init # 注册技能 + 设置环境 / API_KEY,并拉取启动 MCP
|
|
105
|
-
sino-bc-cli /get-config # 查看变量配置与 mcp.json(密钥打码)
|
|
106
|
-
sino-bc-cli /set-config env prod # 改单项;也支持 --env=prod、不带参数逐项交互
|
|
107
|
-
sino-bc-cli /mcp-reload # 按 ~/.sino-bc-cli/mcp.json 重启 MCP
|
|
108
|
-
sino-bc-cli /uninstall # 清理技能目录与配置文件并卸载 CLI
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Common Mistakes
|
|
112
|
-
|
|
113
|
-
| 错误 | 正确做法 |
|
|
114
|
-
| --- | --- |
|
|
115
|
-
| 非 TTY 执行 `/bc-api` | 这条会报错退出;改直接 HTTP,只用 `/api-list` 发现接口 |
|
|
116
|
-
| 给 `/bc-api` 传环境或 Key | 参数已下线;用 `/set-config` 改、`/get-config` 查 |
|
|
117
|
-
| 用文档里的 `bizLineId: 1251` | 换成用户给出的业务线 |
|
|
118
|
-
| 漏 `X-GATEWAY-TYPE` 或业务线路径前缀 | 带 `A2C-CLI` 与 `/sino-opti-hive` |
|
|
119
|
-
| 直连 `o-test-sino-opti-hive` 等服务地址 | 请求网关 `https://test-agent.beyondclick.com` + `/sino-opti-hive` |
|
|
120
|
-
| 改了 mcp.json 却不重启 | 执行 `sino-bc-cli /mcp-reload` |
|
|
121
|
-
| 未确认就调 save/update/del | 先确认环境与写操作 |
|
|
122
|
-
| 把 `exprot-all` 改成 `export-all` | 按服务端拼写调用 |
|
|
25
|
+
列出包内技能:`sino-bc-cli /skill`。查看某条命令何时用:`sino-bc-cli biz-line --help`。
|
|
26
|
+
升级 CLI 后请再跑一次 `/init`。
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# biz-line 命令何时用
|
|
2
|
+
|
|
3
|
+
字段口径在 `src/api-doc/`,这里只写 WHEN / 别用 / 示例。
|
|
4
|
+
|
|
5
|
+
## +channels
|
|
6
|
+
|
|
7
|
+
- **WHEN**:用户问有哪些投放渠道、mediaChannelId 怎么填。
|
|
8
|
+
- **别用**:查业务线列表(用 `+list`)。
|
|
9
|
+
- **示例**:`sino-bc-cli biz-line +channels`
|
|
10
|
+
|
|
11
|
+
## +categories
|
|
12
|
+
|
|
13
|
+
- **WHEN**:用户问投放行业 / 品类树,或要把名称映射成字典 ID。
|
|
14
|
+
- **别用**:已经有行业/品类 ID 且只要业务线(直接 `+list --industry` / `--category`)。
|
|
15
|
+
- **示例**:`sino-bc-cli biz-line +categories`
|
|
16
|
+
|
|
17
|
+
## +list
|
|
18
|
+
|
|
19
|
+
- **WHEN**:按名称、ID、渠道、行业、品类筛业务线;不传条件 = 全部。
|
|
20
|
+
- **别用**:只要某一条的周策略(用 `+strategies`);只要行业 Top(用 `+top`)。
|
|
21
|
+
- **示例**:`sino-bc-cli biz-line +list --name <业务线名称>`
|
|
22
|
+
|
|
23
|
+
## +strategies
|
|
24
|
+
|
|
25
|
+
- **WHEN**:查某条业务线的周策略和表现。
|
|
26
|
+
- **别用**:`--name` 可能命中多条时不要猜,先 `+list` 收窄或改 `--id`。
|
|
27
|
+
- **示例**:`sino-bc-cli biz-line +strategies --name <业务线名称>`
|
|
28
|
+
|
|
29
|
+
## +top
|
|
30
|
+
|
|
31
|
+
- **WHEN**:问某行业或品类里表现最好的业务线。
|
|
32
|
+
- **别用**:行业和品类都没有时不要空跑;两个都传则只按行业。
|
|
33
|
+
- **示例**:`sino-bc-cli biz-line +top --industry APP`
|
|
34
|
+
|
|
35
|
+
## +save / +update
|
|
36
|
+
|
|
37
|
+
- **WHEN**:新建或编辑业务线主数据。字段多用 `--data`。
|
|
38
|
+
- **别用**:只改状态用 `+status`;没确认环境和意图不要加 `--yes`。
|
|
39
|
+
- **示例**:`sino-bc-cli biz-line +save --data '{...}' --dry-run`
|
|
40
|
+
|
|
41
|
+
## +status
|
|
42
|
+
|
|
43
|
+
- **WHEN**:切换业务线状态(进行中 / 已完成 / 已暂停)。
|
|
44
|
+
- **别用**:改名称或渠道用 `+update`。
|
|
45
|
+
- **示例**:`sino-bc-cli biz-line +status --id 123 --status 3 --yes`
|
|
46
|
+
|
|
47
|
+
## +delete
|
|
48
|
+
|
|
49
|
+
- **WHEN**:删除业务线。
|
|
50
|
+
- **别用**:只想停投放用 `+status --status 3`。
|
|
51
|
+
- **示例**:`sino-bc-cli biz-line +delete --id 123 --dry-run`
|
|
52
|
+
|
|
53
|
+
## +strategy-save / +strategy-update / +strategy-delete
|
|
54
|
+
|
|
55
|
+
- **WHEN**:新建、编辑或删除周策略。编辑必须带 `version`。
|
|
56
|
+
- **别用**:只对比两期用 `biz-line api biz-line-strategy-compare`。
|
|
57
|
+
- **示例**:`sino-bc-cli biz-line +strategy-update --data '{...}' --yes`
|
|
58
|
+
|
|
59
|
+
## api
|
|
60
|
+
|
|
61
|
+
- **WHEN**:导出、对比、消耗、周期列表、上期摘要等没有 `+` 的接口。
|
|
62
|
+
- **别用**:已有 Shortcut 的高频查询仍应走 `+xxx`。
|
|
63
|
+
- **示例**:`sino-bc-cli biz-line api biz-line-strategy-compare --data '{"bizLineId":123,"currentId":2,"prevId":1}'`
|
package/dist/api-doc/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# 接口文档索引
|
|
2
2
|
|
|
3
|
-
本目录汇总 CLI
|
|
3
|
+
本目录汇总 CLI 可调用的业务线接口(字段口径)。浏览清单用 `/api-list`(Shortcut 行带一句 WHEN);何时用哪条命令见仓库 `affordance/biz-line.md` 或 `sino-bc-cli biz-line --help`。发起调用用 `biz-line +<shortcut>`;没有 Shortcut 的接口用 `biz-line api <name> --data '<json>'`。Agent 技能树在 `skills/`,自省用 `/skill`。
|
|
4
4
|
|
|
5
5
|
iCenter 不再随 CLI 提供接口文档。需要 iCenter 时,把 MCP Server 写进 `~/.sino-bc-cli/mcp.json`,再执行 `/init` 或 `/mcp-reload`,CLI 会同步到 Cursor / Codex / Claude / VS Code。
|
|
6
6
|
|
|
7
7
|
| 分组 | 命令 | 接口数 | 文档 |
|
|
8
8
|
| --- | --- | --- | --- |
|
|
9
|
-
| 业务线查询 |
|
|
10
|
-
| 业务线策略 |
|
|
9
|
+
| 业务线查询 | `biz-line +channels` / `+categories` / `+list` / `+strategies` / `+top` | 5 | [biz-line-query.md](./biz-line-query.md) |
|
|
10
|
+
| 业务线策略 | `biz-line +save` / `+update` / `+status` / `+delete` / `+strategy-*`,其余 `biz-line api <name>` | 17 | [biz-line-strategy.md](./biz-line-strategy.md) |
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -15,7 +15,7 @@ iCenter 不再随 CLI 提供接口文档。需要 iCenter 时,把 MCP Server
|
|
|
15
15
|
|
|
16
16
|
| 范围 | 通道 |
|
|
17
17
|
| --- | --- |
|
|
18
|
-
| `biz-line-query.md` / `biz-line-strategy.md` 与
|
|
18
|
+
| `biz-line-query.md` / `biz-line-strategy.md` 与 `biz-line` 命令 | 固定走网关 HTTP,路径带 `/sino-opti-hive` |
|
|
19
19
|
| iCenter 及其他 MCP | 用户编辑 `~/.sino-bc-cli/mcp.json`,由 `/init`、`/mcp-reload` 同步并启动 |
|
|
20
20
|
|
|
21
21
|
网关地址的唯一来源是 `src/constants/gateway.ts` 的 `GATEWAY_CONFIG`;各文档中出现的上游服务地址(`o-test-sino-opti-hive` 等)仅作接口文档出处,不作为请求地址。
|
|
@@ -41,9 +41,11 @@ iCenter 不再随 CLI 提供接口文档。需要 iCenter 时,把 MCP Server
|
|
|
41
41
|
| [biz-line-query.md](./biz-line-query.md) | 业务线查询 | 5 | 对外开放的只读查询:渠道、品类字典、业务线列表、策略及表现、Top 业务线 |
|
|
42
42
|
| [biz-line-strategy.md](./biz-line-strategy.md) | 业务线策略 | 17 | 业务线主数据与周策略的增删改查、导出 |
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
对应命令:`biz-line +<shortcut>` 与 `biz-line api <name>`,接口清单定义在 `src/constants/biz-line-api-doc.ts`。
|
|
45
45
|
|
|
46
|
-
> ⚠️ 业务线策略组含新建 / 编辑 /
|
|
46
|
+
> ⚠️ 业务线策略组含新建 / 编辑 / 删除等写操作接口。写操作必须先确认:不加 `--yes` 时交互式终端会询问,非交互式环境以退出码 `10` 返回 `confirmation_required`;执行前可用 `--dry-run` 预览请求。
|
|
47
|
+
>
|
|
48
|
+
> 文档中的「请求示例」只用于说明字段口径,**不会**被任何命令当作默认请求体发送。
|
|
47
49
|
|
|
48
50
|
---
|
|
49
51
|
|
|
@@ -57,16 +59,27 @@ sino-bc-cli /api-list 1
|
|
|
57
59
|
sino-bc-cli /api-list biz-line-open-channels
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
发起调用经网关 HTTP;环境与鉴权取自变量配置文件,无需在命令上传。
|
|
61
63
|
|
|
62
64
|
```bash
|
|
63
|
-
#
|
|
64
|
-
sino-bc-cli
|
|
65
|
+
# 有 Shortcut 的高频查询
|
|
66
|
+
sino-bc-cli biz-line +list --name <业务线名称>
|
|
67
|
+
sino-bc-cli biz-line +strategies --name <业务线名称>
|
|
68
|
+
|
|
69
|
+
# 没有 Shortcut 的接口按 name 点名调用
|
|
70
|
+
sino-bc-cli biz-line api biz-line-strategy-compare \
|
|
71
|
+
--data '{"bizLineId":123,"currentId":2,"prevId":1}'
|
|
72
|
+
|
|
73
|
+
# 写操作:先预览,确认后追加 --yes
|
|
74
|
+
sino-bc-cli biz-line +delete --id 123 --dry-run
|
|
75
|
+
sino-bc-cli biz-line +delete --id 123 --yes
|
|
65
76
|
|
|
66
77
|
# 切换环境
|
|
67
78
|
sino-bc-cli /set-config env test
|
|
68
79
|
```
|
|
69
80
|
|
|
81
|
+
输出格式:TTY 默认表格,非 TTY 默认 JSON 信封(`--format` 可覆盖)。成功 `{ ok: true, data }` 走 stdout,失败 `{ ok: false, error }` 走 stderr;退出码 `0` 成功、`10` 待确认、其余非 0 失败。
|
|
82
|
+
|
|
70
83
|
| 配置 | 默认值 | 说明 |
|
|
71
84
|
| --- | --- | --- |
|
|
72
85
|
| `env` | `prod` | `test` / `pre` / `prod`,用于取 `src/constants/gateway.ts` 中的网关地址 |
|
|
@@ -204,11 +204,15 @@
|
|
|
204
204
|
## 命令调用
|
|
205
205
|
|
|
206
206
|
```bash
|
|
207
|
-
#
|
|
208
|
-
sino-bc-cli
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
sino-bc-cli
|
|
207
|
+
# 本组接口都有 Shortcut
|
|
208
|
+
sino-bc-cli biz-line +channels
|
|
209
|
+
sino-bc-cli biz-line +categories
|
|
210
|
+
sino-bc-cli biz-line +list --name <业务线名称>
|
|
211
|
+
sino-bc-cli biz-line +strategies --name <业务线名称>
|
|
212
|
+
sino-bc-cli biz-line +top --industry APP --top-n 5
|
|
213
|
+
|
|
214
|
+
# 切换环境(test / pre / prod)
|
|
215
|
+
sino-bc-cli /set-config env test
|
|
212
216
|
```
|
|
213
217
|
|
|
214
218
|
详见 [README.md](./README.md)。
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
>
|
|
9
9
|
> **路由前缀**:经网关调用时所有路径需带 `/sino-opti-hive`,例如 `/sino-opti-hive/biz-line/list`。
|
|
10
10
|
>
|
|
11
|
-
> ⚠️
|
|
11
|
+
> ⚠️ 标记为「写操作」的接口会变更线上数据。CLI 会强制确认:不加 `--yes` 时交互式终端询问,非交互式环境以退出码 `10` 返回 `confirmation_required`;执行前可用 `--dry-run` 预览。文档中的「请求示例」只说明字段口径,不会被当作默认请求体发送。
|
|
12
12
|
|
|
13
13
|
| # | name | 展示名 | 方法 | 路径(含前缀) |
|
|
14
14
|
| --- | --- | --- | --- | --- |
|
|
@@ -305,11 +305,15 @@
|
|
|
305
305
|
## 命令调用
|
|
306
306
|
|
|
307
307
|
```bash
|
|
308
|
-
#
|
|
309
|
-
sino-bc-cli
|
|
308
|
+
# 写操作有 Shortcut:先预览,确认后追加 --yes
|
|
309
|
+
sino-bc-cli biz-line +status --id <业务线 ID> --status 3 --dry-run
|
|
310
|
+
sino-bc-cli biz-line +status --id <业务线 ID> --status 3 --yes
|
|
310
311
|
|
|
311
|
-
#
|
|
312
|
-
sino-bc-cli
|
|
312
|
+
# 其余接口按 name 点名调用
|
|
313
|
+
sino-bc-cli biz-line api biz-line-strategy-detail --data '{"bizLineId":123,"id":1}'
|
|
314
|
+
|
|
315
|
+
# 切换环境(test / pre / prod)
|
|
316
|
+
sino-bc-cli /set-config env test
|
|
313
317
|
```
|
|
314
318
|
|
|
315
319
|
详见 [README.md](./README.md)。
|